> > method. Thanks to Cython, this is very easy. However, Maxima and
> > Ginac have a different semantic for those two functions:
> > 
> >  - Maxima: Does not change the expression; if the expression is not a
> >      quotient, then this will return the expression itself.
> >  - Ginac: try to normalize the expression to put it in the form N/D
> > and then return N;
> > 
> > For example, with an expression such as "x + y/(x + 2)",
> > 
> >  - Maxima: numer = x + y/(x + 2), denom = 1
> >  - Ginac: numer = (x^2 + 2x + y), denom = x + 2
> > 
> > I can more or less emulate Maxima's behavior with Ginac, but I'm not
> > sure what's best to do. I see several options:
> > 
> >  1 - Forget about Maxima and follows Ginac semantic;
> >  2 - Follows Maxima semantic as close as possible using Ginac;
> >  3 - Have a parameter 'algorithm' to select the needed one. Depending
> > one the algorithm the semantic differ;
> >  4 - Have a parameter 'normal' to select if we normalize or nor the
> > result before computing the numerator, always use Ginac however.
> >  5 - 3 and 4, have two parameters, one for selecting Maxima or Ginac,
> > one for performing a normalization before.
> >  6 - other options ???
> > 
> > In case 3, 4, 5, we also should decide what is the default.
> > 
> > What do you think ?
> 
> I like 4 best, though I suggest calling the parameter 'normalize.'
> 
> How do you plan to handle normalize=False? I suggest 
> 
> if the expression is not a mul:
>     return self
> else:
>     separate the positive and negative exponents

This is indeed what I had in mind.

Any idea for the default for normalize ?

Cheers,

Florent

-- 
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