mpqc::PartitionedSparseOrbitalRange< NP > Class Template Reference

Documentation

template<std::size_t NP>
class mpqc::PartitionedSparseOrbitalRange< NP >

SparseOrbitalRange partitioned into NP contiguous subsets

Template Parameters
NPthe number of partitions (1 or greater)
Note
this decomposes via structured bindings to the base type + partition sizes (except the last)

Public Types

using base_type = SparseOrbitalRange
 
using partition_type = mpqc::span< const orbital_index_type >
 

Public Member Functions

 PartitionedSparseOrbitalRange ()=default
 
 ~PartitionedSparseOrbitalRange ()=default
 
 PartitionedSparseOrbitalRange (const PartitionedSparseOrbitalRange &)=default
 
 PartitionedSparseOrbitalRange (PartitionedSparseOrbitalRange &&)=default
 
PartitionedSparseOrbitalRangeoperator= (const PartitionedSparseOrbitalRange &)=default
 
PartitionedSparseOrbitalRangeoperator= (PartitionedSparseOrbitalRange &&)=default
 
template<typename Idx , typename... PartitionSizes>
 PartitionedSparseOrbitalRange (const std::vector< Idx > &orbs, PartitionSizes... partition_sizes)
 
template<typename... PartitionSizes>
 PartitionedSparseOrbitalRange (const SparseOrbitalRange &orbs, PartitionSizes... partition_sizes)
 
template<typename... PartitionSizes>
 PartitionedSparseOrbitalRange (SparseOrbitalRange &&orbs, PartitionSizes... partition_sizes)
 
std::size_t partition_size (std::size_t p) const
 
auto partition (std::size_t p) const
 
const auto & orbs () const
 

Member Typedef Documentation

◆ base_type

template<std::size_t NP>
using mpqc::PartitionedSparseOrbitalRange< NP >::base_type = SparseOrbitalRange

◆ partition_type

template<std::size_t NP>
using mpqc::PartitionedSparseOrbitalRange< NP >::partition_type = mpqc::span<const orbital_index_type>

Constructor & Destructor Documentation

◆ PartitionedSparseOrbitalRange() [1/6]

template<std::size_t NP>
mpqc::PartitionedSparseOrbitalRange< NP >::PartitionedSparseOrbitalRange ( )
default

◆ ~PartitionedSparseOrbitalRange()

template<std::size_t NP>
mpqc::PartitionedSparseOrbitalRange< NP >::~PartitionedSparseOrbitalRange ( )
default

◆ PartitionedSparseOrbitalRange() [2/6]

template<std::size_t NP>
mpqc::PartitionedSparseOrbitalRange< NP >::PartitionedSparseOrbitalRange ( const PartitionedSparseOrbitalRange< NP > &  )
default

◆ PartitionedSparseOrbitalRange() [3/6]

◆ PartitionedSparseOrbitalRange() [4/6]

template<std::size_t NP>
template<typename Idx , typename... PartitionSizes>
mpqc::PartitionedSparseOrbitalRange< NP >::PartitionedSparseOrbitalRange ( const std::vector< Idx > &  orbs,
PartitionSizes...  partition_sizes 
)
inlineexplicit
Template Parameters
PartitionSizespartition sizes; sizeof(PartitionSizes)... must be equal to NP or NP-1, i.e. the size of the last partition can be skipped

◆ PartitionedSparseOrbitalRange() [5/6]

template<std::size_t NP>
template<typename... PartitionSizes>
mpqc::PartitionedSparseOrbitalRange< NP >::PartitionedSparseOrbitalRange ( const SparseOrbitalRange orbs,
PartitionSizes...  partition_sizes 
)
inlineexplicit
Template Parameters
PartitionSizespartition sizes; sizeof(PartitionSizes)... must be equal to NP or NP-1, i.e. the size of the last partition can be skipped

◆ PartitionedSparseOrbitalRange() [6/6]

template<std::size_t NP>
template<typename... PartitionSizes>
mpqc::PartitionedSparseOrbitalRange< NP >::PartitionedSparseOrbitalRange ( SparseOrbitalRange &&  orbs,
PartitionSizes...  partition_sizes 
)
inlineexplicit
Template Parameters
PartitionSizespartition sizes; sizeof(PartitionSizes)... must be equal to NP or NP-1, i.e. the size of the last partition can be skipped

Member Function Documentation

◆ operator=() [1/2]

template<std::size_t NP>
PartitionedSparseOrbitalRange& mpqc::PartitionedSparseOrbitalRange< NP >::operator= ( const PartitionedSparseOrbitalRange< NP > &  )
default

◆ operator=() [2/2]

template<std::size_t NP>
PartitionedSparseOrbitalRange& mpqc::PartitionedSparseOrbitalRange< NP >::operator= ( PartitionedSparseOrbitalRange< NP > &&  )
default

◆ orbs()

template<std::size_t NP>
const auto& mpqc::PartitionedSparseOrbitalRange< NP >::orbs ( ) const
inline

◆ partition()

template<std::size_t NP>
auto mpqc::PartitionedSparseOrbitalRange< NP >::partition ( std::size_t  p) const
inline
Parameters
[in]ppartition index
Returns
partition p
Precondition
p<NP

◆ partition_size()

template<std::size_t NP>
std::size_t mpqc::PartitionedSparseOrbitalRange< NP >::partition_size ( std::size_t  p) const
inline
Parameters
[in]ppartition index
Returns
size of partition p
Precondition
p<NP

The documentation for this class was generated from the following files: