TUmatrixMath TCL UTILITIES USER MANUAL TUmatrixMath
SYNOPSIS
A set of mathematical operations applicable to matrix data.
PACKAGE
TCLUTILS
NAME
TUmatrixMath
USAGE
set rV  [TUmatrixMath  A Op B C rA cA rB cB {oA} {oB} {oC}]
INPUT DEFINITIONS
A - Input matrix A laid down row by row.
Op - Operation
UNIT - Output a unit matrix in matrixC of dimension rAxcA. Both A and B are dummy inputs.
TRANSPOSE - Transpose matrix A and return the transposed matrix in C. B is a dummy input.
* - Multiply matrix A by matrix B with the result in output in matrix C.
B - Input matrix B laid down row by row. This input is only used when Op is *.
C - Output data matrix. All results are returned in this matrix.
rA - The number of rows in matrix A
cA - The number of columns in matrix A
rB - The number of rows in matrix B
cB - The number of columns in matrix B
oA - Optional offset into A to the start of the matrix. Default is 0.
oB - Optional offset into B to the start of the matrix. Default is 0.
oC - Optional offset into C to the start of the matrix. Default is 0.
RETURN DEFINITION
rV - Currently returns 0.0.
DESCRIPTION
TUmatrixMath performs mathematical operations on a single matrix or between two matrices. The offsets oA, oB, and oC allow arbitrary offsets into the input and output matrices. This allows the matrices to lie anywhere within a linear array of data.
ERRORS
None Generated
C BACKING
Yes
EXAMPLE(S)
# Matrix Math Examples.
                                                                                
# INPUT matrix 1 
                                                                                
set A(0)  7.0 ; set A(1)  1.0 ; set A(2)  10.0
set A(3)  1.5 ; set A(4)  1.0 ; set A(5)   2.0
set A(6)  -.5 ; set A(7)  7.0 ; set A(8)  -3.5

# Input Matrix 2
                                                                                
set V(0) -1.0
set V(1)  2.5
set V(2) -4.0
                                                                                
# FORM a unit matrix

TUmatrixMath T UNIT T C 3 3 3 3 

# PRINT results

puts stderr "UNIT MATRIX:"
puts stderr "  [format "%6.2f %6.2f %6.2f" $C(0) $C(1) $C(2)]"
puts stderr "  [format "%6.2f %6.2f %6.2f" $C(3) $C(4) $C(5)]"
puts stderr "  [format "%6.2f %6.2f %6.2f" $C(6) $C(7) $C(8)]"

# FORM a TRANSPOSE of a  matrix

TUmatrixMath A TRANSPOSE T C 3 3 3 3 

# PRINT results

puts stderr "\nINPUT MATRIX A:"
puts stderr "  [format "%6.2f %6.2f %6.2f" $A(0) $A(1) $A(2)]"
puts stderr "  [format "%6.2f %6.2f %6.2f" $A(3) $A(4) $A(5)]"
puts stderr "  [format "%6.2f %6.2f %6.2f" $A(6) $A(7) $A(8)]"
puts stderr "\nTRANSPOSE OF MATRIX A:"
puts stderr "  [format "%6.2f %6.2f %6.2f" $C(0) $C(1) $C(2)]"
puts stderr "  [format "%6.2f %6.2f %6.2f" $C(3) $C(4) $C(5)]"
puts stderr "  [format "%6.2f %6.2f %6.2f" $C(6) $C(7) $C(8)]"
puts stderr "\nINPUT MATRIX V:"
puts stderr "  [format "%6.2f" $V(0)]"
puts stderr "  [format "%6.2f" $V(1)]"
puts stderr "  [format "%6.2f" $V(2)]"
TUmatrixMath A * V D 3 3 3 1 
puts stderr "\nMATRIX A x MATRIX V:"
puts stderr "  [format "%6.2f" $D(0)]"
puts stderr "  [format "%6.2f" $D(1)]"
puts stderr "  [format "%6.2f" $D(2)]"

> UNIT MATRIX:
>   1.00   0.00   0.00
>   0.00   1.00   0.00
>   0.00   0.00   1.00
>
> INPUT MATRIX A:
>   7.00   1.00  10.00
>   1.50   1.00   2.00
>   -0.50   7.00  -3.50
>
> TRANSPOSE OF MATRIX A:
>   7.00   1.50  -0.50
>   1.00   1.00   7.00
>   10.00   2.00  -3.50
>
> INPUT MATRIX V:
>   -1.00
>   2.50
>   -4.00
>
> MATRIX A x MATRIX V:
>   -44.50
>   -7.00
>   2.00

      
October 22, 2006