pub struct MultivectorL2<const P: usize, const Q: usize, const R: usize> { /* private fields */ }Expand description
The L² space of multivector-valued functions.
This is a Hilbert space with the L² inner product.
§Type Parameters
P- Number of positive signature basis vectorsQ- Number of negative signature basis vectorsR- Number of zero signature basis vectors
Implementations§
Source§impl<const P: usize, const Q: usize, const R: usize> MultivectorL2<P, Q, R>
impl<const P: usize, const Q: usize, const R: usize> MultivectorL2<P, Q, R>
Sourcepub const CODOMAIN_DIM: usize
pub const CODOMAIN_DIM: usize
The dimension of the Clifford algebra codomain.
Sourcepub fn unit_interval() -> Self
pub fn unit_interval() -> Self
Create an L² space over the unit interval [0, 1].
Sourcepub fn with_quadrature_points(self, n: usize) -> Self
pub fn with_quadrature_points(self, n: usize) -> Self
Set the number of quadrature points for numerical integration.
Sourcepub fn l2_inner_product(
&self,
f: &L2Function<P, Q, R>,
g: &L2Function<P, Q, R>,
) -> f64
pub fn l2_inner_product( &self, f: &L2Function<P, Q, R>, g: &L2Function<P, Q, R>, ) -> f64
Compute the L² inner product of two functions.
Sourcepub fn l2_norm(&self, f: &L2Function<P, Q, R>) -> f64
pub fn l2_norm(&self, f: &L2Function<P, Q, R>) -> f64
Compute the L² norm of a 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 MultivectorL2<P, Q, R>
impl<const P: usize, const Q: usize, const R: usize> Clone for MultivectorL2<P, Q, R>
Source§fn clone(&self) -> MultivectorL2<P, Q, R>
fn clone(&self) -> MultivectorL2<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 MultivectorL2<P, Q, R>
impl<const P: usize, const Q: usize, const R: usize> RefUnwindSafe for MultivectorL2<P, Q, R>
impl<const P: usize, const Q: usize, const R: usize> Send for MultivectorL2<P, Q, R>
impl<const P: usize, const Q: usize, const R: usize> Sync for MultivectorL2<P, Q, R>
impl<const P: usize, const Q: usize, const R: usize> Unpin for MultivectorL2<P, Q, R>
impl<const P: usize, const Q: usize, const R: usize> UnwindSafe for MultivectorL2<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