1 /****************************************************************************/ 2 /* mlsolv.h */ 3 /****************************************************************************/ 4 /* */ 5 /* Multi-Level SOLVers */ 6 /* */ 7 /* Copyright (C) 1992-1996 Tomas Skalicky. All rights reserved. */ 8 /* */ 9 /****************************************************************************/ 10 /* */ 11 /* ANY USE OF THIS CODE CONSTITUTES ACCEPTANCE OF THE TERMS */ 12 /* OF THE COPYRIGHT NOTICE (SEE FILE COPYRGHT.H) */ 13 /* */ 14 /****************************************************************************/ 15 16 #ifndef MLSOLV_H 17 #define MLSOLV_H 18 19 #include "laspack_config.h" 20 #ifdef _LP_INCLUDED_FROM_CPLUSPLUS 21 extern "C" { 22 #endif 23 24 25 #include "qvector.h" 26 #include "matrix.h" 27 #include "qmatrix.h" 28 #include "itersolv.h" 29 #include "copyrght.h" 30 31 QVector *MGStep(int NoLevels, QMatrix *A, QVector *x, QVector *b, 32 Matrix *R, Matrix *P, int Level, int Gamma, 33 IterProcType SmoothProc, int Nu1, int Nu2, 34 PrecondProcType PrecondProc, _LPDouble Omega, 35 IterProcType SolvProc, int NuC, 36 PrecondProcType PrecondProcC, _LPDouble OmegaC); 37 QVector *MGIter(int NoLevels, QMatrix *A, QVector *x, QVector *b, 38 Matrix *R, Matrix *P, int MaxIter, int Gamma, 39 IterProcType SmoothProc, int Nu1, int Nu2, 40 PrecondProcType PrecondProc, _LPDouble Omega, 41 IterProcType SolvProc, int NuC, 42 PrecondProcType PrecondProcC, _LPDouble OmegaC); 43 QVector *NestedMGIter(int NoLevels, QMatrix *A, QVector *x, QVector *b, 44 Matrix *R, Matrix *P, int Gamma, 45 IterProcType SmoothProc, int Nu1, int Nu2, 46 PrecondProcType PrecondProc, _LPDouble Omega, 47 IterProcType SolvProc, int NuC, 48 PrecondProcType PrecondProcC, _LPDouble OmegaC); 49 QVector *MGPCGIter(int NoLevels, QMatrix *A, QVector *x, QVector *b, 50 Matrix *R, Matrix *P, int MaxIter, int NoMGIter, int Gamma, 51 IterProcType SmoothProc, int Nu1, int Nu2, 52 PrecondProcType PrecondProc, _LPDouble Omega, 53 IterProcType SolvProc, int NuC, 54 PrecondProcType PrecondProcC, _LPDouble OmegaC); 55 QVector *BPXPrecond(int NoLevels, QMatrix *A, QVector *y, QVector *c, 56 Matrix *R, Matrix *P, int Level, 57 IterProcType SmoothProc, int Nu, 58 PrecondProcType PrecondProc, _LPDouble Omega, 59 IterProcType SmoothProcC, int NuC, 60 PrecondProcType PrecondProcC, _LPDouble OmegaC); 61 QVector *BPXPCGIter(int NoLevels, QMatrix *A, QVector *x, QVector *b, 62 Matrix *R, Matrix *P, int MaxIter, 63 IterProcType SmoothProc, int Nu, 64 PrecondProcType PrecondProc, _LPDouble Omega, 65 IterProcType SmoothProcC, int NuC, 66 PrecondProcType PrecondProcC, _LPDouble OmegaC); 67 68 #ifdef _LP_INCLUDED_FROM_CPLUSPLUS 69 } 70 #endif 71 72 #endif /* MLSOLV_H */ 73