TiledArray  0.7.0
foreach.h File Reference
Include dependency graph for foreach.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Eigen::aligned_allocator< typename >
 
class  TiledArray::DistArray< Tile, Policy >
 Forward declarations. More...
 
class  TiledArray::Tensor< T, A >
 An N-dimensional tensor object. More...
 

Namespaces

 Eigen
 Forward declarations.
 
 TiledArray
 
 TiledArray::detail
 

Enumerations

enum  TiledArray::ShapeReductionMethod { TiledArray::ShapeReductionMethod::Union, TiledArray::ShapeReductionMethod::Intersect }
 

Functions

template<bool inplace = false, typename Op , typename ResultTile , typename ArgTile , typename... ArgTiles>
DistArray< ResultTile, DensePolicy > TiledArray::detail::foreach (Op &&op, const_if_t< not inplace, DistArray< ArgTile, DensePolicy >> &arg, const DistArray< ArgTiles, DensePolicy > &... args)
 base implementation of dense TiledArray::foreach More...
 
template<bool inplace = false, typename Op , typename ResultTile , typename ArgTile , typename... ArgTiles>
DistArray< ResultTile, SparsePolicy > TiledArray::detail::foreach (Op &&op, const ShapeReductionMethod shape_reduction, const_if_t< not inplace, DistArray< ArgTile, SparsePolicy >> &arg, const DistArray< ArgTiles, SparsePolicy > &... args)
 base implementation of sparse TiledArray::foreach More...
 
template<typename ResultTile , typename ArgTile , typename Op , typename = typename std::enable_if<!std::is_same<ResultTile,ArgTile>::value>::type>
DistArray< ResultTile, DensePolicy > TiledArray::foreach (const DistArray< ArgTile, DensePolicy > &arg, Op &&op)
 Apply a function to each tile of a dense Array. More...
 
template<typename Tile , typename Op >
DistArray< Tile, DensePolicy > TiledArray::foreach (const DistArray< Tile, DensePolicy > &arg, Op &&op)
 Apply a function to each tile of a dense Array. More...
 
template<typename Tile , typename Op , typename = typename std::enable_if<! TiledArray::detail::is_array<typename std::decay<Op>::type>::value>::type>
void TiledArray::foreach_inplace (DistArray< Tile, DensePolicy > &arg, Op &&op, bool fence=true)
 Modify each tile of a dense Array. More...
 
template<typename ResultTile , typename ArgTile , typename Op , typename = typename std::enable_if<!std::is_same<ResultTile,ArgTile>::value>::type>
DistArray< ResultTile, SparsePolicy > TiledArray::foreach (const DistArray< ArgTile, SparsePolicy > arg, Op &&op)
 Apply a function to each tile of a sparse Array. More...
 
template<typename Tile , typename Op >
DistArray< Tile, SparsePolicy > TiledArray::foreach (const DistArray< Tile, SparsePolicy > &arg, Op &&op)
 Apply a function to each tile of a sparse Array. More...
 
template<typename Tile , typename Op , typename = typename std::enable_if<! TiledArray::detail::is_array<typename std::decay<Op>::type>::value>::type>
void TiledArray::foreach_inplace (DistArray< Tile, SparsePolicy > &arg, Op &&op, bool fence=true)
 Modify each tile of a sparse Array. More...
 
template<typename ResultTile , typename LeftTile , typename RightTile , typename Op , typename = typename std::enable_if<!std::is_same<ResultTile, LeftTile>::value>::type>
DistArray< ResultTile, DensePolicy > TiledArray::foreach (const DistArray< LeftTile, DensePolicy > &left, const DistArray< RightTile, DensePolicy > &right, Op &&op)
 
template<typename LeftTile , typename RightTile , typename Op >
DistArray< LeftTile, DensePolicy > TiledArray::foreach (const DistArray< LeftTile, DensePolicy > &left, const DistArray< RightTile, DensePolicy > &right, Op &&op)
 
template<typename LeftTile , typename RightTile , typename Op >
void TiledArray::foreach_inplace (DistArray< LeftTile, DensePolicy > &left, const DistArray< RightTile, DensePolicy > &right, Op &&op, bool fence=true)
 This function takes two input tiles and put result into the left tile. More...
 
template<typename ResultTile , typename LeftTile , typename RightTile , typename Op , typename = typename std::enable_if<!std::is_same<ResultTile, LeftTile>::value>::type>
DistArray< ResultTile, SparsePolicy > TiledArray::foreach (const DistArray< LeftTile, SparsePolicy > &left, const DistArray< RightTile, SparsePolicy > &right, Op &&op, const ShapeReductionMethod shape_reduction=ShapeReductionMethod::Intersect)
 
template<typename LeftTile , typename RightTile , typename Op >
DistArray< LeftTile, SparsePolicy > TiledArray::foreach (const DistArray< LeftTile, SparsePolicy > &left, const DistArray< RightTile, SparsePolicy > &right, Op &&op, const ShapeReductionMethod shape_reduction=ShapeReductionMethod::Intersect)
 
template<typename LeftTile , typename RightTile , typename Op >
void TiledArray::foreach_inplace (DistArray< LeftTile, SparsePolicy > &left, const DistArray< RightTile, SparsePolicy > &right, Op &&op, const ShapeReductionMethod shape_reduction=ShapeReductionMethod::Intersect, bool fence=true)
 This function takes two input tiles and put result into the left tile. More...