711 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			711 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Factor
		
	
	
USING: kernel math.blas.matrices math.blas.vectors math.blas.syntax
 | 
						|
sequences tools.test ;
 | 
						|
IN: math.blas.matrices.tests
 | 
						|
 | 
						|
! clone
 | 
						|
 | 
						|
[ smatrix{
 | 
						|
    { 1.0 2.0 3.0 }
 | 
						|
    { 4.0 5.0 6.0 }
 | 
						|
    { 7.0 8.0 9.0 }
 | 
						|
} ] [
 | 
						|
    smatrix{
 | 
						|
        { 1.0 2.0 3.0 }
 | 
						|
        { 4.0 5.0 6.0 }
 | 
						|
        { 7.0 8.0 9.0 }
 | 
						|
    } clone
 | 
						|
] unit-test
 | 
						|
[ f ] [
 | 
						|
    smatrix{
 | 
						|
        { 1.0 2.0 3.0 }
 | 
						|
        { 4.0 5.0 6.0 }
 | 
						|
        { 7.0 8.0 9.0 }
 | 
						|
    } dup clone eq?
 | 
						|
] unit-test
 | 
						|
 | 
						|
[ dmatrix{
 | 
						|
    { 1.0 2.0 3.0 }
 | 
						|
    { 4.0 5.0 6.0 }
 | 
						|
    { 7.0 8.0 9.0 }
 | 
						|
} ] [
 | 
						|
    dmatrix{
 | 
						|
        { 1.0 2.0 3.0 }
 | 
						|
        { 4.0 5.0 6.0 }
 | 
						|
        { 7.0 8.0 9.0 }
 | 
						|
    } clone
 | 
						|
] unit-test
 | 
						|
[ f ] [
 | 
						|
    dmatrix{
 | 
						|
        { 1.0 2.0 3.0 }
 | 
						|
        { 4.0 5.0 6.0 }
 | 
						|
        { 7.0 8.0 9.0 }
 | 
						|
    } dup clone eq?
 | 
						|
] unit-test
 | 
						|
 | 
						|
[ cmatrix{
 | 
						|
    { C{ 1.0 1.0 } 2.0          3.0          }
 | 
						|
    { 4.0          C{ 5.0 2.0 } 6.0          }
 | 
						|
    { 7.0          8.0          C{ 9.0 3.0 } }
 | 
						|
} ] [
 | 
						|
    cmatrix{
 | 
						|
        { C{ 1.0 1.0 } 2.0          3.0          }
 | 
						|
        { 4.0          C{ 5.0 2.0 } 6.0          }
 | 
						|
        { 7.0          8.0          C{ 9.0 3.0 } }
 | 
						|
    } clone
 | 
						|
] unit-test
 | 
						|
[ f ] [
 | 
						|
    cmatrix{
 | 
						|
        { C{ 1.0 1.0 } 2.0          3.0          }
 | 
						|
        { 4.0          C{ 5.0 2.0 } 6.0          }
 | 
						|
        { 7.0          8.0          C{ 9.0 3.0 } }
 | 
						|
    } dup clone eq?
 | 
						|
] unit-test
 | 
						|
 | 
						|
[ zmatrix{
 | 
						|
    { C{ 1.0 1.0 } 2.0          3.0          }
 | 
						|
    { 4.0          C{ 5.0 2.0 } 6.0          }
 | 
						|
    { 7.0          8.0          C{ 9.0 3.0 } }
 | 
						|
} ] [
 | 
						|
    zmatrix{
 | 
						|
        { C{ 1.0 1.0 } 2.0          3.0          }
 | 
						|
        { 4.0          C{ 5.0 2.0 } 6.0          }
 | 
						|
        { 7.0          8.0          C{ 9.0 3.0 } }
 | 
						|
    } clone
 | 
						|
] unit-test
 | 
						|
[ f ] [
 | 
						|
    zmatrix{
 | 
						|
        { C{ 1.0 1.0 } 2.0          3.0          }
 | 
						|
        { 4.0          C{ 5.0 2.0 } 6.0          }
 | 
						|
        { 7.0          8.0          C{ 9.0 3.0 } }
 | 
						|
    } dup clone eq?
 | 
						|
] unit-test
 | 
						|
 | 
						|
! M.V
 | 
						|
 | 
						|
[ svector{ 3.0 1.0 6.0 } ] [
 | 
						|
    smatrix{
 | 
						|
        {  0.0 1.0 0.0 1.0 }
 | 
						|
        { -1.0 0.0 0.0 2.0 }
 | 
						|
        {  0.0 0.0 1.0 3.0 }
 | 
						|
    }
 | 
						|
    svector{ 1.0 2.0 3.0 1.0 }
 | 
						|
    M.V
 | 
						|
] unit-test 
 | 
						|
[ svector{ -2.0 1.0 3.0 14.0 } ] [
 | 
						|
    smatrix{
 | 
						|
        {  0.0 1.0 0.0 1.0 }
 | 
						|
        { -1.0 0.0 0.0 2.0 }
 | 
						|
        {  0.0 0.0 1.0 3.0 }
 | 
						|
    } Mtranspose
 | 
						|
    svector{ 1.0 2.0 3.0 }
 | 
						|
    M.V
 | 
						|
] unit-test 
 | 
						|
 | 
						|
[ dvector{ 3.0 1.0 6.0 } ] [
 | 
						|
    dmatrix{
 | 
						|
        {  0.0 1.0 0.0 1.0 }
 | 
						|
        { -1.0 0.0 0.0 2.0 }
 | 
						|
        {  0.0 0.0 1.0 3.0 }
 | 
						|
    }
 | 
						|
    dvector{ 1.0 2.0 3.0 1.0 }
 | 
						|
    M.V
 | 
						|
] unit-test 
 | 
						|
[ dvector{ -2.0 1.0 3.0 14.0 } ] [
 | 
						|
    dmatrix{
 | 
						|
        {  0.0 1.0 0.0 1.0 }
 | 
						|
        { -1.0 0.0 0.0 2.0 }
 | 
						|
        {  0.0 0.0 1.0 3.0 }
 | 
						|
    } Mtranspose
 | 
						|
    dvector{ 1.0 2.0 3.0 }
 | 
						|
    M.V
 | 
						|
] unit-test 
 | 
						|
 | 
						|
[ cvector{ 3.0 C{ 1.0 2.0 } 6.0 } ] [
 | 
						|
    cmatrix{
 | 
						|
        {  0.0 1.0          0.0 1.0 }
 | 
						|
        { -1.0 C{ 0.0 1.0 } 0.0 2.0 }
 | 
						|
        {  0.0 0.0          1.0 3.0 }
 | 
						|
    }
 | 
						|
    cvector{ 1.0 2.0 3.0 1.0 }
 | 
						|
    M.V
 | 
						|
] unit-test 
 | 
						|
[ cvector{ -2.0 C{ 1.0 2.0 } 3.0 14.0 } ] [
 | 
						|
    cmatrix{
 | 
						|
        {  0.0 1.0          0.0 1.0 }
 | 
						|
        { -1.0 C{ 0.0 1.0 } 0.0 2.0 }
 | 
						|
        {  0.0 0.0          1.0 3.0 }
 | 
						|
    } Mtranspose
 | 
						|
    cvector{ 1.0 2.0 3.0 }
 | 
						|
    M.V
 | 
						|
] unit-test 
 | 
						|
 | 
						|
[ zvector{ 3.0 C{ 1.0 2.0 } 6.0 } ] [
 | 
						|
    zmatrix{
 | 
						|
        {  0.0 1.0          0.0 1.0 }
 | 
						|
        { -1.0 C{ 0.0 1.0 } 0.0 2.0 }
 | 
						|
        {  0.0 0.0          1.0 3.0 }
 | 
						|
    }
 | 
						|
    zvector{ 1.0 2.0 3.0 1.0 }
 | 
						|
    M.V
 | 
						|
] unit-test
 | 
						|
[ zvector{ -2.0 C{ 1.0 2.0 } 3.0 14.0 } ] [
 | 
						|
    zmatrix{
 | 
						|
        {  0.0 1.0          0.0 1.0 }
 | 
						|
        { -1.0 C{ 0.0 1.0 } 0.0 2.0 }
 | 
						|
        {  0.0 0.0          1.0 3.0 }
 | 
						|
    } Mtranspose
 | 
						|
    zvector{ 1.0 2.0 3.0 }
 | 
						|
    M.V
 | 
						|
] unit-test 
 | 
						|
 | 
						|
! V(*)
 | 
						|
 | 
						|
[ smatrix{
 | 
						|
    { 1.0 2.0 3.0  4.0 }
 | 
						|
    { 2.0 4.0 6.0  8.0 }
 | 
						|
    { 3.0 6.0 9.0 12.0 }
 | 
						|
} ] [
 | 
						|
    svector{ 1.0 2.0 3.0 } svector{ 1.0 2.0 3.0 4.0 } V(*)
 | 
						|
] unit-test
 | 
						|
 | 
						|
[ dmatrix{
 | 
						|
    { 1.0 2.0 3.0  4.0 }
 | 
						|
    { 2.0 4.0 6.0  8.0 }
 | 
						|
    { 3.0 6.0 9.0 12.0 }
 | 
						|
} ] [
 | 
						|
    dvector{ 1.0 2.0 3.0 } dvector{ 1.0 2.0 3.0 4.0 } V(*)
 | 
						|
] unit-test
 | 
						|
 | 
						|
[ cmatrix{
 | 
						|
    { 1.0          2.0          C{ 3.0 -3.0 } 4.0            }
 | 
						|
    { 2.0          4.0          C{ 6.0 -6.0 } 8.0            }
 | 
						|
    { C{ 3.0 3.0 } C{ 6.0 6.0 } 18.0          C{ 12.0 12.0 } }
 | 
						|
} ] [
 | 
						|
    cvector{ 1.0 2.0 C{ 3.0 3.0 } } cvector{ 1.0 2.0 C{ 3.0 -3.0 } 4.0 } V(*)
 | 
						|
] unit-test
 | 
						|
 | 
						|
[ zmatrix{
 | 
						|
    { 1.0          2.0          C{ 3.0 -3.0 } 4.0            }
 | 
						|
    { 2.0          4.0          C{ 6.0 -6.0 } 8.0            }
 | 
						|
    { C{ 3.0 3.0 } C{ 6.0 6.0 } 18.0          C{ 12.0 12.0 } }
 | 
						|
} ] [
 | 
						|
    zvector{ 1.0 2.0 C{ 3.0 3.0 } } zvector{ 1.0 2.0 C{ 3.0 -3.0 } 4.0 } V(*)
 | 
						|
] unit-test
 | 
						|
 | 
						|
! M.
 | 
						|
 | 
						|
[ smatrix{
 | 
						|
    { 1.0 0.0  0.0 4.0  0.0 }
 | 
						|
    { 0.0 0.0 -3.0 0.0  0.0 }
 | 
						|
    { 0.0 4.0  0.0 0.0 10.0 }
 | 
						|
    { 0.0 0.0  0.0 0.0  0.0 }
 | 
						|
} ] [
 | 
						|
    smatrix{
 | 
						|
        { 1.0 0.0  0.0 }
 | 
						|
        { 0.0 0.0 -1.0 }
 | 
						|
        { 0.0 2.0  0.0 }
 | 
						|
        { 0.0 0.0  0.0 }
 | 
						|
    } smatrix{
 | 
						|
        { 1.0 0.0 0.0 4.0 0.0 }
 | 
						|
        { 0.0 2.0 0.0 0.0 5.0 }
 | 
						|
        { 0.0 0.0 3.0 0.0 0.0 }
 | 
						|
    } M.
 | 
						|
] unit-test
 | 
						|
 | 
						|
[ smatrix{
 | 
						|
    { 1.0  0.0  0.0 0.0 }
 | 
						|
    { 0.0  0.0  4.0 0.0 }
 | 
						|
    { 0.0 -3.0  0.0 0.0 }
 | 
						|
    { 4.0  0.0  0.0 0.0 }
 | 
						|
    { 0.0  0.0 10.0 0.0 }
 | 
						|
} ] [
 | 
						|
    smatrix{
 | 
						|
        { 1.0 0.0 0.0 4.0 0.0 }
 | 
						|
        { 0.0 2.0 0.0 0.0 5.0 }
 | 
						|
        { 0.0 0.0 3.0 0.0 0.0 }
 | 
						|
    } Mtranspose smatrix{
 | 
						|
        { 1.0 0.0  0.0 }
 | 
						|
        { 0.0 0.0 -1.0 }
 | 
						|
        { 0.0 2.0  0.0 }
 | 
						|
        { 0.0 0.0  0.0 }
 | 
						|
    } Mtranspose M.
 | 
						|
] unit-test
 | 
						|
 | 
						|
[ dmatrix{
 | 
						|
    { 1.0 0.0  0.0 4.0  0.0 }
 | 
						|
    { 0.0 0.0 -3.0 0.0  0.0 }
 | 
						|
    { 0.0 4.0  0.0 0.0 10.0 }
 | 
						|
    { 0.0 0.0  0.0 0.0  0.0 }
 | 
						|
} ] [
 | 
						|
    dmatrix{
 | 
						|
        { 1.0 0.0  0.0 }
 | 
						|
        { 0.0 0.0 -1.0 }
 | 
						|
        { 0.0 2.0  0.0 }
 | 
						|
        { 0.0 0.0  0.0 }
 | 
						|
    } dmatrix{
 | 
						|
        { 1.0 0.0 0.0 4.0 0.0 }
 | 
						|
        { 0.0 2.0 0.0 0.0 5.0 }
 | 
						|
        { 0.0 0.0 3.0 0.0 0.0 }
 | 
						|
    } M.
 | 
						|
] unit-test
 | 
						|
 | 
						|
[ dmatrix{
 | 
						|
    { 1.0  0.0  0.0 0.0 }
 | 
						|
    { 0.0  0.0  4.0 0.0 }
 | 
						|
    { 0.0 -3.0  0.0 0.0 }
 | 
						|
    { 4.0  0.0  0.0 0.0 }
 | 
						|
    { 0.0  0.0 10.0 0.0 }
 | 
						|
} ] [
 | 
						|
    dmatrix{
 | 
						|
        { 1.0 0.0 0.0 4.0 0.0 }
 | 
						|
        { 0.0 2.0 0.0 0.0 5.0 }
 | 
						|
        { 0.0 0.0 3.0 0.0 0.0 }
 | 
						|
    } Mtranspose dmatrix{
 | 
						|
        { 1.0 0.0  0.0 }
 | 
						|
        { 0.0 0.0 -1.0 }
 | 
						|
        { 0.0 2.0  0.0 }
 | 
						|
        { 0.0 0.0  0.0 }
 | 
						|
    } Mtranspose M.
 | 
						|
] unit-test
 | 
						|
 | 
						|
[ cmatrix{
 | 
						|
    { 1.0 0.0            0.0 4.0  0.0 }
 | 
						|
    { 0.0 0.0           -3.0 0.0  0.0 }
 | 
						|
    { 0.0 C{ 4.0 -4.0 }  0.0 0.0 10.0 }
 | 
						|
    { 0.0 0.0            0.0 0.0  0.0 }
 | 
						|
} ] [
 | 
						|
    cmatrix{
 | 
						|
        { 1.0 0.0  0.0 }
 | 
						|
        { 0.0 0.0 -1.0 }
 | 
						|
        { 0.0 2.0  0.0 }
 | 
						|
        { 0.0 0.0  0.0 }
 | 
						|
    } cmatrix{
 | 
						|
        { 1.0 0.0           0.0 4.0 0.0 }
 | 
						|
        { 0.0 C{ 2.0 -2.0 } 0.0 0.0 5.0 }
 | 
						|
        { 0.0 0.0           3.0 0.0 0.0 }
 | 
						|
    } M.
 | 
						|
] unit-test
 | 
						|
 | 
						|
[ cmatrix{
 | 
						|
    { 1.0  0.0  0.0          0.0 }
 | 
						|
    { 0.0  0.0 C{ 4.0 -4.0 } 0.0 }
 | 
						|
    { 0.0 -3.0  0.0          0.0 }
 | 
						|
    { 4.0  0.0  0.0          0.0 }
 | 
						|
    { 0.0  0.0 10.0          0.0 }
 | 
						|
} ] [
 | 
						|
    cmatrix{
 | 
						|
        { 1.0 0.0           0.0 4.0 0.0 }
 | 
						|
        { 0.0 C{ 2.0 -2.0 } 0.0 0.0 5.0 }
 | 
						|
        { 0.0 0.0           3.0 0.0 0.0 }
 | 
						|
    } Mtranspose cmatrix{
 | 
						|
        { 1.0 0.0  0.0 }
 | 
						|
        { 0.0 0.0 -1.0 }
 | 
						|
        { 0.0 2.0  0.0 }
 | 
						|
        { 0.0 0.0  0.0 }
 | 
						|
    } Mtranspose M.
 | 
						|
] unit-test
 | 
						|
 | 
						|
[ zmatrix{
 | 
						|
    { 1.0 0.0            0.0 4.0  0.0 }
 | 
						|
    { 0.0 0.0           -3.0 0.0  0.0 }
 | 
						|
    { 0.0 C{ 4.0 -4.0 }  0.0 0.0 10.0 }
 | 
						|
    { 0.0 0.0            0.0 0.0  0.0 }
 | 
						|
} ] [
 | 
						|
    zmatrix{
 | 
						|
        { 1.0 0.0  0.0 }
 | 
						|
        { 0.0 0.0 -1.0 }
 | 
						|
        { 0.0 2.0  0.0 }
 | 
						|
        { 0.0 0.0  0.0 }
 | 
						|
    } zmatrix{
 | 
						|
        { 1.0 0.0           0.0 4.0 0.0 }
 | 
						|
        { 0.0 C{ 2.0 -2.0 } 0.0 0.0 5.0 }
 | 
						|
        { 0.0 0.0           3.0 0.0 0.0 }
 | 
						|
    } M.
 | 
						|
] unit-test
 | 
						|
 | 
						|
[ zmatrix{
 | 
						|
    { 1.0  0.0  0.0          0.0 }
 | 
						|
    { 0.0  0.0 C{ 4.0 -4.0 } 0.0 }
 | 
						|
    { 0.0 -3.0  0.0          0.0 }
 | 
						|
    { 4.0  0.0  0.0          0.0 }
 | 
						|
    { 0.0  0.0 10.0          0.0 }
 | 
						|
} ] [
 | 
						|
    zmatrix{
 | 
						|
        { 1.0 0.0           0.0 4.0 0.0 }
 | 
						|
        { 0.0 C{ 2.0 -2.0 } 0.0 0.0 5.0 }
 | 
						|
        { 0.0 0.0           3.0 0.0 0.0 }
 | 
						|
    } Mtranspose zmatrix{
 | 
						|
        { 1.0 0.0  0.0 }
 | 
						|
        { 0.0 0.0 -1.0 }
 | 
						|
        { 0.0 2.0  0.0 }
 | 
						|
        { 0.0 0.0  0.0 }
 | 
						|
    } Mtranspose M.
 | 
						|
] unit-test
 | 
						|
 | 
						|
! n*M
 | 
						|
 | 
						|
[ smatrix{
 | 
						|
    { 2.0 0.0 }
 | 
						|
    { 0.0 2.0 }
 | 
						|
} ] [
 | 
						|
    2.0 smatrix{
 | 
						|
        { 1.0 0.0 }
 | 
						|
        { 0.0 1.0 }
 | 
						|
    } n*M
 | 
						|
] unit-test
 | 
						|
 | 
						|
[ dmatrix{
 | 
						|
    { 2.0 0.0 }
 | 
						|
    { 0.0 2.0 }
 | 
						|
} ] [
 | 
						|
    2.0 dmatrix{
 | 
						|
        { 1.0 0.0 }
 | 
						|
        { 0.0 1.0 }
 | 
						|
    } n*M
 | 
						|
] unit-test
 | 
						|
 | 
						|
[ cmatrix{
 | 
						|
    { C{ 2.0 1.0 } 0.0           }
 | 
						|
    { 0.0          C{ -1.0 2.0 } }
 | 
						|
} ] [
 | 
						|
    C{ 2.0 1.0 } cmatrix{
 | 
						|
        { 1.0 0.0          }
 | 
						|
        { 0.0 C{ 0.0 1.0 } }
 | 
						|
    } n*M
 | 
						|
] unit-test
 | 
						|
 | 
						|
[ zmatrix{
 | 
						|
    { C{ 2.0 1.0 } 0.0           }
 | 
						|
    { 0.0          C{ -1.0 2.0 } }
 | 
						|
} ] [
 | 
						|
    C{ 2.0 1.0 } zmatrix{
 | 
						|
        { 1.0 0.0          }
 | 
						|
        { 0.0 C{ 0.0 1.0 } }
 | 
						|
    } n*M
 | 
						|
] unit-test
 | 
						|
 | 
						|
! Mrows, Mcols
 | 
						|
 | 
						|
[ svector{ 3.0 3.0 3.0 } ] [
 | 
						|
    2 smatrix{
 | 
						|
        { 1.0 2.0 3.0 4.0 }
 | 
						|
        { 2.0 2.0 3.0 4.0 }
 | 
						|
        { 3.0 2.0 3.0 4.0 }
 | 
						|
    } Mcols nth
 | 
						|
] unit-test
 | 
						|
[ svector{ 3.0 2.0 3.0 4.0 } ] [
 | 
						|
    2 smatrix{
 | 
						|
        { 1.0 2.0 3.0 4.0 }
 | 
						|
        { 2.0 2.0 3.0 4.0 }
 | 
						|
        { 3.0 2.0 3.0 4.0 }
 | 
						|
    } Mrows nth
 | 
						|
] unit-test
 | 
						|
[ 3 ] [
 | 
						|
    smatrix{
 | 
						|
        { 1.0 2.0 3.0 4.0 }
 | 
						|
        { 2.0 2.0 3.0 4.0 }
 | 
						|
        { 3.0 2.0 3.0 4.0 }
 | 
						|
    } Mrows length
 | 
						|
] unit-test
 | 
						|
[ 4 ] [
 | 
						|
    smatrix{
 | 
						|
        { 1.0 2.0 3.0 4.0 }
 | 
						|
        { 2.0 2.0 3.0 4.0 }
 | 
						|
        { 3.0 2.0 3.0 4.0 }
 | 
						|
    } Mcols length
 | 
						|
] unit-test
 | 
						|
[ svector{ 3.0 3.0 3.0 } ] [
 | 
						|
    2 smatrix{
 | 
						|
        { 1.0 2.0 3.0 4.0 }
 | 
						|
        { 2.0 2.0 3.0 4.0 }
 | 
						|
        { 3.0 2.0 3.0 4.0 }
 | 
						|
    } Mtranspose Mrows nth
 | 
						|
] unit-test
 | 
						|
[ svector{ 3.0 2.0 3.0 4.0 } ] [
 | 
						|
    2 smatrix{
 | 
						|
        { 1.0 2.0 3.0 4.0 }
 | 
						|
        { 2.0 2.0 3.0 4.0 }
 | 
						|
        { 3.0 2.0 3.0 4.0 }
 | 
						|
    } Mtranspose Mcols nth
 | 
						|
] unit-test
 | 
						|
[ 3 ] [
 | 
						|
    smatrix{
 | 
						|
        { 1.0 2.0 3.0 4.0 }
 | 
						|
        { 2.0 2.0 3.0 4.0 }
 | 
						|
        { 3.0 2.0 3.0 4.0 }
 | 
						|
    } Mtranspose Mcols length
 | 
						|
] unit-test
 | 
						|
[ 4 ] [
 | 
						|
    smatrix{
 | 
						|
        { 1.0 2.0 3.0 4.0 }
 | 
						|
        { 2.0 2.0 3.0 4.0 }
 | 
						|
        { 3.0 2.0 3.0 4.0 }
 | 
						|
    } Mtranspose Mrows length
 | 
						|
] unit-test
 | 
						|
 | 
						|
[ dvector{ 3.0 3.0 3.0 } ] [
 | 
						|
    2 dmatrix{
 | 
						|
        { 1.0 2.0 3.0 4.0 }
 | 
						|
        { 2.0 2.0 3.0 4.0 }
 | 
						|
        { 3.0 2.0 3.0 4.0 }
 | 
						|
    } Mcols nth
 | 
						|
] unit-test
 | 
						|
[ dvector{ 3.0 2.0 3.0 4.0 } ] [
 | 
						|
    2 dmatrix{
 | 
						|
        { 1.0 2.0 3.0 4.0 }
 | 
						|
        { 2.0 2.0 3.0 4.0 }
 | 
						|
        { 3.0 2.0 3.0 4.0 }
 | 
						|
    } Mrows nth
 | 
						|
] unit-test
 | 
						|
[ 3 ] [
 | 
						|
    dmatrix{
 | 
						|
        { 1.0 2.0 3.0 4.0 }
 | 
						|
        { 2.0 2.0 3.0 4.0 }
 | 
						|
        { 3.0 2.0 3.0 4.0 }
 | 
						|
    } Mrows length
 | 
						|
] unit-test
 | 
						|
[ 4 ] [
 | 
						|
    dmatrix{
 | 
						|
        { 1.0 2.0 3.0 4.0 }
 | 
						|
        { 2.0 2.0 3.0 4.0 }
 | 
						|
        { 3.0 2.0 3.0 4.0 }
 | 
						|
    } Mcols length
 | 
						|
] unit-test
 | 
						|
[ dvector{ 3.0 3.0 3.0 } ] [
 | 
						|
    2 dmatrix{
 | 
						|
        { 1.0 2.0 3.0 4.0 }
 | 
						|
        { 2.0 2.0 3.0 4.0 }
 | 
						|
        { 3.0 2.0 3.0 4.0 }
 | 
						|
    } Mtranspose Mrows nth
 | 
						|
] unit-test
 | 
						|
[ dvector{ 3.0 2.0 3.0 4.0 } ] [
 | 
						|
    2 dmatrix{
 | 
						|
        { 1.0 2.0 3.0 4.0 }
 | 
						|
        { 2.0 2.0 3.0 4.0 }
 | 
						|
        { 3.0 2.0 3.0 4.0 }
 | 
						|
    } Mtranspose Mcols nth
 | 
						|
] unit-test
 | 
						|
[ 3 ] [
 | 
						|
    dmatrix{
 | 
						|
        { 1.0 2.0 3.0 4.0 }
 | 
						|
        { 2.0 2.0 3.0 4.0 }
 | 
						|
        { 3.0 2.0 3.0 4.0 }
 | 
						|
    } Mtranspose Mcols length
 | 
						|
] unit-test
 | 
						|
[ 4 ] [
 | 
						|
    dmatrix{
 | 
						|
        { 1.0 2.0 3.0 4.0 }
 | 
						|
        { 2.0 2.0 3.0 4.0 }
 | 
						|
        { 3.0 2.0 3.0 4.0 }
 | 
						|
    } Mtranspose Mrows length
 | 
						|
] unit-test
 | 
						|
 | 
						|
[ cvector{ C{ 3.0 1.0 } C{ 3.0 2.0 } C{ 3.0 3.0 } } ] [
 | 
						|
    2 cmatrix{
 | 
						|
        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
 | 
						|
        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
 | 
						|
        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
 | 
						|
    } Mcols nth
 | 
						|
] unit-test
 | 
						|
[ cvector{ C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } } ] [
 | 
						|
    2 cmatrix{
 | 
						|
        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
 | 
						|
        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
 | 
						|
        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
 | 
						|
    } Mrows nth
 | 
						|
] unit-test
 | 
						|
[ 3 ] [
 | 
						|
    cmatrix{
 | 
						|
        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
 | 
						|
        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
 | 
						|
        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
 | 
						|
    } Mrows length
 | 
						|
] unit-test
 | 
						|
[ 4 ] [
 | 
						|
    cmatrix{
 | 
						|
        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
 | 
						|
        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
 | 
						|
        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
 | 
						|
    } Mcols length
 | 
						|
] unit-test
 | 
						|
[ cvector{ C{ 3.0 1.0 } C{ 3.0 2.0 } C{ 3.0 3.0 } } ] [
 | 
						|
    2 cmatrix{
 | 
						|
        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
 | 
						|
        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
 | 
						|
        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
 | 
						|
    } Mtranspose Mrows nth
 | 
						|
] unit-test
 | 
						|
[ cvector{ C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } } ] [
 | 
						|
    2 cmatrix{
 | 
						|
        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
 | 
						|
        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
 | 
						|
        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
 | 
						|
    } Mtranspose Mcols nth
 | 
						|
] unit-test
 | 
						|
[ 3 ] [
 | 
						|
    cmatrix{
 | 
						|
        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
 | 
						|
        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
 | 
						|
        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
 | 
						|
    } Mtranspose Mcols length
 | 
						|
] unit-test
 | 
						|
[ 4 ] [
 | 
						|
    cmatrix{
 | 
						|
        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
 | 
						|
        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
 | 
						|
        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
 | 
						|
    } Mtranspose Mrows length
 | 
						|
] unit-test
 | 
						|
 | 
						|
[ zvector{ C{ 3.0 1.0 } C{ 3.0 2.0 } C{ 3.0 3.0 } } ] [
 | 
						|
    2 zmatrix{
 | 
						|
        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
 | 
						|
        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
 | 
						|
        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
 | 
						|
    } Mcols nth
 | 
						|
] unit-test
 | 
						|
[ zvector{ C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } } ] [
 | 
						|
    2 zmatrix{
 | 
						|
        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
 | 
						|
        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
 | 
						|
        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
 | 
						|
    } Mrows nth
 | 
						|
] unit-test
 | 
						|
[ 3 ] [
 | 
						|
    zmatrix{
 | 
						|
        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
 | 
						|
        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
 | 
						|
        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
 | 
						|
    } Mrows length
 | 
						|
] unit-test
 | 
						|
[ 4 ] [
 | 
						|
    zmatrix{
 | 
						|
        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
 | 
						|
        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
 | 
						|
        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
 | 
						|
    } Mcols length
 | 
						|
] unit-test
 | 
						|
[ zvector{ C{ 3.0 1.0 } C{ 3.0 2.0 } C{ 3.0 3.0 } } ] [
 | 
						|
    2 zmatrix{
 | 
						|
        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
 | 
						|
        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
 | 
						|
        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
 | 
						|
    } Mtranspose Mrows nth
 | 
						|
] unit-test
 | 
						|
[ zvector{ C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } } ] [
 | 
						|
    2 zmatrix{
 | 
						|
        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
 | 
						|
        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
 | 
						|
        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
 | 
						|
    } Mtranspose Mcols nth
 | 
						|
] unit-test
 | 
						|
[ 3 ] [
 | 
						|
    zmatrix{
 | 
						|
        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
 | 
						|
        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
 | 
						|
        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
 | 
						|
    } Mtranspose Mcols length
 | 
						|
] unit-test
 | 
						|
[ 4 ] [
 | 
						|
    zmatrix{
 | 
						|
        { C{ 1.0 1.0 } C{ 2.0 1.0 } C{ 3.0 1.0 } C{ 4.0 1.0 } }
 | 
						|
        { C{ 1.0 2.0 } C{ 2.0 2.0 } C{ 3.0 2.0 } C{ 4.0 2.0 } }
 | 
						|
        { C{ 1.0 3.0 } C{ 2.0 3.0 } C{ 3.0 3.0 } C{ 4.0 3.0 } }
 | 
						|
    } Mtranspose Mrows length
 | 
						|
] unit-test
 | 
						|
 | 
						|
! Msub
 | 
						|
 | 
						|
[ smatrix{
 | 
						|
    { 3.0 2.0 1.0 }
 | 
						|
    { 0.0 1.0 0.0 }
 | 
						|
} ] [
 | 
						|
    smatrix{
 | 
						|
        { 0.0 1.0 2.0 3.0 2.0 }
 | 
						|
        { 1.0 0.0 3.0 2.0 1.0 }
 | 
						|
        { 2.0 3.0 0.0 1.0 0.0 }
 | 
						|
    } 1 2 2 3 Msub
 | 
						|
] unit-test
 | 
						|
 | 
						|
[ smatrix{
 | 
						|
    { 3.0 0.0 }
 | 
						|
    { 2.0 1.0 }
 | 
						|
    { 1.0 0.0 }
 | 
						|
} ] [
 | 
						|
    smatrix{
 | 
						|
        { 0.0 1.0 2.0 3.0 2.0 }
 | 
						|
        { 1.0 0.0 3.0 2.0 1.0 }
 | 
						|
        { 2.0 3.0 0.0 1.0 0.0 }
 | 
						|
    } Mtranspose 2 1 3 2 Msub
 | 
						|
] unit-test
 | 
						|
 | 
						|
[ dmatrix{
 | 
						|
    { 3.0 2.0 1.0 }
 | 
						|
    { 0.0 1.0 0.0 }
 | 
						|
} ] [
 | 
						|
    dmatrix{
 | 
						|
        { 0.0 1.0 2.0 3.0 2.0 }
 | 
						|
        { 1.0 0.0 3.0 2.0 1.0 }
 | 
						|
        { 2.0 3.0 0.0 1.0 0.0 }
 | 
						|
    } 1 2 2 3 Msub
 | 
						|
] unit-test
 | 
						|
 | 
						|
[ dmatrix{
 | 
						|
    { 3.0 0.0 }
 | 
						|
    { 2.0 1.0 }
 | 
						|
    { 1.0 0.0 }
 | 
						|
} ] [
 | 
						|
    dmatrix{
 | 
						|
        { 0.0 1.0 2.0 3.0 2.0 }
 | 
						|
        { 1.0 0.0 3.0 2.0 1.0 }
 | 
						|
        { 2.0 3.0 0.0 1.0 0.0 }
 | 
						|
    } Mtranspose 2 1 3 2 Msub
 | 
						|
] unit-test
 | 
						|
 | 
						|
[ cmatrix{
 | 
						|
    { C{ 3.0 3.0 } 2.0 1.0 }
 | 
						|
    { 0.0          1.0 0.0 }
 | 
						|
} ] [
 | 
						|
    cmatrix{
 | 
						|
        { 0.0 1.0 2.0          3.0 2.0 }
 | 
						|
        { 1.0 0.0 C{ 3.0 3.0 } 2.0 1.0 }
 | 
						|
        { 2.0 3.0 0.0          1.0 0.0 }
 | 
						|
    } 1 2 2 3 Msub
 | 
						|
] unit-test
 | 
						|
 | 
						|
[ cmatrix{
 | 
						|
    { C{ 3.0 3.0 } 0.0 }
 | 
						|
    { 2.0          1.0 }
 | 
						|
    { 1.0          0.0 }
 | 
						|
} ] [
 | 
						|
    cmatrix{
 | 
						|
        { 0.0 1.0 2.0          3.0 2.0 }
 | 
						|
        { 1.0 0.0 C{ 3.0 3.0 } 2.0 1.0 }
 | 
						|
        { 2.0 3.0 0.0          1.0 0.0 }
 | 
						|
    } Mtranspose 2 1 3 2 Msub
 | 
						|
] unit-test
 | 
						|
 | 
						|
[ zmatrix{
 | 
						|
    { C{ 3.0 3.0 } 2.0 1.0 }
 | 
						|
    { 0.0          1.0 0.0 }
 | 
						|
} ] [
 | 
						|
    zmatrix{
 | 
						|
        { 0.0 1.0 2.0          3.0 2.0 }
 | 
						|
        { 1.0 0.0 C{ 3.0 3.0 } 2.0 1.0 }
 | 
						|
        { 2.0 3.0 0.0          1.0 0.0 }
 | 
						|
    } 1 2 2 3 Msub
 | 
						|
] unit-test
 | 
						|
 | 
						|
[ zmatrix{
 | 
						|
    { C{ 3.0 3.0 } 0.0 }
 | 
						|
    { 2.0          1.0 }
 | 
						|
    { 1.0          0.0 }
 | 
						|
} ] [
 | 
						|
    zmatrix{
 | 
						|
        { 0.0 1.0 2.0          3.0 2.0 }
 | 
						|
        { 1.0 0.0 C{ 3.0 3.0 } 2.0 1.0 }
 | 
						|
        { 2.0 3.0 0.0          1.0 0.0 }
 | 
						|
    } Mtranspose 2 1 3 2 Msub
 | 
						|
] unit-test
 | 
						|
 |