Conversation
|
Some timings. |
|
See Issue #32 |
…ult zero rather than -1
|
(cancelled workflows because they are expected to hang, cf #39 ) |
|
Recent commits significantly enhance the variety of tests performed for kernel bases. In the latest commits, the tests fail for left kernel on input: with modulus 2. This is in fact good news, because it looks similar to a failing case revealed in #32 , which was until now not detected by the testing (which was testing "too generic" cases only). |
|
The last commits bring fixes to the early exit, and various tests show no error so hopefully this is now correct in all cases. Efficiency hasn't changed on random input, see below for left kernels (first three columns are timings with uniform degree, last three columns with row degrees chosen at random between 0 and bound): As indicated in #31 and #36 , improvements are to be expected when the number of columns is very small compared to the number of rows. (Still, e.g. for 1 column, this will likely not reach the efficiency of flint's nullspace function, whose output kernel basis is not minimal.) |
is_kernel(which still lacks some generation check) and make testing more complete for kernel basis functionsEnhanced because the modified version: