Skip to main content

WidePackedBasis

Enum WidePackedBasis 

Source
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§

Implementations§

Source§

impl WidePackedBasis

Source

pub fn reversed(self) -> Self

Source

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.

Source

pub fn width_bits(&self) -> usize

Source

pub fn storage(&self) -> StateStorage

Trait Implementations§

Source§

impl Basis for WidePackedBasis

Source§

type State = ErasedState

Integer-like state representation used by this basis.
Source§

fn len(&self) -> usize

Return the number of vectors in the basis.
Source§

fn state(&self, index: usize) -> Result<Self::State>

Return the encoded state at a basis index. Read more
Source§

fn index(&self, state: Self::State) -> Result<usize>

Locate an encoded state in the basis.
Source§

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>>

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>>

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<()>
where F: FnMut(Self::State, Complex64) -> Result<()>,

Streams unreduced destinations directly to a consumer. Read more
Source§

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>

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)>>

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)>>

Reduces a physical target and locates its row in one operation. Read more
Source§

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>

Site-aware particle-sector check for bases whose local labels encode species as well as position. Read more
Source§

fn is_empty(&self) -> bool

Return whether the basis contains no vectors.
Source§

impl Clone for WidePackedBasis

Source§

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)

Performs copy-assignment from source. Read more
Source§

impl Debug for WidePackedBasis

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl From<GeneralBasis<WideSpinBasis<16>>> for WidePackedBasis

Source§

fn from(basis: WideSpinBasisGeneral1024) -> Self

Converts to this type from the input type.
Source§

impl From<GeneralBasis<WideSpinBasis<256>>> for WidePackedBasis

Source§

fn from(basis: WideSpinBasisGeneral16384) -> Self

Converts to this type from the input type.
Source§

impl From<GeneralBasis<WideSpinBasis<4>>> for WidePackedBasis

Source§

fn from(basis: WideSpinBasisGeneral256) -> Self

Converts to this type from the input type.
Source§

impl From<GeneralBasis<WideSpinBasis<64>>> for WidePackedBasis

Source§

fn from(basis: WideSpinBasisGeneral4096) -> Self

Converts to this type from the input type.
Source§

impl From<WideSpinBasis<16>> for WidePackedBasis

Source§

fn from(basis: WideSpinBasis1024) -> Self

Converts to this type from the input type.
Source§

impl From<WideSpinBasis<256>> for WidePackedBasis

Source§

fn from(basis: WideSpinBasis16384) -> Self

Converts to this type from the input type.
Source§

impl From<WideSpinBasis<4>> for WidePackedBasis

Source§

fn from(basis: WideSpinBasis256) -> Self

Converts to this type from the input type.
Source§

impl From<WideSpinBasis<64>> for WidePackedBasis

Source§

fn from(basis: WideSpinBasis4096) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> ByRef<T> for T

§

fn by_ref(&self) -> &T

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

§

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

Checks if self is actually part of its subset T (and can be converted to it).
§

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

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T, U> Imply<T> for U
where T: ?Sized, U: ?Sized,