Package edu.jas.root

Interface RealRoots<C extends RingElem<C> & Rational>

Type Parameters:
C - coefficient type.
All Superinterfaces:
Serializable
All Known Implementing Classes:
RealRootsAbstract, RealRootsSturm

public interface RealRoots<C extends RingElem<C> & Rational> extends Serializable
Real roots interface.
  • Method Details

    • realRootBound

      C realRootBound(GenPolynomial<C> f)
      Real root bound. With f(M) * f(-M) != 0.
      Parameters:
      f - univariate polynomial.
      Returns:
      M such that -M < root(f) > M.
    • realRoots

      List<Interval<C>> realRoots(GenPolynomial<C> f)
      Isolating intervals for the real roots.
      Parameters:
      f - univariate polynomial.
      Returns:
      a list of isolating intervals for the real roots of f.
    • realRoots

      List<Interval<C>> realRoots(GenPolynomial<C> f, C eps)
      Isolating intervals for the real roots.
      Parameters:
      f - univariate polynomial.
      eps - requested intervals length.
      Returns:
      a list of isolating intervals v such that |v| < eps.
    • realRoots

      List<Interval<C>> realRoots(GenPolynomial<C> f, BigRational eps)
      Isolating intervals for the real roots.
      Parameters:
      f - univariate polynomial.
      eps - requested intervals length.
      Returns:
      a list of isolating intervals v such that |v| < eps.
    • signChange

      boolean signChange(Interval<C> iv, GenPolynomial<C> f)
      Sign changes on interval bounds.
      Parameters:
      iv - root isolating interval with f(left) * f(right) != 0.
      f - univariate polynomial.
      Returns:
      true if f(left) * f(right) < 0, else false
    • realRootCount

      long realRootCount(Interval<C> iv, GenPolynomial<C> f)
      Number of real roots in interval.
      Parameters:
      iv - interval with f(left) * f(right) != 0.
      f - univariate polynomial.
      Returns:
      number of real roots of f in I.
    • refineInterval

      Interval<C> refineInterval(Interval<C> iv, GenPolynomial<C> f, BigRational eps)
      Refine interval.
      Parameters:
      iv - root isolating interval with f(left) * f(right) < 0.
      f - univariate polynomial, non-zero.
      eps - requested interval length.
      Returns:
      a new interval v such that |v| < eps.
    • refineIntervals

      List<Interval<C>> refineIntervals(List<Interval<C>> V, GenPolynomial<C> f, BigRational eps)
      Refine intervals.
      Parameters:
      V - list of isolating intervals with f(left) * f(right) < 0.
      f - univariate polynomial, non-zero.
      eps - requested intervals length.
      Returns:
      a list of new intervals v such that |v| < eps.
    • realSign

      int realSign(Interval<C> iv, GenPolynomial<C> f, GenPolynomial<C> g)
      Real algebraic number sign.
      Parameters:
      iv - root isolating interval for f, with f(left) * f(right) < 0.
      f - univariate polynomial, non-zero.
      g - univariate polynomial, gcd(f,g) == 1.
      Returns:
      sign(g(v)), with v a new interval contained in iv such that g(v) != 0.
    • realMagnitude

      C realMagnitude(Interval<C> iv, GenPolynomial<C> f, GenPolynomial<C> g, BigRational eps)
      Real algebraic number magnitude.
      Parameters:
      iv - root isolating interval for f, with f(left) * f(right) < 0.
      f - univariate polynomial, non-zero.
      g - univariate polynomial, gcd(f,g) == 1.
      eps - length limit for interval length.
      Returns:
      g(iv).