/* stagen.h supposed to be included earlier */ /* * Vectors are supposed to be standard. * #include "_linalg" before */ typedef FloatHiPtr *rdMatrix; #define VAR FloatHi #define VARPTR FloatHiPtr typedef EntryPtr(void,rdPrintMatrixPtr,(rdMatrix mp, CharPtr t, Int2 level)); typedef EntryPtr(void,rdInitPtr,(StdLinAlgDataPtr stdptr, Int2 nphase, Int2 nmesh, Int2 nappend)); typedef EntryPtr(void,rdTermPtr,(void)); typedef EntryPtr(rdMatrix,rdCreateMatrixPtr,(int n, int m DEBPAR)); typedef EntryPtr(rdMatrix,rdDestroyMatrixPtr,(rdMatrix mp)); typedef EntryPtr(rdMatrix,rdCopyMatrixPtr,(rdMatrix from, rdMatrix to DEBPAR)); typedef EntryPtr(Int2,rdGetRowNumPtr,(rdMatrix mp)); typedef EntryPtr(Int2,rdGetColNumPtr,(rdMatrix mp)); typedef EntryPtr(void,rdClearMatrixPtr,(rdMatrix mp)); typedef EntryPtr(Vector,rdMultiplyMatrixVectorPtr,(rdMatrix mp, Vector vp, Vector vpres DEBPAR)); typedef EntryPtr(rdMatrix,rdAppendMatrixVectorPtr,(rdMatrix mp, Vector vp, rdMatrix mpres DEBPAR)); typedef EntryPtr(Matrix,rdGetMatrixAPtr,(rdMatrix mp, int n)); typedef EntryPtr(Matrix,rdGetMatrixBPtr,(rdMatrix mp, int n)); typedef EntryPtr(Matrix,rdGetMatrixCPtr,(rdMatrix mp, int n)); typedef EntryPtr(Matrix,rdGetMatrixDeltaPtr,(rdMatrix mp, int n)); typedef EntryPtr(Matrix,rdGetMatrixPPtr,(rdMatrix mp, int n)); typedef EntryPtr(Matrix,rdGetMatrixFiPtr,(rdMatrix mp)); typedef EntryPtr(Int2,rdGetMatrixDataPtr,(rdMatrix mp, FloatHiPtr deteq, FloatHiPtr det)); typedef EntryPtr(Int2,rdDiffFun,(Vector xx, Vector yy)); /* any differentiable function */ typedef EntryPtr(Int2,rdDerPtr,(rdDiffFun fun, int n, Vector x, VAR d, rdMatrix a)); typedef EntryPtr(void,rdSolvePtr,(rdMatrix AA, Vector BB)); typedef EntryPtr(Int2,rdDecompPtr,(rdMatrix AA DEBPAR)); typedef EntryPtr(Int2,rdSngSolvePtr,(rdMatrix AA, FloatHi EPS, Vector BB)); typedef EntryPtr(Int2,rdCharPolyCoeffsPtr,(rdMatrix AA, Vector BB)); typedef EntryPtr(rdMatrix,rdTransposeMatrixPtr,(rdMatrix from, rdMatrix to DEBPAR)); typedef EntryPtr(Int2,rddbalanPtr,(rdMatrix AA, int *l, int *h)); typedef EntryPtr(Int2,rddelmhePtr,(rdMatrix AA, int l, int h)); typedef EntryPtr(Int2,rddhqrPtr,(rdMatrix AA, int l, int h, Vector Re, Vector Im)); typedef EntryPtr(Int2,rdEigenValuesPtr,(rdMatrix AA, Vector Re, Vector Im)); typedef EntryPtr(void,rdCopyMatrixBlockPtr,(rdMatrix from, Int2 frow, Int2 fcol, rdMatrix to, Int2 trow, Int2 tcol, Int2 nrow, Int2 ncol)); typedef EntryPtr(VAR,rdNormOfVectorPtr,(Vector vp)); /* The number and order of fields must be the same as in /stdlinalg partition in file .con */ typedef struct { rdPrintMatrixPtr PrintMatrix; rdInitPtr Init; rdTermPtr Term; rdCreateMatrixPtr CreateMatrix; rdDestroyMatrixPtr DestroyMatrix; rdCopyMatrixPtr CopyMatrix; rdGetRowNumPtr GetRowNum; rdGetColNumPtr GetColNum; rdClearMatrixPtr ClearMatrix; rdMultiplyMatrixVectorPtr MultiplyMatrixVector; rdAppendMatrixVectorPtr AppendMatrixVector; rdGetMatrixAPtr GetMatrixA; rdGetMatrixBPtr GetMatrixB; rdGetMatrixCPtr GetMatrixC; rdGetMatrixDeltaPtr GetMatrixDelta; rdGetMatrixPPtr GetMatrixP; rdGetMatrixFiPtr GetMatrixFi; rdDerPtr Der; rdSolvePtr Solve; rdDecompPtr Decomp; rdGetMatrixDataPtr GetMatrixData; rdSngSolvePtr SngSolve; rdTransposeMatrixPtr TransposeMatrix; rdCopyMatrixBlockPtr CopyMatrixBlock; rdCharPolyCoeffsPtr CharPolyCoeffs; rddbalanPtr dbalan; rddelmhePtr delmhe; rddhqrPtr dhqr; rdEigenValuesPtr EigenValues; rdNormOfVectorPtr NormOfVector; } RdLinAlgData, PNTR RdLinAlgDataPtr;