Package edu.jas.root

Class RootFactory

java.lang.Object
edu.jas.root.RootFactory

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

    • RootFactory

      public RootFactory()
  • Method Details

    • 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> 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> 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> 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> 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> 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> 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> List<ComplexAlgebraicNumber<C>> complexAlgebraicNumbersComplex(GenPolynomial<Complex<C>> f)
      Complex algebraic numbers.
      Parameters:
      f - univariate polynomial.
      Returns:
      a list of different complex algebraic numbers.
    • complexAlgebraicNumbersComplex

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

      public static <C extends GcdRingElem<C> & Rational> 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> 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> List<ComplexAlgebraicNumber<C>> filterOutRealRoots(GenPolynomial<C> f, List<ComplexAlgebraicNumber<C>> c, List<RealAlgebraicNumber<C>> r)
      Filter real roots from complex roots.
      Parameters:
      f - univariate polynomial.
      c - list of complex algebraic numbers.
      r - list of real algebraic numbers.
      Returns:
      c minus the real roots from r
    • filterOutRealRoots

      public static <C extends GcdRingElem<C> & Rational> List<Complex<BigDecimal>> filterOutRealRoots(GenPolynomial<C> f, List<Complex<BigDecimal>> c, 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> & Rational> AlgebraicRoots<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> & Rational> AlgebraicRoots<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> & Rational> DecimalRoots<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> & Rational> DecimalRoots<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.