A class for representing permutations. More...
#include <permutation.h>
To apply a permutation to a user-specified vector, see o2scl::permutation::apply().
Definition at line 70 of file permutation.h.
Public Member Functions | |
permutation (size_t dim=0) | |
Create a permutation of size dim . | |
size_t & | operator[] (size_t i) |
Array-like indexing. | |
const size_t & | operator[] (size_t i) const |
Array-like indexing. | |
size_t & | operator() (size_t i) |
Array-like indexing. | |
const size_t & | operator() (size_t i) const |
Array-like indexing. | |
size_t | get (size_t i) const |
Get (with optional range-checking) | |
int | set (size_t i, size_t val) |
Set (with optional range-checking) | |
int | init () |
Initialize permutation to the identity. | |
size_t | size () const |
Return permutation size. More... | |
int | allocate (size_t dim) |
Allocate memory for a permutation of size dim . | |
int | free () |
Free the memory. More... | |
void | resize (size_t dim) |
Resize. | |
int | swap (const size_t i, const size_t j) |
Swap two elements of a permutation. | |
bool | valid () const |
Check to see that a permutation is valid. | |
int | reverse () |
Reverse the permutation. | |
permutation | inverse () const |
Compute the inverse of a permutation. | |
template<class vec_t > | |
int | apply (vec_t &v) const |
Apply the permutation to a vector. | |
template<class vec_t > | |
int | apply_inverse (vec_t &v) const |
Apply the inverse permutation to a vector. | |
Copy constructors | |
permutation (const permutation &v) | |
permutation & | operator= (const permutation &v) |
Protected Attributes | |
size_t | size_ |
boost::numeric::ublas::unbounded_array< size_t > | data |
|
inline |
This function will safely do nothing if used without first allocating memory or if called multiple times in succession.
Definition at line 233 of file permutation.h.
|
inline |
If no memory has been allocated, this will quietly return zero.
Definition at line 213 of file permutation.h.
Documentation generated with Doxygen. Provided under the
GNU Free Documentation License (see License Information).