Repository navigation
Releases: Spellbound-Mojo/poly_mojo
Release list
Poly Mojo 1.0.2
Poly Mojo 1.0.2 speeds up multivariate factorization over integers and rationals by extracting shared variable powers before specialization and Hensel lifting. This avoids expensive lifting when a common monomial is the only reason the input is reducible.
The change applies to ordinary and certified factorization, preserves factor multiplicities and canonical ordering, and leaves the public API unchanged.
On the local, unchanged polybench 50-case trivial-factor workload (five variables, maximum degree 30, maximum 30 terms, seed 42), mean ordinary factorization time fell from 368.05 ms in v1.0.1 to 3.74 ms. The corresponding nontrivial-factor workload fell from 80.02 ms to 65.96 ms. These measurements describe these particular workloads; every measured result passed the independent FLINT checks.
Validation
Linux x86-64 and native ARM64 package builds and installed-package examples passed, as did strict documentation checks, focused factorization/GCD regressions, and 71 polybench adapter tests. The full library test matrix was not rerun for this patch release.
Compatibility
Requires Mojo 1.2.0 and APN Mojo 1.0.2, unchanged from v1.0.1.
Installation
Once v1.0.2 is published in the Modular community channel, use a Pixi workspace with these channels:
[workspace]
channels = ["https://conda.modular.com/max", "https://repo.prefix.dev/modular-community", "conda-forge"]pixi add "poly_mojo==1.0.2"Until channel publication completes, build from the release tag with pixi install --locked and pixi run --locked build.
Poly Mojo 1.0.1
Poly Mojo 1.0.1 updates the library to Mojo 1.2.0 and APN Mojo 1.0.2, improves polynomial computation and certificate handling, and introduces compact final certificates for cylindrical algebraic decomposition.
Changes
- CAD: construct and independently check final decomposition data, with Brown–McCallum projection reductions, Lazard lifting, one algebraic field per base sample, and explicit cell and sample materialization.
- Gröbner bases: F4 computation over eligible prime fields, modular rational reconstruction, and improved basis and trace checking.
- GCDs and certificates: recognize monomial GCDs earlier and use compact modular coprimality certificates to avoid unnecessary large exact certificates.
- Arithmetic: reduce copying and bookkeeping, and use SIMD in eligible native-integer kernels, including CAD sign evaluation and resultant cofactor operations, with exact fallbacks.
- Documentation: updated public API references, mathematical explanations, and examples; development notes and obsolete private benchmark machinery are excluded.
Compatibility
This release requires Mojo 1.2.0 and APN Mojo 1.0.2. Rebuild consumers and precompiled packages when upgrading from the Mojo 1.1 release.
CAD decomposition and full-covering evidence now uses CADFinalCertificate. Callers that inspected the old .projection, .cells, or .stacks fields must migrate to the certificate's metadata methods and explicit materialization APIs. See the CAD API and final-data construction.
Installation
Once version 1.0.1 is available in the Modular community channel:
[workspace]
channels = ["https://conda.modular.com/max", "https://repo.prefix.dev/modular-community", "conda-forge"]pixi add "poly_mojo==1.0.1"The package provides poly and polynomials and depends on apn_mojo 1.0.2. Until the channel update is published, build from the tagged source using pixi install --locked and pixi run --locked build.
Poly Mojo 1.0.0
The first release of Poly Mojo: exact and validated polynomial algebra for Mojo 1.1, with independently checkable certificates.
- Exact algebra: dense and sparse polynomials over integers, rationals, Gaussian rationals and prime fields, with division, gcds, resultants, factorization (including over real and complex algebraic numbers) and Gröbner bases with ideal membership.
- Roots: exact real and complex algebraic roots with multiplicities, and validated numerical root enclosures that refine to a requested width.
- Inequalities: cylindrical algebraic decomposition, cell location and selective coverings, including fixed coordinates and real algebraic coefficients.
- Numerics: arbitrary-precision floating-point and ball coefficient arrays with explicit contexts, and certified evaluation toward an accuracy target.
- Certificates: independent checkers for factor products, membership identities, enclosure bounds, and root and CAD evidence, with streaming checks that need not retain complete certificates.
- Toolkit: calculus, interpolation, formal series, Newton/Chebyshev/Bernstein bases, rational functions, serialization and batch maps.
Works with Mojo 1.1.x on Linux x86-64, Linux ARM64 and macOS arm64.
Install from the Modular community channel (available once modular/modular-community#403 is merged):
# pixi.toml
[workspace]
channels = ["https://conda.modular.com/max", "https://repo.prefix.dev/modular-community", "conda-forge"]pixi add poly_mojoDocumentation: https://spellbound-mojo.github.io/poly_mojo/