mpqc::SlaterDeterminant< StringRange, std::enable_if_t<!meta::is_string_v< StringRange > > > Struct Template Reference

Documentation

template<typename StringRange>
struct mpqc::SlaterDeterminant< StringRange, std::enable_if_t<!meta::is_string_v< StringRange > > >

(spin-collinear) Slater determinant = pair of string iterators

Note
use String to represent determinants with noncollinear spins, e.g., for relativistic theory
Template Parameters
StringRangea range of strings

Classes

struct  equal_to
 
struct  hash
 

Public Types

using string_iterator = typename StringRange::const_iterator
 
using String = typename StringRange::value_type
 
using string_type = String
 

Public Member Functions

 SlaterDeterminant (string_iterator as, string_iterator bs)
 
 SlaterDeterminant (string_iterator as, string_iterator bs, const StringRange *asrange, const StringRange *bsrange=nullptr)
 
 SlaterDeterminant (const String &as, const String &bs, const StringRange *asrange, const StringRange *bsrange=nullptr)
 
bool operator== (const SlaterDeterminant &other) const
 
size_t hash_value () const
 

Public Attributes

std::pair< string_iterator, string_iteratorstr
 {alpha,beta} string More...
 

Member Typedef Documentation

◆ String

template<typename StringRange >
using mpqc::SlaterDeterminant< StringRange, std::enable_if_t<!meta::is_string_v< StringRange > > >::String = typename StringRange::value_type

◆ string_iterator

template<typename StringRange >
using mpqc::SlaterDeterminant< StringRange, std::enable_if_t<!meta::is_string_v< StringRange > > >::string_iterator = typename StringRange::const_iterator

◆ string_type

template<typename StringRange >
using mpqc::SlaterDeterminant< StringRange, std::enable_if_t<!meta::is_string_v< StringRange > > >::string_type = String

Constructor & Destructor Documentation

◆ SlaterDeterminant() [1/3]

template<typename StringRange >
mpqc::SlaterDeterminant< StringRange, std::enable_if_t<!meta::is_string_v< StringRange > > >::SlaterDeterminant ( string_iterator  as,
string_iterator  bs 
)
inline

construct from a pair of iterators

Parameters
[in]asiterator pointing to alpha string
[in]bsiterator pointing to beta string
Warning
fastest, unsafe: produces unusable SlaterDeterminant if as or @bs do not point to a valid string

◆ SlaterDeterminant() [2/3]

template<typename StringRange >
mpqc::SlaterDeterminant< StringRange, std::enable_if_t<!meta::is_string_v< StringRange > > >::SlaterDeterminant ( string_iterator  as,
string_iterator  bs,
const StringRange *  asrange,
const StringRange *  bsrange = nullptr 
)
inline

construct from a pair of iterators

Parameters
[in]asiterator pointing to alpha string;
[in]bsiterator pointing to beta string;
[in]asrangerange pointed to by as
[in]bsrangerange pointed to by bs (if omitted or null, will assume that bs points to asrange )
Precondition
as != asrange->end() && bs != bsrange->end()
Warning
fast, safe: produces usable SlaterDeterminant

◆ SlaterDeterminant() [3/3]

template<typename StringRange >
mpqc::SlaterDeterminant< StringRange, std::enable_if_t<!meta::is_string_v< StringRange > > >::SlaterDeterminant ( const String as,
const String bs,
const StringRange *  asrange,
const StringRange *  bsrange = nullptr 
)
inline

construct from a pair of strings

Parameters
[in]asalpha string
[in]bsbeta string
[in]asrangerange pointed to by as
[in]bsrangerange pointed to by bs (if omitted or null, will assume that bs points to asrange )
Precondition
asrange->find(as) != asrange->end() && bsrange->find(bs) != bsrange->end()
Warning
slowest, safe: produces usable SlaterDeterminant

Member Function Documentation

◆ hash_value()

template<typename StringRange >
size_t mpqc::SlaterDeterminant< StringRange, std::enable_if_t<!meta::is_string_v< StringRange > > >::hash_value ( ) const
inline

◆ operator==()

template<typename StringRange >
bool mpqc::SlaterDeterminant< StringRange, std::enable_if_t<!meta::is_string_v< StringRange > > >::operator== ( const SlaterDeterminant< StringRange, std::enable_if_t<!meta::is_string_v< StringRange > > > &  other) const
inline

Member Data Documentation

◆ str

template<typename StringRange >
std::pair<string_iterator, string_iterator> mpqc::SlaterDeterminant< StringRange, std::enable_if_t<!meta::is_string_v< StringRange > > >::str

{alpha,beta} string


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