00001
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef _GAN_2X2MATRIXF_H
00030 #define _GAN_2X2MATRIXF_H
00031
00032 #include <stdlib.h>
00033 #include <math.h>
00034 #include <stdio.h>
00035 #include <gandalf/common/misc_defs.h>
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064 #ifndef _GAN_REPEAT22_H
00065 #define _GAN_REPEAT22_H
00066
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095 #ifndef _GAN_REPEAT1_H
00096 #define _GAN_REPEAT1_H
00097
00098 #ifdef __cplusplus
00099 extern "C" {
00100 #endif
00101
00102
00103 #define GAN_REP1_AS(a,b,p1) (a p1 b)
00104 #define GAN_REP1_A(a,p1) (a p1)
00105 #define GAN_REP1_A_C(a,b) GAN_REP1_A(a,b,x)
00106
00107 #define GAN_FREP1_A(a,b,p1,q1) (a p1 b q1)
00108 #define GAN_FREP1_A_C(a,b,p1) GAN_FREP1_A(a,b,x,p1)
00109
00110 #define GAN_REP1_ABS(a,b,c,p1,q1) (a p1 b q1 c)
00111 #define GAN_REP1_AAS(a,b,c,p1) GAN_REP1_ABS(a,b,c,p1,p1)
00112 #define GAN_REP1_AAS_C(a,b,c) GAN_REP1_AAS(a,b,c,x)
00113
00114 #define GAN_REP1_AB(a,b,p1,q1) (a p1 b q1)
00115 #define GAN_REP1_AA(a,b,p1) GAN_REP1_AB(a,b,p1,p1)
00116 #define GAN_REP1_AA_C(a,b) GAN_REP1_AA(a,b,x)
00117
00118 #define GAN_REP1_ABCS(a,b,c,d,p1,q1,r1) (a p1 b q1 c r1 d)
00119 #define GAN_REP1_ABC(a,b,c,p1,q1,r1) (a p1 b q1 c r1)
00120 #define GAN_REP1_AAA(a,b,c,p1) GAN_REP1_ABC(a,b,c,p1,p1,p1)
00121 #define GAN_REP1_AAA_C(a,b,c) GAN_REP1_AAA(a,b,c,x)
00122
00123 #define GAN_REP1_OP_AB(a,b,p1,q1,op) (a p1 b q1)
00124 #define GAN_REP1_OP_AA(a,b,p1,op) GAN_REP1_OP_AB(a,b,p1,p1,op)
00125 #define GAN_REP1_OP_AA_C(a,b,op) GAN_REP1_OP_AA(a,b,x,op)
00126
00127 #ifdef __cplusplus
00128 }
00129 #endif
00130
00131 #endif
00132
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160 #ifndef _GAN_REPEAT2_H
00161 #define _GAN_REPEAT2_H
00162
00163 #ifdef __cplusplus
00164 extern "C" {
00165 #endif
00166
00167
00168 #define GAN_REP2_AS(a,b,p1,p2) (a p1 b, a p2 b)
00169 #define GAN_REP2_A(a,p1,p2) (a p1, a p2)
00170 #define GAN_REP2_AS_C(a,b) GAN_REP2_AS(a,b,x,y)
00171 #define GAN_REP2_A_C(a) GAN_REP2_A(a,x,y)
00172
00173 #define GAN_FREP2_A(a,b,p1,p2,q1,q2) (a p1 b q1, a p2 b q2)
00174 #define GAN_FREP2_A_C(a,b,p1,p2) GAN_FREP2_A(a,b,x,y,p1,p2)
00175
00176 #define GAN_REP2_AB(a,b,p1,p2,q1,q2) (a p1 b q1, a p2 b q2)
00177 #define GAN_REP2_AA(a,b,p1,p2) GAN_REP2_AB(a,b,p1,p2,p1,p2)
00178 #define GAN_REP2_AA_C(a,b) GAN_REP2_AA(a,b,x,y)
00179
00180 #define GAN_REP2_ABS(a,b,c,p1,p2,q1,q2) (a p1 b q1 c, a p2 b q2 c)
00181 #define GAN_REP2_AAS(a,b,c,p1,p2) GAN_REP2_ABS(a,b,c,p1,p2,p1,p2)
00182 #define GAN_REP2_AAS_C(a,b,c) GAN_REP2_AAS(a,b,c,x,y)
00183
00184 #define GAN_REP2_AB(a,b,p1,p2,q1,q2) (a p1 b q1, a p2 b q2)
00185 #define GAN_REP2_AA(a,b,p1,p2) GAN_REP2_AB(a,b,p1,p2,p1,p2)
00186 #define GAN_REP2_AA_C(a,b) GAN_REP2_AA(a,b,x,y)
00187
00188 #define GAN_REP2_ABCS(a,b,c,d,p1,p2,q1,q2,r1,r2)\
00189 (a p1 b q1 c r1 d, a p2 b q2 c r2 d)
00190 #define GAN_REP2_ABC(a,b,c,p1,p2,q1,q2,r1,r2)\
00191 (a p1 b q1 c r1, a p2 b q2 c r2)
00192 #define GAN_REP2_AAA(a,b,c,p1,p2) GAN_REP2_ABC(a,b,c,p1,p2,p1,p2,p1,p2)
00193 #define GAN_REP2_AAA_C(a,b,c) GAN_REP2_AAA(a,b,c,x,y)
00194
00195 #define GAN_REP2_OP_AB(a,b,p1,p2,q1,q2,op)\
00196 (a p1 b q1 op a p2 b q2)
00197 #define GAN_REP2_OP_AA(a,b,p1,p2,op) GAN_REP2_OP_AB(a,b,p1,p2,p1,p2,op)
00198 #define GAN_REP2_OP_AA_C(a,b,op) GAN_REP2_OP_AA(a,b,x,y,op)
00199
00200 #ifdef __cplusplus
00201 }
00202 #endif
00203
00204 #endif
00205
00206 #ifdef __cplusplus
00207 extern "C" {
00208 #endif
00209
00210
00211
00212 #define GAN_FREP22_A(a,b,p1,p2,q1,q2,r11,r12,r21,r22)\
00213 (GAN_FREP2_A(a,b,p1##q1,p1##q2,r11,r12),\
00214 GAN_FREP2_A(a,b,p2##q1,p2##q2,r21,r22))
00215 #define GAN_FREP22_A_C(a,b,r11,r12,r21,r22) \
00216 GAN_FREP22_A(a,b,x,y,x,y,r11,r12,r21,r22)
00217
00218
00219 #define GAN_REP22_ABCS(a,b,c,d,p1,p2,q1,q2,r1,r2,s1,s2,t1,t2,u1,u2)\
00220 (GAN_REP2_ABCS(a,b,c,d,p1##q1,p1##q2,r1##s1,r1##s2,t1##u1,t1##u2),\
00221 GAN_REP2_ABCS(a,b,c,d,p2##q1,p2##q2,r2##s1,r2##s2,t2##u1,t2##u2))
00222 #define GAN_REP22_ABC(a,b,c,p1,p2,q1,q2,r1,r2,s1,s2,t1,t2,u1,u2)\
00223 (GAN_REP2_ABC(a,b,c,p1##q1,p1##q2,r1##s1,r1##s2,t1##u1,t1##u2),\
00224 GAN_REP2_ABC(a,b,c,p2##q1,p2##q2,r2##s1,r2##s2,t2##u1,t2##u2))
00225
00226 #define GAN_REP22_AAAS(a,b,c,d,p1,p2,q1,q2)\
00227 GAN_REP22_ABCS(a,b,c,d,p1,p2,q1,q2,p1,p2,q1,q2,p1,p2,q1,q2)
00228 #define GAN_REP22_AAA(a,b,c,p1,p2,q1,q2)\
00229 GAN_REP22_ABC(a,b,c,p1,p2,q1,q2,p1,p2,q1,q2,p1,p2,q1,q2)
00230
00231 #define GAN_REP22_ABS(a,b,c,p1,p2,q1,q2,r1,r2,s1,s2)\
00232 (GAN_REP2_ABS(a,b,c,p1##q1,p1##q2,r1##s1,r1##s2),\
00233 GAN_REP2_ABS(a,b,c,p2##q1,p2##q2,r2##s1,r2##s2))
00234 #define GAN_REP22_AB(a,b,p1,p2,q1,q2,r1,r2,s1,s2)\
00235 (GAN_REP2_AB(a,b,p1##q1,p1##q2,r1##s1,r1##s2),\
00236 GAN_REP2_AB(a,b,p2##q1,p2##q2,r2##s1,r2##s2))
00237
00238 #define GAN_REP22_AAS(a,b,c,p1,p2,q1,q2)\
00239 GAN_REP22_ABS(a,b,c,p1,p2,q1,q2,p1,p2,q1,q2)
00240 #define GAN_REP22_AA(a,b,p1,p2,q1,q2)\
00241 GAN_REP22_AB(a,b,p1,p2,q1,q2,p1,p2,q1,q2)
00242
00243 #define GAN_REP22_AS(a,b,p1,p2,q1,q2)\
00244 (GAN_REP2_AS(a,b,p1##q1,p1##q2), GAN_REP2_AS(a,b,p2##q1,p2##q2))
00245 #define GAN_REP22_A(a,p1,p2,q1,q2)\
00246 (GAN_REP2_A(a,p1##q1,p1##q2), GAN_REP2_A(a,p2##q1,p2##q2))
00247
00248
00249 #define GAN_REP22_AS_C(a,b) GAN_REP22_AS(a,b,x,y,x,y)
00250 #define GAN_REP22_AAS_C(a,b,c) GAN_REP22_AAS(a,b,c,x,y,x,y)
00251 #define GAN_REP22_AAAS_C(a,b,c,d) GAN_REP22_AAAS(a,b,c,d,x,y,x,y)
00252 #define GAN_REP22_A_C(a) GAN_REP22_A(a,x,y,x,y)
00253 #define GAN_REP22_AA_C(a,b) GAN_REP22_AA(a,b,x,y,x,y)
00254 #define GAN_REP22_AAA_C(a,b,c) GAN_REP22_AAA(a,b,c,x,y,x,y)
00255
00256
00257 #define GAN_REP22_AAT(a,b,p1,p2,q1,q2)\
00258 (GAN_REP2_AB(a,b,p1##q1,p1##q2,p1##q1,p2##q1),\
00259 GAN_REP2_AB(a,b,p2##q1,p2##q2,p1##q2,p2##q2))
00260 #define GAN_REP22_AAT_C(a,b) GAN_REP22_AAT(a,b,x,y,x,y)
00261
00262
00263 #define GAN_FREP22L_A(a,b,p1,p2,q1,q2,r11,r21,r22)\
00264 (GAN_FREP1_A(a,b,p1##q1,r11),\
00265 GAN_FREP2_A(a,b,p2##q1,p2##q2,r21,r22))
00266 #define GAN_FREP22L_A_C(a,b,r11,r21,r22) \
00267 GAN_FREP22L_A(a,b,x,y,x,y,r11,r21,r22)
00268
00269 #define GAN_REP22L_ABCS(a,b,c,d,p1,p2,q1,q2,r1,r2,s1,s2,t1,t2,u1,u2)\
00270 (GAN_REP1_ABCS(a,b,c,d,p1##q1,r1##s1,t1##u1),\
00271 GAN_REP2_ABCS(a,b,c,d,p2##q1,p2##q2,r2##s1,r2##s2,t2##u1,t2##u2))
00272 #define GAN_REP22L_ABC(a,b,c,p1,p2,q1,q2,r1,r2,s1,s2,t1,t2,u1,u2)\
00273 (GAN_REP1_ABC(a,b,c,p1##q1,r1##s1,t1##u1),\
00274 GAN_REP2_ABC(a,b,c,p2##q1,p2##q2,r2##s1,r2##s2,t2##u1,t2##u2))
00275 #define GAN_REP22L_AAAS(a,b,c,d,p1,p2,q1,q2)\
00276 GAN_REP22L_ABCS(a,b,c,d,p1,p2,q1,q2,p1,p2,q1,q2,p1,p2,q1,q2)
00277 #define GAN_REP22L_AAA(a,b,c,p1,p2,q1,q2)\
00278 GAN_REP22L_ABC(a,b,c,p1,p2,q1,q2,p1,p2,q1,q2,p1,p2,q1,q2)
00279 #define GAN_REP22L_ABS(a,b,c,p1,p2,q1,q2,r1,r2,s1,s2)\
00280 (GAN_REP1_ABS(a,b,c,p1##q1,r1##s1),\
00281 GAN_REP2_ABS(a,b,c,p2##q1,p2##q2,r2##s1,r2##s2))
00282 #define GAN_REP22L_AB(a,b,p1,p2,q1,q2,r1,r2,s1,s2)\
00283 (GAN_REP1_AB(a,b,p1##q1,r1##s1),\
00284 GAN_REP2_AB(a,b,p2##q1,p2##q2,r2##s1,r2##s2))
00285 #define GAN_REP22L_AAS(a,b,c,p1,p2,q1,q2)\
00286 GAN_REP22L_ABS(a,b,c,p1,p2,q1,q2,p1,p2,q1,q2)
00287 #define GAN_REP22L_AA(a,b,p1,p2,q1,q2)\
00288 GAN_REP22L_AB(a,b,p1,p2,q1,q2,p1,p2,q1,q2)
00289 #define GAN_REP22L_AS(a,b,p1,p2,q1,q2)\
00290 (GAN_REP1_AS(a,b,p1##q1),\
00291 GAN_REP2_AS(a,b,p2##q1,p2##q2))
00292 #define GAN_REP22L_A(a,p1,p2,q1,q2)\
00293 (GAN_REP1_A(a,p1##q1),\
00294 GAN_REP2_A(a,p2##q1,p2##q2))
00295 #define GAN_REP22L_AS_C(a,b) GAN_REP22L_AS(a,b,x,y,x,y)
00296 #define GAN_REP22L_AAS_C(a,b,c) GAN_REP22L_AAS(a,b,c,x,y,x,y)
00297 #define GAN_REP22L_AAAS_C(a,b,c,d) GAN_REP22L_AAAS(a,b,c,d,x,y,x,y)
00298 #define GAN_REP22L_A_C(a) GAN_REP22L_A(a,x,y,x,y)
00299 #define GAN_REP22L_AA_C(a,b) GAN_REP22L_AA(a,b,x,y,x,y)
00300 #define GAN_REP22L_AAA_C(a,b,c) GAN_REP22L_AAA(a,b,c,x,y,x,y)
00301 #define GAN_FREP22L_A_C(a,b,r11,r21,r22)\
00302 GAN_FREP22L_A(a,b,x,y,x,y,r11,r21,r22)
00303
00304 #ifdef __cplusplus
00305 }
00306 #endif
00307
00308 #endif
00309 #include <gandalf/linalg/2vectorf.h>
00323
00324
00325
00326
00327
00328
00329
00330
00331
00332
00333
00334
00335
00336
00337
00338 #endif
00339 #include <gandalf/linalg/matf_gen.h>
00340 #include <gandalf/linalg/matf_square.h>
00341
00342 #ifdef __cplusplus
00343 extern "C" {
00344 #endif
00345
00356
00357 typedef struct Gan_Matrix22_f
00358 {
00359 float xx, xy,
00360 yx, yy;
00361 } Gan_Matrix22_f;
00362
00363 #ifndef NDEBUG
00364
00365 typedef enum { GAN_SYMMETRIC_MATRIX22_F, GAN_LOWER_TRI_MATRIX22_F }
00366 Gan_SquMatrix22Type_f;
00367 #endif
00368
00370 typedef struct Gan_SquMatrix22_f
00371 {
00372 #ifndef NDEBUG
00373
00374 Gan_SquMatrix22Type_f type;
00375 #endif
00376
00377
00378 float xx,
00379 yx, yy;
00380 } Gan_SquMatrix22_f;
00381
00382
00383 #define GAN_ST22F_FILL(A,t,XX,YX,YY)\
00384 (GAN_TEST_OP1(A,Gan_SquMatrix22_f),gan_eval((A)->type=t),\
00385 GAN_FREP22L_A_C((A)->,=,(XX),(YX),(YY)))
00386 #define GAN_ST22F_IDENT(A,t)\
00387 (GAN_TEST_OP1(A,Gan_SquMatrix22_f),gan_eval((A)->type=t),\
00388 GAN_FREP22L_A_C((A)->,=,1.0,0.0,1.0))
00389
00390
00391 #define GAN_MAT22F_MULT1D(a,b,c,p1,p2,q1,q2)\
00392 (a p1 = GAN_REP2_OP_AB(b,* c,xx,xy,q1,q2,+),\
00393 a p2 = GAN_REP2_OP_AB(b,* c,yx,yy,q1,q2,+))
00394 #define GAN_MAT22TF_MULT1D(a,b,c,p1,p2,q1,q2)\
00395 (a p1 = GAN_REP2_OP_AB(b,* c,xx,yx,q1,q2,+),\
00396 a p2 = GAN_REP2_OP_AB(b,* c,xy,yy,q1,q2,+))
00397
00398
00399 #define GAN_SYM22F_MULT1D(a,b,c,p1,p2,q1,q2)\
00400 (a p1 = GAN_REP2_OP_AB(b,* c,xx,yx,q1,q2,+),\
00401 a p2 = GAN_REP2_OP_AB(b,* c,yx,yy,q1,q2,+))
00402
00403
00404 #define GAN_LOW22F_MULT1D(a,b,c,p1,p2,q1,q2)\
00405 (a p2 = GAN_REP2_OP_AB(b,* c,yx,yy,q1,q2,+),\
00406 a p1 = GAN_REP1_OP_AB(b,* c,xx,q1,+))
00407 #define GAN_LOW22IF_MULT1D(a,b,c,p1,p2,q1,q2)\
00408 (a p1 = c q1 / b xx,\
00409 a p2 = (c q2 - b yx * a p1) / b yy)
00410
00411
00412 #define GAN_UPP22F_MULT1D(a,b,c,p1,p2,q1,q2)\
00413 (a p1 = GAN_REP2_OP_AB(b,* c,xx,yx,q1,q2,+),\
00414 a p2 = GAN_REP1_OP_AB(b,* c,yy,q2,+))
00415 #define GAN_UPP22IF_MULT1D(a,b,c,p1,p2,q1,q2)\
00416 (a p2 = c q2 / b yy,\
00417 a p1 = (c q1 - b yx * a p2) / b xx)
00418
00419
00420 #define GAN_ST22F_ZERO(A,t)\
00421 (GAN_TEST_OP1(A,Gan_SquMatrix22_f), gan_eval((A)->type=t),\
00422 GAN_REP22L_AS_C((A)->,=0.0))
00423 #define GAN_ST22F_COPY(A,B,t)\
00424 (GAN_TEST_OP2(A,B,Gan_SquMatrix22_f,Gan_SquMatrix22_f),\
00425 assert((A)->type==t), gan_eval((B)->type=(A)->type),\
00426 GAN_REP22L_AA_C((B)->,=(A)->))
00427 #define GAN_ST22F_SCALE(A,a,B,t)\
00428 (GAN_TEST_OP2(A,B,Gan_SquMatrix22_f,Gan_SquMatrix22_f),\
00429 assert((A)->type==t), gan_eval((B)->type=(A)->type),\
00430 GAN_REP22L_AAS_C((B)->,=(A)->,*(a)))
00431 #define GAN_ST22F_DIVIDE(A,a,B,t)\
00432 (GAN_TEST_OP2(A,B,Gan_SquMatrix22_f,Gan_SquMatrix22_f),\
00433 assert((A)->type==t), gan_eval((B)->type=(A)->type),\
00434 GAN_REP22L_AAS_C((B)->,=(A)->,/(a)))
00435 #define GAN_ST22F_NEGATE(A,B,t)\
00436 (GAN_TEST_OP2(A,B,Gan_SquMatrix22_f,Gan_SquMatrix22_f),\
00437 assert((A)->type==t), gan_eval((B)->type=(A)->type),\
00438 GAN_REP22L_AA_C((B)->,=-(A)->))
00439 #define GAN_ST22F_ADD(A,B,C,t)\
00440 (GAN_TEST_OP3(A,B,C,Gan_SquMatrix22_f,Gan_SquMatrix22_f,Gan_SquMatrix22_f),\
00441 assert((A)->type==t && (B)->type==t), gan_eval((C)->type=(A)->type),\
00442 GAN_REP22L_AAA_C((C)->,=(A)->,+(B)->))
00443 #define GAN_ST22F_SUB(A,B,C,t)\
00444 (GAN_TEST_OP3(A,B,C,Gan_SquMatrix22_f,Gan_SquMatrix22_f,Gan_SquMatrix22_f),\
00445 assert((A)->type==t && (B)->type==t), gan_eval((C)->type=(A)->type),\
00446 GAN_REP22L_AAA_C((C)->,=(A)->,-(B)->))
00447
00448
00462
00463
00464
00465
00466
00467
00468
00469
00470
00471
00472
00473
00474
00475
00476
00477 #ifndef _GAN_2X2MATF_H
00478
00493 Gan_Matrix22_f *gan_mat22f_fill_q ( Gan_Matrix22_f *A,
00494 float XX, float XY, float YX, float YY );
00495
00516 void gan_mat22f_get_rows_q ( const Gan_Matrix22_f *A,
00517 Gan_Vector2_f *p, Gan_Vector2_f *q );
00518
00530 void gan_mat22f_get_cols_q ( const Gan_Matrix22_f *A,
00531 Gan_Vector2_f *p, Gan_Vector2_f *q );
00532
00538 #endif
00539
00540 #define GAN_MATTYPE Gan_Matrix22_f
00541 #define GAN_MATRIX_TYPE Gan_Matrix_f
00542 #define GAN_SQUMATRIX_TYPE Gan_SquMatrix_f
00543 #define GAN_VECTOR_TYPE Gan_Vector_f
00544 #define GAN_MAT_ELEMENT_TYPE GAN_FLOAT
00545 #define GAN_REALTYPE float
00546 #define GAN_FWRITE_LENDIAN gan_fwrite_lendian_f32
00547 #define GAN_FREAD_LENDIAN gan_fread_lendian_f32
00548 #define GAN_VECTYPE1 Gan_Vector2_f
00549 #define GAN_VECTYPE2 Gan_Vector2_f
00550 #define GAN_MATTYPEL Gan_Matrix22_f
00551 #define GAN_MATTYPER Gan_Matrix22_f
00552 #define GAN_SQUMATTYPEL Gan_SquMatrix22_f
00553 #define GAN_SQUMATTYPER Gan_SquMatrix22_f
00554 #define GAN_MAT_FPRINT gan_mat22f_fprint
00555 #define GAN_MAT_PRINT gan_mat22f_print
00556 #define GAN_MAT_FSCANF gan_mat22f_fscanf
00557 #define GAN_MAT_FWRITE gan_mat22f_fwrite
00558 #define GAN_MAT_FREAD gan_mat22f_fread
00559 #define GAN_MAT_ZERO_Q gan_mat22f_zero_q
00560 #define GAN_MAT_ZERO_S gan_mat22f_zero_s
00561 #define GAN_MAT_COPY_Q gan_mat22f_copy_q
00562 #define GAN_MAT_COPY_S gan_mat22f_copy_s
00563 #define GAN_MAT_SCALE_Q gan_mat22f_scale_q
00564 #define GAN_MAT_SCALE_I gan_mat22f_scale_i
00565 #define GAN_MAT_SCALE_S gan_mat22f_scale_s
00566 #define GAN_MAT_DIVIDE_Q gan_mat22f_divide_q
00567 #define GAN_MAT_DIVIDE_I gan_mat22f_divide_i
00568 #define GAN_MAT_DIVIDE_S gan_mat22f_divide_s
00569 #define GAN_MAT_NEGATE_Q gan_mat22f_negate_q
00570 #define GAN_MAT_NEGATE_I gan_mat22f_negate_i
00571 #define GAN_MAT_NEGATE_S gan_mat22f_negate_s
00572 #define GAN_MAT_UNIT_Q gan_mat22f_unit_q
00573 #define GAN_MAT_UNIT_I gan_mat22f_unit_i
00574 #define GAN_MAT_UNIT_S gan_mat22f_unit_s
00575 #define GAN_MAT_ADD_Q gan_mat22f_add_q
00576 #define GAN_MAT_ADD_I1 gan_mat22f_add_i1
00577 #define GAN_MAT_ADD_I2 gan_mat22f_add_i2
00578 #define GAN_MAT_INCREMENT gan_mat22f_increment
00579 #define GAN_MAT_ADD_S gan_mat22f_add_s
00580 #define GAN_MAT_SUB_Q gan_mat22f_sub_q
00581 #define GAN_MAT_SUB_I1 gan_mat22f_sub_i1
00582 #define GAN_MAT_SUB_I2 gan_mat22f_sub_i2
00583 #define GAN_MAT_DECREMENT gan_mat22f_decrement
00584 #define GAN_MAT_SUB_S gan_mat22f_sub_s
00585 #define GAN_VEC_OUTER_Q gan_vec22f_outer_q
00586 #define GAN_VEC_OUTER_S gan_vec22f_outer_s
00587 #define GAN_MAT_MULTV_Q gan_mat22f_multv2_q
00588 #define GAN_MAT_MULTV_S gan_mat22f_multv2_s
00589 #define GAN_MATT_MULTV_Q gan_mat22Tf_multv2_q
00590 #define GAN_MATT_MULTV_S gan_mat22Tf_multv2_s
00591 #define GAN_MAT_LMULTMT_Q gan_mat22f_lmultm22T_q
00592 #define GAN_MAT_LMULTMT_S gan_mat22f_lmultm22T_s
00593 #define GAN_MAT_RMULTM_Q gan_mat22f_rmultm22_q
00594 #define GAN_MAT_RMULTM_S gan_mat22f_rmultm22_s
00595 #define GAN_MAT_RMULTMT_Q gan_mat22f_rmultm22T_q
00596 #define GAN_MAT_RMULTMT_S gan_mat22f_rmultm22T_s
00597 #define GAN_MAT_LMULTMT_SYM_Q gan_mat22f_lmultm22T_sym_q
00598 #define GAN_MAT_LMULTMT_SYM_S gan_mat22f_lmultm22T_sym_s
00599 #define GAN_MAT_RMULTMT_SYM_Q gan_mat22f_rmultm22T_sym_q
00600 #define GAN_MAT_RMULTMT_SYM_S gan_mat22f_rmultm22T_sym_s
00601 #define GAN_MAT_SLMULTT_Q gan_mat22f_slmultT_q
00602 #define GAN_MAT_SLMULTT_S gan_mat22f_slmultT_s
00603 #define GAN_MAT_SRMULTT_Q gan_mat22f_srmultT_q
00604 #define GAN_MAT_SRMULTT_S gan_mat22f_srmultT_s
00605 #define GAN_MAT_LMULTS_Q gan_mat22f_lmults22_q
00606 #define GAN_MAT_LMULTS_S gan_mat22f_lmults22_s
00607 #define GAN_MAT_RMULTS_Q gan_mat22f_rmults22_q
00608 #define GAN_MAT_RMULTS_S gan_mat22f_rmults22_s
00609 #define GAN_SYMMATL_LRMULT_Q gan_symmat22f_lrmultm22T_q
00610 #define GAN_SYMMATL_LRMULT_S gan_symmat22f_lrmultm22T_s
00611 #define GAN_SYMMATR_LRMULT_Q gan_symmat22f_lrmultm22_q
00612 #define GAN_SYMMATR_LRMULT_S gan_symmat22f_lrmultm22_s
00613 #define GAN_MAT_LMULTL_Q gan_mat22f_lmultl22_q
00614 #define GAN_MAT_LMULTL_S gan_mat22f_lmultl22_s
00615 #define GAN_MAT_LMULTL_I gan_mat22f_lmultl22_i
00616 #define GAN_MAT_LMULTLI_Q gan_mat22f_lmultl22I_q
00617 #define GAN_MAT_LMULTLI_S gan_mat22f_lmultl22I_s
00618 #define GAN_MAT_LMULTLI_I gan_mat22f_lmultl22I_i
00619 #define GAN_MAT_LMULTLT_Q gan_mat22f_lmultl22T_q
00620 #define GAN_MAT_LMULTLT_S gan_mat22f_lmultl22T_s
00621 #define GAN_MAT_LMULTLT_I gan_mat22f_lmultl22T_i
00622 #define GAN_MAT_LMULTLIT_Q gan_mat22f_lmultl22IT_q
00623 #define GAN_MAT_LMULTLIT_S gan_mat22f_lmultl22IT_s
00624 #define GAN_MAT_LMULTLIT_I gan_mat22f_lmultl22IT_i
00625 #define GAN_MAT_RMULTL_Q gan_mat22f_rmultl22_q
00626 #define GAN_MAT_RMULTL_S gan_mat22f_rmultl22_s
00627 #define GAN_MAT_RMULTL_I gan_mat22f_rmultl22_i
00628 #define GAN_MAT_RMULTLI_Q gan_mat22f_rmultl22I_q
00629 #define GAN_MAT_RMULTLI_S gan_mat22f_rmultl22I_s
00630 #define GAN_MAT_RMULTLI_I gan_mat22f_rmultl22I_i
00631 #define GAN_MAT_RMULTLT_Q gan_mat22f_rmultl22T_q
00632 #define GAN_MAT_RMULTLT_S gan_mat22f_rmultl22T_s
00633 #define GAN_MAT_RMULTLT_I gan_mat22f_rmultl22T_i
00634 #define GAN_MAT_RMULTLIT_Q gan_mat22f_rmultl22IT_q
00635 #define GAN_MAT_RMULTLIT_S gan_mat22f_rmultl22IT_s
00636 #define GAN_MAT_RMULTLIT_I gan_mat22f_rmultl22IT_i
00637 #define GAN_MAT_SUMSQR_Q gan_mat22f_sumsqr_q
00638 #define GAN_MAT_SUMSQR_S gan_mat22f_sumsqr_s
00639 #define GAN_MAT_FNORM_Q gan_mat22f_Fnorm_q
00640 #define GAN_MAT_FNORM_S gan_mat22f_Fnorm_s
00641 #define GAN_MAT_FROM_MAT_Q gan_mat22f_from_matf_q
00642 #define GAN_MAT_FROM_MAT_S gan_mat22f_from_matf_s
00643 #define GAN_MAT_FROM_SQUMAT_Q gan_mat22f_from_squmatf_q
00644 #define GAN_MAT_FROM_SQUMAT_S gan_mat22f_from_squmatf_s
00645 #define GAN_SQUMAT_FROM_SQUMAT_Q gan_squmat22f_from_squmatf_q
00646 #define GAN_SQUMAT_FROM_SQUMAT_S gan_squmat22f_from_squmatf_s
00647
00648 #define GAN_SQUMAT_IDENT_Q gan_mat22f_ident_q
00649 #define GAN_SQUMAT_IDENT_S gan_mat22f_ident_s
00650 #define GAN_SQUMAT_TPOSE_Q gan_mat22f_tpose_q
00651 #define GAN_SQUMAT_TPOSE_S gan_mat22f_tpose_s
00652 #define GAN_SQUMAT_TPOSE_I gan_mat22f_tpose_i
00653 #define GAN_MAT_SADDT_Q gan_mat22f_saddT_q
00654 #define GAN_MAT_SADDT_S gan_mat22f_saddT_s
00655 #define GAN_SQUMAT_INVERT gan_mat22f_invert
00656 #define GAN_SQUMAT_INVERT_Q gan_mat22f_invert_q
00657 #define GAN_SQUMAT_INVERT_S gan_mat22f_invert_s
00658 #define GAN_SQUMAT_INVERT_I gan_mat22f_invert_i
00659 #define GAN_SQUMAT_ADJOINT_Q gan_mat22f_adjoint_q
00660 #define GAN_SQUMAT_ADJOINT_S gan_mat22f_adjoint_s
00661 #define GAN_SQUMAT_ADJOINTT_Q gan_mat22f_adjointT_q
00662 #define GAN_SQUMAT_ADJOINTT_S gan_mat22f_adjointT_s
00663 #define GAN_SQUMAT_DET_Q gan_mat22f_det_q
00664 #define GAN_SQUMAT_DET_S gan_mat22f_det_s
00665 #define GAN_SQUMAT_TRACE_Q gan_mat22f_trace_q
00666 #define GAN_SQUMAT_TRACE_S gan_mat22f_trace_s
00667
00668 #ifndef _GAN_2X2MATF_H
00669 #define _GAN_2X2MATF_H
00670
00671
00672 #endif
00673
00686
00687
00688
00689
00690
00691
00692
00693
00694
00695
00696
00697
00698
00699
00700
00701
00702
00703
00704
00705
00706
00707
00720 Gan_Matrix22_f *gan_mat22f_ident_q ( Gan_Matrix22_f *A );
00721
00739 Gan_Matrix22_f *gan_mat22f_tpose_q ( Gan_Matrix22_f *A, Gan_Matrix22_f *B );
00740
00758 Gan_SquMatrix22_f *gan_mat22f_saddT_q ( const Gan_Matrix22_f *A, Gan_SquMatrix22_f *B );
00759
00790 Gan_Matrix22_f *gan_mat22f_invert_q ( Gan_Matrix22_f *A, Gan_Matrix22_f *B );
00791
00800 Gan_Matrix22_f *gan_mat22f_invert_i ( Gan_Matrix22_f *A );
00801
00816 float gan_mat22f_det_q ( const Gan_Matrix22_f *A );
00817
00823 float gan_mat22f_trace_q ( const Gan_Matrix22_f *A );
00824
00830 #undef GAN_SQUMAT_IDENT_Q
00831 #undef GAN_SQUMAT_IDENT_S
00832 #undef GAN_SQUMAT_TPOSE_Q
00833 #undef GAN_SQUMAT_TPOSE_S
00834 #undef GAN_SQUMAT_TPOSE_I
00835 #undef GAN_MAT_SADDT_Q
00836 #undef GAN_MAT_SADDT_S
00837 #undef GAN_SQUMATI_MULTV_Q
00838 #undef GAN_SQUMATI_MULTV_S
00839 #undef GAN_SQUMATI_MULTV_I
00840 #undef GAN_SQUMATIT_MULTV_Q
00841 #undef GAN_SQUMATIT_MULTV_S
00842 #undef GAN_SQUMATIT_MULTV_I
00843 #undef GAN_SQUMAT_INVERT
00844 #undef GAN_SQUMAT_INVERT_Q
00845 #undef GAN_SQUMAT_INVERT_S
00846 #undef GAN_SQUMAT_INVERT_I
00847 #undef GAN_SQUMAT_ADJOINT_Q
00848 #undef GAN_SQUMAT_ADJOINT_S
00849 #undef GAN_SQUMAT_ADJOINTT_Q
00850 #undef GAN_SQUMAT_ADJOINTT_S
00851 #undef GAN_SQUMAT_DET_Q
00852 #undef GAN_SQUMAT_DET_S
00853 #undef GAN_SQUMAT_TRACE_Q
00854 #undef GAN_SQUMAT_TRACE_S
00855
00868
00869
00870
00871
00872
00873
00874
00875
00876
00877
00878
00879
00880
00881
00882
00883
00884
00885
00886
00887
00888
00899 Gan_Matrix22_f *gan_mat22f_zero_q ( const Gan_Matrix22_f *A );
00900
00917 Gan_Matrix22_f *gan_mat22f_copy_q ( Gan_Matrix22_f *A, Gan_Matrix22_f *B );
00918
00936 Gan_Matrix22_f *gan_mat22f_scale_q ( Gan_Matrix22_f *A, float a,
00937 Gan_Matrix22_f *B );
00938
00946 Gan_Matrix22_f *gan_mat22f_scale_i ( Gan_Matrix22_f *A, float a );
00947
00956 Gan_Matrix22_f *gan_mat22f_divide_q ( Gan_Matrix22_f *A, float a,
00957 Gan_Matrix22_f *B );
00958
00966 Gan_Matrix22_f *gan_mat22f_divide_i ( Gan_Matrix22_f *A, float a );
00967
00975 Gan_Matrix22_f *gan_mat22f_negate_q ( Gan_Matrix22_f *A, Gan_Matrix22_f *B );
00976
00984 Gan_Matrix22_f *gan_mat22f_negate_i ( Gan_Matrix22_f *A );
00985
00993 Gan_Matrix22_f *gan_mat22f_unit_i ( Gan_Matrix22_f *A );
00994
01012 Gan_Matrix22_f *gan_mat22f_add_q ( Gan_Matrix22_f *A, Gan_Matrix22_f *B, Gan_Matrix22_f *C );
01013
01022 Gan_Matrix22_f *gan_mat22f_add_i1 ( Gan_Matrix22_f *A, Gan_Matrix22_f *B );
01023
01032 Gan_Matrix22_f *gan_mat22f_add_i2 ( Gan_Matrix22_f *A, Gan_Matrix22_f *B );
01033
01042 Gan_Matrix22_f *gan_mat22f_increment ( Gan_Matrix22_f *A, Gan_Matrix22_f *B );
01043
01061 Gan_Matrix22_f *gan_mat22f_sub_q ( Gan_Matrix22_f *A, Gan_Matrix22_f *B, Gan_Matrix22_f *C );
01062
01071 Gan_Matrix22_f *gan_mat22f_sub_i1 ( Gan_Matrix22_f *A, Gan_Matrix22_f *B );
01072
01081 Gan_Matrix22_f *gan_mat22f_sub_i2 ( Gan_Matrix22_f *A, Gan_Matrix22_f *B );
01082
01091 Gan_Matrix22_f *gan_mat22f_decrement ( Gan_Matrix22_f *A, Gan_Matrix22_f *B );
01092
01110 Gan_Matrix22_f *gan_vec22f_outer_q ( const Gan_Vector2_f *p, const Gan_Vector2_f *q,
01111 Gan_Matrix22_f *A );
01112
01121 Gan_Vector2_f *gan_mat22f_multv2_q ( const Gan_Matrix22_f *A, Gan_Vector2_f *p,
01122 Gan_Vector2_f *q );
01123
01124
01133 Gan_Vector2_f *gan_mat22Tf_multv2_q ( const Gan_Matrix22_f *A, Gan_Vector2_f *p,
01134 Gan_Vector2_f *q );
01135
01136
01156 Gan_Matrix22_f *gan_mat22f_lmultm22T_q ( Gan_Matrix22_f *A, const Gan_Matrix22_f *B,
01157 Gan_Matrix22_f *C );
01158
01168 Gan_Matrix22_f *gan_mat22f_rmultm22_q ( Gan_Matrix22_f *A, const Gan_Matrix22_f *B,
01169 Gan_Matrix22_f *C );
01170
01180 Gan_Matrix22_f *gan_mat22f_rmultm22T_q ( Gan_Matrix22_f *A, const Gan_Matrix22_f *B,
01181 Gan_Matrix22_f *C );
01182
01194 Gan_SquMatrix22_f *gan_mat22f_lmultm22T_sym_q ( const Gan_Matrix22_f *A, const Gan_Matrix22_f *B,
01195 Gan_SquMatrix22_f *C );
01196
01208 Gan_SquMatrix22_f *gan_mat22f_rmultm22T_sym_q ( const Gan_Matrix22_f *A, const Gan_Matrix22_f *B,
01209 Gan_SquMatrix22_f *C );
01210
01219 Gan_Matrix22_f *gan_mat22f_lmults22_q ( Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B,
01220 Gan_Matrix22_f *C );
01221
01230 Gan_Matrix22_f *gan_mat22f_rmults22_q ( Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B,
01231 Gan_Matrix22_f *C );
01232
01252 Gan_SquMatrix22_f *gan_symmat22f_lrmultm22T_q ( const Gan_SquMatrix22_f *A, const Gan_Matrix22_f *B,
01253 const Gan_Matrix22_f *C, Gan_SquMatrix22_f *D );
01254
01265 Gan_SquMatrix22_f *gan_symmat22f_lrmultm22_q ( const Gan_SquMatrix22_f *A, const Gan_Matrix22_f *B,
01266 const Gan_Matrix22_f *C, Gan_SquMatrix22_f *D );
01267
01286 Gan_Matrix22_f *gan_mat22f_lmultl22_q ( Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B,
01287 Gan_Matrix22_f *C );
01288
01298 Gan_Matrix22_f *gan_mat22f_lmultl22I_q ( Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B,
01299 Gan_Matrix22_f *C );
01300
01310 Gan_Matrix22_f *gan_mat22f_lmultl22T_q ( Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B,
01311 Gan_Matrix22_f *C );
01312
01322 Gan_Matrix22_f *gan_mat22f_lmultl22IT_q ( Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B,
01323 Gan_Matrix22_f *C );
01324
01334 Gan_Matrix22_f *gan_mat22f_rmultl22_q ( Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B,
01335 Gan_Matrix22_f *C );
01336
01346 Gan_Matrix22_f *gan_mat22f_rmultl22I_q ( Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B,
01347 Gan_Matrix22_f *C );
01348
01358 Gan_Matrix22_f *gan_mat22f_rmultl22T_q ( Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B,
01359 Gan_Matrix22_f *C );
01360
01370 Gan_Matrix22_f *gan_mat22f_rmultl22IT_q ( Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B,
01371 Gan_Matrix22_f *C );
01372
01382 Gan_Matrix22_f *gan_mat22f_lmultl22_i ( Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B );
01383
01393 Gan_Matrix22_f *gan_mat22f_lmultl22I_i ( Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B );
01394
01404 Gan_Matrix22_f *gan_mat22f_lmultl22T_i ( Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B );
01405
01415 Gan_Matrix22_f *gan_mat22f_lmultl22IT_i ( Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B );
01416
01426 Gan_Matrix22_f *gan_mat22f_rmultl22_i ( Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B );
01427
01437 Gan_Matrix22_f *gan_mat22f_rmultl22I_i ( Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B );
01438
01448 Gan_Matrix22_f *gan_mat22f_rmultl22T_i ( Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B );
01449
01459 Gan_Matrix22_f *gan_mat22f_rmultl22IT_i ( Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B );
01460
01469 Gan_SquMatrix22_f *gan_mat22f_slmultT_q ( Gan_Matrix22_f *A, const Gan_SquMatrix22_f *B );
01470
01471
01480 Gan_SquMatrix22_f *gan_mat22f_srmultT_q ( const Gan_Matrix22_f *A, Gan_SquMatrix22_f *B );
01481
01482
01497 float gan_mat22f_sumsqr_q ( const Gan_Matrix22_f *A );
01498
01505 float gan_mat22f_Fnorm_q ( const Gan_Matrix22_f *A );
01506
01516 Gan_Matrix22_f *gan_mat22f_from_matf_q ( const Gan_Matrix_f *A, Gan_Matrix22_f *B );
01517
01518 Gan_Matrix22_f *gan_mat22f_from_squmatf_q ( const Gan_SquMatrix_f *A, Gan_Matrix22_f *B );
01519
01520 Gan_SquMatrix22_f *gan_squmat22f_from_squmatf_q ( const Gan_SquMatrix_f *A,
01521 Gan_SquMatrix22_f *B );
01522
01541
01542
01543
01544
01545
01546
01547
01548
01549
01550
01551
01552
01553
01554
01555
01556 #undef GAN_MATTYPE
01557 #undef GAN_MATRIX_TYPE
01558 #undef GAN_SQUMATRIX_TYPE
01559 #undef GAN_VECTOR_TYPE
01560 #undef GAN_MAT_ELEMENT_TYPE
01561 #undef GAN_REALTYPE
01562 #undef GAN_FWRITE_LENDIAN
01563 #undef GAN_FREAD_LENDIAN
01564 #undef GAN_VECTYPE1
01565 #undef GAN_VECTYPE2
01566 #undef GAN_MATTYPEL
01567 #undef GAN_MATTYPER
01568 #undef GAN_SQUMATTYPEL
01569 #undef GAN_SQUMATTYPER
01570 #undef GAN_FIXED_MATRIX_TYPE
01571 #undef GAN_MAT_FPRINT
01572 #undef GAN_MAT_PRINT
01573 #undef GAN_MAT_FSCANF
01574 #undef GAN_MAT_FWRITE
01575 #undef GAN_MAT_FREAD
01576 #undef GAN_MAT_ZERO_Q
01577 #undef GAN_MAT_ZERO_S
01578 #undef GAN_MAT_COPY_Q
01579 #undef GAN_MAT_COPY_S
01580 #undef GAN_MAT_SCALE_Q
01581 #undef GAN_MAT_SCALE_S
01582 #undef GAN_MAT_SCALE_I
01583 #undef GAN_MAT_DIVIDE_Q
01584 #undef GAN_MAT_DIVIDE_S
01585 #undef GAN_MAT_DIVIDE_I
01586 #undef GAN_MAT_NEGATE_Q
01587 #undef GAN_MAT_NEGATE_S
01588 #undef GAN_MAT_NEGATE_I
01589 #undef GAN_MAT_UNIT_Q
01590 #undef GAN_MAT_UNIT_S
01591 #undef GAN_MAT_UNIT_I
01592 #undef GAN_MAT_ADD_Q
01593 #undef GAN_MAT_ADD_I1
01594 #undef GAN_MAT_ADD_I2
01595 #undef GAN_MAT_INCREMENT
01596 #undef GAN_MAT_ADD_S
01597 #undef GAN_MAT_SUB_Q
01598 #undef GAN_MAT_SUB_I1
01599 #undef GAN_MAT_SUB_I2
01600 #undef GAN_MAT_DECREMENT
01601 #undef GAN_MAT_SUB_S
01602 #undef GAN_VEC_OUTER_Q
01603 #undef GAN_VEC_OUTER_S
01604 #undef GAN_MAT_MULTV_Q
01605 #undef GAN_MAT_MULTV_S
01606 #undef GAN_MAT_MULTV_I
01607 #undef GAN_MATT_MULTV_Q
01608 #undef GAN_MATT_MULTV_S
01609 #undef GAN_MATT_MULTV_I
01610 #undef GAN_MAT_LMULTM_Q
01611 #undef GAN_MAT_LMULTM_S
01612 #undef GAN_MAT_LMULTMT_Q
01613 #undef GAN_MAT_LMULTMT_S
01614 #undef GAN_MAT_RMULTM_Q
01615 #undef GAN_MAT_RMULTM_S
01616 #undef GAN_MAT_RMULTMT_Q
01617 #undef GAN_MAT_RMULTMT_S
01618 #undef GAN_MAT_LMULTMT_SYM_Q
01619 #undef GAN_MAT_LMULTMT_SYM_S
01620 #undef GAN_MAT_RMULTMT_SYM_Q
01621 #undef GAN_MAT_RMULTMT_SYM_S
01622 #undef GAN_MAT_LMULTS_Q
01623 #undef GAN_MAT_LMULTS_S
01624 #undef GAN_MAT_RMULTS_Q
01625 #undef GAN_MAT_RMULTS_S
01626 #undef GAN_SYMMATL_LRMULT_Q
01627 #undef GAN_SYMMATL_LRMULT_S
01628 #undef GAN_SYMMATR_LRMULT_Q
01629 #undef GAN_SYMMATR_LRMULT_S
01630 #undef GAN_MAT_LMULTL_Q
01631 #undef GAN_MAT_LMULTL_S
01632 #undef GAN_MAT_LMULTL_I
01633 #undef GAN_MAT_LMULTLI_Q
01634 #undef GAN_MAT_LMULTLI_S
01635 #undef GAN_MAT_LMULTLI_I
01636 #undef GAN_MAT_LMULTLT_Q
01637 #undef GAN_MAT_LMULTLT_S
01638 #undef GAN_MAT_LMULTLT_I
01639 #undef GAN_MAT_LMULTLIT_Q
01640 #undef GAN_MAT_LMULTLIT_S
01641 #undef GAN_MAT_LMULTLIT_I
01642 #undef GAN_MAT_RMULTL_Q
01643 #undef GAN_MAT_RMULTL_S
01644 #undef GAN_MAT_RMULTL_I
01645 #undef GAN_MAT_RMULTLI_Q
01646 #undef GAN_MAT_RMULTLI_S
01647 #undef GAN_MAT_RMULTLI_I
01648 #undef GAN_MAT_RMULTLT_Q
01649 #undef GAN_MAT_RMULTLT_S
01650 #undef GAN_MAT_RMULTLT_I
01651 #undef GAN_MAT_RMULTLIT_Q
01652 #undef GAN_MAT_RMULTLIT_S
01653 #undef GAN_MAT_RMULTLIT_I
01654 #undef GAN_MAT_SRMULTT_Q
01655 #undef GAN_MAT_SRMULTT_S
01656 #undef GAN_MAT_SRMULTT_I
01657 #undef GAN_MAT_SLMULTT_Q
01658 #undef GAN_MAT_SLMULTT_S
01659 #undef GAN_MAT_SLMULTT_I
01660 #undef GAN_MAT_RMULTLIT_S
01661 #undef GAN_MAT_SUMSQR_Q
01662 #undef GAN_MAT_SUMSQR_S
01663 #undef GAN_MAT_FNORM_Q
01664 #undef GAN_MAT_FNORM_S
01665 #undef GAN_MAT_FROM_MAT_Q
01666 #undef GAN_MAT_FROM_MAT_S
01667 #undef GAN_MAT_FROM_SQUMAT_Q
01668 #undef GAN_MAT_FROM_SQUMAT_S
01669 #undef GAN_SQUMAT_FROM_SQUMAT_Q
01670 #undef GAN_SQUMAT_FROM_SQUMAT_S
01671
01672
01686
01687
01688
01689
01690
01691
01692
01693
01694
01695
01696
01697
01698
01699
01700
01701 #ifndef _GAN_2X2SYMMATF_H
01702
01718 Gan_SquMatrix22_f *gan_symmat22f_fill_q ( Gan_SquMatrix22_f *A,
01719 float XX, float YX, float YY );
01720
01726 #endif
01727
01728 #define GAN_MATTYPE Gan_SquMatrix22_f
01729 #define GAN_MATRIX_TYPE Gan_SquMatrix_f
01730 #define GAN_SQUMATRIX_TYPE Gan_SquMatrix_f
01731 #define GAN_VECTOR_TYPE Gan_Vector_f
01732 #define GAN_MAT_ELEMENT_TYPE GAN_FLOAT
01733 #define GAN_REALTYPE float
01734 #define GAN_FWRITE_LENDIAN gan_fwrite_lendian_f32
01735 #define GAN_FREAD_LENDIAN gan_fread_lendian_f32
01736 #define GAN_VECTYPE1 Gan_Vector2_f
01737 #define GAN_VECTYPE2 Gan_Vector2_f
01738 #define GAN_FIXED_MATRIX_TYPE GAN_SYMMETRIC_MATRIX22_F
01739 #define GAN_MAT_FPRINT gan_symmat22f_fprint
01740 #define GAN_MAT_PRINT gan_symmat22f_print
01741 #define GAN_MAT_FSCANF gan_symmat22f_fscanf
01742 #define GAN_MAT_FWRITE gan_symmat22f_fwrite
01743 #define GAN_MAT_FREAD gan_symmat22f_fread
01744 #define GAN_MAT_ZERO_Q gan_symmat22f_zero_q
01745 #define GAN_MAT_ZERO_S gan_symmat22f_zero_s
01746 #define GAN_MAT_COPY_Q gan_symmat22f_copy_q
01747 #define GAN_MAT_COPY_S gan_symmat22f_copy_s
01748 #define GAN_MAT_SCALE_Q gan_symmat22f_scale_q
01749 #define GAN_MAT_SCALE_S gan_symmat22f_scale_s
01750 #define GAN_MAT_SCALE_I gan_symmat22f_scale_i
01751 #define GAN_MAT_DIVIDE_Q gan_symmat22f_divide_q
01752 #define GAN_MAT_DIVIDE_S gan_symmat22f_divide_s
01753 #define GAN_MAT_DIVIDE_I gan_symmat22f_divide_i
01754 #define GAN_MAT_NEGATE_Q gan_symmat22f_negate_q
01755 #define GAN_MAT_NEGATE_S gan_symmat22f_negate_s
01756 #define GAN_MAT_NEGATE_I gan_symmat22f_negate_i
01757 #define GAN_MAT_UNIT_Q gan_symmat22f_unit_q
01758 #define GAN_MAT_UNIT_S gan_symmat22f_unit_s
01759 #define GAN_MAT_UNIT_I gan_symmat22f_unit_i
01760 #define GAN_MAT_ADD_Q gan_symmat22f_add_q
01761 #define GAN_MAT_ADD_I1 gan_symmat22f_add_i1
01762 #define GAN_MAT_ADD_I2 gan_symmat22f_add_i2
01763 #define GAN_MAT_INCREMENT gan_symmat22f_increment
01764 #define GAN_MAT_ADD_S gan_symmat22f_add_s
01765 #define GAN_MAT_SUB_Q gan_symmat22f_sub_q
01766 #define GAN_MAT_SUB_I1 gan_symmat22f_sub_i1
01767 #define GAN_MAT_SUB_I2 gan_symmat22f_sub_i2
01768 #define GAN_MAT_DECREMENT gan_symmat22f_decrement
01769 #define GAN_MAT_SUB_S gan_symmat22f_sub_s
01770 #define GAN_MAT_MULTV_Q gan_symmat22f_multv2_q
01771 #define GAN_MAT_MULTV_S gan_symmat22f_multv2_s
01772 #define GAN_MAT_SUMSQR_Q gan_symmat22f_sumsqr_q
01773 #define GAN_MAT_SUMSQR_S gan_symmat22f_sumsqr_s
01774 #define GAN_MAT_FNORM_Q gan_symmat22f_Fnorm_q
01775 #define GAN_MAT_FNORM_S gan_symmat22f_Fnorm_s
01776
01777 #define GAN_SQUMAT_IDENT_Q gan_symmat22f_ident_q
01778 #define GAN_SQUMAT_IDENT_S gan_symmat22f_ident_s
01779 #define GAN_SQUMAT_INVERT gan_symmat22f_invert
01780 #define GAN_SQUMAT_INVERT_Q gan_symmat22f_invert_q
01781 #define GAN_SQUMAT_INVERT_S gan_symmat22f_invert_s
01782 #define GAN_SQUMAT_INVERT_I gan_symmat22f_invert_i
01783 #define GAN_SQUMAT_DET_Q gan_symmat22f_det_q
01784 #define GAN_SQUMAT_DET_S gan_symmat22f_det_s
01785 #define GAN_SQUMAT_TRACE_Q gan_symmat22f_trace_q
01786 #define GAN_SQUMAT_TRACE_S gan_symmat22f_trace_s
01787
01788 #define GAN_VEC_OUTER_SYM_Q gan_vec22f_outer_sym_q
01789 #define GAN_VEC_OUTER_SYM_S gan_vec22f_outer_sym_s
01790 #define GAN_SYMMAT_CHOLESKY gan_symmat22f_cholesky
01791 #define GAN_SYMMAT_CHOLESKY_Q gan_symmat22f_cholesky_q
01792 #define GAN_SYMMAT_CHOLESKY_S gan_symmat22f_cholesky_s
01793 #define GAN_SYMMAT_CHOLESKY_I gan_symmat22f_cholesky_i
01794
01795 #ifndef _GAN_2X2SYMMATF_H
01796 #define _GAN_2X2SYMMATF_H
01797
01798
01799 #endif
01800
01813
01814
01815
01816
01817
01818
01819
01820
01821
01822
01823
01824
01825
01826
01827
01828
01829
01830
01831
01832
01833
01834
01845 Gan_SquMatrix22_f *gan_vec22f_outer_sym_q ( const Gan_Vector2_f *p, Gan_SquMatrix22_f *A );
01846
01868 Gan_SquMatrix22_f *gan_symmat22f_cholesky_q ( Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B );
01869
01878 Gan_SquMatrix22_f *gan_symmat22f_cholesky_i ( Gan_SquMatrix22_f *A );
01879
01885 #undef GAN_VEC_OUTER_SYM_Q
01886 #undef GAN_VEC_OUTER_SYM_S
01887 #undef GAN_SYMMAT_CHOLESKY
01888 #undef GAN_SYMMAT_CHOLESKY_Q
01889 #undef GAN_SYMMAT_CHOLESKY_S
01890 #undef GAN_SYMMAT_CHOLESKY_I
01891
01904
01905
01906
01907
01908
01909
01910
01911
01912
01913
01914
01915
01916
01917
01918
01919
01920
01921
01922
01923
01924
01925
01938 Gan_SquMatrix22_f *gan_symmat22f_ident_q ( Gan_SquMatrix22_f *A );
01939
01990 Gan_SquMatrix22_f *gan_symmat22f_invert_q ( Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B );
01991
02000 Gan_SquMatrix22_f *gan_symmat22f_invert_i ( Gan_SquMatrix22_f *A );
02001
02016 float gan_symmat22f_det_q ( const Gan_SquMatrix22_f *A );
02017
02023 float gan_symmat22f_trace_q ( const Gan_SquMatrix22_f *A );
02024
02030 #undef GAN_SQUMAT_IDENT_Q
02031 #undef GAN_SQUMAT_IDENT_S
02032 #undef GAN_SQUMAT_TPOSE_Q
02033 #undef GAN_SQUMAT_TPOSE_S
02034 #undef GAN_SQUMAT_TPOSE_I
02035 #undef GAN_MAT_SADDT_Q
02036 #undef GAN_MAT_SADDT_S
02037 #undef GAN_SQUMATI_MULTV_Q
02038 #undef GAN_SQUMATI_MULTV_S
02039 #undef GAN_SQUMATI_MULTV_I
02040 #undef GAN_SQUMATIT_MULTV_Q
02041 #undef GAN_SQUMATIT_MULTV_S
02042 #undef GAN_SQUMATIT_MULTV_I
02043 #undef GAN_SQUMAT_INVERT
02044 #undef GAN_SQUMAT_INVERT_Q
02045 #undef GAN_SQUMAT_INVERT_S
02046 #undef GAN_SQUMAT_INVERT_I
02047 #undef GAN_SQUMAT_ADJOINT_Q
02048 #undef GAN_SQUMAT_ADJOINT_S
02049 #undef GAN_SQUMAT_ADJOINTT_Q
02050 #undef GAN_SQUMAT_ADJOINTT_S
02051 #undef GAN_SQUMAT_DET_Q
02052 #undef GAN_SQUMAT_DET_S
02053 #undef GAN_SQUMAT_TRACE_Q
02054 #undef GAN_SQUMAT_TRACE_S
02055
02068
02069
02070
02071
02072
02073
02074
02075
02076
02077
02078
02079
02080
02081
02082
02083
02084
02085
02086
02087
02088
02099 Gan_SquMatrix22_f *gan_symmat22f_zero_q ( const Gan_SquMatrix22_f *A );
02100
02117 Gan_SquMatrix22_f *gan_symmat22f_copy_q ( Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B );
02118
02136 Gan_SquMatrix22_f *gan_symmat22f_scale_q ( Gan_SquMatrix22_f *A, float a,
02137 Gan_SquMatrix22_f *B );
02138
02146 Gan_SquMatrix22_f *gan_symmat22f_scale_i ( Gan_SquMatrix22_f *A, float a );
02147
02156 Gan_SquMatrix22_f *gan_symmat22f_divide_q ( Gan_SquMatrix22_f *A, float a,
02157 Gan_SquMatrix22_f *B );
02158
02166 Gan_SquMatrix22_f *gan_symmat22f_divide_i ( Gan_SquMatrix22_f *A, float a );
02167
02175 Gan_SquMatrix22_f *gan_symmat22f_negate_q ( Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B );
02176
02184 Gan_SquMatrix22_f *gan_symmat22f_negate_i ( Gan_SquMatrix22_f *A );
02185
02193 Gan_SquMatrix22_f *gan_symmat22f_unit_i ( Gan_SquMatrix22_f *A );
02194
02212 Gan_SquMatrix22_f *gan_symmat22f_add_q ( Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B, Gan_SquMatrix22_f *C );
02213
02222 Gan_SquMatrix22_f *gan_symmat22f_add_i1 ( Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B );
02223
02232 Gan_SquMatrix22_f *gan_symmat22f_add_i2 ( Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B );
02233
02242 Gan_SquMatrix22_f *gan_symmat22f_increment ( Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B );
02243
02261 Gan_SquMatrix22_f *gan_symmat22f_sub_q ( Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B, Gan_SquMatrix22_f *C );
02262
02271 Gan_SquMatrix22_f *gan_symmat22f_sub_i1 ( Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B );
02272
02281 Gan_SquMatrix22_f *gan_symmat22f_sub_i2 ( Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B );
02282
02291 Gan_SquMatrix22_f *gan_symmat22f_decrement ( Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B );
02292
02311 Gan_Vector2_f *gan_symmat22f_multv2_q ( const Gan_SquMatrix22_f *A, Gan_Vector2_f *p,
02312 Gan_Vector2_f *q );
02313
02314
02315
02316
02388 float gan_symmat22f_sumsqr_q ( const Gan_SquMatrix22_f *A );
02389
02396 float gan_symmat22f_Fnorm_q ( const Gan_SquMatrix22_f *A );
02397
02428
02429
02430
02431
02432
02433
02434
02435
02436
02437
02438
02439
02440
02441
02442
02443 #undef GAN_MATTYPE
02444 #undef GAN_MATRIX_TYPE
02445 #undef GAN_SQUMATRIX_TYPE
02446 #undef GAN_VECTOR_TYPE
02447 #undef GAN_MAT_ELEMENT_TYPE
02448 #undef GAN_REALTYPE
02449 #undef GAN_FWRITE_LENDIAN
02450 #undef GAN_FREAD_LENDIAN
02451 #undef GAN_VECTYPE1
02452 #undef GAN_VECTYPE2
02453 #undef GAN_MATTYPEL
02454 #undef GAN_MATTYPER
02455 #undef GAN_SQUMATTYPEL
02456 #undef GAN_SQUMATTYPER
02457 #undef GAN_FIXED_MATRIX_TYPE
02458 #undef GAN_MAT_FPRINT
02459 #undef GAN_MAT_PRINT
02460 #undef GAN_MAT_FSCANF
02461 #undef GAN_MAT_FWRITE
02462 #undef GAN_MAT_FREAD
02463 #undef GAN_MAT_ZERO_Q
02464 #undef GAN_MAT_ZERO_S
02465 #undef GAN_MAT_COPY_Q
02466 #undef GAN_MAT_COPY_S
02467 #undef GAN_MAT_SCALE_Q
02468 #undef GAN_MAT_SCALE_S
02469 #undef GAN_MAT_SCALE_I
02470 #undef GAN_MAT_DIVIDE_Q
02471 #undef GAN_MAT_DIVIDE_S
02472 #undef GAN_MAT_DIVIDE_I
02473 #undef GAN_MAT_NEGATE_Q
02474 #undef GAN_MAT_NEGATE_S
02475 #undef GAN_MAT_NEGATE_I
02476 #undef GAN_MAT_UNIT_Q
02477 #undef GAN_MAT_UNIT_S
02478 #undef GAN_MAT_UNIT_I
02479 #undef GAN_MAT_ADD_Q
02480 #undef GAN_MAT_ADD_I1
02481 #undef GAN_MAT_ADD_I2
02482 #undef GAN_MAT_INCREMENT
02483 #undef GAN_MAT_ADD_S
02484 #undef GAN_MAT_SUB_Q
02485 #undef GAN_MAT_SUB_I1
02486 #undef GAN_MAT_SUB_I2
02487 #undef GAN_MAT_DECREMENT
02488 #undef GAN_MAT_SUB_S
02489 #undef GAN_VEC_OUTER_Q
02490 #undef GAN_VEC_OUTER_S
02491 #undef GAN_MAT_MULTV_Q
02492 #undef GAN_MAT_MULTV_S
02493 #undef GAN_MAT_MULTV_I
02494 #undef GAN_MATT_MULTV_Q
02495 #undef GAN_MATT_MULTV_S
02496 #undef GAN_MATT_MULTV_I
02497 #undef GAN_MAT_LMULTM_Q
02498 #undef GAN_MAT_LMULTM_S
02499 #undef GAN_MAT_LMULTMT_Q
02500 #undef GAN_MAT_LMULTMT_S
02501 #undef GAN_MAT_RMULTM_Q
02502 #undef GAN_MAT_RMULTM_S
02503 #undef GAN_MAT_RMULTMT_Q
02504 #undef GAN_MAT_RMULTMT_S
02505 #undef GAN_MAT_LMULTMT_SYM_Q
02506 #undef GAN_MAT_LMULTMT_SYM_S
02507 #undef GAN_MAT_RMULTMT_SYM_Q
02508 #undef GAN_MAT_RMULTMT_SYM_S
02509 #undef GAN_MAT_LMULTS_Q
02510 #undef GAN_MAT_LMULTS_S
02511 #undef GAN_MAT_RMULTS_Q
02512 #undef GAN_MAT_RMULTS_S
02513 #undef GAN_SYMMATL_LRMULT_Q
02514 #undef GAN_SYMMATL_LRMULT_S
02515 #undef GAN_SYMMATR_LRMULT_Q
02516 #undef GAN_SYMMATR_LRMULT_S
02517 #undef GAN_MAT_LMULTL_Q
02518 #undef GAN_MAT_LMULTL_S
02519 #undef GAN_MAT_LMULTL_I
02520 #undef GAN_MAT_LMULTLI_Q
02521 #undef GAN_MAT_LMULTLI_S
02522 #undef GAN_MAT_LMULTLI_I
02523 #undef GAN_MAT_LMULTLT_Q
02524 #undef GAN_MAT_LMULTLT_S
02525 #undef GAN_MAT_LMULTLT_I
02526 #undef GAN_MAT_LMULTLIT_Q
02527 #undef GAN_MAT_LMULTLIT_S
02528 #undef GAN_MAT_LMULTLIT_I
02529 #undef GAN_MAT_RMULTL_Q
02530 #undef GAN_MAT_RMULTL_S
02531 #undef GAN_MAT_RMULTL_I
02532 #undef GAN_MAT_RMULTLI_Q
02533 #undef GAN_MAT_RMULTLI_S
02534 #undef GAN_MAT_RMULTLI_I
02535 #undef GAN_MAT_RMULTLT_Q
02536 #undef GAN_MAT_RMULTLT_S
02537 #undef GAN_MAT_RMULTLT_I
02538 #undef GAN_MAT_RMULTLIT_Q
02539 #undef GAN_MAT_RMULTLIT_S
02540 #undef GAN_MAT_RMULTLIT_I
02541 #undef GAN_MAT_SRMULTT_Q
02542 #undef GAN_MAT_SRMULTT_S
02543 #undef GAN_MAT_SRMULTT_I
02544 #undef GAN_MAT_SLMULTT_Q
02545 #undef GAN_MAT_SLMULTT_S
02546 #undef GAN_MAT_SLMULTT_I
02547 #undef GAN_MAT_RMULTLIT_S
02548 #undef GAN_MAT_SUMSQR_Q
02549 #undef GAN_MAT_SUMSQR_S
02550 #undef GAN_MAT_FNORM_Q
02551 #undef GAN_MAT_FNORM_S
02552 #undef GAN_MAT_FROM_MAT_Q
02553 #undef GAN_MAT_FROM_MAT_S
02554 #undef GAN_MAT_FROM_SQUMAT_Q
02555 #undef GAN_MAT_FROM_SQUMAT_S
02556 #undef GAN_SQUMAT_FROM_SQUMAT_Q
02557 #undef GAN_SQUMAT_FROM_SQUMAT_S
02558
02559
02573
02574
02575
02576
02577
02578
02579
02580
02581
02582
02583
02584
02585
02586
02587
02588 #ifndef _GAN_2X2LTMATF_H
02589
02605 Gan_SquMatrix22_f *gan_ltmat22f_fill_q ( Gan_SquMatrix22_f *A,
02606 float XX, float YX, float YY );
02607
02613 #endif
02614
02615 #define GAN_MATTYPE Gan_SquMatrix22_f
02616 #define GAN_MATRIX_TYPE Gan_SquMatrix_f
02617 #define GAN_SQUMATRIX_TYPE Gan_SquMatrix_f
02618 #define GAN_VECTOR_TYPE Gan_Vector_f
02619 #define GAN_MAT_ELEMENT_TYPE GAN_FLOAT
02620 #define GAN_REALTYPE float
02621 #define GAN_FWRITE_LENDIAN gan_fwrite_lendian_f32
02622 #define GAN_FREAD_LENDIAN gan_fread_lendian_f32
02623 #define GAN_VECTYPE1 Gan_Vector2_f
02624 #define GAN_VECTYPE2 Gan_Vector2_f
02625 #define GAN_SQUMATTYPEL Gan_SquMatrix22_f
02626 #define GAN_SQUMATTYPER Gan_SquMatrix22_f
02627 #define GAN_FIXED_MATRIX_TYPE GAN_LOWER_TRI_MATRIX22_F
02628 #define GAN_MAT_FPRINT gan_ltmat22f_fprint
02629 #define GAN_MAT_PRINT gan_ltmat22f_print
02630 #define GAN_MAT_FSCANF gan_ltmat22f_fscanf
02631 #define GAN_MAT_FWRITE gan_ltmat22f_fwrite
02632 #define GAN_MAT_FREAD gan_ltmat22f_fread
02633 #define GAN_MAT_ZERO_Q gan_ltmat22f_zero_q
02634 #define GAN_MAT_ZERO_S gan_ltmat22f_zero_s
02635 #define GAN_MAT_COPY_Q gan_ltmat22f_copy_q
02636 #define GAN_MAT_COPY_S gan_ltmat22f_copy_s
02637 #define GAN_MAT_SCALE_Q gan_ltmat22f_scale_q
02638 #define GAN_MAT_SCALE_S gan_ltmat22f_scale_s
02639 #define GAN_MAT_SCALE_I gan_ltmat22f_scale_i
02640 #define GAN_MAT_DIVIDE_Q gan_ltmat22f_divide_q
02641 #define GAN_MAT_DIVIDE_S gan_ltmat22f_divide_s
02642 #define GAN_MAT_DIVIDE_I gan_ltmat22f_divide_i
02643 #define GAN_MAT_NEGATE_Q gan_ltmat22f_negate_q
02644 #define GAN_MAT_NEGATE_S gan_ltmat22f_negate_s
02645 #define GAN_MAT_NEGATE_I gan_ltmat22f_negate_i
02646 #define GAN_MAT_UNIT_Q gan_ltmat22f_unit_q
02647 #define GAN_MAT_UNIT_S gan_ltmat22f_unit_s
02648 #define GAN_MAT_UNIT_I gan_ltmat22f_unit_i
02649 #define GAN_MAT_ADD_Q gan_ltmat22f_add_q
02650 #define GAN_MAT_ADD_I1 gan_ltmat22f_add_i1
02651 #define GAN_MAT_ADD_I2 gan_ltmat22f_add_i2
02652 #define GAN_MAT_INCREMENT gan_ltmat22f_increment
02653 #define GAN_MAT_ADD_S gan_ltmat22f_add_s
02654 #define GAN_MAT_SUB_Q gan_ltmat22f_sub_q
02655 #define GAN_MAT_SUB_I1 gan_ltmat22f_sub_i1
02656 #define GAN_MAT_SUB_I2 gan_ltmat22f_sub_i2
02657 #define GAN_MAT_DECREMENT gan_ltmat22f_decrement
02658 #define GAN_MAT_SUB_S gan_ltmat22f_sub_s
02659 #define GAN_MAT_MULTV_Q gan_ltmat22f_multv2_q
02660 #define GAN_MAT_MULTV_S gan_ltmat22f_multv2_s
02661 #define GAN_MAT_MULTV_I gan_ltmat22f_multv2_i
02662 #define GAN_MATT_MULTV_Q gan_ltmat22Tf_multv2_q
02663 #define GAN_MATT_MULTV_S gan_ltmat22Tf_multv2_s
02664 #define GAN_MATT_MULTV_I gan_ltmat22Tf_multv2_i
02665 #define GAN_MAT_SRMULTT_Q gan_ltmat22f_srmultT_q
02666 #define GAN_MAT_SRMULTT_S gan_ltmat22f_srmultT_s
02667 #define GAN_MAT_SRMULTT_I gan_ltmat22f_srmultT_i
02668 #define GAN_MAT_SLMULTT_Q gan_ltmat22f_slmultT_q
02669 #define GAN_MAT_SLMULTT_S gan_ltmat22f_slmultT_s
02670 #define GAN_MAT_SLMULTT_I gan_ltmat22f_slmultT_i
02671 #define GAN_MAT_SUMSQR_Q gan_ltmat22f_sumsqr_q
02672 #define GAN_MAT_SUMSQR_S gan_ltmat22f_sumsqr_s
02673 #define GAN_MAT_FNORM_Q gan_ltmat22f_Fnorm_q
02674 #define GAN_MAT_FNORM_S gan_ltmat22f_Fnorm_s
02675
02676 #define GAN_SQUMAT_IDENT_Q gan_ltmat22f_ident_q
02677 #define GAN_SQUMAT_IDENT_S gan_ltmat22f_ident_s
02678 #define GAN_SQUMATI_MULTV_Q gan_ltmat22If_multv2_q
02679 #define GAN_SQUMATI_MULTV_S gan_ltmat22If_multv2_s
02680 #define GAN_SQUMATI_MULTV_I gan_ltmat22If_multv2_i
02681 #define GAN_SQUMATIT_MULTV_Q gan_ltmat22ITf_multv2_q
02682 #define GAN_SQUMATIT_MULTV_S gan_ltmat22ITf_multv2_s
02683 #define GAN_SQUMATIT_MULTV_I gan_ltmat22ITf_multv2_i
02684 #define GAN_SQUMAT_INVERT gan_ltmat22f_invert
02685 #define GAN_SQUMAT_INVERT_Q gan_ltmat22f_invert_q
02686 #define GAN_SQUMAT_INVERT_S gan_ltmat22f_invert_s
02687 #define GAN_SQUMAT_INVERT_I gan_ltmat22f_invert_i
02688 #define GAN_SQUMAT_DET_Q gan_ltmat22f_det_q
02689 #define GAN_SQUMAT_DET_S gan_ltmat22f_det_s
02690 #define GAN_SQUMAT_TRACE_Q gan_ltmat22f_trace_q
02691 #define GAN_SQUMAT_TRACE_S gan_ltmat22f_trace_s
02692
02693 #ifndef _GAN_2X2LTMATF_H
02694 #define _GAN_2X2LTMATF_H
02695
02696
02697 #endif
02698
02711
02712
02713
02714
02715
02716
02717
02718
02719
02720
02721
02722
02723
02724
02725
02726
02727
02728
02729
02730
02731
02732
02745 Gan_SquMatrix22_f *gan_ltmat22f_ident_q ( Gan_SquMatrix22_f *A );
02746
02784 Gan_Vector2_f *gan_ltmat22If_multv2_q ( const Gan_SquMatrix22_f *A, Gan_Vector2_f *p,
02785 Gan_Vector2_f *q );
02786
02795 Gan_Vector2_f *gan_ltmat22If_multv2_i ( const Gan_SquMatrix22_f *A, Gan_Vector2_f *p );
02796
02805 Gan_Vector2_f *gan_ltmat22ITf_multv2_q ( const Gan_SquMatrix22_f *A, Gan_Vector2_f *p,
02806 Gan_Vector2_f *q );
02807
02816 Gan_Vector2_f *gan_ltmat22ITf_multv2_i ( const Gan_SquMatrix22_f *A, Gan_Vector2_f *p );
02817
02835 Gan_SquMatrix22_f *gan_ltmat22f_invert_q ( Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B );
02836
02845 Gan_SquMatrix22_f *gan_ltmat22f_invert_i ( Gan_SquMatrix22_f *A );
02846
02861 float gan_ltmat22f_det_q ( const Gan_SquMatrix22_f *A );
02862
02868 float gan_ltmat22f_trace_q ( const Gan_SquMatrix22_f *A );
02869
02875 #undef GAN_SQUMAT_IDENT_Q
02876 #undef GAN_SQUMAT_IDENT_S
02877 #undef GAN_SQUMAT_TPOSE_Q
02878 #undef GAN_SQUMAT_TPOSE_S
02879 #undef GAN_SQUMAT_TPOSE_I
02880 #undef GAN_MAT_SADDT_Q
02881 #undef GAN_MAT_SADDT_S
02882 #undef GAN_SQUMATI_MULTV_Q
02883 #undef GAN_SQUMATI_MULTV_S
02884 #undef GAN_SQUMATI_MULTV_I
02885 #undef GAN_SQUMATIT_MULTV_Q
02886 #undef GAN_SQUMATIT_MULTV_S
02887 #undef GAN_SQUMATIT_MULTV_I
02888 #undef GAN_SQUMAT_INVERT
02889 #undef GAN_SQUMAT_INVERT_Q
02890 #undef GAN_SQUMAT_INVERT_S
02891 #undef GAN_SQUMAT_INVERT_I
02892 #undef GAN_SQUMAT_ADJOINT_Q
02893 #undef GAN_SQUMAT_ADJOINT_S
02894 #undef GAN_SQUMAT_ADJOINTT_Q
02895 #undef GAN_SQUMAT_ADJOINTT_S
02896 #undef GAN_SQUMAT_DET_Q
02897 #undef GAN_SQUMAT_DET_S
02898 #undef GAN_SQUMAT_TRACE_Q
02899 #undef GAN_SQUMAT_TRACE_S
02900
02913
02914
02915
02916
02917
02918
02919
02920
02921
02922
02923
02924
02925
02926
02927
02928
02929
02930
02931
02932
02933
02944 Gan_SquMatrix22_f *gan_ltmat22f_zero_q ( const Gan_SquMatrix22_f *A );
02945
02962 Gan_SquMatrix22_f *gan_ltmat22f_copy_q ( Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B );
02963
02981 Gan_SquMatrix22_f *gan_ltmat22f_scale_q ( Gan_SquMatrix22_f *A, float a,
02982 Gan_SquMatrix22_f *B );
02983
02991 Gan_SquMatrix22_f *gan_ltmat22f_scale_i ( Gan_SquMatrix22_f *A, float a );
02992
03001 Gan_SquMatrix22_f *gan_ltmat22f_divide_q ( Gan_SquMatrix22_f *A, float a,
03002 Gan_SquMatrix22_f *B );
03003
03011 Gan_SquMatrix22_f *gan_ltmat22f_divide_i ( Gan_SquMatrix22_f *A, float a );
03012
03020 Gan_SquMatrix22_f *gan_ltmat22f_negate_q ( Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B );
03021
03029 Gan_SquMatrix22_f *gan_ltmat22f_negate_i ( Gan_SquMatrix22_f *A );
03030
03038 Gan_SquMatrix22_f *gan_ltmat22f_unit_i ( Gan_SquMatrix22_f *A );
03039
03057 Gan_SquMatrix22_f *gan_ltmat22f_add_q ( Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B, Gan_SquMatrix22_f *C );
03058
03067 Gan_SquMatrix22_f *gan_ltmat22f_add_i1 ( Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B );
03068
03077 Gan_SquMatrix22_f *gan_ltmat22f_add_i2 ( Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B );
03078
03087 Gan_SquMatrix22_f *gan_ltmat22f_increment ( Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B );
03088
03106 Gan_SquMatrix22_f *gan_ltmat22f_sub_q ( Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B, Gan_SquMatrix22_f *C );
03107
03116 Gan_SquMatrix22_f *gan_ltmat22f_sub_i1 ( Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B );
03117
03126 Gan_SquMatrix22_f *gan_ltmat22f_sub_i2 ( Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B );
03127
03136 Gan_SquMatrix22_f *gan_ltmat22f_decrement ( Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B );
03137
03156 Gan_Vector2_f *gan_ltmat22f_multv2_q ( const Gan_SquMatrix22_f *A, Gan_Vector2_f *p,
03157 Gan_Vector2_f *q );
03158
03167 Gan_Vector2_f *gan_ltmat22f_multv2_i ( const Gan_SquMatrix22_f *A, Gan_Vector2_f *p );
03168
03177 Gan_Vector2_f *gan_ltmat22Tf_multv2_q ( const Gan_SquMatrix22_f *A, Gan_Vector2_f *p,
03178 Gan_Vector2_f *q );
03179
03188 Gan_Vector2_f *gan_ltmat22Tf_multv2_i ( const Gan_SquMatrix22_f *A, Gan_Vector2_f *p );
03189
03251 Gan_SquMatrix22_f *gan_ltmat22f_slmultT_q ( Gan_SquMatrix22_f *A, const Gan_SquMatrix22_f *B );
03252
03262 Gan_SquMatrix22_f *gan_ltmat22f_slmultT_i ( Gan_SquMatrix22_f *A );
03263
03272 Gan_SquMatrix22_f *gan_ltmat22f_srmultT_q ( const Gan_SquMatrix22_f *A, Gan_SquMatrix22_f *B );
03273
03283 Gan_SquMatrix22_f *gan_ltmat22f_srmultT_i ( Gan_SquMatrix22_f *A );
03284
03299 float gan_ltmat22f_sumsqr_q ( const Gan_SquMatrix22_f *A );
03300
03307 float gan_ltmat22f_Fnorm_q ( const Gan_SquMatrix22_f *A );
03308
03339
03340
03341
03342
03343
03344
03345
03346
03347
03348
03349
03350
03351
03352
03353
03354 #undef GAN_MATTYPE
03355 #undef GAN_MATRIX_TYPE
03356 #undef GAN_SQUMATRIX_TYPE
03357 #undef GAN_VECTOR_TYPE
03358 #undef GAN_MAT_ELEMENT_TYPE
03359 #undef GAN_REALTYPE
03360 #undef GAN_FWRITE_LENDIAN
03361 #undef GAN_FREAD_LENDIAN
03362 #undef GAN_VECTYPE1
03363 #undef GAN_VECTYPE2
03364 #undef GAN_MATTYPEL
03365 #undef GAN_MATTYPER
03366 #undef GAN_SQUMATTYPEL
03367 #undef GAN_SQUMATTYPER
03368 #undef GAN_FIXED_MATRIX_TYPE
03369 #undef GAN_MAT_FPRINT
03370 #undef GAN_MAT_PRINT
03371 #undef GAN_MAT_FSCANF
03372 #undef GAN_MAT_FWRITE
03373 #undef GAN_MAT_FREAD
03374 #undef GAN_MAT_ZERO_Q
03375 #undef GAN_MAT_ZERO_S
03376 #undef GAN_MAT_COPY_Q
03377 #undef GAN_MAT_COPY_S
03378 #undef GAN_MAT_SCALE_Q
03379 #undef GAN_MAT_SCALE_S
03380 #undef GAN_MAT_SCALE_I
03381 #undef GAN_MAT_DIVIDE_Q
03382 #undef GAN_MAT_DIVIDE_S
03383 #undef GAN_MAT_DIVIDE_I
03384 #undef GAN_MAT_NEGATE_Q
03385 #undef GAN_MAT_NEGATE_S
03386 #undef GAN_MAT_NEGATE_I
03387 #undef GAN_MAT_UNIT_Q
03388 #undef GAN_MAT_UNIT_S
03389 #undef GAN_MAT_UNIT_I
03390 #undef GAN_MAT_ADD_Q
03391 #undef GAN_MAT_ADD_I1
03392 #undef GAN_MAT_ADD_I2
03393 #undef GAN_MAT_INCREMENT
03394 #undef GAN_MAT_ADD_S
03395 #undef GAN_MAT_SUB_Q
03396 #undef GAN_MAT_SUB_I1
03397 #undef GAN_MAT_SUB_I2
03398 #undef GAN_MAT_DECREMENT
03399 #undef GAN_MAT_SUB_S
03400 #undef GAN_VEC_OUTER_Q
03401 #undef GAN_VEC_OUTER_S
03402 #undef GAN_MAT_MULTV_Q
03403 #undef GAN_MAT_MULTV_S
03404 #undef GAN_MAT_MULTV_I
03405 #undef GAN_MATT_MULTV_Q
03406 #undef GAN_MATT_MULTV_S
03407 #undef GAN_MATT_MULTV_I
03408 #undef GAN_MAT_LMULTM_Q
03409 #undef GAN_MAT_LMULTM_S
03410 #undef GAN_MAT_LMULTMT_Q
03411 #undef GAN_MAT_LMULTMT_S
03412 #undef GAN_MAT_RMULTM_Q
03413 #undef GAN_MAT_RMULTM_S
03414 #undef GAN_MAT_RMULTMT_Q
03415 #undef GAN_MAT_RMULTMT_S
03416 #undef GAN_MAT_LMULTMT_SYM_Q
03417 #undef GAN_MAT_LMULTMT_SYM_S
03418 #undef GAN_MAT_RMULTMT_SYM_Q
03419 #undef GAN_MAT_RMULTMT_SYM_S
03420 #undef GAN_MAT_LMULTS_Q
03421 #undef GAN_MAT_LMULTS_S
03422 #undef GAN_MAT_RMULTS_Q
03423 #undef GAN_MAT_RMULTS_S
03424 #undef GAN_SYMMATL_LRMULT_Q
03425 #undef GAN_SYMMATL_LRMULT_S
03426 #undef GAN_SYMMATR_LRMULT_Q
03427 #undef GAN_SYMMATR_LRMULT_S
03428 #undef GAN_MAT_LMULTL_Q
03429 #undef GAN_MAT_LMULTL_S
03430 #undef GAN_MAT_LMULTL_I
03431 #undef GAN_MAT_LMULTLI_Q
03432 #undef GAN_MAT_LMULTLI_S
03433 #undef GAN_MAT_LMULTLI_I
03434 #undef GAN_MAT_LMULTLT_Q
03435 #undef GAN_MAT_LMULTLT_S
03436 #undef GAN_MAT_LMULTLT_I
03437 #undef GAN_MAT_LMULTLIT_Q
03438 #undef GAN_MAT_LMULTLIT_S
03439 #undef GAN_MAT_LMULTLIT_I
03440 #undef GAN_MAT_RMULTL_Q
03441 #undef GAN_MAT_RMULTL_S
03442 #undef GAN_MAT_RMULTL_I
03443 #undef GAN_MAT_RMULTLI_Q
03444 #undef GAN_MAT_RMULTLI_S
03445 #undef GAN_MAT_RMULTLI_I
03446 #undef GAN_MAT_RMULTLT_Q
03447 #undef GAN_MAT_RMULTLT_S
03448 #undef GAN_MAT_RMULTLT_I
03449 #undef GAN_MAT_RMULTLIT_Q
03450 #undef GAN_MAT_RMULTLIT_S
03451 #undef GAN_MAT_RMULTLIT_I
03452 #undef GAN_MAT_SRMULTT_Q
03453 #undef GAN_MAT_SRMULTT_S
03454 #undef GAN_MAT_SRMULTT_I
03455 #undef GAN_MAT_SLMULTT_Q
03456 #undef GAN_MAT_SLMULTT_S
03457 #undef GAN_MAT_SLMULTT_I
03458 #undef GAN_MAT_RMULTLIT_S
03459 #undef GAN_MAT_SUMSQR_Q
03460 #undef GAN_MAT_SUMSQR_S
03461 #undef GAN_MAT_FNORM_Q
03462 #undef GAN_MAT_FNORM_S
03463 #undef GAN_MAT_FROM_MAT_Q
03464 #undef GAN_MAT_FROM_MAT_S
03465 #undef GAN_MAT_FROM_SQUMAT_Q
03466 #undef GAN_MAT_FROM_SQUMAT_S
03467 #undef GAN_SQUMAT_FROM_SQUMAT_Q
03468 #undef GAN_SQUMAT_FROM_SQUMAT_S
03469
03470
03484 #define GAN_MATTYPE Gan_SquMatrix22_f
03485 #define GAN_MATRIX_TYPE Gan_SquMatrix_f
03486 #define GAN_SQUMATRIX_TYPE Gan_SquMatrix_f
03487 #define GAN_VECTOR_TYPE Gan_Vector_f
03488 #define GAN_MAT_ELEMENT_TYPE GAN_FLOAT
03489 #define GAN_REALTYPE float
03490 #define GAN_MAT_FPRINT gan_ltmat22Tf_fprint
03491 #define GAN_MAT_PRINT gan_ltmat22Tf_print
03492 #define GAN_MAT_FSCANF gan_ltmat22Tf_fscanf
03493 #define GAN_FIXED_MATRIX_TYPE GAN_LOWER_TRI_MATRIX22_F
03494
03495 #define gan_ltmat22Tf_fwrite gan_ltmat22f_fwrite
03496 #define gan_ltmat22Tf_fread gan_ltmat22f_fread
03497
03510
03511
03512
03513
03514
03515
03516
03517
03518
03519
03520
03521
03522
03523
03524
03525
03526
03527
03528
03529
03530
03531
03598 #undef GAN_SQUMAT_IDENT_Q
03599 #undef GAN_SQUMAT_IDENT_S
03600 #undef GAN_SQUMAT_TPOSE_Q
03601 #undef GAN_SQUMAT_TPOSE_S
03602 #undef GAN_SQUMAT_TPOSE_I
03603 #undef GAN_MAT_SADDT_Q
03604 #undef GAN_MAT_SADDT_S
03605 #undef GAN_SQUMATI_MULTV_Q
03606 #undef GAN_SQUMATI_MULTV_S
03607 #undef GAN_SQUMATI_MULTV_I
03608 #undef GAN_SQUMATIT_MULTV_Q
03609 #undef GAN_SQUMATIT_MULTV_S
03610 #undef GAN_SQUMATIT_MULTV_I
03611 #undef GAN_SQUMAT_INVERT
03612 #undef GAN_SQUMAT_INVERT_Q
03613 #undef GAN_SQUMAT_INVERT_S
03614 #undef GAN_SQUMAT_INVERT_I
03615 #undef GAN_SQUMAT_ADJOINT_Q
03616 #undef GAN_SQUMAT_ADJOINT_S
03617 #undef GAN_SQUMAT_ADJOINTT_Q
03618 #undef GAN_SQUMAT_ADJOINTT_S
03619 #undef GAN_SQUMAT_DET_Q
03620 #undef GAN_SQUMAT_DET_S
03621 #undef GAN_SQUMAT_TRACE_Q
03622 #undef GAN_SQUMAT_TRACE_S
03623
03636
03637
03638
03639
03640
03641
03642
03643
03644
03645
03646
03647
03648
03649
03650
03651
03652
03653
03654
03655
03656
03827
03828
03829
03830
03831
03832
03833
03834
03835
03836
03837
03838
03839
03840
03841
03842 #undef GAN_MATTYPE
03843 #undef GAN_MATRIX_TYPE
03844 #undef GAN_SQUMATRIX_TYPE
03845 #undef GAN_VECTOR_TYPE
03846 #undef GAN_MAT_ELEMENT_TYPE
03847 #undef GAN_REALTYPE
03848 #undef GAN_FWRITE_LENDIAN
03849 #undef GAN_FREAD_LENDIAN
03850 #undef GAN_VECTYPE1
03851 #undef GAN_VECTYPE2
03852 #undef GAN_MATTYPEL
03853 #undef GAN_MATTYPER
03854 #undef GAN_SQUMATTYPEL
03855 #undef GAN_SQUMATTYPER
03856 #undef GAN_FIXED_MATRIX_TYPE
03857 #undef GAN_MAT_FPRINT
03858 #undef GAN_MAT_PRINT
03859 #undef GAN_MAT_FSCANF
03860 #undef GAN_MAT_FWRITE
03861 #undef GAN_MAT_FREAD
03862 #undef GAN_MAT_ZERO_Q
03863 #undef GAN_MAT_ZERO_S
03864 #undef GAN_MAT_COPY_Q
03865 #undef GAN_MAT_COPY_S
03866 #undef GAN_MAT_SCALE_Q
03867 #undef GAN_MAT_SCALE_S
03868 #undef GAN_MAT_SCALE_I
03869 #undef GAN_MAT_DIVIDE_Q
03870 #undef GAN_MAT_DIVIDE_S
03871 #undef GAN_MAT_DIVIDE_I
03872 #undef GAN_MAT_NEGATE_Q
03873 #undef GAN_MAT_NEGATE_S
03874 #undef GAN_MAT_NEGATE_I
03875 #undef GAN_MAT_UNIT_Q
03876 #undef GAN_MAT_UNIT_S
03877 #undef GAN_MAT_UNIT_I
03878 #undef GAN_MAT_ADD_Q
03879 #undef GAN_MAT_ADD_I1
03880 #undef GAN_MAT_ADD_I2
03881 #undef GAN_MAT_INCREMENT
03882 #undef GAN_MAT_ADD_S
03883 #undef GAN_MAT_SUB_Q
03884 #undef GAN_MAT_SUB_I1
03885 #undef GAN_MAT_SUB_I2
03886 #undef GAN_MAT_DECREMENT
03887 #undef GAN_MAT_SUB_S
03888 #undef GAN_VEC_OUTER_Q
03889 #undef GAN_VEC_OUTER_S
03890 #undef GAN_MAT_MULTV_Q
03891 #undef GAN_MAT_MULTV_S
03892 #undef GAN_MAT_MULTV_I
03893 #undef GAN_MATT_MULTV_Q
03894 #undef GAN_MATT_MULTV_S
03895 #undef GAN_MATT_MULTV_I
03896 #undef GAN_MAT_LMULTM_Q
03897 #undef GAN_MAT_LMULTM_S
03898 #undef GAN_MAT_LMULTMT_Q
03899 #undef GAN_MAT_LMULTMT_S
03900 #undef GAN_MAT_RMULTM_Q
03901 #undef GAN_MAT_RMULTM_S
03902 #undef GAN_MAT_RMULTMT_Q
03903 #undef GAN_MAT_RMULTMT_S
03904 #undef GAN_MAT_LMULTMT_SYM_Q
03905 #undef GAN_MAT_LMULTMT_SYM_S
03906 #undef GAN_MAT_RMULTMT_SYM_Q
03907 #undef GAN_MAT_RMULTMT_SYM_S
03908 #undef GAN_MAT_LMULTS_Q
03909 #undef GAN_MAT_LMULTS_S
03910 #undef GAN_MAT_RMULTS_Q
03911 #undef GAN_MAT_RMULTS_S
03912 #undef GAN_SYMMATL_LRMULT_Q
03913 #undef GAN_SYMMATL_LRMULT_S
03914 #undef GAN_SYMMATR_LRMULT_Q
03915 #undef GAN_SYMMATR_LRMULT_S
03916 #undef GAN_MAT_LMULTL_Q
03917 #undef GAN_MAT_LMULTL_S
03918 #undef GAN_MAT_LMULTL_I
03919 #undef GAN_MAT_LMULTLI_Q
03920 #undef GAN_MAT_LMULTLI_S
03921 #undef GAN_MAT_LMULTLI_I
03922 #undef GAN_MAT_LMULTLT_Q
03923 #undef GAN_MAT_LMULTLT_S
03924 #undef GAN_MAT_LMULTLT_I
03925 #undef GAN_MAT_LMULTLIT_Q
03926 #undef GAN_MAT_LMULTLIT_S
03927 #undef GAN_MAT_LMULTLIT_I
03928 #undef GAN_MAT_RMULTL_Q
03929 #undef GAN_MAT_RMULTL_S
03930 #undef GAN_MAT_RMULTL_I
03931 #undef GAN_MAT_RMULTLI_Q
03932 #undef GAN_MAT_RMULTLI_S
03933 #undef GAN_MAT_RMULTLI_I
03934 #undef GAN_MAT_RMULTLT_Q
03935 #undef GAN_MAT_RMULTLT_S
03936 #undef GAN_MAT_RMULTLT_I
03937 #undef GAN_MAT_RMULTLIT_Q
03938 #undef GAN_MAT_RMULTLIT_S
03939 #undef GAN_MAT_RMULTLIT_I
03940 #undef GAN_MAT_SRMULTT_Q
03941 #undef GAN_MAT_SRMULTT_S
03942 #undef GAN_MAT_SRMULTT_I
03943 #undef GAN_MAT_SLMULTT_Q
03944 #undef GAN_MAT_SLMULTT_S
03945 #undef GAN_MAT_SLMULTT_I
03946 #undef GAN_MAT_RMULTLIT_S
03947 #undef GAN_MAT_SUMSQR_Q
03948 #undef GAN_MAT_SUMSQR_S
03949 #undef GAN_MAT_FNORM_Q
03950 #undef GAN_MAT_FNORM_S
03951 #undef GAN_MAT_FROM_MAT_Q
03952 #undef GAN_MAT_FROM_MAT_S
03953 #undef GAN_MAT_FROM_SQUMAT_Q
03954 #undef GAN_MAT_FROM_SQUMAT_S
03955 #undef GAN_SQUMAT_FROM_SQUMAT_Q
03956 #undef GAN_SQUMAT_FROM_SQUMAT_S
03957
03966 #ifdef __cplusplus
03967 }
03968 #endif
03969
03970 #endif