/*
* $Id$
*/
package edu.jas.root;
import java.io.Serializable;
import java.util.List;
import edu.jas.arith.Rational;
import edu.jas.arith.BigRational;
import edu.jas.poly.Complex;
import edu.jas.poly.GenPolynomial;
import edu.jas.structure.RingElem;
import edu.jas.structure.GcdRingElem;
/**
* Complex roots interface.
* @param coefficient type.
* @author Heinz Kredel
*/
public interface ComplexRoots & Rational> extends Serializable {
/**
* Root bound. With f(-M + i M) * f(-M - i M) * f(M - i M) * f(M + i M) != 0.
* @param f univariate polynomial.
* @return M such that root(f) is contained in the rectangle spanned by M.
*/
public Complex rootBound(GenPolynomial> f);
/**
* Complex root count of complex polynomial on rectangle.
* @param rect rectangle.
* @param a univariate complex polynomial.
* @return root count of a in rectangle.
*/
public long complexRootCount(Rectangle rect, GenPolynomial> a)
throws InvalidBoundaryException;
/**
* List of complex roots of complex polynomial a on rectangle.
* @param rect rectangle.
* @param a univariate squarefree complex polynomial.
* @return list of complex roots.
*/
public List> complexRoots(Rectangle rect, GenPolynomial> a)
throws InvalidBoundaryException;
/**
* List of complex roots of complex polynomial.
* @param a univariate complex polynomial.
* @return list of complex roots.
*/
public List> complexRoots(GenPolynomial> a);
/**
* Complex root refinement of complex polynomial a on rectangle.
* @param rect rectangle containing exactly one complex root.
* @param a univariate squarefree complex polynomial.
* @param len rational length for refinement.
* @return refined complex root.
*/
public Rectangle complexRootRefinement(Rectangle rect, GenPolynomial> a, BigRational len)
throws InvalidBoundaryException;
}
Ads help maintain this website.