24 #if ! defined (octave_CSparse_h)
25 #define octave_CSparse_h 1
27 #include "octave-config.h"
59 typedef void (*solve_singularity_handler) (
double rcond);
117 bool is_hermitian (
void)
const;
154 double& rcond,
const bool force =
false,
155 const bool calccond =
true)
const;
158 double& rcond,
const bool force =
false,
159 const bool calccond =
true)
const;
167 double& rcond,
bool force =
false,
168 bool calc_cond =
true)
const;
173 bool calc_cond =
true)
const;
178 double& rcond, solve_singularity_handler sing_handler,
179 bool calc_cond =
false)
const;
183 solve_singularity_handler sing_handler,
184 bool calc_cond =
false)
const;
188 solve_singularity_handler sing_handler,
189 bool calc_cond =
false)
const;
193 solve_singularity_handler sing_handler,
194 bool calc_cond =
false)
const;
199 solve_singularity_handler sing_handler,
200 bool calc_cond =
false)
const;
204 solve_singularity_handler sing_handler,
205 bool calc_cond =
false)
const;
209 solve_singularity_handler sing_handler,
210 bool calc_cond =
false)
const;
214 solve_singularity_handler sing_handler,
215 bool calc_cond =
false)
const;
220 solve_singularity_handler sing_handler,
221 bool calc_cond =
false)
const;
225 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;
241 solve_singularity_handler sing_handler,
242 bool calc_cond =
false)
const;
246 solve_singularity_handler sing_handler,
247 bool calc_cond =
false)
const;
251 solve_singularity_handler sing_handler,
252 bool calc_cond =
false)
const;
256 solve_singularity_handler sing_handler,
257 bool calc_cond =
false)
const;
262 solve_singularity_handler sing_handler,
263 bool calc_cond =
false)
const;
267 solve_singularity_handler sing_handler,
268 bool calc_cond =
false)
const;
272 solve_singularity_handler sing_handler,
273 bool calc_cond =
false)
const;
277 solve_singularity_handler sing_handler,
278 bool calc_cond =
false)
const;
282 Matrix &Info, solve_singularity_handler sing_handler,
283 bool calc_cond)
const;
287 solve_singularity_handler sing_handler,
288 bool calc_cond =
false)
const;
292 solve_singularity_handler sing_handler,
293 bool calc_cond =
false)
const;
297 solve_singularity_handler sing_handler,
298 bool calc_cond =
false)
const;
302 solve_singularity_handler sing_handler,
303 bool calc_cond =
false)
const;
311 double& rcond)
const;
313 double& rcond, solve_singularity_handler sing_handler,
314 bool singular_fallback =
true)
const;
323 solve_singularity_handler sing_handler,
324 bool singular_fallback =
true)
const;
333 solve_singularity_handler sing_handler,
334 bool singular_fallback =
true)
const;
344 solve_singularity_handler sing_handler,
345 bool singular_fallback =
true)
const;
354 solve_singularity_handler sing_handler)
const;
364 solve_singularity_handler sing_handler)
const;
370 double& rcond)
const;
372 solve_singularity_handler sing_handler)
const;
377 double& rcond)
const;
380 solve_singularity_handler sing_handler)
const;
386 double& rcond)
const;
389 solve_singularity_handler sing_handler)
const;
398 solve_singularity_handler sing_handler)
const;
404 double& rcond)
const;
407 solve_singularity_handler sing_handler)
const;
416 solve_singularity_handler sing_handler)
const;
423 bool inv =
false)
const;
428 bool any_element_is_inf_or_nan (
void)
const;
429 bool all_elements_are_real (
void)
const;
430 bool all_integers (
double& max_val,
double& min_val)
const;
431 bool too_large_for_float (
void)
const;
448 friend OCTAVE_API std::ostream&
operator << (std::ostream& os,
450 friend OCTAVE_API std::istream&
operator >> (std::istream&
is,
SparseComplexMatrix(const ComplexNDArray &a)
boolMatrix matrix_value(void) const
OCTAVE_EXPORT octave_value_list column
#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)
ComplexMatrix dense_matrix_type
SparseBoolMatrix ipermute(const Array< octave_idx_type > &vec) const
identity matrix If supplied two scalar respectively For allows like xample val
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
#define SPARSE_FORWARD_DEFS(B, R, F, T)
#define SPARSE_SSM_CMP_OP_DECLS(S, M, API)
SparseBoolMatrix reshape(const dim_vector &new_dims) const
SparseMatrix sum(int dim=-1) const
calling an anonymous function involves an overhead quite comparable to the overhead of an m file function Passing a handle to a built in function is because the interpreter is not involved in the internal loop For a
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)
nd deftypefn *octave_map m
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)
static M ltsolve(const SM &L, const ColumnVector &Q, const M &m)
SparseComplexMatrix(octave_idx_type r, octave_idx_type c, octave_idx_type num_nz)
the sparsity preserving column transformation such that that defines the pivoting threshold can be given in which case it defines the c
MSparse< T > & operator=(const MSparse< T > &a)
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)
MSparse< T > transpose(void) const
OCTAVE_API SparseComplexMatrix operator-(const ComplexDiagMatrix &, const SparseMatrix &)
SparseComplexMatrix(const Sparse< Complex > &a)
=val(i)}if ode{val(i)}occurs in table i
OCTAVE_EXPORT octave_value_list return the value of the option it must match the dimension of the state and the relative tolerance must also be a vector of the same length tem it must match the dimension of the state and the absolute tolerance must also be a vector of the same length The local error test applied at each integration step is xample roup abs(local error in x(i))<
template OCTAVE_API std::ostream & operator<<(std::ostream &, const Array< bool > &)
OCTAVE_API ComplexMatrix mul_trans(const ComplexMatrix &, const SparseComplexMatrix &)
OCTAVE_API ComplexMatrix herm_mul(const SparseComplexMatrix &, const ComplexMatrix &)
static M utsolve(const SM &U, const ColumnVector &Q, const M &m)
OCTAVE_EXPORT octave_value_list error nd deftypefn *const octave_scalar_map err
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)
write the output to stdout if nargout is
Vector representing the dimensions (size) of an Array.
the second is matched to the second specifier and placed in the second column and so forth If there are more words than specifiers then the process is repeated until all words have been processed or the limit imposed by any(non-whitespace) text in the format that is not one of these specifiers is considered a literal.If there is a literal between two format specifiers then that same literal must appear in the input stream between the matching words.The following specifiers are valid
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)
where the brackets indicate optional arguments and and character or cell array For character arrays the conversion is repeated for every row
SparseComplexMatrix(const SparseComplexMatrix &a, const dim_vector &dv)
bool any_element_is_nan(void) const