diff options
| author | Guillaume Horel <guillaume.horel@gmail.com> | 2017-02-23 15:36:08 -0500 |
|---|---|---|
| committer | Guillaume Horel <guillaume.horel@gmail.com> | 2017-02-23 15:36:08 -0500 |
| commit | 31cf1177aa62378f6568dc16f09f44707a61d90a (patch) | |
| tree | a7ca7ef0e458e6f832e4eef834fec29a7a45d19b /cpp_layer/curve.hpp | |
| parent | 18cc63b1f3ebabdb2598ceababbc58ec51082d53 (diff) | |
| download | pyisda-31cf1177aa62378f6568dc16f09f44707a61d90a.tar.gz | |
no need for cpp_layer
Diffstat (limited to 'cpp_layer/curve.hpp')
| -rw-r--r-- | cpp_layer/curve.hpp | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/cpp_layer/curve.hpp b/cpp_layer/curve.hpp deleted file mode 100644 index 5d1720d..0000000 --- a/cpp_layer/curve.hpp +++ /dev/null @@ -1,77 +0,0 @@ -#include <isda/tcurve.h> -#include <isda/cxzerocurve.h> -#include <vector> -#include <memory> - -typedef long TDate; - -class CurveObject { -public: - CurveObject(TDate baseDate, std::vector<TDate> dates, std::vector<double> rates, - double basis, long dayCountConv) { - _ptr = JpmcdsMakeTCurve(baseDate, dates.data(), rates.data(), dates.size(), - basis, dayCountConv); - } - CurveObject(TCurve* ptr) { - _ptr = ptr; - } - CurveObject(const CurveObject& other) { - _ptr = JpmcdsCopyCurve(other._ptr); - } - CurveObject(CurveObject&& other) : _ptr(other._ptr) { - other._ptr = nullptr; - } - CurveObject& operator=(const CurveObject& other) { - if( this != &other) { - JpmcdsFreeTCurve(_ptr); - _ptr = JpmcdsCopyCurve(other._ptr); - } - return *this; - } - CurveObject& operator=(CurveObject&& other) { - if( this != &other) { - JpmcdsFreeTCurve(_ptr); - _ptr = other._ptr; - other._ptr = nullptr; - } - return *this; - } - - TCurve* data() { - return _ptr; - } - typedef TRatePt* iterator; - typedef const TRatePt* const_iterator; - iterator begin() { return _ptr->fArray; } - iterator end() {return &_ptr->fArray[_ptr->fNumItems];} - 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); - } - } -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); -} - -std::shared_ptr<TCurve>& make_shared(TCurve* ptr) { - return std::shared_ptr<TCurve>(ptr, jpmcdsFreeTCurve); -} |
