?<include matrix>;

?::matrix <zero #x 3 4>
 ::matrix <display #x>;

?::matrix <unit #x 3>
 ::matrix <display #x>;

?::matrix <set #x 3 4 (1 2 3 4 5 6 7 8 9 10 11 12)>
 ::matrix <display #x>;

?::matrix <unit #x1 3>
 ::matrix <set #x2 3 3 (1 2 3 4 5 6 7 8 9)>
 ::matrix <add #x #x1 #x2>
 ::matrix <display #x>;

?::matrix <unit #x1 3>
 ::matrix <set #x2 3 3 (1 2 3 4 5 6 7 8 9)>
 ::matrix <sub #x #x1 #x2>
 ::matrix <display #x>;

?::matrix <set #x1 4 3 (1 2 3  4 5  6  7  8  9 10 11 12)>
 ::matrix <set #x2 3 4 (1 4 7 10 2  5  8 11  3  6  9 12)>
 ::matrix <mul #x #x1 #x2>
 ::matrix <display #x>;

?::matrix <set #x1 2 2 (1 2 3  4)>
 ::matrix <set #x2 2 2 (1 3 2  4)>
 ::matrix <mul #x #x1 #x2>
 ::matrix <display #x>;

?::matrix <set #x1 2 2 (1 2 3  4)>
 ::matrix <set #x2 2 1 (1 3)>
// ::matrix <mul #x #x1 #x2>
 ::matrix <display #x>;

?::matrix <set #x2 2 2 (1 3 2  4)>
 ::matrix <mul #x 3 #x2>
 ::matrix <display #x>;

?::matrix <set #x2 2 2 (1 3 2  4)>
 ::matrix <mul #x #x2 3>
 ::matrix <display #x>;

?::matrix <mul #x 7 3>
 ::matrix <display #x>;

?::matrix <set #x 2 3 (1 2 3 4 5 6)>
 ::matrix <transpose #x2 #x>
 ::matrix <display #x2>;

?::matrix <set #x1 2 3 (1 2 3 4 5 6)>
 ::matrix <set #x2 2 3 (1 2 3 4 5 6)>
 ::matrix <equal #x1 #x2>;

?::matrix <set #x1 2 3 (1 2 3 4 5 6)>
 ::matrix <set #x2 2 3 (2 2 3 4 5 6)>
 ::matrix <equal #x1 #x2>;

?::matrix <set #x1 2 3 (1 2 3 4 5 6)>
 ::matrix <set #x2 2 3 (1 2 3 4 5 6)>
 ::matrix <notequal #x1 #x2>;

?::matrix <set #x1 2 3 (1 2 3 4 5 6)>
 ::matrix <set #x2 2 3 (2 2 3 4 5 6)>
 ::matrix <notequal #x1 #x2>;

?::matrix <set #x1 2 3 (1 2 3 4 5 6)>
 ::matrix <size #row #column #x1>;

?::matrix <set #x1 2 3 (1 2 3 4 5 6)>
 ::matrix <getrow #row 1 #x1>;

?::matrix <set #x1 2 3 (1 2 3 4 5 6)>
 ::matrix <getcolumn #column 2 #x1>;

?::matrix <set #x1 2 3 (1 2 3 4 5 6)>
 ::matrix <swaprow #x 0 1 #x1>;

?::matrix <set #x1 2 3 (1 2 3 4 5 6)>
 ::matrix <swapcolumn #x 0 2 #x1>;

?::matrix <set #x 3 3 (1 2 3 4 5 6 7 8 9)>
 ::matrix <rangerow #x1 0 1 #x>
 ::matrix <display #x1>
	;

?::matrix <set #x 3 3 (1 2 3 4 5 6 7 8 9)>
 ::matrix <rangecolumn #x1 0 1 #x>
 ::matrix <display #x1>
	;

?::matrix <set #x 3 3 (1 2 3 4 5 6 7 8 9)>
 ::matrix <range #x1 0 1 0 1 #x>
 ::matrix <display #x1>
	;


?::matrix <set #x 3 3 (1 2 3 4 5 6 7 8 9)>
 ::matrix <ismatrix #x>
	;

?::matrix <set #x 9 1 (1 2 3 4 5 6 7 8 9)>
 ::matrix <isvector #x>
	;

?::matrix <set #x 3 3 (1 2 3 4 5 6 7 8 9)>
 ::matrix <issquare #x>
	;
?::matrix <zero #x 3 3>
 ::matrix <isnull #x>
	;

?::matrix <unit #x 3>
 ::matrix <mulscalar #x2 3 #x>
 ::matrix <isdiagonal #x2>
	;

?::matrix <set #x 3 3 (1 2 3 
                       2 5 8 
                       3 8 9)>
 ::matrix <issymmetric #x>
 ::matrix <transpose #x2 #x>
 ::matrix <issymmetric #x2>
	;

?::matrix <set #x 4 4 (2 -2  4  2
                       2 -1  6  3
                       3 -2 12 12
                       -1 3 -4  4)>
 ::matrix <det #det #x>
	;

?::matrix <set #x 4 4 (  1  2  0 -1
                        -1  1  2  0
                         2  0  1  1
                         1 -2 -1  1)>
 ::matrix <inv #y #x>
 ::matrix <mul #z #x #y>
	;

?::matrix <set #x 3 3 (  1 2 3
                         4 5 6
                         7 8 9)>
 ::matrix <inv #y #x>
 ::matrix <mul #z #x #y>
	;

?::matrix <set #x 4 4 (  1  2  0 -1
                        -1  1  2  0
                         2  0  1  1
                         1 -2 -1  1)>
 ::matrix <isregular #x>
	;

?::matrix <set #x 3 3 (  1 2 3
                         4 5 6
                         7 8 9)>
 ::matrix <isregular #x>
	;

?::matrix <set #x 4 4 (  1  2  0 -1
                        -1  1  2  0
                         2  0  1  1
                         1 -2 -1  1)>
 ::matrix <issingular #x>
	;

?::matrix <set #x 3 3 (  1 2 3
                         4 5 6
                         7 8 9)>
 ::matrix <issingular #x>
	;


?::matrix <random #x 3 4>;

?::matrix <set #x 3 3 (  1 2 3
                         4 5 6
                         7 8 9)>
 ::matrix <getval #y 1 2 #x>
	;

?::matrix <set #x 3 3 (  1 2 3
                         4 5 6
                         7 8 9)>
 ::matrix <setval #y 1 2 0 #x>
	;

?::matrix <set #x 3 3 (  1  1  1
                         1  2  3
                         3  6  8)>
 ::matrix <set #c 3 1 (6 14 39)>
 ::matrix <solve #y #x #c>
	;

?::matrix <set #x 3 3 (  1  2  3
                         4  5  6
                         7  8  9)>
 ::matrix <set #c 3 1 (30 20 10)>
 ::matrix <solve #y #x #c>
	;

?::matrix <set #x 3 3 (  1   0.446  -0.56 
                     0.446       1 -0.239 
                     -0.56  -0.239      1 )>
 ::matrix <eigen #y #l #x>
	;

?::matrix <set #x 3 3 (  0 1 1
                         1 0 1
                         1 1 0)>
 ::matrix <eigen #y #l #x>
	;


