summaryrefslogtreecommitdiffstats
path: root/cpp_layer
diff options
context:
space:
mode:
Diffstat (limited to 'cpp_layer')
-rw-r--r--cpp_layer/curve.hpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/cpp_layer/curve.hpp b/cpp_layer/curve.hpp
index 8e54216..e4fddb8 100644
--- a/cpp_layer/curve.hpp
+++ b/cpp_layer/curve.hpp
@@ -1,3 +1,5 @@
+#include <isda/tcurve.h>
+#include <isda/cxzerocurve.h>
#include <vector>
typedef long TDate;
@@ -32,6 +34,22 @@ public:
}
return *this;
}
+
+ TCurve* data() {
+ return _ptr;
+ }
+
+ int size() {
+ return _ptr->fNumItems;
+ }
+ TDate BaseDate() {
+ return _ptr->fBaseDate;
+ }
+ double Basis() {
+ return _ptr->fBasis;
+ }
+ double ForwardZeroPrice(TDate d2, TDate d1);
+ double ForwardZeroPrice(TDate d2);
~CurveObject() {
if(_ptr != nullptr) {
JpmcdsFreeTCurve(_ptr);
@@ -40,3 +58,11 @@ public:
private:
TCurve* _ptr;
};
+
+double CurveObject::ForwardZeroPrice(TDate d2, TDate d1) {
+ return JpmcdsForwardZeroPrice(_ptr, d1, d2);
+}
+
+double CurveObject::ForwardZeroPrice(TDate d2) {
+ return JpmcdsForwardZeroPrice(_ptr, _ptr->fBaseDate, d2);
+}