DEFINITION MODULE MatSclOps;
(*******************************************************************
Module MatSclOps (Version 1.0)
Copyright (c) 1990-2006 by Olivier Roth, Andreas Fischlin and
ETH Zurich.
Purpose Provide simple matrix operations such as
addition, subtraction, multiplication.
Remarks This module is part of the Mat-library, which forms
part of the RAMSES package.
For real matrix operations see MatrixVecOps.
Programming
o Design
Olivier Roth 03/12/1990
Andreas Fischlin 28/05/1993
o Implementation
Olivier Roth 03/12/1990
Andreas Fischlin 28/05/1993
ETH Zurich
Systems Ecology
CHN E 35.1
Universitaetstrasse 16
8092 Zurich
SWITZERLAND
URLs:
<mailto:RAMSES@env.ethz.ch>
<http://www.sysecol.ethz.ch>
<http://www.sysecol.ethz.ch/SimSoftware/RAMSES>
Last revision of definition: 28/05/1993 AF
*******************************************************************)
FROM Matrices IMPORT Matrix;
VAR
matrixSclOpsOk: BOOLEAN; (* returns success of operation *)
PROCEDURE AddVecToMatrixRow( v: Matrix;
m: Matrix; irow: INTEGER );
PROCEDURE AddVecToMatrixCol( v: Matrix;
m: Matrix; icol: INTEGER );
PROCEDURE ColSum ( a: Matrix; VAR rowVec: Matrix );
PROCEDURE RowSum ( a: Matrix; VAR colVec: Matrix );
PROCEDURE TotSum ( a: Matrix ): REAL;
PROCEDURE DiagVec ( a: Matrix; VAR r: Matrix );
PROCEDURE DiagSum ( a: Matrix ): REAL;
PROCEDURE DiagProd( a: Matrix ): REAL;
PROCEDURE EqualMatrix( a, b: Matrix; maxErr: REAL ): BOOLEAN;
PROCEDURE ScalarMul( a: Matrix; scal: REAL );
PROCEDURE ScalarDiv( a: Matrix; scal: REAL );
PROCEDURE ScalarVecProd( a, b: Matrix ): REAL;
(* a and b must have dimensions 1 x n and n x 1 resp. *)
END MatSclOps.