public void process ( Polynomial poly ) { sturm . initialize ( poly ) ; if ( searchRadius <= 0 ) numRoots = sturm . countRealRoots ( Double . NEGATIVE_INFINITY , Double . POSITIVE_INFINITY ) ; else numRoots = sturm . countRealRoots ( - searchRadius , searchRadius ) ; if ( numRoots == 0 ) return ; if ( searchRadius <= 0 ) handleAllRoots ( ) ; else { boundEachRoot ( - searchRadius , searchRadius , 0 , numRoots ) ; } // improve the accuracy for ( int i = 0 ; i < numRoots ; i ++ ) { roots [ i ] = PolynomialOps . refineRoot ( poly , roots [ i ] , maxRefineIterations ) ; } }
Find real roots for the specified polynomial .