Matrix expressions in the Survo matrix interpreter The basic MAT operations related to standard arithmetics are typically binary (i.e. of the form MAT C=A+B) and thus only two operands are in use. However, SURVO MM provides a matrix preprocessor for manipulating more complicated expressions like MAT D2=(X-MY)'*INV(S)*(X-MY) The preprocessor converts such expressions automatically into basic MAT commands. The above MAT command is translated within the matrix interpreter into 4 MAT commands %%1=X-MY %%2=INV(S) %%2=%%2*%%1 D2=%%1'*%%2 where %%1,%%2,... are temporary matrix files on the current data path. The preprocessor is available in SURVO MM when the system parameter `mat_parser' (in SURVO.APU) is set to a positive value or command SYSTEM mat_parser=<positive_integer> is activated. The value of mat_parser should exceed the maximum length of the series of translated MAT commands and twice the length of the longest matrix expression. mat_parser=4000 (default) is recommended. The matrix expressions may contain all expressions appearing in the MAT commands of the form MAT C=function_of(A,B,...). The preprocessor does not optimize the order of operations. Typically operations are carried out from the left to the rigth unless otherwise stated by the user by extra parentheses. Example: MAT Y=A*(B*(C*Y)) The translated MAT commands of the last activated general expression are saved in the text file SURVOMAT.TMP in the subdirectory for temporary files of Survo. Thus the user may inspect how the preprocessor works by studying this file (using SHOW, for example). Generalized matrix expressions (of more than 2 operands) cannot be used in matrix chains (.MTX files) but they are allowed in continuous activations (with F2 ESC) and in sucros. In general it is better to make matrix programs as sucros and not as matrix chains (.MTX files). M = More information on MAT operations