|
TiledArray
0.7.0
|
Contract and (sum) reduce operation. More...
#include <contract_reduce.h>


Public Types | |
| typedef ContractReduce< Result, Left, Right, Scalar > | ContractReduce_ |
| This class type. More... | |
| typedef ContractReduceBase< Result, Left, Right, Scalar > | ContractReduceBase_ |
| This class type. More... | |
| typedef ContractReduceBase_::first_argument_type | first_argument_type |
| The left tile type. More... | |
| typedef ContractReduceBase_::second_argument_type | second_argument_type |
| The right tile type. More... | |
| typedef Result | result_type |
| The result tile type. More... | |
| typedef Scalar | scalar_type |
Public Types inherited from TiledArray::detail::ContractReduceBase< Result, Left, Right, Scalar > | |
| typedef ContractReduceBase< Result, Left, Right, Scalar > | ContractReduceBase_ |
| This class type. More... | |
| typedef const Left & | first_argument_type |
| The left tile type. More... | |
| typedef const Right & | second_argument_type |
| The right tile type. More... | |
| typedef Result | result_type |
| The result type. More... | |
| typedef Scalar | scalar_type |
| The scaling factor type. More... | |
Public Member Functions | |
| ContractReduce ()=default | |
| ContractReduce (const ContractReduce_ &)=default | |
| ContractReduce (ContractReduce_ &&)=default | |
| ~ContractReduce ()=default | |
| ContractReduce_ & | operator= (const ContractReduce_ &)=default |
| ContractReduce_ & | operator= (ContractReduce_ &&)=default |
| ContractReduce (const madness::cblas::CBLAS_TRANSPOSE left_op, const madness::cblas::CBLAS_TRANSPOSE right_op, const scalar_type alpha, const unsigned int result_rank, const unsigned int left_rank, const unsigned int right_rank, const Permutation &perm=Permutation()) | |
| Construct contract/reduce functor. More... | |
| result_type | operator() () const |
| Create a result type object. More... | |
| result_type | operator() (const result_type &temp) const |
| Post processing step. More... | |
| void | operator() (result_type &result, const result_type &arg) const |
| Reduce two result objects. More... | |
| void | operator() (result_type &result, first_argument_type left, second_argument_type right) const |
| Contract a pair of tiles and add to a target tile. More... | |
Public Member Functions inherited from TiledArray::detail::ContractReduceBase< Result, Left, Right, Scalar > | |
| ContractReduceBase ()=default | |
| ContractReduceBase (const ContractReduceBase_ &)=default | |
| ContractReduceBase (ContractReduceBase_ &&)=default | |
| ~ContractReduceBase ()=default | |
| ContractReduceBase_ & | operator= (const ContractReduceBase_ &)=default |
| ContractReduceBase_ & | operator= (ContractReduceBase_ &&)=default |
| ContractReduceBase (const madness::cblas::CBLAS_TRANSPOSE left_op, const madness::cblas::CBLAS_TRANSPOSE right_op, const scalar_type alpha, const unsigned int result_rank, const unsigned int left_rank, const unsigned int right_rank, const Permutation &perm=Permutation()) | |
| Construct contract/reduce functor. More... | |
| const math::GemmHelper & | gemm_helper () const |
| Gemm meta data accessor. More... | |
| const Permutation & | perm () const |
| Permutation accessor. More... | |
| scalar_type | factor () const |
| Scaling factor accessor. More... | |
| unsigned int | num_contract_ranks () const |
| Compute the number of contracted ranks. More... | |
| unsigned int | result_rank () const |
| Result rank accessor. More... | |
| unsigned int | left_rank () const |
| Left-hand argument rank accessor. More... | |
| unsigned int | right_rank () const |
| Right-hand argument rank accessor. More... | |
Contract and (sum) reduce operation.
This encodes a binary tensor contraction mapped to a GEMM, as well as the sum reduction and post-processing.
| Result | The result tile type |
| Left | The left-hand tile type |
| Right | The right-hand tile type |
| Scalar | The scaling factor type |
Definition at line 178 of file contract_reduce.h.
| typedef ContractReduce<Result, Left, Right, Scalar> TiledArray::detail::ContractReduce< Result, Left, Right, Scalar >::ContractReduce_ |
This class type.
Definition at line 183 of file contract_reduce.h.
| typedef ContractReduceBase<Result, Left, Right, Scalar> TiledArray::detail::ContractReduce< Result, Left, Right, Scalar >::ContractReduceBase_ |
This class type.
Definition at line 185 of file contract_reduce.h.
| typedef ContractReduceBase_::first_argument_type TiledArray::detail::ContractReduce< Result, Left, Right, Scalar >::first_argument_type |
The left tile type.
Definition at line 187 of file contract_reduce.h.
| typedef Result TiledArray::detail::ContractReduce< Result, Left, Right, Scalar >::result_type |
The result tile type.
Definition at line 190 of file contract_reduce.h.
| typedef Scalar TiledArray::detail::ContractReduce< Result, Left, Right, Scalar >::scalar_type |
Definition at line 191 of file contract_reduce.h.
| typedef ContractReduceBase_::second_argument_type TiledArray::detail::ContractReduce< Result, Left, Right, Scalar >::second_argument_type |
The right tile type.
Definition at line 189 of file contract_reduce.h.
|
default |
|
default |
|
default |
|
default |
|
inline |
Construct contract/reduce functor.
| left_op | The left-hand BLAS matrix operation |
| right_op | The right-hand BLAS matrix operation |
| alpha | The scaling factor applied to the contracted tiles |
| result_rank | The rank of the result tensor |
| left_rank | The rank of the left-hand tensor |
| right_rank | The rank of the right-hand tensor |
| perm | The permutation to be applied to the result tensor (default = no permute) |
Definition at line 212 of file contract_reduce.h.
|
inline |
Create a result type object.
Initialize a result object for subsequent reductions
Definition at line 225 of file contract_reduce.h.
|
inline |
Post processing step.
Definition at line 230 of file contract_reduce.h.
|
inline |
Reduce two result objects.
Add arg to result .
| [in,out] | result | The result object that will be the reduction target |
| [in] | arg | The argument that will be added to result |
Definition at line 247 of file contract_reduce.h.
|
inline |
Contract a pair of tiles and add to a target tile.
Contract left and right and add the result to result.
| [in,out] | result | The result object that will be the reduction target |
| [in] | left | The left-hand tile to be contracted |
| [in] | right | The right-hand tile to be contracted |
Definition at line 259 of file contract_reduce.h.
|
default |
|
default |