Commit 6ab527db by Ben Gamari 🐢

### real/fulsom: Detabify

parent 364be2cc
 ... ... @@ -195,19 +195,19 @@ calc (Geom a (RotZ rad)) rgb xyz -- conflate matrices together and into planes planes... reduceM (Object X) mata = case (mat1x4 (1,0,0,0) mata) of (x,y,z,w) -> (Object (Plane x y z w),True) (x,y,z,w) -> (Object (Plane x y z w),True) reduceM (Object Y) mata = case (mat1x4 (0,1,0,0) mata) of (x,y,z,w) -> (Object (Plane x y z w),True) (x,y,z,w) -> (Object (Plane x y z w),True) reduceM (Object Z) mata = case (mat1x4 (0,0,1,0) mata) of (x,y,z,w) -> (Object (Plane x y z w),True) (x,y,z,w) -> (Object (Plane x y z w),True) reduceM (Object (Plane a b c d)) mata = case (mat1x4 (a,b,c,d) mata) of (x,y,z,w) -> (Object (Plane x y z w),True) (x,y,z,w) -> (Object (Plane x y z w),True) reduceM (Matrix b matb) mata = case (mat4x4 mata matb) of matc -> (Matrix b matc,True) matc -> (Matrix b matc,True) reduceM _ _ = (no,False) ... ...
 ... ... @@ -18,10 +18,10 @@ -} module Interval(Interval, (#), pt, sqr, tophalf, bothalf, topbit, lo, hi, mid1, mid2, up,down,unpt) where tophalf, bothalf, topbit, lo, hi, mid1, mid2, up,down,unpt) where infix 4 #,:#: ... ... @@ -46,36 +46,36 @@ instance (Ord a) => Ord (Interval a) where instance (Num a, Ord a, Eq a, Show a) => Num (Interval a) where (+) = ivPlus (*) = ivMult negate = ivNegate abs = ivAbs signum = ivSignum fromInteger = ivFromInteger (+) = ivPlus (*) = ivMult negate = ivNegate abs = ivAbs signum = ivSignum fromInteger = ivFromInteger instance (Show a, Num a, Ord a, Fractional a) => Fractional (Interval a) where (/) = ivDiv fromRational = ivFromRational (/) = ivDiv fromRational = ivFromRational instance (Show a, RealFloat a) => Floating (Interval a) where pi = Pt pi exp = ivExp log = ivLog sqrt = ivSqrt (**) = ivPower sin = ivSin cos = ivCos tan = ivTan asin = ivAsin acos = ivAcos atan = ivAtan sinh = ivSinh cosh = ivCosh tanh = ivTanh asinh = ivAsinh acosh = ivAcosh atanh = ivAtanh pi = Pt pi exp = ivExp log = ivLog sqrt = ivSqrt (**) = ivPower sin = ivSin cos = ivCos tan = ivTan asin = ivAsin acos = ivAcos atan = ivAtan sinh = ivSinh cosh = ivCosh tanh = ivTanh asinh = ivAsinh acosh = ivAcosh atanh = ivAtanh -- Error functions - un-used. ... ... @@ -139,35 +139,35 @@ ivNegate (a :#: b) = negate b :#: negate a ivMult (Pt a) (Pt c) = Pt (a*c) ivMult (a :#: b) (c :#: d) | (min a c) > 0 = a*c :#: b*d | (max b d) < 0 = b*d :#: a*c | otherwise = minmax [e,f,g,h] where e = b * c f = a * d g = a * c h = b * d | otherwise = minmax [e,f,g,h] where e = b * c f = a * d g = a * c h = b * d ivMult (Pt a) (c :#: d) | a > 0 = a*c :#: a*d | a < 0 = a*d :#: a*c | otherwise = (Pt 0) | a < 0 = a*d :#: a*c | otherwise = (Pt 0) ivMult (c :#: d) (Pt a) | a > 0 = a*c :#: a*d | a < 0 = a*d :#: a*c | otherwise = (Pt 0) | a < 0 = a*d :#: a*c | otherwise = (Pt 0) -- minmax finds the lowest, and highest in a list - used for mult. -- Should use foldl rather than foldr minmax [a] = a :#: a minmax (a:as) = case True of True | (a > s) -> f :#: a True | (a < f) -> a :#: s otherwise -> f :#: s True | (a > s) -> f :#: a True | (a < f) -> a :#: s otherwise -> f :#: s where (f :#: s) = minmax as ivAbs (Pt a) = Pt (abs a) ivAbs (a :#: b) | a<=0 && 0<=b = 0 :#: (max (abs a) (abs b)) | a<=b && b<0 = b :#: a | 0 (Interval a) -> (Interval a) ... ...
 ... ... @@ -43,133 +43,133 @@ mkcolor x y z = RGB a b c c = (z / 255.0) :: FType white = mkcolor 255 255 255 ivory = mkcolor 255 255 240 light_yellow = mkcolor 255 255 224 yellow = mkcolor 255 255 0 snow = mkcolor 255 250 250 floral_white = mkcolor 255 250 240 lemon_chiffon = mkcolor 255 250 205 cornsilk = mkcolor 255 248 220 seashell = mkcolor 255 245 238 lavender_blush = mkcolor 255 240 245 papaya_whip = mkcolor 255 239 213 blanched_almond = mkcolor 255 235 205 misty_rose = mkcolor 255 228 225 bisque = mkcolor 255 228 196 moccasin = mkcolor 255 228 181 navajo_white = mkcolor 255 222 173 peach_puff = mkcolor 255 218 185 gold = mkcolor 255 215 0 pink = mkcolor 255 192 203 light_pink = mkcolor 255 182 193 orange = mkcolor 255 165 0 light_salmon = mkcolor 255 160 122 dark_orange = mkcolor 255 140 0 coral = mkcolor 255 127 80 hot_pink = mkcolor 255 105 180 tomato = mkcolor 255 99 71 orange_red = mkcolor 255 69 0 deep_pink = mkcolor 255 20 147 magenta = mkcolor 255 0 255 red = mkcolor 255 0 0 old_lace = mkcolor 253 245 230 light_goldenrod_yellow = mkcolor 250 250 210 linen = mkcolor 250 240 230 antique_white = mkcolor 250 235 215 salmon = mkcolor 250 128 114 ghost_white = mkcolor 248 248 255 mint_cream = mkcolor 245 255 250 white_smoke = mkcolor 245 245 245 beige = mkcolor 245 245 220 wheat = mkcolor 245 222 179 sandy_brown = mkcolor 244 164 96 azure = mkcolor 240 255 255 honeydew = mkcolor 240 255 240 alice_blue = mkcolor 240 248 255 khaki = mkcolor 240 230 140 light_coral = mkcolor 240 128 128 pale_goldenrod = mkcolor 238 232 170 light_goldenrod = mkcolor 238 221 130 violet = mkcolor 238 130 238 dark_salmon = mkcolor 233 150 122 lavender = mkcolor 230 230 250 light_cyan = mkcolor 224 255 255 burlywood = mkcolor 222 184 135 plum = mkcolor 221 160 221 gainsboro = mkcolor 220 220 220 pale_violet_red = mkcolor 219 112 147 goldenrod = mkcolor 218 165 32 orchid = mkcolor 218 112 214 thistle = mkcolor 216 191 216 light_grey = mkcolor 211 211 211 -- tan = mkcolor 210 180 140 chocolate = mkcolor 210 105 30 violet_red = mkcolor 208 32 144 peru = mkcolor 205 133 63 indian_red = mkcolor 205 92 92 medium_violet_red = mkcolor 199 21 133 grey = mkcolor 190 190 190 dark_khaki = mkcolor 189 183 107 rosy_brown = mkcolor 188 143 143 medium_orchid = mkcolor 186 85 211 dark_goldenrod = mkcolor 184 134 11 firebrick = mkcolor 178 34 34 powder_blue = mkcolor 176 224 230 light_steel_blue = mkcolor 176 196 222 maroon = mkcolor 176 48 96 pale_turquoise = mkcolor 175 238 238 green_yellow = mkcolor 173 255 47 light_blue = mkcolor 173 216 230 brown = mkcolor 165 42 42 sienna = mkcolor 160 82 45 purple = mkcolor 160 32 240 yellow_green = mkcolor 154 205 50 dark_orchid = mkcolor 153 50 204 pale_green = mkcolor 152 251 152 dark_violet = mkcolor 148 0 211 medium_purple = mkcolor 147 112 219 dark_sea_green = mkcolor 143 188 143 saddle_brown = mkcolor 139 69 19 blue_violet = mkcolor 138 43 226 light_sky_blue = mkcolor 135 206 250 sky_blue = mkcolor 135 206 235 light_slate_blue = mkcolor 132 112 255 aquamarine = mkcolor 127 255 212 chartreuse = mkcolor 127 255 0 lawn_green = mkcolor 124 252 0 medium_slate_blue = mkcolor 123 104 238 light_slate_grey = mkcolor 119 136 153 slate_grey = mkcolor 112 128 144 olive_drab = mkcolor 107 142 35 slate_blue = mkcolor 106 90 205 dim_grey = mkcolor 105 105 105 medium_aquamarine = mkcolor 102 205 170 cornflower_blue = mkcolor 100 149 237 cadet_blue = mkcolor 95 158 160 dark_olive_green = mkcolor 85 107 47 medium_turquoise = mkcolor 72 209 204 dark_slate_blue = mkcolor 72 61 139 steel_blue = mkcolor 70 130 180 royal_blue = mkcolor 65 105 225 turquoise = mkcolor 64 224 208 medium_sea_green = mkcolor 60 179 113 lime_green = mkcolor 50 205 50 dark_slate_grey = mkcolor 47 79 79 sea_green = mkcolor 46 139 87 forest_green = mkcolor 34 139 34 light_sea_green = mkcolor 32 178 170 dodger_blue = mkcolor 30 144 255 midnight_blue = mkcolor 25 25 112 cyan = mkcolor 0 255 255 spring_green = mkcolor 0 255 127 green = mkcolor 0 255 0 medium_spring_green = mkcolor 0 250 154 dark_turquoise = mkcolor 0 206 209 deep_sky_blue = mkcolor 0 191 255 dark_green = mkcolor 0 100 0 blue = mkcolor 0 0 255 medium_blue = mkcolor 0 0 205 navy_blue = mkcolor 0 0 128 navy = mkcolor 0 0 128 black = mkcolor 0 0 0 white = mkcolor 255 255 255 ivory = mkcolor 255 255 240 light_yellow = mkcolor 255 255 224 yellow = mkcolor 255 255 0 snow = mkcolor 255 250 250 floral_white = mkcolor 255 250 240 lemon_chiffon = mkcolor 255 250 205 cornsilk = mkcolor 255 248 220 seashell = mkcolor 255 245 238 lavender_blush = mkcolor 255 240 245 papaya_whip = mkcolor 255 239 213 blanched_almond = mkcolor 255 235 205 misty_rose = mkcolor 255 228 225 bisque = mkcolor 255 228 196 moccasin = mkcolor 255 228 181 navajo_white = mkcolor 255 222 173 peach_puff = mkcolor 255 218 185 gold = mkcolor 255 215 0 pink = mkcolor 255 192 203 light_pink = mkcolor 255 182 193 orange = mkcolor 255 165 0 light_salmon = mkcolor 255 160 122 dark_orange = mkcolor 255 140 0 coral = mkcolor 255 127 80 hot_pink = mkcolor 255 105 180 tomato = mkcolor 255 99 71 orange_red = mkcolor 255 69 0 deep_pink = mkcolor 255 20 147 magenta = mkcolor 255 0 255 red = mkcolor 255 0 0 old_lace = mkcolor 253 245 230 light_goldenrod_yellow = mkcolor 250 250 210 linen = mkcolor 250 240 230 antique_white = mkcolor 250 235 215 salmon = mkcolor 250 128 114 ghost_white = mkcolor 248 248 255 mint_cream = mkcolor 245 255 250 white_smoke = mkcolor 245 245 245 beige = mkcolor 245 245 220 wheat = mkcolor 245 222 179 sandy_brown = mkcolor 244 164 96 azure = mkcolor 240 255 255 honeydew = mkcolor 240 255 240 alice_blue = mkcolor 240 248 255 khaki = mkcolor 240 230 140 light_coral = mkcolor 240 128 128 pale_goldenrod = mkcolor 238 232 170 light_goldenrod = mkcolor 238 221 130 violet = mkcolor 238 130 238 dark_salmon = mkcolor 233 150 122 lavender = mkcolor 230 230 250 light_cyan = mkcolor 224 255 255 burlywood = mkcolor 222 184 135 plum = mkcolor 221 160 221 gainsboro = mkcolor 220 220 220 pale_violet_red = mkcolor 219 112 147 goldenrod = mkcolor 218 165 32 orchid = mkcolor 218 112 214 thistle = mkcolor 216 191 216 light_grey = mkcolor 211 211 211 -- tan = mkcolor 210 180 140 chocolate = mkcolor 210 105 30 violet_red = mkcolor 208 32 144 peru = mkcolor 205 133 63 indian_red = mkcolor 205 92 92 medium_violet_red = mkcolor 199 21 133 grey = mkcolor 190 190 190 dark_khaki = mkcolor 189 183 107 rosy_brown = mkcolor 188 143 143 medium_orchid = mkcolor 186 85 211 dark_goldenrod = mkcolor 184 134 11 firebrick = mkcolor 178 34 34 powder_blue = mkcolor 176 224 230 light_steel_blue = mkcolor 176 196 222 maroon = mkcolor 176 48 96 pale_turquoise = mkcolor 175 238 238 green_yellow = mkcolor 173 255 47 light_blue = mkcolor 173 216 230 brown = mkcolor 165 42 42 sienna = mkcolor 160 82 45 purple = mkcolor 160 32 240 yellow_green = mkcolor 154 205 50 dark_orchid = mkcolor 153 50 204 pale_green = mkcolor 152 251 152 dark_violet = mkcolor 148 0 211 medium_purple = mkcolor 147 112 219 dark_sea_green = mkcolor 143 188 143 saddle_brown = mkcolor 139 69 19 blue_violet = mkcolor 138 43 226 light_sky_blue = mkcolor 135 206 250 sky_blue = mkcolor 135 206 235 light_slate_blue = mkcolor 132 112 255 aquamarine = mkcolor 127 255 212 chartreuse = mkcolor 127 255 0 lawn_green = mkcolor 124 252 0 medium_slate_blue = mkcolor 123 104 238 light_slate_grey = mkcolor 119 136 153 slate_grey = mkcolor 112 128 144 olive_drab = mkcolor 107 142 35 slate_blue = mkcolor 106 90 205 dim_grey = mkcolor 105 105 105 medium_aquamarine = mkcolor 102 205 170 cornflower_blue = mkcolor 100 149 237 cadet_blue = mkcolor 95 158 160 dark_olive_green = mkcolor 85 107 47 medium_turquoise = mkcolor 72 209 204 dark_slate_blue = mkcolor 72 61 139 steel_blue = mkcolor 70 130 180 royal_blue = mkcolor 65 105 225 turquoise = mkcolor 64 224 208 medium_sea_green = mkcolor 60 179 113 lime_green = mkcolor 50 205 50 dark_slate_grey = mkcolor 47 79 79 sea_green = mkcolor 46 139 87 forest_green = mkcolor 34 139 34 light_sea_green = mkcolor 32 178 170 dodger_blue = mkcolor 30 144 255 midnight_blue = mkcolor 25 25 112 cyan = mkcolor 0 255 255 spring_green = mkcolor 0 255 127 green = mkcolor 0 255 0 medium_spring_green = mkcolor 0 250 154 dark_turquoise = mkcolor 0 206 209 deep_sky_blue = mkcolor 0 191 255 dark_green = mkcolor 0 100 0 blue = mkcolor 0 0 255 medium_blue = mkcolor 0 0 205 navy_blue = mkcolor 0 0 128 navy = mkcolor 0 0 128 black = mkcolor 0 0 0
 ... ... @@ -39,9 +39,9 @@ import NofibUtils main = replicateM_ 1000 \$ do argv <- getArgs let n = case argv of [a] -> read a _ -> 7 n = case argv of [a] -> read a _ -> 7 hSetBinaryMode stdout True print (hash (picture n)) ... ...
 ... ... @@ -33,10 +33,10 @@ dorow :: (Fractional a) => Row -> R3 a -> a dorow (m11,m12,m13,m14) (x,y,z) = case (m1 * x) + (m2 * y) + (m3 * z) + m4 of n -> n where m1 = realToFrac m11 m2 = realToFrac m12 m3 = realToFrac m13 m4 = realToFrac m14 m1 = realToFrac m11 m2 = realToFrac m12 m3 = realToFrac m13 m4 = realToFrac m14 mat4x1' :: (Fractional a) => Arr -> R3 a -> R3 a mat4x1' (r1,r2,r3) xyz = (x,y,z) ... ... @@ -49,9 +49,9 @@ dorow' :: (Fractional a) => Row -> R3 a -> a dorow' (m11,m12,m13,m14) (x,y,z) = case (m1 * x) + (m2 * y) + (m3 * z) of n -> n where m1 = realToFrac m11 m2 = realToFrac m12 m3 = realToFrac m13 m1 = realToFrac m11 m2 = realToFrac m12 m3 = realToFrac m13 mat1x4 :: Row -> Arr -> Row mat1x4 a (b1,b2,b3) = (c1,c2,c3,c4) ... ...
 ... ... @@ -46,7 +46,7 @@ makeoct csg = octer 1 csg xyz -- octer :: Int -> Csg -> (R3 BI) -> Oct octer nn csg xyz = case (calc csg white xyz) of (res,newc',rgb,new) -> (res,newc',rgb,new) -> let newc = if new then newc' else csg c = light rgb (calcn newc xyz) ... ... @@ -54,35 +54,35 @@ octer nn csg xyz bhx = bothalf x ; thx = tophalf x bhy = bothalf y ; thy = tophalf y tbz = topbit z ; bhz = bothalf z os = if nn == 1 then osb else osa n1 = nn + 1 os = if nn == 1 then osb else osa n1 = nn + 1 osa = map (octer n1 newc) [ (bhx,bhy,tbz) , (bhx,bhy,bhz) , (thx,bhy,tbz) , (thx,bhy,bhz) , (bhx,thy,tbz) , (bhx,thy,bhz) , (thx,thy,tbz) , (thx,thy,bhz) ] (thx,bhy,tbz) , (thx,bhy,bhz) , (bhx,thy,tbz) , (bhx,thy,bhz) , (thx,thy,tbz) , (thx,thy,bhz) ] osb = [(octer n1 newc (bhx,bhy,tbz)) , (octer n1 newc (bhx,bhy,bhz)) , (octer n1 newc (thx,bhy,tbz)) , (octer n1 newc (thx,bhy,bhz)) , (octer n1 newc (bhx,thy,tbz)) , (octer n1 newc (bhx,thy,bhz)) , (octer n1 newc (thx,thy,tbz)) , (octer n1 newc (thx,thy,bhz)) ] (octer n1 newc (bhx,bhy,bhz)) , (octer n1 newc (thx,bhy,tbz)) , (octer n1 newc (thx,bhy,bhz)) , (octer n1 newc (bhx,thy,tbz)) , (octer n1 newc (bhx,thy,bhz)) , (octer n1 newc (thx,thy,tbz)) , (octer n1 newc (thx,thy,bhz)) ] in if res < (pt 0) then O_Full c else if res > (pt 0) then O_Empty else O_Sub c os if res < (pt 0) then O_Full c else if res > (pt 0) then O_Empty else O_Sub c os {- os = map (octer newc) [ (bhx,bhy,tbz) , (bhx,bhy,bhz) , (thx,bhy,tbz) , (thx,bhy,bhz) , (bhx,thy,tbz) , (bhx,thy,bhz) , (thx,thy,tbz) , (thx,thy,bhz) ] (thx,bhy,tbz) , (thx,bhy,bhz) , (bhx,thy,tbz) , (bhx,thy,bhz) , (thx,thy,tbz) , (thx,thy,bhz) ] -} calcn csg xyz = normalise (makevector f0 f1 f2 f3) ... ...
 ... ... @@ -34,7 +34,7 @@ qo (O_Sub s l) (Q_Empty ) = Q_Sub s z (l2:ll3) = ll2 ; (l3:ll4) = ll3 (l4:ll5) = ll4 ; (l5:ll6) = ll5 (l6:ll7) = ll6 ; (l7:ll8) = ll7 z = [ qo (l1) (qo (l0) Q_Empty) , z = [ qo (l1) (qo (l0) Q_Empty) , qo (l3) (qo (l2) Q_Empty) , qo (l5) (qo (l4) Q_Empty) , qo (l7) (qo (l6) Q_Empty) ] ... ... @@ -46,7 +46,7 @@ qo (O_Sub s l) (Q_Sub t k) = Q_Sub t z (l6:ll7) = ll6 ; (l7:ll8) = ll7 (k0:kk1) = k ; (k1:kk2) = kk1 (k2:kk3) = kk2 ; (k3:kk4) = kk3 z = [ qo (l1) (qo (l0) (k0)) , z = [ qo (l1) (qo (l0) (k0)) , qo (l3) (qo (l2) (k1)) , qo (l5) (qo (l4) (k2)) , qo (l7) (qo (l6) (k3)) ] ... ... @@ -54,7 +54,7 @@ qo o@(O_Full s) (Q_Sub t k) = Q_Sub t z where (k0:kk1) = k ; (k1:kk2) = kk1 (k2:kk3) = kk2 ; (k3:kk4) = kk3 z = [ qo o (k0) , qo o (k1) , z = [ qo o (k0) , qo o (k1) , qo o (k2) , qo o (k3) ] qo (O_Full s ) (q ) = Q_Full s
 ... ... @@ -37,14 +37,14 @@ data Prim = Sphere FType FType FType FType | Cube FType FType FType FType | Plane FType FType FType FType | X | Y | Z deriving Show{-was:Text-} deriving Show{-was:Text-} data Ops = RotX FType | RotY FType | RotZ FType | Scale FType FType FType | Trans FType FType FType deriving Show{-was:Text-} deriving Show{-was:Text-} data Csg = Object Prim | Geom Csg Ops ... ... @@ -55,7 +55,7 @@ data Csg = Object Prim | Inter Csg Csg | Sub Csg Csg | Comp Csg -- deriving Show{-was:Text-} -- deriving Show{-was:Text-} -- type CsgOut = (R1 BI,Csg,Color,Bool) ... ... @@ -68,7 +68,7 @@ type Calc = Color -> (R3 BI) -> CsgOut ----------------------------------------------------------