Main Page   Modules   Compound List   File List   Compound Members   File Members  

Fixed Size Matrices
[Fixed Size Matrices and Vectors]


Modules

Fixed Size Matrix I/O
Fill a Fixed Size Matrix
Transpose a Fixed Size Matrix
Invert a Fixed Size Matrix
Compute Adjoint of a Fixed Size Matrix
Extract Parts of a Fixed Size Matrix
Convert a Fixed Size Matrix
Cholesky Factorisation of Fixed Size Matrix
Add Fixed Size Matrices
Fixed Size Matrix/Vector Product
Fixed Size Matrix Norms
Copy a Fixed Size Matrix
Multiply/Divide a Fixed Size Matrix by a Scalar
Subtract Fixed Size Matrices
Fixed Size Matrix/Matrix Product
Fixed Size Matrix Triple Product
Eigendecomposition of a Fixed Size Matrix
Build a Fixed Size Matrix
Projective Normalisation of Fixed Size Matrices
Singular Value Decomposition of a Fixed Size Matrix

Compounds

struct  Gan_Matrix22
 Structure definition for double precision 2x2 matrix. More...

struct  Gan_Matrix23
 Structure definition for double precision 2x3 matrix. More...

struct  Gan_Matrix23_f
 Structure definition for single precision 2x3 matrix. More...

struct  Gan_Matrix24
 Structure definition for double precision 2x4 matrix. More...

struct  Gan_Matrix24_f
 Structure definition for single precision 2x4 matrix. More...

struct  Gan_Matrix34
 Structure definition for double precision 3x4 matrix. More...

struct  Gan_Matrix34_f
 Structure definition for single precision 3x4 matrix. More...

struct  Gan_SquMatrix22
 Structure definition for square double precision 2x2 matrix. More...


Defines

#define GAN_MATTYPE   Gan_Matrix22
#define GAN_MATRIX_TYPE   Gan_Matrix
#define GAN_SQUMATRIX_TYPE   Gan_SquMatrix
#define GAN_VECTOR_TYPE   Gan_Vector
#define GAN_MAT_ELEMENT_TYPE   GAN_DOUBLE
#define GAN_REALTYPE   double
#define GAN_VECTYPE1   Gan_Vector2
#define GAN_VECTYPE2   Gan_Vector2
#define GAN_MATTYPEL   Gan_Matrix22
#define GAN_MATTYPER   Gan_Matrix22
#define GAN_SQUMATTYPEL   Gan_SquMatrix22
#define GAN_SQUMATTYPER   Gan_SquMatrix22
#define GAN_MAT_FPRINT   gan_mat22_fprint
#define GAN_MAT_PRINT   gan_mat22_print
#define GAN_MAT_FSCANF   gan_mat22_fscanf
#define GAN_MAT_FWRITE   gan_mat22_fwrite
#define GAN_MAT_FREAD   gan_mat22_fread
#define GAN_MAT_ZERO_Q   gan_mat22_zero_q
#define GAN_MAT_ZERO_S   gan_mat22_zero_s
#define GAN_MAT_COPY_Q   gan_mat22_copy_q
#define GAN_MAT_COPY_S   gan_mat22_copy_s
#define GAN_MAT_SCALE_Q   gan_mat22_scale_q
#define GAN_MAT_SCALE_I   gan_mat22_scale_i
#define GAN_MAT_SCALE_S   gan_mat22_scale_s
#define GAN_MAT_DIVIDE_Q   gan_mat22_divide_q
#define GAN_MAT_DIVIDE_I   gan_mat22_divide_i
#define GAN_MAT_DIVIDE_S   gan_mat22_divide_s
#define GAN_MAT_NEGATE_Q   gan_mat22_negate_q
#define GAN_MAT_NEGATE_I   gan_mat22_negate_i
#define GAN_MAT_NEGATE_S   gan_mat22_negate_s
#define GAN_MAT_UNIT_Q   gan_mat22_unit_q
#define GAN_MAT_UNIT_I   gan_mat22_unit_i
#define GAN_MAT_UNIT_S   gan_mat22_unit_s
#define GAN_MAT_ADD_Q   gan_mat22_add_q
#define GAN_MAT_ADD_I1   gan_mat22_add_i1
#define GAN_MAT_ADD_I2   gan_mat22_add_i2
#define GAN_MAT_INCREMENT   gan_mat22_increment
#define GAN_MAT_ADD_S   gan_mat22_add_s
#define GAN_MAT_SUB_Q   gan_mat22_sub_q
#define GAN_MAT_SUB_I1   gan_mat22_sub_i1
#define GAN_MAT_SUB_I2   gan_mat22_sub_i2
#define GAN_MAT_DECREMENT   gan_mat22_decrement
#define GAN_MAT_SUB_S   gan_mat22_sub_s
#define GAN_VEC_OUTER_Q   gan_vec22_outer_q
#define GAN_VEC_OUTER_S   gan_vec22_outer_s
#define GAN_MAT_MULTV_Q   gan_mat22_multv2_q
#define GAN_MAT_MULTV_S   gan_mat22_multv2_s
#define GAN_MATT_MULTV_Q   gan_mat22T_multv2_q
#define GAN_MATT_MULTV_S   gan_mat22T_multv2_s
#define GAN_MAT_LMULTMT_Q   gan_mat22_lmultm22T_q
#define GAN_MAT_LMULTMT_S   gan_mat22_lmultm22T_s
#define GAN_MAT_RMULTM_Q   gan_mat22_rmultm22_q
#define GAN_MAT_RMULTM_S   gan_mat22_rmultm22_s
#define GAN_MAT_RMULTMT_Q   gan_mat22_rmultm22T_q
#define GAN_MAT_RMULTMT_S   gan_mat22_rmultm22T_s
#define GAN_MAT_LMULTMT_SYM_Q   gan_mat22_lmultm22T_sym_q
#define GAN_MAT_LMULTMT_SYM_S   gan_mat22_lmultm22T_sym_s
#define GAN_MAT_RMULTMT_SYM_Q   gan_mat22_rmultm22T_sym_q
#define GAN_MAT_RMULTMT_SYM_S   gan_mat22_rmultm22T_sym_s
#define GAN_MAT_SLMULTT_Q   gan_mat22_slmultT_q
#define GAN_MAT_SLMULTT_S   gan_mat22_slmultT_s
#define GAN_MAT_SRMULTT_Q   gan_mat22_srmultT_q
#define GAN_MAT_SRMULTT_S   gan_mat22_srmultT_s
#define GAN_MAT_LMULTS_Q   gan_mat22_lmults22_q
#define GAN_MAT_LMULTS_S   gan_mat22_lmults22_s
#define GAN_MAT_RMULTS_Q   gan_mat22_rmults22_q
#define GAN_MAT_RMULTS_S   gan_mat22_rmults22_s
#define GAN_SYMMATL_LRMULT_Q   gan_symmat22_lrmultm22T_q
#define GAN_SYMMATL_LRMULT_S   gan_symmat22_lrmultm22T_s
#define GAN_SYMMATR_LRMULT_Q   gan_symmat22_lrmultm22_q
#define GAN_SYMMATR_LRMULT_S   gan_symmat22_lrmultm22_s
#define GAN_MAT_LMULTL_Q   gan_mat22_lmultl22_q
#define GAN_MAT_LMULTL_S   gan_mat22_lmultl22_s
#define GAN_MAT_LMULTL_I   gan_mat22_lmultl22_i
#define GAN_MAT_LMULTLI_Q   gan_mat22_lmultl22I_q
#define GAN_MAT_LMULTLI_S   gan_mat22_lmultl22I_s
#define GAN_MAT_LMULTLI_I   gan_mat22_lmultl22I_i
#define GAN_MAT_LMULTLT_Q   gan_mat22_lmultl22T_q
#define GAN_MAT_LMULTLT_S   gan_mat22_lmultl22T_s
#define GAN_MAT_LMULTLT_I   gan_mat22_lmultl22T_i
#define GAN_MAT_LMULTLIT_Q   gan_mat22_lmultl22IT_q
#define GAN_MAT_LMULTLIT_S   gan_mat22_lmultl22IT_s
#define GAN_MAT_LMULTLIT_I   gan_mat22_lmultl22IT_i
#define GAN_MAT_RMULTL_Q   gan_mat22_rmultl22_q
#define GAN_MAT_RMULTL_S   gan_mat22_rmultl22_s
#define GAN_MAT_RMULTL_I   gan_mat22_rmultl22_i
#define GAN_MAT_RMULTLI_Q   gan_mat22_rmultl22I_q
#define GAN_MAT_RMULTLI_S   gan_mat22_rmultl22I_s
#define GAN_MAT_RMULTLI_I   gan_mat22_rmultl22I_i
#define GAN_MAT_RMULTLT_Q   gan_mat22_rmultl22T_q
#define GAN_MAT_RMULTLT_S   gan_mat22_rmultl22T_s
#define GAN_MAT_RMULTLT_I   gan_mat22_rmultl22T_i
#define GAN_MAT_RMULTLIT_Q   gan_mat22_rmultl22IT_q
#define GAN_MAT_RMULTLIT_S   gan_mat22_rmultl22IT_s
#define GAN_MAT_RMULTLIT_I   gan_mat22_rmultl22IT_i
#define GAN_MAT_SUMSQR_Q   gan_mat22_sumsqr_q
#define GAN_MAT_SUMSQR_S   gan_mat22_sumsqr_s
#define GAN_MAT_FNORM_Q   gan_mat22_Fnorm_q
#define GAN_MAT_FNORM_S   gan_mat22_Fnorm_s
#define GAN_MAT_FROM_MAT_Q   gan_mat22_from_mat_q
#define GAN_MAT_FROM_MAT_S   gan_mat22_from_mat_s
#define GAN_MAT_FROM_SQUMAT_Q   gan_mat22_from_squmat_q
#define GAN_MAT_FROM_SQUMAT_S   gan_mat22_from_squmat_s
#define GAN_SQUMAT_FROM_SQUMAT_Q   gan_squmat22_from_squmat_q
#define GAN_SQUMAT_FROM_SQUMAT_S   gan_squmat22_from_squmat_s
#define GAN_SQUMAT_IDENT_Q   gan_mat22_ident_q
#define GAN_SQUMAT_IDENT_S   gan_mat22_ident_s
#define GAN_SQUMAT_TPOSE_Q   gan_mat22_tpose_q
#define GAN_SQUMAT_TPOSE_S   gan_mat22_tpose_s
#define GAN_SQUMAT_TPOSE_I   gan_mat22_tpose_i
#define GAN_MAT_SADDT_Q   gan_mat22_saddT_q
#define GAN_MAT_SADDT_S   gan_mat22_saddT_s
#define GAN_SQUMAT_INVERT   gan_mat22_invert
#define GAN_SQUMAT_INVERT_Q   gan_mat22_invert_q
#define GAN_SQUMAT_INVERT_S   gan_mat22_invert_s
#define GAN_SQUMAT_INVERT_I   gan_mat22_invert_i
#define GAN_SQUMAT_ADJOINT_Q   gan_mat22_adjoint_q
#define GAN_SQUMAT_ADJOINT_S   gan_mat22_adjoint_s
#define GAN_SQUMAT_ADJOINTT_Q   gan_mat22_adjointT_q
#define GAN_SQUMAT_ADJOINTT_S   gan_mat22_adjointT_s
#define GAN_SQUMAT_DET_Q   gan_mat22_det_q
#define GAN_SQUMAT_DET_S   gan_mat22_det_s
#define GAN_SQUMAT_TRACE_Q   gan_mat22_trace_q
#define GAN_SQUMAT_TRACE_S   gan_mat22_trace_s
#define GAN_FIXED_MATRIX_TYPE   GAN_SYMMETRIC_MATRIX22
#define GAN_VEC_OUTER_SYM_Q   gan_vec22_outer_sym_q
#define GAN_VEC_OUTER_SYM_S   gan_vec22_outer_sym_s
#define GAN_SYMMAT_CHOLESKY   gan_symmat22_cholesky
#define GAN_SYMMAT_CHOLESKY_Q   gan_symmat22_cholesky_q
#define GAN_SYMMAT_CHOLESKY_S   gan_symmat22_cholesky_s
#define GAN_SYMMAT_CHOLESKY_I   gan_symmat22_cholesky_i
#define GAN_MAT_MULTV_I   gan_ltmat22_multv2_i
#define GAN_MATT_MULTV_I   gan_ltmat22T_multv2_i
#define GAN_MAT_SRMULTT_I   gan_ltmat22_srmultT_i
#define GAN_MAT_SLMULTT_I   gan_ltmat22_slmultT_i
#define GAN_SQUMATI_MULTV_Q   gan_ltmat22I_multv2_q
#define GAN_SQUMATI_MULTV_S   gan_ltmat22I_multv2_s
#define GAN_SQUMATI_MULTV_I   gan_ltmat22I_multv2_i
#define GAN_SQUMATIT_MULTV_Q   gan_ltmat22IT_multv2_q
#define GAN_SQUMATIT_MULTV_S   gan_ltmat22IT_multv2_s
#define GAN_SQUMATIT_MULTV_I   gan_ltmat22IT_multv2_i
#define gan_ltmat22T_fwrite   gan_ltmat22_fwrite
#define gan_ltmat22T_fread   gan_ltmat22_fread
#define GAN_ST22_FILL(A, t, XX, YX, YY)
#define GAN_ST22_IDENT(A, t)
#define GAN_MAT22_MULT1D(a, b, c, p1, p2, q1, q2)
#define GAN_MAT22T_MULT1D(a, b, c, p1, p2, q1, q2)
#define GAN_SYM22_MULT1D(a, b, c, p1, p2, q1, q2)
#define GAN_LOW22_MULT1D(a, b, c, p1, p2, q1, q2)
#define GAN_LOW22I_MULT1D(a, b, c, p1, p2, q1, q2)
#define GAN_UPP22_MULT1D(a, b, c, p1, p2, q1, q2)
#define GAN_UPP22I_MULT1D(a, b, c, p1, p2, q1, q2)
#define GAN_ST22_ZERO(A, t)
#define GAN_ST22_COPY(A, B, t)
#define GAN_ST22_SCALE(A, a, B, t)
#define GAN_ST22_DIVIDE(A, a, B, t)
#define GAN_ST22_NEGATE(A, B, t)
#define GAN_ST22_ADD(A, B, C, t)
#define GAN_ST22_SUB(A, B, C, t)
#define gan_ltmat22Tf_fwrite   gan_ltmat22f_fwrite
#define gan_ltmat22Tf_fread   gan_ltmat22f_fread
#define GAN_MAT_LMULTM_Q   gan_mat23_lmultm22_q
#define GAN_MAT_LMULTM_S   gan_mat23_lmultm22_s
#define GAN_MAT23_MULT1D(a, b, c, p1, p2, q1, q2, q3)
#define GAN_MAT23T_MULT1D(a, b, c, p1, p2, p3, q1, q2)
#define GAN_MAT23F_MULT1D(a, b, c, p1, p2, q1, q2, q3)
#define GAN_MAT23TF_MULT1D(a, b, c, p1, p2, p3, q1, q2)
#define GAN_MAT24_MULT1D(a, b, c, p1, p2, q1, q2, q3, q4)
#define GAN_MAT24T_MULT1D(a, b, c, p1, p2, p3, p4, q1, q2)
#define GAN_MAT24F_MULT1D(a, b, c, p1, p2, q1, q2, q3, q4)
#define GAN_MAT24TF_MULT1D(a, b, c, p1, p2, p3, p4, q1, q2)
#define gan_ltmat33T_fwrite   gan_ltmat33_fwrite
#define gan_ltmat33T_fread   gan_ltmat33_fread
#define gan_ltmat33Tf_fwrite   gan_ltmat33f_fwrite
#define gan_ltmat33Tf_fread   gan_ltmat33f_fread
#define GAN_MAT34_MULT1D(a, b, c, p1, p2, p3, q1, q2, q3, q4)
#define GAN_MAT34T_MULT1D(a, b, c, p1, p2, p3, p4, q1, q2, q3)
#define GAN_MAT34F_MULT1D(a, b, c, p1, p2, p3, q1, q2, q3, q4)
#define GAN_MAT34TF_MULT1D(a, b, c, p1, p2, p3, p4, q1, q2, q3)
#define gan_ltmat44T_fwrite   gan_ltmat44_fwrite
#define gan_ltmat44T_fread   gan_ltmat44_fread
#define gan_ltmat44Tf_fwrite   gan_ltmat44f_fwrite
#define gan_ltmat44Tf_fread   gan_ltmat44f_fread

Typedefs

typedef Gan_Matrix22 Gan_Matrix22
 Structure definition for double precision 2x2 matrix.

typedef Gan_SquMatrix22 Gan_SquMatrix22
 Structure definition for square double precision 2x2 matrix.

typedef Gan_Matrix23 Gan_Matrix23
 Structure definition for double precision 2x3 matrix.

typedef Gan_Matrix23_f Gan_Matrix23_f
 Structure definition for single precision 2x3 matrix.

typedef Gan_Matrix24 Gan_Matrix24
 Structure definition for double precision 2x4 matrix.

typedef Gan_Matrix24_f Gan_Matrix24_f
 Structure definition for single precision 2x4 matrix.

typedef Gan_Matrix34 Gan_Matrix34
 Structure definition for double precision 3x4 matrix.

typedef Gan_Matrix34_f Gan_Matrix34_f
 Structure definition for single precision 3x4 matrix.


Enumerations

enum  Gan_SquMatrix22Type { GAN_SYMMETRIC_MATRIX22, GAN_LOWER_TRI_MATRIX22 }
 Square matrix type, for setting and checking in debug mode.


Define Documentation

#define GAN_LOW22_MULT1D a,
b,
c,
p1,
p2,
q1,
q2   
 

Value:

(a p2 = GAN_REP2_OP_AB(b,* c,yx,yy,q1,q2,+),\
  a p1 = GAN_REP1_OP_AB(b,* c,xx,q1,+))

#define GAN_LOW22I_MULT1D a,
b,
c,
p1,
p2,
q1,
q2   
 

Value:

(a p1 =  c q1 / b xx,\
  a p2 = (c q2 - b yx * a p1) / b yy)

#define GAN_MAT22_MULT1D a,
b,
c,
p1,
p2,
q1,
q2   
 

Value:

(a p1 = GAN_REP2_OP_AB(b,* c,xx,xy,q1,q2,+),\
  a p2 = GAN_REP2_OP_AB(b,* c,yx,yy,q1,q2,+))

#define GAN_MAT22T_MULT1D a,
b,
c,
p1,
p2,
q1,
q2   
 

Value:

(a p1 = GAN_REP2_OP_AB(b,* c,xx,yx,q1,q2,+),\
  a p2 = GAN_REP2_OP_AB(b,* c,xy,yy,q1,q2,+))

#define GAN_MAT23_MULT1D a,
b,
c,
p1,
p2,
q1,
q2,
q3   
 

Value:

(a p1 = GAN_REP3_OP_AB(b,* c,xx,xy,xz,q1,q2,q3,+),\
  a p2 = GAN_REP3_OP_AB(b,* c,yx,yy,yz,q1,q2,q3,+))

#define GAN_MAT23F_MULT1D a,
b,
c,
p1,
p2,
q1,
q2,
q3   
 

Value:

(a p1 = GAN_REP3_OP_AB(b,* c,xx,xy,xz,q1,q2,q3,+),\
  a p2 = GAN_REP3_OP_AB(b,* c,yx,yy,yz,q1,q2,q3,+))

#define GAN_MAT23T_MULT1D a,
b,
c,
p1,
p2,
p3,
q1,
q2   
 

Value:

(a p1 = GAN_REP2_OP_AB(b,* c,xx,yx,q1,q2,+),\
  a p2 = GAN_REP2_OP_AB(b,* c,xy,yy,q1,q2,+),\
  a p3 = GAN_REP2_OP_AB(b,* c,xz,yz,q1,q2,+))

#define GAN_MAT23TF_MULT1D a,
b,
c,
p1,
p2,
p3,
q1,
q2   
 

Value:

(a p1 = GAN_REP2_OP_AB(b,* c,xx,yx,q1,q2,+),\
  a p2 = GAN_REP2_OP_AB(b,* c,xy,yy,q1,q2,+),\
  a p3 = GAN_REP2_OP_AB(b,* c,xz,yz,q1,q2,+))

#define GAN_MAT24_MULT1D a,
b,
c,
p1,
p2,
q1,
q2,
q3,
q4   
 

Value:

(a p1 = GAN_REP4_OP_AB(b,* c,xx,xy,xz,xw,q1,q2,q3,q4,+),\
  a p2 = GAN_REP4_OP_AB(b,* c,yx,yy,yz,yw,q1,q2,q3,q4,+))

#define GAN_MAT24F_MULT1D a,
b,
c,
p1,
p2,
q1,
q2,
q3,
q4   
 

Value:

(a p1 = GAN_REP4_OP_AB(b,* c,xx,xy,xz,xw,q1,q2,q3,q4,+),\
  a p2 = GAN_REP4_OP_AB(b,* c,yx,yy,yz,yw,q1,q2,q3,q4,+))

#define GAN_MAT24T_MULT1D a,
b,
c,
p1,
p2,
p3,
p4,
q1,
q2   
 

Value:

(a p1 = GAN_REP2_OP_AB(b,* c,xx,yx,q1,q2,+),\
  a p2 = GAN_REP2_OP_AB(b,* c,xy,yy,q1,q2,+),\
  a p3 = GAN_REP2_OP_AB(b,* c,xz,yz,q1,q2,+),\
  a p4 = GAN_REP2_OP_AB(b,* c,xw,yw,q1,q2,+))

#define GAN_MAT24TF_MULT1D a,
b,
c,
p1,
p2,
p3,
p4,
q1,
q2   
 

Value:

(a p1 = GAN_REP2_OP_AB(b,* c,xx,yx,q1,q2,+),\
  a p2 = GAN_REP2_OP_AB(b,* c,xy,yy,q1,q2,+),\
  a p3 = GAN_REP2_OP_AB(b,* c,xz,yz,q1,q2,+),\
  a p4 = GAN_REP2_OP_AB(b,* c,xw,yw,q1,q2,+))

#define GAN_MAT34_MULT1D a,
b,
c,
p1,
p2,
p3,
q1,
q2,
q3,
q4   
 

Value:

(a p1 = GAN_REP4_OP_AB(b,* c,xx,xy,xz,xw,q1,q2,q3,q4,+),\
  a p2 = GAN_REP4_OP_AB(b,* c,yx,yy,yz,yw,q1,q2,q3,q4,+),\
  a p3 = GAN_REP4_OP_AB(b,* c,zx,zy,zz,zw,q1,q2,q3,q4,+))

#define GAN_MAT34F_MULT1D a,
b,
c,
p1,
p2,
p3,
q1,
q2,
q3,
q4   
 

Value:

(a p1 = GAN_REP4_OP_AB(b,* c,xx,xy,xz,xw,q1,q2,q3,q4,+),\
  a p2 = GAN_REP4_OP_AB(b,* c,yx,yy,yz,yw,q1,q2,q3,q4,+),\
  a p3 = GAN_REP4_OP_AB(b,* c,zx,zy,zz,zw,q1,q2,q3,q4,+))

#define GAN_MAT34T_MULT1D a,
b,
c,
p1,
p2,
p3,
p4,
q1,
q2,
q3   
 

Value:

(a p1 = GAN_REP3_OP_AB(b,* c,xx,yx,zx,q1,q2,q3,+),\
  a p2 = GAN_REP3_OP_AB(b,* c,xy,yy,zy,q1,q2,q3,+),\
  a p3 = GAN_REP3_OP_AB(b,* c,xz,yz,zz,q1,q2,q3,+),\
  a p4 = GAN_REP3_OP_AB(b,* c,xw,yw,zw,q1,q2,q3,+))

#define GAN_MAT34TF_MULT1D a,
b,
c,
p1,
p2,
p3,
p4,
q1,
q2,
q3   
 

Value:

(a p1 = GAN_REP3_OP_AB(b,* c,xx,yx,zx,q1,q2,q3,+),\
  a p2 = GAN_REP3_OP_AB(b,* c,xy,yy,zy,q1,q2,q3,+),\
  a p3 = GAN_REP3_OP_AB(b,* c,xz,yz,zz,q1,q2,q3,+),\
  a p4 = GAN_REP3_OP_AB(b,* c,xw,yw,zw,q1,q2,q3,+))

#define GAN_MATTYPE   Gan_Matrix22
 

File: Module: 2x2 matrices (double precision) Part of: Gandalf Library

Revision: Last edited: Author: Copyright: (c) 2000 Imagineer Software Limited

Notes: Not to be compiled separately

#define GAN_ST22_ADD A,
B,
C,
 
 

Value:

(GAN_TEST_OP3(A,B,C,Gan_SquMatrix22,Gan_SquMatrix22,Gan_SquMatrix22),\
          assert((A)->type==t && (B)->type==t), gan_eval((C)->type=(A)->type),\
          GAN_REP22L_AAA_C((C)->,=(A)->,+(B)->))

#define GAN_ST22_COPY A,
B,
 
 

Value:

(GAN_TEST_OP2(A,B,Gan_SquMatrix22,Gan_SquMatrix22),\
            assert((A)->type==t), gan_eval((B)->type=(A)->type),\
            GAN_REP22L_AA_C((B)->,=(A)->))

#define GAN_ST22_DIVIDE A,
a,
B,
 
 

Value:

(GAN_TEST_OP2(A,B,Gan_SquMatrix22,Gan_SquMatrix22),\
            assert((A)->type==t), gan_eval((B)->type=(A)->type),\
            GAN_REP22L_AAS_C((B)->,=(A)->,/(a)))

#define GAN_ST22_FILL A,
t,
XX,
YX,
YY   
 

Value:

(GAN_TEST_OP1(A,Gan_SquMatrix22),gan_eval((A)->type=t),\
            GAN_FREP22L_A_C((A)->,=,(XX),(YX),(YY)))

#define GAN_ST22_IDENT A,
 
 

Value:

(GAN_TEST_OP1(A,Gan_SquMatrix22),gan_eval((A)->type=t),\
            GAN_FREP22L_A_C((A)->,=,1.0,0.0,1.0))

#define GAN_ST22_NEGATE A,
B,
 
 

Value:

(GAN_TEST_OP2(A,B,Gan_SquMatrix22,Gan_SquMatrix22),\
            assert((A)->type==t), gan_eval((B)->type=(A)->type),\
            GAN_REP22L_AA_C((B)->,=-(A)->))

#define GAN_ST22_SCALE A,
a,
B,
 
 

Value:

(GAN_TEST_OP2(A,B,Gan_SquMatrix22,Gan_SquMatrix22),\
            assert((A)->type==t), gan_eval((B)->type=(A)->type),\
            GAN_REP22L_AAS_C((B)->,=(A)->,*(a)))

#define GAN_ST22_SUB A,
B,
C,
 
 

Value:

(GAN_TEST_OP3(A,B,C,Gan_SquMatrix22,Gan_SquMatrix22,Gan_SquMatrix22),\
          assert((A)->type==t && (B)->type==t), gan_eval((C)->type=(A)->type),\
          GAN_REP22L_AAA_C((C)->,=(A)->,-(B)->))

#define GAN_ST22_ZERO A,
 
 

Value:

(GAN_TEST_OP1(A,Gan_SquMatrix22), gan_eval((A)->type=t),\
            GAN_REP22L_AS_C((A)->,=0.0))

#define GAN_SYM22_MULT1D a,
b,
c,
p1,
p2,
q1,
q2   
 

Value:

(a p1 = GAN_REP2_OP_AB(b,* c,xx,yx,q1,q2,+),\
  a p2 = GAN_REP2_OP_AB(b,* c,yx,yy,q1,q2,+))

#define GAN_UPP22_MULT1D a,
b,
c,
p1,
p2,
q1,
q2   
 

Value:

(a p1 = GAN_REP2_OP_AB(b,* c,xx,yx,q1,q2,+),\
  a p2 = GAN_REP1_OP_AB(b,* c,yy,q2,+))

#define GAN_UPP22I_MULT1D a,
b,
c,
p1,
p2,
q1,
q2   
 

Value:

(a p2 =  c q2 / b yy,\
  a p1 = (c q1 - b yx * a p2) / b xx)


Generated on Mon Oct 13 16:14:52 2003 by doxygen1.3-rc1