@@ 1410-1419 (lines=10) @@ | ||
1407 | $x2 = $guess; |
|
1408 | $f1 = self::NPV($x1, $values); |
|
1409 | $f2 = self::NPV($x2, $values); |
|
1410 | for ($i = 0; $i < self::FINANCIAL_MAX_ITERATIONS; ++$i) { |
|
1411 | if (($f1 * $f2) < 0.0) { |
|
1412 | break; |
|
1413 | } |
|
1414 | if (abs($f1) < abs($f2)) { |
|
1415 | $f1 = self::NPV($x1 += 1.6 * ($x1 - $x2), $values); |
|
1416 | } else { |
|
1417 | $f2 = self::NPV($x2 += 1.6 * ($x2 - $x1), $values); |
|
1418 | } |
|
1419 | } |
|
1420 | if (($f1 * $f2) > 0.0) { |
|
1421 | return Functions::VALUE(); |
|
1422 | } |
|
@@ 2264-2272 (lines=9) @@ | ||
2261 | $x2 = $guess; |
|
2262 | $f1 = self::XNPV($x1, $values, $dates); |
|
2263 | $f2 = self::XNPV($x2, $values, $dates); |
|
2264 | for ($i = 0; $i < self::FINANCIAL_MAX_ITERATIONS; ++$i) { |
|
2265 | if (($f1 * $f2) < 0.0) { |
|
2266 | break; |
|
2267 | } elseif (abs($f1) < abs($f2)) { |
|
2268 | $f1 = self::XNPV($x1 += 1.6 * ($x1 - $x2), $values, $dates); |
|
2269 | } else { |
|
2270 | $f2 = self::XNPV($x2 += 1.6 * ($x2 - $x1), $values, $dates); |
|
2271 | } |
|
2272 | } |
|
2273 | if (($f1 * $f2) > 0.0) { |
|
2274 | return Functions::VALUE(); |
|
2275 | } |