Crate amari_functional

Crate amari_functional 

Source
Expand description

Functional analysis on multivector spaces.

This crate provides the mathematical foundations of functional analysis applied to Clifford algebra-valued function spaces, including:

  • Hilbert spaces: Complete inner product spaces over multivectors
  • Linear operators: Bounded and unbounded operators on Hilbert spaces
  • Spectral theory: Eigenvalues, eigenvectors, and spectral decomposition
  • Compact operators: Fredholm theory and index theorems
  • Sobolev spaces: Function spaces with weak derivatives

§Space Hierarchy

The module implements the standard functional analysis hierarchy:

VectorSpace
    ↓
NormedSpace (adds ||·||)
    ↓
BanachSpace (complete normed space)
    ↓
InnerProductSpace (adds ⟨·,·⟩)
    ↓
HilbertSpace (complete inner product space)

§Quick Start

§Finite-Dimensional Hilbert Space

use amari_functional::space::{MultivectorHilbertSpace, HilbertSpace, InnerProductSpace};

// Create the Hilbert space Cl(2,0,0) ≅ ℝ⁴
let space: MultivectorHilbertSpace<2, 0, 0> = MultivectorHilbertSpace::new();

// Create elements
let x = space.from_coefficients(&[1.0, 2.0, 0.0, 0.0]).unwrap();
let y = space.from_coefficients(&[0.0, 0.0, 3.0, 4.0]).unwrap();

// Compute inner product
let ip = space.inner_product(&x, &y);
assert!(ip.abs() < 1e-10); // x and y are orthogonal

§L² Space of Multivector Functions

use amari_functional::space::{MultivectorL2, L2Function, NormedSpace};
use amari_core::Multivector;

// Create L²([0,1], Cl(2,0,0))
let l2: MultivectorL2<2, 0, 0> = MultivectorL2::unit_interval();

// Define a function f(x) = x * e₀ (scalar coefficient is x)
let f = L2Function::new(|x| {
    Multivector::<2, 0, 0>::scalar(x[0])
});

// Compute L² norm: ||f||² = ∫₀¹ x² dx = 1/3
let norm_sq = l2.norm(&f).powi(2);
assert!((norm_sq - 1.0/3.0).abs() < 0.1);

§Mathematical Background

This crate is built on the following mathematical concepts:

  • Clifford algebras Cl(P,Q,R): 2^(P+Q+R)-dimensional real algebras
  • Hilbert spaces: Complete inner product spaces with orthogonal decomposition
  • Bounded operators: Continuous linear maps between Hilbert spaces
  • Spectral theorem: Self-adjoint operators have orthonormal eigenbases
  • Compact operators: Operators mapping bounded sets to precompact sets

§Features

  • std (default): Enable standard library features
  • parallel: Enable Rayon parallelism for large-scale computations
  • formal-verification: Enable Creusot contracts for formal verification

Re-exports§

pub use space::BanachSpace;
pub use space::Domain;
pub use space::HilbertSpace;
pub use space::InnerProductSpace;
pub use space::L2Function;
pub use space::MultivectorHilbertSpace;
pub use space::MultivectorL2;
pub use space::NormedSpace;
pub use space::VectorSpace;
pub use operator::AdjointableOperator;
pub use operator::BoundedOperator;
pub use operator::CompactMatrixOperator;
pub use operator::CompactOperator;
pub use operator::CompositeOperator;
pub use operator::FiniteRankOperator;
pub use operator::FredholmMatrixOperator;
pub use operator::FredholmOperator;
pub use operator::IdentityOperator;
pub use operator::LinearOperator;
pub use operator::MatrixOperator;
pub use operator::OperatorNorm;
pub use operator::ProjectionOperator;
pub use operator::ScalingOperator;
pub use operator::SelfAdjointOperator;
pub use operator::ZeroOperator;
pub use spectral::compute_eigenvalues;
pub use spectral::inverse_iteration;
pub use spectral::power_method;
pub use spectral::spectral_decompose;
pub use spectral::Eigenpair;
pub use spectral::Eigenvalue;
pub use spectral::SpectralDecomposition;
pub use sobolev::poincare_constant_estimate;
pub use sobolev::H1Space;
pub use sobolev::H2Space;
pub use sobolev::SobolevFunction;
pub use sobolev::SobolevSpace;

Modules§

operator
Linear operators on function spaces.
sobolev
Sobolev spaces for multivector-valued functions.
space
Function space abstractions for functional analysis.
spectral
Spectral theory for linear operators.

Structs§

Bounded
Bounded operator: ||Tx|| ≤ M||x|| for some M and all x.
Compact
Compact operator: maps bounded sets to precompact sets.
Complete
Complete space: every Cauchy sequence converges within the space.
ContinuousSpectrum
Continuous spectrum: contains intervals or continuous parts.
DiscreteSpectrum
Discrete spectrum: consists only of isolated eigenvalues.
Fredholm
Fredholm operator: finite-dimensional kernel and cokernel.
General
General operator with no special symmetry properties.
H1Regularity
H¹ regularity (k=1 Sobolev space).
H2Regularity
H² regularity (k=2 Sobolev space).
HkRegularity
General Hᵏ regularity.
L2Regularity
L² regularity (k=0 Sobolev space).
MixedSpectrum
Mixed spectrum: combination of discrete and continuous parts.
Multivector
A multivector in a Clifford algebra Cl(P,Q,R)
NonCompact
Non-compact operator.
Normal
Normal operator: TT* = T*T.
NotFredholm
Not Fredholm.
PreHilbert
Pre-Hilbert space: inner product defined but not necessarily complete.
Properties
Zero-cost wrapper for phantom type properties.
PurePointSpectrum
Pure point spectrum: all spectral values are eigenvalues.
Scalar
Scalar type - wrapper around Multivector with only grade 0
SelfAdjoint
Self-adjoint operator: T = T*.
SemiFredholm
Semi-Fredholm operator: either kernel or cokernel is finite-dimensional.
Unbounded
Unbounded operator: no finite bound exists.
Unitary
Unitary operator: TT = TT = I.

Enums§

FunctionalError
Errors that can occur during functional analysis operations.

Traits§

BoundednessProperty
Marker trait for operator boundedness properties.
CompactnessProperty
Marker trait for operator compactness properties.
CompletenessProperty
Marker trait for space completeness properties.
FredholmProperty
Marker trait for Fredholm operator properties.
RegularityProperty
Marker trait for Sobolev regularity.
SpectralProperty
Marker trait for spectral properties.
SymmetryProperty
Marker trait for operator symmetry properties.

Type Aliases§

CompactSelfAdjointOperator
Properties of a compact self-adjoint operator.
H1SpaceProperties
Standard H¹ Sobolev space properties.
HilbertSchmidtOperator
Properties of a Hilbert-Schmidt operator.
L2SpaceProperties
Standard L² Hilbert space properties.
Result
Result type for functional analysis operations.
UnitaryOperator
Properties of a unitary operator.