|
Uni20
Asynchronous tensor and runtime library.
|
Staged host singular value decompositions of bosonic Abelian BlockTensor values. More...
#include <uni20/async/debug_scheduler.hpp>#include <uni20/common/performance_measurements.hpp>#include <uni20/core/math.hpp>#include <uni20/core/scalar_concepts.hpp>#include <uni20/linalg/elementwise_functions.hpp>#include <uni20/linalg/ops/svd.hpp>#include <uni20/linalg/ops/truncated_svd.hpp>#include <uni20/symmetry/block_tensor.hpp>#include <uni20/symmetry/block_tensor_concepts.hpp>#include <uni20/symmetry/block_tensor_linear.hpp>#include <uni20/tensor/copy.hpp>#include <uni20/tensor/mdspec_tensor_view.hpp>#include <uni20/tensor/tensor.hpp>#include <uni20/tensor/transform.hpp>#include <algorithm>#include <array>#include <cstddef>#include <cstdint>#include <functional>#include <map>#include <memory>#include <numeric>#include <optional>#include <ranges>#include <span>#include <stdexcept>#include <string>#include <type_traits>#include <utility>#include <vector>Go to the source code of this file.
Classes | |
| class | uni20::BlockSvdDecomposition< Scalar, DomainType, CodomainType, BlockExecutionPolicy, MatrixTensor, SingularValueTensor, AllocationContext > |
| Intermediate per-sector block SVD retaining factors and logical basis maps. More... | |
| struct | uni20::BlockSvdDecomposition< Scalar, DomainType, CodomainType, BlockExecutionPolicy, MatrixTensor, SingularValueTensor, AllocationContext >::Sector |
| Provider result and logical fragment maps for one charge sector. More... | |
| struct | uni20::BlockSvdMaterialization< LeftTensor, SingularValues, RightAdjointTensor, TruncationInfo > |
| Materialized paired factors and statistics for one SVD selection. More... | |
| struct | uni20::BlockSvdMaterializationOptions |
| Options controlling one selected block-SVD materialization. More... | |
| class | uni20::BlockSvdSelection< Real > |
| Arbitrary paired-state selection from a block-SVD spectrum. More... | |
| struct | uni20::BlockSvdState< Real > |
| One charge-labelled entry in a globally sorted singular spectrum. More... | |
| struct | uni20::BlockSvdStateId |
| Stable identity of one paired or side-specific block-SVD state. More... | |
| class | uni20::BlockSvdVectorSelection |
| Selection of singular vectors which need not form paired triplets. More... | |
Namespaces | |
| namespace | uni20 |
Functions | |
| template<ImmediateBlockTensorView Tensor, class Measurements , class Event > requires uni20::LapackScalar<block_tensor_value_t<Tensor>> && performance::BatchMeasurementPolicy<Measurements, Event> | |
| auto | uni20::block_svd (Tensor const &tensor, linalg::SvdOptions options, Measurements &measurements, Event batch_event) |
| Factorize an immediate BlockTensorView with performance measurements. | |
| template<ImmediateBlockTensorView Tensor, class Measurements , class Event , class Factorizer > requires uni20::LapackScalar<block_tensor_value_t<Tensor>> && performance::BatchMeasurementPolicy<Measurements, Event> | |
| auto | uni20::block_svd (Tensor const &tensor, linalg::SvdOptions options, Measurements &measurements, Event batch_event, Factorizer &&factorizer) |
| Factorize an immediate BlockTensorView independently by conserved charge with performance measurements. | |
| template<ImmediateBlockTensorView Tensor> requires uni20::LapackScalar<block_tensor_value_t<Tensor>> | |
| auto | uni20::block_svd (Tensor const &tensor, linalg::SvdOptions options={}) |
| Factorize an immediate BlockTensorView independently by conserved charge. | |
| template<uni20::Real Real> | |
| auto | uni20::complement_svd_selection (std::span< BlockSvdState< Real > const > spectrum, BlockSvdSelection< Real > const &selection) -> BlockSvdSelection< Real > |
| Select every paired state not present in an existing selection. | |
| template<uni20::Real Real> | |
| auto | uni20::make_svd_selection (std::span< BlockSvdState< Real > const > spectrum, std::span< BlockSvdStateId const > requested) -> BlockSvdSelection< Real > |
| Build an arbitrary paired-state selection and its exact statistics. | |
| template<class Decomposition , detail::BlockSvdStateSelection Selection> | |
| auto | uni20::materialize_left_singular_vectors (Decomposition const &decomposition, Selection const &selection, BlockSvdMaterializationOptions options={}) |
| Materialize selected left singular vectors, including full null-space vectors. | |
| template<class Decomposition , detail::BlockSvdStateSelection Selection> | |
| auto | uni20::materialize_right_singular_vectors_adjoint (Decomposition const &decomposition, Selection const &selection, BlockSvdMaterializationOptions options={}) |
| Materialize selected right singular vectors adjoint, including full null-space vectors. | |
| template<class Decomposition > | |
| auto | uni20::materialize_svd (Decomposition const &decomposition, BlockSvdSelection< typename Decomposition::real_type > const &selection, BlockSvdMaterializationOptions options={}) |
| Materialize paired left, singular-value, and right-adjoint factors. | |
| template<uni20::Real Real> | |
| auto | uni20::select_svd_states (std::span< BlockSvdState< Real > const > spectrum, linalg::SvdTruncationPolicy< Real > const &policy) -> BlockSvdSelection< Real > |
| Apply the standard truncation policy to a globally sorted block-SVD spectrum. | |
Staged host singular value decompositions of bosonic Abelian BlockTensor values.