From 9715ba0746b5d48c7fc1cb249b796a71f1ff78ae Mon Sep 17 00:00:00 2001 From: Guillaume Horel Date: Thu, 30 Nov 2023 21:57:14 -0500 Subject: bugfix --- pyisda/credit_index.pyx | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/pyisda/credit_index.pyx b/pyisda/credit_index.pyx index 1d7db78..428fea9 100644 --- a/pyisda/credit_index.pyx +++ b/pyisda/credit_index.pyx @@ -517,12 +517,13 @@ cdef class CreditIndex(CurveList): self._start_date, self.cal_file.c_str()) legs_short = get_legs(maturity_short_c, self._start_date, self.cal_file.c_str()) - with nogil: + with nogil, parallel(): + fl_pv_short = cl_pv_short = fl_pv_long = cl_pv_long = 0.0 for i in prange(self._curves.size()): curve = (self._curves[i].get()) recovery_rate = (self._curves[i].get() + self.offset_recovery_rates[i]) JpmcdsContingentLegPV(legs_long.first, - self.base_date, + curve.fBaseDate, cash_settle_date_c, step_in_date_c, yc.get_TCurve(), @@ -530,7 +531,7 @@ cdef class CreditIndex(CurveList): deref(recovery_rate), &cl_pv_long) JpmcdsContingentLegPV(legs_short.first, - self.base_date, + curve.fBaseDate, cash_settle_date_c, step_in_date_c, yc.get_TCurve(), @@ -538,7 +539,7 @@ cdef class CreditIndex(CurveList): deref(recovery_rate), &cl_pv_short) JpmcdsFeeLegPV(legs_long.second, - self.base_date, + curve.fBaseDate, step_in_date_c, cash_settle_date_c, yc.get_TCurve(), @@ -546,19 +547,17 @@ cdef class CreditIndex(CurveList): True, &fl_pv_long) JpmcdsFeeLegPV(legs_short.second, - self.base_date, + curve.fBaseDate, step_in_date_c, cash_settle_date_c, yc.get_TCurve(), curve, True, &fl_pv_short) - r[i] = self._weights[i] * (cl_pv_long - cl_pv_short - (fl_pv_long - fl_pv_short) * fixed_rate) - + r[i] = self._weights[i] * (carry + cl_pv_long - cl_pv_short - (fl_pv_long - fl_pv_short ) * fixed_rate) return arr - def protection_leg(self, step_in_date, cash_settle_date, maturity, YieldCurve yc not None): cdef: TDate step_in_date_c = pydate_to_TDate(step_in_date) -- cgit v1.2.3-70-g09d2