Skip to content

Commit

Permalink
ENH: Perform C division where appropriate
Browse files Browse the repository at this point in the history
This PR performs C division where we
 know that we cannot encounter a
 division by zero.
  • Loading branch information
Kai-Striega committed Apr 4, 2024
1 parent 8583586 commit 5b134ac
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions numpy_financial/_cfinancial.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,16 @@ cdef double nper_inner_loop(
return INFINITY

if rate_ == 0.0:
return -(fv_ + pv_) / pmt_
with cython.cdivision(True):
# We know that pmt_ != 0, we don't need to check for division by 0
return -(fv_ + pv_) / pmt_

if rate_ <= -1.0:
return NAN

z = pmt_ * (1.0 + rate_ * when_) / rate_
with cython.cdivision(True):
# We know that rate_ != 0, we don't need to check for division by 0
z = pmt_ * (1.0 + rate_ * when_) / rate_
return log((-fv_ + z) / (pv_ + z)) / log(1.0 + rate_)


Expand Down

0 comments on commit 5b134ac

Please sign in to comment.