1 USING: kernel math.blas.matrices math.blas.vectors
2 sequences system tools.test ;
4 ! disable on linux-x86-32
5 os linux? cpu x86.32? and [
48 { C{ 1.0 1.0 } 2.0 3.0 }
49 { 4.0 C{ 5.0 2.0 } 6.0 }
50 { 7.0 8.0 C{ 9.0 3.0 } }
53 { C{ 1.0 1.0 } 2.0 3.0 }
54 { 4.0 C{ 5.0 2.0 } 6.0 }
55 { 7.0 8.0 C{ 9.0 3.0 } }
60 { C{ 1.0 1.0 } 2.0 3.0 }
61 { 4.0 C{ 5.0 2.0 } 6.0 }
62 { 7.0 8.0 C{ 9.0 3.0 } }
67 { C{ 1.0 1.0 } 2.0 3.0 }
68 { 4.0 C{ 5.0 2.0 } 6.0 }
69 { 7.0 8.0 C{ 9.0 3.0 } }
72 { C{ 1.0 1.0 } 2.0 3.0 }
73 { 4.0 C{ 5.0 2.0 } 6.0 }
74 { 7.0 8.0 C{ 9.0 3.0 } }
79 { C{ 1.0 1.0 } 2.0 3.0 }
80 { 4.0 C{ 5.0 2.0 } 6.0 }
81 { 7.0 8.0 C{ 9.0 3.0 } }
87 { svector{ 3.0 1.0 6.0 } } [
93 svector{ 1.0 2.0 3.0 1.0 }
96 { svector{ -2.0 1.0 3.0 14.0 } } [
102 svector{ 1.0 2.0 3.0 }
106 { dvector{ 3.0 1.0 6.0 } } [
112 dvector{ 1.0 2.0 3.0 1.0 }
115 { dvector{ -2.0 1.0 3.0 14.0 } } [
121 dvector{ 1.0 2.0 3.0 }
125 { cvector{ 3.0 C{ 1.0 2.0 } 6.0 } } [
128 { -1.0 C{ 0.0 1.0 } 0.0 2.0 }
131 cvector{ 1.0 2.0 3.0 1.0 }
134 { cvector{ -2.0 C{ 1.0 2.0 } 3.0 14.0 } } [
137 { -1.0 C{ 0.0 1.0 } 0.0 2.0 }
140 cvector{ 1.0 2.0 3.0 }
144 { zvector{ 3.0 C{ 1.0 2.0 } 6.0 } } [
147 { -1.0 C{ 0.0 1.0 } 0.0 2.0 }
150 zvector{ 1.0 2.0 3.0 1.0 }
153 { zvector{ -2.0 C{ 1.0 2.0 } 3.0 14.0 } } [
156 { -1.0 C{ 0.0 1.0 } 0.0 2.0 }
159 zvector{ 1.0 2.0 3.0 }
170 svector{ 1.0 2.0 3.0 } svector{ 1.0 2.0 3.0 4.0 } V(*)
178 dvector{ 1.0 2.0 3.0 } dvector{ 1.0 2.0 3.0 4.0 } V(*)
182 { 1.0 2.0 C{ 3.0 -3.0 } 4.0 }
183 { 2.0 4.0 C{ 6.0 -6.0 } 8.0 }
184 { C{ 3.0 3.0 } C{ 6.0 6.0 } 18.0 C{ 12.0 12.0 } }
186 cvector{ 1.0 2.0 C{ 3.0 3.0 } } cvector{ 1.0 2.0 C{ 3.0 -3.0 } 4.0 } V(*)
190 { 1.0 2.0 C{ 3.0 -3.0 } 4.0 }
191 { 2.0 4.0 C{ 6.0 -6.0 } 8.0 }
192 { C{ 3.0 3.0 } C{ 6.0 6.0 } 18.0 C{ 12.0 12.0 } }
194 zvector{ 1.0 2.0 C{ 3.0 3.0 } } zvector{ 1.0 2.0 C{ 3.0 -3.0 } 4.0 } V(*)
200 { 1.0 0.0 0.0 4.0 0.0 }
201 { 0.0 0.0 -3.0 0.0 0.0 }
202 { 0.0 4.0 0.0 0.0 10.0 }
203 { 0.0 0.0 0.0 0.0 0.0 }
211 { 1.0 0.0 0.0 4.0 0.0 }
212 { 0.0 2.0 0.0 0.0 5.0 }
213 { 0.0 0.0 3.0 0.0 0.0 }
225 { 1.0 0.0 0.0 4.0 0.0 }
226 { 0.0 2.0 0.0 0.0 5.0 }
227 { 0.0 0.0 3.0 0.0 0.0 }
228 } Mtranspose smatrix{
237 { 1.0 0.0 0.0 4.0 0.0 }
238 { 0.0 0.0 -3.0 0.0 0.0 }
239 { 0.0 4.0 0.0 0.0 10.0 }
240 { 0.0 0.0 0.0 0.0 0.0 }
248 { 1.0 0.0 0.0 4.0 0.0 }
249 { 0.0 2.0 0.0 0.0 5.0 }
250 { 0.0 0.0 3.0 0.0 0.0 }
262 { 1.0 0.0 0.0 4.0 0.0 }
263 { 0.0 2.0 0.0 0.0 5.0 }
264 { 0.0 0.0 3.0 0.0 0.0 }
265 } Mtranspose dmatrix{
274 { 1.0 0.0 0.0 4.0 0.0 }
275 { 0.0 0.0 -3.0 0.0 0.0 }
276 { 0.0 C{ 4.0 -4.0 } 0.0 0.0 10.0 }
277 { 0.0 0.0 0.0 0.0 0.0 }
285 { 1.0 0.0 0.0 4.0 0.0 }
286 { 0.0 C{ 2.0 -2.0 } 0.0 0.0 5.0 }
287 { 0.0 0.0 3.0 0.0 0.0 }
293 { 0.0 0.0 C{ 4.0 -4.0 } 0.0 }
299 { 1.0 0.0 0.0 4.0 0.0 }
300 { 0.0 C{ 2.0 -2.0 } 0.0 0.0 5.0 }
301 { 0.0 0.0 3.0 0.0 0.0 }
302 } Mtranspose cmatrix{
311 { 1.0 0.0 0.0 4.0 0.0 }
312 { 0.0 0.0 -3.0 0.0 0.0 }
313 { 0.0 C{ 4.0 -4.0 } 0.0 0.0 10.0 }
314 { 0.0 0.0 0.0 0.0 0.0 }
322 { 1.0 0.0 0.0 4.0 0.0 }
323 { 0.0 C{ 2.0 -2.0 } 0.0 0.0 5.0 }
324 { 0.0 0.0 3.0 0.0 0.0 }
330 { 0.0 0.0 C{ 4.0 -4.0 } 0.0 }
336 { 1.0 0.0 0.0 4.0 0.0 }
337 { 0.0 C{ 2.0 -2.0 } 0.0 0.0 5.0 }
338 { 0.0 0.0 3.0 0.0 0.0 }
339 } Mtranspose zmatrix{
371 { 0.0 C{ -1.0 2.0 } }
373 C{ 2.0 1.0 } cmatrix{
381 { 0.0 C{ -1.0 2.0 } }
383 C{ 2.0 1.0 } zmatrix{
391 { svector{ 3.0 3.0 3.0 } } [
398 { svector{ 3.0 2.0 3.0 4.0 } } [
419 { svector{ 3.0 3.0 3.0 } } [
424 } Mtranspose Mrows nth
426 { svector{ 3.0 2.0 3.0 4.0 } } [
431 } Mtranspose Mcols nth
438 } Mtranspose Mcols length
445 } Mtranspose Mrows length
448 { dvector{ 3.0 3.0 3.0 } } [
455 { dvector{ 3.0 2.0 3.0 4.0 } } [
476 { dvector{ 3.0 3.0 3.0 } } [
481 } Mtranspose Mrows nth
483 { dvector{ 3.0 2.0 3.0 4.0 } } [
488 } Mtranspose Mcols nth
495 } Mtranspose Mcols length
502 } Mtranspose Mrows length
505 { cvector{ C{ 3.0 1.0 } C{ 3.0 2.0 } C{ 3.0 3.0 } } } [
507 { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
508 { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
509 { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
512 { cvector{ C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } } } [
514 { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
515 { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
516 { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
521 { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
522 { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
523 { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
528 { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
529 { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
530 { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
533 { cvector{ C{ 3.0 1.0 } C{ 3.0 2.0 } C{ 3.0 3.0 } } } [
535 { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
536 { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
537 { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
538 } Mtranspose Mrows nth
540 { cvector{ C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } } } [
542 { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
543 { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
544 { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
545 } Mtranspose Mcols nth
549 { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
550 { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
551 { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
552 } Mtranspose Mcols length
556 { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
557 { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
558 { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
559 } Mtranspose Mrows length
562 { zvector{ C{ 3.0 1.0 } C{ 3.0 2.0 } C{ 3.0 3.0 } } } [
564 { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
565 { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
566 { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
569 { zvector{ C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } } } [
571 { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
572 { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
573 { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
578 { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
579 { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
580 { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
585 { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
586 { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
587 { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
590 { zvector{ C{ 3.0 1.0 } C{ 3.0 2.0 } C{ 3.0 3.0 } } } [
592 { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
593 { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
594 { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
595 } Mtranspose Mrows nth
597 { zvector{ C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } } } [
599 { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
600 { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
601 { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
602 } Mtranspose Mcols nth
606 { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
607 { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
608 { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
609 } Mtranspose Mcols length
613 { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
614 { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
615 { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
616 } Mtranspose Mrows length
626 { 0.0 1.0 2.0 3.0 2.0 }
627 { 1.0 0.0 3.0 2.0 1.0 }
628 { 2.0 3.0 0.0 1.0 0.0 }
638 { 0.0 1.0 2.0 3.0 2.0 }
639 { 1.0 0.0 3.0 2.0 1.0 }
640 { 2.0 3.0 0.0 1.0 0.0 }
641 } Mtranspose 2 1 3 2 Msub
649 { 0.0 1.0 2.0 3.0 2.0 }
650 { 1.0 0.0 3.0 2.0 1.0 }
651 { 2.0 3.0 0.0 1.0 0.0 }
661 { 0.0 1.0 2.0 3.0 2.0 }
662 { 1.0 0.0 3.0 2.0 1.0 }
663 { 2.0 3.0 0.0 1.0 0.0 }
664 } Mtranspose 2 1 3 2 Msub
668 { C{ 3.0 3.0 } 2.0 1.0 }
672 { 0.0 1.0 2.0 3.0 2.0 }
673 { 1.0 0.0 C{ 3.0 3.0 } 2.0 1.0 }
674 { 2.0 3.0 0.0 1.0 0.0 }
684 { 0.0 1.0 2.0 3.0 2.0 }
685 { 1.0 0.0 C{ 3.0 3.0 } 2.0 1.0 }
686 { 2.0 3.0 0.0 1.0 0.0 }
687 } Mtranspose 2 1 3 2 Msub
691 { C{ 3.0 3.0 } 2.0 1.0 }
695 { 0.0 1.0 2.0 3.0 2.0 }
696 { 1.0 0.0 C{ 3.0 3.0 } 2.0 1.0 }
697 { 2.0 3.0 0.0 1.0 0.0 }
707 { 0.0 1.0 2.0 3.0 2.0 }
708 { 1.0 0.0 C{ 3.0 3.0 } 2.0 1.0 }
709 { 2.0 3.0 0.0 1.0 0.0 }
710 } Mtranspose 2 1 3 2 Msub
713 ! Bugfix: blas-matrix-base did not handle `f smatrix{ } equal?`
716 svector{ 1.0 2.0 3.0 4.0 }
717 svector{ 2.0 2.0 3.0 4.0 }
718 svector{ 3.0 2.0 3.0 4.0 }