diff options
author | Péter Diviánszky <divipp@gmail.com> | 2016-05-06 12:29:36 +0200 |
---|---|---|
committer | Péter Diviánszky <divipp@gmail.com> | 2016-05-06 12:29:36 +0200 |
commit | d353a29bb93d3105a763465300b28250117c3f40 (patch) | |
tree | 1517e23109d5e3c266b634b3c7af4dd4ca29e4d7 /testdata/Prelude.out | |
parent | 3430070058610b6aeab2543bc050bb1cf2e95d0c (diff) |
show typechecked source code in .out files & fix local function handling (again)
Diffstat (limited to 'testdata/Prelude.out')
-rw-r--r-- | testdata/Prelude.out | 1402 |
1 files changed, 1193 insertions, 209 deletions
diff --git a/testdata/Prelude.out b/testdata/Prelude.out index 90f52a55..556b39e2 100644 --- a/testdata/Prelude.out +++ b/testdata/Prelude.out | |||
@@ -12,7 +12,7 @@ infixr 3 *** | |||
12 | 12 | ||
13 | infixr 0 $ | 13 | infixr 0 $ |
14 | 14 | ||
15 | const = \(a :: _) _ -> _rhs a | 15 | const = \(a :: _) (_ :: _) -> _rhs a |
16 | 16 | ||
17 | otherwise = _rhs True | 17 | otherwise = _rhs True |
18 | 18 | ||
@@ -45,10 +45,10 @@ pi = _rhs 3.141592653589793 | |||
45 | zip :: forall (a :: _) (b :: _) . [a] -> [b] -> [(a, b)] | 45 | zip :: forall (a :: _) (b :: _) . [a] -> [b] -> [(a, b)] |
46 | zip | 46 | zip |
47 | = \(a :: _) (b :: _) -> case'List | 47 | = \(a :: _) (b :: _) -> case'List |
48 | (\_ -> _) | 48 | (\(_ :: _) -> _) |
49 | (_rhs []) | 49 | (_rhs []) |
50 | (\(c :: _) (d :: _) -> case'List | 50 | (\(c :: _) (d :: _) -> case'List |
51 | (\_ -> _) | 51 | (\(_ :: _) -> _) |
52 | (_rhs []) | 52 | (_rhs []) |
53 | (\(e :: _) (f :: _) -> _rhs ((c, e) : zip d f)) | 53 | (\(e :: _) (f :: _) -> _rhs ((c, e) : zip d f)) |
54 | b) | 54 | b) |
@@ -57,7 +57,7 @@ zip | |||
57 | unzip :: forall (a :: _) (b :: _) . [(a, b)] -> ([a], [b]) | 57 | unzip :: forall (a :: _) (b :: _) . [(a, b)] -> ([a], [b]) |
58 | unzip | 58 | unzip |
59 | = \(a :: _) -> case'List | 59 | = \(a :: _) -> case'List |
60 | (\_ -> _) | 60 | (\(_ :: _) -> _) |
61 | (_rhs ([], [])) | 61 | (_rhs ([], [])) |
62 | (\(b :: _) (c :: _) -> hlistConsCase | 62 | (\(b :: _) (c :: _) -> hlistConsCase |
63 | _ | 63 | _ |
@@ -72,14 +72,20 @@ unzip | |||
72 | = _rhs | 72 | = _rhs |
73 | ((\(k :: _) -> hlistConsCase | 73 | ((\(k :: _) -> hlistConsCase |
74 | _ | 74 | _ |
75 | (\_ (l :: _) -> hlistConsCase _ (\(m :: _) (n :: _) -> hlistNilCase _ m n) l) | 75 | (\(_ :: _) (l :: _) -> hlistConsCase |
76 | _ | ||
77 | (\(m :: _) (n :: _) -> hlistNilCase _ m n) | ||
78 | l) | ||
76 | k) | 79 | k) |
77 | h); | 80 | h); |
78 | j | 81 | j |
79 | = _rhs | 82 | = _rhs |
80 | ((\(o :: _) -> hlistConsCase | 83 | ((\(o :: _) -> hlistConsCase |
81 | _ | 84 | _ |
82 | (\(p :: _) (q :: _) -> hlistConsCase _ (\_ (r :: _) -> hlistNilCase _ p r) q) | 85 | (\(p :: _) (q :: _) -> hlistConsCase |
86 | _ | ||
87 | (\(_ :: _) (r :: _) -> hlistNilCase _ p r) | ||
88 | q) | ||
83 | o) | 89 | o) |
84 | h) | 90 | h) |
85 | in (d : j, f : i)) | 91 | in (d : j, f : i)) |
@@ -90,36 +96,41 @@ unzip | |||
90 | 96 | ||
91 | filter | 97 | filter |
92 | = \(a :: _) (b :: _) -> case'List | 98 | = \(a :: _) (b :: _) -> case'List |
93 | (\_ -> _) | 99 | (\(_ :: _) -> _) |
94 | (_rhs []) | 100 | (_rhs []) |
95 | (\(c :: _) (d :: _) -> _rhs | 101 | (\(c :: _) (d :: _) -> _rhs |
96 | ((\(e :: _) -> case'Bool (\_ -> _) (filter a d) (c : filter a d) e) (a c))) | 102 | ((\(e :: _) -> case'Bool (\(_ :: _) -> _) (filter a d) (c : filter a d) e) |
103 | (a c))) | ||
97 | b | 104 | b |
98 | 105 | ||
99 | tail :: forall (a :: _) . [a] -> [a] | 106 | tail :: forall (a :: _) . [a] -> [a] |
100 | tail | 107 | tail |
101 | = \(a :: _) -> case'List (\_ -> _) (_rhs undefined) (\_ (b :: _) -> _rhs b) a | 108 | = \(a :: _) -> case'List |
109 | (\(_ :: _) -> _) | ||
110 | (_rhs undefined) | ||
111 | (\(_ :: _) (b :: _) -> _rhs b) | ||
112 | a | ||
102 | 113 | ||
103 | pairs :: forall (a :: _) . [a] -> [(a, a)] | 114 | pairs :: forall (a :: _) . [a] -> [(a, a)] |
104 | pairs = \(a :: _) -> _rhs (zip a (tail a)) | 115 | pairs = \(a :: _) -> _rhs (zip a (tail a)) |
105 | 116 | ||
106 | foldl' | 117 | foldl' |
107 | = \(a :: _) (b :: _) (c :: _) -> case'List | 118 | = \(a :: _) (b :: _) (c :: _) -> case'List |
108 | (\_ -> _) | 119 | (\(_ :: _) -> _) |
109 | (_rhs b) | 120 | (_rhs b) |
110 | (\(d :: _) (e :: _) -> _rhs (foldl' a (a b d) e)) | 121 | (\(d :: _) (e :: _) -> _rhs (foldl' a (a b d) e)) |
111 | c | 122 | c |
112 | 123 | ||
113 | foldr1 | 124 | foldr1 |
114 | = \(a :: _) (b :: _) -> case'List | 125 | = \(a :: _) (b :: _) -> case'List |
115 | (\_ -> _) | 126 | (\(_ :: _) -> _) |
116 | (_rhs undefined) | 127 | (_rhs undefined) |
117 | (\(c :: _) (d :: _) -> _rhs (foldr a c d)) | 128 | (\(c :: _) (d :: _) -> _rhs (foldr a c d)) |
118 | b | 129 | b |
119 | 130 | ||
120 | split | 131 | split |
121 | = \(a :: _) -> case'List | 132 | = \(a :: _) -> case'List |
122 | (\_ -> _) | 133 | (\(_ :: _) -> _) |
123 | (_rhs ([], [])) | 134 | (_rhs ([], [])) |
124 | (\(b :: _) (c :: _) -> _rhs | 135 | (\(b :: _) (c :: _) -> _rhs |
125 | let | 136 | let |
@@ -128,14 +139,20 @@ split | |||
128 | = _rhs | 139 | = _rhs |
129 | ((\(g :: _) -> hlistConsCase | 140 | ((\(g :: _) -> hlistConsCase |
130 | _ | 141 | _ |
131 | (\_ (h :: _) -> hlistConsCase _ (\(i :: _) (j :: _) -> hlistNilCase _ i j) h) | 142 | (\(_ :: _) (h :: _) -> hlistConsCase |
143 | _ | ||
144 | (\(i :: _) (j :: _) -> hlistNilCase _ i j) | ||
145 | h) | ||
132 | g) | 146 | g) |
133 | d); | 147 | d); |
134 | f | 148 | f |
135 | = _rhs | 149 | = _rhs |
136 | ((\(k :: _) -> hlistConsCase | 150 | ((\(k :: _) -> hlistConsCase |
137 | _ | 151 | _ |
138 | (\(l :: _) (m :: _) -> hlistConsCase _ (\_ (n :: _) -> hlistNilCase _ l n) m) | 152 | (\(l :: _) (m :: _) -> hlistConsCase |
153 | _ | ||
154 | (\(_ :: _) (n :: _) -> hlistNilCase _ l n) | ||
155 | m) | ||
139 | k) | 156 | k) |
140 | d) | 157 | d) |
141 | in (b : e, f)) | 158 | in (b : e, f)) |
@@ -143,14 +160,14 @@ split | |||
143 | 160 | ||
144 | mergeBy | 161 | mergeBy |
145 | = \(a :: _) (b :: _) (c :: _) -> case'List | 162 | = \(a :: _) (b :: _) (c :: _) -> case'List |
146 | (\_ -> _) | 163 | (\(_ :: _) -> _) |
147 | (_rhs c) | 164 | (_rhs c) |
148 | (\(d :: _) (e :: _) -> case'List | 165 | (\(d :: _) (e :: _) -> case'List |
149 | (\_ -> _) | 166 | (\(_ :: _) -> _) |
150 | (_rhs b) | 167 | (_rhs b) |
151 | (\(f :: _) (g :: _) -> _rhs | 168 | (\(f :: _) (g :: _) -> _rhs |
152 | ((\(h :: _) -> case'Ordering | 169 | ((\(h :: _) -> case'Ordering |
153 | (\_ -> _) | 170 | (\(_ :: _) -> _) |
154 | (d : mergeBy a e (f : g)) | 171 | (d : mergeBy a e (f : g)) |
155 | (f : mergeBy a (d : e) g) | 172 | (f : mergeBy a (d : e) g) |
156 | (f : mergeBy a (d : e) g) | 173 | (f : mergeBy a (d : e) g) |
@@ -161,12 +178,13 @@ mergeBy | |||
161 | 178 | ||
162 | sortBy | 179 | sortBy |
163 | = \(a :: _) (b :: _) -> case'List | 180 | = \(a :: _) (b :: _) -> case'List |
164 | (\_ -> _) | 181 | (\(_ :: _) -> _) |
165 | (_rhs []) | 182 | (_rhs []) |
166 | (\(c :: _) (d :: _) -> case'List | 183 | (\(c :: _) (d :: _) -> case'List |
167 | (\_ -> _) | 184 | (\(_ :: _) -> _) |
168 | (_rhs [c]) | 185 | (_rhs [c]) |
169 | (\_ _ -> _rhs (uncurry (mergeBy a) ((sortBy a *** sortBy a) (split b)))) | 186 | (\(_ :: _) (_ :: _) -> _rhs |
187 | (uncurry (mergeBy a) ((sortBy a *** sortBy a) (split b)))) | ||
170 | d) | 188 | d) |
171 | b | 189 | b |
172 | 190 | ||
@@ -178,63 +196,64 @@ fst | |||
178 | _ | 196 | _ |
179 | (\(b :: _) (c :: _) -> hlistConsCase | 197 | (\(b :: _) (c :: _) -> hlistConsCase |
180 | _ | 198 | _ |
181 | (\_ (d :: _) -> hlistNilCase _ (_rhs b) d) | 199 | (\(_ :: _) (d :: _) -> hlistNilCase _ (_rhs b) d) |
182 | c) | 200 | c) |
183 | a | 201 | a |
184 | 202 | ||
185 | snd | 203 | snd |
186 | = \(a :: _) -> hlistConsCase | 204 | = \(a :: _) -> hlistConsCase |
187 | _ | 205 | _ |
188 | (\_ (b :: _) -> hlistConsCase | 206 | (\(_ :: _) (b :: _) -> hlistConsCase |
189 | _ | 207 | _ |
190 | (\(c :: _) (d :: _) -> hlistNilCase _ (_rhs c) d) | 208 | (\(c :: _) (d :: _) -> hlistNilCase _ (_rhs c) d) |
191 | b) | 209 | b) |
192 | a | 210 | a |
193 | 211 | ||
194 | (|||) = \(a :: _) (b :: _) -> case'Bool (\_ -> _) (_rhs b) (_rhs True) a | 212 | (|||) = \(a :: _) (b :: _) -> case'Bool (\(_ :: _) -> _) (_rhs b) (_rhs True) a |
195 | 213 | ||
196 | infixr 2 ||| | 214 | infixr 2 ||| |
197 | 215 | ||
198 | (&&&) = \(a :: _) (b :: _) -> case'Bool (\_ -> _) (_rhs False) (_rhs b) a | 216 | (&&&) = \(a :: _) (b :: _) -> case'Bool (\(_ :: _) -> _) (_rhs False) (_rhs b) a |
199 | 217 | ||
200 | infixr 3 &&& | 218 | infixr 3 &&& |
201 | 219 | ||
202 | data RecItem :: Type where | 220 | data RecItem :: Type where |
203 | RecItem :: String -> Type -> RecItem | 221 | RecItem :: String -> Type -> RecItem |
204 | 222 | ||
205 | recItemType = \(a :: _) -> case'RecItem (\_ -> _) (\_ (b :: _) -> _rhs b) a | 223 | recItemType |
224 | = \(a :: _) -> case'RecItem (\(_ :: _) -> _) (\(_ :: _) (b :: _) -> _rhs b) a | ||
206 | 225 | ||
207 | data RecordC (_ :: [RecItem]) :: Type where | 226 | data RecordC (_ :: [RecItem]) :: Type where |
208 | RecordCons :: forall (a :: [RecItem]) . HList (map recItemType a) -> RecordC a | 227 | RecordCons :: forall (a :: [RecItem]) . HList (map recItemType a) -> RecordC a |
209 | 228 | ||
210 | isKeyC | 229 | isKeyC |
211 | = \(a :: _) (b :: _) (c :: _) -> case'List | 230 | = \(a :: _) (b :: _) (c :: _) -> case'List |
212 | (\_ -> _) | 231 | (\(_ :: _) -> _) |
213 | (_rhs ('CEmpty "")) | 232 | (_rhs ('CEmpty "")) |
214 | (\(d :: _) (e :: _) -> case'RecItem | 233 | (\(d :: _) (e :: _) -> case'RecItem |
215 | (\_ -> _) | 234 | (\(_ :: _) -> _) |
216 | (\(f :: _) (g :: _) -> _rhs | 235 | (\(f :: _) (g :: _) -> _rhs |
217 | (primIfThenElse (a == f) (b `'EqCTt` g) (isKeyC a b e))) | 236 | (primIfThenElse (a == f) (b `'EqCTt` g) (isKeyC a b e))) |
218 | d) | 237 | d) |
219 | c | 238 | c |
220 | 239 | ||
221 | fstTup = _rhs (hlistConsCase (_ :: _) \(a :: _) _ -> a) | 240 | fstTup = _rhs (hlistConsCase (_ :: _) \(a :: _) (_ :: _) -> a) |
222 | 241 | ||
223 | sndTup = _rhs (hlistConsCase (_ :: _) \_ (a :: _) -> a) | 242 | sndTup = _rhs (hlistConsCase (_ :: _) \(_ :: _) (a :: _) -> a) |
224 | 243 | ||
225 | project | 244 | project |
226 | :: forall (a :: _) (b :: [RecItem]) | 245 | :: forall (a :: _) (b :: [RecItem]) |
227 | . forall (c :: String) -> isKeyC c a b => RecordC b -> a | 246 | . forall (c :: String) -> isKeyC c a b => RecordC b -> a |
228 | project | 247 | project |
229 | = \ @(a :: _) @(b :: _) (c :: _) @_ (d :: _) -> case'List | 248 | = \ @(a :: _) @(b :: _) (c :: _) @(_ :: _) (d :: _) -> case'List |
230 | (\_ -> _) | 249 | (\(_ :: _) -> _) |
231 | (_rhs undefined) | 250 | (_rhs undefined) |
232 | (\(e :: _) (f :: _) -> case'RecItem | 251 | (\(e :: _) (f :: _) -> case'RecItem |
233 | (\_ -> _) | 252 | (\(_ :: _) -> _) |
234 | (\(g :: _) _ -> case'RecordC | 253 | (\(g :: _) (_ :: _) -> case'RecordC |
235 | (\_ -> _) | 254 | (\(_ :: _) -> _) |
236 | (\(h :: _) -> case'Bool | 255 | (\(h :: _) -> case'Bool |
237 | (\_ -> _) | 256 | (\(_ :: _) -> _) |
238 | (_rhs | 257 | (_rhs |
239 | (project | 258 | (project |
240 | @a | 259 | @a |
@@ -632,7 +651,7 @@ scale = \(a :: _) (b :: _) -> _rhs (b * V4 a a a 1.0) | |||
632 | fromTo :: Float -> Float -> [Float] | 651 | fromTo :: Float -> Float -> [Float] |
633 | fromTo | 652 | fromTo |
634 | = \(a :: _) (b :: _) -> case'Bool | 653 | = \(a :: _) (b :: _) -> case'Bool |
635 | (\_ -> _) | 654 | (\(_ :: _) -> _) |
636 | (_rhs (a : fromTo (a + fromInt 1) b)) | 655 | (_rhs (a : fromTo (a + fromInt 1) b)) |
637 | (_rhs []) | 656 | (_rhs []) |
638 | (a > b) | 657 | (a > b) |
@@ -640,227 +659,1192 @@ fromTo | |||
640 | (!!) :: forall (a :: _) . [a] -> Int -> a | 659 | (!!) :: forall (a :: _) . [a] -> Int -> a |
641 | (!!) | 660 | (!!) |
642 | = \(a :: _) (b :: _) -> case'List | 661 | = \(a :: _) (b :: _) -> case'List |
643 | (\_ -> _) | 662 | (\(_ :: _) -> _) |
644 | (_rhs undefined) | 663 | (_rhs undefined) |
645 | (\(c :: _) (d :: _) -> case'Bool | 664 | (\(c :: _) (d :: _) -> case'Bool |
646 | (\_ -> _) | 665 | (\(_ :: _) -> _) |
647 | (_rhs (d !! (b - fromInt 1))) | 666 | (_rhs (d !! (b - fromInt 1))) |
648 | (_rhs c) | 667 | (_rhs c) |
649 | (fromInt 0 == b)) | 668 | (fromInt 0 == b)) |
650 | a | 669 | a |
651 | ------------ trace | 670 | ------------ core code |
652 | const :: forall a b . a -> b -> a | 671 | !! :: forall a . [a] -> Int -> a |
653 | otherwise :: Bool | 672 | !! |
654 | (&) :: forall a b . a -> (a -> b) -> b | 673 | = primFix |
655 | ($) :: forall a b . (a -> b) -> a -> b | 674 | (forall a . [a] -> 'Int -> a) |
656 | (.) :: forall a b c . (b -> c) -> (a -> b) -> a -> c | 675 | \b c d e -> case'List |
657 | uncurry :: forall a b c . (a -> c -> b) -> (a, c) -> b | 676 | (\_ -> c) |
658 | (***) :: forall a b c d . (a -> c) -> (b -> d) -> (a, b) -> (c, d) | 677 | (_rhs (undefined c)) |
659 | pi :: Float | 678 | (\f g -> case'Bool |
660 | zip :: forall a b . [a] -> [b] -> [(a, b)] | 679 | (\_ -> c) |
661 | unzip :: forall a b . [(a, b)] -> ([a], [b]) | 680 | (_rhs (b c g (PrimSub 'Int TT e 1))) |
662 | filter :: forall a . (a -> Bool) -> [a] -> [a] | 681 | (_rhs f) |
663 | tail :: forall a . [a] -> [a] | 682 | (isEQ (primCompareInt 0 e))) |
664 | pairs :: forall a . [a] -> [(a, a)] | 683 | d |
665 | foldl' :: forall a b . (a -> b -> a) -> a -> [b] -> a | 684 | |
666 | foldr1 :: forall a . (a -> a -> a) -> [a] -> a | 685 | $ :: forall a b . (a -> b) -> a -> b |
667 | split :: forall a . [a] -> ([a], [a]) | 686 | $ = \_ _ -> _rhs \a b -> a b |
668 | mergeBy :: forall a . (a -> a -> Ordering) -> [a] -> [a] -> [a] | 687 | |
669 | sortBy :: forall a . (a -> a -> Ordering) -> [a] -> [a] | 688 | % |
670 | iterate :: forall a . (a -> a) -> a -> [a] | 689 | :: forall a (b :: Nat) |
671 | fst :: forall a b . (a, b) -> a | 690 | . Num a => VecScalar b a -> VecScalar b a -> VecScalar b a |
672 | snd :: forall a b . (a, b) -> b | 691 | % = \a b c d e -> _rhs (PrimMod a ('VecScalar b a) b c TT d e) |
673 | (|||) :: Bool -> Bool -> Bool | 692 | |
674 | (&&&) :: Bool -> Bool -> Bool | 693 | %! :: forall a (b :: Nat) . Num a => VecScalar b a -> a -> VecScalar b a |
694 | %! = \a b c d e -> _rhs (PrimModS a ('VecScalar b a) b c TT d e) | ||
695 | |||
696 | & :: forall a b . a -> (a -> b) -> b | ||
697 | & = \_ _ a b -> _rhs (b a) | ||
698 | |||
699 | && :: Bool -> Bool -> Bool | ||
700 | && = \a b -> _rhs (PrimAnd a b) | ||
701 | |||
702 | &&& :: Bool -> Bool -> Bool | ||
703 | &&& = \a b -> case'Bool (\_ -> 'Bool) (_rhs False) (_rhs b) a | ||
704 | |||
675 | 'RecItem :: Type | 705 | 'RecItem :: Type |
706 | 'RecItem = <<type constructor with 0 indices; constructors: RecItem>> | ||
707 | |||
708 | 'RecordC :: [RecItem] -> Type | ||
709 | 'RecordC = <<type constructor with 0 indices; constructors: RecordCons>> | ||
710 | |||
711 | * :: forall a . Num (MatVecScalarElem a) => a -> a -> a | ||
712 | * = \a b c d -> _rhs (PrimMul a b c d) | ||
713 | |||
714 | *! :: forall a . Num (MatVecScalarElem a) => a -> MatVecScalarElem a -> a | ||
715 | *! = \a b c d -> _rhs (PrimMulS ('MatVecScalarElem a) a TT b c d) | ||
716 | |||
717 | *** :: forall a b c d . (a -> c) -> (b -> d) -> (a, b) -> (c, d) | ||
718 | *** | ||
719 | = \a b c d e f g -> hlistConsCase | ||
720 | a | ||
721 | [b] | ||
722 | ' (c, d) | ||
723 | (\h i -> hlistConsCase | ||
724 | b | ||
725 | [] | ||
726 | ' (c, d) | ||
727 | (\j k -> hlistNilCase ' (c, d) (_rhs (e h, f j)) k) | ||
728 | i) | ||
729 | g | ||
730 | |||
731 | *. :: forall (a :: Nat) (b :: Nat) c . Mat a b c -> VecS c b -> Vec a c | ||
732 | *. = \a b c d e -> _rhs (PrimMulMatVec a b c d e) | ||
733 | |||
734 | + :: forall a . Num (MatVecScalarElem a) => a -> a -> a | ||
735 | + = \a b c d -> _rhs (PrimAdd a b c d) | ||
736 | |||
737 | +! :: forall a . Num (MatVecScalarElem a) => a -> MatVecScalarElem a -> a | ||
738 | +! = \a b c d -> _rhs (PrimAddS ('MatVecScalarElem a) a TT b c d) | ||
739 | |||
740 | - :: forall a . Num (MatVecScalarElem a) => a -> a -> a | ||
741 | - = \a b c d -> _rhs (PrimSub a b c d) | ||
742 | |||
743 | -! :: forall a . Num (MatVecScalarElem a) => a -> MatVecScalarElem a -> a | ||
744 | -! = \a b c d -> _rhs (PrimSubS ('MatVecScalarElem a) a TT b c d) | ||
745 | |||
746 | . :: forall a b c . (b -> c) -> (a -> b) -> a -> c | ||
747 | . = \_ _ _ -> _rhs \a b c -> a (b c) | ||
748 | |||
749 | .* :: forall (a :: Nat) b (c :: Nat) . VecS b a -> Mat a c b -> Vec c b | ||
750 | .* = \a b c d e -> _rhs (PrimMulVecMat a b c d e) | ||
751 | |||
752 | .*. | ||
753 | :: forall (a :: Nat) (b :: Nat) c (d :: Nat) | ||
754 | . Mat a b c -> Mat b d c -> Mat a d c | ||
755 | .*. = \a b c d e f -> _rhs (PrimMulMatMat a b c d e f) | ||
756 | |||
757 | / | ||
758 | :: forall a (b :: Nat) | ||
759 | . Num a => VecScalar b a -> VecScalar b a -> VecScalar b a | ||
760 | / = \a b c d e -> _rhs (PrimDiv a ('VecScalar b a) b c TT d e) | ||
761 | |||
762 | /! :: forall a (b :: Nat) . Num a => VecScalar b a -> a -> VecScalar b a | ||
763 | /! = \a b c d e -> _rhs (PrimDivS a ('VecScalar b a) b c TT d e) | ||
764 | |||
765 | /= :: forall a . a -> a -> Bool | ||
766 | /= = \a b c -> _rhs (PrimNotEqual a ('MatVecScalarElem a) TT b c) | ||
767 | |||
768 | < | ||
769 | :: forall (a :: Nat) b | ||
770 | . Num b => VecScalar a b -> VecScalar a b -> VecScalar a Bool | ||
771 | < | ||
772 | = \a b c d e -> _rhs | ||
773 | (PrimLessThan ('VecScalar a b) a b ('VecScalar a 'Bool) c TT TT d e) | ||
774 | |||
775 | <= | ||
776 | :: forall (a :: Nat) b | ||
777 | . Num b => VecScalar a b -> VecScalar a b -> VecScalar a Bool | ||
778 | <= | ||
779 | = \a b c d e -> _rhs | ||
780 | (PrimLessThanEqual ('VecScalar a b) a b ('VecScalar a 'Bool) c TT TT d e) | ||
781 | |||
782 | > | ||
783 | :: forall (a :: Nat) b | ||
784 | . Num b => VecScalar a b -> VecScalar a b -> VecScalar a Bool | ||
785 | > | ||
786 | = \a b c d e -> _rhs | ||
787 | (PrimGreaterThan ('VecScalar a b) a b ('VecScalar a 'Bool) c TT TT d e) | ||
788 | |||
789 | >= | ||
790 | :: forall (a :: Nat) b | ||
791 | . Num b => VecScalar a b -> VecScalar a b -> VecScalar a Bool | ||
792 | >= | ||
793 | = \a b c d e -> _rhs | ||
794 | (PrimGreaterThanEqual ('VecScalar a b) a b ('VecScalar a 'Bool) c TT TT d e) | ||
795 | |||
676 | RecItem :: String -> Type -> RecItem | 796 | RecItem :: String -> Type -> RecItem |
797 | RecItem = <<0th constructor of 'RecItem>> | ||
798 | |||
799 | RecordCons | ||
800 | :: forall (a :: [RecItem]) . HList (map RecItem Type recItemType a) -> RecordC a | ||
801 | RecordCons = <<0th constructor of 'RecordC>> | ||
802 | |||
803 | abs :: forall a b (c :: Nat) . (Signed a, b ~ VecScalar c a) => b -> b | ||
804 | abs = _rhs \a b c d e f -> PrimAbs a b c d e f | ||
805 | |||
806 | acos :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
807 | acos = _rhs \a b c d -> PrimACos a b c d | ||
808 | |||
809 | acosh :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
810 | acosh = _rhs \a b c d -> PrimACosH a b c d | ||
811 | |||
812 | all :: forall (a :: Nat) . VecScalar a Bool -> Bool | ||
813 | all = \a b -> _rhs (PrimAll a b) | ||
814 | |||
815 | any :: forall (a :: Nat) . VecScalar a Bool -> Bool | ||
816 | any = \a b -> _rhs (PrimAny a b) | ||
817 | |||
818 | aqua :: VecS Float 4 | ||
819 | aqua = _rhs (V4 0.0 1.0 1.0 1.0) | ||
820 | |||
821 | asin :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
822 | asin = _rhs \a b c d -> PrimASin a b c d | ||
823 | |||
824 | asinh :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
825 | asinh = _rhs \a b c d -> PrimASinH a b c d | ||
826 | |||
827 | atan :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
828 | atan = _rhs \a b c d -> PrimATan a b c d | ||
829 | |||
830 | atan2 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a | ||
831 | atan2 = _rhs \a b c d e -> PrimATan2 a b c d e | ||
832 | |||
833 | atanh :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
834 | atanh = _rhs \a b c d -> PrimATanH a b c d | ||
835 | |||
836 | bAnd :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b | ||
837 | bAnd = _rhs \a b c d e f g -> PrimBAnd a b c d e f g | ||
838 | |||
839 | bAndS :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b | ||
840 | bAndS = _rhs \a b c d e f g -> PrimBAndS a b c d e f g | ||
841 | |||
842 | bNot :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b | ||
843 | bNot = _rhs \a b c d e f -> PrimBNot a b c d e f | ||
844 | |||
845 | bOr :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b | ||
846 | bOr = _rhs \a b c d e f g -> PrimBOr a b c d e f g | ||
847 | |||
848 | bOrS :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b | ||
849 | bOrS = _rhs \a b c d e f g -> PrimBOrS a b c d e f g | ||
850 | |||
851 | bXor :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b | ||
852 | bXor = _rhs \a b c d e f g -> PrimBXor a b c d e f g | ||
853 | |||
854 | bXorS :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b | ||
855 | bXorS = _rhs \a b c d e f g -> PrimBXorS a b c d e f g | ||
856 | |||
857 | black :: VecS Float 4 | ||
858 | black = _rhs (V4 0.0 0.0 0.0 1.0) | ||
859 | |||
860 | blue :: VecS Float 4 | ||
861 | blue = _rhs (V4 0.0 0.0 1.0 1.0) | ||
862 | |||
677 | case'RecItem | 863 | case'RecItem |
678 | :: forall (a :: RecItem -> Type) | 864 | :: forall (a :: RecItem -> Type) |
679 | -> (forall (b :: String) c -> a ('RecItem b c)) -> forall (d :: RecItem) -> a d | 865 | -> (forall (b :: String) c -> a ('RecItem b c)) -> forall (d :: RecItem) -> a d |
680 | match'RecItem | 866 | case'RecItem = \a b c -> <<case function of a type with 0 parameters>> |
681 | :: forall (a :: Type -> Type) -> a RecItem -> forall b -> a b -> a b | 867 | |
682 | recItemType :: RecItem -> Type | ||
683 | 'RecordC :: [RecItem] -> Type | ||
684 | RecordCons | ||
685 | :: forall (a :: [RecItem]) . HList (map RecItem Type recItemType a) -> RecordC a | ||
686 | case'RecordC | 868 | case'RecordC |
687 | :: forall (a :: [RecItem]) | 869 | :: forall (a :: [RecItem]) |
688 | . forall (b :: RecordC a -> Type) | 870 | . forall (b :: RecordC a -> Type) |
689 | -> (forall (c :: HList (map RecItem Type recItemType a)) -> b ('RecordCons c)) | 871 | -> (forall (c :: HList (map RecItem Type recItemType a)) -> b ('RecordCons c)) |
690 | -> forall (d :: RecordC a) -> b d | 872 | -> forall (d :: RecordC a) -> b d |
691 | match'RecordC | 873 | case'RecordC = \_ a b c -> <<case function of a type with 1 parameters>> |
692 | :: forall (a :: Type -> Type) | 874 | |
693 | -> (forall (b :: [RecItem]) -> a (RecordC b)) -> forall c -> a c -> a c | 875 | ceil :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a |
694 | isKeyC :: String -> Type -> [RecItem] -> Constraint | 876 | ceil = _rhs \a b c d -> PrimCeil a b c d |
695 | fstTup :: forall a (b :: [Type]) . HList (a : b) -> a | 877 | |
696 | sndTup :: forall a (b :: [Type]) . HList (a : b) -> HList b | 878 | clamp :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b -> b |
697 | project | 879 | clamp = _rhs \a b c d e f g h -> PrimClamp a b c d e f g h |
698 | :: forall a (b :: [RecItem]) | 880 | |
699 | . forall (c :: String) -> isKeyC c a b => RecordC b -> a | 881 | clampS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> a -> b |
700 | rgb :: Float -> Float -> Float -> VecS Float 4 | 882 | clampS = _rhs \a b c d e f g h -> PrimClampS a b c d e f g h |
701 | black :: VecS Float 4 | 883 | |
702 | gray :: VecS Float 4 | ||
703 | silver :: VecS Float 4 | ||
704 | white :: VecS Float 4 | ||
705 | maroon :: VecS Float 4 | ||
706 | red :: VecS Float 4 | ||
707 | olive :: VecS Float 4 | ||
708 | yellow :: VecS Float 4 | ||
709 | green :: VecS Float 4 | ||
710 | lime :: VecS Float 4 | ||
711 | teal :: VecS Float 4 | ||
712 | aqua :: VecS Float 4 | ||
713 | navy :: VecS Float 4 | ||
714 | blue :: VecS Float 4 | ||
715 | purple :: VecS Float 4 | ||
716 | fuchsia :: VecS Float 4 | ||
717 | colorImage1 | 884 | colorImage1 |
718 | :: forall (a :: Nat) b c . (Num b, c ~ VecScalar a b) => c -> Image 1 ('Color c) | 885 | :: forall (a :: Nat) b c . (Num b, c ~ VecScalar a b) => c -> Image 1 ('Color c) |
886 | colorImage1 = _rhs \a b c d e f -> ColorImage 1 a b c d e f | ||
887 | |||
719 | colorImage2 | 888 | colorImage2 |
720 | :: forall (a :: Nat) b c . (Num b, c ~ VecScalar a b) => c -> Image 2 ('Color c) | 889 | :: forall (a :: Nat) b c . (Num b, c ~ VecScalar a b) => c -> Image 2 ('Color c) |
721 | depthImage1 :: Float -> Image 1 'Depth | 890 | colorImage2 = _rhs \a b c d e f -> ColorImage 2 a b c d e f |
722 | v3FToV4F :: Vec 3 Float -> VecS Float 4 | 891 | |
723 | radians :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 892 | const :: forall a b . a -> b -> a |
724 | degrees :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 893 | const = \_ _ a _ -> _rhs a |
725 | sin :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 894 | |
726 | cos :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 895 | cos :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a |
727 | tan :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 896 | cos = _rhs \a b c d -> PrimCos a b c d |
728 | sinh :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 897 | |
729 | cosh :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 898 | cosh :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a |
730 | tanh :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 899 | cosh = _rhs \a b c d -> PrimCosH a b c d |
731 | asin :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 900 | |
732 | asinh :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 901 | cross :: forall a . (a ~ VecS Float 3) => a -> a -> a |
733 | acos :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 902 | cross = _rhs \a b c d -> PrimCross a b c d |
734 | acosh :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 903 | |
735 | atan :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 904 | dFdx :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a |
736 | atanh :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 905 | dFdx = _rhs \a b c d -> PrimDFdx a b c d |
737 | atan2 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a | 906 | |
738 | pow :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a | 907 | dFdy :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a |
908 | dFdy = _rhs \a b c d -> PrimDFdy a b c d | ||
909 | |||
910 | degrees :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
911 | degrees = _rhs \a b c d -> PrimDegrees a b c d | ||
912 | |||
913 | depthImage1 :: Float -> Image 1 'Depth | ||
914 | depthImage1 = _rhs \a -> DepthImage 1 a | ||
915 | |||
916 | det :: forall (a :: Nat) b . Mat a a b -> Float | ||
917 | det = _rhs \a b c -> PrimDeterminant a b c | ||
918 | |||
919 | distance :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float | ||
920 | distance = _rhs \a b c d e -> PrimDistance a b c d e | ||
921 | |||
922 | dot :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float | ||
923 | dot = _rhs \a b c d e -> PrimDot a b c d e | ||
924 | |||
739 | exp :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 925 | exp :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a |
740 | log :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 926 | exp = _rhs \a b c d -> PrimExp a b c d |
927 | |||
741 | exp2 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 928 | exp2 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a |
742 | log2 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 929 | exp2 = _rhs \a b c d -> PrimExp2 a b c d |
743 | sqrt :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 930 | |
744 | inversesqrt :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 931 | fWidth :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a |
745 | abs :: forall a b (c :: Nat) . (Signed a, b ~ VecScalar c a) => b -> b | 932 | fWidth = _rhs \a b c d -> PrimFWidth a b c d |
746 | sign :: forall a b (c :: Nat) . (Signed a, b ~ VecScalar c a) => b -> b | 933 | |
934 | faceforward :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a | ||
935 | faceforward = _rhs \a b c d e f -> PrimFaceForward a b c d e f | ||
936 | |||
937 | filter :: forall a . (a -> Bool) -> [a] -> [a] | ||
938 | filter | ||
939 | = \a -> primFix | ||
940 | ((a -> 'Bool) -> [a] -> [a]) | ||
941 | \b c d -> case'List | ||
942 | (\_ -> [a]) | ||
943 | (_rhs []) | ||
944 | (\e f -> _rhs (case'Bool (\_ -> [a]) (b c f) (e : b c f) (c e))) | ||
945 | d | ||
946 | |||
947 | floatBitsToInt :: forall (a :: Nat) . VecScalar a Float -> VecScalar a Int | ||
948 | floatBitsToInt = _rhs \a b -> PrimFloatBitsToInt a b | ||
949 | |||
950 | floatBitsToWord :: forall (a :: Nat) . VecScalar a Float -> VecScalar a Word | ||
951 | floatBitsToWord = _rhs \a b -> PrimFloatBitsToUInt a b | ||
952 | |||
747 | floor :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 953 | floor :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a |
748 | trunc :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 954 | floor = _rhs \a b c d -> PrimFloor a b c d |
749 | round :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 955 | |
750 | roundEven :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 956 | foldl' :: forall a b . (a -> b -> a) -> a -> [b] -> a |
751 | ceil :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 957 | foldl' |
958 | = \a b -> primFix | ||
959 | ((a -> b -> a) -> a -> [b] -> a) | ||
960 | \c d e f -> case'List (\_ -> a) (_rhs e) (\g h -> _rhs (c d (d e g) h)) f | ||
961 | |||
962 | foldr1 :: forall a . (a -> a -> a) -> [a] -> a | ||
963 | foldr1 | ||
964 | = \a b c -> case'List | ||
965 | (\_ -> a) | ||
966 | (_rhs (undefined a)) | ||
967 | (\d e -> _rhs (foldr a a b d e)) | ||
968 | c | ||
969 | |||
752 | fract :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 970 | fract :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a |
753 | mod :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b | 971 | fract = _rhs \a b c d -> PrimFract a b c d |
754 | min :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b | 972 | |
755 | max :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b | 973 | fromTo :: Float -> Float -> [Float] |
756 | modF :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> (a, a) | 974 | fromTo |
757 | clamp :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b -> b | 975 | = primFix |
758 | clampS :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> a -> a -> b | 976 | ('Float -> 'Float -> ['Float]) |
759 | mix :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a | 977 | \a b c -> case'Bool |
760 | mixS :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float -> a | 978 | (\_ -> ['Float]) |
761 | mixB | 979 | (_rhs (b : a (PrimAdd 'Float TT b 1.0) c)) |
980 | (_rhs []) | ||
981 | (PrimGreaterThan 'Float 1 'Float 'Bool TT TT TT b c) | ||
982 | |||
983 | fst :: forall a b . (a, b) -> a | ||
984 | fst | ||
985 | = \a b c -> hlistConsCase | ||
986 | a | ||
987 | [b] | ||
988 | a | ||
989 | (\d e -> hlistConsCase b [] a (\_ f -> hlistNilCase a (_rhs d) f) e) | ||
990 | c | ||
991 | |||
992 | fstTup :: forall a (b :: [Type]) . HList (a : b) -> a | ||
993 | fstTup = \a b -> _rhs \c -> hlistConsCase a b a (\d _ -> d) c | ||
994 | |||
995 | fuchsia :: VecS Float 4 | ||
996 | fuchsia = _rhs (V4 1.0 0.0 1.0 1.0) | ||
997 | |||
998 | gray :: VecS Float 4 | ||
999 | gray = _rhs (V4 0.5 0.5 0.5 1.0) | ||
1000 | |||
1001 | green :: VecS Float 4 | ||
1002 | green = _rhs (V4 0.0 0.5 0.0 1.0) | ||
1003 | |||
1004 | intBitsToFloat :: forall (a :: Nat) . VecScalar a Int -> VecScalar a Float | ||
1005 | intBitsToFloat = _rhs \a b -> PrimIntBitsToFloat a b | ||
1006 | |||
1007 | inv :: forall (a :: Nat) b . Mat a a b -> Mat a a b | ||
1008 | inv = _rhs \a b c -> PrimInverse a b c | ||
1009 | |||
1010 | inversesqrt :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1011 | inversesqrt = _rhs \a b c d -> PrimInvSqrt a b c d | ||
1012 | |||
1013 | isInf | ||
762 | :: forall a (b :: Nat) c | 1014 | :: forall a (b :: Nat) c |
763 | . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> a -> c -> a | 1015 | . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> c |
764 | step :: forall a (b :: Nat) . (a ~ VecS Float b) => a -> a -> a | 1016 | isInf = _rhs \a b c d e f -> PrimIsInf a b c d e f |
765 | stepS :: forall a (b :: Nat) . (a ~ VecScalar b Float) => Float -> a -> a | 1017 | |
766 | smoothstep :: forall a (b :: Nat) . (a ~ VecS Float b) => a -> a -> a -> a | 1018 | isKeyC :: String -> Type -> [RecItem] -> Constraint |
767 | smoothstepS | 1019 | isKeyC |
768 | :: forall a (b :: Nat) . (a ~ VecScalar b Float) => Float -> Float -> a -> a | 1020 | = primFix |
1021 | ('String -> Type -> ['RecItem] -> 'Constraint) | ||
1022 | \a b c d -> case'List | ||
1023 | (\_ -> 'Constraint) | ||
1024 | (_rhs (CEmpty "")) | ||
1025 | (\e f -> case'RecItem | ||
1026 | (\_ -> 'Constraint) | ||
1027 | (\g h -> _rhs | ||
1028 | (primIfThenElse 'Constraint (isEQ (primCompareString b g)) (c ~ h) (a b c f))) | ||
1029 | e) | ||
1030 | d | ||
1031 | |||
769 | isNan | 1032 | isNan |
770 | :: forall a (b :: Nat) c | 1033 | :: forall a (b :: Nat) c |
771 | . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> c | 1034 | . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> c |
772 | isInf | 1035 | isNan = _rhs \a b c d e f -> PrimIsNan a b c d e f |
1036 | |||
1037 | iterate :: forall a . (a -> a) -> a -> [a] | ||
1038 | iterate | ||
1039 | = primFix (forall a . (a -> a) -> a -> [a]) \b c d e -> _rhs (e : b c d (d e)) | ||
1040 | |||
1041 | length :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> Float | ||
1042 | length = _rhs \a b c d -> PrimLength a b c d | ||
1043 | |||
1044 | lime :: VecS Float 4 | ||
1045 | lime = _rhs (V4 0.0 1.0 0.0 1.0) | ||
1046 | |||
1047 | log :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1048 | log = _rhs \a b c d -> PrimLog a b c d | ||
1049 | |||
1050 | log2 :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1051 | log2 = _rhs \a b c d -> PrimLog2 a b c d | ||
1052 | |||
1053 | lookat :: Vec 3 Float -> Vec 3 Float -> Vec 3 Float -> Mat 4 4 Float | ||
1054 | lookat | ||
1055 | = \a b c -> _rhs | ||
1056 | (PrimMulMatMat | ||
1057 | 4 | ||
1058 | 4 | ||
1059 | 'Float | ||
1060 | 4 | ||
1061 | (PrimTranspose | ||
1062 | 4 | ||
1063 | 4 | ||
1064 | 'Float | ||
1065 | (M44F | ||
1066 | (V4 | ||
1067 | (swizzscalar | ||
1068 | 'Float | ||
1069 | 3 | ||
1070 | (PrimNormalize | ||
1071 | ('VecS 'Float 3) | ||
1072 | 3 | ||
1073 | TT | ||
1074 | (PrimCross | ||
1075 | ('VecS 'Float 3) | ||
1076 | TT | ||
1077 | c | ||
1078 | (PrimNormalize ('VecS 'Float 3) 3 TT (PrimSub ('VecS 'Float 3) TT a b)))) | ||
1079 | Sx) | ||
1080 | (swizzscalar | ||
1081 | 'Float | ||
1082 | 3 | ||
1083 | (PrimNormalize | ||
1084 | ('VecS 'Float 3) | ||
1085 | 3 | ||
1086 | TT | ||
1087 | (PrimCross | ||
1088 | ('VecS 'Float 3) | ||
1089 | TT | ||
1090 | c | ||
1091 | (PrimNormalize ('VecS 'Float 3) 3 TT (PrimSub ('VecS 'Float 3) TT a b)))) | ||
1092 | Sy) | ||
1093 | (swizzscalar | ||
1094 | 'Float | ||
1095 | 3 | ||
1096 | (PrimNormalize | ||
1097 | ('VecS 'Float 3) | ||
1098 | 3 | ||
1099 | TT | ||
1100 | (PrimCross | ||
1101 | ('VecS 'Float 3) | ||
1102 | TT | ||
1103 | c | ||
1104 | (PrimNormalize ('VecS 'Float 3) 3 TT (PrimSub ('VecS 'Float 3) TT a b)))) | ||
1105 | Sz) | ||
1106 | 0.0) | ||
1107 | (V4 | ||
1108 | (swizzscalar | ||
1109 | 'Float | ||
1110 | 3 | ||
1111 | (PrimCross | ||
1112 | ('VecS 'Float 3) | ||
1113 | TT | ||
1114 | (PrimNormalize ('VecS 'Float 3) 3 TT (PrimSub ('VecS 'Float 3) TT a b)) | ||
1115 | (PrimNormalize | ||
1116 | ('VecS 'Float 3) | ||
1117 | 3 | ||
1118 | TT | ||
1119 | (PrimCross | ||
1120 | ('VecS 'Float 3) | ||
1121 | TT | ||
1122 | c | ||
1123 | (PrimNormalize ('VecS 'Float 3) 3 TT (PrimSub ('VecS 'Float 3) TT a b))))) | ||
1124 | Sx) | ||
1125 | (swizzscalar | ||
1126 | 'Float | ||
1127 | 3 | ||
1128 | (PrimCross | ||
1129 | ('VecS 'Float 3) | ||
1130 | TT | ||
1131 | (PrimNormalize ('VecS 'Float 3) 3 TT (PrimSub ('VecS 'Float 3) TT a b)) | ||
1132 | (PrimNormalize | ||
1133 | ('VecS 'Float 3) | ||
1134 | 3 | ||
1135 | TT | ||
1136 | (PrimCross | ||
1137 | ('VecS 'Float 3) | ||
1138 | TT | ||
1139 | c | ||
1140 | (PrimNormalize ('VecS 'Float 3) 3 TT (PrimSub ('VecS 'Float 3) TT a b))))) | ||
1141 | Sy) | ||
1142 | (swizzscalar | ||
1143 | 'Float | ||
1144 | 3 | ||
1145 | (PrimCross | ||
1146 | ('VecS 'Float 3) | ||
1147 | TT | ||
1148 | (PrimNormalize ('VecS 'Float 3) 3 TT (PrimSub ('VecS 'Float 3) TT a b)) | ||
1149 | (PrimNormalize | ||
1150 | ('VecS 'Float 3) | ||
1151 | 3 | ||
1152 | TT | ||
1153 | (PrimCross | ||
1154 | ('VecS 'Float 3) | ||
1155 | TT | ||
1156 | c | ||
1157 | (PrimNormalize ('VecS 'Float 3) 3 TT (PrimSub ('VecS 'Float 3) TT a b))))) | ||
1158 | Sz) | ||
1159 | 0.0) | ||
1160 | (V4 | ||
1161 | (swizzscalar | ||
1162 | 'Float | ||
1163 | 3 | ||
1164 | (PrimNormalize ('VecS 'Float 3) 3 TT (PrimSub ('VecS 'Float 3) TT a b)) | ||
1165 | Sx) | ||
1166 | (swizzscalar | ||
1167 | 'Float | ||
1168 | 3 | ||
1169 | (PrimNormalize ('VecS 'Float 3) 3 TT (PrimSub ('VecS 'Float 3) TT a b)) | ||
1170 | Sy) | ||
1171 | (swizzscalar | ||
1172 | 'Float | ||
1173 | 3 | ||
1174 | (PrimNormalize ('VecS 'Float 3) 3 TT (PrimSub ('VecS 'Float 3) TT a b)) | ||
1175 | Sz) | ||
1176 | 0.0) | ||
1177 | (V4 0.0 0.0 0.0 1.0))) | ||
1178 | (M44F | ||
1179 | (V4 1.0 0.0 0.0 0.0) | ||
1180 | (V4 0.0 1.0 0.0 0.0) | ||
1181 | (V4 0.0 0.0 1.0 0.0) | ||
1182 | (V4 | ||
1183 | (swizzscalar 'Float 3 (PrimNeg ('VecS 'Float 3) TT a) Sx) | ||
1184 | (swizzscalar 'Float 3 (PrimNeg ('VecS 'Float 3) TT a) Sy) | ||
1185 | (swizzscalar 'Float 3 (PrimNeg ('VecS 'Float 3) TT a) Sz) | ||
1186 | 1.0))) | ||
1187 | |||
1188 | maroon :: VecS Float 4 | ||
1189 | maroon = _rhs (V4 0.5 0.0 0.0 1.0) | ||
1190 | |||
1191 | match'RecItem | ||
1192 | :: forall (a :: Type -> Type) -> a RecItem -> forall b -> a b -> a b | ||
1193 | match'RecItem = \a b c d -> <<type case function>> | ||
1194 | |||
1195 | match'RecordC | ||
1196 | :: forall (a :: Type -> Type) | ||
1197 | -> (forall (b :: [RecItem]) -> a (RecordC b)) -> forall c -> a c -> a c | ||
1198 | match'RecordC = \a b c d -> <<type case function>> | ||
1199 | |||
1200 | max :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b | ||
1201 | max = _rhs \a b c d e f g -> PrimMax a b c d e f g | ||
1202 | |||
1203 | mergeBy :: forall a . (a -> a -> Ordering) -> [a] -> [a] -> [a] | ||
1204 | mergeBy | ||
1205 | = \a -> primFix | ||
1206 | ((a -> a -> 'Ordering) -> [a] -> [a] -> [a]) | ||
1207 | \b c d e -> case'List | ||
1208 | (\_ -> [a]) | ||
1209 | (_rhs e) | ||
1210 | (\f g -> case'List | ||
1211 | (\_ -> [a]) | ||
1212 | (_rhs d) | ||
1213 | (\h i -> _rhs | ||
1214 | (case'Ordering | ||
1215 | (\_ -> [a]) | ||
1216 | (f : b c g (h : i)) | ||
1217 | (h : b c (f : g) i) | ||
1218 | (h : b c (f : g) i) | ||
1219 | (c f h))) | ||
1220 | e) | ||
1221 | d | ||
1222 | |||
1223 | min :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b | ||
1224 | min = _rhs \a b c d e f g -> PrimMin a b c d e f g | ||
1225 | |||
1226 | mix :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a | ||
1227 | mix = _rhs \a b c d e f -> PrimMix a b c d e f | ||
1228 | |||
1229 | mixB | ||
773 | :: forall a (b :: Nat) c | 1230 | :: forall a (b :: Nat) c |
774 | . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> c | 1231 | . (a ~ VecScalar b Float, c ~ VecScalar b Bool) => a -> a -> c -> a |
775 | dFdx :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 1232 | mixB = _rhs \a b c d e f g h -> PrimMixB a b c d e f g h |
776 | dFdy :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 1233 | |
777 | fWidth :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 1234 | mixS :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float -> a |
1235 | mixS = _rhs \a b c d e f -> PrimMixS a b c d e f | ||
1236 | |||
1237 | mod :: forall a b (c :: Nat) . (Num a, b ~ VecScalar c a) => b -> b -> b | ||
1238 | mod = _rhs \a b c d e f g -> PrimMod a b c d e f g | ||
1239 | |||
1240 | modF :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> (a, a) | ||
1241 | modF = _rhs \a b c d -> PrimModF a b c d | ||
1242 | |||
1243 | navy :: VecS Float 4 | ||
1244 | navy = _rhs (V4 0.0 0.0 0.5 1.0) | ||
1245 | |||
1246 | neg :: forall a . Signed (MatVecScalarElem a) => a -> a | ||
1247 | neg = \a b c -> _rhs (PrimNeg a b c) | ||
1248 | |||
778 | noise1 :: forall (a :: Nat) . VecScalar a Float -> Float | 1249 | noise1 :: forall (a :: Nat) . VecScalar a Float -> Float |
1250 | noise1 = _rhs \a b -> PrimNoise1 a b | ||
1251 | |||
779 | noise2 :: forall (a :: Nat) . VecScalar a Float -> Vec 2 Float | 1252 | noise2 :: forall (a :: Nat) . VecScalar a Float -> Vec 2 Float |
1253 | noise2 = _rhs \a b -> PrimNoise2 a b | ||
1254 | |||
780 | noise3 :: forall (a :: Nat) . VecScalar a Float -> Vec 3 Float | 1255 | noise3 :: forall (a :: Nat) . VecScalar a Float -> Vec 3 Float |
1256 | noise3 = _rhs \a b -> PrimNoise3 a b | ||
1257 | |||
781 | noise4 :: forall (a :: Nat) . VecScalar a Float -> Vec 4 Float | 1258 | noise4 :: forall (a :: Nat) . VecScalar a Float -> Vec 4 Float |
782 | length :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> Float | 1259 | noise4 = _rhs \a b -> PrimNoise4 a b |
783 | distance :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float | 1260 | |
784 | dot :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> Float | ||
785 | cross :: forall a . (a ~ VecS Float 3) => a -> a -> a | ||
786 | normalize :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | 1261 | normalize :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a |
787 | faceforward :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a | 1262 | normalize = _rhs \a b c d -> PrimNormalize a b c d |
1263 | |||
1264 | not :: forall (a :: Nat) . VecScalar a Bool -> VecScalar a Bool | ||
1265 | not = \a b -> _rhs (PrimNot ('VecScalar a 'Bool) a TT b) | ||
1266 | |||
1267 | olive :: VecS Float 4 | ||
1268 | olive = _rhs (V4 0.5 0.5 0.0 1.0) | ||
1269 | |||
1270 | otherwise :: Bool | ||
1271 | otherwise = _rhs True | ||
1272 | |||
1273 | outer :: forall (a :: Nat) b (c :: Nat) . Vec a b -> Vec c b -> Mat c a b | ||
1274 | outer = _rhs \a b c d e -> PrimOuterProduct a b c d e | ||
1275 | |||
1276 | pairs :: forall a . [a] -> [(a, a)] | ||
1277 | pairs = \a b -> _rhs (zip a a b (tail a b)) | ||
1278 | |||
1279 | perspective :: Float -> Float -> Float -> Float -> Mat 4 4 Float | ||
1280 | perspective | ||
1281 | = \a b c d -> _rhs | ||
1282 | (M44F | ||
1283 | (V4 | ||
1284 | (PrimDiv | ||
1285 | 'Float | ||
1286 | 'Float | ||
1287 | 1 | ||
1288 | TT | ||
1289 | TT | ||
1290 | (PrimMul 'Float TT 2.0 a) | ||
1291 | (PrimSub | ||
1292 | 'Float | ||
1293 | TT | ||
1294 | (PrimMul | ||
1295 | 'Float | ||
1296 | TT | ||
1297 | d | ||
1298 | (PrimMul | ||
1299 | 'Float | ||
1300 | TT | ||
1301 | a | ||
1302 | (PrimTan 'Float 1 TT (PrimDiv 'Float 'Float 1 TT TT c 2.0)))) | ||
1303 | (PrimSub | ||
1304 | 'Float | ||
1305 | TT | ||
1306 | 0.0 | ||
1307 | (PrimMul | ||
1308 | 'Float | ||
1309 | TT | ||
1310 | d | ||
1311 | (PrimMul | ||
1312 | 'Float | ||
1313 | TT | ||
1314 | a | ||
1315 | (PrimTan 'Float 1 TT (PrimDiv 'Float 'Float 1 TT TT c 2.0))))))) | ||
1316 | 0.0 | ||
1317 | 0.0 | ||
1318 | 0.0) | ||
1319 | (V4 | ||
1320 | 0.0 | ||
1321 | (PrimDiv | ||
1322 | 'Float | ||
1323 | 'Float | ||
1324 | 1 | ||
1325 | TT | ||
1326 | TT | ||
1327 | (PrimMul 'Float TT 2.0 a) | ||
1328 | (PrimSub | ||
1329 | 'Float | ||
1330 | TT | ||
1331 | (PrimMul | ||
1332 | 'Float | ||
1333 | TT | ||
1334 | a | ||
1335 | (PrimTan 'Float 1 TT (PrimDiv 'Float 'Float 1 TT TT c 2.0))) | ||
1336 | (PrimSub | ||
1337 | 'Float | ||
1338 | TT | ||
1339 | 0.0 | ||
1340 | (PrimMul | ||
1341 | 'Float | ||
1342 | TT | ||
1343 | a | ||
1344 | (PrimTan 'Float 1 TT (PrimDiv 'Float 'Float 1 TT TT c 2.0)))))) | ||
1345 | 0.0 | ||
1346 | 0.0) | ||
1347 | (V4 | ||
1348 | (PrimDiv | ||
1349 | 'Float | ||
1350 | 'Float | ||
1351 | 1 | ||
1352 | TT | ||
1353 | TT | ||
1354 | (PrimAdd | ||
1355 | 'Float | ||
1356 | TT | ||
1357 | (PrimMul | ||
1358 | 'Float | ||
1359 | TT | ||
1360 | d | ||
1361 | (PrimMul | ||
1362 | 'Float | ||
1363 | TT | ||
1364 | a | ||
1365 | (PrimTan 'Float 1 TT (PrimDiv 'Float 'Float 1 TT TT c 2.0)))) | ||
1366 | (PrimSub | ||
1367 | 'Float | ||
1368 | TT | ||
1369 | 0.0 | ||
1370 | (PrimMul | ||
1371 | 'Float | ||
1372 | TT | ||
1373 | d | ||
1374 | (PrimMul | ||
1375 | 'Float | ||
1376 | TT | ||
1377 | a | ||
1378 | (PrimTan 'Float 1 TT (PrimDiv 'Float 'Float 1 TT TT c 2.0)))))) | ||
1379 | (PrimSub | ||
1380 | 'Float | ||
1381 | TT | ||
1382 | (PrimMul | ||
1383 | 'Float | ||
1384 | TT | ||
1385 | d | ||
1386 | (PrimMul | ||
1387 | 'Float | ||
1388 | TT | ||
1389 | a | ||
1390 | (PrimTan 'Float 1 TT (PrimDiv 'Float 'Float 1 TT TT c 2.0)))) | ||
1391 | (PrimSub | ||
1392 | 'Float | ||
1393 | TT | ||
1394 | 0.0 | ||
1395 | (PrimMul | ||
1396 | 'Float | ||
1397 | TT | ||
1398 | d | ||
1399 | (PrimMul | ||
1400 | 'Float | ||
1401 | TT | ||
1402 | a | ||
1403 | (PrimTan 'Float 1 TT (PrimDiv 'Float 'Float 1 TT TT c 2.0))))))) | ||
1404 | (PrimDiv | ||
1405 | 'Float | ||
1406 | 'Float | ||
1407 | 1 | ||
1408 | TT | ||
1409 | TT | ||
1410 | (PrimAdd | ||
1411 | 'Float | ||
1412 | TT | ||
1413 | (PrimMul | ||
1414 | 'Float | ||
1415 | TT | ||
1416 | a | ||
1417 | (PrimTan 'Float 1 TT (PrimDiv 'Float 'Float 1 TT TT c 2.0))) | ||
1418 | (PrimSub | ||
1419 | 'Float | ||
1420 | TT | ||
1421 | 0.0 | ||
1422 | (PrimMul | ||
1423 | 'Float | ||
1424 | TT | ||
1425 | a | ||
1426 | (PrimTan 'Float 1 TT (PrimDiv 'Float 'Float 1 TT TT c 2.0))))) | ||
1427 | (PrimSub | ||
1428 | 'Float | ||
1429 | TT | ||
1430 | (PrimMul | ||
1431 | 'Float | ||
1432 | TT | ||
1433 | a | ||
1434 | (PrimTan 'Float 1 TT (PrimDiv 'Float 'Float 1 TT TT c 2.0))) | ||
1435 | (PrimSub | ||
1436 | 'Float | ||
1437 | TT | ||
1438 | 0.0 | ||
1439 | (PrimMul | ||
1440 | 'Float | ||
1441 | TT | ||
1442 | a | ||
1443 | (PrimTan 'Float 1 TT (PrimDiv 'Float 'Float 1 TT TT c 2.0)))))) | ||
1444 | (PrimSub | ||
1445 | 'Float | ||
1446 | TT | ||
1447 | 0.0 | ||
1448 | (PrimDiv 'Float 'Float 1 TT TT (PrimAdd 'Float TT b a) (PrimSub 'Float TT b a))) | ||
1449 | -1.0) | ||
1450 | (V4 | ||
1451 | 0.0 | ||
1452 | 0.0 | ||
1453 | (PrimSub | ||
1454 | 'Float | ||
1455 | TT | ||
1456 | 0.0 | ||
1457 | (PrimDiv | ||
1458 | 'Float | ||
1459 | 'Float | ||
1460 | 1 | ||
1461 | TT | ||
1462 | TT | ||
1463 | (PrimMul 'Float TT (PrimMul 'Float TT 2.0 b) a) | ||
1464 | (PrimSub 'Float TT b a))) | ||
1465 | 0.0)) | ||
1466 | |||
1467 | pi :: Float | ||
1468 | pi = _rhs 3.141592653589793 | ||
1469 | |||
1470 | pow :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a | ||
1471 | pow = _rhs \a b c d e -> PrimPow a b c d e | ||
1472 | |||
1473 | project | ||
1474 | :: forall a (b :: [RecItem]) | ||
1475 | . forall (c :: String) -> isKeyC c a b => RecordC b -> a | ||
1476 | project | ||
1477 | = primFix | ||
1478 | (forall a (b :: [RecItem]) | ||
1479 | . forall (c :: String) -> isKeyC c a b => 'RecordC b -> a) | ||
1480 | \d e f g _ h -> case'List | ||
1481 | (\_ -> e) | ||
1482 | (_rhs (undefined e)) | ||
1483 | (\i j -> case'RecItem | ||
1484 | (\_ -> e) | ||
1485 | (\k _ -> case'RecordC | ||
1486 | (\_ -> e) | ||
1487 | (\l -> case'Bool | ||
1488 | (\_ -> e) | ||
1489 | (_rhs | ||
1490 | (d | ||
1491 | e | ||
1492 | j | ||
1493 | g | ||
1494 | (undefined ('CW (isKeyC g e j))) | ||
1495 | (RecordCons | ||
1496 | (hlistConsCase | ||
1497 | e | ||
1498 | (map 'RecItem Type recItemType j) | ||
1499 | ('HList (map 'RecItem Type recItemType j)) | ||
1500 | (\_ m -> m) | ||
1501 | (unsafeCoerce | ||
1502 | ('HList (map 'RecItem Type recItemType f)) | ||
1503 | ('HList (e : map 'RecItem Type recItemType j)) | ||
1504 | l))))) | ||
1505 | (_rhs | ||
1506 | (hlistConsCase | ||
1507 | e | ||
1508 | (map 'RecItem Type recItemType j) | ||
1509 | e | ||
1510 | (\n _ -> n) | ||
1511 | (unsafeCoerce | ||
1512 | ('HList (map 'RecItem Type recItemType f)) | ||
1513 | ('HList (e : map 'RecItem Type recItemType j)) | ||
1514 | l))) | ||
1515 | (isEQ (primCompareString g k))) | ||
1516 | h) | ||
1517 | i) | ||
1518 | f | ||
1519 | |||
1520 | purple :: VecS Float 4 | ||
1521 | purple = _rhs (V4 0.5 0.0 0.5 1.0) | ||
1522 | |||
1523 | radians :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1524 | radians = _rhs \a b c d -> PrimRadians a b c d | ||
1525 | |||
1526 | recItemType :: RecItem -> Type | ||
1527 | recItemType = \a -> case'RecItem (\_ -> Type) (\_ b -> _rhs b) a | ||
1528 | |||
1529 | red :: VecS Float 4 | ||
1530 | red = _rhs (V4 1.0 0.0 0.0 1.0) | ||
1531 | |||
788 | reflect :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a | 1532 | reflect :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a |
1533 | reflect = _rhs \a b c d e -> PrimReflect a b c d e | ||
1534 | |||
789 | refract :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a | 1535 | refract :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a -> a -> a |
790 | transpose :: forall (a :: Nat) (b :: Nat) c . Mat a b c -> Mat b a c | 1536 | refract = _rhs \a b c d e f -> PrimRefract a b c d e f |
791 | det :: forall (a :: Nat) b . Mat a a b -> Float | 1537 | |
792 | inv :: forall (a :: Nat) b . Mat a a b -> Mat a a b | 1538 | rgb :: Float -> Float -> Float -> VecS Float 4 |
793 | outer :: forall (a :: Nat) b (c :: Nat) . Vec a b -> Vec c b -> Mat c a b | 1539 | rgb = \a b c -> _rhs (V4 a b c 1.0) |
794 | bAnd :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b | 1540 | |
795 | bOr :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b | 1541 | rotMatrixX :: VecScalar 1 Float -> Mat 4 4 Float |
796 | bXor :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b -> b | 1542 | rotMatrixX |
797 | bNot :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> b | 1543 | = \a -> _rhs |
798 | bAndS :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b | 1544 | (M44F |
799 | bOrS :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b | 1545 | (V4 1.0 0.0 0.0 0.0) |
800 | bXorS :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> a -> b | 1546 | (V4 0.0 (PrimCos 'Float 1 TT a) (PrimSin 'Float 1 TT a) 0.0) |
1547 | (V4 | ||
1548 | 0.0 | ||
1549 | (PrimSub 'Float TT 0.0 (PrimSin 'Float 1 TT a)) | ||
1550 | (PrimCos 'Float 1 TT a) | ||
1551 | 0.0) | ||
1552 | (V4 0.0 0.0 0.0 1.0)) | ||
1553 | |||
1554 | rotMatrixY :: VecScalar 1 Float -> Mat 4 4 Float | ||
1555 | rotMatrixY | ||
1556 | = \a -> _rhs | ||
1557 | (M44F | ||
1558 | (V4 | ||
1559 | (PrimCos 'Float 1 TT a) | ||
1560 | 0.0 | ||
1561 | (PrimSub 'Float TT 0.0 (PrimSin 'Float 1 TT a)) | ||
1562 | 0.0) | ||
1563 | (V4 0.0 1.0 0.0 0.0) | ||
1564 | (V4 (PrimSin 'Float 1 TT a) 0.0 (PrimCos 'Float 1 TT a) 0.0) | ||
1565 | (V4 0.0 0.0 0.0 1.0)) | ||
1566 | |||
1567 | rotMatrixZ :: VecScalar 1 Float -> Mat 4 4 Float | ||
1568 | rotMatrixZ | ||
1569 | = \a -> _rhs | ||
1570 | (M44F | ||
1571 | (V4 (PrimCos 'Float 1 TT a) (PrimSin 'Float 1 TT a) 0.0 0.0) | ||
1572 | (V4 | ||
1573 | (PrimSub 'Float TT 0.0 (PrimSin 'Float 1 TT a)) | ||
1574 | (PrimCos 'Float 1 TT a) | ||
1575 | 0.0 | ||
1576 | 0.0) | ||
1577 | (V4 0.0 0.0 1.0 0.0) | ||
1578 | (V4 0.0 0.0 0.0 1.0)) | ||
1579 | |||
1580 | rotationEuler :: Float -> Float -> Float -> Mat 4 4 Float | ||
1581 | rotationEuler | ||
1582 | = \a b c -> _rhs | ||
1583 | (PrimMulMatMat | ||
1584 | 4 | ||
1585 | 4 | ||
1586 | 'Float | ||
1587 | 4 | ||
1588 | (PrimMulMatMat | ||
1589 | 4 | ||
1590 | 4 | ||
1591 | 'Float | ||
1592 | 4 | ||
1593 | (M44F | ||
1594 | (V4 | ||
1595 | (PrimCos 'Float 1 TT a) | ||
1596 | 0.0 | ||
1597 | (PrimSub 'Float TT 0.0 (PrimSin 'Float 1 TT a)) | ||
1598 | 0.0) | ||
1599 | (V4 0.0 1.0 0.0 0.0) | ||
1600 | (V4 (PrimSin 'Float 1 TT a) 0.0 (PrimCos 'Float 1 TT a) 0.0) | ||
1601 | (V4 0.0 0.0 0.0 1.0)) | ||
1602 | (M44F | ||
1603 | (V4 1.0 0.0 0.0 0.0) | ||
1604 | (V4 0.0 (PrimCos 'Float 1 TT b) (PrimSin 'Float 1 TT b) 0.0) | ||
1605 | (V4 | ||
1606 | 0.0 | ||
1607 | (PrimSub 'Float TT 0.0 (PrimSin 'Float 1 TT b)) | ||
1608 | (PrimCos 'Float 1 TT b) | ||
1609 | 0.0) | ||
1610 | (V4 0.0 0.0 0.0 1.0))) | ||
1611 | (M44F | ||
1612 | (V4 (PrimCos 'Float 1 TT c) (PrimSin 'Float 1 TT c) 0.0 0.0) | ||
1613 | (V4 | ||
1614 | (PrimSub 'Float TT 0.0 (PrimSin 'Float 1 TT c)) | ||
1615 | (PrimCos 'Float 1 TT c) | ||
1616 | 0.0 | ||
1617 | 0.0) | ||
1618 | (V4 0.0 0.0 1.0 0.0) | ||
1619 | (V4 0.0 0.0 0.0 1.0))) | ||
1620 | |||
1621 | round :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1622 | round = _rhs \a b c d -> PrimRound a b c d | ||
1623 | |||
1624 | roundEven :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1625 | roundEven = _rhs \a b c d -> PrimRoundEven a b c d | ||
1626 | |||
1627 | scale :: Float -> VecS Float 4 -> VecS Float 4 | ||
1628 | scale = \a b -> _rhs (PrimMul ('VecS 'Float 4) TT b (V4 a a a 1.0)) | ||
1629 | |||
801 | shiftL | 1630 | shiftL |
802 | :: forall a b (c :: Nat) d | 1631 | :: forall a b (c :: Nat) d |
803 | . (Integral a, b ~ VecScalar c a, d ~ VecScalar c Word) => b -> d -> b | 1632 | . (Integral a, b ~ VecScalar c a, d ~ VecScalar c Word) => b -> d -> b |
1633 | shiftL = _rhs \a b c d e f g h i -> PrimBShiftL a b c d e f g h i | ||
1634 | |||
1635 | shiftLS | ||
1636 | :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> Word -> b | ||
1637 | shiftLS = _rhs \a b c d e f g -> PrimBShiftLS a b c d e f g | ||
1638 | |||
804 | shiftR | 1639 | shiftR |
805 | :: forall a b (c :: Nat) d | 1640 | :: forall a b (c :: Nat) d |
806 | . (Integral a, b ~ VecScalar c a, d ~ VecScalar c Word) => b -> d -> b | 1641 | . (Integral a, b ~ VecScalar c a, d ~ VecScalar c Word) => b -> d -> b |
807 | shiftLS | 1642 | shiftR = _rhs \a b c d e f g h i -> PrimBShiftR a b c d e f g h i |
808 | :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> Word -> b | 1643 | |
809 | shiftRS | 1644 | shiftRS |
810 | :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> Word -> b | 1645 | :: forall a b (c :: Nat) . (Integral a, b ~ VecScalar c a) => b -> Word -> b |
811 | floatBitsToInt :: forall (a :: Nat) . VecScalar a Float -> VecScalar a Int | 1646 | shiftRS = _rhs \a b c d e f g -> PrimBShiftRS a b c d e f g |
812 | floatBitsToWord :: forall (a :: Nat) . VecScalar a Float -> VecScalar a Word | 1647 | |
813 | intBitsToFloat :: forall (a :: Nat) . VecScalar a Int -> VecScalar a Float | 1648 | sign :: forall a b (c :: Nat) . (Signed a, b ~ VecScalar c a) => b -> b |
1649 | sign = _rhs \a b c d e f -> PrimSign a b c d e f | ||
1650 | |||
1651 | silver :: VecS Float 4 | ||
1652 | silver = _rhs (V4 0.75 0.75 0.75 1.0) | ||
1653 | |||
1654 | sin :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1655 | sin = _rhs \a b c d -> PrimSin a b c d | ||
1656 | |||
1657 | sinh :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1658 | sinh = _rhs \a b c d -> PrimSinH a b c d | ||
1659 | |||
1660 | smoothstep :: forall a (b :: Nat) . (a ~ VecS Float b) => a -> a -> a -> a | ||
1661 | smoothstep = _rhs \a b c d e f -> PrimSmoothStep a b c d e f | ||
1662 | |||
1663 | smoothstepS | ||
1664 | :: forall a (b :: Nat) . (a ~ VecScalar b Float) => Float -> Float -> a -> a | ||
1665 | smoothstepS = _rhs \a b c d e f -> PrimSmoothStepS a b c d e f | ||
1666 | |||
1667 | snd :: forall a b . (a, b) -> b | ||
1668 | snd | ||
1669 | = \a b c -> hlistConsCase | ||
1670 | a | ||
1671 | [b] | ||
1672 | b | ||
1673 | (\_ d -> hlistConsCase b [] b (\e f -> hlistNilCase b (_rhs e) f) d) | ||
1674 | c | ||
1675 | |||
1676 | sndTup :: forall a (b :: [Type]) . HList (a : b) -> HList b | ||
1677 | sndTup = \a b -> _rhs \c -> hlistConsCase a b ('HList b) (\_ d -> d) c | ||
1678 | |||
1679 | sortBy :: forall a . (a -> a -> Ordering) -> [a] -> [a] | ||
1680 | sortBy | ||
1681 | = \a -> primFix | ||
1682 | ((a -> a -> 'Ordering) -> [a] -> [a]) | ||
1683 | \b c d -> case'List | ||
1684 | (\_ -> [a]) | ||
1685 | (_rhs []) | ||
1686 | (\e f -> case'List | ||
1687 | (\_ -> [a]) | ||
1688 | (_rhs [e]) | ||
1689 | (\_ _ -> _rhs | ||
1690 | (uncurry | ||
1691 | [a] | ||
1692 | [a] | ||
1693 | [a] | ||
1694 | (mergeBy a c) | ||
1695 | (([a] *** [a]) [a] [a] (b c) (b c) (split a d)))) | ||
1696 | f) | ||
1697 | d | ||
1698 | |||
1699 | split :: forall a . [a] -> ([a], [a]) | ||
1700 | split | ||
1701 | = \a -> primFix | ||
1702 | ([a] -> ' ([a], [a])) | ||
1703 | \b c -> case'List | ||
1704 | (\_ -> ' ([a], [a])) | ||
1705 | (_rhs ([], [])) | ||
1706 | (\d e -> _rhs | ||
1707 | (d | ||
1708 | : hlistConsCase | ||
1709 | [a] | ||
1710 | [[a]] | ||
1711 | [a] | ||
1712 | (\_ f -> hlistConsCase [a] [] [a] (\g h -> hlistNilCase [a] g h) f) | ||
1713 | (b e) | ||
1714 | , hlistConsCase | ||
1715 | [a] | ||
1716 | [[a]] | ||
1717 | [a] | ||
1718 | (\i j -> hlistConsCase [a] [] [a] (\_ k -> hlistNilCase [a] i k) j) | ||
1719 | (b e))) | ||
1720 | c | ||
1721 | |||
1722 | sqrt :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1723 | sqrt = _rhs \a b c d -> PrimSqrt a b c d | ||
1724 | |||
1725 | step :: forall a (b :: Nat) . (a ~ VecS Float b) => a -> a -> a | ||
1726 | step = _rhs \a b c d e -> PrimStep a b c d e | ||
1727 | |||
1728 | stepS :: forall a (b :: Nat) . (a ~ VecScalar b Float) => Float -> a -> a | ||
1729 | stepS = _rhs \a b c d e -> PrimStepS a b c d e | ||
1730 | |||
1731 | tail :: forall a . [a] -> [a] | ||
1732 | tail = \a b -> case'List (\_ -> [a]) (_rhs (undefined [a])) (\_ c -> _rhs c) b | ||
1733 | |||
1734 | tan :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1735 | tan = _rhs \a b c d -> PrimTan a b c d | ||
1736 | |||
1737 | tanh :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1738 | tanh = _rhs \a b c d -> PrimTanH a b c d | ||
1739 | |||
1740 | teal :: VecS Float 4 | ||
1741 | teal = _rhs (V4 0.0 0.5 0.5 1.0) | ||
1742 | |||
1743 | translateBefore4 :: Vec 3 Float -> Mat 4 4 Float | ||
1744 | translateBefore4 | ||
1745 | = \a -> _rhs | ||
1746 | (M44F | ||
1747 | (V4 1.0 0.0 0.0 0.0) | ||
1748 | (V4 0.0 1.0 0.0 0.0) | ||
1749 | (V4 0.0 0.0 1.0 0.0) | ||
1750 | (V4 | ||
1751 | (swizzscalar 'Float 3 a Sx) | ||
1752 | (swizzscalar 'Float 3 a Sy) | ||
1753 | (swizzscalar 'Float 3 a Sz) | ||
1754 | 1.0)) | ||
1755 | |||
1756 | transpose :: forall (a :: Nat) (b :: Nat) c . Mat a b c -> Mat b a c | ||
1757 | transpose = _rhs \a b c d -> PrimTranspose a b c d | ||
1758 | |||
1759 | trunc :: forall a (b :: Nat) . (a ~ VecScalar b Float) => a -> a | ||
1760 | trunc = _rhs \a b c d -> PrimTrunc a b c d | ||
1761 | |||
1762 | uncurry :: forall a b c . (a -> c -> b) -> (a, c) -> b | ||
1763 | uncurry | ||
1764 | = \a b c d e -> hlistConsCase | ||
1765 | a | ||
1766 | [c] | ||
1767 | b | ||
1768 | (\f g -> hlistConsCase c [] b (\h i -> hlistNilCase b (_rhs (d f h)) i) g) | ||
1769 | e | ||
1770 | |||
1771 | unzip :: forall a b . [(a, b)] -> ([a], [b]) | ||
1772 | unzip | ||
1773 | = primFix | ||
1774 | (forall a b . [' (a, b)] -> ' ([a], [b])) | ||
1775 | \c d e f -> case'List | ||
1776 | (\_ -> ' ([d], [e])) | ||
1777 | (_rhs ([], [])) | ||
1778 | (\g h -> hlistConsCase | ||
1779 | d | ||
1780 | [e] | ||
1781 | ' ([d], [e]) | ||
1782 | (\i j -> hlistConsCase | ||
1783 | e | ||
1784 | [] | ||
1785 | ' ([d], [e]) | ||
1786 | (\k l -> hlistNilCase | ||
1787 | ' ([d], [e]) | ||
1788 | (_rhs | ||
1789 | (i | ||
1790 | : hlistConsCase | ||
1791 | [d] | ||
1792 | [[e]] | ||
1793 | [d] | ||
1794 | (\m n -> hlistConsCase [e] [] [d] (\_ o -> hlistNilCase [d] m o) n) | ||
1795 | (c d e h) | ||
1796 | , k | ||
1797 | : hlistConsCase | ||
1798 | [d] | ||
1799 | [[e]] | ||
1800 | [e] | ||
1801 | (\_ p -> hlistConsCase [e] [] [e] (\q r -> hlistNilCase [e] q r) p) | ||
1802 | (c d e h))) | ||
1803 | l) | ||
1804 | j) | ||
1805 | g) | ||
1806 | f | ||
1807 | |||
1808 | v3FToV4F :: Vec 3 Float -> VecS Float 4 | ||
1809 | v3FToV4F | ||
1810 | = \a -> _rhs | ||
1811 | (V4 | ||
1812 | (swizzscalar 'Float 3 a Sx) | ||
1813 | (swizzscalar 'Float 3 a Sy) | ||
1814 | (swizzscalar 'Float 3 a Sz) | ||
1815 | 1.0) | ||
1816 | |||
1817 | white :: VecS Float 4 | ||
1818 | white = _rhs (V4 1.0 1.0 1.0 1.0) | ||
1819 | |||
814 | wordBitsToFloat :: forall (a :: Nat) . VecScalar a Word -> VecScalar a Float | 1820 | wordBitsToFloat :: forall (a :: Nat) . VecScalar a Word -> VecScalar a Float |
815 | (+) :: forall a . Num (MatVecScalarElem a) => a -> a -> a | 1821 | wordBitsToFloat = _rhs \a b -> PrimUIntBitsToFloat a b |
816 | (-) :: forall a . Num (MatVecScalarElem a) => a -> a -> a | 1822 | |
817 | (*) :: forall a . Num (MatVecScalarElem a) => a -> a -> a | ||
818 | (/) | ||
819 | :: forall a (b :: Nat) | ||
820 | . Num a => VecScalar b a -> VecScalar b a -> VecScalar b a | ||
821 | (%) | ||
822 | :: forall a (b :: Nat) | ||
823 | . Num a => VecScalar b a -> VecScalar b a -> VecScalar b a | ||
824 | neg :: forall a . Signed (MatVecScalarElem a) => a -> a | ||
825 | (/=) :: forall a . a -> a -> Bool | ||
826 | (<) | ||
827 | :: forall (a :: Nat) b | ||
828 | . Num b => VecScalar a b -> VecScalar a b -> VecScalar a Bool | ||
829 | (<=) | ||
830 | :: forall (a :: Nat) b | ||
831 | . Num b => VecScalar a b -> VecScalar a b -> VecScalar a Bool | ||
832 | (>=) | ||
833 | :: forall (a :: Nat) b | ||
834 | . Num b => VecScalar a b -> VecScalar a b -> VecScalar a Bool | ||
835 | (>) | ||
836 | :: forall (a :: Nat) b | ||
837 | . Num b => VecScalar a b -> VecScalar a b -> VecScalar a Bool | ||
838 | (&&) :: Bool -> Bool -> Bool | ||
839 | (||) :: Bool -> Bool -> Bool | ||
840 | xor :: Bool -> Bool -> Bool | 1823 | xor :: Bool -> Bool -> Bool |
841 | not :: forall (a :: Nat) . VecScalar a Bool -> VecScalar a Bool | 1824 | xor = _rhs \a b -> PrimXor a b |
842 | any :: forall (a :: Nat) . VecScalar a Bool -> Bool | 1825 | |
843 | all :: forall (a :: Nat) . VecScalar a Bool -> Bool | 1826 | yellow :: VecS Float 4 |
844 | (.*.) | 1827 | yellow = _rhs (V4 1.0 1.0 0.0 1.0) |
845 | :: forall (a :: Nat) (b :: Nat) c (d :: Nat) | 1828 | |
846 | . Mat a b c -> Mat b d c -> Mat a d c | 1829 | zip :: forall a b . [a] -> [b] -> [(a, b)] |
847 | (*.) :: forall (a :: Nat) (b :: Nat) c . Mat a b c -> VecS c b -> Vec a c | 1830 | zip |
848 | (.*) :: forall (a :: Nat) b (c :: Nat) . VecS b a -> Mat a c b -> Vec c b | 1831 | = primFix |
849 | (+!) :: forall a . Num (MatVecScalarElem a) => a -> MatVecScalarElem a -> a | 1832 | (forall a b . [a] -> [b] -> [' (a, b)]) |
850 | (-!) :: forall a . Num (MatVecScalarElem a) => a -> MatVecScalarElem a -> a | 1833 | \c d e f g -> case'List |
851 | (*!) :: forall a . Num (MatVecScalarElem a) => a -> MatVecScalarElem a -> a | 1834 | (\_ -> [' (d, e)]) |
852 | (/!) :: forall a (b :: Nat) . Num a => VecScalar b a -> a -> VecScalar b a | 1835 | (_rhs []) |
853 | (%!) :: forall a (b :: Nat) . Num a => VecScalar b a -> a -> VecScalar b a | 1836 | (\h i -> case'List |
854 | perspective :: Float -> Float -> Float -> Float -> Mat 4 4 Float | 1837 | (\_ -> [' (d, e)]) |
855 | rotMatrixZ :: VecScalar 1 Float -> Mat 4 4 Float | 1838 | (_rhs []) |
856 | rotMatrixY :: VecScalar 1 Float -> Mat 4 4 Float | 1839 | (\j k -> _rhs ((h, j) : c d e i k)) |
857 | rotMatrixX :: VecScalar 1 Float -> Mat 4 4 Float | 1840 | g) |
858 | rotationEuler :: Float -> Float -> Float -> Mat 4 4 Float | 1841 | f |
859 | translateBefore4 :: Vec 3 Float -> Mat 4 4 Float | 1842 | |
860 | lookat :: Vec 3 Float -> Vec 3 Float -> Vec 3 Float -> Mat 4 4 Float | 1843 | || :: Bool -> Bool -> Bool |
861 | scale :: Float -> VecS Float 4 -> VecS Float 4 | 1844 | || = \a b -> _rhs (PrimOr a b) |
862 | fromTo :: Float -> Float -> [Float] | 1845 | |
863 | (!!) :: forall a . [a] -> Int -> a | 1846 | ||| :: Bool -> Bool -> Bool |
1847 | ||| = \a b -> case'Bool (\_ -> 'Bool) (_rhs b) (_rhs True) a | ||
864 | ------------ tooltips | 1848 | ------------ tooltips |
865 | testdata/Prelude.lc 16:1-16:6 | 1849 | testdata/Prelude.lc 16:1-16:6 |
866 | forall a b . a -> b -> a | 1850 | forall a b . a -> b -> a |