35 arma_bad(
"inv(): matrix appears to be singular");
49 typedef typename T1::elem_type eT;
66 arma_bad(
"inv(): matrix appears to be singular");
80 typedef typename T1::elem_type eT;
88 for(
uword col=0; col<N; ++col)
90 for(
uword row=0; row<col; ++row) { out.
at(row,col) = eT(0); }
92 out.
at(col,col) = eT(1) / A[col];
94 for(
uword row=col+1; row<N; ++row) { out.
at(row,col) = eT(0); }
102 template<
typename T1>
114 arma_bad(
"inv(): matrix appears to be singular");
121 template<
typename T1>
133 arma_bad(
"inv(): matrix appears to be singular");
void set_size(const uword in_elem)
change the matrix to have user specified dimensions (data is not preserved)
arma_inline const derived & get_ref() const
arma_aligned const T1 & m
storage of reference to the operand (eg. a matrix)
static const bool do_diagmat
static void apply(Mat< typename T1::elem_type > &out, const Op< T1, op_inv_sympd > &in)
inverse of T1 (symmetric positive definite matrices)
arma_inline arma_warn_unused eT & at(const uword i)
linear element accessor (treats the matrix as a vector); no bounds check.
static bool inv(Mat< eT > &out, const Base< eT, T1 > &X, const bool slow=false)
immediate matrix inverse
static void apply(Mat< typename T1::elem_type > &out, const Op< T1, op_inv_tr > &in)
inverse of T1 (triangular matrices)
#define arma_extra_debug_sigprint
static void apply(Mat< eT > &out, const Mat< eT > &A, const bool slow=false)
immediate inverse of a matrix, storing the result in a dense matrix
static void apply_diag(Mat< typename T1::elem_type > &out, const Base< typename T1::elem_type, T1 > &X)
void arma_cold arma_bad(const T1 &x, const bool hurl=true)
print a message to get_stream_err2() and/or throw a run-time error exception
static bool inv_sympd(Mat< eT > &out, const Base< eT, T1 > &X, const uword layout)
arma_aligned uword aux_uword_a
storage of auxiliary data, uword format
static bool inv_tr(Mat< eT > &out, const Base< eT, T1 > &X, const uword layout)