@@ 1394-1403 (lines=10) @@ | ||
1391 | $x2 = $guess; |
|
1392 | $f1 = self::NPV($x1, $values); |
|
1393 | $f2 = self::NPV($x2, $values); |
|
1394 | for ($i = 0; $i < self::FINANCIAL_MAX_ITERATIONS; ++$i) { |
|
1395 | if (($f1 * $f2) < 0.0) { |
|
1396 | break; |
|
1397 | } |
|
1398 | if (abs($f1) < abs($f2)) { |
|
1399 | $f1 = self::NPV($x1 += 1.6 * ($x1 - $x2), $values); |
|
1400 | } else { |
|
1401 | $f2 = self::NPV($x2 += 1.6 * ($x2 - $x1), $values); |
|
1402 | } |
|
1403 | } |
|
1404 | if (($f1 * $f2) > 0.0) { |
|
1405 | return Functions::VALUE(); |
|
1406 | } |
|
@@ 2248-2256 (lines=9) @@ | ||
2245 | $x2 = $guess; |
|
2246 | $f1 = self::XNPV($x1, $values, $dates); |
|
2247 | $f2 = self::XNPV($x2, $values, $dates); |
|
2248 | for ($i = 0; $i < self::FINANCIAL_MAX_ITERATIONS; ++$i) { |
|
2249 | if (($f1 * $f2) < 0.0) { |
|
2250 | break; |
|
2251 | } elseif (abs($f1) < abs($f2)) { |
|
2252 | $f1 = self::XNPV($x1 += 1.6 * ($x1 - $x2), $values, $dates); |
|
2253 | } else { |
|
2254 | $f2 = self::XNPV($x2 += 1.6 * ($x2 - $x1), $values, $dates); |
|
2255 | } |
|
2256 | } |
|
2257 | if (($f1 * $f2) > 0.0) { |
|
2258 | return Functions::VALUE(); |
|
2259 | } |