MADNESS 0.10.1
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< permutation > make_all_eri_permutations () const
std::vector< permutation > make_all_tau_permutations () const
 <\tau_{ij} | \tau_{kl}> = <\tau_{ji} | \tau_{lk}> = <\tau_{kl} | \tau_{ij}>= <\tau_{lk} | \tau_{ji}>
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< permutation > remove_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 permutation(), 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 permutation(), 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

References permutation().

◆ operator<()

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

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

◆ operator==()

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

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

◆ remove_duplicates()

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

Member Data Documentation

◆ i

◆ j

◆ k

◆ l


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