pub struct PackedTensorBasis { /* private fields */ }Expand description
Owned type-erased basis for frontends that choose a built-in basis at runtime.
Native Rust callers can continue using the concrete generic basis types. Language bindings, configuration-driven workflows, and other runtime frontends use this enum without duplicating the universal assembly logic.
Implementations§
Source§impl PackedTensorBasis
impl PackedTensorBasis
pub fn new(factors: impl IntoIterator<Item = PackedBasis>) -> Result<Self>
pub fn factors(&self) -> &[PackedBasis]
pub fn dimensions(&self) -> &[usize]
Trait Implementations§
Source§impl Basis for PackedTensorBasis
impl Basis for PackedTensorBasis
Source§fn state(&self, index: usize) -> Result<Self::State>
fn state(&self, index: usize) -> Result<Self::State>
Return the encoded state at a basis index. Read more
Source§fn apply_local(
&self,
state: Self::State,
operator: &str,
sites: &[usize],
) -> Result<Option<(Self::State, Complex64)>>
fn apply_local( &self, state: Self::State, operator: &str, sites: &[usize], ) -> Result<Option<(Self::State, Complex64)>>
Apply one local operator string to one encoded state. Read more
Source§fn apply_local_transitions(
&self,
state: Self::State,
operator: &str,
sites: &[usize],
) -> Result<LocalTransitions<Self::State>>
fn apply_local_transitions( &self, state: Self::State, operator: &str, sites: &[usize], ) -> Result<LocalTransitions<Self::State>>
Applies a local operator and returns every nonzero destination. Read more
Source§fn visit_local_unreduced_transitions<F>(
&self,
state: Self::State,
operator: &str,
sites: &[usize],
visit: F,
) -> Result<()>
fn visit_local_unreduced_transitions<F>( &self, state: Self::State, operator: &str, sites: &[usize], visit: F, ) -> Result<()>
Streams unreduced destinations directly to a consumer. Read more
Source§fn operator_preserves_particle_sector(&self, operator: &str) -> Result<bool>
fn operator_preserves_particle_sector(&self, operator: &str) -> Result<bool>
Whether a local operator string preserves the particle-sector
constraints represented by this basis. Unconstrained and custom bases
accept every syntactically valid string by default.
Source§fn operator_preserves_particle_sector_on_sites(
&self,
operator: &str,
sites: &[usize],
) -> Result<bool>
fn operator_preserves_particle_sector_on_sites( &self, operator: &str, sites: &[usize], ) -> Result<bool>
Site-aware particle-sector check for bases whose local labels encode
species as well as position. Read more
Source§fn apply_local_unreduced_transitions(
&self,
state: Self::State,
operator: &str,
sites: &[usize],
) -> Result<LocalTransitions<Self::State>>
fn apply_local_unreduced_transitions( &self, state: Self::State, operator: &str, sites: &[usize], ) -> Result<LocalTransitions<Self::State>>
Local action before symmetry-sector reduction. Cross-sector builders
use this path and let the target basis perform the reduction.
Source§fn transition_orbit_size(&self, _state: Self::State) -> Result<usize>
fn transition_orbit_size(&self, _state: Self::State) -> Result<usize>
Orbit size of a canonical source state used in projector normalization.
Source§fn reduction_image(
&self,
state: Self::State,
) -> Result<Option<ReductionImage<Self::State>>>
fn reduction_image( &self, state: Self::State, ) -> Result<Option<ReductionImage<Self::State>>>
Return the canonical reduction metadata for a physical state. Read more
Source§fn reduce_transition(
&self,
state: Self::State,
source_orbit_size: usize,
) -> Result<Option<(Self::State, Complex64)>>
fn reduce_transition( &self, state: Self::State, source_orbit_size: usize, ) -> Result<Option<(Self::State, Complex64)>>
Map an unreduced physical target state into this basis.
Source§impl Clone for PackedTensorBasis
impl Clone for PackedTensorBasis
Source§fn clone(&self) -> PackedTensorBasis
fn clone(&self) -> PackedTensorBasis
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for PackedTensorBasis
impl Debug for PackedTensorBasis
Source§impl From<PackedTensorBasis> for PackedBasis
impl From<PackedTensorBasis> for PackedBasis
Source§fn from(basis: PackedTensorBasis) -> Self
fn from(basis: PackedTensorBasis) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for PackedTensorBasis
impl !RefUnwindSafe for PackedTensorBasis
impl Send for PackedTensorBasis
impl Sync for PackedTensorBasis
impl Unpin for PackedTensorBasis
impl UnsafeUnpin for PackedTensorBasis
impl !UnwindSafe for PackedTensorBasis
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.