57 #undef PSEUDOCONDITION
62 #define EXPANDABLE YES
64 #define INITIALIZE YES
67 #define MODIFIED_NODAL YES
68 #define QUAD_ELEMENT YES
71 #define DOCUMENTATION YES
72 #define MULTIPLICATION YES
73 #define DETERMINANT YES
75 #define PSEUDOCONDITION YES
108 #define SPARSE_ID 0x772773
109 #define IS_SPARSE(matrix) ((matrix) != NULL && (matrix)->ID == SPARSE_ID)
110 #define IS_VALID(matrix) ((matrix) != NULL && (matrix)->ID == SPARSE_ID && (matrix)->Error >= spOKAY && (matrix)->Error < spFATAL)
111 #define IS_FACTORED(matrix) ((matrix)->Factored && !(matrix)->NeedsOrdering)
115 #define MAX(a, b) ((a) > (b) ? (a) : (b))
116 #define MIN(a, b) ((a) < (b) ? (a) : (b))
119 #define ABS(a) ((a) < 0.0 ? -(a) : (a))
122 #define SQR(a) ((a) * (a))
125 #define SWAP(type, a, b) \
134 #define ELEMENT_MAG(ptr) ((ptr)->Real < 0.0 ? -(ptr)->Real : (ptr)->Real)
147 #define ASSERT(condition) \
148 if (NOT(condition)) \
151 #define ASSERT(condition)
157 (void)fflush(stdout); \
158 (void)fprintf(stderr, "sparse: panic in file `%s' at line %d.\n", \
159 __FILE__, __LINE__); \
160 (void)fflush(stderr); \
173 #define ALLOC(type, number) ((type*)malloc((unsigned)(sizeof(type) * (number))))
174 #define REALLOC(ptr, type, number) \
175 ptr = (type*)realloc((char*)ptr, (unsigned)(sizeof(type) * (number)))
179 if ((ptr) != NULL) { \
180 char* p = (char*)(ptr); \
187 #define CALLOC(ptr, type, number) \
190 ptr = ALLOC(type, number); \
191 if (ptr != (type*)NULL) \
192 for (i = (number)-1; i >= 0; i--) \
struct MatrixFrame * MatrixPtr
struct MatrixElement * ElementPtr
ElementPtr * ArrayOfElementPtrs
struct AllocationRecord * AllocationListPtr
struct AllocationRecord * NextRecord
int NumberOfFillinsInList
struct FillinListNodeStruct * Next
struct MatrixElement * NextInCol
struct MatrixElement * NextInRow
int MaxRowCountInLowerTri
ElementPtr NextAvailFillin
BOOLEAN InternalVectorsAllocated
BOOLEAN PreviousMatrixWasComplex
struct FillinListNodeStruct * FirstFillinListNode
BOOLEAN NumberOfInterchangesIsOdd
struct FillinListNodeStruct * LastFillinListNode
ArrayOfElementPtrs FirstInCol
char PivotSelectionMethod
ArrayOfElementPtrs FirstInRow
AllocationListPtr TopOfAllocationList
ElementPtr NextAvailElement
struct MatrixElement TrashCan