On Sat, Nov 14, 2009 at 9:30 AM, Francois Maltey <fmal...@nerim.fr> wrote:
>
> Hello,
>
> This purpose about expression has 3 differents aspects.
>
> A/ The first aspect we discover is the user interface. This interface
> must be coherent.
> This means that 1/ it's possible to describe it with "few word" 2/ The
> most common calculus has no option 3/ This system will be able to be
> refined for more difficult computations.
>
> B/ Theses mathematic rules are well known and this coding aspect is a
> visit inside the expressions, its branchs, its leaves, its operands and
> its operators. I feel that this point is not so difficult when A/ is
> well described.
>
> C/ I can't test my ideas about A/ by B/ in sage/python because I need
> some primitives I don't find.
>
> a- expr.operator() and expr.operands() are already right.
> a'-Extract and test sin in sin(x) is easy, but recognize the + in x+y is
> heavy.

But isn't it just operator()???

sage: var('x,y'); a = x+y
(x, y)
sage: a.operator()
<built-in function add>


>
> b- Burcin is working about an very fine automatic retract.
> If the result is an (defined) integer as in 0*x, its type becomes
> integer, and doesn't remain expression.
> b'- test for rational numbers, real numbers, positive ones will also be
> used.
>
> c- I don't find the test "this expression is an atomic variable"   True
> for x, False for sqrt(2)

Burcin -- does this needs to be added?  I can't figure out how to do
it either?  It used to be easy with the old symbolics, but not with
the new ones.

> d- For a later Sage tests around assume will be integrate in theses
> predicates.
> After assume (n, Integer), (-1)^(2*n) computes 1, sin(n*pi) answers 0
> and cos(n*pi) remains.
> But this mail isn't the right place for the test x>0 or x<0 !

Assume in Sage is 100% implemented by Maxima...  Inevitably we will
have to implement our own assume system eventually in pynac.

> One time theses methods exist, code B/  becomes easy.
> With some tips, the d- improvement may be partially predict.
>
>  From my point of view, the hardest  aspect is the B-point.

I personally didn't understand what you meant by B above, actually.

> I used Maple, Mupad and Axiom... and I see what way is nice to use, and
> what way is disagreable.
> And I don't love Maxima manner with its numerous flags and numerous
> functions.
>
> The C-point is a play I'll done one day or an other because I make tipo
> every time I type
> expr.subs_expr(cos(x)==(exp(i*x)+exp(-i*x))/2), sin(x)==...)
>

Thanks for sharing your thoughts and experience!

William

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

Reply via email to