/* stagen.h supposed to be included earlier */ #if DEB_MEM #define DEBPAR , char *file, int line #define DEBARG ,file,line #else #define DEBPAR #define DEBARG #endif typedef VoidPtr bvpMatrix; #define VAR FloatHi #define VARPTR FloatHiPtr typedef EntryPtr(void,InitPtr,(StdLinAlgDataPtr stdptr, Int2 nphase, Int2 ncol, Int2 ntst, Int2 nbc, Int2 nint, Int2 nfree)); typedef EntryPtr(void,bvpPrintVectorPtr,(Vector vp, CharPtr title)); typedef EntryPtr(void,SetVectorElementFAPtr,(Vector vp, Int2 i, Int2 j, VAR e)); typedef EntryPtr(VAR,GetVectorElementFAPtr,(Vector vp, Int2 i, Int2 j)); typedef EntryPtr(void,SetVectorElementFCPtr,(Vector vp, Int2 i, VAR e)); typedef EntryPtr(VAR,GetVectorElementFCPtr,(Vector vp, Int2 i)); typedef EntryPtr(void,bvpPrintMatrixPtr,(bvpMatrix mp, CharPtr title, int Level)); typedef EntryPtr(bvpMatrix,bvpCreateMatrixPtr,(int n, int m DEBPAR)); typedef EntryPtr(bvpMatrix,bvpDestroyMatrixPtr,(bvpMatrix mp)); typedef EntryPtr(bvpMatrix,bvpCopyMatrixPtr,(bvpMatrix from, Matrix to DEBPAR)); typedef EntryPtr(void,bvpClearMatrixPtr,(bvpMatrix mp)); typedef EntryPtr(Int2,bvpGetRowNumPtr,(bvpMatrix mp)); typedef EntryPtr(Int2,bvpGetColNumPtr,(bvpMatrix mp)); typedef EntryPtr(void,SetMatrixAElementPtr,(bvpMatrix mp, Int2 i, Int2 j, Int2 k, VAR e)); typedef EntryPtr(VAR,GetMatrixAElementPtr,(bvpMatrix mp, Int2 i, Int2 j, Int2 k)); typedef EntryPtr(void,SetMatrixBElementPtr,(bvpMatrix mp, Int2 i, Int2 j, Int2 k, VAR e)); typedef EntryPtr(VAR,GetMatrixBElementPtr,(bvpMatrix mp, Int2 i, Int2 j, Int2 k)); typedef EntryPtr(void,SetMatrixCElementPtr,(bvpMatrix mp, Int2 i, Int2 j, Int2 k, VAR e)); typedef EntryPtr(VAR,GetMatrixCElementPtr,(bvpMatrix mp, Int2 i, Int2 j, Int2 k)); typedef EntryPtr(void,SetMatrixDElementPtr,(bvpMatrix mp, Int2 i, Int2 j, VAR e)); typedef EntryPtr(VAR,GetMatrixDElementPtr,(bvpMatrix mp, Int2 i, Int2 j)); typedef EntryPtr(VAR,GetMatrixEElementPtr,(bvpMatrix mp, Int2 i, Int2 j)); typedef EntryPtr(VAR,GetMatrixP0ElementPtr,(bvpMatrix mp, Int2 i, Int2 j)); typedef EntryPtr(VAR,GetMatrixP1ElementPtr,(bvpMatrix mp, Int2 i, Int2 j)); typedef EntryPtr(Vector,bvpMultiplyMatrixVectorPtr,(bvpMatrix mp, Vector vp, Vector vpres DEBPAR)); typedef EntryPtr(bvpMatrix,bvpAppendMatrixVectorPtr,(bvpMatrix mp, Vector vp, bvpMatrix mpres DEBPAR)); typedef EntryPtr(void,bvpSolvePtr,(bvpMatrix AA, Vector BB)); typedef EntryPtr(Int2,bvpDecompPtr,(bvpMatrix AA DEBPAR)); typedef EntryPtr(VAR,bvpNormOfVectorPtr,(Vector vp)); typedef EntryPtr(void,bvpSingSolvePtr,(bvpMatrix AA, Vector BB)); typedef EntryPtr(VARPTR,bvpGetMatrixAPtr,(bvpMatrix mp, Int2 k, Int2Ptr mAj)); /* The number and order of fields must be the same as in /stdlinalg partition in file CrvTypes.con */ typedef struct { InitPtr Init; bvpPrintVectorPtr PrintVector; SetVectorElementFAPtr SetVectorElementFA; GetVectorElementFAPtr GetVectorElementFA; SetVectorElementFCPtr SetVectorElementFC; GetVectorElementFCPtr GetVectorElementFC; bvpPrintMatrixPtr PrintMatrix; bvpCreateMatrixPtr CreateMatrix; bvpDestroyMatrixPtr DestroyMatrix; bvpCopyMatrixPtr CopyMatrix; bvpClearMatrixPtr ClearMatrix; bvpGetRowNumPtr GetRowNum; bvpGetColNumPtr GetColNum; SetMatrixAElementPtr SetMatrixAElement; GetMatrixAElementPtr GetMatrixAElement; SetMatrixBElementPtr SetMatrixBElement; GetMatrixBElementPtr GetMatrixBElement; SetMatrixCElementPtr SetMatrixCElement; GetMatrixCElementPtr GetMatrixCElement; SetMatrixDElementPtr SetMatrixDElement; GetMatrixDElementPtr GetMatrixDElement; GetMatrixEElementPtr GetMatrixEElement; GetMatrixP0ElementPtr GetMatrixP0Element; GetMatrixP1ElementPtr GetMatrixP1Element; bvpMultiplyMatrixVectorPtr MultiplyMatrixVector; bvpAppendMatrixVectorPtr AppendMatrixVector; bvpSolvePtr Solve; bvpDecompPtr Decomp; bvpNormOfVectorPtr NormOfVector; bvpSingSolvePtr SingSolve; bvpGetMatrixAPtr GetMatrixA; } BvpLinAlgData, PNTR BvpLinAlgDataPtr; #if DEB_MEM #define bvpMultiplyMatrixVector(mp,vp,vpres) bvpMultiplyMatrixVector(mp,vp,vpres,__FILE__,__LINE__) #define bvpCreateMatrix(n,m) bvpCreateMatrix(n,m,__FILE__,__LINE__) #define bvpCopyMatrix(from,to) bvpCopyMatrix(from,to,__FILE__,__LINE__) #define bvpAppendMatrixVector(mp,vp,mpres) bvpAppendMatrixVector(mp,vp,mpres,__FILE__,__LINE__) #define bvpDecomp(AA) bvpDecomp(AA,__FILE__,__LINE__) #endif