34 if(cost_AB <= cost_BC)
40 const eT* B_coldata = B.
colptr(col);
45 val += A_mem[i] * B_coldata[i];
62 val += B.
at(row,col) * C_mem[col];
91 if(cost_AB <= cost_BC)
101 val += A_mem[i] * B.
at(row,i);
115 const eT* B_coldata = B.
colptr(col);
121 val += B_coldata[i] * C_mem[i];
135 template<
typename eT>
151 val += A_mem[i] * B.
at(i,i) * C_mem[i];
159 template<
typename eT>
175 val += (A_mem[i] * C_mem[i]) / B.
at(i,i);
183 template<
typename eT>
195 const eT* B_mem = B.
mem;
201 val += (A_mem[i] * C_mem[i]) / B_mem[i];
A lightweight array for POD types. If the amount of memory requested is small, the stack is used...
static eT direct_rowvec_invdiagvec_colvec(const eT *A_mem, const Mat< eT > &B, const eT *C_mem)
arma_hot static arma_pure arma_float_only< eT >::result direct_dot(const uword n_elem, const eT *const A, const eT *const B)
const uword n_cols
number of columns in the matrix (read-only)
static eT direct_rowvec_invdiagmat_colvec(const eT *A_mem, const Mat< eT > &B, const eT *C_mem)
const uword n_elem
number of elements in the matrix (read-only)
const uword n_rows
number of rows in the matrix (read-only)
arma_inline arma_warn_unused eT * colptr(const uword in_col)
returns a pointer to array of eTs for a specified column; no bounds check
static eT direct_rowvec_diagmat_colvec(const eT *A_mem, const Mat< eT > &B, const eT *C_mem)
static eT direct_rowvec_transmat_colvec(const eT *A_mem, const Mat< eT > &B, const eT *C_mem)
arma_inline arma_warn_unused eT & at(const uword i)
linear element accessor (treats the matrix as a vector); no bounds check.
#define arma_extra_debug_sigprint
static eT direct_rowvec_mat_colvec(const eT *A_mem, const Mat< eT > &B, const eT *C_mem)
arma_aligned const eT *const mem
pointer to the memory used by the matrix (memory is read-only)
arma_aligned const eT *const mem
pointer to memory used by the object