diff options
| author | Guillaume Horel <guillaume.horel@gmail.com> | 2023-11-30 21:57:47 -0500 |
|---|---|---|
| committer | Guillaume Horel <guillaume.horel@gmail.com> | 2023-11-30 21:57:47 -0500 |
| commit | 52f2fa76189b4272a2c40b3575f1305e8fcab061 (patch) | |
| tree | 7e1bb3e3e873f8c1eb7a4d672c0bc916367fff60 | |
| parent | 9715ba0746b5d48c7fc1cb249b796a71f1ff78ae (diff) | |
| download | pyisda-52f2fa76189b4272a2c40b3575f1305e8fcab061.tar.gz | |
cleanups
| -rw-r--r-- | pyisda/credit_index.pyx | 48 |
1 files changed, 23 insertions, 25 deletions
diff --git a/pyisda/credit_index.pyx b/pyisda/credit_index.pyx index 428fea9..f1cb621 100644 --- a/pyisda/credit_index.pyx +++ b/pyisda/credit_index.pyx @@ -498,10 +498,9 @@ cdef class CreditIndex(CurveList): TDate cash_settle_date_c = pydate_to_TDate(cash_settle_date) TDate maturity_c = pydate_to_TDate(maturity) TDate maturity_short_c - pair[TContingentLeg_ptr, TFeeLeg_ptr] legs_short - pair[TContingentLeg_ptr, TFeeLeg_ptr] legs_long + pair[TContingentLeg_ptr, TFeeLeg_ptr] legs_long, legs_short TDateInterval ivl - int i + Py_ssize_t i double carry double cl_pv_long, cl_pv_short, fl_pv_long, fl_pv_short np.npy_intp n = self._curves.size() @@ -569,28 +568,27 @@ cdef class CreditIndex(CurveList): TCurve* sc double* recovery_rate - with nogil: - with parallel(): - cl = JpmcdsCdsContingentLegMake(self._start_date, - maturity_c, - 1., - True) - cl_pv = 0.0 - for i in prange(self._curves.size()): - sc = <TCurve*>self._curves[i].get() - recovery_rate = <double*>(<char*>sc + self.offset_recovery_rates[i]) - # FIXME: do something better - if isnan(deref(recovery_rate)): - preinc(recovery_rate) - JpmcdsContingentLegPV(cl, - self.base_date, - cash_settle_date_c, - step_in_date_c, - yc.get_TCurve(), - sc, - deref(recovery_rate), - &cl_pv) - r += self._weights[i] * cl_pv + with nogil, parallel(): + cl = JpmcdsCdsContingentLegMake(self._start_date, + maturity_c, + 1., + True) + cl_pv = 0.0 + for i in prange(self._curves.size()): + sc = <TCurve*>self._curves[i].get() + recovery_rate = <double*>(<char*>sc + self.offset_recovery_rates[i]) + # FIXME: do something better + if isnan(deref(recovery_rate)): + preinc(recovery_rate) + JpmcdsContingentLegPV(cl, + self.base_date, + cash_settle_date_c, + step_in_date_c, + yc.get_TCurve(), + sc, + deref(recovery_rate), + &cl_pv) + r += self._weights[i] * cl_pv free(cl) return r |
