You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After debugging, I noticed that 99,9% of time is spent in MultivariatePolynomial#evaluate method, which was used extremely inefficiently for building Vandermonde/LinZip matrices for ZippelGCD (performance dip meets only for very large polys). These will be fixed with the following:
use faster evaluation (with no intermediate maps) to obtain univariate result in sparse solvers (e.g. like here and here)
use map-based or larger cache for powers in method MultivariatePolynomial#evaluate
use sparse Horner scheme instead of cached powers for evaluation of very large polynomials
The text was updated successfully, but these errors were encountered:
PoslavskySV
changed the title
Performance issue with multivariate GCD for vey large polynomials
Performance issue with multivariate GCD for very large polynomials
Mar 7, 2018
- switch between sparse recursive (Horner) and plain evaluations in Zippel repeated evaluations
- degrees() array is now laze in multivariate polynomials
- minor fixes for ZippelGCDInZ
- fixes some issues in multivariate polynomials data structures
This finally fixes#35
…nomials (#36)
This fixes#35
- efficient methods for evaluation of multivariate polynomials with the use of sparse recursive Horner scheme
- switch between plain and sparse recursive evaluation methods in repeated evaluations in Zippel algorithm
- make some costly things in multivariate polynomials cacheable (first of all degrees())
- use larger primes (around 60 bit) in modular algorithm over Z when the resulting coefficients are expected to be large
From FORM benchmarks:
After debugging, I noticed that 99,9% of time is spent in
MultivariatePolynomial#evaluate
method, which was used extremely inefficiently for building Vandermonde/LinZip matrices forZippelGCD
(performance dip meets only for very large polys). These will be fixed with the following:MultivariatePolynomial#evaluate
The text was updated successfully, but these errors were encountered: