diff options
| author | Guillaume Horel <guillaume.horel@gmail.com> | 2023-01-24 16:18:52 -0500 |
|---|---|---|
| committer | Guillaume Horel <guillaume.horel@gmail.com> | 2023-01-24 16:18:52 -0500 |
| commit | d21de8c509414f15e6878aee27e0450bfcf63418 (patch) | |
| tree | d434e774388da92032df6a93975e9c52b2c5ba20 | |
| parent | 16dc01f3d6b74ae871848e0cff0e426b7a6f1476 (diff) | |
| download | pyisda-d21de8c509414f15e6878aee27e0450bfcf63418.tar.gz | |
default to version 1
| -rw-r--r-- | pyisda/curve.pyx | 39 |
1 files changed, 10 insertions, 29 deletions
diff --git a/pyisda/curve.pyx b/pyisda/curve.pyx index 97c642b..6e3b452 100644 --- a/pyisda/curve.pyx +++ b/pyisda/curve.pyx @@ -117,7 +117,7 @@ cdef class Curve(object): self.buf.reset(curve, char_free) @classmethod - def from_bytes(cls, object state, bint compressed=True, int version=0): + def from_bytes(cls, object state, bint compressed=True): cdef: Curve instance = cls.__new__(cls) Py_buffer* py_buf @@ -155,11 +155,8 @@ cdef class Curve(object): curve = <char*>malloc(size + sizeof(TRatePt*)) memcpy(curve + sizeof(TRatePt*), src, size) state_size = size - if version == 0: - instance.buf_size = fixup(curve) - elif version == 1: - (<TCurve*>curve).fArray = <TRatePt*>(curve + sizeof(TCurve)) - instance.buf_size = state_size + sizeof(TRatePt*) + (<TCurve*>curve).fArray = <TRatePt*>(curve + sizeof(TCurve)) + instance.buf_size = state_size + sizeof(TRatePt*) instance.buf.reset(curve, char_free) return instance @@ -865,33 +862,17 @@ cdef class SpreadCurve(Curve): curve.fArray[i].fRate = JPMCDS_MAX_RATE @classmethod - def from_bytes(cls, object state, const bint compressed=False, version=0): + def from_bytes(cls, object state, const bint compressed=False): cdef: - SpreadCurve instance = super().from_bytes(state, compressed, version) + SpreadCurve instance = super().from_bytes(state, compressed) char* cursor = instance.buf.get() TCurve* curve = <TCurve*>cursor int n = curve.fNumItems - int ticker_len - if version == 1: - instance.offset_recovery_rates = sizeof(TCurve) + n * sizeof(TRatePt) - cursor += sizeof(TCurve) + n * (sizeof(TRatePt) + sizeof(double)) - instance.defaulted = deref(<TDate*>cursor) - cursor += sizeof(TDate) - instance.offset_name = cursor - instance.buf.get() - elif version == 0: - cursor += sizeof(TCurve) + n * sizeof(TRatePt) - memmove(cursor, cursor + 4, n * sizeof(double)) - instance.offset_recovery_rates = sizeof(TCurve) + n * sizeof(TRatePt) - cursor += n * sizeof(double) - memmove(cursor, cursor + 4, sizeof(TDate)) - instance.defaulted = deref(<TDate*>cursor) - cursor += sizeof(TDate) - instance.offset_name = cursor - instance.buf.get() - cursor[0] = deref(cursor + 4) - cursor[1] = deref(cursor + 8) - strcpy(cursor + 2, cursor + 12) - ticker_len = strlen(cursor + 2) - instance.buf_size = cursor - instance.buf.get() + 2 + ticker_len + 1 + instance.offset_recovery_rates = sizeof(TCurve) + n * sizeof(TRatePt) + cursor += sizeof(TCurve) + n * (sizeof(TRatePt) + sizeof(double)) + instance.defaulted = deref(<TDate*>cursor) + cursor += sizeof(TDate) + instance.offset_name = cursor - instance.buf.get() return instance |
