Package edu.jas.root
Class RootFactory
- java.lang.Object
-
- edu.jas.root.RootFactory
-
public class RootFactory extends java.lang.Object
Roots factory. Generate real and complex algebraic numbers from root intervals or rectangles.- Author:
- Heinz Kredel
-
-
Constructor Summary
Constructors Constructor Description RootFactory()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <C extends GcdRingElem<C> & Rational>
AlgebraicRoots<C>algebraicRoots(GenPolynomial<C> f)
Roots as real and complex algebraic numbers.static <C extends GcdRingElem<C> & Rational>
java.util.List<ComplexAlgebraicNumber<C>>complexAlgebraicNumbers(GenPolynomial<C> f)
Complex algebraic numbers.static <C extends GcdRingElem<C> & Rational>
java.util.List<ComplexAlgebraicNumber<C>>complexAlgebraicNumbers(GenPolynomial<C> f, BigRational eps)
Complex algebraic numbers.static <C extends GcdRingElem<C> & Rational>
java.util.List<ComplexAlgebraicNumber<C>>complexAlgebraicNumbersComplex(GenPolynomial<Complex<C>> f)
Complex algebraic numbers.static <C extends GcdRingElem<C> & Rational>
java.util.List<ComplexAlgebraicNumber<C>>complexAlgebraicNumbersComplex(GenPolynomial<Complex<C>> f, BigRational eps)
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>
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.static <C extends GcdRingElem<C> & Rational>
java.util.List<ComplexAlgebraicNumber<C>>filterOutRealRoots(GenPolynomial<C> f, java.util.List<ComplexAlgebraicNumber<C>> c, java.util.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>
java.util.List<RealAlgebraicNumber<C>>realAlgebraicNumbers(GenPolynomial<C> f)
Real algebraic numbers.static <C extends GcdRingElem<C> & Rational>
java.util.List<RealAlgebraicNumber<C>>realAlgebraicNumbers(GenPolynomial<C> f, BigRational eps)
Real algebraic numbers.static <C extends GcdRingElem<C> & Rational>
java.util.List<RealAlgebraicNumber<C>>realAlgebraicNumbersField(GenPolynomial<C> f)
Real algebraic numbers from a field.static <C extends GcdRingElem<C> & Rational>
java.util.List<RealAlgebraicNumber<C>>realAlgebraicNumbersField(GenPolynomial<C> f, BigRational eps)
Real algebraic numbers from a field.static <C extends GcdRingElem<C> & Rational>
java.util.List<RealAlgebraicNumber<C>>realAlgebraicNumbersIrred(GenPolynomial<C> f)
Real algebraic numbers from a irreducible polynomial.static <C extends GcdRingElem<C> & Rational>
java.util.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 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.
-
complexAlgebraicNumbersComplex
public static <C extends GcdRingElem<C> & Rational> java.util.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> 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<ComplexAlgebraicNumber<C>> filterOutRealRoots(GenPolynomial<C> f, java.util.List<ComplexAlgebraicNumber<C>> c, java.util.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> 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> & 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.
-
-