19 #ifndef SELDON_FILE_WSMP_HXX
23 void wsetmaxthrds_(
int*);
24 void wsmp_initialize_();
27 #ifndef SELDON_WITH_MPI
28 void wssmp_(
int*,
int*,
int*,
double*,
double*,
int*,
int*,
29 double*,
int*,
int*,
double*,
int*,
int*,
int*,
double*);
31 void zssmp_(
int*,
int*,
int*,
void*,
void*,
int*,
int*,
32 void*,
int*,
int*,
void*,
int*,
int*,
int*,
double*);
34 void wgsmp_(
int*,
int*,
int*,
double*,
double*,
int*,
int*,
35 double*,
int*,
double*);
37 void zgsmp_(
int*,
int*,
int*,
void*,
void*,
int*,
int*,
40 void pwssmp_(
int*,
int*,
int*,
double*,
double*,
int*,
int*,
41 double*,
int*,
int*,
double*,
int*,
int*,
int*,
double*);
43 void pzssmp_(
int*,
int*,
int*,
void*,
void*,
int*,
int*,
44 void*,
int*,
int*,
void*,
int*,
int*,
int*,
double*);
46 void pwgsmp_(
int*,
int*,
int*,
double*,
double*,
int*,
int*,
47 double*,
int*,
double*);
49 void pzgsmp_(
int*,
int*,
int*,
void*,
void*,
int*,
int*,
63 bool refine_solution, use_pivoting;
64 bool cholesky, symmetric, distributed;
66 IVect permut, inverse_permut;
67 double threshold_pivot;
69 void CallWssmp(
int*,
int*,
int*, T*, T*,
int*,
int*,
70 T*,
int*,
int*, T*,
int*,
int*,
int*,
double*);
72 void CallWgsmp(
int*,
int*,
int*, T*, T*,
int*,
int*,
79 bool UseInteger8()
const;
84 void ShowFullHistory();
87 void SetCholeskyFacto(
bool chol);
88 int GetInfoFactorization()
const;
92 size_t GetMemorySize()
const;
96 template<
class Storage,
class Allocator>
98 bool keep_matrix =
false);
100 template<
class Storage,
class Allocator>
102 bool keep_matrix =
false);
107 void FactorizeUnsymmetric();
108 void FactorizeSymmetric();
115 #ifdef SELDON_WITH_MPI
116 void FactorizeDistributedMatrix(MPI_Comm& comm_facto,
Vector<long>& Ptr,
119 bool sym,
bool keep_matrix =
false);
121 void FactorizeDistributedMatrix(MPI_Comm& comm_facto,
Vector<int64_t>& Ptr,
124 bool sym,
bool keep_matrix =
false);
127 void FactorizeParallel(MPI_Comm& comm_facto,
131 bool sym,
bool keep_matrix =
false);
133 void FactorizeParallel(MPI_Comm& comm_facto,
136 bool sym,
bool keep_matrix =
false);
138 void SolveDistributed(MPI_Comm& comm_facto,
142 void SolveDistributed(MPI_Comm& comm_facto,
146 void SolveDistributed(MPI_Comm& comm_facto,
154 template<
class T,
class Prop,
class Storage,
class Allocator>
156 bool keep_matrix =
false);
158 template<
class T,
class Allocator>
161 template<
class T,
class Allocator>
165 template<
class T,
class Prop,
class Allocator>
169 template<
class T,
class Prop,
class Allocator>
173 template<
class Allocator>
177 template<
class Allocator>
182 template<
class Allocator>
183 void SolveLU(
MatrixWsmp<complex<double> >& mat_lu,
186 template<
class Allocator>
193 #define SELDON_FILE_WSMP_HXX