MADNESS  0.10.1
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
madness::permutation Struct Reference

permutations in physisists notation: <ij | kl> = (ik | jl), loop over ik<jl More...

Public Member Functions

 permutation (int i, int j, int k, int l)
 
std::vector< permutationmake_all_eri_permutations () const
 
std::vector< permutationmake_all_tau_permutations () const
 <\tau_{ij} | \tau_{kl}> = <\tau_{ji} | \tau_{lk}> = <\tau_{kl} | \tau_{ij}>= <\tau_{lk} | \tau_{ji}> More...
 
bool operator!= (const permutation &other) const
 
bool operator< (const permutation &other) const
 
bool operator== (const permutation &other) const
 

Static Public Member Functions

static std::vector< permutationremove_duplicates (std::vector< permutation > v)
 

Public Attributes

int i
 
int j
 
int k
 
int l
 

Detailed Description

permutations in physisists notation: <ij | kl> = (ik | jl), loop over ik<jl

std::vector<permutation> all_permutations; for (int ik=0; ik<npair(); ++ik) { for (int jl=ik; jl<npair(); ++jl) { auto [i,k]=ij_to_i_and_j(ik); auto [j,l]=ij_to_i_and_j(jl); permutation p(i,j,k,l); auto perms=p.make_all_permutations(); for (const auto& p:perms) all_permutations.push_back(p); int number_of_unique_permutations=perms.size(); print("ij, kl, i, j, k, l",ik,jl," -- ", i,j,k,l," - ",perms.size(),perms); } }

Constructor & Destructor Documentation

◆ permutation()

madness::permutation::permutation ( int  i,
int  j,
int  k,
int  l 
)
inline

Member Function Documentation

◆ make_all_eri_permutations()

std::vector<permutation> madness::permutation::make_all_eri_permutations ( ) const
inline

References i, j, k, l, and remove_duplicates().

◆ make_all_tau_permutations()

std::vector<permutation> madness::permutation::make_all_tau_permutations ( ) const
inline

<\tau_{ij} | \tau_{kl}> = <\tau_{ji} | \tau_{lk}> = <\tau_{kl} | \tau_{ij}>= <\tau_{lk} | \tau_{ji}>

References i, j, k, l, and remove_duplicates().

Referenced by madness::MP3::compute_mp3_ef(), and madness::MP3::compute_mp3_ef_with_permutational_symmetry().

◆ operator!=()

bool madness::permutation::operator!= ( const permutation other) const
inline

◆ operator<()

bool madness::permutation::operator< ( const permutation other) const
inline

References i, j, k, and l.

◆ operator==()

bool madness::permutation::operator== ( const permutation other) const
inline

References i, j, k, and l.

◆ remove_duplicates()

static std::vector<permutation> madness::permutation::remove_duplicates ( std::vector< permutation v)
inlinestatic

Member Data Documentation

◆ i

int madness::permutation::i

◆ j

int madness::permutation::j

◆ k

int madness::permutation::k

◆ l

int madness::permutation::l

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