Collaboration diagram for mpqc.Chemistry.ElectronicStructure.Spin.Util:

Documentation

Utilities manipulating spin-specific (meta)data.

Note
In spin-collinear (e.g., nonrelativistic) theory alpha and beta spin states are distinct. Metadata T for alpha ( $ m_s=+1/2 $, or spin-up) and beta ( $ m_s=-1/2 $, or spin-down) states will be commonly paired together as a std::pair<T,T>. For example, the SlaterDeterminant class is such a pair. This adds syntactic sugar for dealing with such data pairs using a domain-specific terminology.

Functions

template<typename T1 , typename T2 >
const auto & mpqc::alpha (const std::pair< T1, T2 > &p)
 
template<typename T1 , typename T2 >
auto & mpqc::alpha (std::pair< T1, T2 > &p)
 
template<typename T1 , typename T2 >
const auto & mpqc::alpha (const std::tuple< T1, T2 > &p)
 
template<typename T1 , typename T2 >
auto & mpqc::alpha (std::tuple< T1, T2 > &p)
 
template<typename T1 , typename T2 >
const auto & mpqc::beta (const std::pair< T1, T2 > &p)
 
template<typename T1 , typename T2 >
auto & mpqc::beta (std::pair< T1, T2 > &p)
 
template<typename T1 , typename T2 >
const auto & mpqc::beta (const std::tuple< T1, T2 > &p)
 
template<typename T1 , typename T2 >
auto & mpqc::beta (std::tuple< T1, T2 > &p)
 
template<typename StringRange , typename = std::enable_if_t<!meta::is_string_v<StringRange>>>
const auto & mpqc::alpha (const SlaterDeterminant< StringRange > &det)
 
template<typename StringRange , typename = std::enable_if_t<!meta::is_string_v<StringRange>>>
auto & mpqc::alpha (SlaterDeterminant< StringRange > &det)
 
template<typename StringRange , typename = std::enable_if_t<!meta::is_string_v<StringRange>>>
const auto & mpqc::alphastr (const SlaterDeterminant< StringRange > &det)
 
template<typename String , typename = std::enable_if_t<meta::is_string_v<String>>>
auto mpqc::alpha (const SlaterDeterminant< String > &det)
 
template<typename String , typename = std::enable_if_t<meta::is_string_v<String>>>
auto mpqc::alpha (SlaterDeterminant< String > &det)
 
template<typename String >
std::enable_if_t< meta::is_string_v< String >, const String & > mpqc::alphastr (const SlaterDeterminant< String > &det)
 
template<typename StringRange , typename = std::enable_if_t<!meta::is_string_v<StringRange>>>
decltype(auto) mpqc::beta (const SlaterDeterminant< StringRange > &det)
 
template<typename StringRange , typename = std::enable_if_t<!meta::is_string_v<StringRange>>>
auto & mpqc::beta (SlaterDeterminant< StringRange > &det)
 
template<typename StringRange , typename = std::enable_if_t<!meta::is_string_v<StringRange>>>
const auto & mpqc::betastr (const SlaterDeterminant< StringRange > &det)
 
template<typename String , typename = std::enable_if_t<meta::is_string_v<String>>>
auto mpqc::beta (const SlaterDeterminant< String > &det)
 
template<typename String , typename = std::enable_if_t<meta::is_string_v<String>>>
auto mpqc::beta (SlaterDeterminant< String > &det)
 
template<typename String >
std::enable_if_t< meta::is_string_v< String >, const String & > mpqc::betastr (const SlaterDeterminant< String > &det)
 
template<typename RangeA , typename RangeB , typename = std::enable_if_t<TiledArray::detail::is_range_v<RangeA> && TiledArray::detail::is_range_v<RangeB>>>
decltype(auto) mpqc::begin (const std::pair< RangeA, RangeB > &rng)
 
template<typename RangeA , typename RangeB , typename = std::enable_if_t<TiledArray::detail::is_range_v<RangeA> && TiledArray::detail::is_range_v<RangeB>>>
decltype(auto) mpqc::end (const std::pair< RangeA, RangeB > &rng)
 
auto mpqc::occ_range (const std::pair< PopulatedSparseOrbitalRange, PopulatedSparseOrbitalRange > &poporbs)
 
auto mpqc::uocc_range (const std::pair< PopulatedSparseOrbitalRange, PopulatedSparseOrbitalRange > &poporbs)
 

Function Documentation

◆ alpha() [1/8]

template<typename String , typename = std::enable_if_t<meta::is_string_v<String>>>
auto mpqc::alpha ( const SlaterDeterminant< String > &  det)
Parameters
[in]deta SlaterDeterminant object
Returns
const reference to alpha string

◆ alpha() [2/8]

template<typename StringRange , typename = std::enable_if_t<!meta::is_string_v<StringRange>>>
const auto& mpqc::alpha ( const SlaterDeterminant< StringRange > &  det)
Parameters
[in]deta SlaterDeterminant object
Returns
alpha string iterator

◆ alpha() [3/8]

template<typename T1 , typename T2 >
const auto& mpqc::alpha ( const std::pair< T1, T2 > &  p)

extract alpha component of pair p

Parameters
[in]pspin-specific metadata pair

◆ alpha() [4/8]

template<typename T1 , typename T2 >
const auto& mpqc::alpha ( const std::tuple< T1, T2 > &  p)

extract alpha component of 2-tuple p

Parameters
[in]pspin-specific metadata pair

◆ alpha() [5/8]

template<typename String , typename = std::enable_if_t<meta::is_string_v<String>>>
auto mpqc::alpha ( SlaterDeterminant< String > &  det)
Parameters
[in]deta SlaterDeterminant object
Returns
reference to alpha string

◆ alpha() [6/8]

template<typename StringRange , typename = std::enable_if_t<!meta::is_string_v<StringRange>>>
auto& mpqc::alpha ( SlaterDeterminant< StringRange > &  det)
Parameters
[in]deta SlaterDeterminant object
Returns
alpha string iterator

◆ alpha() [7/8]

template<typename T1 , typename T2 >
auto& mpqc::alpha ( std::pair< T1, T2 > &  p)

extract alpha component of pair p

Parameters
[in]pspin-specific metadata pair

◆ alpha() [8/8]

template<typename T1 , typename T2 >
auto& mpqc::alpha ( std::tuple< T1, T2 > &  p)

extract alpha component of 2-tuple p

Parameters
[in]pspin-specific metadata pair

◆ alphastr() [1/2]

template<typename String >
std::enable_if_t<meta::is_string_v<String>, const String&> mpqc::alphastr ( const SlaterDeterminant< String > &  det)
Parameters
[in]deta SlaterDeterminant object
Returns
const reference to alpha string object

◆ alphastr() [2/2]

template<typename StringRange , typename = std::enable_if_t<!meta::is_string_v<StringRange>>>
const auto& mpqc::alphastr ( const SlaterDeterminant< StringRange > &  det)
Parameters
[in]deta SlaterDeterminant object
Returns
const reference to alpha string object

◆ begin()

template<typename RangeA , typename RangeB , typename = std::enable_if_t<TiledArray::detail::is_range_v<RangeA> && TiledArray::detail::is_range_v<RangeB>>>
decltype(auto) mpqc::begin ( const std::pair< RangeA, RangeB > &  rng)

constructs a pair of begin iterators for the alpha and beta ranges

Template Parameters
RangeAa range type
RangeBa range type

◆ beta() [1/8]

template<typename String , typename = std::enable_if_t<meta::is_string_v<String>>>
auto mpqc::beta ( const SlaterDeterminant< String > &  det)
Parameters
[in]deta SlaterDeterminant object
Returns
const reference to beta string

◆ beta() [2/8]

template<typename StringRange , typename = std::enable_if_t<!meta::is_string_v<StringRange>>>
decltype(auto) mpqc::beta ( const SlaterDeterminant< StringRange > &  det)
Parameters
[in]deta SlaterDeterminant object
Returns
beta string iterator

◆ beta() [3/8]

template<typename T1 , typename T2 >
const auto& mpqc::beta ( const std::pair< T1, T2 > &  p)

extract beta component of pair p

Parameters
[in]pspin-specific metadata pair

◆ beta() [4/8]

template<typename T1 , typename T2 >
const auto& mpqc::beta ( const std::tuple< T1, T2 > &  p)

extract beta component of 2-tuple p

Parameters
[in]pspin-specific metadata pair

◆ beta() [5/8]

template<typename String , typename = std::enable_if_t<meta::is_string_v<String>>>
auto mpqc::beta ( SlaterDeterminant< String > &  det)
Parameters
[in]deta SlaterDeterminant object
Returns
reference to beta string

◆ beta() [6/8]

template<typename StringRange , typename = std::enable_if_t<!meta::is_string_v<StringRange>>>
auto& mpqc::beta ( SlaterDeterminant< StringRange > &  det)
Parameters
[in]deta SlaterDeterminant object
Returns
beta string iterator

◆ beta() [7/8]

template<typename T1 , typename T2 >
auto& mpqc::beta ( std::pair< T1, T2 > &  p)

extract beta component of pair p

Parameters
[in]pspin-specific metadata pair

◆ beta() [8/8]

template<typename T1 , typename T2 >
auto& mpqc::beta ( std::tuple< T1, T2 > &  p)

extract beta component of 2-tuple p

Parameters
[in]pspin-specific metadata pair

◆ betastr() [1/2]

template<typename String >
std::enable_if_t<meta::is_string_v<String>, const String&> mpqc::betastr ( const SlaterDeterminant< String > &  det)
Parameters
[in]deta SlaterDeterminant object
Returns
const reference to beta string object

◆ betastr() [2/2]

template<typename StringRange , typename = std::enable_if_t<!meta::is_string_v<StringRange>>>
const auto& mpqc::betastr ( const SlaterDeterminant< StringRange > &  det)
Parameters
[in]deta SlaterDeterminant object
Returns
reference to beta string object

◆ end()

template<typename RangeA , typename RangeB , typename = std::enable_if_t<TiledArray::detail::is_range_v<RangeA> && TiledArray::detail::is_range_v<RangeB>>>
decltype(auto) mpqc::end ( const std::pair< RangeA, RangeB > &  rng)

constructs a pair of end iterators for the alpha and beta ranges

Template Parameters
RangeAa range type
RangeBa range type

◆ occ_range()

auto mpqc::occ_range ( const std::pair< PopulatedSparseOrbitalRange, PopulatedSparseOrbitalRange > &  poporbs)
inline

◆ uocc_range()

auto mpqc::uocc_range ( const std::pair< PopulatedSparseOrbitalRange, PopulatedSparseOrbitalRange > &  poporbs)
inline