Package edu.jas.root
Class RootFactory
java.lang.Object
edu.jas.root.RootFactory
Roots factory. Generate real and complex algebraic numbers from root
intervals or rectangles.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic <C extends GcdRingElem<C> & Rational>
AlgebraicRoots<C> algebraicRoots
(GenPolynomial<C> f) Roots as real and complex algebraic numbers.static <C extends GcdRingElem<C> & Rational>
List<ComplexAlgebraicNumber<C>> Complex algebraic numbers.static <C extends GcdRingElem<C> & Rational>
List<ComplexAlgebraicNumber<C>> complexAlgebraicNumbers
(GenPolynomial<C> f, BigRational eps) Complex algebraic numbers.static <C extends GcdRingElem<C> & Rational>
List<ComplexAlgebraicNumber<C>> Complex algebraic numbers.static <C extends GcdRingElem<C> & Rational>
List<ComplexAlgebraicNumber<C>> Complex algebraic numbers.static <C extends GcdRingElem<C> & Rational>
DecimalRoots<C> decimalRoots
(GenPolynomial<C> f, BigRational eps) Roots as real and complex decimal numbers.static <C extends GcdRingElem<C> & Rational>
DecimalRoots<C> decimalRoots
(AlgebraicRoots<C> ar, BigRational eps) Roots as real and complex decimal numbers.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.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.static <C extends GcdRingElem<C> & Rational>
booleanisRealRoot
(GenPolynomial<C> f, Complex<BigDecimal> c, BigDecimal r, BigRational eps) Is complex decimal number a real root of a polynomial.static <C extends GcdRingElem<C> & Rational>
booleanisRealRoot
(GenPolynomial<C> f, ComplexAlgebraicNumber<C> c, RealAlgebraicNumber<C> r) Is complex algebraic number a real root of a polynomial.static <C extends GcdRingElem<C> & Rational>
booleanisRoot
(GenPolynomial<C> f, ComplexAlgebraicNumber<C> r) Is complex algebraic number a root of a polynomial.static <C extends GcdRingElem<C> & Rational>
booleanisRoot
(GenPolynomial<C> f, RealAlgebraicNumber<C> r) Is real algebraic number a root of a polynomial.static <C extends GcdRingElem<C> & Rational>
booleanisRootComplex
(GenPolynomial<Complex<C>> f, ComplexAlgebraicNumber<C> r) Is complex algebraic number a root of a complex polynomial.static <C extends GcdRingElem<C> & Rational>
List<RealAlgebraicNumber<C>> Real algebraic numbers.static <C extends GcdRingElem<C> & Rational>
List<RealAlgebraicNumber<C>> realAlgebraicNumbers
(GenPolynomial<C> f, BigRational eps) Real algebraic numbers.static <C extends GcdRingElem<C> & Rational>
List<RealAlgebraicNumber<C>> Real algebraic numbers from a field.static <C extends GcdRingElem<C> & Rational>
List<RealAlgebraicNumber<C>> realAlgebraicNumbersField
(GenPolynomial<C> f, BigRational eps) Real algebraic numbers from a field.static <C extends GcdRingElem<C> & Rational>
List<RealAlgebraicNumber<C>> Real algebraic numbers from a irreducible polynomial.static <C extends GcdRingElem<C> & Rational>
List<RealAlgebraicNumber<C>> realAlgebraicNumbersIrred
(GenPolynomial<C> f, BigRational eps) Real algebraic numbers from a irreducible polynomial.static <C extends GcdRingElem<C> & Rational>
voidrootRefine
(AlgebraicRoots<C> a, BigRational eps) Root refinement of real and complex algebraic numbers.static <C extends GcdRingElem<C> & Rational>
AlgebraicRoots<C> rootsOfUnity
(AlgebraicRoots<C> ar) Roots of unity of real and complex algebraic numbers.
-
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.
-