sddsmatrixop
performs general matrix operations. The matrices and
operations are specified on the command line and the operations will
proceed in a rpn-like fashion.
String columns are ignored and not copied to the output file.
Here A.matrix is the input matrix of the command line. It is pushed on the "matrix" stack. In rpn, we always need one quantity on the stack before doing any operations, so the input file may as well be it. The command "push" pushes a second matrix on the stack. The command -multiply does the multiplication of A.matrix and B.matrix. The matrix at the top of the stack will go in the output file C.matrix.
A more complicated command would be
command execution stack (from top to bottom) A.matrix push A into stack A -push=B.matrix push B into stack B A -add pop matrix A,B from stack temp1 execute: temp1=A+B push temp1 into stack -push=C.matrix push C into stack C temp1 -mult pop C and temp1 from stack temp2 execute: temp2=temp1*C push temp2 into stack -identity pop temp2 from stack I temp2 create unit matrix(I) that has the same dimension as temp2 push temp2 into stack push I into stack -add pop I and temp2 from stack temp3 execute: temp3=temp2+I push temp3 into stack -invert pop temp3 from stack result execute: result = temp3^(-1) push result into stack. at the end, the final result matrix is poped from the stack and writtend into output Y.matrix.