Hi again,

On 2013-12-18, maldun <[email protected]> wrote:
> 1) I think that applying Polynomial division by commands like
>
> sage: f(x)=3Dx^3+5*x^2-3*x+1
> sage: g(x)=3Dx+1
> sage: f.maxima_methods().divide(g)
> [x^2 + 4*x - 7, 8]
>
> are not very intuitive.

These aren't polynomials but symbolic expressions. If you want
polynomial division, use polynomials:

  sage: P.<x> = QQ[]
  sage: f = x^3+5*x^2-3*x+1
  sage: g = x+1
  sage: f.quo_rem(g)
  (x^2 + 4*x - 7, 8)
  sage: f//g
  x^2 + 4*x - 7
  sage: f%g
  8
  sage: f == (f//g)*g + f%g
  True

> 2) As mentioned direct call of algorithms (e.g. compute gcd, Gr=F6bner basi=
> s etc.)

... which exists in Sage. Just use polynomials and not symbolic expressions.


> 3) More symbolic manipulation possibilities for specific for symbolic polyn=
> omials.

Right, that's in the "symbolic expression world".

> 4) faster and numerical more stable evaluation methods

Is there a reason to not implement this on the level of the *existing*
polynomials with coefficients in RR or CC?

Up to now I don't see a compelling reason for introducing yet another
class of polynomials. One should use the right tool for the job. In
the job examples you gave, it seems to me that symbolic expressions
are not the right tool, but there *are* easily accessible suitable
tools in Sage.

- for 1) you will probably be able to use existing polynomial classes,
  which will be a lot faster than calling maxima---unless you have
  quite exotic coefficients, but in this case the notion of division
  with remainder might not even make sense.

- for 2) you certainly do not want to re-invent the wheel. Sage uses
  (mainly) Singular to do Gröbner computations when working with
  coefficients in finite fields and QQ, and I think ZZ and function fields
  as well. If you want to beat Singular with an implementation that is
  based on symbolic expressions, you should be prepared for some years
  of work. Again, if you have exotic coefficient domains that Singular
  can't deal with, then a new implementation might make more sense. In
  this case: There is a toy implementation of the Buchberger algorithm
  and I think also of F5 algorithm somewhere in Sage, which should work
  with exotic coefficients and which you may try to improve.

- for 3), this makes sense. The question is if this requires a whole new
  fully fledged polynomial class.

- for 4), it seems to me that this should be done in
  sage.rings.polynomial.polynomial_real_mpfr_dense.PolynomialRealDense
  respectively in
  
sage.rings.polynomial.polynomial_element_generic.Polynomial_generic_dense_field

Best regards,
Simon


-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" 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/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to