Package edu.jas.root

Class RootFactory


  • public class RootFactory
    extends java.lang.Object
    Roots factory. Generate real and complex algebraic numbers from root intervals or rectangles.
    • Constructor Detail

      • RootFactory

        public RootFactory()
    • Method Detail

      • isRoot

        public static <C extends GcdRingElem<C> & Rational> boolean isRoot​(GenPolynomial<C> f,
                                                                           RealAlgebraicNumber<C> r)
        Is real algebraic number a root of a polynomial.
        Parameters:
        f - univariate polynomial.
        r - real algebraic number.
        Returns:
        true, if f(r) == 0, else false;
      • realAlgebraicNumbers

        public static <C extends GcdRingElem<C> & Rational> java.util.List<RealAlgebraicNumber<C>> realAlgebraicNumbers​(GenPolynomial<C> f)
        Real algebraic numbers.
        Parameters:
        f - univariate polynomial.
        Returns:
        a list of different real algebraic numbers.
      • realAlgebraicNumbers

        public static <C extends GcdRingElem<C> & Rational> java.util.List<RealAlgebraicNumber<C>> realAlgebraicNumbers​(GenPolynomial<C> f,
                                                                                                                        BigRational eps)
        Real algebraic numbers.
        Parameters:
        f - univariate polynomial.
        eps - rational precision.
        Returns:
        a list of different real algebraic numbers.
      • realAlgebraicNumbersField

        public static <C extends GcdRingElem<C> & Rational> java.util.List<RealAlgebraicNumber<C>> realAlgebraicNumbersField​(GenPolynomial<C> f)
        Real algebraic numbers from a field.
        Parameters:
        f - univariate polynomial.
        Returns:
        a list of different real algebraic numbers from a field.
      • realAlgebraicNumbersField

        public static <C extends GcdRingElem<C> & Rational> java.util.List<RealAlgebraicNumber<C>> realAlgebraicNumbersField​(GenPolynomial<C> f,
                                                                                                                             BigRational eps)
        Real algebraic numbers from a field.
        Parameters:
        f - univariate polynomial.
        eps - rational precision.
        Returns:
        a list of different real algebraic numbers from a field.
      • realAlgebraicNumbersIrred

        public static <C extends GcdRingElem<C> & Rational> java.util.List<RealAlgebraicNumber<C>> realAlgebraicNumbersIrred​(GenPolynomial<C> f)
        Real algebraic numbers from a irreducible polynomial.
        Parameters:
        f - univariate irreducible polynomial.
        Returns:
        a list of different real algebraic numbers from a field.
      • realAlgebraicNumbersIrred

        public static <C extends GcdRingElem<C> & Rational> java.util.List<RealAlgebraicNumber<C>> realAlgebraicNumbersIrred​(GenPolynomial<C> f,
                                                                                                                             BigRational eps)
        Real algebraic numbers from a irreducible polynomial.
        Parameters:
        f - univariate irreducible polynomial.
        eps - rational precision.
        Returns:
        a list of different real algebraic numbers from a field.
      • isRoot

        public static <C extends GcdRingElem<C> & Rational> boolean isRoot​(GenPolynomial<C> f,
                                                                           ComplexAlgebraicNumber<C> r)
        Is complex algebraic number a root of a polynomial.
        Parameters:
        f - univariate polynomial.
        r - complex algebraic number.
        Returns:
        true, if f(r) == 0, else false;
      • isRootComplex

        public static <C extends GcdRingElem<C> & Rational> boolean isRootComplex​(GenPolynomial<Complex<C>> f,
                                                                                  ComplexAlgebraicNumber<C> r)
        Is complex algebraic number a root of a complex polynomial.
        Parameters:
        f - univariate complex polynomial.
        r - complex algebraic number.
        Returns:
        true, if f(r) == 0, else false;
      • isRealRoot

        public static <C extends GcdRingElem<C> & Rational> boolean isRealRoot​(GenPolynomial<C> f,
                                                                               ComplexAlgebraicNumber<C> c,
                                                                               RealAlgebraicNumber<C> r)
        Is complex algebraic number a real root of a polynomial.
        Parameters:
        f - univariate polynomial.
        c - complex algebraic number.
        r - real algebraic number.
        Returns:
        true, if f(c) == 0 and c == r, else false;
      • isRealRoot

        public static <C extends GcdRingElem<C> & Rational> boolean isRealRoot​(GenPolynomial<C> f,
                                                                               Complex<BigDecimal> c,
                                                                               BigDecimal r,
                                                                               BigRational eps)
        Is complex decimal number a real root of a polynomial.
        Parameters:
        f - univariate polynomial.
        c - complex decimal number.
        r - real decimal number.
        eps - desired precision.
        Returns:
        true, if f(c) == 0 and c == r, else false;
      • complexAlgebraicNumbersComplex

        public static <C extends GcdRingElem<C> & Rational> java.util.List<ComplexAlgebraicNumber<C>> complexAlgebraicNumbersComplex​(GenPolynomial<Complex<C>> f)
        Complex algebraic numbers.
        Parameters:
        f - univariate polynomial.
        Returns:
        a list of different complex algebraic numbers.
      • complexAlgebraicNumbers

        public static <C extends GcdRingElem<C> & Rational> java.util.List<ComplexAlgebraicNumber<C>> complexAlgebraicNumbers​(GenPolynomial<C> f)
        Complex algebraic numbers.
        Parameters:
        f - univariate (rational) polynomial.
        Returns:
        a list of different complex algebraic numbers.
      • complexAlgebraicNumbers

        public static <C extends GcdRingElem<C> & Rational> java.util.List<ComplexAlgebraicNumber<C>> complexAlgebraicNumbers​(GenPolynomial<C> f,
                                                                                                                              BigRational eps)
        Complex algebraic numbers.
        Parameters:
        f - univariate (rational) polynomial.
        eps - rational precision.
        Returns:
        a list of different complex algebraic numbers.
      • filterOutRealRoots

        public static <C extends GcdRingElem<C> & Rational> java.util.List<Complex<BigDecimal>> filterOutRealRoots​(GenPolynomial<C> f,
                                                                                                                   java.util.List<Complex<BigDecimal>> c,
                                                                                                                   java.util.List<BigDecimal> r,
                                                                                                                   BigRational eps)
        Filter real roots from complex roots.
        Parameters:
        f - univariate polynomial.
        c - list of complex decimal numbers.
        r - list of real decimal numbers.
        eps - desired precision.
        Returns:
        c minus the real roots from r
      • algebraicRoots

        public static <C extends GcdRingElem<C> & RationalAlgebraicRoots<C> algebraicRoots​(GenPolynomial<C> f)
        Roots as real and complex algebraic numbers.
        Parameters:
        f - univariate polynomial.
        Returns:
        container of real and complex algebraic numbers.
      • rootsOfUnity

        public static <C extends GcdRingElem<C> & RationalAlgebraicRoots<C> rootsOfUnity​(AlgebraicRoots<C> ar)
        Roots of unity of real and complex algebraic numbers.
        Parameters:
        ar - container of real and complex algebraic numbers.
        Returns:
        container of real and complex algebraic numbers which are roots of unity.
      • rootRefine

        public static <C extends GcdRingElem<C> & Rational> void rootRefine​(AlgebraicRoots<C> a,
                                                                            BigRational eps)
        Root refinement of real and complex algebraic numbers.
        Parameters:
        a - container of real and complex algebraic numbers.
        eps - desired precision for root intervals and rectangles.
      • decimalRoots

        public static <C extends GcdRingElem<C> & RationalDecimalRoots<C> decimalRoots​(GenPolynomial<C> f,
                                                                                         BigRational eps)
        Roots as real and complex decimal numbers.
        Parameters:
        f - univariate polynomial.
        eps - desired precision.
        Returns:
        container of real and complex decimal numbers.
      • decimalRoots

        public static <C extends GcdRingElem<C> & RationalDecimalRoots<C> decimalRoots​(AlgebraicRoots<C> ar,
                                                                                         BigRational eps)
        Roots as real and complex decimal numbers.
        Parameters:
        ar - container for real and complex algebraic roots.
        eps - desired precision.
        Returns:
        container of real and complex decimal numbers.