Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
right_first_rabc.hpp File Reference

Storage-domain right-first backend for sparse R/A/B/C contractions. More...

#include <uni20/async/debug_scheduler.hpp>
#include <uni20/linalg/backend_selector.hpp>
#include <uni20/linalg/dispatch.hpp>
#include <uni20/linalg/elementwise_functions.hpp>
#include <uni20/linalg/ops/contract.hpp>
#include <uni20/symmetry/block_tensor_concepts.hpp>
#include <uni20/symmetry/block_tensor_storage.hpp>
#include <uni20/tensor/access.hpp>
#include <uni20/tensor/tensor.hpp>
#include <uni20/tensor/transform.hpp>
#include <uni20/tensor_network/rabc_contraction_plan.hpp>
#include <uni20/tensor_network/rabc_operation.hpp>
#include <algorithm>
#include <array>
#include <concepts>
#include <cstddef>
#include <numeric>
#include <stdexcept>
#include <tuple>
#include <type_traits>
#include <utility>
#include <vector>
Include dependency graph for right_first_rabc.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  uni20::tensor_network::PreparedRightFirstRabcContraction< IntermediateStorage, Plan, ContractionSelector >
 Prepared right-first executor for one fixed R/A/B/C structure. More...
 
struct  uni20::tensor_network::RightFirstRabcBackend< IntermediateStorage, ContractionSelector >
 Executor that reuses right-first (B_b,C_c) intermediates. More...
 

Namespaces

namespace  uni20
 
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>
consteval auto uni20::tensor_network::kernel_accepts_types (RightFirstRabcBackend< IntermediateStorage, ContractionSelector > const &, rabc_contract_op const &, Output &, Plan const &, A const &, B const &, C const &)
 Report right-first eligibility for matrix-block operands.
 
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> && (detail::right_first_types_compatible<IntermediateStorage, ContractionSelector, Output, typename std::remove_cvref_t<Plan>::scalar_type, A, B, C>())
auto uni20::tensor_network::try_kernel (RightFirstRabcBackend< IntermediateStorage, ContractionSelector > const &backend, rabc_contract_op const &, Output &output, Plan const &plan, A const &a, B const &b, C const &c) -> linalg::KernelAttempt
 Execute a storage-domain right-first R/A/B/C contraction.
 

Detailed Description

Storage-domain right-first backend for sparse R/A/B/C contractions.