summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--legs.pyx20
1 files changed, 16 insertions, 4 deletions
diff --git a/legs.pyx b/legs.pyx
index 27bcf19..f45dce1 100644
--- a/legs.pyx
+++ b/legs.pyx
@@ -21,6 +21,18 @@ cdef class ContingentLeg:
if self._thisptr is not NULL:
free(self._thisptr)
+ def pv(self, today, step_in_date, value_date, ZeroCurve zc, SpreadCurve sc,
+ double recovery_rate):
+ cdef TDate today_c = pydate_to_TDate(today)
+ cdef TDate step_in_date_c = pydate_to_TDate(step_in_date)
+ cdef TDate value_date_c = pydate_to_TDate(value_date)
+ cdef double pv
+ if JpmcdsContingentLegPV(self._thisptr, today_c, value_date_c, step_in_date_c,
+ zc._thisptr, sc._thisptr, recovery_rate, &pv) == 0:
+ return pv
+ else:
+ raise ValueError
+
cdef class FeeLeg:
def __cinit__(self, start_date, end_date, TBoolean pay_accrued_on_default,
@@ -58,11 +70,11 @@ cdef class FeeLeg:
def pv(self, today, step_in_date, value_date, ZeroCurve zc, SpreadCurve sc,
TBoolean pay_accrued_at_start):
- cdef today_c = pydate_to_TDate(today)
- cdef step_in_date_c = pydate_to_TDate(step_in_date)
- cdef value_date_c = pydate_to_TDate(value_date)
+ cdef TDate today_c = pydate_to_TDate(today)
+ cdef TDate step_in_date_c = pydate_to_TDate(step_in_date)
+ cdef TDate value_date_c = pydate_to_TDate(value_date)
cdef double pv
- if JpmcdsFeeLegPV(self._thisptr, today, step_in_date, value_date,
+ if JpmcdsFeeLegPV(self._thisptr, today_c, step_in_date_c, value_date_c,
zc._thisptr, sc._thisptr, pay_accrued_at_start, &pv) == 0:
return pv
else: