Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Various speed improvements to polynomial factorization and the GAP meataxe #720

Merged
merged 7 commits into from
Apr 13, 2016

Commits on Apr 9, 2016

  1. Use PositionNonZero in Matrix_OrderPolynomialInner

    This affects computation of minimal and characteristic polynomials
    fingolfin committed Apr 9, 2016
    Configuration menu
    Copy the full SHA
    b31811c View commit details
    Browse the repository at this point in the history
  2. meataxe: replace LinearCombinationVecs by matrix multiplication

    For compressed matrices, this is much more efficient, and it should
    never be slower.
    fingolfin committed Apr 9, 2016
    Configuration menu
    Copy the full SHA
    dcd41c5 View commit details
    Browse the repository at this point in the history
  3. meataxe: add two calls to ConvertToMatrixRep

    Combined with the preceding commit, these give a substantial speed
    up for certain meataxe examples.
    fingolfin committed Apr 9, 2016
    Configuration menu
    Copy the full SHA
    73cb9a9 View commit details
    Browse the repository at this point in the history
  4. speed up factorization of ff polys with large number of equal factors

    factoring (x-1)^293 over GF(p) for small p is about 1.5 times faster;
    over GF(2) even about 2 times faster
    fingolfin committed Apr 9, 2016
    Configuration menu
    Copy the full SHA
    443e62d View commit details
    Browse the repository at this point in the history
  5. speed up QUOTREM_LAURPOLS_LISTS (and hence polynomial division)

    We avoid multiplying operations that amount to no-ops, but still
    require GAP to do work. This in turn speeds up factoring polynomials
    like (x-1)^293 over small fields (over GF(2) it becomes 3 times faster).
    fingolfin committed Apr 9, 2016
    Configuration menu
    Copy the full SHA
    f9ebcba View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    ee364c0 View commit details
    Browse the repository at this point in the history
  7. meataxe: avoid unnecessary polynomial divisions

    The old code first used QuotRemLaurpols to perform a trial division;
    if the remainder turned out to be zero, it computed the quotient again.
    Instead, we simply use QuotRemLaurpols to compute quotient and remainder
    in one go.
    fingolfin committed Apr 9, 2016
    Configuration menu
    Copy the full SHA
    fc604c9 View commit details
    Browse the repository at this point in the history