permutation.h File Reference
#include <algorithm>
#include <array>
#include <numeric>
#include <TiledArray/error.h>
#include <TiledArray/tensor/type_traits.h>
#include <TiledArray/type_traits.h>
#include <TiledArray/util/vector.h>
#include <TiledArray/utility.h>
Include dependency graph for permutation.h:
This graph shows which files directly or indirectly include this file:

Classes

class  TiledArray::Permutation
 Permutation of a sequence of objects indexed by base-0 indices. More...
 
class  TiledArray::BipartitePermutation
 Permutation of a bipartite set. More...
 

Namespaces

 TiledArray
 
 TiledArray::detail
 

Functions

bool TiledArray::operator== (const Permutation &p1, const Permutation &p2)
 Permutation equality operator. More...
 
std::ostream & TiledArray::operator<< (std::ostream &output, const Permutation &p)
 Add permutation to an output stream. More...
 
template<typename T , std::size_t N>
std::array< T, N > TiledArray::operator* (const Permutation &perm, const std::array< T, N > &a)
 Permute a std::array. More...
 
template<typename T , std::size_t N>
std::array< T, N > & TiledArray::operator*= (std::array< T, N > &a, const Permutation &perm)
 In-place permute a std::array. More...
 
template<typename T , typename A >
std::vector< T > TiledArray::operator* (const Permutation &perm, const std::vector< T, A > &v)
 permute a std::vector<T> More...
 
template<typename T , typename A >
std::vector< T, A > & TiledArray::operator*= (std::vector< T, A > &v, const Permutation &perm)
 In-place permute a std::vector. More...
 
template<typename T >
std::vector< T > TiledArray::operator* (const Permutation &perm, const T *MADNESS_RESTRICT const ptr)
 Permute a memory buffer. More...
 
bool TiledArray::operator== (const BipartitePermutation &p1, const BipartitePermutation &p2)
 Permutation equality operator. More...
 
template<typename Perm , typename Arg , typename Result , typename = std::enable_if_t<is_permutation_v<Perm>>>
void TiledArray::detail::permute_array (const Perm &perm, const Arg &arg, Result &result)
 Create a permuted copy of an array. More...
 
bool TiledArray::operator!= (const Permutation &p1, const Permutation &p2)
 Permutation inequality operator. More...
 
bool TiledArray::operator< (const Permutation &p1, const Permutation &p2)
 Permutation less-than operator. More...
 
Permutation TiledArray::operator- (const Permutation &perm)
 Inverse permutation operator. More...
 
Permutation TiledArray::operator* (const Permutation &p1, const Permutation &p2)
 Permutation multiplication operator. More...
 
Permutation & TiledArray::operator*= (Permutation &p1, const Permutation &p2)
 return *this ^ other More...
 
Permutation TiledArray::operator^ (const Permutation &perm, int n)
 Raise perm to the n-th power. More...
 
template<typename T , std::size_t N>
boost::container::small_vector< T, N > TiledArray::operator* (const Permutation &perm, const boost::container::small_vector< T, N > &v)
 permute a boost::container::small_vector<T> More...
 
template<typename T , std::size_t N>
boost::container::small_vector< T, N > & TiledArray::operator*= (boost::container::small_vector< T, N > &v, const Permutation &perm)
 In-place permute a boost::container::small_vector. More...
 
bool TiledArray::operator!= (const BipartitePermutation &p1, const BipartitePermutation &p2)
 Permutation inequality operator. More...
 
auto TiledArray::inner (const Permutation &p)
 
auto TiledArray::outer (const Permutation &p)
 
auto TiledArray::inner_size (const Permutation &p)
 
auto TiledArray::outer_size (const Permutation &p)
 
auto TiledArray::inner (const BipartitePermutation &p)
 
auto TiledArray::outer (const BipartitePermutation &p)
 
auto TiledArray::inner_size (const BipartitePermutation &p)
 
auto TiledArray::outer_size (const BipartitePermutation &p)