Products involving identity dense tensors. More...
#include "inc/dense/identity.h"#include "inc/dense/offset.h"#include "inc/dense/cuda.h"#include "inc/dense/dense_transpose.h"#include "inc/dense/cuda_transpose.h"#include "inc/dense/dense_prod.h"#include "inc/dense/cuda_prod.h"#include "inc/util/cuda_support.h"#include "inc/dense/dense_prod_tmp_transpose_storage.h"
Include dependency graph for identity_prod.h:
This graph shows which files directly or indirectly include this file:Namespaces | |
| namespace | syten |
| Syten namespace. | |
| namespace | syten::IdentityDenseTensorImpl |
| Implementation for identity dense tensors. | |
Functions | |
| template<Rank srank, typename Scalar > | |
| GenericDenseTensor< srank-1, Scalar > | syten::IdentityDenseTensorImpl::merge (IdentityDenseTensor< 3, Scalar > const &a, CudaDenseTensor< srank, Scalar > const &b, std::array< int, 3 > const &c_a, std::array< int, srank > const &c_b) |
| Product which merges two tensor legs together. More... | |
| template<Rank srank, typename Scalar > | |
| GenericDenseTensor< srank-1, Scalar > | syten::IdentityDenseTensorImpl::merge (IdentityDenseTensor< 3, Scalar > const &a, DenseTensor< srank, Scalar > const &b, std::array< int, 3 > const &c_a, std::array< int, srank > const &c_b) |
| Product which merges two tensor legs together. More... | |
| template<Rank summed, Rank frank, Rank srank, typename Scalar , std::enable_if_t<(int(frank)+int(srank) - 2 *int(summed) > 0), int > = 0> | |
| GenericDenseTensor< frank+srank - 2 *summed, Scalar > | syten::IdentityDenseTensorImpl::prodD (CudaDenseTensor< frank, Scalar > const &a, IdentityDenseTensor< srank, Scalar > const &b, std::array< int, frank > const &c_a, std::array< int, srank > const &c_b, bool conjugate=false, EliminateZeros const ezeros=EliminateZeros::No, DenseProduct::TemporaryTransposeStorage< Scalar, frank, srank > *=nullptr) |
| Overload for product of an identity dense tensor and a cuda dense tensor. More... | |
| template<Rank summed, Rank frank, Rank srank, typename Scalar , std::enable_if_t<(int(frank)+int(srank) - 2 *int(summed) > 0), int > = 0> | |
| GenericDenseTensor< frank+srank - 2 *summed, Scalar > | syten::IdentityDenseTensorImpl::prodD (DenseTensor< frank, Scalar > const &a, IdentityDenseTensor< srank, Scalar > const &b, std::array< int, frank > const &c_a, std::array< int, srank > const &c_b, bool=false, EliminateZeros const ezeros=EliminateZeros::No, DenseProduct::TemporaryTransposeStorage< Scalar, frank, srank > *=nullptr) |
| Product of a standard dense tensor and an identity dense tensor. More... | |
| template<Rank summed, Rank frank, Rank srank, typename Scalar , std::enable_if_t<(int(frank)+int(srank) - 2 *int(summed) > 0), int > = 0> | |
| GenericDenseTensor< frank+srank - 2 *summed, Scalar > | syten::IdentityDenseTensorImpl::prodD (IdentityDenseTensor< frank, Scalar > const &, IdentityDenseTensor< srank, Scalar > const &, std::array< int, frank > const &, std::array< int, srank > const &, bool=false, EliminateZeros const =EliminateZeros::No, DenseProduct::TemporaryTransposeStorage< Scalar, frank, srank > *=nullptr) |
| Dummy implementation for the product of two identity tensors. More... | |
| template<Rank summed, Rank frank, Rank srank, typename Scalar , std::enable_if_t<(int(frank)+int(srank) - 2 *int(summed) > 0), int > = 0> | |
| GenericDenseTensor< frank+srank - 2 *summed, Scalar > | syten::IdentityDenseTensorImpl::prodD (IdentityDenseTensor< frank, Scalar > const &a, CudaDenseTensor< srank, Scalar > const &b, std::array< int, frank > const &c_a, std::array< int, srank > const &c_b, bool conjugate=false, EliminateZeros const ezeros=EliminateZeros::No, DenseProduct::TemporaryTransposeStorage< Scalar, frank, srank > *=nullptr) |
| Overload for product of an identity dense tensor and a cuda dense tensor. More... | |
| template<Rank summed, Rank frank, Rank srank, typename Scalar , std::enable_if_t<(int(frank)+int(srank) - 2 *int(summed) > 0), int > = 0> | |
| GenericDenseTensor< frank+srank - 2 *summed, Scalar > | syten::IdentityDenseTensorImpl::prodD (IdentityDenseTensor< frank, Scalar > const &a, DenseTensor< srank, Scalar > const &b, std::array< int, frank > const &c_a, std::array< int, srank > const &c_b, bool conjugate=false, EliminateZeros const ezeros=EliminateZeros::No, DenseProduct::TemporaryTransposeStorage< Scalar, frank, srank > *=nullptr) |
| Product of an identity dense tensor and a standard dense tensor. More... | |
| template<Rank srank, typename Scalar > | |
| GenericDenseTensor< srank+1, Scalar > | syten::IdentityDenseTensorImpl::split (IdentityDenseTensor< 3, Scalar > const &a, CudaDenseTensor< srank, Scalar > const &b, std::array< int, 3 > const &c_a, std::array< int, srank > const &c_b) |
| Split of two legs of a cuda dense tensor using a rank-3 identity dense tensor. More... | |
| template<Rank srank, typename Scalar > | |
| GenericDenseTensor< srank+1, Scalar > | syten::IdentityDenseTensorImpl::split (IdentityDenseTensor< 3, Scalar > const &a, DenseTensor< srank, Scalar > const &b, std::array< int, 3 > const &c_a, std::array< int, srank > const &c_b) |
| Split of two legs of a standard dense tensor using a rank-3 identity dense tensor. More... | |
Products involving identity dense tensors.