pub struct L2Function<const P: usize, const Q: usize, const R: usize> { /* private fields */ }Expand description
A square-integrable multivector-valued function.
This represents an element of L²(Ω, Cl(P,Q,R)) - a function from domain Ω to the Clifford algebra that is square-integrable.
Implementations§
Source§impl<const P: usize, const Q: usize, const R: usize> L2Function<P, Q, R>
impl<const P: usize, const Q: usize, const R: usize> L2Function<P, Q, R>
Sourcepub fn eval(&self, point: &[f64]) -> Multivector<P, Q, R>
pub fn eval(&self, point: &[f64]) -> Multivector<P, Q, R>
Evaluate the function at a point.
Sourcepub fn zero_function() -> Self
pub fn zero_function() -> Self
Create the zero function.
Sourcepub fn constant(value: Multivector<P, Q, R>) -> Self
pub fn constant(value: Multivector<P, Q, R>) -> Self
Create a constant function.
Trait Implementations§
Source§impl<const P: usize, const Q: usize, const R: usize> BanachSpace<L2Function<P, Q, R>> for MultivectorL2<P, Q, R>
impl<const P: usize, const Q: usize, const R: usize> BanachSpace<L2Function<P, Q, R>> for MultivectorL2<P, Q, R>
Source§fn is_cauchy_sequence(
&self,
sequence: &[L2Function<P, Q, R>],
tolerance: f64,
) -> bool
fn is_cauchy_sequence( &self, sequence: &[L2Function<P, Q, R>], tolerance: f64, ) -> bool
Check if a sequence appears to be Cauchy. Read more
Source§fn sequence_limit(
&self,
sequence: &[L2Function<P, Q, R>],
tolerance: f64,
) -> Result<L2Function<P, Q, R>>
fn sequence_limit( &self, sequence: &[L2Function<P, Q, R>], tolerance: f64, ) -> Result<L2Function<P, Q, R>>
Compute the limit of a Cauchy sequence if it exists.
Source§impl<const P: usize, const Q: usize, const R: usize> Clone for L2Function<P, Q, R>
impl<const P: usize, const Q: usize, const R: usize> Clone for L2Function<P, Q, R>
Source§fn clone(&self) -> L2Function<P, Q, R>
fn clone(&self) -> L2Function<P, Q, R>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<const P: usize, const Q: usize, const R: usize> HilbertSpace<L2Function<P, Q, R>> for MultivectorL2<P, Q, R>
impl<const P: usize, const Q: usize, const R: usize> HilbertSpace<L2Function<P, Q, R>> for MultivectorL2<P, Q, R>
Source§fn riesz_representative<F>(&self, _functional: F) -> Result<L2Function<P, Q, R>>
fn riesz_representative<F>(&self, _functional: F) -> Result<L2Function<P, Q, R>>
Apply the Riesz representation theorem. Read more
Source§fn orthogonal_complement_projection(&self, x: &V, subspace_basis: &[V]) -> V
fn orthogonal_complement_projection(&self, x: &V, subspace_basis: &[V]) -> V
Compute the orthogonal complement projection. Read more
Source§impl<const P: usize, const Q: usize, const R: usize> InnerProductSpace<L2Function<P, Q, R>> for MultivectorL2<P, Q, R>
impl<const P: usize, const Q: usize, const R: usize> InnerProductSpace<L2Function<P, Q, R>> for MultivectorL2<P, Q, R>
Source§fn inner_product(&self, f: &L2Function<P, Q, R>, g: &L2Function<P, Q, R>) -> f64
fn inner_product(&self, f: &L2Function<P, Q, R>, g: &L2Function<P, Q, R>) -> f64
Compute the inner product of two vectors.
Source§fn project(
&self,
f: &L2Function<P, Q, R>,
g: &L2Function<P, Q, R>,
) -> L2Function<P, Q, R>
fn project( &self, f: &L2Function<P, Q, R>, g: &L2Function<P, Q, R>, ) -> L2Function<P, Q, R>
Project x onto y. Read more
Source§fn gram_schmidt(
&self,
functions: &[L2Function<P, Q, R>],
) -> Vec<L2Function<P, Q, R>>
fn gram_schmidt( &self, functions: &[L2Function<P, Q, R>], ) -> Vec<L2Function<P, Q, R>>
Gram-Schmidt orthogonalization of a set of vectors.
Source§impl<const P: usize, const Q: usize, const R: usize> NormedSpace<L2Function<P, Q, R>> for MultivectorL2<P, Q, R>
impl<const P: usize, const Q: usize, const R: usize> NormedSpace<L2Function<P, Q, R>> for MultivectorL2<P, Q, R>
Source§impl<const P: usize, const Q: usize, const R: usize> VectorSpace<L2Function<P, Q, R>> for MultivectorL2<P, Q, R>
impl<const P: usize, const Q: usize, const R: usize> VectorSpace<L2Function<P, Q, R>> for MultivectorL2<P, Q, R>
Source§fn add(
&self,
f: &L2Function<P, Q, R>,
g: &L2Function<P, Q, R>,
) -> L2Function<P, Q, R>
fn add( &self, f: &L2Function<P, Q, R>, g: &L2Function<P, Q, R>, ) -> L2Function<P, Q, R>
Add two vectors.
Source§fn sub(
&self,
f: &L2Function<P, Q, R>,
g: &L2Function<P, Q, R>,
) -> L2Function<P, Q, R>
fn sub( &self, f: &L2Function<P, Q, R>, g: &L2Function<P, Q, R>, ) -> L2Function<P, Q, R>
Subtract two vectors.
Source§fn scale(&self, scalar: f64, f: &L2Function<P, Q, R>) -> L2Function<P, Q, R>
fn scale(&self, scalar: f64, f: &L2Function<P, Q, R>) -> L2Function<P, Q, R>
Multiply a vector by a scalar.
Source§fn zero(&self) -> L2Function<P, Q, R>
fn zero(&self) -> L2Function<P, Q, R>
Return the zero vector.
Auto Trait Implementations§
impl<const P: usize, const Q: usize, const R: usize> Freeze for L2Function<P, Q, R>
impl<const P: usize, const Q: usize, const R: usize> !RefUnwindSafe for L2Function<P, Q, R>
impl<const P: usize, const Q: usize, const R: usize> Send for L2Function<P, Q, R>
impl<const P: usize, const Q: usize, const R: usize> Sync for L2Function<P, Q, R>
impl<const P: usize, const Q: usize, const R: usize> Unpin for L2Function<P, Q, R>
impl<const P: usize, const Q: usize, const R: usize> !UnwindSafe for L2Function<P, Q, R>
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