Skip to main content

QuantumLocomotionState

Struct QuantumLocomotionState 

Source
pub struct QuantumLocomotionState {
    pub rho: DensityMatrix5,
    pub hamiltonian: LocomotionHamiltonian,
    pub kernels: InterferenceKernels,
    pub phase_time: f32,
    pub frame: u64,
}
Expand description

Full quantum locomotion state — wraps density matrix, Hamiltonian, kernels. This is the quantum simulation subsystem that satisfies QUANTUM.md S11.

Fields§

§rho: DensityMatrix5

The density matrix rho in C^{5x5}.

§hamiltonian: LocomotionHamiltonian

The Hamiltonian governing coherent evolution.

§kernels: InterferenceKernels

Interference kernels for particle rendering.

§phase_time: f32

Cumulative phase time (for H_phase).

§frame: u64

Frame counter for measurement seed.

Implementations§

Source§

impl QuantumLocomotionState

Source

pub fn new(particle_count: u32) -> Self

Source

pub fn tick( &mut self, dt: f32, input_bias: &[f32; 5], decoherence_epsilon: f32, ) -> usize

Tick the quantum locomotion state.

  1. Build input bias from player state
  2. Hamiltonian evolution (unitary)
  3. Decoherence channel (terrain/contact)
  4. Returns Born-rule measured mode
Source

pub fn particle_position_with_interference( &self, n: usize, root: [f32; 3], mode_templates: &[[f32; 3]; 5], ) -> [f32; 3]

Compute particle position with interference. pos = root + sum_k rho_kk * g_{n,k} + interference_displacement(n)

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