4 #ident "University of Edinburgh $Id: a08b6cb07478909eef9d9f1671c6211bb8270c18 $" 6 static char _AlgType_h[] =
"University of Edinburgh $Id: a08b6cb07478909eef9d9f1671c6211bb8270c18 $";
53 #define ALG_MAX(X,Y) (((X)>(Y))?(X):(Y)) 54 #define ALG_MIN(X,Y) (((X)<(Y))?(X):(Y)) 55 #define ALG_MAXIDX(X,Y) (((X)>(Y))?(0):(1)) 56 #define ALG_MINIDX(X,Y) (((X)<(Y))?(0):(1)) 57 #define ALG_ABS(X) (((X)>0)?(X):(-(X))) 58 #define ALG_NINT(X) ((int)(((X)<0)?((X)-(0.5)):((X)+(0.5)))) 59 #define ALG_SQR(X) ((X)*(X)) 60 #define ALG_MAX3(X,Y,Z) (((X)>(Y))?(((X)>(Z))?(X):(Z)):(((Y)>(Z))?(Y):(Z))) 61 #define ALG_MIN3(X,Y,Z) (((X)<(Y))?(((X)<(Z))?(X):(Z)):(((Y)<(Z))?(Y):(Z))) 62 #define ALG_MAXIDX3(X,Y,Z) \ 63 (((X)>(Y))?(((X)>(Z))?(0):(3)):(((Y)>(Z))?(1):(3))) 64 #define ALG_MININD3(X,Y,Z) \ 65 (((X)<(Y))?(((X)<(Z))?(0):(3)):(((Y)<(Z))?(1):(3))) 68 #define ALG_DETERMINANT_4(M) \ 69 ((((M)[0])*((M)[3]))-(((M)[1])*((M)[2]))) 70 #define ALG_DETERMINANT_9(M) \ 71 ((((M)[0])*((M)[4])*((M)[8]))-(((M)[0])*((M)[5])*((M)[7]))+ \ 72 (((M)[1])*((M)[5])*((M)[6]))-(((M)[1])*((M)[3])*((M)[8]))+ \ 73 (((M)[2])*((M)[3])*((M)[7]))-(((M)[2])*((M)[4])*((M)[6]))) 76 #define ALG_M_E (2.7182818284590452354) 77 #define ALG_M_LOG2E (1.4426950408889634074) 78 #define ALG_M_LOG10E (0.43429448190325182765) 79 #define ALG_M_LN2 (0.69314718055994530942) 80 #define ALG_M_LN10 (2.30258509299404568402) 81 #define ALG_M_PI (3.14159265358979323846) 82 #define ALG_M_PI_2 (1.57079632679489661923) 83 #define ALG_M_PI_4 (0.78539816339744830961) 84 #define ALG_M_1_PI (0.31830988618379067154) 85 #define ALG_M_2_PI (0.63661977236758134308) 86 #define ALG_M_2_SQRTPI (1.12837916709551257390) 87 #define ALG_M_SQRT2 (1.41421356237309504880) 88 #define ALG_M_SQRT3 (1.73205080756887729353) 89 #define ALG_M_SQRT1_2 (0.70710678118654752440) 92 #define ALG_DBL_TOLLERANCE (1.0E-9) 294 #define ALG_DBG_FN (*algDbgOutFn) 295 #define ALG_DBG(F,M) ((((F)&(algDbgMask))==(F))?ALG_DBG_FN M:ALG_ERR_NONE) Definition: AlgType.h:238
double ** array
Definition: AlgType.h:165
Definition: AlgType.h:261
_AlgDbgMask
Definition: AlgType.h:281
struct _AlgMatrixCore * core
Definition: AlgType.h:135
AlgDbgFn algDbgOutFn
Definition: AlgDebug.c:49
size_t maxC
Definition: AlgType.h:164
size_t maxN
Definition: AlgType.h:178
AlgMatrixType type
Definition: AlgType.h:175
enum _AlgMatrixType AlgMatrixType
size_t col
Definition: AlgType.h:224
Definition: AlgType.h:263
Definition: AlgType.h:119
_AlgDistribution
Statistical distributions. Typedef: AlgDistribution.
Definition: AlgType.h:99
struct _AlgMatrixRect AlgMatrixRect
Definition: AlgType.h:236
Definition: AlgType.h:114
size_t nC
Definition: AlgType.h:177
size_t maxR
Definition: AlgType.h:163
Symmetric matrix. Typedef: AlgMatrixRect.
Definition: AlgType.h:173
AlgMatrixType type
Definition: AlgType.h:208
AlgError(* AlgDbgFn)(char *,...)
Definition: AlgType.h:291
double im
Definition: AlgType.h:249
enum _AlgDistribution AlgDistribution
Definition: AlgType.h:221
Definition: AlgType.h:115
size_t maxEnt
Definition: AlgType.h:212
Definition: AlgType.h:285
size_t nC
Definition: AlgType.h:150
Definition: AlgType.h:284
double ** array
Definition: AlgType.h:179
Definition: AlgType.h:264
size_t row
Definition: AlgType.h:223
struct _AlgMatrixSym * sym
Definition: AlgType.h:137
enum _AlgPadType AlgPadType
Definition: AlgType.h:237
size_t nR
Definition: AlgType.h:176
Definition: AlgType.h:267
Definition: AlgType.h:287
_AlgError
Definition: AlgType.h:258
Definition: AlgType.h:262
void * blk
Definition: AlgType.h:214
Definition: AlgType.h:266
Rectangular matrix. Typedef: AlgMatrixRect.
Definition: AlgType.h:158
Definition: AlgType.h:271
Definition: AlgType.h:124
union _AlgMatrix AlgMatrix
Definition: AlgType.h:273
struct _AlgMatrixTriple AlgMatrixTriple
AlgMatrixLLRE * freeStk
Definition: AlgType.h:216
Definition: AlgType.h:260
AlgMatrixType type
Definition: AlgType.h:160
Definition: AlgType.h:265
struct _AlgMatrixLLR * llr
Definition: AlgType.h:138
Definition: AlgType.h:286
Definition: AlgType.h:268
_AlgPadType
Types of daat padding. Typedef: AlgPadType.
Definition: AlgType.h:233
struct _AlgMatrixLLRE AlgMatrixLLRE
struct _AlgMatrixSym AlgMatrixSym
AlgMatrixType type
Definition: AlgType.h:148
Definition: AlgType.h:104
size_t nR
Definition: AlgType.h:209
Definition: AlgType.h:283
size_t nC
Definition: AlgType.h:210
double re
Definition: AlgType.h:248
double tol
Definition: AlgType.h:213
size_t nC
Definition: AlgType.h:162
struct _AlgMatrixLLRE * nxt
Definition: AlgType.h:191
A core matrix type with members common to all matrix types. Typedef: AlgMatrixCore.
Definition: AlgType.h:146
struct _AlgMatrixLLR AlgMatrixLLR
Definition: AlgType.h:102
Definition: AlgType.h:272
struct _AlgMatrixCore AlgMatrixCore
AlgMatrixLLRE ** tbl
Definition: AlgType.h:217
size_t nR
Definition: AlgType.h:149
_AlgMatrixType
Matrix representations. Typedef: AlgMatrixType.
Definition: AlgType.h:112
size_t col
Definition: AlgType.h:189
double val
Definition: AlgType.h:225
Entry in the linked list row matrix. Typedef: AlgMatrixLLRE.
Definition: AlgType.h:187
Definition: AlgType.h:269
Definition: AlgType.h:235
Complex number data type. Typedef: ComplexD.
Definition: AlgType.h:246
struct _AlgMatrixRect * rect
Definition: AlgType.h:136
size_t nR
Definition: AlgType.h:161
enum _AlgDbgMask AlgDbgMask
Definition: AlgType.h:103
size_t numEnt
Definition: AlgType.h:211
A union of all valid matrix types. Typedef: AlgMatrix..
Definition: AlgType.h:133
double val
Definition: AlgType.h:190
Definition: AlgType.h:206
struct _ComplexD ComplexD
Definition: AlgType.h:101