23 #if ! defined (octave_dMatrix_h)
24 #define octave_dMatrix_h 1
26 #include "octave-config.h"
58 typedef void (*solve_singularity_handler) (
double rcon);
71 :
NDArray (dv.redim (2), val) { }
100 bool is_symmetric (
void)
const;
152 bool force,
bool calc_cond)
const;
155 bool force,
bool calc_cond)
const;
161 bool calc_cond =
true)
const;
166 bool force =
false,
bool calc_cond =
true)
const;
179 bool calc_cond =
true)
const;
181 double& rcon,
bool calc_cond =
true)
const;
183 double rcond (
void)
const;
190 bool calc_cond =
false,
196 bool calc_cond =
false,
202 bool calc_cond =
false)
const;
212 bool singular_fallback =
true,
223 bool singular_fallback =
true,
350 friend OCTAVE_API std::ostream&
operator << (std::ostream& os,
401 template <typename T>
static void swap_bytes(void *ptr, unsigned int i, unsigned int j)
Matrix operator-=(Matrix &x, const double &y)
OCTAVE_API Matrix linspace(const ColumnVector &x1, const ColumnVector &x2, octave_idx_type n)
ComplexMatrix ifourier(void) const
OCTAVE_EXPORT octave_value_list column
Matrix(const dim_vector &dv)
ComplexDET determinant(void) const
ComplexMatrix complex_matrix_type
bool operator!=(const dim_vector &a, const dim_vector &b)
void resize(octave_idx_type nr, octave_idx_type nc, double rfv=0)
std::istream & operator>>(std::istream &is, SparseBoolMatrix &a)
Matrix(const Array< U > &a)
ComplexMatrix inverse(void) const
ColumnVector column_vector_type
identity matrix If supplied two scalar respectively For allows like xample val
ComplexMatrix finverse(MatrixType &mattype, octave_idx_type &info, double &rcon, bool force, bool calc_cond) const
DiagMatrix real_diag_matrix_type
OCTAVE_API Matrix operator*(const ColumnVector &a, const RowVector &b)
MArray< T > transpose(void) const
RowVector row_vector_type
OCTAVE_API Matrix real(const ComplexMatrix &a)
OCTAVE_API Matrix Sylvester(const Matrix &, const Matrix &, const Matrix &)
void(* solve_singularity_handler)(double rcon)
Template for N-dimensional array classes with like-type math operators.
#define SM_CMP_OP_DECLS(S, M, API)
ComplexMatrix tinverse(MatrixType &mattype, octave_idx_type &info, double &rcon, bool force, bool calc_cond) const
Matrix(const dim_vector &dv, double val)
#define MARRAY_FORWARD_DEFS(B, R, T)
OCTAVE_API Matrix imag(const ComplexMatrix &a)
F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T const F77_REAL const F77_REAL F77_REAL &F77_RET_T const F77_DBLE const F77_DBLE F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T const F77_DBLE F77_DBLE &F77_RET_T const F77_REAL F77_REAL &F77_RET_T F77_REAL F77_REAL &F77_RET_T F77_DBLE F77_DBLE &F77_RET_T const F77_DBLE const F77_DBLE F77_DBLE * d
ComplexMatrix prod(int dim=-1) const
ComplexRowVector column_min(void) const
ComplexMatrix fsolve(MatrixType &typ, const ComplexMatrix &b, octave_idx_type &info, double &rcon, solve_singularity_handler sing_handler, bool calc_cond=false) 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
OCTAVE_API Matrix max(double d, const Matrix &m)
ComplexMatrix cumprod(int dim=-1) const
void read_int(std::istream &is, bool swap_bytes, T &val)
ComplexMatrix cumsum(int dim=-1) const
#define SM_BOOL_OP_DECLS(S, M, API)
OCTAVE_API Matrix min(double d, const Matrix &m)
nd deftypefn *octave_map m
boolMatrix all(int dim=-1) const
#define MM_CMP_OP_DECLS(M1, M2, API)
#define MM_BOOL_OP_DECLS(M1, M2, API)
void resize(const dim_vector &dv, const T &rfv)
ComplexColumnVector row_min(void) const
SparseBoolMatrix & insert(const SparseBoolMatrix &a, octave_idx_type r, octave_idx_type c)
Matrix transpose(void) const
ComplexMatrix solve(MatrixType &typ, const Matrix &b) const
static M ltsolve(const SM &L, const ColumnVector &Q, const M &m)
OCTAVE_API Matrix xgemm(const Matrix &a, const Matrix &b, blas_trans_type transa=blas_no_trans, blas_trans_type transb=blas_no_trans)
ComplexMatrix fourier(void) const
ComplexMatrix sumsq(int dim=-1) const
ComplexColumnVector row_max(void) const
Matrix(octave_idx_type r, octave_idx_type c, double val)
the sparsity preserving column transformation such that that defines the pivoting threshold can be given in which case it defines the c
Matrix(octave_idx_type r, octave_idx_type c)
RowVector real_row_vector_type
bool operator==(const dim_vector &a, const dim_vector &b)
#define MS_CMP_OP_DECLS(M, S, API)
ComplexMatrix pseudo_inverse(double tol=0.0) const
N Dimensional Array with copy-on-write semantics.
Matrix(const MArray< U > &a)
ColumnVector real_column_vector_type
ComplexRowVector column_max(void) const
Matrix operator+=(Matrix &x, const double &y)
=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))<
OCTAVE_API Matrix Givens(double, double)
template OCTAVE_API std::ostream & operator<<(std::ostream &, const Array< bool > &)
ComplexDiagMatrix complex_diag_matrix_type
#define MS_BOOL_OP_DECLS(M, S, API)
ComplexMatrix sum(int dim=-1) const
static M utsolve(const SM &U, const ColumnVector &Q, const M &m)
Matrix hermitian(void) const
ComplexMatrix ifourier2d(void) const
ComplexMatrix diag(octave_idx_type k=0) const
std::complex< double > Complex
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
ComplexMatrix lssolve(const Matrix &b) const
ComplexMatrix extract_n(octave_idx_type r1, octave_idx_type c1, octave_idx_type nr, octave_idx_type nc) const
ComplexMatrix extract(octave_idx_type r1, octave_idx_type c1, octave_idx_type r2, octave_idx_type c2) const
where the brackets indicate optional arguments and and character or cell array For character arrays the conversion is repeated for every row
Array< Complex > index(const idx_vector &i) const
Indexing without resizing.
ComplexMatrix fourier2d(void) const