pub struct CausalMultiFieldWitness<T>(/* private fields */);Expand description
HKT witness for CausalMultiField<T>.
The type parameter T specifies the concrete coefficient type (e.g., f64, f32).
All HKT operations assume the generic type parameters match T.
Implementations§
Source§impl<T> CausalMultiFieldWitness<T>
impl<T> CausalMultiFieldWitness<T>
Trait Implementations§
Source§impl<T> Applicative<CausalMultiFieldWitness<T>> for CausalMultiFieldWitness<T>
impl<T> Applicative<CausalMultiFieldWitness<T>> for CausalMultiFieldWitness<T>
Source§fn apply<A, C, Func>(
_ff: CausalMultiField<Func>,
_fa: CausalMultiField<A>,
) -> CausalMultiField<C>where
A: Satisfies<NoConstraint> + Clone,
C: Satisfies<NoConstraint>,
Func: Satisfies<NoConstraint> + FnMut(A) -> C,
fn apply<A, C, Func>(
_ff: CausalMultiField<Func>,
_fa: CausalMultiField<A>,
) -> CausalMultiField<C>where
A: Satisfies<NoConstraint> + Clone,
C: Satisfies<NoConstraint>,
Func: Satisfies<NoConstraint> + FnMut(A) -> C,
Applies a field of functions to a field of values.
§Note
This is not meaningful for CausalMultiField because we can’t store
functions in a tensor. Use fmap for function application.
Source§impl<T: Clone> Clone for CausalMultiFieldWitness<T>
impl<T: Clone> Clone for CausalMultiFieldWitness<T>
Source§fn clone(&self) -> CausalMultiFieldWitness<T>
fn clone(&self) -> CausalMultiFieldWitness<T>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<T> CoMonad<CausalMultiFieldWitness<T>> for CausalMultiFieldWitness<T>
impl<T> CoMonad<CausalMultiFieldWitness<T>> for CausalMultiFieldWitness<T>
Source§fn extract<A>(fa: &CausalMultiField<A>) -> A
fn extract<A>(fa: &CausalMultiField<A>) -> A
Extracts the “focus” value from the field.
Returns the first coefficient (scalar part at origin).
Source§fn extend<A, C, Func>(fa: &CausalMultiField<A>, f: Func) -> CausalMultiField<C>where
A: Satisfies<NoConstraint> + Clone,
C: Satisfies<NoConstraint>,
Func: FnMut(&CausalMultiField<A>) -> C,
fn extend<A, C, Func>(fa: &CausalMultiField<A>, f: Func) -> CausalMultiField<C>where
A: Satisfies<NoConstraint> + Clone,
C: Satisfies<NoConstraint>,
Func: FnMut(&CausalMultiField<A>) -> C,
Extends a local computation to the entire field.
Applies the function to the field and broadcasts the result.
Source§impl<T: Debug> Debug for CausalMultiFieldWitness<T>
impl<T: Debug> Debug for CausalMultiFieldWitness<T>
Source§impl<T: Default> Default for CausalMultiFieldWitness<T>
impl<T: Default> Default for CausalMultiFieldWitness<T>
Source§fn default() -> CausalMultiFieldWitness<T>
fn default() -> CausalMultiFieldWitness<T>
Source§impl<T> Functor<CausalMultiFieldWitness<T>> for CausalMultiFieldWitness<T>
impl<T> Functor<CausalMultiFieldWitness<T>> for CausalMultiFieldWitness<T>
Source§fn fmap<A, C, Func>(fa: CausalMultiField<A>, f: Func) -> CausalMultiField<C>
fn fmap<A, C, Func>(fa: CausalMultiField<A>, f: Func) -> CausalMultiField<C>
Maps a function over the field coefficients.
§Safety — ACKNOWLEDGED GAT Limitation
This method uses unsafe pointer casting to work around Rust’s
current GAT limitations. This will be resolved when the new trait
solver (-Ztrait-solver=next) stabilizes.
SAFETY CONTRACT: The caller MUST ensure A and C are the same as T.
Source§impl<T> HKT for CausalMultiFieldWitness<T>where
T: Satisfies<NoConstraint>,
impl<T> HKT for CausalMultiFieldWitness<T>where
T: Satisfies<NoConstraint>,
Source§type Constraint = NoConstraint
type Constraint = NoConstraint
NoConstraint for fully polymorphic.Source§type Type<A> = CausalMultiField<A>
type Type<A> = CausalMultiField<A>
<T> is the “hole” in the type constructor (e.g., Option<T>). Read moreSource§impl<T> Monad<CausalMultiFieldWitness<T>> for CausalMultiFieldWitness<T>
impl<T> Monad<CausalMultiFieldWitness<T>> for CausalMultiFieldWitness<T>
Source§fn bind<A, C, Func>(ma: CausalMultiField<A>, f: Func) -> CausalMultiField<C>where
A: Satisfies<NoConstraint>,
C: Satisfies<NoConstraint>,
Func: FnMut(A) -> CausalMultiField<C>,
fn bind<A, C, Func>(ma: CausalMultiField<A>, f: Func) -> CausalMultiField<C>where
A: Satisfies<NoConstraint>,
C: Satisfies<NoConstraint>,
Func: FnMut(A) -> CausalMultiField<C>,
Monadic bind for CausalMultiField.
Note: This extracts the first coefficient, applies f, and returns the result.
For proper field composition, use matrix multiplication via * operator.
Source§impl<T> Pure<CausalMultiFieldWitness<T>> for CausalMultiFieldWitness<T>
impl<T> Pure<CausalMultiFieldWitness<T>> for CausalMultiFieldWitness<T>
Source§fn pure<A>(value: A) -> CausalMultiField<A>where
A: Satisfies<NoConstraint>,
fn pure<A>(value: A) -> CausalMultiField<A>where
A: Satisfies<NoConstraint>,
Creates a field with all coefficients set to the given value.
Note: Uses default metric (4D Lorentzian), shape [1,1,1], and unit grid spacing.
For specific configurations, use CausalMultiField::zeros() or other factory methods.