|
TiledArray
0.7.0
|
Classes | |
| struct | BinaryReduceWrapper |
| Binary reduction wrapper class that handles lazy tile evaluation. More... | |
| struct | BinaryReduceWrapper< typename Op::first_argument_type, typename Op::second_argument_type, Op > |
| Binary reduction operation wrapper. More... | |
| class | Block |
| class | GemmHelper |
| Contraction to *GEMM helper. More... | |
| class | GemmTask |
| class | MatrixBlockTask |
| class | OuterVectorOpUnwind |
| Outer algorithm automatic loop unwinding. More... | |
| class | OuterVectorOpUnwind< 0 > |
| class | PartialReduceUnwind |
| Partial reduce algorithm automatic loop unwinding. More... | |
| class | PartialReduceUnwind< 0 > |
| class | TransposeUnwind |
| Partial transpose algorithm automatic loop unwinding. More... | |
| class | TransposeUnwind< 0 > |
| class | UnaryReduceWrapper |
| Unary reduction wrapper class that handles lazy tile evaluation. More... | |
| class | UnaryReduceWrapper< typename Op::argument_type, Op > |
| Unary reduction wrapper class that handles lazy tile evaluation. More... | |
| struct | VectorOpUnwind |
| Vector loop unwind helper class. More... | |
| struct | VectorOpUnwind< 0ul > |
| Vector loop unwind helper class. More... | |
Typedefs | |
| typedef OuterVectorOpUnwind< TILEDARRAY_LOOP_UNWIND - 1 > | OuterVectorOpUnwindN |
| typedef PartialReduceUnwind< TILEDARRAY_LOOP_UNWIND - 1 > | PartialReduceUnwindN |
| typedef TransposeUnwind< TILEDARRAY_LOOP_UNWIND - 1 > | TransposeUnwindN |
| typedef std::integral_constant< std::size_t, TILEDARRAY_CACHELINE_SIZE/sizeof(double)> | LoopUnwind |
| typedef std::integral_constant< std::size_t, ~std::size_t(TILEDARRAY_LOOP_UNWIND - 1ul)> | index_mask |
| typedef VectorOpUnwind< TILEDARRAY_LOOP_UNWIND - 1 > | VecOpUnwindN |
Functions | |
| template<typename S1 , typename T1 , typename T2 , typename S2 , typename T3 > | |
| void | gemm (madness::cblas::CBLAS_TRANSPOSE op_a, madness::cblas::CBLAS_TRANSPOSE op_b, const integer m, const integer n, const integer k, const S1 alpha, const T1 *a, const integer lda, const T2 *b, const integer ldb, const S2 beta, T3 *c, const integer ldc) |
| void | gemm (madness::cblas::CBLAS_TRANSPOSE op_a, madness::cblas::CBLAS_TRANSPOSE op_b, const integer m, const integer n, const integer k, const float alpha, const float *a, const integer lda, const float *b, const integer ldb, const float beta, float *c, const integer ldc) |
| void | gemm (madness::cblas::CBLAS_TRANSPOSE op_a, madness::cblas::CBLAS_TRANSPOSE op_b, const integer m, const integer n, const integer k, const double alpha, const double *a, const integer lda, const double *b, const integer ldb, const double beta, double *c, const integer ldc) |
| void | gemm (madness::cblas::CBLAS_TRANSPOSE op_a, madness::cblas::CBLAS_TRANSPOSE op_b, const integer m, const integer n, const integer k, const std::complex< float > alpha, const std::complex< float > *a, const integer lda, const std::complex< float > *b, const integer ldb, const std::complex< float > beta, std::complex< float > *c, const integer ldc) |
| void | gemm (madness::cblas::CBLAS_TRANSPOSE op_a, madness::cblas::CBLAS_TRANSPOSE op_b, const integer m, const integer n, const integer k, const std::complex< double > alpha, const std::complex< double > *a, const integer lda, const std::complex< double > *b, const integer ldb, const std::complex< double > beta, std::complex< double > *c, const integer ldc) |
| template<typename T , typename U > | |
| std::enable_if< detail::is_numeric< T >::value >::type | scale (const integer n, const T alpha, U *x) |
| void | scale (const integer n, const float alpha, float *x) |
| void | scale (const integer n, const double alpha, double *x) |
| void | scale (const integer n, const std::complex< float > alpha, std::complex< float > *x) |
| void | scale (const integer n, const std::complex< double > alpha, std::complex< double > *x) |
| void | scale (const integer n, const float alpha, std::complex< float > *x) |
| void | scale (const integer n, const double alpha, std::complex< double > *x) |
| template<typename T , typename U > | |
| T | dot (const integer n, const T *x, const U *y) |
| float | dot (integer n, const float *x, const float *y) |
| double | dot (integer n, const double *x, const double *y) |
| std::complex< float > | dot (integer n, const std::complex< float > *x, const std::complex< float > *y) |
| std::complex< double > | dot (integer n, const std::complex< double > *x, const std::complex< double > *y) |
| template<typename T > | |
| Eigen::Map< const Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor >, Eigen::AutoAlign > | eigen_map (const T *t, const std::size_t m, const std::size_t n) |
| Construct a const Eigen::Map object for a given Tensor object. More... | |
| template<typename T > | |
| Eigen::Map< Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor >, Eigen::AutoAlign > | eigen_map (T *t, const std::size_t m, const std::size_t n) |
| Construct an Eigen::Map object for a given Tensor object. More... | |
| template<typename T > | |
| Eigen::Map< const Eigen::Matrix< T, Eigen::Dynamic, 1 >, Eigen::AutoAlign > | eigen_map (const T *t, const std::size_t n) |
| Construct a const Eigen::Map object for a given Tensor object. More... | |
| template<typename T > | |
| Eigen::Map< Eigen::Matrix< T, Eigen::Dynamic, 1 >, Eigen::AutoAlign > | eigen_map (T *t, const std::size_t n) |
| Construct an Eigen::Map object for a given Tensor object. More... | |
| template<typename X , typename Y , typename A , typename Op > | |
| void | outer_fill (const std::size_t m, const std::size_t n, const X *const x, const Y *const y, A *a, const Op &op) |
Compute and store outer of x and y in a. More... | |
| template<typename X , typename Y , typename A , typename Op > | |
| void | outer (const std::size_t m, const std::size_t n, const X *const x, const Y *const y, A *a, const Op &op) |
Compute the outer of x and y to modify a. More... | |
| template<typename X , typename Y , typename A , typename B , typename Op > | |
| void | outer_fill (const std::size_t m, const std::size_t n, const X *MADNESS_RESTRICT const x, const Y *MADNESS_RESTRICT const y, const A *MADNESS_RESTRICT a, B *MADNESS_RESTRICT b, const Op &op) |
Compute the outer of x, y, and a, and store the result in b. More... | |
| template<typename Left , typename Right , typename Result , typename Op > | |
| void | row_reduce (const std::size_t m, const std::size_t n, const Left *MADNESS_RESTRICT const left, const Right *MADNESS_RESTRICT const right, Result *MADNESS_RESTRICT const result, const Op &op) |
| Reduce the rows of a matrix. More... | |
| template<typename Arg , typename Result , typename Op > | |
| void | row_reduce (const std::size_t m, const std::size_t n, const Arg *MADNESS_RESTRICT const arg, Result *MADNESS_RESTRICT const result, const Op &op) |
| Reduce the rows of a matrix. More... | |
| template<typename Left , typename Right , typename Result , typename Op > | |
| void | col_reduce (const std::size_t m, const std::size_t n, const Left *MADNESS_RESTRICT const left, const Right *MADNESS_RESTRICT const right, Result *MADNESS_RESTRICT const result, const Op &op) |
| Reduce the columns of a matrix. More... | |
| template<typename Arg , typename Result , typename Op > | |
| void | col_reduce (const std::size_t m, const std::size_t n, const Arg *MADNESS_RESTRICT const arg, Result *MADNESS_RESTRICT const result, const Op &op) |
| Reduce the columns of a matrix. More... | |
| template<typename InputOp , typename OutputOp , typename Result , typename... Args> | |
| TILEDARRAY_FORCE_INLINE void | transpose_block (InputOp &&input_op, OutputOp &&output_op, const std::size_t result_stride, Result *const result, const std::size_t arg_stride, const Args *const ... args) |
| template<typename InputOp , typename OutputOp , typename Result , typename... Args> | |
| TILEDARRAY_FORCE_INLINE void | transpose_block (InputOp &&input_op, OutputOp &&output_op, const std::size_t m, const std::size_t n, const std::size_t result_stride, Result *MADNESS_RESTRICT const result, const std::size_t arg_stride, const Args *MADNESS_RESTRICT const ... args) |
| template<typename InputOp , typename OutputOp , typename Result , typename... Args> | |
| void | transpose (InputOp &&input_op, OutputOp &&output_op, const std::size_t m, const std::size_t n, const std::size_t result_stride, Result *result, const std::size_t arg_stride, const Args *const ... args) |
| Matrix transpose and initialization. More... | |
| template<typename Op , typename Result , typename... Args> | |
| TILEDARRAY_FORCE_INLINE void | for_each_block (Op &&op, Result *const result, const Args *const ... args) |
| template<typename Op , typename Result , typename... Args> | |
| TILEDARRAY_FORCE_INLINE void | for_each_block (Op &&op, Block< Result > &result, Block< Args > &&... args) |
| template<typename Op , typename Result , typename... Args> | |
| TILEDARRAY_FORCE_INLINE void | for_each_block_n (Op &&op, const std::size_t n, Result *MADNESS_RESTRICT const result, const Args *MADNESS_RESTRICT const ... args) |
| template<typename Op , typename Result , typename... Args> | |
| TILEDARRAY_FORCE_INLINE std::enable_if<(sizeof...(Args) >=0)>::type | for_each_block_ptr (Op &&op, Result *const result, const Args *const ... args) |
| template<typename Op , typename Result , typename... Args> | |
| TILEDARRAY_FORCE_INLINE std::enable_if<(sizeof...(Args) > 0)>::type | for_each_block_ptr (Op &&op, Result *const result, Block< Args > &&... args) |
| template<typename Op , typename Result , typename... Args> | |
| TILEDARRAY_FORCE_INLINE void | for_each_block_ptr_n (Op &&op, const std::size_t n, Result *MADNESS_RESTRICT const result, const Args *MADNESS_RESTRICT const ... args) |
| template<typename Op , typename Result , typename... Args> | |
| TILEDARRAY_FORCE_INLINE void | reduce_block (Op &&op, Result &result, const Args *const ... args) |
| template<typename Op , typename Result , typename... Args> | |
| TILEDARRAY_FORCE_INLINE void | reduce_block (Op &&op, Result &result, Block< Args > &&... args) |
| template<typename Op , typename Result , typename... Args> | |
| TILEDARRAY_FORCE_INLINE void | reduce_block_n (Op &&op, const std::size_t n, Result &MADNESS_RESTRICT result, const Args *MADNESS_RESTRICT const ... args) |
| template<typename Result , typename Arg > | |
| TILEDARRAY_FORCE_INLINE void | copy_block (Result *const result, const Arg *const arg) |
| template<typename Arg , typename Result > | |
| TILEDARRAY_FORCE_INLINE void | copy_block_n (std::size_t n, Result *const result, const Arg *const arg) |
| template<typename Arg , typename Result > | |
| TILEDARRAY_FORCE_INLINE void | scatter_block (Result *const result, const std::size_t stride, const Arg *const arg) |
| template<typename Result , typename Arg > | |
| TILEDARRAY_FORCE_INLINE void | scatter_block_n (const std::size_t n, Result *result, const std::size_t stride, const Arg *const arg) |
| template<typename Result , typename Arg > | |
| TILEDARRAY_FORCE_INLINE void | gather_block (Result *const result, const Arg *const arg, const std::size_t stride) |
| template<typename Arg , typename Result > | |
| TILEDARRAY_FORCE_INLINE void | gather_block_n (const std::size_t n, Result *const result, const Arg *const arg, const std::size_t stride) |
| template<typename Op , typename Result , typename... Args, typename std::enable_if< std::is_void< typename std::result_of< Op(Result &, Args...)>::type >::value >::type * = nullptr> | |
| void | inplace_vector_op_serial (Op &&op, const std::size_t n, Result *const result, const Args *const ... args) |
| template<typename Op , typename Result , typename... Args, typename std::enable_if< std::is_void< typename std::result_of< Op(Result &, Args...)>::type >::value >::type * = nullptr> | |
| void | inplace_vector_op (Op &&op, const std::size_t n, Result *const result, const Args *const ... args) |
| template<typename Op , typename Result , typename... Args, typename std::enable_if<! std::is_void< typename std::result_of< Op(Args...)>::type >::value >::type * = nullptr> | |
| void | vector_op_serial (Op &&op, const std::size_t n, Result *const result, const Args *const ... args) |
| template<typename Op , typename Result , typename... Args, typename std::enable_if<! std::is_void< typename std::result_of< Op(Args...)>::type >::value >::type * = nullptr> | |
| void | vector_op (Op &&op, const std::size_t n, Result *const result, const Args *const ... args) |
| template<typename Op , typename Result , typename... Args> | |
| void | vector_ptr_op_serial (Op &&op, const std::size_t n, Result *const result, const Args *const ... args) |
| template<typename Op , typename Result , typename... Args> | |
| void | vector_ptr_op (Op &&op, const std::size_t n, Result *const result, const Args *const ... args) |
| template<typename Op , typename Result , typename... Args> | |
| void | reduce_op_serial (Op &&op, const std::size_t n, Result &result, const Args *const ... args) |
| template<typename ReduceOp , typename JoinOp , typename Result , typename... Args> | |
| void | reduce_op (ReduceOp &&reduce_op, JoinOp &&join_op, const Result &identity, const std::size_t n, Result &result, const Args *const ... args) |
| template<typename Arg , typename Result > | |
| std::enable_if<!(std::is_same< Arg, Result >::value &&std::is_scalar< Arg >::value)>::type | copy_vector (const std::size_t n, const Arg *const arg, Result *const result) |
| template<typename T > | |
| std::enable_if< std::is_scalar< T >::value >::type | copy_vector (const std::size_t n, const T *const arg, T *const result) |
| template<typename Arg , typename Result > | |
| void | fill_vector (const std::size_t n, const Arg &arg, Result *const result) |
| template<typename Arg , typename Result > | |
| std::enable_if<!(std::is_scalar< Arg >::value &&std::is_scalar< Result >::value)>::type | uninitialized_copy_vector (const std::size_t n, const Arg *const arg, Result *const result) |
| template<typename Arg , typename Result > | |
| std::enable_if< std::is_scalar< Arg >::value &&std::is_scalar< Result >::value >::type | uninitialized_copy_vector (const std::size_t n, const Arg *const arg, Result *const result) |
| template<typename Arg , typename Result > | |
| std::enable_if<!(std::is_scalar< Arg >::value &&std::is_scalar< Result >::value)>::type | uninitialized_fill_vector (const std::size_t n, const Arg &arg, Result *const result) |
| template<typename Arg , typename Result > | |
| std::enable_if< std::is_scalar< Arg >::value &&std::is_scalar< Result >::value >::type | uninitialized_fill_vector (const std::size_t n, const Arg &arg, Result *const result) |
| template<typename Arg > | |
| std::enable_if<! std::is_scalar< Arg >::value >::type | destroy_vector (const std::size_t n, Arg *const arg) |
| template<typename Arg > | |
| std::enable_if< std::is_scalar< Arg >::value >::type | destroy_vector (const std::size_t, const Arg *const) |
| template<typename Arg , typename Result , typename Op > | |
| std::enable_if<!(std::is_scalar< Arg >::value &&std::is_scalar< Result >::value)>::type | uninitialized_unary_vector_op (const std::size_t n, const Arg *const arg, Result *const result, Op &&op) |
| template<typename Arg , typename Result , typename Op > | |
| std::enable_if< std::is_scalar< Arg >::value &&std::is_scalar< Result >::value >::type | uninitialized_unary_vector_op (const std::size_t n, const Arg *const arg, Result *const result, Op &&op) |
| template<typename Left , typename Right , typename Result , typename Op > | |
| std::enable_if<!(std::is_scalar< Left >::value &&std::is_scalar< Right >::value &&std::is_scalar< Result >::value)>::type | uninitialized_binary_vector_op (const std::size_t n, const Left *const left, const Right *const right, Result *const result, Op &&op) |
| template<typename Left , typename Right , typename Result , typename Op > | |
| std::enable_if< std::is_scalar< Left >::value &&std::is_scalar< Right >::value &&std::is_scalar< Result >::value >::type | uninitialized_binary_vector_op (const std::size_t n, const Left *const left, const Right *const right, Result *const result, Op &&op) |
| typedef std::integral_constant<std::size_t, ~std::size_t(TILEDARRAY_LOOP_UNWIND - 1ul)> TiledArray::math::index_mask |
Definition at line 44 of file vector_op.h.
| typedef std::integral_constant<std::size_t, TILEDARRAY_CACHELINE_SIZE / sizeof(double)> TiledArray::math::LoopUnwind |
Definition at line 43 of file vector_op.h.
Definition at line 187 of file partial_reduce.h.
Definition at line 108 of file transpose.h.
Definition at line 147 of file vector_op.h.
| void TiledArray::math::col_reduce | ( | const std::size_t | m, |
| const std::size_t | n, | ||
| const Left *MADNESS_RESTRICT const | left, | ||
| const Right *MADNESS_RESTRICT const | right, | ||
| Result *MADNESS_RESTRICT const | result, | ||
| const Op & | op | ||
| ) |
Reduce the columns of a matrix.
op(result[j], left[i][j], right[i]).
| Left | The left-hand vector element type |
| Right | The right-hand vector element type |
| Result | The a matrix element type |
| Op | The operator type |
| [in] | m | The number of rows in left |
| [in] | n | The size of the right-hand vector |
| [in] | left | An m*n matrix |
| [in] | right | A vector of size m |
| [out] | result | The result vector of size n |
| [in] | op | The operation that will reduce the columns of left |
Definition at line 336 of file partial_reduce.h.


| void TiledArray::math::col_reduce | ( | const std::size_t | m, |
| const std::size_t | n, | ||
| const Arg *MADNESS_RESTRICT const | arg, | ||
| Result *MADNESS_RESTRICT const | result, | ||
| const Op & | op | ||
| ) |
Reduce the columns of a matrix.
op(result[j], arg[i][j]).
| Arg | The argument vector element type |
| Result | The a matrix element type |
| Op | The operator type |
| [in] | m | The number of rows in left |
| [in] | n | The size of the right-hand vector |
| [in] | arg | An m*n matrix |
| [out] | result | The result vector of size n |
| [in] | op | The operation that will reduce the columns of left |
Definition at line 408 of file partial_reduce.h.

| TILEDARRAY_FORCE_INLINE void TiledArray::math::copy_block | ( | Result *const | result, |
| const Arg *const | arg | ||
| ) |
Definition at line 220 of file vector_op.h.


| TILEDARRAY_FORCE_INLINE void TiledArray::math::copy_block_n | ( | std::size_t | n, |
| Result *const | result, | ||
| const Arg *const | arg | ||
| ) |
Definition at line 227 of file vector_op.h.


| std::enable_if<! (std::is_same<Arg, Result>::value && std::is_scalar<Arg>::value)>::type TiledArray::math::copy_vector | ( | const std::size_t | n, |
| const Arg *const | arg, | ||
| Result *const | result | ||
| ) |
Definition at line 659 of file vector_op.h.


|
inline |
Definition at line 675 of file vector_op.h.
| std::enable_if<! std::is_scalar<Arg>::value>::type TiledArray::math::destroy_vector | ( | const std::size_t | n, |
| Arg *const | arg | ||
| ) |
|
inline |
Definition at line 727 of file vector_op.h.
| T TiledArray::math::dot | ( | const integer | n, |
| const T * | x, | ||
| const U * | y | ||
| ) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Construct a const Eigen::Map object for a given Tensor object.
| T | The element type |
| t | The buffer pointer |
| m | The number of rows in the result matrix |
| n | The number of columns in the result matrix |
tensor | TiledArray::Exception | When m * n is not equal to tensor size |
Definition at line 51 of file eigen.h.

|
inline |
Construct an Eigen::Map object for a given Tensor object.
| T | The tensor element type |
| t | The tensor object |
| m | The number of rows in the result matrix |
| n | The number of columns in the result matrix |
tensor | TiledArray::Exception | When m * n is not equal to tensor size |
|
inline |
Construct a const Eigen::Map object for a given Tensor object.
| T | The element type |
| t | The vector pointer |
| n | The number of elements in the result matrix |
tensor | TiledArray::Exception | When n is not equal to tensor size |
|
inline |
Construct an Eigen::Map object for a given Tensor object.
| T | The element type |
| t | The vector pointer |
| n | The number of elements in the result matrix |
tensor | TiledArray::Exception | When m * n is not equal to tensor size |
| void TiledArray::math::fill_vector | ( | const std::size_t | n, |
| const Arg & | arg, | ||
| Result *const | result | ||
| ) |
Definition at line 680 of file vector_op.h.


| TILEDARRAY_FORCE_INLINE void TiledArray::math::for_each_block | ( | Op && | op, |
| Result *const | result, | ||
| const Args *const ... | args | ||
| ) |
Definition at line 152 of file vector_op.h.


| TILEDARRAY_FORCE_INLINE void TiledArray::math::for_each_block_n | ( | Op && | op, |
| const std::size_t | n, | ||
| Result *MADNESS_RESTRICT const | result, | ||
| const Args *MADNESS_RESTRICT const ... | args | ||
| ) |
| TILEDARRAY_FORCE_INLINE std::enable_if<(sizeof...(Args) >= 0)>::type TiledArray::math::for_each_block_ptr | ( | Op && | op, |
| Result *const | result, | ||
| const Args *const ... | args | ||
| ) |
Definition at line 175 of file vector_op.h.


| TILEDARRAY_FORCE_INLINE std::enable_if<(sizeof...(Args) > 0)>::type TiledArray::math::for_each_block_ptr | ( | Op && | op, |
| Result *const | result, | ||
| Block< Args > &&... | args | ||
| ) |
| TILEDARRAY_FORCE_INLINE void TiledArray::math::for_each_block_ptr_n | ( | Op && | op, |
| const std::size_t | n, | ||
| Result *MADNESS_RESTRICT const | result, | ||
| const Args *MADNESS_RESTRICT const ... | args | ||
| ) |
| TILEDARRAY_FORCE_INLINE void TiledArray::math::gather_block | ( | Result *const | result, |
| const Arg *const | arg, | ||
| const std::size_t | stride | ||
| ) |
Definition at line 250 of file vector_op.h.


| TILEDARRAY_FORCE_INLINE void TiledArray::math::gather_block_n | ( | const std::size_t | n, |
| Result *const | result, | ||
| const Arg *const | arg, | ||
| const std::size_t | stride | ||
| ) |
Definition at line 256 of file vector_op.h.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
| void TiledArray::math::inplace_vector_op | ( | Op && | op, |
| const std::size_t | n, | ||
| Result *const | result, | ||
| const Args *const ... | args | ||
| ) |
Definition at line 397 of file vector_op.h.


| void TiledArray::math::inplace_vector_op_serial | ( | Op && | op, |
| const std::size_t | n, | ||
| Result *const | result, | ||
| const Args *const ... | args | ||
| ) |
Definition at line 344 of file vector_op.h.


| void TiledArray::math::outer | ( | const std::size_t | m, |
| const std::size_t | n, | ||
| const X *const | x, | ||
| const Y *const | y, | ||
| A * | a, | ||
| const Op & | op | ||
| ) |
Compute the outer of x and y to modify a.
Compute op(a[i][j], x[i], y[j]) for each i and j pair, where a[i][j] is modified by op.
| X | The left hand vector element type |
| Y | The right-hand vector element type |
| A | The a matrix element type |
| Op | The operation that will compute outer product elements |
| [in] | m | The size of the left-hand vector |
| [in] | n | The size of the right-hand vector |
| [in] | x | The left-hand vector |
| [in] | y | The right-hand vector |
| [in,out] | a | The result matrix of size m*n |
| [in] | op | The operation used to generate the result |
Definition at line 248 of file outer.h.


| void TiledArray::math::outer_fill | ( | const std::size_t | m, |
| const std::size_t | n, | ||
| const X *const | x, | ||
| const Y *const | y, | ||
| A * | a, | ||
| const Op & | op | ||
| ) |
Compute and store outer of x and y in a.
a[i][j] = op(x[i], y[j]).
| X | The left-hand vector element type |
| Y | The right-hand vector element type |
| A | The a matrix element type |
| [in] | m | The size of the left-hand vector |
| [in] | n | The size of the right-hand vector |
| [in] | x | The left-hand vector |
| [in] | y | The right-hand vector |
| [out] | a | The result matrix of size m*n |
| [in] | op | The operation that will compute the outer product elements |
Definition at line 180 of file outer.h.


| void TiledArray::math::outer_fill | ( | const std::size_t | m, |
| const std::size_t | n, | ||
| const X *MADNESS_RESTRICT const | x, | ||
| const Y *MADNESS_RESTRICT const | y, | ||
| const A *MADNESS_RESTRICT | a, | ||
| B *MADNESS_RESTRICT | b, | ||
| const Op & | op | ||
| ) |
Compute the outer of x, y, and a, and store the result in b.
Store a modified copy of a in b, where modified elements are generated using the following algorithm:
for each unique pair of i and j.
| X | The left hand vector element type |
| Y | The right-hand vector element type |
| A | The a matrix element type |
| B | The b matrix element type |
| Op | The operation that will compute outer product elements |
| [in] | m | The size of the left-hand vector |
| [in] | n | The size of the right-hand vector |
| [in] | x | The left-hand vector |
| [in] | y | The right-hand vector |
| [in] | a | The input matrix of size m*n |
| [out] | b | The output matrix of size m*n |
| [in] | op | The operation that will compute the outer product elements |
Definition at line 329 of file outer.h.

| TILEDARRAY_FORCE_INLINE void TiledArray::math::reduce_block | ( | Op && | op, |
| Result & | result, | ||
| const Args *const ... | args | ||
| ) |
Definition at line 199 of file vector_op.h.


| TILEDARRAY_FORCE_INLINE void TiledArray::math::reduce_block | ( | Op && | op, |
| Result & | result, | ||
| Block< Args > &&... | args | ||
| ) |
| TILEDARRAY_FORCE_INLINE void TiledArray::math::reduce_block_n | ( | Op && | op, |
| const std::size_t | n, | ||
| Result &MADNESS_RESTRICT | result, | ||
| const Args *MADNESS_RESTRICT const ... | args | ||
| ) |
| void TiledArray::math::reduce_op | ( | ReduceOp && | reduce_op, |
| JoinOp && | join_op, | ||
| const Result & | identity, | ||
| const std::size_t | n, | ||
| Result & | result, | ||
| const Args *const ... | args | ||
| ) |
Definition at line 640 of file vector_op.h.


| void TiledArray::math::reduce_op_serial | ( | Op && | op, |
| const std::size_t | n, | ||
| Result & | result, | ||
| const Args *const ... | args | ||
| ) |
Definition at line 567 of file vector_op.h.


| void TiledArray::math::row_reduce | ( | const std::size_t | m, |
| const std::size_t | n, | ||
| const Left *MADNESS_RESTRICT const | left, | ||
| const Right *MADNESS_RESTRICT const | right, | ||
| Result *MADNESS_RESTRICT const | result, | ||
| const Op & | op | ||
| ) |
Reduce the rows of a matrix.
op(result[i], left[i][j], right[j]).
| Left | The left-hand matrix element type |
| Right | The right-hand vector element type |
| Result | The result vector element type |
| [in] | m | The number of rows in left |
| [in] | n | The size of the right-hand vector |
| [in] | left | An m*n matrix |
| [in] | right | A vector of size n |
| [out] | result | The result vector of size m |
| [in] | op | The operation that will reduce the rows of left |
Definition at line 204 of file partial_reduce.h.


| void TiledArray::math::row_reduce | ( | const std::size_t | m, |
| const std::size_t | n, | ||
| const Arg *MADNESS_RESTRICT const | arg, | ||
| Result *MADNESS_RESTRICT const | result, | ||
| const Op & | op | ||
| ) |
Reduce the rows of a matrix.
op(result[i], arg[i][j]).
| Arg | The left-hand vector element type |
| Result | The a matrix element type |
| Op | The operator type |
| [in] | m | The number of rows in left |
| [in] | n | The size of the right-hand vector |
| [in] | arg | An m*n matrix |
| [out] | result | The result vector of size m |
| [in] | op | The operation that will reduce the rows of left |
Definition at line 274 of file partial_reduce.h.

|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
| TILEDARRAY_FORCE_INLINE void TiledArray::math::scatter_block | ( | Result *const | result, |
| const std::size_t | stride, | ||
| const Arg *const | arg | ||
| ) |
Definition at line 234 of file vector_op.h.


| TILEDARRAY_FORCE_INLINE void TiledArray::math::scatter_block_n | ( | const std::size_t | n, |
| Result * | result, | ||
| const std::size_t | stride, | ||
| const Arg *const | arg | ||
| ) |
Definition at line 241 of file vector_op.h.
| void TiledArray::math::transpose | ( | InputOp && | input_op, |
| OutputOp && | output_op, | ||
| const std::size_t | m, | ||
| const std::size_t | n, | ||
| const std::size_t | result_stride, | ||
| Result * | result, | ||
| const std::size_t | arg_stride, | ||
| const Args *const ... | args | ||
| ) |
Matrix transpose and initialization.
This function will transpose and transform argument matrices into an uninitialized block of memory
| InputOp | The input transform operation type |
| OutputOp | The output transform operation type |
| Result | The result element type |
| Args | The argument element type |
| [in] | input_op | The transformation operation applied to input arguments |
| [in] | output_op | The transformation operation used to set the result |
| [in] | m | The number of rows in the argument matrix |
| [in] | n | The number of columns in the argument matrix |
| [in] | result_stride | THe stride between result rows |
| [out] | result | A pointer to the first element of the result matrix |
| [in] | arg_stride | The stride between argument rows |
| [in] | args | A pointer to the first element of the argument matrix |
Definition at line 176 of file transpose.h.


| TILEDARRAY_FORCE_INLINE void TiledArray::math::transpose_block | ( | InputOp && | input_op, |
| OutputOp && | output_op, | ||
| const std::size_t | result_stride, | ||
| Result *const | result, | ||
| const std::size_t | arg_stride, | ||
| const Args *const ... | args | ||
| ) |
Definition at line 113 of file transpose.h.


| TILEDARRAY_FORCE_INLINE void TiledArray::math::transpose_block | ( | InputOp && | input_op, |
| OutputOp && | output_op, | ||
| const std::size_t | m, | ||
| const std::size_t | n, | ||
| const std::size_t | result_stride, | ||
| Result *MADNESS_RESTRICT const | result, | ||
| const std::size_t | arg_stride, | ||
| const Args *MADNESS_RESTRICT const ... | args | ||
| ) |
Definition at line 131 of file transpose.h.
| std::enable_if<! (std::is_scalar<Left>::value && std::is_scalar<Right>::value && std::is_scalar<Result>::value)>::type TiledArray::math::uninitialized_binary_vector_op | ( | const std::size_t | n, |
| const Left *const | left, | ||
| const Right *const | right, | ||
| Result *const | result, | ||
| Op && | op | ||
| ) |
Definition at line 752 of file vector_op.h.


| std::enable_if<std::is_scalar<Left>::value && std::is_scalar<Right>::value && std::is_scalar<Result>::value>::type TiledArray::math::uninitialized_binary_vector_op | ( | const std::size_t | n, |
| const Left *const | left, | ||
| const Right *const | right, | ||
| Result *const | result, | ||
| Op && | op | ||
| ) |
| std::enable_if<! (std::is_scalar<Arg>::value && std::is_scalar<Result>::value)>::type TiledArray::math::uninitialized_copy_vector | ( | const std::size_t | n, |
| const Arg *const | arg, | ||
| Result *const | result | ||
| ) |
Definition at line 688 of file vector_op.h.


|
inline |
| std::enable_if<! (std::is_scalar<Arg>::value && std::is_scalar<Result>::value)>::type TiledArray::math::uninitialized_fill_vector | ( | const std::size_t | n, |
| const Arg & | arg, | ||
| Result *const | result | ||
| ) |
Definition at line 703 of file vector_op.h.


|
inline |
| std::enable_if<! (std::is_scalar<Arg>::value && std::is_scalar<Result>::value)>::type TiledArray::math::uninitialized_unary_vector_op | ( | const std::size_t | n, |
| const Arg *const | arg, | ||
| Result *const | result, | ||
| Op && | op | ||
| ) |
Definition at line 732 of file vector_op.h.


|
inline |
| void TiledArray::math::vector_op | ( | Op && | op, |
| const std::size_t | n, | ||
| Result *const | result, | ||
| const Args *const ... | args | ||
| ) |
Definition at line 478 of file vector_op.h.


| void TiledArray::math::vector_op_serial | ( | Op && | op, |
| const std::size_t | n, | ||
| Result *const | result, | ||
| const Args *const ... | args | ||
| ) |
Definition at line 422 of file vector_op.h.


| void TiledArray::math::vector_ptr_op | ( | Op && | op, |
| const std::size_t | n, | ||
| Result *const | result, | ||
| const Args *const ... | args | ||
| ) |
Definition at line 546 of file vector_op.h.


| void TiledArray::math::vector_ptr_op_serial | ( | Op && | op, |
| const std::size_t | n, | ||
| Result *const | result, | ||
| const Args *const ... | args | ||
| ) |
Definition at line 501 of file vector_op.h.

