32 #if (!defined(HEX_LU_UMFPACK) && defined(WITH_UMFPACK)) 33 #define HEX_LU_UMFPACK 41 #include "hex-csrmatrix.h" 50 #define UMFPACK_DEFAULTS_F umfpack_zl_defaults 51 #define UMFPACK_SYMBOLIC_F umfpack_zl_symbolic 52 #define UMFPACK_FREE_SYMBOLIC_F umfpack_zl_free_symbolic 53 #define UMFPACK_NUMERIC_F umfpack_zl_numeric 54 #define UMFPACK_SAVE_NUMERIC_F umfpack_zl_save_numeric 55 #define UMFPACK_LOAD_NUMERIC_F umfpack_zl_load_numeric 56 #define UMFPACK_FREE_NUMERIC_F umfpack_zl_free_numeric 57 #define UMFPACK_SOLVE_F umfpack_zl_solve 58 #define UMFPACK_GET_LUNZ_F umfpack_zl_get_lunz 59 #define UMFPACK_REPORT_STATUS_F umfpack_zl_report_status 60 #define UMFPACK_COL_TO_TRIPLET_F umfpack_zl_col_to_triplet 61 #define UMFPACK_TRIPLET_TO_COL_F umfpack_zl_triplet_to_col 63 #define UMFPACK_DEFAULTS_F umfpack_zi_defaults 64 #define UMFPACK_SYMBOLIC_F umfpack_zi_symbolic 65 #define UMFPACK_FREE_SYMBOLIC_F umfpack_zi_free_symbolic 66 #define UMFPACK_NUMERIC_F umfpack_zi_numeric 67 #define UMFPACK_SAVE_NUMERIC_F umfpack_zi_save_numeric 68 #define UMFPACK_LOAD_NUMERIC_F umfpack_zi_load_numeric 69 #define UMFPACK_FREE_NUMERIC_F umfpack_zi_free_numeric 70 #define UMFPACK_SOLVE_F umfpack_zi_solve 71 #define UMFPACK_GET_LUNZ_F umfpack_zi_get_lunz 72 #define UMFPACK_REPORT_STATUS_F umfpack_zi_report_status 73 #define UMFPACK_COL_TO_TRIPLET_F umfpack_zi_col_to_triplet 74 #define UMFPACK_TRIPLET_TO_COL_F umfpack_zi_triplet_to_col 95 :
LUft(), numeric_(
nullptr),
info_(UMFPACK_INFO) {}
107 NumberArray<double>
const &
info ()
const {
return info_; }
110 virtual bool valid ()
const;
113 virtual std::size_t
size ()
const;
116 virtual Real
cond ()
const;
119 virtual void solve (
const cArrayView b, cArrayView x,
int eqs)
const;
122 virtual void save (std::string name)
const;
125 virtual void load (std::string name,
bool throw_on_io_failure =
true);
128 virtual void drop ();
136 NumberArray<LU_int_t> p_;
137 NumberArray<LU_int_t> i_;
138 NumberArray<std::complex<double>> x_;
146 #endif // WITH_UMFPACK virtual void factorize(CsrMatrix< LU_int_t, Complex > const &matrix, LUftData data)
Factorize.
Definition: lu-umfpack.cpp:69
virtual Real cond() const
Return condition number.
Definition: lu-umfpack.cpp:64
LUft_UMFPACK const & operator=(LUft_UMFPACK const &)=delete
virtual bool valid() const
Validity indicator.
Definition: lu-umfpack.cpp:59
LU factorization object.
Definition: luft.h:74
virtual void drop()
Release memory.
Definition: lu-umfpack.cpp:244
NumberArray< double > const & info() const
Return factorization information.
Definition: lu-umfpack.h:107
virtual ~LUft_UMFPACK()
Destructor.
Definition: lu-umfpack.h:98
NumberArray< double > info_
Set of status flags produced by UMFPACK.
Definition: lu-umfpack.h:143
virtual void save() const
Definition: luft.h:181
LU factorization object - UMFPACK specialization.
Definition: lu-umfpack.h:86
virtual void load()
Definition: luft.h:187
virtual std::size_t size() const
Return LU byte size.
Definition: lu-umfpack.cpp:40
factorizerRunTimeSelectionDefinitions(LUft_UMFPACK, "umfpack") LUft_UMFPACK()
Default constructor.
Definition: lu-umfpack.h:91
virtual void solve(const cArrayView b, cArrayView x, int eqs) const
Solve equations.
Definition: lu-umfpack.cpp:142