summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pyisda/curve.pyx7
1 files 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 = <TDate*>malloc(n_dates * sizeof(TDate))
cdef TCurve* curve = NULL
+ cdef TBoolean* includes = <TBoolean*>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,