I don't understand how it works...

I tried to do a test:

class A(Basic):
    def _eval_power(self, a):
        return Integer(12345)

a = A()
print exp(a)
print E**a

this gives me exp(A()) and not 12345

On Tuesday, June 25, 2013 9:39:09 PM UTC+2, Aaron Meurer wrote:
>
> On Tue, Jun 25, 2013 at 2:32 PM, F. B. <franz....@gmail.com <javascript:>> 
> wrote: 
> > Can this be done on the DifferentialOperator too? 
>
> Sure, _eval_power works on everything. 
>
> > 
> > It would be nice to have a simple implementation of the exponential of a 
> > diff operator, such as exp(diff_op_instance), it would be very helpful 
> for 
> > many physicists. 
> > 
> > (by the way, the exp of a DifferentialOperator requires pdsolve to be 
> able 
> > to handle initial conditions... I think it's going to take some time) 
>
> Not if you submit a pull request... 
>
> Aaron Meurer 
>
> > 
> > 
> > On Monday, June 24, 2013 11:06:24 PM UTC+2, Aaron Meurer wrote: 
> >> 
> >> Actually, fixing this just involves fixing 
> >> https://code.google.com/p/sympy/issues/detail?id=1799, because Pow 
> >> already has this logic (_eval_power). 
> >> 
> >> Oh, and I guess Matrix._eval_power would need to be implemented 
> >> (currently it raises NotImplementedError, but this is easy to fix, 
> >> just make a**Matrix give exp(log(a)*Matrix). Even with that fixed, you 
> >> could do E**Matrix, before issue 1799 is fixed. 
> >> 
> >> Aaron Meurer 
> >> 
> >> On Mon, Jun 24, 2013 at 12:37 PM, F. B. <franz....@gmail.com> wrote: 
> >> > Hi, I noticed the Matrix.exp() function which calculates the 
> exponential 
> >> > of 
> >> > a Matrix. 
> >> > 
> >> > The exp() function fails when calling exp(matrix) because it does not 
> >> > recognize the matrix object. 
> >> > 
> >> > exp is a class inheriting the "Function" object. 
> >> > 
> >> > What about creating an "ForwardFunction" object which tries to look 
> for 
> >> > methods having the same name of the class to apply it? 
> >> > 
> >> > For example, the exp() function would not recognize a Matrix object 
> in 
> >> > its 
> >> > algorithm, but would notice the Matrix.exp() method on its arg and 
> call 
> >> > it. 
> >> > 
> >> > -- 
> >> > 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 sympy+un...@googlegroups.com. 
> >> > To post to this group, send email to sy...@googlegroups.com. 
> >> > Visit this group at http://groups.google.com/group/sympy. 
> >> > For more options, visit https://groups.google.com/groups/opt_out. 
> >> > 
> >> > 
> > 
> > -- 
> > 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 sympy+un...@googlegroups.com <javascript:>. 
> > To post to this group, send email to sy...@googlegroups.com<javascript:>. 
>
> > Visit this group at http://groups.google.com/group/sympy. 
> > For more options, visit https://groups.google.com/groups/opt_out. 
> > 
> > 
>

-- 
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 sympy+unsubscr...@googlegroups.com.
To post to this group, send email to sympy@googlegroups.com.
Visit this group at http://groups.google.com/group/sympy.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to