amari/
lib.rs

1//! Amari: Advanced Mathematical Algebra for Robust Intelligence
2//!
3//! A comprehensive mathematical computing library combining:
4//! - Geometric algebra (Clifford algebras)
5//! - Tropical algebra (max-plus semiring)
6//! - Dual number automatic differentiation
7//! - Geometric network analysis
8//! - Information geometry
9//! - Fusion systems for neural network optimization
10//! - Measure theory and Lebesgue integration (opt-in via `measure` feature)
11//! - Probabilistic contracts and verification (opt-in via `flynn` feature)
12//! - Deterministic physics for networked applications (opt-in via `deterministic` feature)
13
14pub use amari_automata as automata;
15pub use amari_core as core;
16pub use amari_dual as dual;
17pub use amari_enumerative as enumerative;
18pub use amari_fusion as fusion;
19pub use amari_info_geom as info_geom;
20pub use amari_network as network;
21pub use amari_relativistic as relativistic;
22pub use amari_tropical as tropical;
23
24#[cfg(feature = "measure")]
25pub use amari_measure as measure;
26
27#[cfg(feature = "flynn")]
28pub use amari_flynn as flynn;
29
30// Deterministic computation module (opt-in via feature flag)
31#[cfg(feature = "deterministic")]
32pub mod deterministic;
33
34use thiserror::Error;
35
36/// Unified error type for the Amari library
37#[derive(Error, Debug)]
38pub enum AmariError {
39    /// Core geometric algebra error
40    #[error(transparent)]
41    Core(#[from] amari_core::CoreError),
42
43    /// Automata error
44    #[error("{0}")]
45    Automata(amari_automata::AutomataError),
46
47    /// Enumerative geometry error
48    #[error(transparent)]
49    Enumerative(#[from] amari_enumerative::EnumerativeError),
50
51    /// GPU computation error
52    #[cfg(feature = "gpu")]
53    #[error(transparent)]
54    Gpu(#[from] amari_gpu::GpuError),
55
56    /// Information geometry error
57    #[error(transparent)]
58    InfoGeom(#[from] amari_info_geom::InfoGeomError),
59
60    /// Network analysis error
61    #[error(transparent)]
62    Network(#[from] amari_network::NetworkError),
63
64    /// Fusion system error
65    #[error(transparent)]
66    Fusion(#[from] amari_fusion::EvaluationError),
67
68    /// Tropical algebra error
69    #[error(transparent)]
70    Tropical(#[from] amari_tropical::TropicalError),
71
72    /// Dual number error
73    #[error(transparent)]
74    Dual(#[from] amari_dual::DualError),
75}
76
77/// Result type for Amari operations
78pub type AmariResult<T> = Result<T, AmariError>;
79
80// Manual implementation for AutomataError since it doesn't use thiserror
81impl From<amari_automata::AutomataError> for AmariError {
82    fn from(err: amari_automata::AutomataError) -> Self {
83        AmariError::Automata(err)
84    }
85}
86
87// Re-export common types
88pub use amari_core::{Bivector, Multivector, Scalar, Vector};
89pub use amari_dual::{DualMultivector, DualNumber};
90pub use amari_fusion::TropicalDualClifford;
91pub use amari_info_geom::{DuallyFlatManifold, FisherInformationMatrix, SimpleAlphaConnection};
92pub use amari_network::{
93    Community, GeometricEdge, GeometricNetwork, NodeMetadata, PropagationAnalysis,
94};
95pub use amari_tropical::{TropicalMatrix, TropicalMultivector, TropicalNumber};