GNU Octave  9.1.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
PermMatrix Class Reference

#include "PermMatrix.h"

Inheritance diagram for PermMatrix:
Array< octave_idx_type >

Public Member Functions

 PermMatrix ()=default
 
 PermMatrix (const Array< octave_idx_type > &p, bool colp, bool check=true)
 
 PermMatrix (const octave::idx_vector &idx, bool colp, octave_idx_type n=0)
 
 PermMatrix (const PermMatrix &m)=default
 
 PermMatrix (octave_idx_type n)
 
 ~PermMatrix ()=default
 
std::size_t byte_size () const
 
octave_idx_type checkelem (octave_idx_type i, octave_idx_type j) const
 
const Array< octave_idx_type > & col_perm_vec () const
 
octave_idx_type cols () const
 
octave_idx_type columns () const
 
octave_idx_type determinant () const
 
octave_idx_type dim1 () const
 
octave_idx_type dim2 () const
 
dim_vector dims () const
 
octave_idx_type elem (octave_idx_type i, octave_idx_type j) const
 
PermMatrix inverse () const
 
bool is_col_perm () const
 
bool is_row_perm () const
 
bool isempty () const
 
octave_idx_type length () const
 
int ndims () const
 
octave_idx_type numel () const
 
octave_idx_type operator() (octave_idx_type i, octave_idx_type j) const
 
PermMatrixoperator= (const PermMatrix &m)=default
 
octave_idx_type perm_length () const
 
PermMatrix power (octave_idx_type n) const
 
void print_info (std::ostream &os, const std::string &prefix) const
 
octave_idx_type rows () const
 
PermMatrix transpose () const
 

Static Public Member Functions

static PermMatrix eye (octave_idx_type n)
 

Additional Inherited Members

- Protected Types inherited from Array< octave_idx_type >
typedef bool(* compare_fcn_type) (typename ref_param< octave_idx_type >::type, typename ref_param< octave_idx_type >::type)
 
typedef ref_param< octave_idx_type >::type crefT
 
typedef octave_idx_type element_type
 
typedef octave_idx_type size_type
 Used for operator(), and returned by numel() and size() (beware: signed integer) More...
 
typedef octave_idx_type value_type
 
- Protected Member Functions inherited from Array< octave_idx_type >
 Array (const Array< octave_idx_type, Alloc > &a, const dim_vector &dv, octave_idx_type l, octave_idx_type u)
 slice constructor More...
 
 Array ()
 Empty ctor (0 by 0). More...
 
 Array (Array< octave_idx_type, Alloc > &&a)
 
 Array (const Array< octave_idx_type, Alloc > &a)
 No type conversion case. More...
 
 Array (const Array< octave_idx_type, Alloc > &a, const dim_vector &dv)
 Reshape constructor. More...
 
 Array (const Array< U, A > &a)
 Type conversion case. More...
 
 Array (const Container< octave_idx_type > &a, const dim_vector &dv)
 Constructor from standard library sequence containers. More...
 
 Array (const dim_vector &dv)
 nD uninitialized ctor. More...
 
 Array (const dim_vector &dv, const octave_idx_type &val)
 nD initialized ctor. More...
 
 Array (octave_idx_type *ptr, const dim_vector &dv, const Alloc &xallocator=Alloc())
 
virtual ~Array ()
 
Array< octave_idx_type, Allocas_column () const
 Return the array as a column vector. More...
 
Array< octave_idx_type, Allocas_matrix () const
 Return the array as a matrix. More...
 
Array< octave_idx_type, Allocas_row () const
 Return the array as a row vector. More...
 
void clear ()
 
void clear (const dim_vector &dv)
 
void clear (octave_idx_type r, octave_idx_type c)
 
void fill (const octave_idx_type &val)
 
Array< octave_idx_typefind (octave_idx_type, bool) const
 
Array< octave_idx_typefind (octave_idx_type, bool) const
 
sortmode is_sorted_rows (sortmode) const
 
sortmode is_sorted_rows (sortmode) const
 
sortmode issorted (sortmode mode) const
 
sortmode issorted (sortmode) const
 
sortmode issorted (sortmode) const
 
Array< octave_idx_typelookup (const Array< octave::cdef_object > &, sortmode) const
 
Array< octave_idx_typelookup (const Array< octave::idx_vector > &, sortmode) const
 
octave_idx_type lookup (octave::cdef_object const &, sortmode) const
 
octave_idx_type lookup (octave::idx_vector const &, sortmode) const
 
void make_unique ()
 
octave_idx_type nnz () const
 
octave_idx_type nnz () const
 
Array< octave::cdef_object > nth_element (const octave::idx_vector &, int) const
 
Array< octave::idx_vectornth_element (const octave::idx_vector &, int) const
 
octave_idx_type numel () const
 Number of elements in the array. More...
 
Array< octave_idx_type, Alloc > & operator= (Array< octave_idx_type, Alloc > &&a)
 
Array< octave_idx_type, Alloc > & operator= (const Array< octave_idx_type, Alloc > &a)
 
Array< octave::cdef_object > sort (Array< octave_idx_type > &sidx, int, sortmode) const
 
Array< octave::idx_vectorsort (Array< octave_idx_type > &sidx, int, sortmode) const
 
Array< octave::cdef_object > sort (int, sortmode) const
 
Array< octave::idx_vectorsort (int, sortmode) const
 
Array< octave_idx_typesort_rows_idx (sortmode) const
 
Array< octave_idx_typesort_rows_idx (sortmode) const
 
octave_idx_type dim1 () const
 
octave_idx_type rows () const
 
octave_idx_type dim2 () const
 
octave_idx_type cols () const
 
octave_idx_type columns () const
 
octave_idx_type dim3 () const
 Size of the specified dimension. More...
 
octave_idx_type pages () const
 Size of the specified dimension. More...
 
size_type size (const size_type d) const
 Size of the specified dimension. More...
 
std::size_t byte_size () const
 Size of the specified dimension. More...
 
const dim_vectordims () const
 Return a const-reference so that dims ()(i) works efficiently. More...
 
Array< octave_idx_type, Allocsqueeze () const
 Chop off leading singleton dimensions. More...
 
octave_idx_type compute_index (octave_idx_type i, octave_idx_type j) const
 Size of the specified dimension. More...
 
octave_idx_type compute_index (octave_idx_type i, octave_idx_type j, octave_idx_type k) const
 Size of the specified dimension. More...
 
octave_idx_type compute_index (const Array< octave_idx_type > &ra_idx) const
 Size of the specified dimension. More...
 
octave_idx_type compute_index_unchecked (const Array< octave_idx_type > &ra_idx) const
 Size of the specified dimension. More...
 
octave_idx_typexelem (octave_idx_type n)
 Size of the specified dimension. More...
 
crefT xelem (octave_idx_type n) const
 Size of the specified dimension. More...
 
octave_idx_typexelem (octave_idx_type i, octave_idx_type j)
 Size of the specified dimension. More...
 
crefT xelem (octave_idx_type i, octave_idx_type j) const
 Size of the specified dimension. More...
 
octave_idx_typexelem (octave_idx_type i, octave_idx_type j, octave_idx_type k)
 Size of the specified dimension. More...
 
crefT xelem (octave_idx_type i, octave_idx_type j, octave_idx_type k) const
 Size of the specified dimension. More...
 
octave_idx_typexelem (const Array< octave_idx_type > &ra_idx)
 Size of the specified dimension. More...
 
crefT xelem (const Array< octave_idx_type > &ra_idx) const
 Size of the specified dimension. More...
 
octave_idx_typecheckelem (octave_idx_type n)
 Size of the specified dimension. More...
 
octave_idx_typecheckelem (octave_idx_type i, octave_idx_type j)
 Size of the specified dimension. More...
 
octave_idx_typecheckelem (octave_idx_type i, octave_idx_type j, octave_idx_type k)
 Size of the specified dimension. More...
 
octave_idx_typecheckelem (const Array< octave_idx_type > &ra_idx)
 Size of the specified dimension. More...
 
crefT checkelem (octave_idx_type n) const
 Size of the specified dimension. More...
 
crefT checkelem (octave_idx_type i, octave_idx_type j) const
 Size of the specified dimension. More...
 
crefT checkelem (octave_idx_type i, octave_idx_type j, octave_idx_type k) const
 Size of the specified dimension. More...
 
crefT checkelem (const Array< octave_idx_type > &ra_idx) const
 Size of the specified dimension. More...
 
octave_idx_typeelem (octave_idx_type n)
 Size of the specified dimension. More...
 
octave_idx_typeelem (octave_idx_type i, octave_idx_type j)
 Size of the specified dimension. More...
 
octave_idx_typeelem (octave_idx_type i, octave_idx_type j, octave_idx_type k)
 Size of the specified dimension. More...
 
octave_idx_typeelem (const Array< octave_idx_type > &ra_idx)
 Size of the specified dimension. More...
 
crefT elem (octave_idx_type n) const
 Size of the specified dimension. More...
 
crefT elem (octave_idx_type i, octave_idx_type j) const
 Size of the specified dimension. More...
 
crefT elem (octave_idx_type i, octave_idx_type j, octave_idx_type k) const
 Size of the specified dimension. More...
 
crefT elem (const Array< octave_idx_type > &ra_idx) const
 Size of the specified dimension. More...
 
octave_idx_typeoperator() (octave_idx_type n)
 Size of the specified dimension. More...
 
octave_idx_typeoperator() (octave_idx_type i, octave_idx_type j)
 Size of the specified dimension. More...
 
octave_idx_typeoperator() (octave_idx_type i, octave_idx_type j, octave_idx_type k)
 Size of the specified dimension. More...
 
octave_idx_typeoperator() (const Array< octave_idx_type > &ra_idx)
 Size of the specified dimension. More...
 
crefT operator() (octave_idx_type n) const
 Size of the specified dimension. More...
 
crefT operator() (octave_idx_type i, octave_idx_type j) const
 Size of the specified dimension. More...
 
crefT operator() (octave_idx_type i, octave_idx_type j, octave_idx_type k) const
 Size of the specified dimension. More...
 
crefT operator() (const Array< octave_idx_type > &ra_idx) const
 Size of the specified dimension. More...
 
Array< octave_idx_type, Alloccolumn (octave_idx_type k) const
 Extract column: A(:,k+1). More...
 
Array< octave_idx_type, Allocpage (octave_idx_type k) const
 Extract page: A(:,:,k+1). More...
 
Array< octave_idx_type, Alloclinear_slice (octave_idx_type lo, octave_idx_type up) const
 Extract a slice from this array as a column vector: A(:)(lo+1:up). More...
 
Array< octave_idx_type, Allocreshape (octave_idx_type nr, octave_idx_type nc) const
 Size of the specified dimension. More...
 
Array< octave_idx_type, Allocreshape (const dim_vector &new_dims) const
 Size of the specified dimension. More...
 
Array< octave_idx_type, Allocpermute (const Array< octave_idx_type > &vec, bool inv=false) const
 Size of the specified dimension. More...
 
Array< octave_idx_type, Allocipermute (const Array< octave_idx_type > &vec) const
 Size of the specified dimension. More...
 
bool issquare () const
 Size of the specified dimension. More...
 
bool isempty () const
 Size of the specified dimension. More...
 
bool isvector () const
 Size of the specified dimension. More...
 
bool is_nd_vector () const
 Size of the specified dimension. More...
 
Array< octave_idx_type, Alloctranspose () const
 Size of the specified dimension. More...
 
Array< octave_idx_type, Allochermitian (octave_idx_type(*fcn)(const octave_idx_type &)=nullptr) const
 Size of the specified dimension. More...
 
const octave_idx_typedata () const
 Size of the specified dimension. More...
 
octave_idx_typefortran_vec ()
 Size of the specified dimension. More...
 
bool is_shared () const
 Size of the specified dimension. More...
 
int ndims () const
 Size of the specified dimension. More...
 
Array< octave_idx_type, Allocindex (const octave::idx_vector &i) const
 Indexing without resizing. More...
 
Array< octave_idx_type, Allocindex (const octave::idx_vector &i, const octave::idx_vector &j) const
 Size of the specified dimension. More...
 
Array< octave_idx_type, Allocindex (const Array< octave::idx_vector > &ia) const
 Size of the specified dimension. More...
 
Array< octave_idx_type, Allocindex (const octave::idx_vector &i, bool resize_ok, const octave_idx_type &rfv) const
 Indexing with possible resizing and fill. More...
 
Array< octave_idx_type, Allocindex (const octave::idx_vector &i, bool resize_ok) const
 Size of the specified dimension. More...
 
Array< octave_idx_type, Allocindex (const octave::idx_vector &i, const octave::idx_vector &j, bool resize_ok, const octave_idx_type &rfv) const
 Size of the specified dimension. More...
 
Array< octave_idx_type, Allocindex (const octave::idx_vector &i, const octave::idx_vector &j, bool resize_ok) const
 Size of the specified dimension. More...
 
Array< octave_idx_type, Allocindex (const Array< octave::idx_vector > &ia, bool resize_ok, const octave_idx_type &rfv) const
 Size of the specified dimension. More...
 
Array< octave_idx_type, Allocindex (const Array< octave::idx_vector > &ia, bool resize_ok) const
 Size of the specified dimension. More...
 
virtual octave_idx_type resize_fill_value () const
 Size of the specified dimension. More...
 
void resize2 (octave_idx_type nr, octave_idx_type nc, const octave_idx_type &rfv)
 Resizing (with fill). More...
 
void resize2 (octave_idx_type nr, octave_idx_type nc)
 Size of the specified dimension. More...
 
void resize1 (octave_idx_type n, const octave_idx_type &rfv)
 Size of the specified dimension. More...
 
void resize1 (octave_idx_type n)
 Size of the specified dimension. More...
 
void resize (const dim_vector &dv, const octave_idx_type &rfv)
 Size of the specified dimension. More...
 
void resize (const dim_vector &dv)
 Size of the specified dimension. More...
 
void assign (const octave::idx_vector &i, const Array< octave_idx_type, Alloc > &rhs, const octave_idx_type &rfv)
 Indexed assignment (always with resize & fill). More...
 
void assign (const octave::idx_vector &i, const Array< octave_idx_type, Alloc > &rhs)
 Size of the specified dimension. More...
 
void assign (const octave::idx_vector &i, const octave::idx_vector &j, const Array< octave_idx_type, Alloc > &rhs, const octave_idx_type &rfv)
 Size of the specified dimension. More...
 
void assign (const octave::idx_vector &i, const octave::idx_vector &j, const Array< octave_idx_type, Alloc > &rhs)
 Size of the specified dimension. More...
 
void assign (const Array< octave::idx_vector > &ia, const Array< octave_idx_type, Alloc > &rhs, const octave_idx_type &rfv)
 Size of the specified dimension. More...
 
void assign (const Array< octave::idx_vector > &ia, const Array< octave_idx_type, Alloc > &rhs)
 Size of the specified dimension. More...
 
void delete_elements (const octave::idx_vector &i)
 Deleting elements. More...
 
void delete_elements (int dim, const octave::idx_vector &i)
 A(:,...,I,...,:) = [] (>= 2 subscripts, one of them is non-colon) More...
 
void delete_elements (const Array< octave::idx_vector > &ia)
 Dispatcher to the above two. More...
 
Array< octave_idx_type, Alloc > & insert (const Array< octave_idx_type, Alloc > &a, const Array< octave_idx_type > &idx)
 Insert an array into another at a specified position. More...
 
Array< octave_idx_type, Alloc > & insert (const Array< octave_idx_type, Alloc > &a, octave_idx_type r, octave_idx_type c)
 This is just a special case for idx = [r c 0 ...]. More...
 
void maybe_economize ()
 Size of the specified dimension. More...
 
void print_info (std::ostream &os, const std::string &prefix) const
 Size of the specified dimension. More...
 
Array< octave_idx_type, Allocsort (int dim=0, sortmode mode=ASCENDING) const
 Size of the specified dimension. More...
 
Array< octave_idx_type, Allocsort (Array< octave_idx_type > &sidx, int dim=0, sortmode mode=ASCENDING) const
 Size of the specified dimension. More...
 
sortmode issorted (sortmode mode=UNSORTED) const
 Ordering is auto-detected or can be specified. More...
 
Array< octave_idx_typesort_rows_idx (sortmode mode=ASCENDING) const
 Sort by rows returns only indices. More...
 
sortmode is_sorted_rows (sortmode mode=UNSORTED) const
 Ordering is auto-detected or can be specified. More...
 
octave_idx_type lookup (const octave_idx_type &value, sortmode mode=UNSORTED) const
 Do a binary lookup in a sorted array. More...
 
Array< octave_idx_typelookup (const Array< octave_idx_type, Alloc > &values, sortmode mode=UNSORTED) const
 Ditto, but for an array of values, specializing on the case when values are sorted. More...
 
octave_idx_type nnz () const
 Count nonzero elements. More...
 
Array< octave_idx_typefind (octave_idx_type n=-1, bool backward=false) const
 Find indices of (at most n) nonzero elements. More...
 
Array< octave_idx_type, Allocnth_element (const octave::idx_vector &n, int dim=0) const
 Returns the n-th element in increasing order, using the same ordering as used for sort. More...
 
Array< octave_idx_type, Allocdiag (octave_idx_type k=0) const
 Get the kth super or subdiagonal. More...
 
Array< octave_idx_type, Allocdiag (octave_idx_type m, octave_idx_type n) const
 Size of the specified dimension. More...
 
Array< U, Amap (F fcn) const
 Apply function fcn to each element of the Array<T, Alloc>. More...
 
Array< U, Amap (U(&fcn)(octave_idx_type)) const
 Overloads for function references. More...
 
Array< U, Amap (U(&fcn)(const octave_idx_type &)) const
 Size of the specified dimension. More...
 
bool test (F fcn) const
 Generic any/all test functionality with arbitrary predicate. More...
 
bool test_any (F fcn) const
 Simpler calls. More...
 
bool test_any (bool(&fcn)(octave_idx_type)) const
 Overloads for function references. More...
 
bool test_any (bool(&fcn)(const octave_idx_type &)) const
 Size of the specified dimension. More...
 
bool test_all (F fcn) const
 Size of the specified dimension. More...
 
bool test_all (bool(&fcn)(octave_idx_type)) const
 Size of the specified dimension. More...
 
bool test_all (bool(&fcn)(const octave_idx_type &)) const
 Size of the specified dimension. More...
 
bool optimize_dimensions (const dim_vector &dv)
 Returns true if this->dims () == dv, and if so, replaces this->m_dimensions by a shallow copy of dv. More...
 
- Static Protected Member Functions inherited from Array< octave_idx_type >
static Array< octave_idx_type, Alloccat (int dim, octave_idx_type n, const Array< octave_idx_type, Alloc > *array_list)
 Concatenation along a specified (0-based) dimension, equivalent to cat(). More...
 
- Protected Attributes inherited from Array< octave_idx_type >
dim_vector m_dimensions
 
Array< octave_idx_type, Alloc >::ArrayRep * m_rep
 
octave_idx_typem_slice_data
 
octave_idx_type m_slice_len
 

Detailed Description

Definition at line 37 of file PermMatrix.h.

Constructor & Destructor Documentation

◆ PermMatrix() [1/5]

PermMatrix::PermMatrix ( )
default

Referenced by eye(), and power().

◆ PermMatrix() [2/5]

PermMatrix::PermMatrix ( const PermMatrix m)
default

◆ ~PermMatrix()

PermMatrix::~PermMatrix ( )
default

◆ PermMatrix() [3/5]

PermMatrix::PermMatrix ( octave_idx_type  n)

Definition at line 83 of file PermMatrix.cc.

References n, and Array< octave_idx_type >::xelem().

◆ PermMatrix() [4/5]

PermMatrix::PermMatrix ( const Array< octave_idx_type > &  p,
bool  colp,
bool  check = true 
)

Definition at line 55 of file PermMatrix.cc.

◆ PermMatrix() [5/5]

PermMatrix::PermMatrix ( const octave::idx_vector idx,
bool  colp,
octave_idx_type  n = 0 
)

Definition at line 77 of file PermMatrix.cc.

References n.

Member Function Documentation

◆ byte_size()

std::size_t PermMatrix::byte_size ( ) const
inline

Definition at line 74 of file PermMatrix.h.

References Array< T, Alloc >::byte_size().

◆ checkelem()

octave_idx_type PermMatrix::checkelem ( octave_idx_type  i,
octave_idx_type  j 
) const

Definition at line 91 of file PermMatrix.cc.

References elem(), len, and Array< T, Alloc >::numel().

◆ col_perm_vec()

◆ cols()

octave_idx_type PermMatrix::cols ( ) const
inline

◆ columns()

octave_idx_type PermMatrix::columns ( ) const
inline

Definition at line 64 of file PermMatrix.h.

Referenced by operator*(), and octave_perm_matrix::short_disp().

◆ determinant()

octave_idx_type PermMatrix::determinant ( ) const

Definition at line 120 of file PermMatrix.cc.

References Array< octave_idx_type >::data(), len, OCTAVE_LOCAL_BUFFER, and perm_length().

Referenced by Fdet().

◆ dim1()

octave_idx_type PermMatrix::dim1 ( ) const
inline

Definition at line 57 of file PermMatrix.h.

References Array< T, Alloc >::numel().

◆ dim2()

octave_idx_type PermMatrix::dim2 ( ) const
inline

Definition at line 59 of file PermMatrix.h.

References Array< T, Alloc >::numel().

◆ dims()

dim_vector PermMatrix::dims ( ) const
inline

Definition at line 77 of file PermMatrix.h.

◆ elem()

octave_idx_type PermMatrix::elem ( octave_idx_type  i,
octave_idx_type  j 
) const
inline

Definition at line 87 of file PermMatrix.h.

Referenced by checkelem(), and octave_perm_matrix::fast_elem_extract().

◆ eye()

PermMatrix PermMatrix::eye ( octave_idx_type  n)
static

Definition at line 205 of file PermMatrix.cc.

References PermMatrix(), and n.

◆ inverse()

PermMatrix PermMatrix::inverse ( ) const

Definition at line 114 of file PermMatrix.cc.

References transpose().

Referenced by Finv(), Fpinv(), and power().

◆ is_col_perm()

bool PermMatrix::is_col_perm ( ) const
inline

Definition at line 111 of file PermMatrix.h.

◆ is_row_perm()

bool PermMatrix::is_row_perm ( ) const
inline

Definition at line 112 of file PermMatrix.h.

◆ isempty()

bool PermMatrix::isempty ( ) const
inline

Definition at line 79 of file PermMatrix.h.

References numel().

Referenced by octave_perm_matrix::short_disp().

◆ length()

octave_idx_type PermMatrix::length ( ) const
inline

Definition at line 69 of file PermMatrix.h.

◆ ndims()

int PermMatrix::ndims ( ) const
inline

Definition at line 81 of file PermMatrix.h.

Referenced by octave_perm_matrix::short_disp().

◆ numel()

◆ operator()()

octave_idx_type PermMatrix::operator() ( octave_idx_type  i,
octave_idx_type  j 
) const
inline

Definition at line 96 of file PermMatrix.h.

◆ operator=()

PermMatrix& PermMatrix::operator= ( const PermMatrix m)
default

◆ perm_length()

octave_idx_type PermMatrix::perm_length ( ) const
inline

Definition at line 66 of file PermMatrix.h.

References Array< T, Alloc >::numel().

Referenced by determinant().

◆ power()

PermMatrix PermMatrix::power ( octave_idx_type  n) const

Definition at line 155 of file PermMatrix.cc.

References PermMatrix(), inverse(), m, and rows().

◆ print_info()

void PermMatrix::print_info ( std::ostream &  os,
const std::string &  prefix 
) const
inline

Definition at line 114 of file PermMatrix.h.

References Array< T, Alloc >::print_info().

Referenced by octave_perm_matrix::print_info().

◆ rows()

◆ transpose()

PermMatrix PermMatrix::transpose ( ) const

The documentation for this class was generated from the following files: