1 ! Copyright (C) 2009, 2010 Joe Groff.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: classes.struct math.matrices.simd math.vectors.simd math
4 literals math.constants math.functions specialized-arrays tools.test ;
5 QUALIFIED-WITH: alien.c-types c
6 FROM: math.matrices => m~ ;
7 SPECIALIZED-ARRAY: float-4
8 IN: math.matrices.simd.tests
13 float-4{ 3.0 0.0 0.0 0.0 }
14 float-4{ 0.0 4.0 0.0 0.0 }
15 float-4{ 0.0 0.0 2.0 0.0 }
16 float-4{ 0.0 0.0 0.0 1.0 }
19 } [ float-4{ 3.0 4.0 2.0 0.0 } scale-matrix4 ] unit-test
24 float-4{ 1/8. 0.0 0.0 0.0 }
25 float-4{ 0.0 1/4. 0.0 0.0 }
26 float-4{ 0.0 0.0 1/2. 0.0 }
27 float-4{ 0.0 0.0 0.0 1.0 }
30 } [ float-4{ 8.0 4.0 2.0 0.0 } ortho-matrix4 ] unit-test
35 float-4{ 0.0 0.0 -1.0 0.0 }
36 float-4{ 1.0 0.0 0.0 0.0 }
37 float-4{ 0.0 1.0 0.0 0.0 }
38 float-4{ 3.0 4.0 2.0 1.0 }
44 float-4{ 0.0 1.0 0.0 3.0 }
45 float-4{ 0.0 0.0 1.0 4.0 }
46 float-4{ -1.0 0.0 0.0 2.0 }
47 float-4{ 0.0 0.0 0.0 1.0 }
55 float-4{ 1.0 0.0 0.0 0.0 }
56 float-4{ 0.0 1.0 0.0 0.0 }
57 float-4{ 0.0 0.0 1.0 0.0 }
58 float-4{ 3.0 4.0 2.0 1.0 }
61 } [ float-4{ 3.0 4.0 2.0 0.0 } translation-matrix4 ] unit-test
64 float-4{ $[ 1/2. sqrt ] 0.0 $[ 1/2. sqrt ] 0.0 } pi rotation-matrix4
67 float-4{ 0.0 0.0 1.0 0.0 }
68 float-4{ 0.0 -1.0 0.0 0.0 }
69 float-4{ 1.0 0.0 0.0 0.0 }
70 float-4{ 0.0 0.0 0.0 1.0 }
77 float-4{ 0.0 1.0 0.0 1.0 } pi 1/2. * rotation-matrix4
80 float-4{ 0.0 0.0 -1.0 0.0 }
81 float-4{ 0.0 1.0 0.0 0.0 }
82 float-4{ 1.0 0.0 0.0 0.0 }
83 float-4{ 0.0 0.0 0.0 1.0 }
92 float-4{ 2.0 0.0 0.0 0.0 }
93 float-4{ 0.0 3.0 0.0 0.0 }
94 float-4{ 0.0 0.0 4.0 0.0 }
95 float-4{ 10.0 18.0 28.0 1.0 }
101 float-4{ 2.0 0.0 0.0 0.0 }
102 float-4{ 0.0 3.0 0.0 0.0 }
103 float-4{ 0.0 0.0 4.0 0.0 }
104 float-4{ 0.0 0.0 0.0 1.0 }
109 float-4{ 1.0 0.0 0.0 0.0 }
110 float-4{ 0.0 1.0 0.0 0.0 }
111 float-4{ 0.0 0.0 1.0 0.0 }
112 float-4{ 5.0 6.0 7.0 1.0 }
121 float-4{ 3.0 0.0 0.0 0.0 }
122 float-4{ 0.0 4.0 0.0 0.0 }
123 float-4{ 0.0 0.0 5.0 0.0 }
124 float-4{ 5.0 6.0 7.0 2.0 }
130 float-4{ 2.0 0.0 0.0 0.0 }
131 float-4{ 0.0 3.0 0.0 0.0 }
132 float-4{ 0.0 0.0 4.0 0.0 }
133 float-4{ 0.0 0.0 0.0 1.0 }
138 float-4{ 1.0 0.0 0.0 0.0 }
139 float-4{ 0.0 1.0 0.0 0.0 }
140 float-4{ 0.0 0.0 1.0 0.0 }
141 float-4{ 5.0 6.0 7.0 1.0 }
150 float-4{ 1.0 0.0 0.0 0.0 }
151 float-4{ 0.0 2.0 0.0 0.0 }
152 float-4{ 0.0 0.0 3.0 0.0 }
153 float-4{ -5.0 -6.0 -7.0 0.0 }
159 float-4{ 2.0 0.0 0.0 0.0 }
160 float-4{ 0.0 3.0 0.0 0.0 }
161 float-4{ 0.0 0.0 4.0 0.0 }
162 float-4{ 0.0 0.0 0.0 1.0 }
167 float-4{ 1.0 0.0 0.0 0.0 }
168 float-4{ 0.0 1.0 0.0 0.0 }
169 float-4{ 0.0 0.0 1.0 0.0 }
170 float-4{ 5.0 6.0 7.0 1.0 }
179 float-4{ 3.0 0.0 0.0 15.0 }
180 float-4{ 0.0 3.0 0.0 18.0 }
181 float-4{ 0.0 0.0 3.0 21.0 }
182 float-4{ 0.0 0.0 0.0 3.0 }
188 float-4{ 1.0 0.0 0.0 5.0 }
189 float-4{ 0.0 1.0 0.0 6.0 }
190 float-4{ 0.0 0.0 1.0 7.0 }
191 float-4{ 0.0 0.0 0.0 1.0 }
200 float-4{ 3.0 0.0 0.0 15.0 }
201 float-4{ 0.0 3.0 0.0 18.0 }
202 float-4{ 0.0 0.0 3.0 21.0 }
203 float-4{ 0.0 0.0 0.0 3.0 }
210 float-4{ 1.0 0.0 0.0 5.0 }
211 float-4{ 0.0 1.0 0.0 6.0 }
212 float-4{ 0.0 0.0 1.0 7.0 }
213 float-4{ 0.0 0.0 0.0 1.0 }
222 float-4{ 1/2. 0.0 0.0 0.0 }
223 float-4{ 0.0 1/2. 0.0 0.0 }
224 float-4{ 0.0 0.0 -6/4. -1.0 }
225 float-4{ 0.0 0.0 -10/4. 0.0 }
229 float-4{ 2.0 2.0 0.0 0.0 } 1.0 5.0
233 { float-4{ 3.0 4.0 5.0 1.0 } }
234 [ float-4{ 1.0 1.0 1.0 1.0 } translation-matrix4 float-4{ 2.0 3.0 4.0 1.0 } m4.v ] unit-test
236 { float-4{ 2.0 2.5 3.0 1.0 } }
238 float-4{ 1.0 1.0 1.0 1.0 } translation-matrix4
239 float-4{ 0.5 0.5 0.5 1.0 } scale-matrix4 m4.
240 float-4{ 2.0 3.0 4.0 1.0 } m4.v
246 float-4{ 1.0 0.0 0.0 0.0 }
247 float-4{ 0.0 1.0 0.0 0.0 }
248 float-4{ 0.0 0.0 1.0 0.0 }
249 float-4{ 0.0 0.0 0.0 1.0 }
253 float-4{ 1.0 0.0 0.0 0.0 } q>matrix4
257 pi 0.5 * 0.0 0.0 euler4 q>matrix4
260 float-4{ 1.0 0.0 0.0 0.0 }
261 float-4{ 0.0 0.0 1.0 0.0 }
262 float-4{ 0.0 -1.0 0.0 0.0 }
263 float-4{ 0.0 0.0 0.0 1.0 }
270 0.0 pi 0.25 * 0.0 euler4 q>matrix4
273 float-4{ $[ 1/2. sqrt ] 0.0 $[ 1/2. sqrt neg ] 0.0 }
274 float-4{ 0.0 1.0 0.0 0.0 }
275 float-4{ $[ 1/2. sqrt ] 0.0 $[ 1/2. sqrt ] 0.0 }
276 float-4{ 0.0 0.0 0.0 1.0 }