67 final double ITMAX = 100;
68 final double EPS = 1.0e-15;
98 double e = 0.0, d = 0.0;
103 double cc = rX * sd1 * sd2;
104 double ccc = cc + mu1 * mu2;
127 for (
int i = 1; i <= ITMAX; i++) {
128 if ((fb > 0.0 && fc > 0.0) || (fb < 0.0 && fc < 0.0)) {
134 if (Math.abs(fc) < Math.abs(fb)) {
144 tolerance1 = 2.0 * EPS * Math.abs(b) + 0.5 * tolerance;
146 if (Math.abs(xm) <= tolerance1 || fb == 0.0)
149 if (Math.abs(e) >= tolerance1 && Math.abs(fa) > Math.abs(fb)) {
157 pp = s * (2.0 * xm * q * (q - rrr) - (b - a) * (rrr - 1.0));
158 q = (q - 1.0) * (rrr - 1.0) * (s - 1.0);
163 min1 = 3.0 * xm * q - Math.abs(tolerance1 * q);
164 min2 = Math.abs(e * q);
165 if (2.0 * pp < (min1 < min2 ? min1 : min2)) {
178 if (Math.abs(d) > tolerance1)
182 b += Math.abs(tolerance1);
184 b += -Math.abs(tolerance1);