That helps for now.

Thanks,
Stefan


Am 15.09.2009 um 22:19 schrieb Nils Bruin:

>
> On Sep 15, 6:24 pm, Stefan Boettner <sboet...@tulane.edu> wrote:
>> Hello,
>>
>> I'm trying to parse symbolic expressions, but got stuck very quickly.
>>
>> If I say:
>> (x^2).operator()
>> I get:
>> <built-in function pow>
>>
>> If I say:
>> pow
>> I also get:
>> <built-in function pow>
>>
>> But if I say:
>> (x^2).operator()==pow
>> I get:
>> False
>>
>> How do I properly test if the topmost operation of an expression is a
>> power, product, sum, whatever?
>
> The animal seems to be called:
>
> sage.symbolic.expression.operator.pow
>
> but if you don't want to bother figuring something like that out, you
> can just cache it from a model equation:
>
> pow_as_a_symbolic_operator = (x^2).operator()
>
> and whenever you have a symbolic expression you expect is an
> exponentiation, you can do
>
> expr.operator() == pow_as_a_symbolic_operator
>
> Mike Hansen has authored a file in the sage library "devel/sage/sage/
> symbolic/expression_conversions.py" that seems to make it easier to
> traverse an expression tree. You may be able to save yourself some
> work by inheriting from the classes he provides there and only
> implement what needs to be done on the leaves. I ran into that file by
> accident myself. It doesn't seem to be imported by default and I have
> no experience using it.
>
> Be aware: expressions that do not have an operator can be a
> SymbolicVariable or the method ".pyobject()" unpacks it:
>
> compare SR(x).pyobject() and SR(pi).pyobject().
>
> I am not aware of other possibilities.
>
> Nils
>
> >


--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support-unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to