pub use amari_automata as automata;
pub use amari_core as core;
pub use amari_dual as dual;
pub use amari_enumerative as enumerative;
pub use amari_fusion as fusion;
pub use amari_info_geom as info_geom;
pub use amari_network as network;
pub use amari_relativistic as relativistic;
pub use amari_tropical as tropical;
#[cfg(feature = "measure")]
pub use amari_measure as measure;
#[cfg(feature = "calculus")]
pub use amari_calculus as calculus;
#[cfg(feature = "holographic")]
pub use amari_holographic as holographic;
#[cfg(feature = "probabilistic")]
pub use amari_probabilistic as probabilistic;
#[cfg(feature = "functional")]
pub use amari_functional as functional;
#[cfg(feature = "topology")]
pub use amari_topology as topology;
#[cfg(feature = "dynamics")]
pub use amari_dynamics as dynamics;
#[cfg(feature = "flynn")]
pub use amari_flynn as flynn;
#[cfg(feature = "gpu")]
pub use amari_gpu as gpu;
#[cfg(feature = "optimization")]
pub use amari_optimization as optimization;
#[cfg(feature = "deterministic")]
pub mod deterministic;
use thiserror::Error;
#[derive(Error, Debug)]
pub enum AmariError {
#[error(transparent)]
Core(#[from] amari_core::CoreError),
#[error("{0}")]
Automata(amari_automata::AutomataError),
#[error(transparent)]
Enumerative(#[from] amari_enumerative::EnumerativeError),
#[cfg(feature = "gpu")]
#[error(transparent)]
Gpu(#[from] amari_gpu::GpuError),
#[error(transparent)]
InfoGeom(#[from] amari_info_geom::InfoGeomError),
#[error(transparent)]
Network(#[from] amari_network::NetworkError),
#[error(transparent)]
Fusion(#[from] amari_fusion::EvaluationError),
#[error(transparent)]
Tropical(#[from] amari_tropical::TropicalError),
#[error(transparent)]
Dual(#[from] amari_dual::DualError),
#[cfg(feature = "calculus")]
#[error(transparent)]
Calculus(#[from] amari_calculus::CalculusError),
#[cfg(feature = "holographic")]
#[error(transparent)]
Holographic(#[from] amari_holographic::HolographicError),
#[cfg(feature = "probabilistic")]
#[error(transparent)]
Probabilistic(#[from] amari_probabilistic::ProbabilisticError),
#[cfg(feature = "functional")]
#[error(transparent)]
Functional(#[from] amari_functional::FunctionalError),
#[cfg(feature = "topology")]
#[error(transparent)]
Topology(#[from] amari_topology::TopologyError),
#[cfg(feature = "dynamics")]
#[error(transparent)]
Dynamics(#[from] amari_dynamics::DynamicsError),
}
pub type AmariResult<T> = Result<T, AmariError>;
impl From<amari_automata::AutomataError> for AmariError {
fn from(err: amari_automata::AutomataError) -> Self {
AmariError::Automata(err)
}
}
pub use amari_core::{Bivector, Multivector, Scalar, Vector};
pub use amari_dual::{DualMultivector, DualNumber};
pub use amari_fusion::TropicalDualClifford;
pub use amari_info_geom::{DuallyFlatManifold, FisherInformationMatrix, SimpleAlphaConnection};
pub use amari_network::{
Community, GeometricEdge, GeometricNetwork, NodeMetadata, PropagationAnalysis,
};
pub use amari_tropical::{TropicalMatrix, TropicalMultivector, TropicalNumber};