1#[cfg(test)]
33pub mod comprehensive_tests;
34pub mod verified_contracts;
35
36pub mod geometric_algebra;
37pub mod gromov_witten;
38pub mod higher_genus;
39pub mod intersection;
40pub mod moduli_space;
41pub mod performance;
42pub mod schubert;
43pub mod tropical_curves;
44
45pub use geometric_algebra::{
47 quantum_k_theory, signatures, GeometricProjectiveSpace, GeometricSchubertClass,
48 GeometricVariety,
49};
50pub use gromov_witten::{CurveClass as GWCurveClass, GromovWittenInvariant, QuantumCohomology};
51pub use higher_genus::{
52 AdvancedCurveCounting, DTInvariant, HigherGenusCurve, JacobianData, PTInvariant,
53};
54pub use intersection::{
55 AlgebraicVariety, ChowClass, Constraint, Grassmannian, IntersectionNumber, IntersectionPoint,
56 IntersectionRing, MockMultivector, ProjectiveSpace, QuantumProduct,
57};
58pub use moduli_space::{CurveClass, ModuliSpace, TautologicalClass};
59pub use performance::{
60 CurveBatchProcessor, FastIntersectionComputer, MemoryPool, SparseSchubertMatrix,
61 WasmPerformanceConfig,
62};
63pub use schubert::{FlagVariety, SchubertCalculus, SchubertClass};
64pub use tropical_curves::{
65 TropicalCurve, TropicalEdge, TropicalIntersection, TropicalModuliSpace, TropicalPoint,
66};
67
68use thiserror::Error;
69
70#[derive(Error, Debug, Clone, PartialEq)]
72pub enum EnumerativeError {
73 #[error("Invalid dimension: {0}")]
75 InvalidDimension(String),
76
77 #[error("Intersection error: {0}")]
79 IntersectionError(String),
80
81 #[error("Schubert calculus error: {0}")]
83 SchubertError(String),
84
85 #[error("Gromov-Witten error: {0}")]
87 GromovWittenError(String),
88
89 #[error("Computation error: {0}")]
91 ComputationError(String),
92}
93
94pub type EnumerativeResult<T> = Result<T, EnumerativeError>;
96
97