26 #if defined (HAVE_CONFIG_H)
35 OCTAVE_NORETURN
static
37 err_invalid_permutation ()
39 (*current_liboctave_error_handler) (
"PermMatrix: invalid permutation vector");
48 err_invalid_permutation ();
58 setup (p, colp, check);
66 if (! idx.is_permutation (
len))
67 err_invalid_permutation ();
94 if (i < 0 || j < 0 || i >
len || j >
len)
95 (*current_liboctave_error_handler) (
"index out of range");
160 return pos_power (
m);
181 for (j = 1, ic = p[ics]; j !=
m && ic != ics; j++, ic = p[ic]) ;
187 for (j = 0, ic = ics; j != mm; j++, ic = p[ic]) ;
195 jcs = p[jcs]; ic = p[ic];
PermMatrix operator*(const PermMatrix &a, const PermMatrix &b)
Array< T, Alloc > index(const octave::idx_vector &i) const
Indexing without resizing.
const octave_idx_type * data() const
Array< T, Alloc > & operator=(const Array< T, Alloc > &a)
octave_idx_type & xelem(octave_idx_type n)
octave_idx_type numel() const
Number of elements in the array.
octave_idx_type elem(octave_idx_type i, octave_idx_type j) const
octave_idx_type rows() const
octave_idx_type checkelem(octave_idx_type i, octave_idx_type j) const
PermMatrix inverse() const
const Array< octave_idx_type > & col_perm_vec() const
static PermMatrix eye(octave_idx_type n)
octave_idx_type perm_length() const
octave_idx_type columns() const
octave_idx_type determinant() const
PermMatrix power(octave_idx_type n) const
PermMatrix transpose() const
Vector representing the dimensions (size) of an Array.
octave::idx_vector idx_vector
void err_nonconformant(const char *op, octave_idx_type op1_len, octave_idx_type op2_len)
#define OCTAVE_LOCAL_BUFFER(T, buf, size)