4 ms·
Just out of curiosity I tried adding a couple of lines of code to Nemo to force it to use its mul_ks for the first benchmark. This was actually way slower. I di
by wbhart 11y ago
Just out of curiosity I tried adding a couple of lines of code to Nemo to force it to use its mul_ks for the first benchmark. This was actually way slower. I didn't look into why.
That first benchmark is pretty dense, so it's not at all unreasonable to use KS.
On the other hand, if we force it to use KS for Z[x][y][z][t] down to Z[x][y], then classical down to Z[x], then Flint for Z[x] itself, it gets marginally faster, with 40.6s.
Clearly neither of these approaches is an optimal strategy, as the Maple timings show.
- rp21a 11y agoThe first benchmark is dense up to the total degree and the staircase structure is bad for Kronecker substitution. The fastest method is probably sparse polynomial interpolation.
- wbhart 11y agoIt can certainly be done much faster, even on that CPU. We'll eventually get around to that. We have a lot of generic matrix stuff missing at present though, so that's the priority for now. There's also things like Puiseux series and capped absolute power series and a few things like that which we can't do without. It would be a hell of a lot of fun to optimise the hell out of both those polynomial benchmarks, but we have to be realistic and go for breadth first, rather than depth, I think.