diff --git a/src/cppmdlp b/src/cppmdlp index 32a6fd9..964555d 160000 --- a/src/cppmdlp +++ b/src/cppmdlp @@ -1 +1 @@ -Subproject commit 32a6fd9ba0553da691ed9f5b2011bef48cd33d6a +Subproject commit 964555de20175f4c1cd9a2d9525fa1bcca783322 diff --git a/src/fimdlp/cfimdlp.pyx b/src/fimdlp/cfimdlp.pyx index 8892e8b..8d1a630 100644 --- a/src/fimdlp/cfimdlp.pyx +++ b/src/fimdlp/cfimdlp.pyx @@ -3,18 +3,22 @@ from libcpp.vector cimport vector from libcpp.string cimport string +cdef extern from "limits.h": + cdef int INT_MAX cdef extern from "../cppmdlp/CPPFImdlp.h" namespace "mdlp": ctypedef float precision_t cdef cppclass CPPFImdlp: CPPFImdlp() except + + CPPFImdlp(int, int) except + CPPFImdlp& fit(vector[precision_t]&, vector[int]&) + int get_depth() vector[precision_t] getCutPoints() string version() cdef class CFImdlp: cdef CPPFImdlp *thisptr - def __cinit__(self): - self.thisptr = new CPPFImdlp() + def __cinit__(self, int min_length=3, int max_depth=INT_MAX): + self.thisptr = new CPPFImdlp(min_length, max_depth) def __dealloc__(self): del self.thisptr def fit(self, X, y): @@ -24,6 +28,8 @@ cdef class CFImdlp: return self.thisptr.getCutPoints() def get_version(self): return self.thisptr.version() + def get_depth(self): + return self.thisptr.get_depth() def __reduce__(self): return (CFImdlp, ())