26 #if defined (HAVE_CONFIG_H)
35 OCTAVE_NORETURN
static
39 (*current_liboctave_error_handler) (
"PermMatrix: invalid permutation vector");
58 setup (p, colp, check);
66 if (! idx.is_permutation (
len))
94 if (i < 0 || j < 0 || i >
len || j >
len)
95 (*current_liboctave_error_handler) (
"index out of range");
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];
static OCTAVE_NORETURN void err_invalid_permutation(void)
PermMatrix operator*(const PermMatrix &a, const PermMatrix &b)
OCTARRAY_API Array< T, Alloc > index(const octave::idx_vector &i) const
Indexing without resizing.
OCTARRAY_OVERRIDABLE_FUNC_API const octave_idx_type * data(void) const
OCTARRAY_OVERRIDABLE_FUNC_API octave_idx_type numel(void) const
Number of elements in the array.
OCTARRAY_API T * fortran_vec(void)
Size of the specified dimension.
Array< T, Alloc > & operator=(const Array< T, Alloc > &a)
OCTARRAY_OVERRIDABLE_FUNC_API octave_idx_type & xelem(octave_idx_type n)
octave_idx_type perm_length(void) const
const Array< octave_idx_type > & col_perm_vec(void) const
octave_idx_type columns(void) const
OCTAVE_API PermMatrix inverse(void) const
octave_idx_type elem(octave_idx_type i, octave_idx_type j) const
PermMatrix pos_power(octave_idx_type m) const
octave_idx_type rows(void) const
OCTAVE_API octave_idx_type determinant(void) const
void setup(const Array< octave_idx_type > &p, bool colp, bool check)
octave_idx_type checkelem(octave_idx_type i, octave_idx_type j) const
static OCTAVE_API PermMatrix eye(octave_idx_type n)
OCTAVE_API PermMatrix power(octave_idx_type n) const
OCTAVE_API PermMatrix transpose(void) 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)
class OCTAVE_API PermMatrix
#define OCTAVE_LOCAL_BUFFER(T, buf, size)