Main Page | Modules | Class List | File List | Class Members | File Members

2x2matrixf.h File Reference

#include <stdlib.h>
#include <math.h>
#include <stdio.h>
#include <gandalf/common/misc_defs.h>
#include <gandalf/linalg/2vectorf.h>
#include <gandalf/linalg/matf_gen.h>
#include <gandalf/linalg/matf_square.h>

Go to the source code of this file.

Classes

struct  Gan_Matrix22_f
 Structure definition for single-precision 2x2 matrix. More...
struct  Gan_SquMatrix22_f
 Structure definition for square single precision 2x2 matrix. More...

Defines

#define GAN_REP1_AS(a, b, p1)   (a p1 b)
#define GAN_REP1_A(a, p1)   (a p1)
#define GAN_REP1_A_C(a, b)   GAN_REP1_A(a,b,x)
#define GAN_FREP1_A(a, b, p1, q1)   (a p1 b q1)
#define GAN_FREP1_A_C(a, b, p1)   GAN_FREP1_A(a,b,x,p1)
#define GAN_REP1_ABS(a, b, c, p1, q1)   (a p1 b q1 c)
#define GAN_REP1_AAS(a, b, c, p1)   GAN_REP1_ABS(a,b,c,p1,p1)
#define GAN_REP1_AAS_C(a, b, c)   GAN_REP1_AAS(a,b,c,x)
#define GAN_REP1_AB(a, b, p1, q1)   (a p1 b q1)
#define GAN_REP1_AA(a, b, p1)   GAN_REP1_AB(a,b,p1,p1)
#define GAN_REP1_AA_C(a, b)   GAN_REP1_AA(a,b,x)
#define GAN_REP1_ABCS(a, b, c, d, p1, q1, r1)   (a p1 b q1 c r1 d)
#define GAN_REP1_ABC(a, b, c, p1, q1, r1)   (a p1 b q1 c r1)
#define GAN_REP1_AAA(a, b, c, p1)   GAN_REP1_ABC(a,b,c,p1,p1,p1)
#define GAN_REP1_AAA_C(a, b, c)   GAN_REP1_AAA(a,b,c,x)
#define GAN_REP1_OP_AB(a, b, p1, q1, op)   (a p1 b q1)
#define GAN_REP1_OP_AA(a, b, p1, op)   GAN_REP1_OP_AB(a,b,p1,p1,op)
#define GAN_REP1_OP_AA_C(a, b, op)   GAN_REP1_OP_AA(a,b,x,op)
#define GAN_REP2_AS(a, b, p1, p2)   (a p1 b, a p2 b)
#define GAN_REP2_A(a, p1, p2)   (a p1, a p2)
#define GAN_REP2_AS_C(a, b)   GAN_REP2_AS(a,b,x,y)
#define GAN_REP2_A_C(a)   GAN_REP2_A(a,x,y)
#define GAN_FREP2_A(a, b, p1, p2, q1, q2)   (a p1 b q1, a p2 b q2)
#define GAN_FREP2_A_C(a, b, p1, p2)   GAN_FREP2_A(a,b,x,y,p1,p2)
#define GAN_REP2_AB(a, b, p1, p2, q1, q2)   (a p1 b q1, a p2 b q2)
#define GAN_REP2_AA(a, b, p1, p2)   GAN_REP2_AB(a,b,p1,p2,p1,p2)
#define GAN_REP2_AA_C(a, b)   GAN_REP2_AA(a,b,x,y)
#define GAN_REP2_ABS(a, b, c, p1, p2, q1, q2)   (a p1 b q1 c, a p2 b q2 c)
#define GAN_REP2_AAS(a, b, c, p1, p2)   GAN_REP2_ABS(a,b,c,p1,p2,p1,p2)
#define GAN_REP2_AAS_C(a, b, c)   GAN_REP2_AAS(a,b,c,x,y)
#define GAN_REP2_AB(a, b, p1, p2, q1, q2)   (a p1 b q1, a p2 b q2)
#define GAN_REP2_AA(a, b, p1, p2)   GAN_REP2_AB(a,b,p1,p2,p1,p2)
#define GAN_REP2_AA_C(a, b)   GAN_REP2_AA(a,b,x,y)
#define GAN_REP2_ABCS(a, b, c, d, p1, p2, q1, q2, r1, r2)   (a p1 b q1 c r1 d, a p2 b q2 c r2 d)
#define GAN_REP2_ABC(a, b, c, p1, p2, q1, q2, r1, r2)   (a p1 b q1 c r1, a p2 b q2 c r2)
#define GAN_REP2_AAA(a, b, c, p1, p2)   GAN_REP2_ABC(a,b,c,p1,p2,p1,p2,p1,p2)
#define GAN_REP2_AAA_C(a, b, c)   GAN_REP2_AAA(a,b,c,x,y)
#define GAN_REP2_OP_AB(a, b, p1, p2, q1, q2, op)   (a p1 b q1 op a p2 b q2)
#define GAN_REP2_OP_AA(a, b, p1, p2, op)   GAN_REP2_OP_AB(a,b,p1,p2,p1,p2,op)
#define GAN_REP2_OP_AA_C(a, b, op)   GAN_REP2_OP_AA(a,b,x,y,op)
#define GAN_FREP22_A(a, b, p1, p2, q1, q2, r11, r12, r21, r22)
#define GAN_FREP22_A_C(a, b, r11, r12, r21, r22)   GAN_FREP22_A(a,b,x,y,x,y,r11,r12,r21,r22)
#define GAN_REP22_ABCS(a, b, c, d, p1, p2, q1, q2, r1, r2, s1, s2, t1, t2, u1, u2)
#define GAN_REP22_ABC(a, b, c, p1, p2, q1, q2, r1, r2, s1, s2, t1, t2, u1, u2)
#define GAN_REP22_AAAS(a, b, c, d, p1, p2, q1, q2)   GAN_REP22_ABCS(a,b,c,d,p1,p2,q1,q2,p1,p2,q1,q2,p1,p2,q1,q2)
#define GAN_REP22_AAA(a, b, c, p1, p2, q1, q2)   GAN_REP22_ABC(a,b,c,p1,p2,q1,q2,p1,p2,q1,q2,p1,p2,q1,q2)
#define GAN_REP22_ABS(a, b, c, p1, p2, q1, q2, r1, r2, s1, s2)
#define GAN_REP22_AB(a, b, p1, p2, q1, q2, r1, r2, s1, s2)
#define GAN_REP22_AAS(a, b, c, p1, p2, q1, q2)   GAN_REP22_ABS(a,b,c,p1,p2,q1,q2,p1,p2,q1,q2)
#define GAN_REP22_AA(a, b, p1, p2, q1, q2)   GAN_REP22_AB(a,b,p1,p2,q1,q2,p1,p2,q1,q2)
#define GAN_REP22_AS(a, b, p1, p2, q1, q2)   (GAN_REP2_AS(a,b,p1##q1,p1##q2), GAN_REP2_AS(a,b,p2##q1,p2##q2))
#define GAN_REP22_A(a, p1, p2, q1, q2)   (GAN_REP2_A(a,p1##q1,p1##q2), GAN_REP2_A(a,p2##q1,p2##q2))
#define GAN_REP22_AS_C(a, b)   GAN_REP22_AS(a,b,x,y,x,y)
#define GAN_REP22_AAS_C(a, b, c)   GAN_REP22_AAS(a,b,c,x,y,x,y)
#define GAN_REP22_AAAS_C(a, b, c, d)   GAN_REP22_AAAS(a,b,c,d,x,y,x,y)
#define GAN_REP22_A_C(a)   GAN_REP22_A(a,x,y,x,y)
#define GAN_REP22_AA_C(a, b)   GAN_REP22_AA(a,b,x,y,x,y)
#define GAN_REP22_AAA_C(a, b, c)   GAN_REP22_AAA(a,b,c,x,y,x,y)
#define GAN_REP22_AAT(a, b, p1, p2, q1, q2)
#define GAN_REP22_AAT_C(a, b)   GAN_REP22_AAT(a,b,x,y,x,y)
#define GAN_FREP22L_A(a, b, p1, p2, q1, q2, r11, r21, r22)
#define GAN_FREP22L_A_C(a, b, r11, r21, r22)   GAN_FREP22L_A(a,b,x,y,x,y,r11,r21,r22)
#define GAN_REP22L_ABCS(a, b, c, d, p1, p2, q1, q2, r1, r2, s1, s2, t1, t2, u1, u2)
#define GAN_REP22L_ABC(a, b, c, p1, p2, q1, q2, r1, r2, s1, s2, t1, t2, u1, u2)
#define GAN_REP22L_AAAS(a, b, c, d, p1, p2, q1, q2)   GAN_REP22L_ABCS(a,b,c,d,p1,p2,q1,q2,p1,p2,q1,q2,p1,p2,q1,q2)
#define GAN_REP22L_AAA(a, b, c, p1, p2, q1, q2)   GAN_REP22L_ABC(a,b,c,p1,p2,q1,q2,p1,p2,q1,q2,p1,p2,q1,q2)
#define GAN_REP22L_ABS(a, b, c, p1, p2, q1, q2, r1, r2, s1, s2)
#define GAN_REP22L_AB(a, b, p1, p2, q1, q2, r1, r2, s1, s2)
#define GAN_REP22L_AAS(a, b, c, p1, p2, q1, q2)   GAN_REP22L_ABS(a,b,c,p1,p2,q1,q2,p1,p2,q1,q2)
#define GAN_REP22L_AA(a, b, p1, p2, q1, q2)   GAN_REP22L_AB(a,b,p1,p2,q1,q2,p1,p2,q1,q2)
#define GAN_REP22L_AS(a, b, p1, p2, q1, q2)
#define GAN_REP22L_A(a, p1, p2, q1, q2)
#define GAN_REP22L_AS_C(a, b)   GAN_REP22L_AS(a,b,x,y,x,y)
#define GAN_REP22L_AAS_C(a, b, c)   GAN_REP22L_AAS(a,b,c,x,y,x,y)
#define GAN_REP22L_AAAS_C(a, b, c, d)   GAN_REP22L_AAAS(a,b,c,d,x,y,x,y)
#define GAN_REP22L_A_C(a)   GAN_REP22L_A(a,x,y,x,y)
#define GAN_REP22L_AA_C(a, b)   GAN_REP22L_AA(a,b,x,y,x,y)
#define GAN_REP22L_AAA_C(a, b, c)   GAN_REP22L_AAA(a,b,c,x,y,x,y)
#define GAN_FREP22L_A_C(a, b, r11, r21, r22)   GAN_FREP22L_A(a,b,x,y,x,y,r11,r21,r22)
#define GAN_ST22F_FILL(A, t, XX, YX, YY)
#define GAN_ST22F_IDENT(A, t)
#define GAN_MAT22F_MULT1D(a, b, c, p1, p2, q1, q2)
#define GAN_MAT22TF_MULT1D(a, b, c, p1, p2, q1, q2)
#define GAN_SYM22F_MULT1D(a, b, c, p1, p2, q1, q2)
#define GAN_LOW22F_MULT1D(a, b, c, p1, p2, q1, q2)
#define GAN_LOW22IF_MULT1D(a, b, c, p1, p2, q1, q2)
#define GAN_UPP22F_MULT1D(a, b, c, p1, p2, q1, q2)
#define GAN_UPP22IF_MULT1D(a, b, c, p1, p2, q1, q2)
#define GAN_ST22F_ZERO(A, t)
#define GAN_ST22F_COPY(A, B, t)
#define GAN_ST22F_SCALE(A, a, B, t)
#define GAN_ST22F_DIVIDE(A, a, B, t)
#define GAN_ST22F_NEGATE(A, B, t)
#define GAN_ST22F_ADD(A, B, C, t)
#define GAN_ST22F_SUB(A, B, C, t)
#define GAN_MATTYPE   Gan_Matrix22_f
#define GAN_MATRIX_TYPE   Gan_Matrix_f
#define GAN_SQUMATRIX_TYPE   Gan_SquMatrix_f
#define GAN_VECTOR_TYPE   Gan_Vector_f
#define GAN_MAT_ELEMENT_TYPE   GAN_FLOAT
#define GAN_REALTYPE   float
#define GAN_FWRITE_LENDIAN   gan_fwrite_lendian_f32
#define GAN_FREAD_LENDIAN   gan_fread_lendian_f32
#define GAN_VECTYPE1   Gan_Vector2_f
#define GAN_VECTYPE2   Gan_Vector2_f
#define GAN_MATTYPEL   Gan_Matrix22_f
#define GAN_MATTYPER   Gan_Matrix22_f
#define GAN_SQUMATTYPEL   Gan_SquMatrix22_f
#define GAN_SQUMATTYPER   Gan_SquMatrix22_f
#define GAN_MAT_FPRINT   gan_mat22f_fprint
#define GAN_MAT_PRINT   gan_mat22f_print
#define GAN_MAT_FSCANF   gan_mat22f_fscanf
#define GAN_MAT_FWRITE   gan_mat22f_fwrite
#define GAN_MAT_FREAD   gan_mat22f_fread
#define GAN_MAT_ZERO_Q   gan_mat22f_zero_q
#define GAN_MAT_ZERO_S   gan_mat22f_zero_s
#define GAN_MAT_COPY_Q   gan_mat22f_copy_q
#define GAN_MAT_COPY_S   gan_mat22f_copy_s
#define GAN_MAT_SCALE_Q   gan_mat22f_scale_q
#define GAN_MAT_SCALE_I   gan_mat22f_scale_i
#define GAN_MAT_SCALE_S   gan_mat22f_scale_s
#define GAN_MAT_DIVIDE_Q   gan_mat22f_divide_q
#define GAN_MAT_DIVIDE_I   gan_mat22f_divide_i
#define GAN_MAT_DIVIDE_S   gan_mat22f_divide_s
#define GAN_MAT_NEGATE_Q   gan_mat22f_negate_q
#define GAN_MAT_NEGATE_I   gan_mat22f_negate_i
#define GAN_MAT_NEGATE_S   gan_mat22f_negate_s
#define GAN_MAT_UNIT_Q   gan_mat22f_unit_q
#define GAN_MAT_UNIT_I   gan_mat22f_unit_i
#define GAN_MAT_UNIT_S   gan_mat22f_unit_s
#define GAN_MAT_ADD_Q   gan_mat22f_add_q
#define GAN_MAT_ADD_I1   gan_mat22f_add_i1
#define GAN_MAT_ADD_I2   gan_mat22f_add_i2
#define GAN_MAT_INCREMENT   gan_mat22f_increment
#define GAN_MAT_ADD_S   gan_mat22f_add_s
#define GAN_MAT_SUB_Q   gan_mat22f_sub_q
#define GAN_MAT_SUB_I1   gan_mat22f_sub_i1
#define GAN_MAT_SUB_I2   gan_mat22f_sub_i2
#define GAN_MAT_DECREMENT   gan_mat22f_decrement
#define GAN_MAT_SUB_S   gan_mat22f_sub_s
#define GAN_VEC_OUTER_Q   gan_vec22f_outer_q
#define GAN_VEC_OUTER_S   gan_vec22f_outer_s
#define GAN_MAT_MULTV_Q   gan_mat22f_multv2_q
#define GAN_MAT_MULTV_S   gan_mat22f_multv2_s
#define GAN_MATT_MULTV_Q   gan_mat22Tf_multv2_q
#define GAN_MATT_MULTV_S   gan_mat22Tf_multv2_s
#define GAN_MAT_LMULTMT_Q   gan_mat22f_lmultm22T_q
#define GAN_MAT_LMULTMT_S   gan_mat22f_lmultm22T_s
#define GAN_MAT_RMULTM_Q   gan_mat22f_rmultm22_q
#define GAN_MAT_RMULTM_S   gan_mat22f_rmultm22_s
#define GAN_MAT_RMULTMT_Q   gan_mat22f_rmultm22T_q
#define GAN_MAT_RMULTMT_S   gan_mat22f_rmultm22T_s
#define GAN_MAT_LMULTMT_SYM_Q   gan_mat22f_lmultm22T_sym_q
#define GAN_MAT_LMULTMT_SYM_S   gan_mat22f_lmultm22T_sym_s
#define GAN_MAT_RMULTMT_SYM_Q   gan_mat22f_rmultm22T_sym_q
#define GAN_MAT_RMULTMT_SYM_S   gan_mat22f_rmultm22T_sym_s
#define GAN_MAT_SLMULTT_Q   gan_mat22f_slmultT_q
#define GAN_MAT_SLMULTT_S   gan_mat22f_slmultT_s
#define GAN_MAT_SRMULTT_Q   gan_mat22f_srmultT_q
#define GAN_MAT_SRMULTT_S   gan_mat22f_srmultT_s
#define GAN_MAT_LMULTS_Q   gan_mat22f_lmults22_q
#define GAN_MAT_LMULTS_S   gan_mat22f_lmults22_s
#define GAN_MAT_RMULTS_Q   gan_mat22f_rmults22_q
#define GAN_MAT_RMULTS_S   gan_mat22f_rmults22_s
#define GAN_SYMMATL_LRMULT_Q   gan_symmat22f_lrmultm22T_q
#define GAN_SYMMATL_LRMULT_S   gan_symmat22f_lrmultm22T_s
#define GAN_SYMMATR_LRMULT_Q   gan_symmat22f_lrmultm22_q
#define GAN_SYMMATR_LRMULT_S   gan_symmat22f_lrmultm22_s
#define GAN_MAT_LMULTL_Q   gan_mat22f_lmultl22_q
#define GAN_MAT_LMULTL_S   gan_mat22f_lmultl22_s
#define GAN_MAT_LMULTL_I   gan_mat22f_lmultl22_i
#define GAN_MAT_LMULTLI_Q   gan_mat22f_lmultl22I_q
#define GAN_MAT_LMULTLI_S   gan_mat22f_lmultl22I_s
#define GAN_MAT_LMULTLI_I   gan_mat22f_lmultl22I_i
#define GAN_MAT_LMULTLT_Q   gan_mat22f_lmultl22T_q
#define GAN_MAT_LMULTLT_S   gan_mat22f_lmultl22T_s
#define GAN_MAT_LMULTLT_I   gan_mat22f_lmultl22T_i
#define GAN_MAT_LMULTLIT_Q   gan_mat22f_lmultl22IT_q
#define GAN_MAT_LMULTLIT_S   gan_mat22f_lmultl22IT_s
#define GAN_MAT_LMULTLIT_I   gan_mat22f_lmultl22IT_i
#define GAN_MAT_RMULTL_Q   gan_mat22f_rmultl22_q
#define GAN_MAT_RMULTL_S   gan_mat22f_rmultl22_s
#define GAN_MAT_RMULTL_I   gan_mat22f_rmultl22_i
#define GAN_MAT_RMULTLI_Q   gan_mat22f_rmultl22I_q
#define GAN_MAT_RMULTLI_S   gan_mat22f_rmultl22I_s
#define GAN_MAT_RMULTLI_I   gan_mat22f_rmultl22I_i
#define GAN_MAT_RMULTLT_Q   gan_mat22f_rmultl22T_q
#define GAN_MAT_RMULTLT_S   gan_mat22f_rmultl22T_s
#define GAN_MAT_RMULTLT_I   gan_mat22f_rmultl22T_i
#define GAN_MAT_RMULTLIT_Q   gan_mat22f_rmultl22IT_q
#define GAN_MAT_RMULTLIT_S   gan_mat22f_rmultl22IT_s
#define GAN_MAT_RMULTLIT_I   gan_mat22f_rmultl22IT_i
#define GAN_MAT_SUMSQR_Q   gan_mat22f_sumsqr_q
#define GAN_MAT_SUMSQR_S   gan_mat22f_sumsqr_s
#define GAN_MAT_FNORM_Q   gan_mat22f_Fnorm_q
#define GAN_MAT_FNORM_S   gan_mat22f_Fnorm_s
#define GAN_MAT_FROM_MAT_Q   gan_mat22f_from_matf_q
#define GAN_MAT_FROM_MAT_S   gan_mat22f_from_matf_s
#define GAN_MAT_FROM_SQUMAT_Q   gan_mat22f_from_squmatf_q
#define GAN_MAT_FROM_SQUMAT_S   gan_mat22f_from_squmatf_s
#define GAN_SQUMAT_FROM_SQUMAT_Q   gan_squmat22f_from_squmatf_q
#define GAN_SQUMAT_FROM_SQUMAT_S   gan_squmat22f_from_squmatf_s
#define GAN_SQUMAT_IDENT_Q   gan_mat22f_ident_q
#define GAN_SQUMAT_IDENT_S   gan_mat22f_ident_s
#define GAN_SQUMAT_TPOSE_Q   gan_mat22f_tpose_q
#define GAN_SQUMAT_TPOSE_S   gan_mat22f_tpose_s
#define GAN_SQUMAT_TPOSE_I   gan_mat22f_tpose_i
#define GAN_MAT_SADDT_Q   gan_mat22f_saddT_q
#define GAN_MAT_SADDT_S   gan_mat22f_saddT_s
#define GAN_SQUMAT_INVERT   gan_mat22f_invert
#define GAN_SQUMAT_INVERT_Q   gan_mat22f_invert_q
#define GAN_SQUMAT_INVERT_S   gan_mat22f_invert_s
#define GAN_SQUMAT_INVERT_I   gan_mat22f_invert_i
#define GAN_SQUMAT_ADJOINT_Q   gan_mat22f_adjoint_q
#define GAN_SQUMAT_ADJOINT_S   gan_mat22f_adjoint_s
#define GAN_SQUMAT_ADJOINTT_Q   gan_mat22f_adjointT_q
#define GAN_SQUMAT_ADJOINTT_S   gan_mat22f_adjointT_s
#define GAN_SQUMAT_DET_Q   gan_mat22f_det_q
#define GAN_SQUMAT_DET_S   gan_mat22f_det_s
#define GAN_SQUMAT_TRACE_Q   gan_mat22f_trace_q
#define GAN_SQUMAT_TRACE_S   gan_mat22f_trace_s
#define GAN_MATTYPE   Gan_SquMatrix22_f
#define GAN_MATRIX_TYPE   Gan_SquMatrix_f
#define GAN_SQUMATRIX_TYPE   Gan_SquMatrix_f
#define GAN_VECTOR_TYPE   Gan_Vector_f
#define GAN_MAT_ELEMENT_TYPE   GAN_FLOAT
#define GAN_REALTYPE   float
#define GAN_FWRITE_LENDIAN   gan_fwrite_lendian_f32
#define GAN_FREAD_LENDIAN   gan_fread_lendian_f32
#define GAN_VECTYPE1   Gan_Vector2_f
#define GAN_VECTYPE2   Gan_Vector2_f
#define GAN_FIXED_MATRIX_TYPE   GAN_SYMMETRIC_MATRIX22_F
#define GAN_MAT_FPRINT   gan_symmat22f_fprint
#define GAN_MAT_PRINT   gan_symmat22f_print
#define GAN_MAT_FSCANF   gan_symmat22f_fscanf
#define GAN_MAT_FWRITE   gan_symmat22f_fwrite
#define GAN_MAT_FREAD   gan_symmat22f_fread
#define GAN_MAT_ZERO_Q   gan_symmat22f_zero_q
#define GAN_MAT_ZERO_S   gan_symmat22f_zero_s
#define GAN_MAT_COPY_Q   gan_symmat22f_copy_q
#define GAN_MAT_COPY_S   gan_symmat22f_copy_s
#define GAN_MAT_SCALE_Q   gan_symmat22f_scale_q
#define GAN_MAT_SCALE_S   gan_symmat22f_scale_s
#define GAN_MAT_SCALE_I   gan_symmat22f_scale_i
#define GAN_MAT_DIVIDE_Q   gan_symmat22f_divide_q
#define GAN_MAT_DIVIDE_S   gan_symmat22f_divide_s
#define GAN_MAT_DIVIDE_I   gan_symmat22f_divide_i
#define GAN_MAT_NEGATE_Q   gan_symmat22f_negate_q
#define GAN_MAT_NEGATE_S   gan_symmat22f_negate_s
#define GAN_MAT_NEGATE_I   gan_symmat22f_negate_i
#define GAN_MAT_UNIT_Q   gan_symmat22f_unit_q
#define GAN_MAT_UNIT_S   gan_symmat22f_unit_s
#define GAN_MAT_UNIT_I   gan_symmat22f_unit_i
#define GAN_MAT_ADD_Q   gan_symmat22f_add_q
#define GAN_MAT_ADD_I1   gan_symmat22f_add_i1
#define GAN_MAT_ADD_I2   gan_symmat22f_add_i2
#define GAN_MAT_INCREMENT   gan_symmat22f_increment
#define GAN_MAT_ADD_S   gan_symmat22f_add_s
#define GAN_MAT_SUB_Q   gan_symmat22f_sub_q
#define GAN_MAT_SUB_I1   gan_symmat22f_sub_i1
#define GAN_MAT_SUB_I2   gan_symmat22f_sub_i2
#define GAN_MAT_DECREMENT   gan_symmat22f_decrement
#define GAN_MAT_SUB_S   gan_symmat22f_sub_s
#define GAN_MAT_MULTV_Q   gan_symmat22f_multv2_q
#define GAN_MAT_MULTV_S   gan_symmat22f_multv2_s
#define GAN_MAT_SUMSQR_Q   gan_symmat22f_sumsqr_q
#define GAN_MAT_SUMSQR_S   gan_symmat22f_sumsqr_s
#define GAN_MAT_FNORM_Q   gan_symmat22f_Fnorm_q
#define GAN_MAT_FNORM_S   gan_symmat22f_Fnorm_s
#define GAN_SQUMAT_IDENT_Q   gan_symmat22f_ident_q
#define GAN_SQUMAT_IDENT_S   gan_symmat22f_ident_s
#define GAN_SQUMAT_INVERT   gan_symmat22f_invert
#define GAN_SQUMAT_INVERT_Q   gan_symmat22f_invert_q
#define GAN_SQUMAT_INVERT_S   gan_symmat22f_invert_s
#define GAN_SQUMAT_INVERT_I   gan_symmat22f_invert_i
#define GAN_SQUMAT_DET_Q   gan_symmat22f_det_q
#define GAN_SQUMAT_DET_S   gan_symmat22f_det_s
#define GAN_SQUMAT_TRACE_Q   gan_symmat22f_trace_q
#define GAN_SQUMAT_TRACE_S   gan_symmat22f_trace_s
#define GAN_VEC_OUTER_SYM_Q   gan_vec22f_outer_sym_q
#define GAN_VEC_OUTER_SYM_S   gan_vec22f_outer_sym_s
#define GAN_SYMMAT_CHOLESKY   gan_symmat22f_cholesky
#define GAN_SYMMAT_CHOLESKY_Q   gan_symmat22f_cholesky_q
#define GAN_SYMMAT_CHOLESKY_S   gan_symmat22f_cholesky_s
#define GAN_SYMMAT_CHOLESKY_I   gan_symmat22f_cholesky_i
#define GAN_MATTYPE   Gan_SquMatrix22_f
#define GAN_MATRIX_TYPE   Gan_SquMatrix_f
#define GAN_SQUMATRIX_TYPE   Gan_SquMatrix_f
#define GAN_VECTOR_TYPE   Gan_Vector_f
#define GAN_MAT_ELEMENT_TYPE   GAN_FLOAT
#define GAN_REALTYPE   float
#define GAN_FWRITE_LENDIAN   gan_fwrite_lendian_f32
#define GAN_FREAD_LENDIAN   gan_fread_lendian_f32
#define GAN_VECTYPE1   Gan_Vector2_f
#define GAN_VECTYPE2   Gan_Vector2_f
#define GAN_SQUMATTYPEL   Gan_SquMatrix22_f
#define GAN_SQUMATTYPER   Gan_SquMatrix22_f
#define GAN_FIXED_MATRIX_TYPE   GAN_LOWER_TRI_MATRIX22_F
#define GAN_MAT_FPRINT   gan_ltmat22f_fprint
#define GAN_MAT_PRINT   gan_ltmat22f_print
#define GAN_MAT_FSCANF   gan_ltmat22f_fscanf
#define GAN_MAT_FWRITE   gan_ltmat22f_fwrite
#define GAN_MAT_FREAD   gan_ltmat22f_fread
#define GAN_MAT_ZERO_Q   gan_ltmat22f_zero_q
#define GAN_MAT_ZERO_S   gan_ltmat22f_zero_s
#define GAN_MAT_COPY_Q   gan_ltmat22f_copy_q
#define GAN_MAT_COPY_S   gan_ltmat22f_copy_s
#define GAN_MAT_SCALE_Q   gan_ltmat22f_scale_q
#define GAN_MAT_SCALE_S   gan_ltmat22f_scale_s
#define GAN_MAT_SCALE_I   gan_ltmat22f_scale_i
#define GAN_MAT_DIVIDE_Q   gan_ltmat22f_divide_q
#define GAN_MAT_DIVIDE_S   gan_ltmat22f_divide_s
#define GAN_MAT_DIVIDE_I   gan_ltmat22f_divide_i
#define GAN_MAT_NEGATE_Q   gan_ltmat22f_negate_q
#define GAN_MAT_NEGATE_S   gan_ltmat22f_negate_s
#define GAN_MAT_NEGATE_I   gan_ltmat22f_negate_i
#define GAN_MAT_UNIT_Q   gan_ltmat22f_unit_q
#define GAN_MAT_UNIT_S   gan_ltmat22f_unit_s
#define GAN_MAT_UNIT_I   gan_ltmat22f_unit_i
#define GAN_MAT_ADD_Q   gan_ltmat22f_add_q
#define GAN_MAT_ADD_I1   gan_ltmat22f_add_i1
#define GAN_MAT_ADD_I2   gan_ltmat22f_add_i2
#define GAN_MAT_INCREMENT   gan_ltmat22f_increment
#define GAN_MAT_ADD_S   gan_ltmat22f_add_s
#define GAN_MAT_SUB_Q   gan_ltmat22f_sub_q
#define GAN_MAT_SUB_I1   gan_ltmat22f_sub_i1
#define GAN_MAT_SUB_I2   gan_ltmat22f_sub_i2
#define GAN_MAT_DECREMENT   gan_ltmat22f_decrement
#define GAN_MAT_SUB_S   gan_ltmat22f_sub_s
#define GAN_MAT_MULTV_Q   gan_ltmat22f_multv2_q
#define GAN_MAT_MULTV_S   gan_ltmat22f_multv2_s
#define GAN_MAT_MULTV_I   gan_ltmat22f_multv2_i
#define GAN_MATT_MULTV_Q   gan_ltmat22Tf_multv2_q
#define GAN_MATT_MULTV_S   gan_ltmat22Tf_multv2_s
#define GAN_MATT_MULTV_I   gan_ltmat22Tf_multv2_i
#define GAN_MAT_SRMULTT_Q   gan_ltmat22f_srmultT_q
#define GAN_MAT_SRMULTT_S   gan_ltmat22f_srmultT_s
#define GAN_MAT_SRMULTT_I   gan_ltmat22f_srmultT_i
#define GAN_MAT_SLMULTT_Q   gan_ltmat22f_slmultT_q
#define GAN_MAT_SLMULTT_S   gan_ltmat22f_slmultT_s
#define GAN_MAT_SLMULTT_I   gan_ltmat22f_slmultT_i
#define GAN_MAT_SUMSQR_Q   gan_ltmat22f_sumsqr_q
#define GAN_MAT_SUMSQR_S   gan_ltmat22f_sumsqr_s
#define GAN_MAT_FNORM_Q   gan_ltmat22f_Fnorm_q
#define GAN_MAT_FNORM_S   gan_ltmat22f_Fnorm_s
#define GAN_SQUMAT_IDENT_Q   gan_ltmat22f_ident_q
#define GAN_SQUMAT_IDENT_S   gan_ltmat22f_ident_s
#define GAN_SQUMATI_MULTV_Q   gan_ltmat22If_multv2_q
#define GAN_SQUMATI_MULTV_S   gan_ltmat22If_multv2_s
#define GAN_SQUMATI_MULTV_I   gan_ltmat22If_multv2_i
#define GAN_SQUMATIT_MULTV_Q   gan_ltmat22ITf_multv2_q
#define GAN_SQUMATIT_MULTV_S   gan_ltmat22ITf_multv2_s
#define GAN_SQUMATIT_MULTV_I   gan_ltmat22ITf_multv2_i
#define GAN_SQUMAT_INVERT   gan_ltmat22f_invert
#define GAN_SQUMAT_INVERT_Q   gan_ltmat22f_invert_q
#define GAN_SQUMAT_INVERT_S   gan_ltmat22f_invert_s
#define GAN_SQUMAT_INVERT_I   gan_ltmat22f_invert_i
#define GAN_SQUMAT_DET_Q   gan_ltmat22f_det_q
#define GAN_SQUMAT_DET_S   gan_ltmat22f_det_s
#define GAN_SQUMAT_TRACE_Q   gan_ltmat22f_trace_q
#define GAN_SQUMAT_TRACE_S   gan_ltmat22f_trace_s
#define GAN_MATTYPE   Gan_SquMatrix22_f
#define GAN_MATRIX_TYPE   Gan_SquMatrix_f
#define GAN_SQUMATRIX_TYPE   Gan_SquMatrix_f
#define GAN_VECTOR_TYPE   Gan_Vector_f
#define GAN_MAT_ELEMENT_TYPE   GAN_FLOAT
#define GAN_REALTYPE   float
#define GAN_MAT_FPRINT   gan_ltmat22Tf_fprint
#define GAN_MAT_PRINT   gan_ltmat22Tf_print
#define GAN_MAT_FSCANF   gan_ltmat22Tf_fscanf
#define GAN_FIXED_MATRIX_TYPE   GAN_LOWER_TRI_MATRIX22_F
#define gan_ltmat22Tf_fwrite   gan_ltmat22f_fwrite
#define gan_ltmat22Tf_fread   gan_ltmat22f_fread

Typedefs

typedef Gan_Matrix22_f Gan_Matrix22_f
 Structure definition for single-precision 2x2 matrix.
typedef Gan_SquMatrix22_f Gan_SquMatrix22_f
 Structure definition for square single precision 2x2 matrix.

Enumerations

enum  Gan_SquMatrix22Type_f { GAN_SYMMETRIC_MATRIX22_F, GAN_LOWER_TRI_MATRIX22_F }
 Square matrix type, for setting and checking in debug mode.

Functions

Gan_Matrix22_fgan_mat22f_fill_q (Gan_Matrix22_f *A, float XX, float XY, float YX, float YY)
 Macro: Fill 2x2 matrix with values.
void gan_mat22f_get_rows_q (const Gan_Matrix22_f *A, Gan_Vector2_f *p, Gan_Vector2_f *q)
 Macro: Extract rows of 2x2 matrix.
void gan_mat22f_get_cols_q (const Gan_Matrix22_f *A, Gan_Vector2_f *p, Gan_Vector2_f *q)
 Macro: Extract columns of 2x2 matrix.
Gan_Matrix22_fgan_mat22f_ident_q (Gan_Matrix22_f *A)
 Macro: Fill fixed size square matrix with identity.
Gan_Matrix22_fgan_mat22f_tpose_q (Gan_Matrix22_f *A, Gan_Matrix22_f *B)
 Macro: Transpose fixed size square matrix.
Gan_SquMatrix22_fgan_mat22f_saddT_q (const Gan_Matrix22_f *A, Gan_SquMatrix22_f *B)
 Macro: Add matrix to its own transpose.
Gan_Matrix22_fgan_mat22f_invert_q (Gan_Matrix22_f *A, Gan_Matrix22_f *B)
 Macro: Invert fixed size square matrix.
Gan_Matrix22_fgan_mat22f_invert_i (Gan_Matrix22_f *A)
 Macro: Invert fixed size square matrix in-place.
float gan_mat22f_det_q (const Gan_Matrix22_f *A)
 Macro: Determinant of square matrix.
float gan_mat22f_trace_q (const Gan_Matrix22_f *A)
 Macro: Trace of square matrix.
Gan_Matrix22_fgan_mat22f_zero_q (const Gan_Matrix22_f *A)
 Macro: Fill fixed size matrix with zero.
Gan_Matrix22_fgan_mat22f_copy_q (Gan_Matrix22_f *A, Gan_Matrix22_f *B)
 Macro: Copy fixed size matrix.
Gan_Matrix22_fgan_mat22f_scale_q (Gan_Matrix22_f *A, float a, Gan_Matrix22_f *B)
 Macro: Scale fixed size matrix.
Gan_Matrix22_fgan_mat22f_scale_i (Gan_Matrix22_f *A, float a)
 Macro: Scale fixed size matrix.
Gan_Matrix22_fgan_mat22f_divide_q (Gan_Matrix22_f *A, float a, Gan_Matrix22_f *B)
 Macro: Divide fixed size matrix by scalar.
Gan_Matrix22_fgan_mat22f_divide_i (Gan_Matrix22_f *A, float a)
 Macro: Divide fixed size matrix by scalar.
Gan_Matrix22_fgan_mat22f_negate_q (Gan_Matrix22_f *A, Gan_Matrix22_f *B)
 Macro: Negate fixed size matrix.
Gan_Matrix22_fgan_mat22f_negate_i (Gan_Matrix22_f *A)
 Macro: Negate fixed size matrix.
Gan_Matrix22_fgan_mat22f_unit_i (Gan_Matrix22_f *A)
 Macro: Scale matrix to unit norm.
Gan_Matrix22_fgan_mat22f_add_q (Gan_Matrix22_f *A, Gan_Matrix22_f *B, Gan_Matrix22_f *C)
 Macro: Add two fixed size matrices.
Gan_Matrix22_fgan_mat22f_add_i1 (Gan_Matrix22_f *A, Gan_Matrix22_f *B)
 Macro: Add two fixed size matrices.
Gan_Matrix22_fgan_mat22f_add_i2 (Gan_Matrix22_f *A, Gan_Matrix22_f *B)
 Macro: Add two fixed size matrices.
Gan_Matrix22_fgan_mat22f_increment (Gan_Matrix22_f *A, Gan_Matrix22_f *B)
 Macro: Increment a fixed size vector by another.
Gan_Matrix22_fgan_mat22f_sub_q (Gan_Matrix22_f *A, Gan_Matrix22_f *B, Gan_Matrix22_f *C)
 Macro: Subtract two fixed size matrices.
Gan_Matrix22_fgan_mat22f_sub_i1 (Gan_Matrix22_f *A, Gan_Matrix22_f *B)
 Macro: Subtract two fixed size matrices.
Gan_Matrix22_fgan_mat22f_sub_i2 (Gan_Matrix22_f *A, Gan_Matrix22_f *B)
 Macro: Subtract two fixed size matrices.
Gan_Matrix22_fgan_mat22f_decrement (Gan_Matrix22_f *A, Gan_Matrix22_f *B)
 Macro: Decrement a fixed size vector by another.
Gan_Matrix22_fgan_vec22f_outer_q (const Gan_Vector2_f *p, const Gan_Vector2_f *q, Gan_Matrix22_f *A)
 Macro: Compute the outer product of two fixed size vectors.
Gan_Vector2_fgan_mat22f_multv2_q (const Gan_Matrix22_f *A, Gan_Vector2_f *p, Gan_Vector2_f *q)
 Macro: Matrix/vector product.
Gan_Vector2_fgan_mat22Tf_multv2_q (const Gan_Matrix22_f *A, Gan_Vector2_f *p, Gan_Vector2_f *q)
 Macro: Matrix/vector product with the matrix transposed.
Gan_Matrix22_fgan_mat22f_lmultm22T_q (Gan_Matrix22_f *A, const Gan_Matrix22_f *B, Gan_Matrix22_f *C)
 Macro: Left-multiply a matrix by the transpose of another matrix.
Gan_Matrix22_fgan_mat22f_rmultm22_q (Gan_Matrix22_f *A, const Gan_Matrix22_f *B, Gan_Matrix22_f *C)
 Macro: Right-multiply a matrix by another matrix.
Gan_Matrix22_fgan_mat22f_rmultm22T_q (Gan_Matrix22_f *A, const Gan_Matrix22_f *B, Gan_Matrix22_f *C)
 Macro: Right-multiply a matrix by the transpose of another matrix.
Gan_SquMatrix22_fgan_mat22f_lmultm22T_sym_q (const Gan_Matrix22_f *A, const Gan_Matrix22_f *B, Gan_SquMatrix22_f *C)
 Macro: Matrix product producing a symmetric matrix.
Gan_SquMatrix22_fgan_mat22f_rmultm22T_sym_q (const Gan_Matrix22_f *A, const Gan_Matrix22_f *B, Gan_SquMatrix22_f *C)
 Macro: Matrix product producing a symmetric matrix.
Gan_Matrix22_fgan_mat22f_lmults22_q (Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B, Gan_Matrix22_f *C)
 Macro: Left-multiply a matrix by a symmetric matrix.
Gan_Matrix22_fgan_mat22f_rmults22_q (Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B, Gan_Matrix22_f *C)
 Macro: Right-multiply a matrix by a symmetric matrix.
Gan_SquMatrix22_fgan_symmat22f_lrmultm22T_q (const Gan_SquMatrix22_f *A, const Gan_Matrix22_f *B, const Gan_Matrix22_f *C, Gan_SquMatrix22_f *D)
 Macro: Matrix triple product involving symmetric matrices.
Gan_SquMatrix22_fgan_symmat22f_lrmultm22_q (const Gan_SquMatrix22_f *A, const Gan_Matrix22_f *B, const Gan_Matrix22_f *C, Gan_SquMatrix22_f *D)
 Macro: Matrix triple product involving symmetric matrices.
Gan_Matrix22_fgan_mat22f_lmultl22_q (Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B, Gan_Matrix22_f *C)
 Macro: Left-multiply a matrix by a lower-triangular matrix.
Gan_Matrix22_fgan_mat22f_lmultl22I_q (Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B, Gan_Matrix22_f *C)
 Macro: Left-multiply a matrix by the inverse of a lower-triangular matrix.
Gan_Matrix22_fgan_mat22f_lmultl22T_q (Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B, Gan_Matrix22_f *C)
 Macro: Left-multiply a matrix by the transpose of a lower-triangular matrix.
Gan_Matrix22_fgan_mat22f_lmultl22IT_q (Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B, Gan_Matrix22_f *C)
 Macro: Left-multiply a matrix by the inverse transpose of a lower-triangular matrix.
Gan_Matrix22_fgan_mat22f_rmultl22_q (Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B, Gan_Matrix22_f *C)
 Macro: Right-multiply a matrix by a lower-triangular matrix.
Gan_Matrix22_fgan_mat22f_rmultl22I_q (Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B, Gan_Matrix22_f *C)
 Macro: Right-multiply a matrix by the inverse of a lower-triangular matrix.
Gan_Matrix22_fgan_mat22f_rmultl22T_q (Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B, Gan_Matrix22_f *C)
 Macro: Right-multiply a matrix by the transpose of a lower-triangular matrix.
Gan_Matrix22_fgan_mat22f_rmultl22IT_q (Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B, Gan_Matrix22_f *C)
 Macro: Right-multiply a matrix by the inverse transpose of a lower-triangular matrix.
Gan_Matrix22_fgan_mat22f_lmultl22_i (Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B)
 Macro: Left-multiply a matrix by a lower-triangular matrix.
Gan_Matrix22_fgan_mat22f_lmultl22I_i (Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B)
 Macro: Left-multiply a matrix by the inverse of a lower-triangular matrix.
Gan_Matrix22_fgan_mat22f_lmultl22T_i (Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B)
 Macro: Left-multiply a matrix by the transpose of a lower-triangular matrix.
Gan_Matrix22_fgan_mat22f_lmultl22IT_i (Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B)
 Macro: Left-multiply a matrix by the inverse transpose of a lower-triangular matrix.
Gan_Matrix22_fgan_mat22f_rmultl22_i (Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B)
 Macro: Right-multiply a matrix by a lower-triangular matrix.
Gan_Matrix22_fgan_mat22f_rmultl22I_i (Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B)
 Macro: Right-multiply a matrix by the inverse of a lower-triangular matrix.
Gan_Matrix22_fgan_mat22f_rmultl22T_i (Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B)
 Macro: Right-multiply a matrix by the transpose of a lower-triangular matrix.
Gan_Matrix22_fgan_mat22f_rmultl22IT_i (Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B)
 Macro: Right-multiply a matrix by the inverse transpose of a lower-triangular matrix.
Gan_SquMatrix22_fgan_mat22f_slmultT_q (Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B)
 Macro: Left-multiply a matrix by its own transpose, producing a symmetric matrix.
Gan_SquMatrix22_fgan_mat22f_srmultT_q (const Gan_Matrix22_f *A, Gan_SquMatrix22_f *B)
 Macro: Right-multiply a matrix by its own transpose, producing a symmetric matrix.
float gan_mat22f_sumsqr_q (const Gan_Matrix22_f *A)
 Macro: Returns sum of squares of matrix elements.
float gan_mat22f_Fnorm_q (const Gan_Matrix22_f *A)
 Macro: Frobenius norm of matrix.
Gan_SquMatrix22_fgan_symmat22f_fill_q (Gan_SquMatrix22_f *A, float XX, float YX, float YY)
 Fill 2x2 symmetric matrix with values.
Gan_SquMatrix22_fgan_vec22f_outer_sym_q (const Gan_Vector2_f *p, Gan_SquMatrix22_f *A)
 Macro: Computes the outer product of vector with itself.
Gan_SquMatrix22_fgan_symmat22f_cholesky_q (Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B)
 Macro: Compute Cholesky factorisation of fixed size symmetric matrix.
Gan_SquMatrix22_fgan_symmat22f_cholesky_i (Gan_SquMatrix22_f *A)
 Macro: Compute Cholesky factorisation of fixed size symmetric matrix.
Gan_SquMatrix22_fgan_symmat22f_ident_q (Gan_SquMatrix22_f *A)
 Macro: Fill fixed size square matrix with identity.
Gan_SquMatrix22_fgan_symmat22f_invert_q (Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B)
 Macro: Invert fixed size square matrix.
Gan_SquMatrix22_fgan_symmat22f_invert_i (Gan_SquMatrix22_f *A)
 Macro: Invert fixed size square matrix in-place.
float gan_symmat22f_det_q (const Gan_SquMatrix22_f *A)
 Macro: Determinant of square matrix.
float gan_symmat22f_trace_q (const Gan_SquMatrix22_f *A)
 Macro: Trace of square matrix.
Gan_SquMatrix22_fgan_symmat22f_zero_q (const Gan_SquMatrix22_f *A)
 Macro: Fill fixed size matrix with zero.
Gan_SquMatrix22_fgan_symmat22f_copy_q (Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B)
 Macro: Copy fixed size matrix.
Gan_SquMatrix22_fgan_symmat22f_scale_q (Gan_SquMatrix22_f *A, float a, Gan_SquMatrix22_f *B)
 Macro: Scale fixed size matrix.
Gan_SquMatrix22_fgan_symmat22f_scale_i (Gan_SquMatrix22_f *A, float a)
 Macro: Scale fixed size matrix.
Gan_SquMatrix22_fgan_symmat22f_divide_q (Gan_SquMatrix22_f *A, float a, Gan_SquMatrix22_f *B)
 Macro: Divide fixed size matrix by scalar.
Gan_SquMatrix22_fgan_symmat22f_divide_i (Gan_SquMatrix22_f *A, float a)
 Macro: Divide fixed size matrix by scalar.
Gan_SquMatrix22_fgan_symmat22f_negate_q (Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B)
 Macro: Negate fixed size matrix.
Gan_SquMatrix22_fgan_symmat22f_negate_i (Gan_SquMatrix22_f *A)
 Macro: Negate fixed size matrix.
Gan_SquMatrix22_fgan_symmat22f_unit_i (Gan_SquMatrix22_f *A)
 Macro: Scale matrix to unit norm.
Gan_SquMatrix22_fgan_symmat22f_add_q (Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B, Gan_SquMatrix22_f *C)
 Macro: Add two fixed size matrices.
Gan_SquMatrix22_fgan_symmat22f_add_i1 (Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B)
 Macro: Add two fixed size matrices.
Gan_SquMatrix22_fgan_symmat22f_add_i2 (Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B)
 Macro: Add two fixed size matrices.
Gan_SquMatrix22_fgan_symmat22f_increment (Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B)
 Macro: Increment a fixed size vector by another.
Gan_SquMatrix22_fgan_symmat22f_sub_q (Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B, Gan_SquMatrix22_f *C)
 Macro: Subtract two fixed size matrices.
Gan_SquMatrix22_fgan_symmat22f_sub_i1 (Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B)
 Macro: Subtract two fixed size matrices.
Gan_SquMatrix22_fgan_symmat22f_sub_i2 (Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B)
 Macro: Subtract two fixed size matrices.
Gan_SquMatrix22_fgan_symmat22f_decrement (Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B)
 Macro: Decrement a fixed size vector by another.
Gan_Vector2_fgan_symmat22f_multv2_q (const Gan_SquMatrix22_f *A, Gan_Vector2_f *p, Gan_Vector2_f *q)
 Macro: Matrix/vector product.
float gan_symmat22f_sumsqr_q (const Gan_SquMatrix22_f *A)
 Macro: Returns sum of squares of matrix elements.
float gan_symmat22f_Fnorm_q (const Gan_SquMatrix22_f *A)
 Macro: Frobenius norm of matrix.
Gan_SquMatrix22_fgan_ltmat22f_fill_q (Gan_SquMatrix22_f *A, float XX, float YX, float YY)
 Macro: Fill 2x2 lower triangular matrix with values.
Gan_SquMatrix22_fgan_ltmat22f_ident_q (Gan_SquMatrix22_f *A)
 Macro: Fill fixed size square matrix with identity.
Gan_Vector2_fgan_ltmat22If_multv2_q (const Gan_SquMatrix22_f *A, Gan_Vector2_f *p, Gan_Vector2_f *q)
 Macro: Computes the product of the inverse of a matrix and a vector.
Gan_Vector2_fgan_ltmat22If_multv2_i (const Gan_SquMatrix22_f *A, Gan_Vector2_f *p)
 Macro: Computes the product of the inverse of matrix and a vector in-place.
Gan_Vector2_fgan_ltmat22ITf_multv2_q (const Gan_SquMatrix22_f *A, Gan_Vector2_f *p, Gan_Vector2_f *q)
 Macro: Computes the product of an inverted transposed matrix and a vector.
Gan_Vector2_fgan_ltmat22ITf_multv2_i (const Gan_SquMatrix22_f *A, Gan_Vector2_f *p)
 Macro: Computes the product of an inverted transposed matrix and a vector in-place.
Gan_SquMatrix22_fgan_ltmat22f_invert_q (Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B)
 Macro: Invert fixed size square matrix.
Gan_SquMatrix22_fgan_ltmat22f_invert_i (Gan_SquMatrix22_f *A)
 Macro: Invert fixed size square matrix in-place.
float gan_ltmat22f_det_q (const Gan_SquMatrix22_f *A)
 Macro: Determinant of square matrix.
float gan_ltmat22f_trace_q (const Gan_SquMatrix22_f *A)
 Macro: Trace of square matrix.
Gan_SquMatrix22_fgan_ltmat22f_zero_q (const Gan_SquMatrix22_f *A)
 Macro: Fill fixed size matrix with zero.
Gan_SquMatrix22_fgan_ltmat22f_copy_q (Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B)
 Macro: Copy fixed size matrix.
Gan_SquMatrix22_fgan_ltmat22f_scale_q (Gan_SquMatrix22_f *A, float a, Gan_SquMatrix22_f *B)
 Macro: Scale fixed size matrix.
Gan_SquMatrix22_fgan_ltmat22f_scale_i (Gan_SquMatrix22_f *A, float a)
 Macro: Scale fixed size matrix.
Gan_SquMatrix22_fgan_ltmat22f_divide_q (Gan_SquMatrix22_f *A, float a, Gan_SquMatrix22_f *B)
 Macro: Divide fixed size matrix by scalar.
Gan_SquMatrix22_fgan_ltmat22f_divide_i (Gan_SquMatrix22_f *A, float a)
 Macro: Divide fixed size matrix by scalar.
Gan_SquMatrix22_fgan_ltmat22f_negate_q (Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B)
 Macro: Negate fixed size matrix.
Gan_SquMatrix22_fgan_ltmat22f_negate_i (Gan_SquMatrix22_f *A)
 Macro: Negate fixed size matrix.
Gan_SquMatrix22_fgan_ltmat22f_unit_i (Gan_SquMatrix22_f *A)
 Macro: Scale matrix to unit norm.
Gan_SquMatrix22_fgan_ltmat22f_add_q (Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B, Gan_SquMatrix22_f *C)
 Macro: Add two fixed size matrices.
Gan_SquMatrix22_fgan_ltmat22f_add_i1 (Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B)
 Macro: Add two fixed size matrices.
Gan_SquMatrix22_fgan_ltmat22f_add_i2 (Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B)
 Macro: Add two fixed size matrices.
Gan_SquMatrix22_fgan_ltmat22f_increment (Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B)
 Macro: Increment a fixed size vector by another.
Gan_SquMatrix22_fgan_ltmat22f_sub_q (Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B, Gan_SquMatrix22_f *C)
 Macro: Subtract two fixed size matrices.
Gan_SquMatrix22_fgan_ltmat22f_sub_i1 (Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B)
 Macro: Subtract two fixed size matrices.
Gan_SquMatrix22_fgan_ltmat22f_sub_i2 (Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B)
 Macro: Subtract two fixed size matrices.
Gan_SquMatrix22_fgan_ltmat22f_decrement (Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B)
 Macro: Decrement a fixed size vector by another.
Gan_Vector2_fgan_ltmat22f_multv2_q (const Gan_SquMatrix22_f *A, Gan_Vector2_f *p, Gan_Vector2_f *q)
 Macro: Matrix/vector product.
Gan_Vector2_fgan_ltmat22f_multv2_i (const Gan_SquMatrix22_f *A, Gan_Vector2_f *p)
 Macro: Matrix/vector product.
Gan_Vector2_fgan_ltmat22Tf_multv2_q (const Gan_SquMatrix22_f *A, Gan_Vector2_f *p, Gan_Vector2_f *q)
 Macro: Matrix/vector product with the matrix transposed.
Gan_Vector2_fgan_ltmat22Tf_multv2_i (const Gan_SquMatrix22_f *A, Gan_Vector2_f *p)
 Macro: Matrix/vector product with the matrix transposed.
Gan_SquMatrix22_fgan_ltmat22f_slmultT_q (Gan_SquMatrix22_f *A, const Gan_SquMatrix22_f *B)
 Macro: Left-multiply a matrix by its own transpose, producing a symmetric matrix.
Gan_SquMatrix22_fgan_ltmat22f_slmultT_i (Gan_SquMatrix22_f *A)
 Macro: Left-multiply a matrix by its own transpose, producing a symmetric matrix.
Gan_SquMatrix22_fgan_ltmat22f_srmultT_q (const Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B)
 Macro: Right-multiply a matrix by its own transpose, producing a symmetric matrix.
Gan_SquMatrix22_fgan_ltmat22f_srmultT_i (Gan_SquMatrix22_f *A)
 Macro: Right-multiply a matrix by its own transpose, producing a symmetric matrix.
float gan_ltmat22f_sumsqr_q (const Gan_SquMatrix22_f *A)
 Macro: Returns sum of squares of matrix elements.
float gan_ltmat22f_Fnorm_q (const Gan_SquMatrix22_f *A)
 Macro: Frobenius norm of matrix.


Detailed Description

Module: 2x2 matrices (single precision)

Part of: Gandalf Library

Version:
1.11
Date:
2006/03/15 16:29:52
Author:
pm
Copyright: (c) 2000 Imagineer Software Limited

Define Documentation

#define GAN_FREP22_A a,
b,
p1,
p2,
q1,
q2,
r11,
r12,
r21,
r22   ) 
 

Value:

(GAN_FREP2_A(a,b,p1##q1,p1##q2,r11,r12),\
            GAN_FREP2_A(a,b,p2##q1,p2##q2,r21,r22))

#define GAN_FREP22L_A a,
b,
p1,
p2,
q1,
q2,
r11,
r21,
r22   ) 
 

Value:

(GAN_FREP1_A(a,b,p1##q1,r11),\
  GAN_FREP2_A(a,b,p2##q1,p2##q2,r21,r22))

#define GAN_REP1_AS a,
b,
p1   )     (a p1 b)
 

File:

RCSfile
repeat1_noc.h,v
Module: Macros for 1-fold repetition of vector/matrix operations Part of: Gandalf Library

Revision:

Revision
1.5
Last edited:
Date
2002/04/18 14:56:25
Author:
Author
pm
Copyright: (c) 2000 Imagineer Software Limited

Notes: Not to be compiled separately

#define GAN_REP22_AAT a,
b,
p1,
p2,
q1,
q2   ) 
 

Value:

(GAN_REP2_AB(a,b,p1##q1,p1##q2,p1##q1,p2##q1),\
  GAN_REP2_AB(a,b,p2##q1,p2##q2,p1##q2,p2##q2))

#define GAN_REP22_AB a,
b,
p1,
p2,
q1,
q2,
r1,
r2,
s1,
s2   ) 
 

Value:

(GAN_REP2_AB(a,b,p1##q1,p1##q2,r1##s1,r1##s2),\
  GAN_REP2_AB(a,b,p2##q1,p2##q2,r2##s1,r2##s2))

#define GAN_REP22_ABC a,
b,
c,
p1,
p2,
q1,
q2,
r1,
r2,
s1,
s2,
t1,
t2,
u1,
u2   ) 
 

Value:

(GAN_REP2_ABC(a,b,c,p1##q1,p1##q2,r1##s1,r1##s2,t1##u1,t1##u2),\
  GAN_REP2_ABC(a,b,c,p2##q1,p2##q2,r2##s1,r2##s2,t2##u1,t2##u2))

#define GAN_REP22_ABCS a,
b,
c,
d,
p1,
p2,
q1,
q2,
r1,
r2,
s1,
s2,
t1,
t2,
u1,
u2   ) 
 

Value:

(GAN_REP2_ABCS(a,b,c,d,p1##q1,p1##q2,r1##s1,r1##s2,t1##u1,t1##u2),\
  GAN_REP2_ABCS(a,b,c,d,p2##q1,p2##q2,r2##s1,r2##s2,t2##u1,t2##u2))

#define GAN_REP22_ABS a,
b,
c,
p1,
p2,
q1,
q2,
r1,
r2,
s1,
s2   ) 
 

Value:

(GAN_REP2_ABS(a,b,c,p1##q1,p1##q2,r1##s1,r1##s2),\
  GAN_REP2_ABS(a,b,c,p2##q1,p2##q2,r2##s1,r2##s2))

#define GAN_REP22L_A a,
p1,
p2,
q1,
q2   ) 
 

Value:

(GAN_REP1_A(a,p1##q1),\
  GAN_REP2_A(a,p2##q1,p2##q2))

#define GAN_REP22L_AB a,
b,
p1,
p2,
q1,
q2,
r1,
r2,
s1,
s2   ) 
 

Value:

(GAN_REP1_AB(a,b,p1##q1,r1##s1),\
  GAN_REP2_AB(a,b,p2##q1,p2##q2,r2##s1,r2##s2))

#define GAN_REP22L_ABC a,
b,
c,
p1,
p2,
q1,
q2,
r1,
r2,
s1,
s2,
t1,
t2,
u1,
u2   ) 
 

Value:

(GAN_REP1_ABC(a,b,c,p1##q1,r1##s1,t1##u1),\
  GAN_REP2_ABC(a,b,c,p2##q1,p2##q2,r2##s1,r2##s2,t2##u1,t2##u2))

#define GAN_REP22L_ABCS a,
b,
c,
d,
p1,
p2,
q1,
q2,
r1,
r2,
s1,
s2,
t1,
t2,
u1,
u2   ) 
 

Value:

(GAN_REP1_ABCS(a,b,c,d,p1##q1,r1##s1,t1##u1),\
  GAN_REP2_ABCS(a,b,c,d,p2##q1,p2##q2,r2##s1,r2##s2,t2##u1,t2##u2))

#define GAN_REP22L_ABS a,
b,
c,
p1,
p2,
q1,
q2,
r1,
r2,
s1,
s2   ) 
 

Value:

(GAN_REP1_ABS(a,b,c,p1##q1,r1##s1),\
  GAN_REP2_ABS(a,b,c,p2##q1,p2##q2,r2##s1,r2##s2))

#define GAN_REP22L_AS a,
b,
p1,
p2,
q1,
q2   ) 
 

Value:

(GAN_REP1_AS(a,b,p1##q1),\
  GAN_REP2_AS(a,b,p2##q1,p2##q2))

#define GAN_REP2_AS a,
b,
p1,
p2   )     (a p1 b, a p2 b)
 

File:

RCSfile
repeat2_noc.h,v
Module: Macros for 2-fold repetition of vector/matrix operations Part of: Gandalf Library

Revision:

Revision
1.5
Last edited:
Date
2002/04/18 14:56:25
Author:
Author
pm
Copyright: (c) 2000 Imagineer Software Limited

Notes: Not to be compiled separately


Generated on Fri Mar 17 12:44:48 2006 by  doxygen 1.3.9.1