summaryrefslogtreecommitdiff
path: root/lc
diff options
context:
space:
mode:
authorPéter Diviánszky <divipp@gmail.com>2016-01-19 16:23:14 +0100
committerPéter Diviánszky <divipp@gmail.com>2016-01-19 17:40:42 +0100
commit5d6b5e0c62585f2f7bd55980dd43580c41b122eb (patch)
tree8a1a437611352fb531cc6f2b20382b5d9a704fca /lc
parentb1cb27d9a162b51b764f8fd7d860b27263479484 (diff)
eliminate TFMat
Diffstat (limited to 'lc')
-rw-r--r--lc/Builtins.lc18
1 files changed, 7 insertions, 11 deletions
diff --git a/lc/Builtins.lc b/lc/Builtins.lc
index 47dfc4e1..b1d34c5d 100644
--- a/lc/Builtins.lc
+++ b/lc/Builtins.lc
@@ -63,10 +63,6 @@ type family MatVecScalarElem a where
63 MatVecScalarElem (VecS a n) = a 63 MatVecScalarElem (VecS a n) = a
64 MatVecScalarElem (Mat i j a) = a 64 MatVecScalarElem (Mat i j a) = a
65 65
66-- may be a data family?
67type family TFMat i j where
68 TFMat (VecS a i) (VecS a' j) = T2 (a ~ a') (Mat i j a)
69
70--------------------------------------- swizzling 66--------------------------------------- swizzling
71 67
72data Swizz = Sx | Sy | Sz | Sw 68data Swizz = Sx | Sy | Sz | Sw
@@ -525,13 +521,13 @@ PrimNormalize :: (a ~ VecScalar d Float) => a -> a
525PrimFaceForward, PrimRefract :: (a ~ VecScalar d Float) => a -> a -> a -> a 521PrimFaceForward, PrimRefract :: (a ~ VecScalar d Float) => a -> a -> a -> a
526PrimReflect :: (a ~ VecScalar d Float) => a -> a -> a 522PrimReflect :: (a ~ VecScalar d Float) => a -> a -> a
527-- Matrix Functions 523-- Matrix Functions
528PrimTranspose :: TFMat h w -> TFMat w h 524PrimTranspose :: Mat h w a -> Mat w h a
529PrimDeterminant :: TFMat s s -> Float 525PrimDeterminant :: Mat s s a -> Float
530PrimInverse :: TFMat s s -> TFMat s s 526PrimInverse :: Mat s s a -> Mat s s a
531PrimOuterProduct :: w -> h -> TFMat h w 527PrimOuterProduct :: Vec w a -> Vec h a -> Mat h w a
532PrimMulMatVec :: TFMat h w -> w -> h 528PrimMulMatVec :: Mat h w a -> Vec w a -> Vec h a
533PrimMulVecMat :: h -> TFMat h w -> w 529PrimMulVecMat :: Vec h a -> Mat h w a -> Vec w a
534PrimMulMatMat :: TFMat i j -> TFMat j k -> TFMat i k 530PrimMulMatMat :: Mat i j a -> Mat j k a -> Mat i k a
535-- Vector and Scalar Relational Functions 531-- Vector and Scalar Relational Functions
536PrimLessThan, PrimLessThanEqual, PrimGreaterThan, PrimGreaterThanEqual, PrimEqualV, PrimNotEqualV 532PrimLessThan, PrimLessThanEqual, PrimGreaterThan, PrimGreaterThanEqual, PrimEqualV, PrimNotEqualV
537 :: (Num t, a ~ VecScalar d t, b ~ VecScalar d Bool) => a -> a -> b 533 :: (Num t, a ~ VecScalar d t, b ~ VecScalar d Bool) => a -> a -> b