4 #ident "University of Edinburgh $Id: 11ae03e5d828d0fdd55b8ea78ff6a8f88ec8693b $" 6 static char _AlgType_h[] =
"University of Edinburgh $Id: 11ae03e5d828d0fdd55b8ea78ff6a8f88ec8693b $";
53 #define ALG_MAX(X,Y) (((X)>(Y))?(X):(Y)) 54 #define ALG_MIN(X,Y) (((X)<(Y))?(X):(Y)) 55 #define ALG_CLAMP(V,N,X) (((V)<(N))?(N):((V)>(X))?(X):(V)) 56 #define ALG_MAXIDX(X,Y) (((X)>(Y))?(0):(1)) 57 #define ALG_MINIDX(X,Y) (((X)<(Y))?(0):(1)) 58 #define ALG_ABS(X) (((X)>0)?(X):(-(X))) 59 #define ALG_NINT(X) ((int)(((X)<0)?((X)-(0.5)):((X)+(0.5)))) 60 #define ALG_SQR(X) ((X)*(X)) 61 #define ALG_MAX3(X,Y,Z) (((X)>(Y))?(((X)>(Z))?(X):(Z)):(((Y)>(Z))?(Y):(Z))) 62 #define ALG_MIN3(X,Y,Z) (((X)<(Y))?(((X)<(Z))?(X):(Z)):(((Y)<(Z))?(Y):(Z))) 63 #define ALG_MAXIDX3(X,Y,Z) \ 64 (((X)>(Y))?(((X)>(Z))?(0):(3)):(((Y)>(Z))?(1):(3))) 65 #define ALG_MININD3(X,Y,Z) \ 66 (((X)<(Y))?(((X)<(Z))?(0):(3)):(((Y)<(Z))?(1):(3))) 69 #define ALG_DETERMINANT_4(M) \ 70 ((((M)[0])*((M)[3]))-(((M)[1])*((M)[2]))) 71 #define ALG_DETERMINANT_9(M) \ 72 ((((M)[0])*((M)[4])*((M)[8]))-(((M)[0])*((M)[5])*((M)[7]))+ \ 73 (((M)[1])*((M)[5])*((M)[6]))-(((M)[1])*((M)[3])*((M)[8]))+ \ 74 (((M)[2])*((M)[3])*((M)[7]))-(((M)[2])*((M)[4])*((M)[6]))) 77 #define ALG_M_E (2.7182818284590452354) 78 #define ALG_M_LOG2E (1.4426950408889634074) 79 #define ALG_M_LOG10E (0.43429448190325182765) 80 #define ALG_M_LN2 (0.69314718055994530942) 81 #define ALG_M_LN10 (2.30258509299404568402) 82 #define ALG_M_PI (3.14159265358979323846) 83 #define ALG_M_PI_2 (1.57079632679489661923) 84 #define ALG_M_PI_4 (0.78539816339744830961) 85 #define ALG_M_1_PI (0.31830988618379067154) 86 #define ALG_M_2_PI (0.63661977236758134308) 87 #define ALG_M_2_SQRTPI (1.12837916709551257390) 88 #define ALG_M_SQRT2 (1.41421356237309504880) 89 #define ALG_M_SQRT3 (1.73205080756887729353) 90 #define ALG_M_SQRT1_2 (0.70710678118654752440) 93 #define ALG_DBL_TOLLERANCE (1.0E-9) 96 #define ALG_GAUSSLEGENDRE_ORDER_MAX (6) 300 #define ALG_DBG_FN (*algDbgOutFn) 301 #define ALG_DBG(F,M) ((((F)&(algDbgMask))==(F))?ALG_DBG_FN M:ALG_ERR_NONE) Definition: AlgType.h:242
double ** array
Definition: AlgType.h:169
Definition: AlgType.h:265
_AlgDbgMask
Definition: AlgType.h:287
struct _AlgMatrixCore * core
Definition: AlgType.h:139
AlgDbgFn algDbgOutFn
Definition: AlgDebug.c:49
size_t maxC
Definition: AlgType.h:168
Definition: AlgType.h:278
size_t maxN
Definition: AlgType.h:182
AlgMatrixType type
Definition: AlgType.h:179
enum _AlgMatrixType AlgMatrixType
size_t col
Definition: AlgType.h:228
Definition: AlgType.h:267
Definition: AlgType.h:123
_AlgDistribution
Statistical distributions. Typedef: AlgDistribution.
Definition: AlgType.h:103
struct _AlgMatrixRect AlgMatrixRect
Definition: AlgType.h:240
Definition: AlgType.h:118
size_t nC
Definition: AlgType.h:181
size_t maxR
Definition: AlgType.h:167
Symmetric matrix. Typedef: AlgMatrixRect.
Definition: AlgType.h:177
AlgMatrixType type
Definition: AlgType.h:212
AlgError(* AlgDbgFn)(char *,...)
Definition: AlgType.h:297
double im
Definition: AlgType.h:253
enum _AlgDistribution AlgDistribution
Definition: AlgType.h:225
Definition: AlgType.h:119
size_t maxEnt
Definition: AlgType.h:216
Definition: AlgType.h:291
size_t nC
Definition: AlgType.h:154
Definition: AlgType.h:290
double ** array
Definition: AlgType.h:183
Definition: AlgType.h:268
size_t row
Definition: AlgType.h:227
struct _AlgMatrixSym * sym
Definition: AlgType.h:141
enum _AlgPadType AlgPadType
Definition: AlgType.h:241
size_t nR
Definition: AlgType.h:180
Definition: AlgType.h:271
Definition: AlgType.h:293
_AlgError
Definition: AlgType.h:262
Definition: AlgType.h:266
void * blk
Definition: AlgType.h:218
Definition: AlgType.h:270
Rectangular matrix. Typedef: AlgMatrixRect.
Definition: AlgType.h:162
Definition: AlgType.h:275
Definition: AlgType.h:128
union _AlgMatrix AlgMatrix
Definition: AlgType.h:279
struct _AlgMatrixTriple AlgMatrixTriple
AlgMatrixLLRE * freeStk
Definition: AlgType.h:220
Definition: AlgType.h:264
AlgMatrixType type
Definition: AlgType.h:164
Definition: AlgType.h:269
struct _AlgMatrixLLR * llr
Definition: AlgType.h:142
Definition: AlgType.h:292
Definition: AlgType.h:272
_AlgPadType
Types of daat padding. Typedef: AlgPadType.
Definition: AlgType.h:237
struct _AlgMatrixLLRE AlgMatrixLLRE
struct _AlgMatrixSym AlgMatrixSym
AlgMatrixType type
Definition: AlgType.h:152
Definition: AlgType.h:108
size_t nR
Definition: AlgType.h:213
Definition: AlgType.h:289
size_t nC
Definition: AlgType.h:214
double re
Definition: AlgType.h:252
double tol
Definition: AlgType.h:217
size_t nC
Definition: AlgType.h:166
Definition: AlgType.h:277
struct _AlgMatrixLLRE * nxt
Definition: AlgType.h:195
A core matrix type with members common to all matrix types. Typedef: AlgMatrixCore.
Definition: AlgType.h:150
struct _AlgMatrixLLR AlgMatrixLLR
Definition: AlgType.h:106
Definition: AlgType.h:276
struct _AlgMatrixCore AlgMatrixCore
AlgMatrixLLRE ** tbl
Definition: AlgType.h:221
size_t nR
Definition: AlgType.h:153
_AlgMatrixType
Matrix representations. Typedef: AlgMatrixType.
Definition: AlgType.h:116
size_t col
Definition: AlgType.h:193
double val
Definition: AlgType.h:229
Entry in the linked list row matrix. Typedef: AlgMatrixLLRE.
Definition: AlgType.h:191
Definition: AlgType.h:273
Definition: AlgType.h:239
Complex number data type. Typedef: ComplexD.
Definition: AlgType.h:250
struct _AlgMatrixRect * rect
Definition: AlgType.h:140
size_t nR
Definition: AlgType.h:165
enum _AlgDbgMask AlgDbgMask
Definition: AlgType.h:107
size_t numEnt
Definition: AlgType.h:215
A union of all valid matrix types. Typedef: AlgMatrix..
Definition: AlgType.h:137
double val
Definition: AlgType.h:194
Definition: AlgType.h:210
struct _ComplexD ComplexD
Definition: AlgType.h:105