102 #define spSMALL_PIVOT OK 103 #define spZERO_DIAG E_SINGULAR 104 #define spSINGULAR E_SINGULAR 105 #define spNO_MEMORY E_NOMEM 106 #define spPANIC E_BADMATRIX 108 #define spFATAL E_BADMATRIX 112 #define NO_ERROR spOKAY 113 #define UNDER_FLOW spOKAY 114 #define OVER_FLOW spOKAY 115 #define ILL_CONDITIONED spSMALL_PIVOT 116 #define SINGULAR spSINGULAR 117 #define NO_MEMORY spNO_MEMORY 118 #define RANGE spPANIC 120 #define FATAL spFATAL 123 #define spZERO_DIAG spSINGULAR 145 #define spREAL double 149 #define SPARSE_REAL spREAL 177 #define spDEFAULT_PARTITION 0 178 #define spDIRECT_PARTITION 1 179 #define spINDIRECT_PARTITION 2 180 #define spAUTO_PARTITION 3 211 #define spADD_REAL_ELEMENT(element,real) *(element) += real 213 #define spADD_IMAG_ELEMENT(element,imag) *(element+1) += imag 215 #define spADD_COMPLEX_ELEMENT(element,real,imag) \ 216 { *(element) += real; \ 217 *(element+1) += imag; \ 220 #define spADD_REAL_QUAD(template,real) \ 221 { *((template).Element1) += real; \ 222 *((template).Element2) += real; \ 223 *((template).Element3Negated) -= real; \ 224 *((template).Element4Negated) -= real; \ 227 #define spADD_IMAG_QUAD(template,imag) \ 228 { *((template).Element1+1) += imag; \ 229 *((template).Element2+1) += imag; \ 230 *((template).Element3Negated+1) -= imag; \ 231 *((template).Element4Negated+1) -= imag; \ 234 #define spADD_COMPLEX_QUAD(template,real,imag) \ 235 { *((template).Element1) += real; \ 236 *((template).Element2) += real; \ 237 *((template).Element3Negated) -= real; \ 238 *((template).Element4Negated) -= real; \ 239 *((template).Element1+1) += imag; \ 240 *((template).Element2+1) += imag; \ 241 *((template).Element3Negated+1) -= imag; \ 242 *((template).Element4Negated+1) -= imag; \ 246 #define ADD_REAL_ELEMENT_TO_MATRIX spADD_REAL_ELEMENT 247 #define ADD_IMAG_ELEMENT_TO_MATRIX spADD_IMAG_ELEMENT 248 #define ADD_COMPLEX_ELEMENT_TO_MATRIX spADD_COMPLEX_ELEMENT 249 #define ADD_REAL_QUAD_ELEMENT_TO_MATRIX spADD_REAL_ELEMENT 250 #define ADD_IMAG_QUAD_ELEMENT_TO_MATRIX spADD_IMAG_ELEMENT 251 #define ADD_COMPLEX_QUAD_ELEMENT_TO_MATRIX spADD_COMPLEX_ELEMENT 276 #define spTemplate TemplateStruct 303 extern int spAddCol(
char*,
int,
int );
307 extern char *
spCreate(
int,
int,
int* );
314 extern int spFileMatrix(
char*,
char*,
char*,
int,
int,
int );
323 extern void spGetStat(
char*,
int*,
int*,
int* );
326 extern void spItoR(
char* );
333 extern void spPrint(
char*,
int,
int,
int );
336 extern void spRtoI(
char* );
351 #if spCOMPLEX && spSEPARATED_COMPLEX_VECTORS 418 extern char *AllocateMatrix();
419 extern spREAL *AddElementToMatrix();
420 extern void AddRealElementToMatrix();
421 extern void AddImagElementToMatrix();
422 extern void AddComplexElementToMatrix();
423 extern void AddAdmittanceToMatrix();
424 extern void AddOnesToMatrix();
425 extern void AddQuadToMatrix();
426 extern void AddRealQuadElementToMatrix();
427 extern void AddImagQuadElementToMatrix();
428 extern void AddComplexQuadElementToMatrix();
429 extern void CleanMatrix();
430 extern void ClearMatrix();
431 extern int ClearMatrixError();
432 extern void DeallocateMatrix();
433 extern void DeleteRowAndColFromMatrix();
434 extern void Determinant();
435 extern int DecomposeMatrix();
436 extern int GetMatrixSize();
437 extern int MatrixElementCount();
438 extern int MatrixFillinCount();
439 extern void MatrixMultiply();
440 extern spREAL MatrixRoundoffError();
441 extern int MatrixError();
442 extern int OrderAndDecomposeMatrix();
443 extern void OutputMatrixToFile();
444 extern void OutputStatisticsToFile();
445 extern void OutputVectorToFile();
446 extern void PreorderForModifiedNodal();
447 extern void PrintMatrix();
448 extern void SetMatrixComplex();
449 extern void SetMatrixReal();
450 extern void SolveMatrix();
451 extern void SolveTransposedMatrix();
452 extern void ScaleMatrix();
spREAL spPseudoCondition()
spREAL spLargestElement()