23 #if defined (HAVE_CONFIG_H) 32 OCTAVE_NORETURN
static 36 (*current_liboctave_error_handler) (
"PermMatrix: invalid permutation vector");
91 if (
i < 0 || j < 0 || i > len || j > len)
92 (*current_liboctave_error_handler) (
"index out of range");
178 for (j = 1, ic =
p[ics]; j != m && ic != ics; j++, ic =
p[ic]) ;
184 for (j = 0, ic = ics; j != mm; j++, ic =
p[ic]) ;
192 jcs =
p[jcs]; ic =
p[ic];
octave_idx_type rows(void) const
const octave_idx_type * data(void) const
const T * fortran_vec(void) const
octave_idx_type perm_length(void) 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
bool is_permutation(octave_idx_type n) const
PermMatrix operator*(const PermMatrix &a, const PermMatrix &b)
Array< T > index(const idx_vector &i) const
Indexing without resizing.
octave_idx_type determinant(void) const
PermMatrix inverse(void) const
void err_nonconformant(const char *op, octave_idx_type op1_len, octave_idx_type op2_len)
octave_idx_type length(octave_idx_type n=0) const
static OCTAVE_NORETURN void err_invalid_permutation(void)
octave_idx_type & xelem(octave_idx_type n)
octave_idx_type elem(octave_idx_type i, octave_idx_type j) const
octave_idx_type checkelem(octave_idx_type i, octave_idx_type j) const
#define OCTAVE_LOCAL_BUFFER(T, buf, size)
octave_idx_type numel(void) const
Number of elements in the array.
static PermMatrix eye(octave_idx_type n)
Vector representing the dimensions (size) of an Array.
Array< T > & operator=(const Array< T > &a)
void setup(const Array< octave_idx_type > &p, bool colp, bool check)
PermMatrix transpose(void) const
PermMatrix pos_power(octave_idx_type m) const
PermMatrix power(octave_idx_type n) const