|
Uni20
Asynchronous tensor and runtime library.
|
Intermediate per-sector block SVD retaining factors and logical basis maps. More...
#include <block_tensor_svd.hpp>
Classes | |
| struct | Sector |
| Provider result and logical fragment maps for one charge sector. More... | |
Public Types | |
| using | allocation_context_type = AllocationContext |
| using | block_execution_policy = BlockExecutionPolicy |
| using | codomain_fragment_type = detail::SvdBoundaryFragment< codomain_shape::key_coordinate_count, codomain_shape::dense_block_order > |
| using | codomain_shape = detail::SvdBoundaryShape< codomain_type > |
| using | codomain_type = CodomainType |
| using | domain_fragment_type = detail::SvdBoundaryFragment< domain_shape::key_coordinate_count, domain_shape::dense_block_order > |
| using | domain_shape = detail::SvdBoundaryShape< domain_type > |
| using | domain_type = DomainType |
| using | matrix_type = MatrixTensor |
| using | real_type = uni20::make_real_t< scalar_type > |
| using | scalar_type = Scalar |
| using | singular_value_tensor_type = SingularValueTensor |
| using | source_key_type = BlockKey< domain_shape::key_coordinate_count+codomain_shape::key_coordinate_count > |
Public Member Functions | |
| decltype(auto) | allocation_context () const noexcept |
| Return the factor allocation context retained from the source tensor. | |
| BlockSvdDecomposition (Symmetry symmetry, domain_type domain, codomain_type codomain, linalg::SvdOptions options, std::vector< Sector > sectors) | |
| Construct a completed decomposition from sector provider results. | |
| template<class Context = allocation_context_type> requires (!std::same_as<Context, void>) && std::same_as<Context, allocation_context_type> | |
| BlockSvdDecomposition (Symmetry symmetry, domain_type domain, codomain_type codomain, linalg::SvdOptions options, std::vector< Sector > sectors, Context &allocation_context) | |
| Construct a completed decomposition retaining an explicit factor allocation context. | |
| auto | codomain () const noexcept -> codomain_type const & |
| Return the original codomain boundary. | |
| auto | domain () const noexcept -> domain_type const & |
| Return the original domain boundary. | |
| auto | left_null_space () const -> BlockSvdVectorSelection |
| Return unpaired full left vectors in the dimensional-excess null space. | |
| auto | options () const noexcept -> linalg::SvdOptions |
| Return exact-SVD vector extent options used by every sector. | |
| auto | right_null_space () const -> BlockSvdVectorSelection |
| Return unpaired full right vectors in the dimensional-excess null space. | |
| auto | sectors () const noexcept -> std::span< Sector const > |
| Return charge sectors in canonical charge order. | |
| auto | spectrum () const noexcept -> std::span< BlockSvdState< real_type > const > |
| Return paired singular states in deterministic descending order. | |
| auto | symmetry () const noexcept -> Symmetry |
| Return the symmetry shared by the input and every sector. | |
Intermediate per-sector block SVD retaining factors and logical basis maps.
| Scalar | Dense provider scalar type. |
| DomainType | Original tensor domain. |
| CodomainType | Original tensor codomain. |
| BlockExecutionPolicy | Execution policy inherited from the factorized tensor view. |
| MatrixTensor | Owning storage type retained for left and right provider factors. |
| SingularValueTensor | Owning storage type retained for provider singular values. |
| AllocationContext | Optional allocation context retained for factor materialization. |
| using uni20::BlockSvdDecomposition< Scalar, DomainType, CodomainType, BlockExecutionPolicy, MatrixTensor, SingularValueTensor, AllocationContext >::allocation_context_type = AllocationContext |
| using uni20::BlockSvdDecomposition< Scalar, DomainType, CodomainType, BlockExecutionPolicy, MatrixTensor, SingularValueTensor, AllocationContext >::block_execution_policy = BlockExecutionPolicy |
| using uni20::BlockSvdDecomposition< Scalar, DomainType, CodomainType, BlockExecutionPolicy, MatrixTensor, SingularValueTensor, AllocationContext >::codomain_fragment_type = detail::SvdBoundaryFragment<codomain_shape::key_coordinate_count, codomain_shape::dense_block_order> |
| using uni20::BlockSvdDecomposition< Scalar, DomainType, CodomainType, BlockExecutionPolicy, MatrixTensor, SingularValueTensor, AllocationContext >::codomain_shape = detail::SvdBoundaryShape<codomain_type> |
| using uni20::BlockSvdDecomposition< Scalar, DomainType, CodomainType, BlockExecutionPolicy, MatrixTensor, SingularValueTensor, AllocationContext >::codomain_type = CodomainType |
| using uni20::BlockSvdDecomposition< Scalar, DomainType, CodomainType, BlockExecutionPolicy, MatrixTensor, SingularValueTensor, AllocationContext >::domain_fragment_type = detail::SvdBoundaryFragment<domain_shape::key_coordinate_count, domain_shape::dense_block_order> |
| using uni20::BlockSvdDecomposition< Scalar, DomainType, CodomainType, BlockExecutionPolicy, MatrixTensor, SingularValueTensor, AllocationContext >::domain_shape = detail::SvdBoundaryShape<domain_type> |
| using uni20::BlockSvdDecomposition< Scalar, DomainType, CodomainType, BlockExecutionPolicy, MatrixTensor, SingularValueTensor, AllocationContext >::domain_type = DomainType |
| using uni20::BlockSvdDecomposition< Scalar, DomainType, CodomainType, BlockExecutionPolicy, MatrixTensor, SingularValueTensor, AllocationContext >::matrix_type = MatrixTensor |
| using uni20::BlockSvdDecomposition< Scalar, DomainType, CodomainType, BlockExecutionPolicy, MatrixTensor, SingularValueTensor, AllocationContext >::real_type = uni20::make_real_t<scalar_type> |
| using uni20::BlockSvdDecomposition< Scalar, DomainType, CodomainType, BlockExecutionPolicy, MatrixTensor, SingularValueTensor, AllocationContext >::scalar_type = Scalar |
| using uni20::BlockSvdDecomposition< Scalar, DomainType, CodomainType, BlockExecutionPolicy, MatrixTensor, SingularValueTensor, AllocationContext >::singular_value_tensor_type = SingularValueTensor |
| using uni20::BlockSvdDecomposition< Scalar, DomainType, CodomainType, BlockExecutionPolicy, MatrixTensor, SingularValueTensor, AllocationContext >::source_key_type = BlockKey<domain_shape::key_coordinate_count + codomain_shape::key_coordinate_count> |
|
inline |
Construct a completed decomposition from sector provider results.
|
inline |
Construct a completed decomposition retaining an explicit factor allocation context.
|
inlinenoexcept |
Return the factor allocation context retained from the source tensor.
|
inlinenoexcept |
Return the original codomain boundary.
|
inlinenoexcept |
Return the original domain boundary.
|
inline |
Return unpaired full left vectors in the dimensional-excess null space.
|
inlinenoexcept |
Return exact-SVD vector extent options used by every sector.
|
inline |
Return unpaired full right vectors in the dimensional-excess null space.
|
inlinenoexcept |
Return charge sectors in canonical charge order.
|
inlinenoexcept |
Return paired singular states in deterministic descending order.
|
inlinenoexcept |
Return the symmetry shared by the input and every sector.