remove math.blas.syntax and merge parsing words into math.blas.vectors/matrices
[factor/jcg.git] / basis / math / blas / vectors / vectors-tests.factor
blobda271a4fc7d4b1f4fa015ce93f9c8d1a8bb1efe6
1 USING: kernel math.blas.vectors sequences tools.test ;
2 IN: math.blas.vectors.tests
4 ! clone
6 [ svector{ 1.0 2.0 3.0 } ] [ svector{ 1.0 2.0 3.0 } clone ] unit-test
7 [ f ] [ svector{ 1.0 2.0 3.0 } dup clone eq? ] unit-test
8 [ dvector{ 1.0 2.0 3.0 } ] [ dvector{ 1.0 2.0 3.0 } clone ] unit-test
9 [ f ] [ dvector{ 1.0 2.0 3.0 } dup clone eq? ] unit-test
10 [ cvector{ 1.0 C{ 2.0 3.0 } 4.0 } ] [ cvector{ 1.0 C{ 2.0 3.0 } 4.0 } clone ] unit-test
11 [ f ] [ cvector{ 1.0 C{ 2.0 3.0 } 4.0 } dup clone eq? ] unit-test
12 [ zvector{ 1.0 C{ 2.0 3.0 } 4.0 } ] [ zvector{ 1.0 C{ 2.0 3.0 } 4.0 } clone ] unit-test
13 [ f ] [ zvector{ 1.0 C{ 2.0 3.0 } 4.0 } dup clone eq? ] unit-test
15 ! nth
17 [ 1.0 ] [ 2 svector{ 3.0 2.0 1.0 } nth ] unit-test
18 [ 1.0 ] [ 2 dvector{ 3.0 2.0 1.0 } nth ] unit-test
20 [ C{ 1.0 2.0 } ]
21 [ 2 cvector{ C{ -3.0 -2.0 } C{ -1.0 0.0 } C{ 1.0 2.0 } } nth ] unit-test
23 [ C{ 1.0 2.0 } ]
24 [ 2 zvector{ C{ -3.0 -2.0 } C{ -1.0 0.0 } C{ 1.0 2.0 } } nth ] unit-test
26 ! set-nth
28 [ svector{ 3.0 2.0 0.0 } ] [ 0.0 2 svector{ 3.0 2.0 1.0 } [ set-nth ] keep ] unit-test
29 [ dvector{ 3.0 2.0 0.0 } ] [ 0.0 2 dvector{ 3.0 2.0 1.0 } [ set-nth ] keep ] unit-test
31 [ cvector{ C{ -3.0 -2.0 } C{ -1.0 0.0 } C{ 3.0 4.0 } } ] [
32     C{ 3.0 4.0 } 2
33     cvector{ C{ -3.0 -2.0 } C{ -1.0 0.0 } C{ 1.0 2.0 } }
34     [ set-nth ] keep
35 ] unit-test
36 [ zvector{ C{ -3.0 -2.0 } C{ -1.0 0.0 } C{ 3.0 4.0 } } ] [
37     C{ 3.0 4.0 } 2
38     zvector{ C{ -3.0 -2.0 } C{ -1.0 0.0 } C{ 1.0 2.0 } }
39     [ set-nth ] keep
40 ] unit-test
42 ! V+
44 [ svector{ 11.0 22.0 } ] [ svector{ 1.0 2.0 } svector{ 10.0 20.0 } V+ ] unit-test
45 [ dvector{ 11.0 22.0 } ] [ dvector{ 1.0 2.0 } dvector{ 10.0 20.0 } V+ ] unit-test
47 [ cvector{ 11.0 C{ 22.0 33.0 } } ]
48 [ cvector{ 1.0 C{ 2.0 3.0 } } cvector{ 10.0 C{ 20.0 30.0 } } V+ ]
49 unit-test
51 [ zvector{ 11.0 C{ 22.0 33.0 } } ]
52 [ zvector{ 1.0 C{ 2.0 3.0 } } zvector{ 10.0 C{ 20.0 30.0 } } V+ ]
53 unit-test
55 ! V-
57 [ svector{ 9.0 18.0 } ] [ svector{ 10.0 20.0 } svector{ 1.0 2.0 } V- ] unit-test
58 [ dvector{ 9.0 18.0 } ] [ dvector{ 10.0 20.0 } dvector{ 1.0 2.0 } V- ] unit-test
60 [ cvector{ 9.0 C{ 18.0 27.0 } } ]
61 [ cvector{ 10.0 C{ 20.0 30.0 } } cvector{ 1.0 C{ 2.0 3.0 } } V- ]
62 unit-test
64 [ zvector{ 9.0 C{ 18.0 27.0 } } ]
65 [ zvector{ 10.0 C{ 20.0 30.0 } } zvector{ 1.0 C{ 2.0 3.0 } } V- ]
66 unit-test
68 ! Vneg
70 [ svector{ 1.0 -2.0 } ] [ svector{ -1.0 2.0 } Vneg ] unit-test
71 [ dvector{ 1.0 -2.0 } ] [ dvector{ -1.0 2.0 } Vneg ] unit-test
73 [ cvector{ 1.0 C{ -2.0 3.0 } } ] [ cvector{ -1.0 C{ 2.0 -3.0 } } Vneg ] unit-test
74 [ zvector{ 1.0 C{ -2.0 3.0 } } ] [ zvector{ -1.0 C{ 2.0 -3.0 } } Vneg ] unit-test
76 ! n*V
78 [ svector{ 100.0 200.0 } ] [ 10.0 svector{ 10.0 20.0 } n*V ] unit-test
79 [ dvector{ 100.0 200.0 } ] [ 10.0 dvector{ 10.0 20.0 } n*V ] unit-test
81 [ cvector{ C{ 20.0 4.0 } C{ 8.0 12.0 } } ]
82 [ C{ 10.0 2.0 } cvector{ 2.0 C{ 1.0 1.0 } } n*V ]
83 unit-test
85 [ zvector{ C{ 20.0 4.0 } C{ 8.0 12.0 } } ]
86 [ C{ 10.0 2.0 } zvector{ 2.0 C{ 1.0 1.0 } } n*V ]
87 unit-test
89 ! V*n
91 [ svector{ 100.0 200.0 } ] [ svector{ 10.0 20.0 } 10.0 V*n ] unit-test
92 [ dvector{ 100.0 200.0 } ] [ dvector{ 10.0 20.0 } 10.0 V*n ] unit-test
94 [ cvector{ C{ 20.0 4.0 } C{ 8.0 12.0 } } ]
95 [ cvector{ 2.0 C{ 1.0 1.0 } } C{ 10.0 2.0 } V*n ]
96 unit-test
98 [ zvector{ C{ 20.0 4.0 } C{ 8.0 12.0 } } ]
99 [ zvector{ 2.0 C{ 1.0 1.0 } } C{ 10.0 2.0 } V*n ]
100 unit-test
102 ! V/n
104 [ svector{ 1.0 2.0 } ] [ svector{ 4.0 8.0 } 4.0 V/n ] unit-test
105 [ dvector{ 1.0 2.0 } ] [ dvector{ 4.0 8.0 } 4.0 V/n ] unit-test
107 [ cvector{ C{ 0.0 -4.0 } 1.0 } ]
108 [ cvector{ C{ 4.0 -4.0 } C{ 1.0 1.0 } } C{ 1.0 1.0 } V/n ]
109 unit-test
111 [ zvector{ C{ 0.0 -4.0 } 1.0 } ]
112 [ zvector{ C{ 4.0 -4.0 } C{ 1.0 1.0 } } C{ 1.0 1.0 } V/n ]
113 unit-test
115 ! V.
117 [ 7.0 ] [ svector{ 1.0 2.5 } svector{ 2.0 2.0 } V. ] unit-test
118 [ 7.0 ] [ dvector{ 1.0 2.5 } dvector{ 2.0 2.0 } V. ] unit-test
119 [ C{ 7.0 7.0 } ] [ cvector{ C{ 1.0 1.0 } 2.5 } cvector{ 2.0 C{ 2.0 2.0 } } V. ] unit-test
120 [ C{ 7.0 7.0 } ] [ zvector{ C{ 1.0 1.0 } 2.5 } zvector{ 2.0 C{ 2.0 2.0 } } V. ] unit-test
122 ! V.conj
124 [ C{ 7.0 3.0 } ] [ cvector{ C{ 1.0 1.0 } 2.5 } cvector{ 2.0 C{ 2.0 2.0 } } V.conj ] unit-test
125 [ C{ 7.0 3.0 } ] [ zvector{ C{ 1.0 1.0 } 2.5 } zvector{ 2.0 C{ 2.0 2.0 } } V.conj ] unit-test
127 ! Vnorm
129 [ 5.0 ] [ svector{ 3.0 4.0 } Vnorm ] unit-test
130 [ 5.0 ] [ dvector{ 3.0 4.0 } Vnorm ] unit-test
132 [ 13.0 ] [ cvector{ C{ 3.0 4.0 } 12.0 } Vnorm ] unit-test
133 [ 13.0 ] [ zvector{ C{ 3.0 4.0 } 12.0 } Vnorm ] unit-test
135 ! Vasum
137 [ 6.0 ] [ svector{ 1.0 2.0 -3.0 } Vasum ] unit-test
138 [ 6.0 ] [ dvector{ 1.0 2.0 -3.0 } Vasum ] unit-test
140 [ 15.0 ] [ cvector{ 1.0 C{ -2.0 3.0 } C{ 4.0 -5.0 } } Vasum ] unit-test
141 [ 15.0 ] [ zvector{ 1.0 C{ -2.0 3.0 } C{ 4.0 -5.0 } } Vasum ] unit-test
143 ! Vswap
145 [ svector{ 2.0 2.0 } svector{ 1.0 1.0 } ]
146 [ svector{ 1.0 1.0 } svector{ 2.0 2.0 } Vswap ]
147 unit-test
149 [ dvector{ 2.0 2.0 } dvector{ 1.0 1.0 } ]
150 [ dvector{ 1.0 1.0 } dvector{ 2.0 2.0 } Vswap ]
151 unit-test
153 [ cvector{ 2.0 C{ 2.0 2.0 } } cvector{ C{ 1.0 1.0 } 1.0 } ]
154 [ cvector{ C{ 1.0 1.0 } 1.0 } cvector{ 2.0 C{ 2.0 2.0 } } Vswap ]
155 unit-test
157 [ zvector{ 2.0 C{ 2.0 2.0 } } zvector{ C{ 1.0 1.0 } 1.0 } ]
158 [ zvector{ C{ 1.0 1.0 } 1.0 } zvector{ 2.0 C{ 2.0 2.0 } } Vswap ]
159 unit-test
161 ! Viamax
163 [ 3 ] [ svector{ 1.0 -5.0 4.0 -6.0 -1.0 } Viamax ] unit-test
164 [ 3 ] [ dvector{ 1.0 -5.0 4.0 -6.0 -1.0 } Viamax ] unit-test
165 [ 0 ] [ cvector{ C{ 2.0 -5.0 } 4.0 -6.0 -1.0 } Viamax ] unit-test
166 [ 0 ] [ zvector{ C{ 2.0 -5.0 } 4.0 -6.0 -1.0 } Viamax ] unit-test
168 ! Vamax
170 [ -6.0 ] [ svector{ 1.0 -5.0 4.0 -6.0 -1.0 } Vamax ] unit-test
171 [ -6.0 ] [ dvector{ 1.0 -5.0 4.0 -6.0 -1.0 } Vamax ] unit-test
172 [ C{ 2.0 -5.0 } ] [ cvector{ C{ 2.0 -5.0 } 4.0 -6.0 -1.0 } Vamax ] unit-test
173 [ C{ 2.0 -5.0 } ] [ zvector{ C{ 2.0 -5.0 } 4.0 -6.0 -1.0 } Vamax ] unit-test
175 ! Vsub
177 [ svector{ -5.0 4.0 -6.0 } ] [ svector{ 1.0 -5.0 4.0 -6.0 -1.0 } 1 3 Vsub ] unit-test
178 [ dvector{ -5.0 4.0 -6.0 } ] [ dvector{ 1.0 -5.0 4.0 -6.0 -1.0 } 1 3 Vsub ] unit-test
179 [ cvector{ -5.0 C{ 4.0 3.0 } -6.0 } ] [ cvector{ 1.0 -5.0 C{ 4.0 3.0 } -6.0 -1.0 } 1 3 Vsub ] unit-test
180 [ zvector{ -5.0 C{ 4.0 3.0 } -6.0 } ] [ zvector{ 1.0 -5.0 C{ 4.0 3.0 } -6.0 -1.0 } 1 3 Vsub ] unit-test