45 static constexpr
double MIN_PIVOT= 0.0;
47 static constexpr
double POSITIVE_PIVOT= 1.0E+128;
215 void symbolic_fact_MMt(
int m,
int n,
int nz,
int *icola,
int *inirowa,
double *a,
216 int k=1,
int *prov_pfa= NULL,
int *prov_ipfa= NULL,
219 void symbolic_fact_MMt(
int nnu,
int nar,
int *src,
int *dst,
int k=1,
220 int *prov_pfa= NULL,
int *prov_ipfa= NULL,
223 void symbolic_fact_MMt(
int m,
int k=1);
225 void symbolic_fact_MMt(
int m,
double *d1_in,
int k=1);
227 void symbolic_fact_MMt(
int m,
double *d1_in,
double *d2_in,
int k=1);
229 void numeric_fact_MMt(
double *Theta,
int i_k=0);
235 void symbolic_fact_M(
int m,
int nz,
int *icola,
int *inirowa,
236 int *prov_pfa= NULL,
int *prov_ipfa= NULL,
239 void symbolic_fact_M(
int m);
241 void numeric_fact_M(
double *a);
250 int get_num_zero_pivots();
251 int get_num_semidef_matrix();
257 void symbolic_fact_MMt_sprsblkllt_general(
int n,
int nz,
int *icola,
int *inirowa,
double *a );
258 void symbolic_fact_MMt_sprsblkllt_network(
int *src,
int *dst);
260 void get_indices_a_general(
int *icola,
int *inirowa,
double *a);
263 void get_ipk_ipl_network(
int *src,
int *dst);
264 void get_pfa_ipfa_network();
265 void get_pfa_ipfa_general(
int *inp_ia,
int *inp_ja);
266 void symbolic_AThetaAt_A();
267 void get_ilnz_network();
268 void get_ilnz_ifillin_general(
int *inp_ia,
int *inp_ja);
270 void numeric_fact_MMt_sprsblkllt_general(
double *Theta,
int i_k);
271 void numeric_fact_MMt_sprsblkllt_network(
double *Theta,
int i_k);
272 void numeric_fact_MMt_identity(
double *Theta,
int i_k);
273 void numeric_fact_MMt_idty_idty(
double *Theta,
int i_k);
274 void numeric_fact_MMt_diagonal(
double *Theta,
int i_k);
275 void numeric_fact_MMt_diag_diag(
double *Theta,
int i_k);
277 void numeric_solve_MMt_sprsblkllt(
double *rhs,
int i_k,
WHO_PERMUTES whoperm);
278 void numeric_solve_MMt_diag(
double *rhs,
int i_k);
280 void symbolic_fact_M_sprsblkllt_general(
int nz,
int *icola,
int *inirowa);
282 void numeric_fact_M_sprsblkllt_general(
double *a);
283 void numeric_fact_M_diagonal(
double *d1);
285 void numeric_solve_M_sprsblkllt_general(
double *rhs,
WHO_PERMUTES whoperm);
286 void numeric_solve_M_diagonal(
double *rhs);
290 double *a,
int k,
int *prov_pfa,
int *prov_ipfa,
NUMBERING prov_pfa_numbering)
325 switch(chol_solver) {
327 symbolic_fact_MMt_sprsblkllt_general(n,nz,icola,inirowa,a);
371 switch(chol_solver) {
373 symbolic_fact_MMt_sprsblkllt_network(src,dst);
389 switch (type_matrix) {
392 numeric_fact_MMt_identity(Theta,i_k);
395 numeric_fact_MMt_idty_idty(Theta,i_k);
398 numeric_fact_MMt_diagonal(Theta,i_k);
401 numeric_fact_MMt_diag_diag(Theta,i_k);
406 switch(chol_solver) {
408 numeric_fact_MMt_sprsblkllt_general(Theta,i_k);
416 switch(chol_solver) {
418 numeric_fact_MMt_sprsblkllt_network(Theta,i_k);
443 switch (type_matrix) {
449 numeric_solve_MMt_diag(rhs,i_k);
455 switch(chol_solver) {
457 numeric_solve_MMt_sprsblkllt(rhs,i_k,whoperm);
468 int *prov_pfa,
int *prov_ipfa,
NUMBERING prov_pfa_numbering)
499 switch(chol_solver) {
501 symbolic_fact_M_sprsblkllt_general(nz,icola,inirowa);
517 switch (type_matrix) {
519 numeric_fact_M_diagonal(a);
522 switch(chol_solver) {
524 numeric_fact_M_sprsblkllt_general(a);
546 switch (type_matrix) {
548 numeric_solve_M_diagonal(rhs);
551 switch(chol_solver) {
553 numeric_solve_M_sprsblkllt_general(rhs,whoperm);
619 return (num_zero_pivots);
629 return (num_semidef_matrix);