Back to SageMath
GSoC 2026

Integrating FLINT/Calcium Algebraic Number Fields as a Backend for SageMath's AA and QQbar.

Problem: SageMath's algebraic number fields (AA/QQbar) have performance bottlenecks in equality testing, arithmetic on high-degree numbers, and symbolic conversion—limitations that affect users in number theory and algebraic geometry. Solution: Integrate FLINT's qqbar_t (Calcium module) as an optional high-performance backend. FLINT is already a Sage dependency, and Calcium provides optimized algebraic number algorithms with rigorous numerical enclosures. Approach: >Create Cython bindings for qqbar_t in sage/libs/flint/ >Implement AlgebraicNumber_flint element and AlgebraicField_flint parent classes in sage/rings/qqbar_flint.py >Ensure coercion compatibility with existing AA/QQbar >Deliver tests, benchmarks, and documentation Deliverables: >Complete Cython bindings for core qqbar_t operations >Drop-in replacement classes for AA and QQbar with full arithmetic and coercion >Test suite and performance benchmarks >User and developer documentation The new backend will be optional initially, enabling side-by-side comparison, with the potential to become the default after validation. This will make algebraic number computations in Sage faster and more robust.

Project details

Contributor

Madhu Sripada

Mentors

Not available

Technologies

Not listed in the archive