24 #if !defined (octave_CSparse_h)
25 #define octave_CSparse_h 1
55 typedef void (*solve_singularity_handler) (
double rcond);
113 bool is_hermitian (
void)
const;
150 double& rcond,
const bool force =
false,
151 const bool calccond =
true)
const;
154 double& rcond,
const bool force =
false,
155 const bool calccond =
true)
const;
163 double& rcond,
int force = 0,
164 int calc_cond = 1)
const;
169 int calc_cond = 1)
const;
174 double& rcond, solve_singularity_handler sing_handler,
175 bool calc_cond =
false)
const;
179 solve_singularity_handler sing_handler,
180 bool calc_cond =
false)
const;
184 solve_singularity_handler sing_handler,
185 bool calc_cond =
false)
const;
189 solve_singularity_handler sing_handler,
190 bool calc_cond =
false)
const;
195 solve_singularity_handler sing_handler,
196 bool calc_cond =
false)
const;
200 solve_singularity_handler sing_handler,
201 bool calc_cond =
false)
const;
205 solve_singularity_handler sing_handler,
206 bool calc_cond =
false)
const;
210 solve_singularity_handler sing_handler,
211 bool calc_cond =
false)
const;
216 solve_singularity_handler sing_handler,
217 bool calc_cond =
false)
const;
221 solve_singularity_handler sing_handler,
222 bool calc_cond =
false)
const;
226 solve_singularity_handler sing_handler,
227 bool calc_cond =
false)
const;
231 solve_singularity_handler sing_handler,
232 bool calc_cond =
false)
const;
237 solve_singularity_handler sing_handler,
238 bool calc_cond =
false)
const;
242 solve_singularity_handler sing_handler,
243 bool calc_cond =
false)
const;
247 solve_singularity_handler sing_handler,
248 bool calc_cond =
false)
const;
252 solve_singularity_handler sing_handler,
253 bool calc_cond =
false)
const;
258 solve_singularity_handler sing_handler,
259 bool calc_cond =
false)
const;
263 solve_singularity_handler sing_handler,
264 bool calc_cond =
false)
const;
268 solve_singularity_handler sing_handler,
269 bool calc_cond =
false)
const;
273 solve_singularity_handler sing_handler,
274 bool calc_cond =
false)
const;
278 Matrix &Info, solve_singularity_handler sing_handler,
279 bool calc_cond)
const;
283 solve_singularity_handler sing_handler,
284 bool calc_cond =
false)
const;
288 solve_singularity_handler sing_handler,
289 bool calc_cond =
false)
const;
293 solve_singularity_handler sing_handler,
294 bool calc_cond =
false)
const;
298 solve_singularity_handler sing_handler,
299 bool calc_cond =
false)
const;
307 double& rcond)
const;
309 double& rcond, solve_singularity_handler sing_handler,
310 bool singular_fallback =
true)
const;
319 solve_singularity_handler sing_handler,
320 bool singular_fallback =
true)
const;
329 solve_singularity_handler sing_handler,
330 bool singular_fallback =
true)
const;
340 solve_singularity_handler sing_handler,
341 bool singular_fallback =
true)
const;
350 solve_singularity_handler sing_handler)
const;
360 solve_singularity_handler sing_handler)
const;
366 double& rcond)
const;
368 solve_singularity_handler sing_handler)
const;
373 double& rcond)
const;
376 solve_singularity_handler sing_handler)
const;
382 double& rcond)
const;
385 solve_singularity_handler sing_handler)
const;
394 solve_singularity_handler sing_handler)
const;
400 double& rcond)
const;
403 solve_singularity_handler sing_handler)
const;
412 solve_singularity_handler sing_handler)
const;
419 bool inv =
false)
const;
423 bool any_element_is_nan (
void)
const;
424 bool any_element_is_inf_or_nan (
void)
const;
425 bool all_elements_are_real (
void)
const;
426 bool all_integers (
double& max_val,
double& min_val)
const;
427 bool too_large_for_float (
void)
const;
444 friend OCTAVE_API std::ostream&
operator << (std::ostream& os,
446 friend OCTAVE_API std::istream&
operator >> (std::istream& is,
550 #ifdef USE_64_BIT_IDX_T
551 #define UMFPACK_ZNAME(name) umfpack_zl_ ## name
553 #define UMFPACK_ZNAME(name) umfpack_zi_ ## name
SparseComplexMatrix(const ComplexNDArray &a)
boolMatrix matrix_value(void) const
#define SPARSE_SMSM_BOOL_OP_DECLS(M1, M2, API)
SparseComplexMatrix(const MSparse< Complex > &a)
bool operator!=(const dim_vector &a, const dim_vector &b)
const octave_base_value const Array< octave_idx_type > & ra_idx
std::istream & operator>>(std::istream &is, SparseBoolMatrix &a)
static ComplexMatrix ltsolve(const SparseComplexMatrix &, const ColumnVector &, const ComplexMatrix &)
SparseBoolMatrix ipermute(const Array< octave_idx_type > &vec) const
OCTAVE_API ComplexMatrix trans_mul(const SparseComplexMatrix &, const ComplexMatrix &)
SparseBoolMatrix & operator=(const SparseBoolMatrix &a)
ComplexNDArray concat(NDArray &ra, ComplexNDArray &rb, const Array< octave_idx_type > &ra_idx)
SparseComplexMatrix(const dim_vector &dv, octave_idx_type nz=0)
OCTAVE_API SparseComplexMatrix max(const Complex &c, const SparseComplexMatrix &m)
#define SPARSE_SMS_CMP_OP_DECLS(M, S, API)
SparseBoolMatrix permute(const Array< octave_idx_type > &vec, bool inv=false) const
#define SPARSE_SMS_BOOL_OP_DECLS(M, S, API)
SparseBoolMatrix index(const idx_vector &i, bool resize_ok) const
MSparse< T > transpose(void) const
#define SPARSE_SSM_CMP_OP_DECLS(S, M, API)
SparseBoolMatrix reshape(const dim_vector &new_dims) const
SparseMatrix sum(int dim=-1) const
SparseComplexMatrix transpose(void) const
SparseComplexMatrix(void)
SparseComplexMatrix(octave_idx_type r, octave_idx_type c)
SparseComplexMatrix(const SparseComplexMatrix &a)
ComplexColumnVector conj(const ComplexColumnVector &a)
#define SPARSE_SMSM_CMP_OP_DECLS(M1, M2, API)
SparseBoolMatrix all(int dim=-1) const
#define SPARSE_SSM_BOOL_OP_DECLS(S, M, API)
SparseComplexMatrix(octave_idx_type r, octave_idx_type c, Complex val)
OCTAVE_API SparseComplexMatrix operator*(const SparseMatrix &, const SparseComplexMatrix &)
OCTAVE_API ComplexMatrix mul_herm(const ComplexMatrix &, const SparseComplexMatrix &)
OCTAVE_API SparseComplexMatrix operator+(const ComplexDiagMatrix &, const SparseMatrix &)
SparseBoolMatrix & insert(const SparseBoolMatrix &a, octave_idx_type r, octave_idx_type c)
SparseComplexMatrix(octave_idx_type r, octave_idx_type c, octave_idx_type num_nz)
SparseBoolMatrix any(int dim=-1) const
SparseBoolMatrix squeeze(void) const
bool operator==(const dim_vector &a, const dim_vector &b)
SparseComplexMatrix(octave_idx_type r, octave_idx_type c, double val)
OCTAVE_API SparseComplexMatrix operator-(const ComplexDiagMatrix &, const SparseMatrix &)
SparseComplexMatrix(const Sparse< Complex > &a)
static ComplexMatrix utsolve(const SparseComplexMatrix &, const ColumnVector &, const ComplexMatrix &)
template OCTAVE_API std::ostream & operator<<(std::ostream &, const Array< bool > &)
#define SPARSE_FORWARD_DEFS(B, R, F, T)
OCTAVE_API ComplexMatrix mul_trans(const ComplexMatrix &, const SparseComplexMatrix &)
OCTAVE_API ComplexMatrix herm_mul(const SparseComplexMatrix &, const ComplexMatrix &)
MSparse< T > & operator=(const MSparse< T > &a)
SparseBoolMatrix diag(octave_idx_type k=0) const
octave_value operator!(const octave_value &a)
std::complex< double > Complex
OCTAVE_API SparseComplexMatrix min(const Complex &c, const SparseComplexMatrix &m)
SparseComplexMatrix(const ComplexMatrix &a)
SparseComplexMatrix(const Array< Complex > &a, const idx_vector &r, const idx_vector &c, octave_idx_type nr=-1, octave_idx_type nc=-1, bool sum_terms=true, octave_idx_type nzm=-1)
SparseComplexMatrix(const SparseComplexMatrix &a, const dim_vector &dv)