From 52f2fa76189b4272a2c40b3575f1305e8fcab061 Mon Sep 17 00:00:00 2001 From: Guillaume Horel Date: Thu, 30 Nov 2023 21:57:47 -0500 Subject: cleanups --- pyisda/credit_index.pyx | 48 +++++++++++++++++++++++------------------------- 1 file 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 = self._curves[i].get() - recovery_rate = (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 = self._curves[i].get() + recovery_rate = (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 -- cgit v1.2.3-70-g09d2