Use pow() in CFXJSE_FormCalcContext::PV().
Faster calculations, just like in Pmt().
Change-Id: I4e566d4a540614bbb0670240e1cce0dd6f3b2c5f
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/90653
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/fxjs/xfa/cfxjse_formcalc_context.cpp b/fxjs/xfa/cfxjse_formcalc_context.cpp
index 3b4cf00..3309bb9 100644
--- a/fxjs/xfa/cfxjse_formcalc_context.cpp
+++ b/fxjs/xfa/cfxjse_formcalc_context.cpp
@@ -2936,7 +2936,7 @@
return;
}
- double nSum = pow(nRate + 1, nPeriods);
+ double nSum = pow(1.0 + nRate, nPeriods);
info.GetReturnValue().Set((nPrincipal * nRate * nSum) / (nSum - 1));
}
@@ -3029,12 +3029,8 @@
return;
}
- double nTemp = 1;
- for (int32_t i = 0; i < nPeriods; ++i)
- nTemp *= 1 + nRate;
-
- nTemp = 1 / nTemp;
- info.GetReturnValue().Set(nAmount * ((1 - nTemp) / nRate));
+ double nTemp = 1 / pow(1.0 + nRate, nPeriods);
+ info.GetReturnValue().Set(nAmount * ((1.0 - nTemp) / nRate));
}
// static