amari_functional/operator/mod.rs
1//! Linear operators on function spaces.
2//!
3//! This module provides traits and types for linear operators between
4//! Hilbert spaces, including bounded operators, compact operators, and
5//! self-adjoint operators.
6//!
7//! # Operator Hierarchy
8//!
9//! ```text
10//! LinearOperator
11//! ↓
12//! BoundedOperator (adds ||T|| < ∞)
13//! ↓
14//! CompactOperator (maps bounded sets to precompact sets)
15//! ↓
16//! FiniteRankOperator (finite-dimensional range)
17//! ```
18//!
19//! # Example
20//!
21//! ```ignore
22//! use amari_functional::operator::{LinearOperator, IdentityOperator};
23//! use amari_functional::space::MultivectorHilbertSpace;
24//!
25//! let space: MultivectorHilbertSpace<2, 0, 0> = MultivectorHilbertSpace::new();
26//! let identity = IdentityOperator::new();
27//!
28//! let x = space.from_coefficients(&[1.0, 2.0, 0.0, 0.0]).unwrap();
29//! let y = identity.apply(&x)?;
30//! assert_eq!(x, y);
31//! ```
32
33mod basic;
34mod compact;
35mod matrix;
36mod traits;
37
38pub use basic::{
39 CompositeOperator, IdentityOperator, ProjectionOperator, ScalingOperator, ZeroOperator,
40};
41pub use compact::{
42 CompactMatrixOperator, CompactOperator, FiniteRankOperator, FredholmMatrixOperator,
43 FredholmOperator,
44};
45pub use matrix::MatrixOperator;
46pub use traits::{
47 AdjointableOperator, BoundedOperator, LinearOperator, OperatorNorm, SelfAdjointOperator,
48};