1#[cfg(test)]
61pub mod comprehensive_tests;
62pub mod verified_contracts;
63
64pub mod csm;
65pub mod geometric_algebra;
66pub mod gromov_witten;
67pub mod higher_genus;
68pub mod intersection;
69pub mod littlewood_richardson;
70pub mod localization;
71pub mod matroid;
72pub mod moduli_space;
73pub mod namespace;
74pub mod operad;
75pub mod performance;
76pub mod phantom;
77pub mod schubert;
78pub mod stability;
79pub mod tropical_curves;
80pub mod wdvv;
81
82#[cfg(feature = "tropical-schubert")]
83pub mod tropical_schubert;
84
85#[cfg(feature = "tropical-schubert")]
87pub use geometric_algebra::tropicalize_multivector;
88pub use geometric_algebra::{
89 quantum_k_theory, signatures, GeometricProjectiveSpace, GeometricSchubertClass,
90 GeometricVariety,
91};
92pub use gromov_witten::{CurveClass as GWCurveClass, GromovWittenInvariant, QuantumCohomology};
93pub use higher_genus::{
94 AdvancedCurveCounting, DTInvariant, HigherGenusCurve, JacobianData, PTInvariant,
95};
96pub use intersection::{
97 AlgebraicVariety, ChowClass, Constraint, Grassmannian, IntersectionNumber, IntersectionPoint,
98 IntersectionRing, MockMultivector, ProjectiveSpace, QuantumProduct,
99};
100pub use moduli_space::{CurveClass, ModuliSpace, TautologicalClass};
101pub use performance::{
102 CurveBatchProcessor, FastIntersectionComputer, MemoryPool, SparseSchubertMatrix,
103 WasmPerformanceConfig,
104};
105
106pub use schubert::{FlagVariety, IntersectionResult, SchubertCalculus, SchubertClass};
108
109pub use littlewood_richardson::{
111 lr_coefficient, schubert_product, Partition, SkewShape, SkewTableau,
112};
113
114#[cfg(feature = "parallel")]
116pub use geometric_algebra::geometric_intersection_batch;
117#[cfg(feature = "parallel")]
118pub use littlewood_richardson::lr_coefficients_batch;
119#[cfg(feature = "parallel")]
120pub use namespace::{
121 capability_accessible_batch, count_configurations_batch, namespace_intersection_batch,
122};
123#[cfg(feature = "parallel")]
124pub use schubert::multi_intersect_batch;
125#[cfg(feature = "parallel")]
126pub use tropical_curves::{mikhalkin_correspondence_verify_batch, verify_mikhalkin_gw_batch};
127
128pub use namespace::{
130 capability_accessible, namespace_intersection, Capability, CapabilityId, Namespace,
131 NamespaceBuilder, NamespaceError, NamespaceIntersection, QuantumCapability,
132};
133
134pub use tropical_curves::{
136 verify_mikhalkin_gw, MikhalkinResult, TropicalCurve, TropicalEdge, TropicalIntersection,
137 TropicalModuliSpace, TropicalPoint,
138};
139
140#[cfg(all(feature = "tropical-schubert", feature = "parallel"))]
142pub use geometric_algebra::tropicalize_multivector_batch;
143#[cfg(all(feature = "tropical-schubert", feature = "parallel"))]
144pub use tropical_schubert::{tropical_convexity_batch, tropical_intersection_batch};
145#[cfg(feature = "tropical-schubert")]
146pub use tropical_schubert::{
147 tropical_convexity_check, tropical_intersection_count, TropicalResult, TropicalSchubertClass,
148};
149
150pub use phantom::{
152 BoxContainment,
154 Deficient,
155 Excess,
156 FitsInBox,
157 GrantState,
159 Granted,
160 IntersectionDimension,
162 LatticeWord,
163 PartitionValidity,
165 Pending,
166 Properties,
168 Revoked,
169 Semistandard,
170 TableauValidity,
172 Transverse,
173 UnknownDimension,
174 UnvalidatedPartition,
175 UnverifiedBox,
176 UnverifiedTableau,
177 ValidLRTableau,
179 ValidPartition,
180 ValidSchubertClass,
181};
182
183use thiserror::Error;
184
185#[derive(Error, Debug, Clone, PartialEq)]
187pub enum EnumerativeError {
188 #[error("Invalid dimension: {0}")]
190 InvalidDimension(String),
191
192 #[error("Intersection error: {0}")]
194 IntersectionError(String),
195
196 #[error("Schubert calculus error: {0}")]
198 SchubertError(String),
199
200 #[error("Gromov-Witten error: {0}")]
202 GromovWittenError(String),
203
204 #[error("Computation error: {0}")]
206 ComputationError(String),
207}
208
209pub type EnumerativeResult<T> = Result<T, EnumerativeError>;
211
212pub use wdvv::WDVVEngine;
214
215pub use localization::{EquivariantLocalizer, FixedPoint, TorusWeights};
217
218pub use matroid::{Matroid, ValuatedMatroid};
220
221pub use csm::{CSMClass, SegreClass};
223
224pub use operad::{
226 compose_namespaces, composition_multiplicity, interfaces_compatible, ComposableNamespace,
227 Interface, InterfaceDirection,
228};
229
230pub use stability::{StabilityCondition, Wall, WallCrossingEngine};
232
233#[cfg(feature = "parallel")]
235pub use csm::{csm_of_cells_batch, euler_characteristic_batch};
236#[cfg(feature = "parallel")]
237pub use matroid::{circuits_batch, intersection_cardinality_batch, tutte_polynomial_batch};
238#[cfg(feature = "parallel")]
239pub use stability::{compute_walls_batch, stable_count_batch};
240#[cfg(feature = "parallel")]
241pub use wdvv::rational_curve_count_batch;
242
243