1#[cfg(test)]
33pub mod comprehensive_tests;
34pub mod verified_contracts;
35
36pub mod geometric_algebra;
37#[cfg(feature = "gpu")]
38pub mod gpu;
39pub mod gromov_witten;
40pub mod higher_genus;
41pub mod intersection;
42pub mod moduli_space;
43pub mod performance;
44pub mod schubert;
45pub mod tropical_curves;
46
47pub use geometric_algebra::{
49 quantum_k_theory, signatures, GeometricProjectiveSpace, GeometricSchubertClass,
50 GeometricVariety,
51};
52pub use gromov_witten::{CurveClass as GWCurveClass, GromovWittenInvariant, QuantumCohomology};
53pub use higher_genus::{
54 AdvancedCurveCounting, DTInvariant, HigherGenusCurve, JacobianData, PTInvariant,
55};
56pub use intersection::{
57 AlgebraicVariety, ChowClass, Constraint, Grassmannian, IntersectionNumber, IntersectionPoint,
58 IntersectionRing, MockMultivector, ProjectiveSpace, QuantumProduct,
59};
60pub use moduli_space::{CurveClass, ModuliSpace, TautologicalClass};
61pub use performance::{
62 CurveBatchProcessor, FastIntersectionComputer, MemoryPool, SparseSchubertMatrix,
63 WasmPerformanceConfig,
64};
65pub use schubert::{FlagVariety, SchubertCalculus, SchubertClass};
66pub use tropical_curves::{
67 TropicalCurve, TropicalEdge, TropicalIntersection, TropicalModuliSpace, TropicalPoint,
68};
69
70use thiserror::Error;
71
72#[derive(Error, Debug, Clone, PartialEq)]
74pub enum EnumerativeError {
75 #[error("Invalid dimension: {0}")]
77 InvalidDimension(String),
78
79 #[error("Intersection error: {0}")]
81 IntersectionError(String),
82
83 #[error("Schubert calculus error: {0}")]
85 SchubertError(String),
86
87 #[error("Gromov-Witten error: {0}")]
89 GromovWittenError(String),
90
91 #[error("Computation error: {0}")]
93 ComputationError(String),
94}
95
96pub type EnumerativeResult<T> = Result<T, EnumerativeError>;
98
99#[cfg(feature = "gpu")]
101pub use gpu::{
102 EnumerativeGpuConfig, EnumerativeGpuContext, EnumerativeGpuError, EnumerativeGpuOps,
103 EnumerativeGpuResult, GpuGromovWittenData, GpuIntersectionData, GpuSchubertClass,
104};
105
106#[cfg(test)]
107mod tests {
108
109 #[test]
110 fn test_library_compiles() {
111 let _compiled = true;
113 }
114}