1pub 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#[cfg(feature = "deterministic")]
32pub mod deterministic;
33
34use thiserror::Error;
35
36#[derive(Error, Debug)]
38pub enum AmariError {
39 #[error(transparent)]
41 Core(#[from] amari_core::CoreError),
42
43 #[error("{0}")]
45 Automata(amari_automata::AutomataError),
46
47 #[error(transparent)]
49 Enumerative(#[from] amari_enumerative::EnumerativeError),
50
51 #[cfg(feature = "gpu")]
53 #[error(transparent)]
54 Gpu(#[from] amari_gpu::GpuError),
55
56 #[error(transparent)]
58 InfoGeom(#[from] amari_info_geom::InfoGeomError),
59
60 #[error(transparent)]
62 Network(#[from] amari_network::NetworkError),
63
64 #[error(transparent)]
66 Fusion(#[from] amari_fusion::EvaluationError),
67
68 #[error(transparent)]
70 Tropical(#[from] amari_tropical::TropicalError),
71
72 #[error(transparent)]
74 Dual(#[from] amari_dual::DualError),
75}
76
77pub type AmariResult<T> = Result<T, AmariError>;
79
80impl From<amari_automata::AutomataError> for AmariError {
82 fn from(err: amari_automata::AutomataError) -> Self {
83 AmariError::Automata(err)
84 }
85}
86
87pub 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};