Package edu.jas.root

Class RealRootsSturm<C extends RingElem<C> & Rational>

    • Field Detail

      • logger

        private static final org.apache.logging.log4j.Logger logger
      • debug

        private static final boolean debug
    • Constructor Detail

      • RealRootsSturm

        public RealRootsSturm()
    • Method Detail

      • sturmSequence

        public java.util.List<GenPolynomial<C>> sturmSequence​(GenPolynomial<C> f)
        Sturm sequence.
        Parameters:
        f - univariate polynomial.
        Returns:
        a Sturm sequence for f.
      • realRoots

        public java.util.List<Interval<C>> realRoots​(Interval<C> iv,
                                                     java.util.List<GenPolynomial<C>> S)
        Isolating intervals for the real roots.
        Parameters:
        iv - interval with f(left) * f(right) != 0.
        S - sturm sequence for f and I.
        Returns:
        a list of isolating intervals for the real roots of f in I.
      • realRootCount

        public long realRootCount​(Interval<C> iv,
                                  java.util.List<GenPolynomial<C>> S)
        Number of real roots in interval.
        Parameters:
        iv - interval with f(left) * f(right) != 0.
        S - sturm sequence for f and I.
        Returns:
        number of real roots of f in I.
      • invariantSignInterval

        public Interval<C> invariantSignInterval​(Interval<C> iv,
                                                 GenPolynomial<C> f,
                                                 GenPolynomial<C> g)
        Invariant interval for algebraic number sign.
        Specified by:
        invariantSignInterval in class RealRootsAbstract<C extends RingElem<C> & Rational>
        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:
        v with v a new interval contained in iv such that g(w) != 0 for w in v.
      • invariantSignInterval

        public Interval<C> invariantSignInterval​(Interval<C> iv,
                                                 GenPolynomial<C> f,
                                                 java.util.List<GenPolynomial<C>> Sg)
        Invariant interval for algebraic number sign.
        Parameters:
        iv - root isolating interval for f, with f(left) * f(right) < 0.
        f - univariate polynomial, non-zero.
        Sg - Sturm sequence for (f,g), a univariate polynomial with gcd(f,g) == 1.
        Returns:
        v with v a new interval contained in iv such that g(w) != 0 for w in v.
      • excludeZeroOld

        public Interval<C> excludeZeroOld​(Interval<C> iv,
                                          java.util.List<GenPolynomial<C>> S)
        Exclude zero, old version.
        Parameters:
        iv - root isolating interval with f(left) * f(right) < 0.
        S - sturm sequence for f and I.
        Returns:
        a new interval v such that v < 0 or v > 0.
      • excludeZero

        public Interval<C> excludeZero​(Interval<C> iv,
                                       java.util.List<GenPolynomial<C>> S)
        Exclude zero v2.
        Parameters:
        iv - root isolating interval with f(left) * f(right) < 0.
        S - sturm sequence for f and I.
        Returns:
        a new interval v such that v < 0 or v > 0 or v == 0.