Class permutation (o2scl)

O2scl : Class List

class o2scl::permutation

A class for representing permutations.

To apply a permutation to a user-specified vector, see o2scl::permutation::apply().

Copy constructors

permutation(const permutation &v)
permutation &operator=(const permutation &v)
~permutation()
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.

If no memory has been allocated, this will quietly return zero.

int allocate(size_t dim)

Allocate memory for a permutation of size dim.

int free()

Free the memory.

This function will safely do nothing if used without first allocating memory or if called multiple times in succession.

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.

Public Functions

permutation(size_t dim = 0)

Create a permutation of size dim.

Protected Attributes

size_t size_
boost::numeric::ublas::unbounded_array<size_t> data