From a54c774f95eea2e08d0eb184e1218c57e65b90b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ricardo=20Monta=C3=B1ana?= Date: Mon, 28 Nov 2022 09:47:38 +0100 Subject: [PATCH] Add debug output and precision --- fimdlp/CPPFImdlp.cpp | 34 ++++++++++++++++--------- fimdlp/CPPFImdlp.h | 9 +++++-- fimdlp/cfimdlp.pyx | 8 +++--- fimdlp/cppfimdlp.cpython-310-darwin.so | Bin 87232 -> 90872 bytes fimdlp/mdlp.py | 5 +--- sample.py | 4 +-- 6 files changed, 37 insertions(+), 23 deletions(-) diff --git a/fimdlp/CPPFImdlp.cpp b/fimdlp/CPPFImdlp.cpp index 0791b96..be825a6 100644 --- a/fimdlp/CPPFImdlp.cpp +++ b/fimdlp/CPPFImdlp.cpp @@ -3,35 +3,45 @@ #include namespace CPPFImdlp { - CPPFImdlp::CPPFImdlp() + CPPFImdlp::CPPFImdlp() : debug(false), precision(6) { + divider = pow(10, precision); + } + CPPFImdlp::CPPFImdlp(int precision, bool debug) : debug(debug), precision(precision) + { + divider = pow(10, precision); } CPPFImdlp::~CPPFImdlp() { } - std::vector CPPFImdlp::cutPoints(std::vector &X, std::vector &y) + std::vector CPPFImdlp::cutPoints(std::vector &X, std::vector &y) { - std::vector cutPts; - double antx; - // int anty; + std::vector cutPts; + float antx, cutPoint; + int anty; std::vector indices = sortIndices(X); antx = X.at(indices[0]); - // anty = y.at(indices[0]); + anty = y.at(indices[0]); for (auto index = indices.begin(); index != indices.end(); ++index) { // std::cout << X.at(*index) << " -> " << y.at(*index) << " // "; // Definition 2 Cut points are always on boundaries - // if (y.at(*index) != anty && antx < X.at(*index)) + if (y.at(*index) != anty && antx < X.at(*index)) // Weka implementation - if (antx < X.at(*index)) + // if (antx < X.at(*index)) { - // std::cout << "* (" << X.at(*index) << ", " << antx << ") // "; - cutPts.push_back((X.at(*index) + antx) / 2); - // anty = y.at(*index); + cutPoint = round((X.at(*index) + antx) / 2 * divider) / divider; + if (debug) + { + std::cout << "Cut point: " << (antx + X.at(*index)) / 2 << " //"; + std::cout << X.at(*index) << " -> " << y.at(*index) << " anty= " << anty; + std::cout << "* (" << X.at(*index) << ", " << antx << ")=" << ((X.at(*index) + antx) / 2) << std::endl; + } + cutPts.push_back(cutPoint); } antx = X.at(*index); + anty = y.at(*index); } - // std::cout << std::endl; return cutPts; } std::vector CPPFImdlp::sortIndices(std::vector &X) diff --git a/fimdlp/CPPFImdlp.h b/fimdlp/CPPFImdlp.h index 7c01eb1..21febb8 100644 --- a/fimdlp/CPPFImdlp.h +++ b/fimdlp/CPPFImdlp.h @@ -8,12 +8,17 @@ namespace CPPFImdlp class CPPFImdlp { private: - std::vector sortIndices(std::vector &); + bool debug; + int precision; + float divider; + std::vector + sortIndices(std::vector &); public: CPPFImdlp(); + CPPFImdlp(int, bool debug = false); ~CPPFImdlp(); - std::vector cutPoints(std::vector &, std::vector &); + std::vector cutPoints(std::vector &, std::vector &); }; } #endif \ No newline at end of file diff --git a/fimdlp/cfimdlp.pyx b/fimdlp/cfimdlp.pyx index 33f7542..64ab59a 100644 --- a/fimdlp/cfimdlp.pyx +++ b/fimdlp/cfimdlp.pyx @@ -1,16 +1,18 @@ # distutils: language = c++ # cython: language_level = 3 from libcpp.vector cimport vector +from libcpp cimport bool cdef extern from "CPPFImdlp.h" namespace "CPPFImdlp": cdef cppclass CPPFImdlp: CPPFImdlp() except + - vector[double] cutPoints(vector[float]&, vector[int]&) + CPPFImdlp(int, bool) except + + vector[float] cutPoints(vector[float]&, vector[int]&) cdef class CFImdlp: cdef CPPFImdlp *thisptr - def __cinit__(self): - self.thisptr = new CPPFImdlp() + def __cinit__(self, precision=6, debug=False): + self.thisptr = new CPPFImdlp(precision, debug) def __dealloc__(self): del self.thisptr def cut_points(self, X, y): diff --git a/fimdlp/cppfimdlp.cpython-310-darwin.so b/fimdlp/cppfimdlp.cpython-310-darwin.so index 633001c08344f95056eec601941ae5d296c33a5e..e960773f11bfa29c7431a27729f0b311ec5b75b9 100755 GIT binary patch literal 90872 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�M(QNodf}biEr>*1O9O8-GOL-g8%t{3xKtc74Qgbnay%

a)U0_elJ>al9y49X<)#)h?}78~)WXz@fEI!*W~!BQ0Sy zOSL;Mm@&g!nBC-Z!Kg9L{B)b#BhkG~hSW8F0bNH|<9TgW{D^urGc#LuInKp%RU3p1 z57nLz8zJ=`vzi^(!GI_1N$IvdBa)a zx|Yx-%M9t@VjRt>I139RwRI9qm`<8p8?@An8gY$h8pX#l-mGerhxK8#0P1=bE*MGN z(@oFE#(Jc1twWmx;;x;96&Js0OP!Wj`#wsIbw=s)qHkAw*ifxXkBgjLEoP~ObZ;egK$<`Mq`4au^46z&N( z6xMrv!SJ$?_Aw)u6_59fA2$-$6>0W1a;$x{mUlX9x_sIFg6n&~P<-#V4gQ6q`)swn zlWxCl{O^5?`FB4Von)zNtlVkYi@s#6-08Az*LgF$yZgVt1HpPO-++LL{y)8P|Mw<+ zKGjtI_wA#WF|1>EAEk{=hPnoivB?1Q_k(wHPrAwQA8f;RU4D0Cgi_0IW0%5i>{75D zP-B+@dnCGr&wpc=;>0}(V+Z1Y-i7Xd2SVNTIN2|Yu;mtCU>Z9V^m}l${>)f|8#@#k X-y2Slj