From 64187dbf722a5c58d175b9e687326d6d5cf06b97 Mon Sep 17 00:00:00 2001 From: Guillaume Horel Date: Thu, 4 May 2017 15:57:22 -0400 Subject: test for nan --- pyisda/curve.pyx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pyisda/curve.pyx b/pyisda/curve.pyx index 730e066..c188b1a 100644 --- a/pyisda/curve.pyx +++ b/pyisda/curve.pyx @@ -1,4 +1,4 @@ -from libc.stdlib cimport malloc, free +from libc.stdlib cimport malloc, free, calloc from libc.string cimport memcpy from libc.math cimport log1p from libcpp.vector cimport vector @@ -384,12 +384,15 @@ cdef class SpreadCurve(Curve): cdef int n_dates = len(end_dates) cdef TDate* end_dates_c = malloc(n_dates * sizeof(TDate)) cdef TCurve* curve = NULL + cdef TBoolean* includes = calloc(n_dates, sizeof(TBoolean)) cdef size_t i if cash_settle_date_c < yc._thisptr.get().fBaseDate: raise ValueError("cash_settle_date: {0} is anterior to yc's base_date: {1}". format(cash_settle_date, yc.base_date)) for i, d in enumerate(end_dates): end_dates_c[i] = pydate_to_TDate(d) + if upfront_rates[i] == upfront_rates[i]: + includes[i] = 1 cdef TStubMethod stub_type if JpmcdsStringToStubMethod(b"f/s", &stub_type) != 0: @@ -404,7 +407,7 @@ cdef class SpreadCurve(Curve): end_dates_c, &coupon_rates[0], &upfront_rates[0], - NULL, + includes, &recovery_rates[0], pay_accrued_on_default, NULL, -- cgit v1.2.3-70-g09d2