Documentation

template<typename Tile, typename Builder = tile_builder_fnref_t<Tile>>
class mpqc::DirectTile< Tile, Builder >

A direct tile for integral construction.

Classes

struct  type_identity
 

Public Types

using value_type = typename Tile::numeric_type
 
using eval_type = Tile
 
using range_type = typename Tile::range_type
 
template<typename Builder_ >
using builder_return_t = std::invoke_result_t< Builder_, const TA::Range::index_type &, const TA::Range >
 
using conversion_result_type = std::remove_reference_t< typename decltype(builder_return_type())::type >
 

Public Member Functions

 DirectTile ()=default
 
 DirectTile (DirectTile const &)=default
 
 DirectTile (DirectTile &&)=default
 
DirectTileoperator= (DirectTile const &)=default
 
DirectTileoperator= (DirectTile &&)=default
 
template<typename Builder_ >
 DirectTile (typename range_type::index_type index, range_type range, const std::shared_ptr< Builder_ > &builder)
 
 operator conversion_result_type () const
 conversion to conversion_result_type evaluates the tile More...
 
conversion_result_type eval () const
 
value_type norm () const
 Allows for truncate to be called on direct tiles. More...
 
template<typename Archive >
std::enable_if_t< madness::archive::is_output_archive< Archive >::value, void > serialize (Archive &ar)
 
template<typename Archive >
std::enable_if_t< madness::archive::is_input_archive< Archive >::value, void > serialize (Archive &ar)
 

Static Public Member Functions

template<typename Builder_ = Builder>
static constexpr const auto builder_return_type ()
 

Static Public Attributes

template<typename Builder_ >
constexpr static bool builder_is_typeerased_v
 
constexpr static const bool builder_is_typeerased_
 
template<typename Builder_ >
constexpr static bool builder_is_async_v
 

Friends

template<typename Tile_ , typename Policy_ , typename Builder_ >
class DirectArray
 

Member Typedef Documentation

◆ builder_return_t

template<typename Tile , typename Builder = tile_builder_fnref_t<Tile>>
template<typename Builder_ >
using mpqc::DirectTile< Tile, Builder >::builder_return_t = std::invoke_result_t<Builder_, const TA::Range::index_type &, const TA::Range>

◆ conversion_result_type

template<typename Tile , typename Builder = tile_builder_fnref_t<Tile>>
using mpqc::DirectTile< Tile, Builder >::conversion_result_type = std::remove_reference_t<typename decltype(builder_return_type())::type>

◆ eval_type

template<typename Tile , typename Builder = tile_builder_fnref_t<Tile>>
using mpqc::DirectTile< Tile, Builder >::eval_type = Tile

◆ range_type

template<typename Tile , typename Builder = tile_builder_fnref_t<Tile>>
using mpqc::DirectTile< Tile, Builder >::range_type = typename Tile::range_type

◆ value_type

template<typename Tile , typename Builder = tile_builder_fnref_t<Tile>>
using mpqc::DirectTile< Tile, Builder >::value_type = typename Tile::numeric_type

Constructor & Destructor Documentation

◆ DirectTile() [1/4]

template<typename Tile , typename Builder = tile_builder_fnref_t<Tile>>
mpqc::DirectTile< Tile, Builder >::DirectTile ( )
default

◆ DirectTile() [2/4]

template<typename Tile , typename Builder = tile_builder_fnref_t<Tile>>
mpqc::DirectTile< Tile, Builder >::DirectTile ( DirectTile< Tile, Builder > const &  )
default

◆ DirectTile() [3/4]

template<typename Tile , typename Builder = tile_builder_fnref_t<Tile>>
mpqc::DirectTile< Tile, Builder >::DirectTile ( DirectTile< Tile, Builder > &&  )
default

◆ DirectTile() [4/4]

template<typename Tile , typename Builder = tile_builder_fnref_t<Tile>>
template<typename Builder_ >
mpqc::DirectTile< Tile, Builder >::DirectTile ( typename range_type::index_type  index,
range_type  range,
const std::shared_ptr< Builder_ > &  builder 
)
inline

Member Function Documentation

◆ builder_return_type()

template<typename Tile , typename Builder = tile_builder_fnref_t<Tile>>
template<typename Builder_ = Builder>
static constexpr const auto mpqc::DirectTile< Tile, Builder >::builder_return_type ( )
inlinestaticconstexpr

◆ eval()

template<typename Tile , typename Builder = tile_builder_fnref_t<Tile>>
conversion_result_type mpqc::DirectTile< Tile, Builder >::eval ( ) const
inline

evaluates the tile, equivalent to casting this object to conversion_result_type

Returns
the result of evaluating this

◆ norm()

template<typename Tile , typename Builder = tile_builder_fnref_t<Tile>>
value_type mpqc::DirectTile< Tile, Builder >::norm ( ) const
inline

Allows for truncate to be called on direct tiles.

Note
In reduced scaling code this could lead to expensive higher order operations depending on the size of the array.

◆ operator conversion_result_type()

template<typename Tile , typename Builder = tile_builder_fnref_t<Tile>>
mpqc::DirectTile< Tile, Builder >::operator conversion_result_type ( ) const
inlineexplicit

conversion to conversion_result_type evaluates the tile

◆ operator=() [1/2]

template<typename Tile , typename Builder = tile_builder_fnref_t<Tile>>
DirectTile& mpqc::DirectTile< Tile, Builder >::operator= ( DirectTile< Tile, Builder > &&  )
default

◆ operator=() [2/2]

template<typename Tile , typename Builder = tile_builder_fnref_t<Tile>>
DirectTile& mpqc::DirectTile< Tile, Builder >::operator= ( DirectTile< Tile, Builder > const &  )
default

◆ serialize() [1/2]

template<typename Tile , typename Builder = tile_builder_fnref_t<Tile>>
template<typename Archive >
std::enable_if_t<madness::archive::is_output_archive<Archive>::value, void> mpqc::DirectTile< Tile, Builder >::serialize ( Archive &  ar)
inline

◆ serialize() [2/2]

template<typename Tile , typename Builder = tile_builder_fnref_t<Tile>>
template<typename Archive >
std::enable_if_t<madness::archive::is_input_archive<Archive>::value, void> mpqc::DirectTile< Tile, Builder >::serialize ( Archive &  ar)
inline

Friends And Related Function Documentation

◆ DirectArray

template<typename Tile , typename Builder = tile_builder_fnref_t<Tile>>
template<typename Tile_ , typename Policy_ , typename Builder_ >
friend class DirectArray
friend

Member Data Documentation

◆ builder_is_async_v

template<typename Tile , typename Builder = tile_builder_fnref_t<Tile>>
template<typename Builder_ >
constexpr static bool mpqc::DirectTile< Tile, Builder >::builder_is_async_v
staticconstexpr
Initial value:
=
std::is_same_v<Builder_, tile_builder_fnref_t<Tile>> ||
std::is_same_v<builder_return_t<Builder_>, madness::Future<Tile>>

◆ builder_is_typeerased_

template<typename Tile , typename Builder = tile_builder_fnref_t<Tile>>
constexpr static const bool mpqc::DirectTile< Tile, Builder >::builder_is_typeerased_
staticconstexpr
Initial value:
=
builder_is_typeerased_v<Builder>

◆ builder_is_typeerased_v

template<typename Tile , typename Builder = tile_builder_fnref_t<Tile>>
template<typename Builder_ >
constexpr static bool mpqc::DirectTile< Tile, Builder >::builder_is_typeerased_v
staticconstexpr
Initial value:
=
std::is_same_v<Builder_, tile_builder_fnref_t<Tile>>

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