Apply rat() to every single thing



Hello.

I'm still trying to calculate nullspace for a 243x270 symbolic matrix
with lots of zeros. ( I posted a message here about it. ) Ploblem is
nullspace(m) is very slow.

I found out that it triangularize(m) is also slow.
So i wrote my own version of it to find out why.

First version of my code worked as slow as maxima's. I found out that
some of elements are just huge, like (it's just a part of it):

                    a  (- b - a)
 - ------------------------------------------------)
                                 2
                      (- b - a) b    a (- b - a)
                   a (------------ - -----------)
     (- b - a) b          a c             c
  b (----------- - ------------------------------)
          c                      b
                          2
                         b  c
 + (------------------------------------------------
                                  2
                       (- b - a) b    a (- b - a)
                    a (------------ - -----------)
      (- b - a) b          a c             c
   a (----------- - ------------------------------)
           c                      b

But, actually, they must be zero. And, really, after applying rat()
turns out they are zeros.

So I added rat() to manipulations with rows.
Now my version of triangularize works for reasonable time.

Now i think, if all calculations would be simplified after, original
maxima's nullspace and triangularize would work ok.

Is there a good way to do this?

Thanks in advance, Fedor.