Maxima 5.9.1 vs MuPAD 2.5.3



Hi,

I am new to Maxima ; I am working in number theory, and my main tool is
Pari-GP for huge numerical computations and MuPAD 2.5.3 for 
symbolic/algebraic
computations. But I always add Maxima installed on my system, and I recently
got interested by trying it. I find some aspects of Maxima very nice :

  - the various interfaces (Maxima seems to be a little more "open" than
    MuPAD though the difference is not big ; it seems also to be more
    "open" for the various plotting engines but I didn't look precisely 
at that)
  - the language seems to me heavier for some aspects (difference 
between float and bfloat, etc.)
    but the Lisp heritage may be a good point for me
  - the license (MuPAD 2.5.3 is free, but I like rather a true 
open-source software)
  - since I am a FreeBSD user, I need to use MuPAD through the Linux 
ABI, which is not
    the best in my opinion.
  - etc.

But before spending more time for learning Maxima ; I was also 
disappointed by some
other aspects (see below). However I am sure Maxima can do some tasks I 
need, maybe
with an external package or with a greater knowledge of its syntax.
  - a very simple thing :
    most of my computations are in Q(sqrt(5)) ; I really need to get
    a normalized result : (a + b sqrt(5))/c. For instance, is there a 
built-in
    method for simplifying    (2+sqrt(5))/(4+3*sqrt(5))  to  (7+2 
sqrt(5))/29 ?
  - In a big expression, how can I replace the variable phi^2 with phi+1 ?
    The subs function of method can do that : subs(expr,phi^2=phi+1)
    But it seems that the sublis function of Maxima can't do the same thing.
  - I got a problem with a dummy variable in the definition of a function
    having the same name as a function :
      myfunction(f) :=  ... apply(f,...) ...
    when I tried to use myfunction(g) for calling "myfunction" with 
argument being
    a function g, but with the function f being also defined, I always 
got the
    apply function use the real "f" function instead of g ??? And if f 
isn't defined,
    the function acts as it should do, replacing the dummy variable f by g.
Here are the first troubles I encountered ; but I still think Maxima 
could be
the right choice for me. I would also be interested by any existing packages
concerning number theory, and more precisely continued fractions and 
Fibonacci numbers
(I would be very happy to find a package for simplifying expressions 
involving many Fibonacci
numbers).

Regards,