diff options
| -rw-r--r-- | pyisda/credit_index.pyx | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/pyisda/credit_index.pyx b/pyisda/credit_index.pyx index eb0c32e..6f52651 100644 --- a/pyisda/credit_index.pyx +++ b/pyisda/credit_index.pyx @@ -362,6 +362,7 @@ cdef class CreditIndex(CurveList): vector[double] h pair[TContingentLeg_ptr,TFeeLeg_ptr] legs int i = get_maturity_index(maturity_c, self._maturities) + if i == -1: legs = get_legs(maturity_c, self.start_date) else: @@ -373,10 +374,10 @@ cdef class CreditIndex(CurveList): if mask == 0: raise ValueError("maturity is not correct") h = vector[double](self.T.size()) - - r = pv(self._curves, self.base_date, step_in_date_c, cash_settle_date_c, - yc._thisptr.get(), legs, recovery_rate, fixed_rate, - self._weights, epsilon, h, self.T, mask) + with nogil: + r = pv(self._curves, self.base_date, step_in_date_c, cash_settle_date_c, + yc._thisptr.get(), legs, recovery_rate, fixed_rate, + self._weights, epsilon, h, self.T, mask) if i == -1: free(legs.first) JpmcdsFeeLegFree(legs.second) |
