Hello,

Thanks for the quick response!

> This is what I get:
> ...
> So looks like it hasn't been implemented yet.

Right on. I'll start poking around, then.

> Good question. First, I would implement RootOf.mypow(n) and see if you
> can figure out how to get the answer you want. That's the hard part.
> What's the algorithm to determine which powers simplify and which not?

I was considering starting with a binary method like the one outlined here:

http://en.wikipedia.org/wiki/Modular_exponentiation

(I remember this from a number theory course I took with William Stein back in 
my undergraduate days!) I guess the simplification convention, if there is one, 
is to reduce modulo the leading term of the polynomial. So if `alpha` is a root 
of

f(x) = c x**n + lower_order_terms(x)

then 

alpha**n = lower_order_terms(alpha) / c

Any high power of the root can be given in terms of lower powers. The harder 
part will be making this fast. (To my knowledge the binary method is the most 
common fast approach.)

> Then the next question is how to hook this up into sympy, so that it
> simplifies automatically, I guess one would need to add an if
> statement into the Pow simplification somewhere.

The more I think about it the more it looks like the bulk of the problem is to 
implement modular exponentiation of polynomials...

I'll implement a "mypow" first and see what people have to say about making 
this play nice with everything.

--
Chris Swierczewski
University of Washington
Department of Applied Mathematics
www.cswiercz.info

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/DCCA424B-2E29-4835-97CB-2E4E31B0794C%40gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to