|
Uni20
Asynchronous tensor and runtime library.
|
Dispatchable sparse R/A/B/C block contraction. More...
#include <uni20/linalg/backend_selector.hpp>#include <uni20/linalg/dispatch.hpp>#include <uni20/symmetry/block_tensor_concepts.hpp>#include <uni20/tensor_network/backends/right_first_rabc.hpp>#include <uni20/tensor_network/rabc_contraction_plan.hpp>#include <uni20/tensor_network/rabc_operation.hpp>#include <concepts>#include <memory>#include <stdexcept>#include <type_traits>#include <utility>Go to the source code of this file.
Classes | |
| struct | uni20::linalg::backend_selector_default< tensor_network::rabc_contract_op, StoragePolicy > |
| Install the storage-domain right-first R/A/B/C strategy around a block storage selector. More... | |
Namespaces | |
| namespace | uni20 |
| namespace | uni20::linalg |
| namespace | uni20::tensor_network |
Functions | |
| template<class IntermediateStorage , class ContractionSelector , detail::WritableRabcTensor Output, RabcPlan Plan, detail::ReadableRabcTensor A, detail::ReadableRabcTensor B, detail::ReadableRabcTensor C> requires detail::CompatibleRabcOperands<Output, Plan, A, B, C> | |
| auto | uni20::tensor_network::prepare_rabc_contract (linalg::backend_list< RightFirstRabcBackend< IntermediateStorage, ContractionSelector > > selector, Output const &output, Plan plan, A const &a, B const &b, C const &c) |
| Prepare the single right-first backend selected for fixed R/A/B/C operands. | |
| template<detail::WritableRabcTensor Output, RabcPlan Plan, detail::ReadableRabcTensor A, detail::ReadableRabcTensor B, detail::ReadableRabcTensor C> requires detail::CompatibleRabcOperands<Output, Plan, A, B, C> | |
| auto | uni20::tensor_network::prepare_rabc_contract (Output const &output, Plan plan, A const &a, B const &b, C const &c) |
| Select and prepare the R/A/B/C backend for one fixed block structure. | |
| template<linalg::KernelBackendSelector BackendSelector, MutableBlockTensorView Output, RabcPlan Plan, BlockTensorView A, BlockTensorView B, BlockTensorView C> | |
| void | uni20::tensor_network::rabc_contract (BackendSelector &&selector, Output &output, Plan const &plan, A const &a, B const &b, C const &c) |
| Execute a fixed-output sparse R/A/B/C contraction with an explicit backend selector. | |
| template<MutableBlockTensorView Output, RabcPlan Plan, BlockTensorView A, BlockTensorView B, BlockTensorView C> | |
| void | uni20::tensor_network::rabc_contract (Output &output, Plan const &plan, A const &a, B const &b, C const &c) |
| Execute a sparse R/A/B/C contraction using the output storage policy. | |
Dispatchable sparse R/A/B/C block contraction.