mpqc::utility::TensorProductGenerator< Generators > Struct Template Reference
Collaboration diagram for mpqc::utility::TensorProductGenerator< Generators >:

Documentation

template<typename... Generators>
struct mpqc::utility::TensorProductGenerator< Generators >

Tensor product of generators.

Template Parameters
GeneratorsTensor product of Generators is a generator that results a tuple of reference wrappers to the values produced by the generators, with the last of the generators used most frequently, and the first of the generators used least frequently

Public Types

using value_type = std::tuple< const typename Generators::value_type &... >
 
using base_type = utility::GeneratorRangeFacade< TensorProductGenerator< Generators... >, value_type >
 
- Public Types inherited from mpqc::utility::GeneratorRangeFacade< TensorProductGenerator< Generators... >, std::tuple< const Generators::value_type &... > >
typedef GeneratorIterator< TensorProductGenerator< Generators... >, TensorProductGenerator< Generators... > *, std::tuple< const Generators::value_type &... > > iterator
 
typedef GeneratorIterator< TensorProductGenerator< Generators... >, TensorProductGenerator< Generators... > *, const std::tuple< const Generators::value_type &... > > const_iterator
 

Public Member Functions

template<typename... Generators_>
 TensorProductGenerator (Generators_ &&... generators)
 
 operator bool () const
 
TensorProductGeneratoroperator++ ()
 
const value_typeoperator* () const
 
bool operator== (const TensorProductGenerator &other) const
 
std::tuple< const Generators &... > generators () const
 
const_iterator begin ()
 
const_iterator end () const
 
- Public Member Functions inherited from mpqc::utility::GeneratorRangeFacade< TensorProductGenerator< Generators... >, std::tuple< const Generators::value_type &... > >
const_iterator begin ()
 
const_iterator end () const
 

Static Public Attributes

constexpr static std::size_t Size = sizeof...(Generators)
 

Member Typedef Documentation

◆ base_type

template<typename... Generators>
using mpqc::utility::TensorProductGenerator< Generators >::base_type = utility::GeneratorRangeFacade<TensorProductGenerator<Generators...>, value_type>

◆ value_type

template<typename... Generators>
using mpqc::utility::TensorProductGenerator< Generators >::value_type = std::tuple<const typename Generators::value_type&...>

Constructor & Destructor Documentation

◆ TensorProductGenerator()

template<typename... Generators>
template<typename... Generators_>
mpqc::utility::TensorProductGenerator< Generators >::TensorProductGenerator ( Generators_ &&...  generators)
inline

Member Function Documentation

◆ begin()

template<typename... Generators>
const_iterator mpqc::utility::GeneratorRangeFacade< Generator, Value >::begin
inline

◆ end()

template<typename... Generators>
const_iterator mpqc::utility::GeneratorRangeFacade< Generator, Value >::end
inline

◆ generators()

template<typename... Generators>
std::tuple<const Generators&...> mpqc::utility::TensorProductGenerator< Generators >::generators ( ) const
inline

◆ operator bool()

template<typename... Generators>
mpqc::utility::TensorProductGenerator< Generators >::operator bool ( ) const
inlineexplicit
Returns
true if there are no more items to generate

◆ operator*()

template<typename... Generators>
const value_type& mpqc::utility::TensorProductGenerator< Generators >::operator* ( ) const
inline

◆ operator++()

template<typename... Generators>
TensorProductGenerator& mpqc::utility::TensorProductGenerator< Generators >::operator++ ( )
inline

◆ operator==()

template<typename... Generators>
bool mpqc::utility::TensorProductGenerator< Generators >::operator== ( const TensorProductGenerator< Generators > &  other) const
inline

return true if the current state of generators of other and this are identical

Member Data Documentation

◆ Size

template<typename... Generators>
constexpr static std::size_t mpqc::utility::TensorProductGenerator< Generators >::Size = sizeof...(Generators)
staticconstexpr

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