51 typedef VEC *(*Fun_Ax)();
80 #ifdef PROTOTYPES_IN_STRUCT 113 #define INULL (ITER *)NULL 134 #define ITER_LIMIT_DEF 1000 135 #define ITER_EPS_DEF 1e-6 140 #define iter_Ax(ip,fun,fun_par) \ 141 (ip->Ax=(Fun_Ax)(fun),ip->A_par=(void *)(fun_par),0) 142 #define iter_ATx(ip,fun,fun_par) \ 143 (ip->ATx=(Fun_Ax)(fun),ip->AT_par=(void *)(fun_par),0) 144 #define iter_Bx(ip,fun,fun_par) \ 145 (ip->Bx=(Fun_Ax)(fun),ip->B_par=(void *)(fun_par),0) 148 #define ITER_FREE(ip) (iter_free(ip), (ip)=(ITER *)NULL)
MAT * iter_arnoldi(ITER *ip, Real *h, MAT *Q, MAT *H)
VEC * iter_mgcr(ITER *ip)
VEC * iter_cgne(ITER *ip)
int(* Fun_stp_crt)(ITER *, double, VEC *, VEC *)
ITER * iter_copy2(ITER *ip1, ITER *ip2)
ITER * iter_copy(ITER *ip1, ITER *ip2)
MAT * iter_sparnoldi(SPMAT *A, VEC *x0, int k, Real *h, MAT *Q, MAT *H)
VEC * iter_spgmres(SPMAT *A, SPMAT *B, VEC *b, double tol, VEC *x, int k, int limit, int *steps)
VEC * iter_lanczos2(ITER *ip, VEC *evals, VEC *err_est)
int iter_std_stop_crit(ITER *ip, double nres, VEC *res, VEC *Bres)
VEC * iter_spmgcr(SPMAT *A, SPMAT *B, VEC *b, double tol, VEC *x, int k, int limit, int *steps)
SPMAT * iter_gen_nonsym(int m, int n, int nrow, double diag)
void iter_lanczos(ITER *ip, VEC *a, VEC *b, Real *beta2, MAT *Q)
VEC * iter_spcg(SPMAT *A, SPMAT *LLT, VEC *b, double eps, VEC *x, int limit, int *steps)
ITER * iter_get(int lenb, int lenx)
void iter_std_info(ITER *ip, double nres, VEC *res, VEC *Bres)
int const size_t const size_t n
VEC * iter_lsqr(ITER *ip)
VEC * iter_gmres(ITER *ip)
MAT * iter_arnoldi_iref(ITER *ip, Real *h, MAT *Q, MAT *H)
VEC *(* Fun_Ax)(void *, VEC *, VEC *)
VEC * iter_splanczos2(SPMAT *A, int m, VEC *x0, VEC *evals, VEC *err_est)
SPMAT * iter_gen_sym(int n, int nrow)
VEC * iter_splsqr(SPMAT *A, VEC *b, double tol, VEC *x, int limit, int *steps)
SPMAT * iter_gen_nonsym_posdef(int n, int nrow)
void iter_dump(FILE *fp, ITER *ip)
void iter_splanczos(SPMAT *A, int m, VEC *x0, VEC *a, VEC *b, Real *beta2, MAT *Q)
VEC * iter_spcgne(SPMAT *A, SPMAT *B, VEC *b, double eps, VEC *x, int limit, int *steps)
void(* Fun_info)(ITER *, double, VEC *, VEC *)
VEC * iter_cgs(ITER *ip, VEC *r0)
VEC * iter_spcgs(SPMAT *A, SPMAT *B, VEC *b, VEC *r0, double eps, VEC *x, int limit, int *steps)
ITER * iter_resize(ITER *ip, int lenb, int lenx)