2009-09-29 19:11:25 -04:00
|
|
|
! (c)Joe Groff bsd license
|
2009-10-02 03:32:35 -04:00
|
|
|
USING: classes.struct math.matrices.simd math.vectors.simd math
|
2009-09-29 23:54:11 -04:00
|
|
|
literals math.constants math.functions specialized-arrays tools.test ;
|
2009-09-29 19:11:25 -04:00
|
|
|
QUALIFIED-WITH: alien.c-types c
|
2009-09-29 23:54:11 -04:00
|
|
|
FROM: math.matrices => m~ ;
|
2009-09-29 19:11:25 -04:00
|
|
|
SIMD: c:float
|
|
|
|
SPECIALIZED-ARRAY: float-4
|
|
|
|
IN: math.matrices.simd.tests
|
|
|
|
|
|
|
|
[
|
|
|
|
S{ matrix4 f
|
|
|
|
float-4-array{
|
|
|
|
float-4{ 3.0 0.0 0.0 0.0 }
|
|
|
|
float-4{ 0.0 4.0 0.0 0.0 }
|
|
|
|
float-4{ 0.0 0.0 2.0 0.0 }
|
|
|
|
float-4{ 0.0 0.0 0.0 1.0 }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
] [ float-4{ 3.0 4.0 2.0 0.0 } scale-matrix4 ] unit-test
|
|
|
|
|
|
|
|
[
|
|
|
|
S{ matrix4 f
|
|
|
|
float-4-array{
|
|
|
|
float-4{ 1/8. 0.0 0.0 0.0 }
|
|
|
|
float-4{ 0.0 1/4. 0.0 0.0 }
|
|
|
|
float-4{ 0.0 0.0 1/2. 0.0 }
|
|
|
|
float-4{ 0.0 0.0 0.0 1.0 }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
] [ float-4{ 8.0 4.0 2.0 0.0 } ortho-matrix4 ] unit-test
|
|
|
|
|
2009-10-03 23:48:41 -04:00
|
|
|
[
|
|
|
|
S{ matrix4 f
|
|
|
|
float-4-array{
|
|
|
|
float-4{ 0.0 0.0 -1.0 0.0 }
|
|
|
|
float-4{ 1.0 0.0 0.0 0.0 }
|
|
|
|
float-4{ 0.0 1.0 0.0 0.0 }
|
|
|
|
float-4{ 3.0 4.0 2.0 1.0 }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
] [
|
|
|
|
S{ matrix4 f
|
|
|
|
float-4-array{
|
|
|
|
float-4{ 0.0 1.0 0.0 3.0 }
|
|
|
|
float-4{ 0.0 0.0 1.0 4.0 }
|
|
|
|
float-4{ -1.0 0.0 0.0 2.0 }
|
|
|
|
float-4{ 0.0 0.0 0.0 1.0 }
|
|
|
|
}
|
|
|
|
} transpose-matrix4
|
|
|
|
] unit-test
|
|
|
|
|
2009-09-29 19:11:25 -04:00
|
|
|
[
|
|
|
|
S{ matrix4 f
|
|
|
|
float-4-array{
|
|
|
|
float-4{ 1.0 0.0 0.0 3.0 }
|
|
|
|
float-4{ 0.0 1.0 0.0 4.0 }
|
|
|
|
float-4{ 0.0 0.0 1.0 2.0 }
|
|
|
|
float-4{ 0.0 0.0 0.0 1.0 }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
] [ float-4{ 3.0 4.0 2.0 0.0 } translation-matrix4 ] unit-test
|
|
|
|
|
2009-09-29 23:54:11 -04:00
|
|
|
[ t ] [
|
|
|
|
float-4{ $[ 1/2. sqrt ] 0.0 $[ 1/2. sqrt ] 0.0 } pi rotation-matrix4
|
|
|
|
S{ matrix4 f
|
|
|
|
float-4-array{
|
|
|
|
float-4{ 0.0 0.0 1.0 0.0 }
|
|
|
|
float-4{ 0.0 -1.0 0.0 0.0 }
|
|
|
|
float-4{ 1.0 0.0 0.0 0.0 }
|
|
|
|
float-4{ 0.0 0.0 0.0 1.0 }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
1.0e-7 m~
|
|
|
|
] unit-test
|
|
|
|
|
2009-10-01 14:04:59 -04:00
|
|
|
[ t ] [
|
|
|
|
float-4{ 0.0 1.0 0.0 1.0 } pi 1/2. * rotation-matrix4
|
|
|
|
S{ matrix4 f
|
|
|
|
float-4-array{
|
|
|
|
float-4{ 0.0 0.0 1.0 0.0 }
|
|
|
|
float-4{ 0.0 1.0 0.0 0.0 }
|
|
|
|
float-4{ -1.0 0.0 0.0 0.0 }
|
|
|
|
float-4{ 0.0 0.0 0.0 1.0 }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
1.0e-7 m~
|
|
|
|
] unit-test
|
|
|
|
|
2009-09-29 19:11:25 -04:00
|
|
|
[
|
|
|
|
S{ matrix4 f
|
|
|
|
float-4-array{
|
|
|
|
float-4{ 2.0 0.0 0.0 10.0 }
|
|
|
|
float-4{ 0.0 3.0 0.0 18.0 }
|
|
|
|
float-4{ 0.0 0.0 4.0 28.0 }
|
|
|
|
float-4{ 0.0 0.0 0.0 1.0 }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
] [
|
|
|
|
S{ matrix4 f
|
|
|
|
float-4-array{
|
|
|
|
float-4{ 2.0 0.0 0.0 0.0 }
|
|
|
|
float-4{ 0.0 3.0 0.0 0.0 }
|
|
|
|
float-4{ 0.0 0.0 4.0 0.0 }
|
|
|
|
float-4{ 0.0 0.0 0.0 1.0 }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
S{ matrix4 f
|
|
|
|
float-4-array{
|
|
|
|
float-4{ 1.0 0.0 0.0 5.0 }
|
|
|
|
float-4{ 0.0 1.0 0.0 6.0 }
|
|
|
|
float-4{ 0.0 0.0 1.0 7.0 }
|
|
|
|
float-4{ 0.0 0.0 0.0 1.0 }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
m4.
|
|
|
|
] unit-test
|
|
|
|
|
|
|
|
[
|
|
|
|
S{ matrix4 f
|
|
|
|
float-4-array{
|
|
|
|
float-4{ 3.0 0.0 0.0 5.0 }
|
|
|
|
float-4{ 0.0 4.0 0.0 6.0 }
|
|
|
|
float-4{ 0.0 0.0 5.0 7.0 }
|
|
|
|
float-4{ 0.0 0.0 0.0 2.0 }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
] [
|
|
|
|
S{ matrix4 f
|
|
|
|
float-4-array{
|
|
|
|
float-4{ 2.0 0.0 0.0 0.0 }
|
|
|
|
float-4{ 0.0 3.0 0.0 0.0 }
|
|
|
|
float-4{ 0.0 0.0 4.0 0.0 }
|
|
|
|
float-4{ 0.0 0.0 0.0 1.0 }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
S{ matrix4 f
|
|
|
|
float-4-array{
|
|
|
|
float-4{ 1.0 0.0 0.0 5.0 }
|
|
|
|
float-4{ 0.0 1.0 0.0 6.0 }
|
|
|
|
float-4{ 0.0 0.0 1.0 7.0 }
|
|
|
|
float-4{ 0.0 0.0 0.0 1.0 }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
m4+
|
|
|
|
] unit-test
|
|
|
|
|
|
|
|
[
|
|
|
|
S{ matrix4 f
|
|
|
|
float-4-array{
|
|
|
|
float-4{ 1.0 0.0 0.0 -5.0 }
|
|
|
|
float-4{ 0.0 2.0 0.0 -6.0 }
|
|
|
|
float-4{ 0.0 0.0 3.0 -7.0 }
|
|
|
|
float-4{ 0.0 0.0 0.0 0.0 }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
] [
|
|
|
|
S{ matrix4 f
|
|
|
|
float-4-array{
|
|
|
|
float-4{ 2.0 0.0 0.0 0.0 }
|
|
|
|
float-4{ 0.0 3.0 0.0 0.0 }
|
|
|
|
float-4{ 0.0 0.0 4.0 0.0 }
|
|
|
|
float-4{ 0.0 0.0 0.0 1.0 }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
S{ matrix4 f
|
|
|
|
float-4-array{
|
|
|
|
float-4{ 1.0 0.0 0.0 5.0 }
|
|
|
|
float-4{ 0.0 1.0 0.0 6.0 }
|
|
|
|
float-4{ 0.0 0.0 1.0 7.0 }
|
|
|
|
float-4{ 0.0 0.0 0.0 1.0 }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
m4-
|
|
|
|
] unit-test
|
2009-09-29 19:21:51 -04:00
|
|
|
|
|
|
|
[
|
|
|
|
S{ matrix4 f
|
|
|
|
float-4-array{
|
|
|
|
float-4{ 3.0 0.0 0.0 15.0 }
|
|
|
|
float-4{ 0.0 3.0 0.0 18.0 }
|
|
|
|
float-4{ 0.0 0.0 3.0 21.0 }
|
|
|
|
float-4{ 0.0 0.0 0.0 3.0 }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
] [
|
|
|
|
S{ matrix4 f
|
|
|
|
float-4-array{
|
|
|
|
float-4{ 1.0 0.0 0.0 5.0 }
|
|
|
|
float-4{ 0.0 1.0 0.0 6.0 }
|
|
|
|
float-4{ 0.0 0.0 1.0 7.0 }
|
|
|
|
float-4{ 0.0 0.0 0.0 1.0 }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
3.0 m4*n
|
|
|
|
] unit-test
|
|
|
|
|
|
|
|
[
|
|
|
|
S{ matrix4 f
|
|
|
|
float-4-array{
|
|
|
|
float-4{ 3.0 0.0 0.0 15.0 }
|
|
|
|
float-4{ 0.0 3.0 0.0 18.0 }
|
|
|
|
float-4{ 0.0 0.0 3.0 21.0 }
|
|
|
|
float-4{ 0.0 0.0 0.0 3.0 }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
] [
|
|
|
|
3.0
|
|
|
|
S{ matrix4 f
|
|
|
|
float-4-array{
|
|
|
|
float-4{ 1.0 0.0 0.0 5.0 }
|
|
|
|
float-4{ 0.0 1.0 0.0 6.0 }
|
|
|
|
float-4{ 0.0 0.0 1.0 7.0 }
|
|
|
|
float-4{ 0.0 0.0 0.0 1.0 }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
n*m4
|
|
|
|
] unit-test
|
|
|
|
|
2009-09-29 23:54:11 -04:00
|
|
|
[
|
|
|
|
S{ matrix4 f
|
|
|
|
float-4-array{
|
|
|
|
float-4{ 1/2. 0.0 0.0 0.0 }
|
|
|
|
float-4{ 0.0 1/2. 0.0 0.0 }
|
|
|
|
float-4{ 0.0 0.0 -6/4. -10/4. }
|
|
|
|
float-4{ 0.0 0.0 -1.0 0.0 }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
] [
|
|
|
|
float-4{ 2.0 2.0 0.0 0.0 } 1.0 5.0
|
|
|
|
frustum-matrix4
|
|
|
|
] unit-test
|