Skip to content

simplify(..., canonical = true) sometimes much slower than pari's polredabs #1899

@fagu

Description

@fagu

An example where pari's polredabs is much faster than Hecke's simplify(..., canonical = true):

using Oscar
R, x = polynomial_ring(ZZ, :x)
f = x^4 + 121550*x^2 + 4136832700
K, _ = number_field(f, :w, cached = false)
@time L, _ = simplify(K, canonical = true)
@time L, _ = simplify(K, canonical = true)
  6.377594 seconds (19.94 M allocations: 1.241 GiB, 10.03% gc time, 73.39% compilation time)
  1.353708 seconds (19.28 M allocations: 1.213 GiB, 24.02% gc time, 0.97% compilation time)

In Pari/GP, it takes about 0.0002 seconds:

t = getwalltime();
for (i=1,1000,polredabs(x^4 + 121550*x^2 + 4136832700));
print("Time: ", strtime(getwalltime() - t), " / ", 1000);
quit;
Time: 241 ms / 1000

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions