faster linear algebra



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