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.