26 #if ! defined (octave_dSparse_h)
27 #define octave_dSparse_h 1
29 #include "octave-config.h"
55 typedef void (*solve_singularity_handler) (
double rcond);
87 :
MSparse<double> (a,
r, c, nr, nc, sum_terms, nzm) { }
105 bool issymmetric (
void)
const;
142 double& rcond,
const bool force =
false,
143 const bool calccond =
true)
const;
146 double& rcond,
const bool force =
false,
147 const bool calccond =
true)
const;
154 double& rcond,
bool force =
false,
155 bool calc_cond =
true)
const;
157 DET determinant (
void)
const;
160 bool calc_cond =
true)
const;
165 double& rcond, solve_singularity_handler sing_handler,
166 bool calc_cond =
false)
const;
170 solve_singularity_handler sing_handler,
171 bool calc_cond =
false)
const;
175 solve_singularity_handler sing_handler,
176 bool calc_cond =
false)
const;
180 solve_singularity_handler sing_handler,
181 bool calc_cond =
false)
const;
185 double& rcond, solve_singularity_handler sing_handler,
186 bool calc_cond =
false)
const;
190 solve_singularity_handler sing_handler,
191 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 double& rcond, solve_singularity_handler sing_handler,
206 bool calc_cond =
false)
const;
210 solve_singularity_handler sing_handler,
211 bool calc_cond =
false)
const;
215 solve_singularity_handler sing_handler,
216 bool calc_cond =
false)
const;
220 solve_singularity_handler sing_handler,
221 bool calc_cond =
false)
const;
225 double& rcond, solve_singularity_handler sing_handler,
226 bool calc_cond =
false)
const;
230 solve_singularity_handler sing_handler,
231 bool calc_cond =
false)
const;
235 solve_singularity_handler sing_handler,
236 bool calc_cond =
false)
const;
240 solve_singularity_handler sing_handler,
241 bool calc_cond =
false)
const;
245 double& rcond, solve_singularity_handler sing_handler,
246 bool calc_cond =
false)
const;
250 solve_singularity_handler sing_handler,
251 bool calc_cond =
false)
const;
255 solve_singularity_handler sing_handler,
256 bool calc_cond =
false)
const;
260 solve_singularity_handler sing_handler,
261 bool calc_cond =
false)
const;
265 Matrix& Info, solve_singularity_handler sing_handler,
266 bool calc_cond =
false)
const;
269 double& rcond, solve_singularity_handler sing_handler,
270 bool calc_cond =
false)
const;
274 solve_singularity_handler sing_handler,
275 bool calc_cond =
false)
const;
279 solve_singularity_handler sing_handler,
280 bool calc_cond =
false)
const;
284 solve_singularity_handler sing_handler,
285 bool calc_cond =
false)
const;
292 double& rcond)
const;
294 double& rcond, solve_singularity_handler sing_handler,
295 bool singular_fallback =
true)
const;
304 solve_singularity_handler sing_handler,
305 bool singular_fallback =
true)
const;
314 solve_singularity_handler sing_handler,
315 bool singular_fallback =
true)
const;
325 solve_singularity_handler sing_handler,
326 bool singular_fallabck =
true)
const;
335 solve_singularity_handler sing_handler)
const;
345 solve_singularity_handler sing_handler)
const;
352 solve_singularity_handler sing_handler)
const;
357 double& rcond)
const;
360 solve_singularity_handler sing_handler)
const;
365 double& rcond)
const;
368 solve_singularity_handler sing_handler)
const;
377 solve_singularity_handler sing_handler)
const;
382 double& rcond)
const;
385 solve_singularity_handler sing_handler)
const;
394 solve_singularity_handler sing_handler)
const;
398 bool any_element_is_negative (
bool =
false)
const;
400 bool any_element_is_inf_or_nan (
void)
const;
401 bool any_element_not_one_or_zero (
void)
const;
402 bool all_elements_are_zero (
void)
const;
403 bool all_elements_are_int_or_inf_or_nan (
void)
const;
404 bool all_integers (
double& max_val,
double& min_val)
const;
405 bool too_large_for_float (
void)
const;
428 bool inv =
false)
const;
434 friend OCTAVE_API std::ostream&
operator << (std::ostream& os,
436 friend OCTAVE_API std::istream&
operator >> (std::istream& is,
template OCTAVE_API std::ostream & operator<<(std::ostream &, const Array< bool > &)
ComplexNDArray concat(NDArray &ra, ComplexNDArray &rb, const Array< octave_idx_type > &ra_idx)
#define SPARSE_FORWARD_DEFS(B, R, F, T)
#define SPARSE_SMSM_CMP_OP_DECLS(M1, M2, API)
#define SPARSE_SMSM_BOOL_OP_DECLS(M1, M2, API)
#define SPARSE_SSM_CMP_OP_DECLS(S, M, API)
#define SPARSE_SMS_BOOL_OP_DECLS(M, S, API)
#define SPARSE_SSM_BOOL_OP_DECLS(S, M, API)
#define SPARSE_SMS_CMP_OP_DECLS(M, S, API)
std::istream & operator>>(std::istream &is, SparseBoolMatrix &a)
MSparse< T > transpose(void) const
MSparse< T > & operator=(const MSparse< T > &a)
SparseBoolMatrix & insert(const SparseBoolMatrix &a, octave_idx_type r, octave_idx_type c)
SparseBoolMatrix reshape(const dim_vector &new_dims) const
SparseBoolMatrix ipermute(const Array< octave_idx_type > &vec) const
SparseBoolMatrix permute(const Array< octave_idx_type > &vec, bool inv=false) const
SparseBoolMatrix index(const idx_vector &i, bool resize_ok) const
SparseBoolMatrix diag(octave_idx_type k=0) const
SparseBoolMatrix squeeze(void) const
SparseBoolMatrix all(int dim=-1) const
boolMatrix matrix_value(void) const
SparseMatrix sum(int dim=-1) const
SparseBoolMatrix & operator=(const SparseBoolMatrix &a)
SparseBoolMatrix any(int dim=-1) const
SparseMatrix(const Sparse< double > &a)
ComplexMatrix solve(const ComplexMatrix &b) const
SparseMatrix(const SparseMatrix &a, const dim_vector &dv)
SparseMatrix(const SparseMatrix &a)
SparseMatrix(octave_idx_type r, octave_idx_type c)
SparseMatrix transpose(void) const
SparseMatrix(const MSparse< double > &a)
SparseMatrix(const Array< double > &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)
SparseMatrix(octave_idx_type r, octave_idx_type c, octave_idx_type num_nz)
SparseMatrix(const NDArray &a)
SparseMatrix(const PermMatrix &a)
SparseMatrix(const Matrix &a)
SparseMatrix hermitian(void) const
SparseMatrix(const dim_vector &dv, octave_idx_type nz=0)
SparseMatrix(octave_idx_type r, octave_idx_type c, double val)
bool any_element_is_nan(void) const
Vector representing the dimensions (size) of an Array.
OCTAVE_API Matrix trans_mul(const SparseMatrix &a, const Matrix &b)
OCTAVE_API SparseMatrix operator+(const DiagMatrix &, const SparseMatrix &)
OCTAVE_API SparseMatrix min(double d, const SparseMatrix &m)
OCTAVE_API SparseMatrix real(const SparseComplexMatrix &a)
OCTAVE_API SparseMatrix operator*(const SparseMatrix &a, const SparseMatrix &b)
OCTAVE_API Matrix mul_trans(const Matrix &a, const SparseMatrix &b)
OCTAVE_API SparseMatrix imag(const SparseComplexMatrix &a)
OCTAVE_API SparseMatrix max(double d, const SparseMatrix &m)
OCTAVE_API SparseMatrix operator-(const DiagMatrix &, const SparseMatrix &)
bool operator!=(const dim_vector &a, const dim_vector &b)
bool operator==(const dim_vector &a, const dim_vector &b)
static M utsolve(const SM &U, const ColumnVector &Q, const M &m)
static M ltsolve(const SM &L, const ColumnVector &Q, const M &m)
F77_RET_T const F77_DBLE const F77_DBLE F77_DBLE * d
const octave_base_value const Array< octave_idx_type > & ra_idx
octave_value operator!(const octave_value &a)
static void transpose(octave_idx_type N, const octave_idx_type *ridx, const octave_idx_type *cidx, octave_idx_type *ridx2, octave_idx_type *cidx2)