modulus, also generalization



On Sun, Oct 17, 2004 at 08:58:05AM -0700, Richard Fateman wrote:
> The problem with this approach is that it computes all the
> digits of 974^169, when it only needs to compute the 6 or fewer
> digits of that number modulo 28552.
> 
> If you are not in a hurry, and the exponent is not too big,
> that is fine. Often problems like this come up in cryptographic
> examples in which case the straightforward method is a disaster,
> and you need a exptmod  style approach. (see my earlier note.)
> 

Ok, I see. Probably I should have guessed that there is more in
this question than meets the eye! 

> If you want to compute with complex numbers, try setting
> algebraic:true, and  then simplify using rat (....).
> 
> As for calculating over general Euclidean domains, maybe
> you should be looking at (say) the Axiom system if you
> want to invent new ones.
> 

Since I am not very knowledgable about the Maxima system I was
just wondering how much it can do as it comes "out of the box".
      
GAP is also very usefull for (abstract) algebra BTW. 
  
>  There are
> a number of useful domains related to Euclidean domains in
> maxima, in addition to the obvious polynomial rings and
> the integers themselves. Rationals. etc.
> A less obvious one is truncated power series as produced by
> the Taylor command. The program is made far more useful
> by allowing Laurent series (negative exponents), and this
> generalization makes it (I think) no longer Euclidean.
> 

 I think Laurent polymomials (over a Euclidean domain) do form a
Euclidean domain, degree is just the differece of the "positive"
and the "negative" degree. For truncated series I am not so sure.
  
> Algebra can be a guiding light for the construction
> of computer algebra systems, but it often falls short
> of being useful.
> e.g.  algebra says how to construct rational numbers from
> the integers.  But it doesn't.
> What does algebra say about 1/0 ?  It says "you can't do it."
> So what should your program do when someone types in 1/0?
> Algebra doesn't say.  But a program has to do something.
> 

Thank you very much for all this information. 

Nikos

> Regards
> RJF