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

Go to the source code of this file.

Classes

struct  madness::archive::is_output_archive< typename >
 
struct  madness::archive::is_input_archive< typename >
 
class  TiledArray::Tile< T >
 An N-dimensional shallow copy wrapper for tile objects. More...
 
struct  TiledArray::Cast< TiledArray::Tensor< typename T::value_type, Allocator >, Tile< T >, detail::void_t< decltype(std::declval< TiledArray::Cast< TiledArray::Tensor< typename T::value_type, Allocator >, T >>()(std::declval< const T & >()))> >
 implement conversions from Tile<T> to TiledArray::Tensor<T::value_type,Allocator> More...
 

Namespaces

 madness
 
 madness::archive
 
 TiledArray
 
 TiledArray::detail
 

Functions

template<typename T >
Tile< T > TiledArray::detail::make_tile (T &&t)
 Factory function for tiles. More...
 
template<typename Arg >
Tile< Arg > TiledArray::clone (const Tile< Arg > &arg)
 Create a copy of arg. More...
 
template<typename Arg >
bool TiledArray::empty (const Tile< Arg > &arg)
 Check that arg is empty (no data) More...
 
template<typename Arg >
decltype(auto) TiledArray::permute (const Tile< Arg > &arg, const Permutation &perm)
 Create a permuted copy of arg. More...
 
template<typename Arg , typename Index >
decltype(auto) TiledArray::shift (const Tile< Arg > &arg, const Index &range_shift)
 Shift the range of arg. More...
 
template<typename Arg , typename Index >
Tile< Arg > & TiledArray::shift_to (Tile< Arg > &arg, const Index &range_shift)
 Shift the range of arg in place. More...
 
template<typename Left , typename Right >
decltype(auto) TiledArray::add (const Tile< Left > &left, const Tile< Right > &right)
 Add tile arguments. More...
 
template<typename Left , typename Right , typename Scalar , typename std::enable_if< detail::is_numeric< Scalar >::value >::type * = nullptr>
decltype(auto) TiledArray::add (const Tile< Left > &left, const Tile< Right > &right, const Scalar factor)
 Add and scale tile arguments. More...
 
template<typename Left , typename Right >
decltype(auto) TiledArray::add (const Tile< Left > &left, const Tile< Right > &right, const Permutation &perm)
 Add and permute tile arguments. More...
 
template<typename Left , typename Right , typename Scalar , typename std::enable_if< detail::is_numeric< Scalar >::value >::type * = nullptr>
decltype(auto) TiledArray::add (const Tile< Left > &left, const Tile< Right > &right, const Scalar factor, const Permutation &perm)
 Add, scale, and permute tile arguments. More...
 
template<typename Arg , typename Scalar , typename std::enable_if< detail::is_numeric< Scalar >::value >::type * = nullptr>
decltype(auto) TiledArray::add (const Tile< Arg > &arg, const Scalar value)
 Add a constant scalar to tile argument. More...
 
template<typename Arg , typename Scalar , typename std::enable_if< detail::is_numeric< Scalar >::value >::type * = nullptr>
decltype(auto) TiledArray::add (const Tile< Arg > &arg, const Scalar value, const Permutation &perm)
 Add a constant scalar and permute tile argument. More...
 
template<typename Result , typename Arg >
Tile< Result > & TiledArray::add_to (Tile< Result > &result, const Tile< Arg > &arg)
 Add to the result tile. More...
 
template<typename Result , typename Arg , typename Scalar , typename std::enable_if< detail::is_numeric< Scalar >::value >::type * = nullptr>
Tile< Result > & TiledArray::add_to (Tile< Result > &result, const Tile< Arg > &arg, const Scalar factor)
 Add and scale to the result tile. More...
 
template<typename Result , typename Scalar , typename std::enable_if< detail::is_numeric< Scalar >::value >::type * = nullptr>
Tile< Result > & TiledArray::add_to (Tile< Result > &result, const Scalar value)
 Add constant scalar to the result tile. More...
 
template<typename Left , typename Right >
decltype(auto) TiledArray::subt (const Tile< Left > &left, const Tile< Right > &right)
 Subtract tile arguments. More...
 
template<typename Left , typename Right , typename Scalar , typename std::enable_if< detail::is_numeric< Scalar >::value >::type * = nullptr>
decltype(auto) TiledArray::subt (const Tile< Left > &left, const Tile< Right > &right, const Scalar factor)
 Subtract and scale tile arguments. More...
 
template<typename Left , typename Right >
decltype(auto) TiledArray::subt (const Tile< Left > &left, const Tile< Right > &right, const Permutation &perm)
 Subtract and permute tile arguments. More...
 
template<typename Left , typename Right , typename Scalar , typename std::enable_if< detail::is_numeric< Scalar >::value >::type * = nullptr>
decltype(auto) TiledArray::subt (const Tile< Left > &left, const Tile< Right > &right, const Scalar factor, const Permutation &perm)
 Subtract, scale, and permute tile arguments. More...
 
template<typename Arg , typename Scalar , typename std::enable_if< detail::is_numeric< Scalar >::value >::type * = nullptr>
decltype(auto) TiledArray::subt (const Tile< Arg > &arg, const Scalar value)
 Subtract a scalar constant from the tile argument. More...
 
template<typename Arg , typename Scalar , typename std::enable_if< detail::is_numeric< Scalar >::value >::type * = nullptr>
decltype(auto) TiledArray::subt (const Tile< Arg > &arg, const Scalar value, const Permutation &perm)
 Subtract a constant scalar and permute tile argument. More...
 
template<typename Result , typename Arg >
Tile< Result > & TiledArray::subt_to (Tile< Result > &result, const Tile< Arg > &arg)
 Subtract from the result tile. More...
 
template<typename Result , typename Arg , typename Scalar , typename std::enable_if< detail::is_numeric< Scalar >::value >::type * = nullptr>
Tile< Result > & TiledArray::subt_to (Tile< Result > &result, const Tile< Arg > &arg, const Scalar factor)
 Subtract and scale from the result tile. More...
 
template<typename Result , typename Scalar , typename std::enable_if< detail::is_numeric< Scalar >::value >::type * = nullptr>
Tile< Result > & TiledArray::subt_to (Tile< Result > &result, const Scalar value)
 Subtract constant scalar from the result tile. More...
 
template<typename Left , typename Right >
decltype(auto) TiledArray::mult (const Tile< Left > &left, const Tile< Right > &right)
 Multiplication tile arguments. More...
 
template<typename Left , typename Right , typename Scalar , typename std::enable_if< detail::is_numeric< Scalar >::value >::type * = nullptr>
decltype(auto) TiledArray::mult (const Tile< Left > &left, const Tile< Right > &right, const Scalar factor)
 Multiplication and scale tile arguments. More...
 
template<typename Left , typename Right >
decltype(auto) TiledArray::mult (const Tile< Left > &left, const Tile< Right > &right, const Permutation &perm)
 Multiplication and permute tile arguments. More...
 
template<typename Left , typename Right , typename Scalar , typename std::enable_if< detail::is_numeric< Scalar >::value >::type * = nullptr>
decltype(auto) TiledArray::mult (const Tile< Left > &left, const Tile< Right > &right, const Scalar factor, const Permutation &perm)
 Multiplication, scale, and permute tile arguments. More...
 
template<typename Result , typename Arg >
Tile< Result > & TiledArray::mult_to (Tile< Result > &result, const Tile< Arg > &arg)
 Multiply to the result tile. More...
 
template<typename Result , typename Arg , typename Scalar , typename std::enable_if< detail::is_numeric< Scalar >::value >::type * = nullptr>
Tile< Result > & TiledArray::mult_to (Tile< Result > &result, const Tile< Arg > &arg, const Scalar factor)
 Multiply and scale to the result tile. More...
 
template<typename Arg , typename Scalar , typename std::enable_if< detail::is_numeric< Scalar >::value >::type * = nullptr>
decltype(auto) TiledArray::scale (const Tile< Arg > &arg, const Scalar factor)
 Scalar the tile argument. More...
 
template<typename Arg , typename Scalar , typename std::enable_if< detail::is_numeric< Scalar >::value >::type * = nullptr>
decltype(auto) TiledArray::scale (const Tile< Arg > &arg, const Scalar factor, const Permutation &perm)
 Scale and permute tile argument. More...
 
template<typename Result , typename Scalar , typename std::enable_if< detail::is_numeric< Scalar >::value >::type * = nullptr>
Tile< Result > & TiledArray::scale_to (Tile< Result > &result, const Scalar factor)
 Scale to the result tile. More...
 
template<typename Arg >
decltype(auto) TiledArray::neg (const Tile< Arg > &arg)
 Negate the tile argument. More...
 
template<typename Arg >
decltype(auto) TiledArray::neg (const Tile< Arg > &arg, const Permutation &perm)
 Negate and permute tile argument. More...
 
template<typename Result >
Tile< Result > & TiledArray::neg_to (Tile< Result > &result)
 Multiplication constant scalar to a tile. More...
 
template<typename Arg >
decltype(auto) TiledArray::conj (const Tile< Arg > &arg)
 Create a complex conjugated copy of a tile. More...
 
template<typename Arg , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric< Scalar >::value >::type * = nullptr>
decltype(auto) TiledArray::conj (const Tile< Arg > &arg, const Scalar factor)
 Create a complex conjugated and scaled copy of a tile. More...
 
template<typename Arg >
decltype(auto) TiledArray::conj (const Tile< Arg > &arg, const Permutation &perm)
 Create a complex conjugated and permuted copy of a tile. More...
 
template<typename Arg , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric< Scalar >::value >::type * = nullptr>
decltype(auto) TiledArray::conj (const Tile< Arg > &arg, const Scalar factor, const Permutation &perm)
 Create a complex conjugated, scaled, and permuted copy of a tile. More...
 
template<typename Result >
Result & TiledArray::conj_to (Tile< Result > &result)
 In-place complex conjugate a tile. More...
 
template<typename Result , typename Scalar , typename std::enable_if< TiledArray::detail::is_numeric< Scalar >::value >::type * = nullptr>
Result & TiledArray::conj_to (Tile< Result > &result, const Scalar factor)
 In-place complex conjugate and scale a tile. More...
 
template<typename Left , typename Right , typename Scalar , typename std::enable_if< detail::is_numeric< Scalar >::value >::type * = nullptr>
decltype(auto) TiledArray::gemm (const Tile< Left > &left, const Tile< Right > &right, const Scalar factor, const math::GemmHelper &gemm_config)
 Contract and scale tile arguments. More...
 
template<typename Result , typename Left , typename Right , typename Scalar , typename std::enable_if< detail::is_numeric< Scalar >::value >::type * = nullptr>
Tile< Result > & TiledArray::gemm (Tile< Result > &result, const Tile< Left > &left, const Tile< Right > &right, const Scalar factor, const math::GemmHelper &gemm_config)
 Contract and scale tile arguments to the result tile. More...
 
template<typename Arg >
decltype(auto) TiledArray::trace (const Tile< Arg > &arg)
 Sum the hyper-diagonal elements a tile. More...
 
template<typename Arg >
decltype(auto) TiledArray::sum (const Tile< Arg > &arg)
 Sum the elements of a tile. More...
 
template<typename Arg >
decltype(auto) TiledArray::product (const Tile< Arg > &arg)
 Multiply the elements of a tile. More...
 
template<typename Arg >
decltype(auto) TiledArray::squared_norm (const Tile< Arg > &arg)
 Squared vector 2-norm of the elements of a tile. More...
 
template<typename Arg >
decltype(auto) TiledArray::norm (const Tile< Arg > &arg)
 Vector 2-norm of a tile. More...
 
template<typename Arg >
decltype(auto) TiledArray::max (const Tile< Arg > &arg)
 Maximum element of a tile. More...
 
template<typename Arg >
decltype(auto) TiledArray::min (const Tile< Arg > &arg)
 Minimum element of a tile. More...
 
template<typename Arg >
decltype(auto) TiledArray::abs_max (const Tile< Arg > &arg)
 Absolute maximum element of a tile. More...
 
template<typename Arg >
decltype(auto) TiledArray::abs_min (const Tile< Arg > &arg)
 Absolute mainimum element of a tile. More...
 
template<typename Left , typename Right >
decltype(auto) TiledArray::dot (const Tile< Left > &left, const Tile< Right > &right)
 Vector dot product of a tile. More...
 
template<typename Left , typename Right >
decltype(auto) TiledArray::operator+ (const Tile< Left > &left, const Tile< Right > &right)
 Add tiles operator. More...
 
template<typename Left , typename Right >
Tile< Left > & TiledArray::operator+= (Tile< Left > &left, const Tile< Right > &right)
 In-place add tile operator. More...
 
template<typename Left , typename Right >
decltype(auto) TiledArray::operator- (const Tile< Left > &left, const Tile< Right > &right)
 Subtract tiles operator. More...
 
template<typename Left , typename Right >
Tile< Left > & TiledArray::operator-= (Tile< Left > &left, const Tile< Right > &right)
 In-place subtract tile operator. More...
 
template<typename Left , typename Right >
decltype(auto) TiledArray::operator* (const Tile< Left > &left, const Tile< Right > &right)
 Product tiles operator. More...
 
template<typename Left , typename Right , typename std::enable_if< detail::is_numeric< Right >::value >::type * = nullptr>
decltype(auto) TiledArray::operator* (const Tile< Left > &left, const Right right)
 Scale tile operator. More...
 
template<typename Left , typename Right , typename std::enable_if< TiledArray::detail::is_numeric< Left >::value >::type * = nullptr>
decltype(auto) TiledArray::operator* (const Left left, const Tile< Right > &right)
 Scale tile operator. More...
 
template<typename Left , typename Right >
Tile< Left > & TiledArray::operator*= (Tile< Left > &left, const Tile< Right > &right)
 In-place product tile operator. More...
 
template<typename Arg >
decltype(auto) TiledArray::operator- (const Tile< Arg > &arg)
 Negate tile operator. More...
 
template<typename Arg >
decltype(auto) TiledArray::operator* (const Permutation &perm, Tile< Arg > const arg)
 Permute tile operator. More...
 
template<typename T >
std::ostream & TiledArray::operator<< (std::ostream &os, const Tile< T > &tile)
 Tile output stream operator. More...