#ifndef AMG_C_DPREC_ #define AMG_C_DPREC_ #include "amg_const.h" #include "psb_base_cbind.h" #include "psb_prec_cbind.h" #include "psb_krylov_cbind.h" /* Object handle related routines */ /* Note: amg_get_XXX_handle returns: <= 0 unsuccessful */ /* >0 valid handle */ #ifdef __cplusplus extern "C" { #endif typedef struct AMG_C_DPREC { void *dprec; } amg_c_dprec; amg_c_dprec* amg_c_dprec_new(); psb_i_t amg_c_dprec_delete(amg_c_dprec* p); psb_i_t amg_c_dprecinit(psb_c_ctxt cctxt, amg_c_dprec *ph, const char *ptype); psb_i_t amg_c_dprecseti(amg_c_dprec *ph, const char *what, psb_i_t val); psb_i_t amg_c_dprecsetc(amg_c_dprec *ph, const char *what, const char *val); psb_i_t amg_c_dprecsetr(amg_c_dprec *ph, const char *what, double val); psb_i_t amg_c_dprecbld(psb_c_dspmat *ah, psb_c_descriptor *cdh, amg_c_dprec *ph); psb_i_t amg_c_dhierarchy_build(psb_c_dspmat *ah, psb_c_descriptor *cdh, amg_c_dprec *ph); psb_i_t amg_c_dsmoothers_build(psb_c_dspmat *ah, psb_c_descriptor *cdh, amg_c_dprec *ph); psb_i_t amg_c_dprecfree(amg_c_dprec *ph); psb_i_t amg_c_dprecbld_opt(psb_c_dspmat *ah, psb_c_descriptor *cdh, amg_c_dprec *ph, const char *afmt); psb_i_t amg_c_ddescr(amg_c_dprec *ph); psb_i_t amg_c_dkrylov(const char *method, psb_c_dspmat *ah, amg_c_dprec *ph, psb_c_dvector *bh, psb_c_dvector *xh, psb_c_descriptor *cdh, psb_c_SolverOptions *opt); #ifdef __cplusplus } #endif #endif