permutation Class Reference

A class for representing permutations. More...

#include <permutation.h>


Detailed Description

This permutation class is completely compatible with the GSL permutation object.

Definition at line 73 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.
int allocate (size_t dim)
 Allocate memory for a permutation of size dim.
int free ()
 Free the memory.
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)
permutationoperator= (const permutation &v)

Member Function Documentation

int apply ( vec_t &  v  )  const [inline]

Now have k==i, i.e. the least in its cycle

Definition at line 301 of file permutation.h.

int apply_inverse ( vec_t &  v  )  const [inline]

Now have k==i, i.e. the least in its cycle

Definition at line 326 of file permutation.h.

int free (  )  [inline]

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

Definition at line 250 of file permutation.h.

size_t size (  )  const [inline]

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

Definition at line 228 of file permutation.h.


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

Documentation generated with Doxygen and provided under the GNU Free Documentation License. See License Information for details.

Project hosting provided by SourceForge.net Logo, O2scl Sourceforge Project Page