pub enum WidePackedBasis {
Spin256(WideSpinBasis256),
Spin1024(WideSpinBasis1024),
Spin4096(WideSpinBasis4096),
Spin16384(WideSpinBasis16384),
GeneralSpin256(WideSpinBasisGeneral256),
GeneralSpin1024(WideSpinBasisGeneral1024),
GeneralSpin4096(WideSpinBasisGeneral4096),
GeneralSpin16384(WideSpinBasisGeneral16384),
Reversed(Box<WidePackedBasis>),
}Expand description
Runtime-selected wide spin basis used by persistent language-neutral models.
The enum erases only the fixed-width state storage. Local operator
semantics, symmetry reduction, and universal assembly remain implemented
by the same typed WideSpinBasis and GeneralBasis kernels used by
native Rust callers.
Variants§
Spin256(WideSpinBasis256)
Spin1024(WideSpinBasis1024)
Spin4096(WideSpinBasis4096)
Spin16384(WideSpinBasis16384)
GeneralSpin256(WideSpinBasisGeneral256)
GeneralSpin1024(WideSpinBasisGeneral1024)
GeneralSpin4096(WideSpinBasisGeneral4096)
GeneralSpin16384(WideSpinBasisGeneral16384)
Reversed(Box<WidePackedBasis>)
Implementations§
Source§impl WidePackedBasis
impl WidePackedBasis
pub fn reversed(self) -> Self
Sourcepub fn explicit_spin_subspace(&self, states: &[ErasedState]) -> Result<Self>
pub fn explicit_spin_subspace(&self, states: &[ErasedState]) -> Result<Self>
Reuse this runtime-selected spin algebra on an explicitly selected set of physical states while preserving its public ordering convention.
pub fn width_bits(&self) -> usize
pub fn storage(&self) -> StateStorage
Trait Implementations§
Source§impl Basis for WidePackedBasis
impl Basis for WidePackedBasis
Source§type State = ErasedState
type State = ErasedState
Integer-like state representation used by this basis.
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 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 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 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 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 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§fn index_transition(
&self,
state: Self::State,
source_orbit_size: usize,
) -> Result<Option<(usize, Complex64)>>
fn index_transition( &self, state: Self::State, source_orbit_size: usize, ) -> Result<Option<(usize, Complex64)>>
Reduces a physical target and locates its row in one operation. 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§impl Clone for WidePackedBasis
impl Clone for WidePackedBasis
Source§fn clone(&self) -> WidePackedBasis
fn clone(&self) -> WidePackedBasis
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 WidePackedBasis
impl Debug for WidePackedBasis
Source§impl From<GeneralBasis<WideSpinBasis<16>>> for WidePackedBasis
impl From<GeneralBasis<WideSpinBasis<16>>> for WidePackedBasis
Source§fn from(basis: WideSpinBasisGeneral1024) -> Self
fn from(basis: WideSpinBasisGeneral1024) -> Self
Converts to this type from the input type.
Source§impl From<GeneralBasis<WideSpinBasis<256>>> for WidePackedBasis
impl From<GeneralBasis<WideSpinBasis<256>>> for WidePackedBasis
Source§fn from(basis: WideSpinBasisGeneral16384) -> Self
fn from(basis: WideSpinBasisGeneral16384) -> Self
Converts to this type from the input type.
Source§impl From<GeneralBasis<WideSpinBasis<4>>> for WidePackedBasis
impl From<GeneralBasis<WideSpinBasis<4>>> for WidePackedBasis
Source§fn from(basis: WideSpinBasisGeneral256) -> Self
fn from(basis: WideSpinBasisGeneral256) -> Self
Converts to this type from the input type.
Source§impl From<GeneralBasis<WideSpinBasis<64>>> for WidePackedBasis
impl From<GeneralBasis<WideSpinBasis<64>>> for WidePackedBasis
Source§fn from(basis: WideSpinBasisGeneral4096) -> Self
fn from(basis: WideSpinBasisGeneral4096) -> Self
Converts to this type from the input type.
Source§impl From<WideSpinBasis<16>> for WidePackedBasis
impl From<WideSpinBasis<16>> for WidePackedBasis
Source§fn from(basis: WideSpinBasis1024) -> Self
fn from(basis: WideSpinBasis1024) -> Self
Converts to this type from the input type.
Source§impl From<WideSpinBasis<256>> for WidePackedBasis
impl From<WideSpinBasis<256>> for WidePackedBasis
Source§fn from(basis: WideSpinBasis16384) -> Self
fn from(basis: WideSpinBasis16384) -> Self
Converts to this type from the input type.
Source§impl From<WideSpinBasis<4>> for WidePackedBasis
impl From<WideSpinBasis<4>> for WidePackedBasis
Source§fn from(basis: WideSpinBasis256) -> Self
fn from(basis: WideSpinBasis256) -> Self
Converts to this type from the input type.
Source§impl From<WideSpinBasis<64>> for WidePackedBasis
impl From<WideSpinBasis<64>> for WidePackedBasis
Source§fn from(basis: WideSpinBasis4096) -> Self
fn from(basis: WideSpinBasis4096) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for WidePackedBasis
impl !RefUnwindSafe for WidePackedBasis
impl Send for WidePackedBasis
impl Sync for WidePackedBasis
impl Unpin for WidePackedBasis
impl UnsafeUnpin for WidePackedBasis
impl !UnwindSafe for WidePackedBasis
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.