Hi!
While implementing my package on
real algebraic geometry I have
discovered how slow the commmands
"Determinant" and "Triangularize" are.
Then I reimplemented "the wheel"
and with my surprise my implementation
is much much faster. The main reason being
that I used arrays instead of lists.
"Triagularize" is moderately slow
but "Determinant" is pathologically
slow. It looks like it doesn't even use
Gaussian elimination. Maybe it uses
Laplace rule.
Some timings:
(%i22) Triangularize(apply(matrix,Hilbert(100)))$
Evaluation took 248.75 seconds (250.41 elapsed) using 6807858.430 KB.
(%i23) gaussElim(Hilbert(100))$
Evaluation took 72.27 seconds (72.28 elapsed) using 1152581.820 KB.
"Determinant" cannot compute
determinants of even small sizes
like 30.
Fabrizio