atlas
0.6
|
Classes | |
struct | Permutation |
Functions | |
void | compose (Permutation &a, const Permutation &b, unsigned long n) |
int | sign (const Permutation &pi) |
template<typename T > | |
void | permute_columns (matrix::Matrix_base< T > &M, const Permutation &pi) |
template<typename U > | |
Permutation | standardization (const std::vector< U > &a, size_t bound, std::vector< unsigned int > *stops) |
template void | permute_columns (matrix::Matrix_base< int > &M, const Permutation &pi) |
template Permutation | standardization (const std::vector< unsigned int > &a, size_t bound, std::vector< unsigned int > *stops) |
template<typename T > | |
size_t | find_index (const std::vector< T > &v, const T &x) |
template<typename T > | |
void | permute_rows (matrix::Matrix_base< T > &M, const Permutation &pi) |
void atlas::permutations::compose | ( | Permutation & | a, |
const Permutation & | b, | ||
unsigned long | n | ||
) |
Synopsis: a *= b;
Precondition : a holds a permutation of [0,N[; b holds a permutation of [0,M[; M + n <= N;
Postcondition : a holds the permutation a_new of [0,N[ where a_new[i+n] = a[ b[i] + n ] for i in [0,M[; a is not changed outside the range [n,M+n[.
NOTE : although we know that the permutation can be done in place with the aid of just a bitmap, we do the lazy approach here and make a copy of the range involved.
|
inline |
void atlas::permutations::permute_columns | ( | matrix::Matrix_base< T > & | M, |
const Permutation & | pi | ||
) |
template void atlas::permutations::permute_columns | ( | matrix::Matrix_base< int > & | M, |
const Permutation & | pi | ||
) |
void atlas::permutations::permute_rows | ( | matrix::Matrix_base< T > & | M, |
const Permutation & | pi | ||
) |
int atlas::permutations::sign | ( | const Permutation & | pi | ) |
Permutation atlas::permutations::standardization | ( | const std::vector< U > & | a, |
size_t | bound, | ||
std::vector< unsigned int > * | stops | ||
) |
template Permutation atlas::permutations::standardization | ( | const std::vector< unsigned int > & | a, |
size_t | bound, | ||
std::vector< unsigned int > * | stops | ||
) |