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) ... ...
This diff is collapsed.
 ... ... @@ -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 ---------------------------------------------------------- data Color = RGB FType FType FType deriving Show{-was:Text-} deriving Show{-was:Text-} ---------------------------------------------------------- -- Matrix ... ... @@ -89,7 +89,7 @@ type R1 a = (a,a) ---------------------------------------------------------- data Oct = O_Full Color | O_Empty | O_Sub Color [Oct] deriving Show{-was:Text-} deriving Show{-was:Text-} ---------------------------------------------------------- -- Quad ... ... @@ -98,7 +98,7 @@ data Oct = O_Full Color | O_Empty | O_Sub Color [Oct] data Quad = Q_Empty | Q_Full Color | Q_Sub Color [Quad] | Q_NewXY FType FType FType deriving Show{-was:Text-} deriving Show{-was:Text-} ---------------------------------------------------------- -- Vector ... ...
 ... ... @@ -38,7 +38,7 @@ len :: Vector -> FType len (x,y,z) = ans where ans | sqs /= 0.0 = sqrt sqs | True = 1 | True = 1 sqs :: FType sqs = (x2 + y2 + z2) x2 = x * x ... ...
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!