Skip to content

Is this valid? Should it be another algorithm for arb_poly_eval? #413

Open
@postmath

Description

@postmath

It looks like this will sometimes give a much tighter box than the other algorithms: when evaluating a polynomial at x = x0 +/- delta, first do a Taylor shift by x0 +/- 0, then evaluate at 0 +/- delta. For example, for 49*x^4 - 188*x^2 + 72*x + 292 (radius 0 for all coefficients) at x = -1.5 +/- 0.1, I see:

  • 9.0625 +/- 70.1889 for _arb_poly_evaluate_horner;
  • 9.0625 +/- 138.544 for _arb_poly_evaluate_rectangular;
  • 9.0625 +/- 70.1889 for _arb_poly_taylor_shift_horner then taking the constant coefficient;
  • 9.0625 +/- 138.544 for _arb_poly_taylor_shift_divconquer then taking the constant coefficient;
  • 9.0625 +/- 138.544 for _arb_poly_taylor_shift_convolution then taking the constant coefficient;
  • 9.0625 +/- 7.5839 for this new approach.

If instead we take x = -1.5 +- 1e-6, we see:

  • 9.0625 +/- 6.36001e-4 for the *_horner options above;
  • 9.0625 +/- 1.2975e-3 for the other three options above;
  • 9.0625 +/- 2.55005e-5 for the new approach.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions