From 2f7470e5900d1f1c52218755a860e6c0bf80d32a Mon Sep 17 00:00:00 2001 From: Hossein Moein Date: Fri, 2 Dec 2022 15:34:30 -0500 Subject: [PATCH 1/3] Implemented LinearFitVisitor --- include/DataFrame/DataFrameStatsVisitors.h | 109 ++++++++++++++++++++- test/dataframe_tester_2.cc | 59 +++++++++++ test/dataframe_tester_output.txt | 32 +++--- 3 files changed, 180 insertions(+), 20 deletions(-) diff --git a/include/DataFrame/DataFrameStatsVisitors.h b/include/DataFrame/DataFrameStatsVisitors.h index 83763fbbc..a093f5a54 100644 --- a/include/DataFrame/DataFrameStatsVisitors.h +++ b/include/DataFrame/DataFrameStatsVisitors.h @@ -3273,6 +3273,7 @@ struct PolyFitVisitor { coeffs_[i] = coeffs_[i] / eq_mat[index_(i, i, nrows)]; } + y_fits_.reserve(col_s); for (size_type i = 0; i < col_s; ++i) { value_type pred = 0; @@ -3281,6 +3282,9 @@ struct PolyFitVisitor { const value_type w = weights_(*(idx_begin + i), i); + // y fits at given x points + // + y_fits_.push_back(pred); residual_ += ((*(y_begin + i) - pred) * w) * ((*(y_begin + i) - pred) * w); } @@ -3292,6 +3296,8 @@ struct PolyFitVisitor { inline result_type &get_result () { return (coeffs_); } inline value_type get_slope () const { return (coeffs_[0]); } inline value_type get_residual () const { return (residual_); } + inline const result_type &get_y_fits () const { return (y_fits_); } + inline result_type &get_y_fits () { return (y_fits_); } explicit PolyFitVisitor(size_type d, @@ -3301,6 +3307,7 @@ struct PolyFitVisitor { private: + result_type y_fits_ { }; result_type coeffs_ { }; value_type residual_ { 0 }; const size_type degree_; @@ -3337,12 +3344,16 @@ struct LogFitVisitor { const size_type col_s = std::distance(x_begin, x_end); + y_fits_.reserve(col_s); for (size_type i = 0; i < col_s; ++i) { const value_type pred = poly_fit_.get_result()[0] + poly_fit_.get_result()[1] * std::log(*(x_begin + i)); const value_type w = weights_(*(idx_begin + i), i); + // y fits at given x points + // + y_fits_.push_back(pred); residual_ += ((*(y_begin + i) - pred) * w) * ((*(y_begin + i) - pred) * w); } @@ -3355,6 +3366,8 @@ struct LogFitVisitor { inline result_type &get_result () { return (poly_fit_.get_result()); } inline value_type get_slope () const { return (poly_fit_.get_slope()); } inline value_type get_residual () const { return (residual_); } + inline const result_type &get_y_fits () const { return (y_fits_); } + inline result_type &get_y_fits () { return (y_fits_); } explicit LogFitVisitor(weight_func w_func = @@ -3363,6 +3376,7 @@ struct LogFitVisitor { private: + result_type y_fits_ { }; PolyFitVisitor poly_fit_ { }; weight_func weights_; value_type residual_ { 0 }; @@ -3381,9 +3395,6 @@ struct ExponentialFitVisitor { DEFINE_VISIT_BASIC_TYPES_3 - using weight_func = - std::function; - template inline void operator() (const K &, const K &, @@ -3410,10 +3421,12 @@ struct ExponentialFitVisitor { } // The slope (the the power of exp) of best fit line + // slope_ = (col_s * sum_xy - sum_x * sum_y) / (col_s * sum_x2 - sum_x * sum_x); // The intercept of best fit line + // intercept_ = (sum_y - slope_ * sum_x) / col_s; const value_type prefactor = std::exp(intercept_); @@ -3424,6 +3437,7 @@ struct ExponentialFitVisitor { const value_type pred = prefactor * std::exp(x * slope_); // y fits at given x points + // y_fits_.push_back(pred); const value_type r = *(y_begin + i) - pred; @@ -3440,8 +3454,7 @@ struct ExponentialFitVisitor { intercept_ = 0; } inline void post () { } - inline const result_type & - get_result () const { return (y_fits_); } + inline const result_type &get_result () const { return (y_fits_); } inline result_type &get_result () { return (y_fits_); } inline value_type get_residual () const { return (residual_); } inline value_type get_slope () const { return (slope_); } @@ -3462,6 +3475,92 @@ using efit_v = ExponentialFitVisitor; // ---------------------------------------------------------------------------- +template::value, T>::type> +struct LinearFitVisitor { + + DEFINE_VISIT_BASIC_TYPES_3 + + template + inline void + operator() (const K &, const K &, + const H &x_begin, const H &x_end, + const H &y_begin, const H &y_end) { + + const size_type col_s = std::distance(x_begin, x_end); + + assert((col_s == size_type(std::distance(y_begin, y_end)))); + + value_type sum_x = 0; // Sum of all observed x + value_type sum_y = 0; // Sum of all observed y + value_type sum_x2 = 0; // Sum of all observed x squared + value_type sum_xy = 0; // Sum of all x times sum of all observed y + + for (size_type i = 0; i < col_s; ++i) { + const value_type x = *(x_begin + i); + const value_type y = *(y_begin + i); + + sum_x += x; + sum_y += y; + sum_xy += x * y; + sum_x2 += x * x; + } + + // The slope (the the power of exp) of best fit line + // + slope_ = (col_s * sum_xy - sum_x * sum_y) / + (sum_x2 * col_s - sum_x * sum_x); + + // The intercept of best fit line + // + intercept_ = (sum_x2 * sum_y - sum_x * sum_xy) / + (sum_x2 * col_s - sum_x * sum_x); + + y_fits_.reserve(col_s); + for (size_type i = 0; i < col_s; ++i) { + const value_type pred = slope_ * *(x_begin + i) + intercept_; + + // y fits at given x points + // + y_fits_.push_back(pred); + + const value_type r = *(y_begin + i) - pred; + + residual_ += r * r; + } + } + + inline void pre () { + + y_fits_.clear(); + residual_ = 0; + slope_ = 0; + intercept_ = 0; + } + inline void post () { } + inline const result_type &get_result () const { return (y_fits_); } + inline result_type &get_result () { return (y_fits_); } + inline value_type get_residual () const { return (residual_); } + inline value_type get_slope () const { return (slope_); } + inline value_type get_intercept () const { return (intercept_); } + + LinearFitVisitor() { } + +private: + + result_type y_fits_ { }; + value_type residual_ { 0 }; + value_type slope_ { 0 }; + value_type intercept_ { 0 }; +}; + +template +using linfit_v = LinearFitVisitor; + +// ---------------------------------------------------------------------------- + // LOcally WEighted Scatterplot Smoothing // A LOWESS function outputs smoothed estimates of dependent var (y) at the // given independent var (x) values. diff --git a/test/dataframe_tester_2.cc b/test/dataframe_tester_2.cc index 173e065c8..fc3386ea4 100644 --- a/test/dataframe_tester_2.cc +++ b/test/dataframe_tester_2.cc @@ -1559,12 +1559,16 @@ static void test_PolyFitVisitor() { auto result12 = df.single_act_visit("X1", "Y1", poly_v12).get_result(); auto actual1 = std::vector { 0.8, 5.6, -1 }; + auto actual1_y = + std::vector { 5.4, 8, 8.6, 7.2, 3.8 }; auto actual12 = std::vector { -1.97994, 6.99713, -1.14327 }; assert(std::fabs(poly_v1.get_residual() - 5.6) < 0.00001); for (size_t i = 0; i < result1.size(); ++i) assert(fabs(result1[i] - actual1[i]) < 0.00001); + for (size_t i = 0; i < poly_v1.get_y_fits().size(); ++i) + assert(fabs(poly_v1.get_y_fits()[i] - actual1_y[i]) < 0.01); assert(std::fabs(poly_v12.get_residual() - 0.70981) < 0.00001); for (size_t i = 0; i < result12.size(); ++i) @@ -1658,10 +1662,14 @@ static void test_LogFitVisitor() { df.single_act_visit("X1", "Y1", log_v1).get_result(); auto actual1 = std::vector { 6.98618, -0.403317 }; + auto actual1_y = + std::vector { 6.98618, 6.70662, 6.54309, 6.42706, 6.33706 }; assert(std::fabs(log_v1.get_residual() - 20.9372) < 0.0001); for (size_t i = 0; i < result1.size(); ++i) assert(fabs(result1[i] - actual1[i]) < 0.00001); + for (size_t i = 0; i < log_v1.get_y_fits().size(); ++i) + assert(fabs(log_v1.get_y_fits()[i] - actual1_y[i]) < 0.01); LogFitVisitor log_v2; auto result2 = @@ -1725,6 +1733,56 @@ static void test_ExponentialFitVisitor() { // ----------------------------------------------------------------------------- +static void test_LinearFitVisitor() { + + std::cout << "\nTesting LinearFitVisitor{ } ..." << std::endl; + + std::vector idx = + { 123450, 123451, 123452, 123453, 123454, 123455, 123456, + 123457, 123458, 123459, 123460, 123461, 123462, 123466, + 123467, 123468, 123469, 123470, 123471, 123472, 123473, + 123467, 123468, 123469, 123470, 123471, 123472, 123473, + 123467, 123468, 123469, 123470, 123471, 123472, 123473, + }; + MyDataFrame df; + + df.load_index(std::move(idx)); + df.load_column("X1", + { 1, 2, 3, 4, 5 }, + nan_policy::dont_pad_with_nans); + df.load_column("Y1", + { 6, 7, 8, 9, 3 }, + nan_policy::dont_pad_with_nans); + df.load_column("X2", + { 1, 2, 4, 6, 8 }, + nan_policy::dont_pad_with_nans); + df.load_column("Y2", + { 1, 3, 4, 5, 6 }, + nan_policy::dont_pad_with_nans); + + LinearFitVisitor lin_v1; + auto result1 = + df.single_act_visit("X1", "Y1", lin_v1).get_result(); + auto actual1 = + std::vector { 7.4, 7, 6.6, 6.2, 5.8 }; + + assert(std::fabs(lin_v1.get_residual() - 19.6) < 0.01); + for (size_t i = 0; i < result1.size(); ++i) + assert(fabs(result1[i] - actual1[i]) < 0.0001); + + linfit_v lin_v2; + auto result2 = + df.single_act_visit("X2", "Y2", lin_v2).get_result(); + auto actual2 = + std::vector { 1.73171, 2.37805, 3.67073, 4.96341, 6.2561 }; + + assert(std::fabs(lin_v2.get_residual() - 1.097561) < 0.00001); + for (size_t i = 0; i < result2.size(); ++i) + assert(fabs(result2[i] - actual2[i]) < 0.0001); +} + +// ----------------------------------------------------------------------------- + static void test_ExpoSmootherVisitor() { std::cout << "\nTesting ExpoSmootherVisitor{ } ..." << std::endl; @@ -4788,6 +4846,7 @@ int main(int, char *[]) { test_HurstExponentVisitor(); test_LogFitVisitor(); test_ExponentialFitVisitor(); + test_LinearFitVisitor(); test_ExpoSmootherVisitor(); test_HWExpoSmootherVisitor(); test_consolidate(); diff --git a/test/dataframe_tester_output.txt b/test/dataframe_tester_output.txt index ef0aba198..7d18249b9 100644 --- a/test/dataframe_tester_output.txt +++ b/test/dataframe_tester_output.txt @@ -751,12 +751,12 @@ col_3:1::15, col_str:1::11, col_4:1::22, -INDEX:1::123452, -col_1:1::3, -col_2:1::10, -col_3:1::17, -col_str:1::33, -col_4:1::24, +INDEX:1::123451, +col_1:1::2, +col_2:1::9, +col_3:1::16, +col_str:1::22, +col_4:1::23, Testing write(json) ... @@ -785,13 +785,10 @@ Testing Thread safety ... Testing View visitors ... Testing k-means visitor ... -1.54081876229 | 12.3779975132, 0.766429423621 | 9.34776193739, 0.455413356751 | 13.183251825, 3.68161078878 | 20.3481237204, 2.35425744809 | 10.9139359587, 0.613231973752 | 12.364624746, 1.94693471203 | 12.8171405043, 0.840922034797 | 9.41115051023, 0.95734730579 | 9.49469931487, 1.97015551877 | 8.89570840834, 0.458238675858 | 19.101984561, 0.869923011972 | 11.646262575, 4.87816630053 | 8.33695792175, 0.921539044558 | 10.9787428056, 1.98427978492 | 10.4619593119, 1.37603007069 | 19.4718669618, 0.569969260551 | 9.76362147103, 1.60606491009 | 8.97144761846, 0.423403937902 | 11.2998140608, 0.472892304832 | 18.3879587203, 4.33486051914 | 10.3958590128, 0.61651596336 | 8.79223302653, 0.709333471028 | 10.1578879873, 4.43210849644 | 11.6260528893, 1.0927858146 | 9.53206042213, 0.188054928458 | 23.7488315602, - - 1.17763942501 | 4.38928183597, 1.28493013344 | 6.35939017311, 0.240869258025 | 7.03164244336, 1.06446976862 | 5.76755888038, 1.85091480661 | 3.56601755836, 0.560800191803 | 3.94172421199, 0.204326020026 | 5.38053457013, 1.06227749902 | 3.32887892782, 0.767676157037 | 8.04083157094, 0.287658429308 | 3.90035765824, 0.549078572277 | 3.46521175036, 1.28557432634 | 4.02652216308, 1.3717432107 | 4.15135683906, 1.1666765887 | 4.21940782793, 1.88126693343 | 3.24503920767, 2.33162638935 | 3.61621194349, 0.88572948374 | 5.62811295615, 1.7815347027 | 6.39802154383, 0.482693103106 | 3.87937362627, 1.02200676131 | 5.82491379951, 2.30702542995 | 3.87702901921, 1.03305362898 | 2.95951458779, 1.32783017054 | 3.73183746736, 2.29782959738 | 2.95475595328, 0.581358895235 | 3.14196042234, 0.289052140622 | 4.21385549394, 0.616046410687 | 2.99549423288, 1.71229618928 | 2.65349923804, 0.0886306586577 | 5.54720096044, 0.542110934517 | 5.27291489362, 0.752293305347 | 2.81746035796, 0.670098941575 | 2.96202919149, 2.47145131742 | 3.79801401632, 0.28133750636 | 4.60208804416, 1.35267797996 | 4.28292648693, 0.364540243969 | 6.3569781481, 2.20812323428 | 5.07805996318, 2.12137568015 | 6.6747098452, 0.166353203758 | 4.03550302661, 0.620417494294 | 4.95164596018, 0.26121846435 | 2.82614274714, 3.22665353121 | 7.54935839024, 3.92625567711 | 6.96830309826, 0.60837176819 | 3.31354097698, 1.64989967559 | 3.30217349962, 0.445023478607 | 3.72288458019, 2.0682043428 | 5.01261948869, 2.63356686713 | 4.72964211396, 0.819647716489 | 3.82130603233, 0.171170256461 | 3.2017898339, 0.524251231048 | 4.09041765945, 0.724765244843 | 3.1598983741, 0.4697885866 | 3.15802002661, 0.52324978008 | 5.96912943032, 0.893823084826 | 5.45683921096, 0.722953832927 | 3.62714869847, 0.704881878481 | 4.02419056834, 4.1602516774 | 6.33314126649, 0.500534521353 | 3.02627453718, 0.583126817415 | 5.96386076994, 0.466048124604 | 3.46294257099, 0.179031759309 | 5.26607584377, 0.45724210253 | 3.11801722202, 0.862164525581 | 2.92851391572, 0.173314113277 | 3.72735933464, 0.538569287115 | 4.92580493638, 0.390680263449 | 2.79462407244, 1.15433944412 | 3.57435442163, 0.0732141894855 | 2.93116741568, 0.263645372967 | 3.57756419709, 0.391982292778 | 4.18362781814, 0.594217196889 | 3.53179940652, 2.14109421305 | 6.55987520748, 3.83639899335 | 4.86797816393, 0.348746070584 | 6.3700253128, 2.12549239953 | 4.98282617037, 2.36752634548 | 3.22792442933, 1.22119375487 | 2.77697171188, 1.00979686636 | 5.29703984899, 0.833895274719 | 6.62909042771, 0.347141870601 | 4.40659287289, 5.08221553469 | 6.10303415513, 0.964895788694 | 5.44053902503, 1.08756545279 | 4.8789513143, 2.23999505903 | 4.3166879081, 0.473521329208 | 2.98710598996, 0.328338724717 | 3.63097391706, 1.23470920872 | 6.7973727924, 1.9035288097 | 3.24610611687, 1.1784536745 | 3.94056489811, 0.411994713837 | 2.91333974149, 0.489683388036 | 3.24695467582, 3.31228444368 | 5.16608807043, 2.15783928424 | 6.64157896073, 0.443948417653 | 3.90620905535, 0.857821288928 | 2.99368138591, 1.49978921496 | 4.82356273722, 0.872133033001 | 3.24174085834, 0.671829924207 | 7.0297101486, 1.05445859205 | 5.57595950789, 2.05900637254 | 6.26457094003, 1.57523003841 | 4.52409713881, 1.86723700435 | 3.43962071765, 1.02665748354 | 2.88684218402, 0.615864835786 | 2.79588577333, 3.19936855967 | 6.28220288061, 2.24047550738 | 5.53008426524, 2.67776787413 | 4.6979181139, 0.691843888188 | 3.21307396541, 0.571058813624 | 2.73530696092, 1.43753751622 | 5.45398911799, 1.24904449588 | 4.59098415211, 1.54683188803 | 6.95696824446, 2.47779777105 | 2.93320405304, 0.781522157919 | 2.91004051631, 0.301246739639 | 5.26895903219, 0.306685834123 | 4.60887518719, 0.265632061612 | 3.26882144595, 1.19966487878 | 3.6535443819, 0.188136710265 | 4.14584814624, 2.33527964251 | 5.80344863563, 1.13784018644 | 3.42992972216, 0.91284645791 | 2.98845131819, 1.0433126427 | 3.16354583136, 1.26296583529 | 3.19865984381, 0.505621332362 | 4.19219777501, 0.931137763214 | 5.40185803252, 2.04991447833 | 4.62938819872, 1.13690449509 | 4.79651539634, 0.351554660116 | 2.8958337638, 1.51567327906 | 4.55829133501, 0.649572699232 | 4.88949726483, 1.33977020783 | 4.82209780777, 2.23734997143 | 3.3258080338, 0.952472446905 | 5.97617136259, 2.57089117035 | 5.69604486922, 1.37084925259 | 5.01281981416, 0.271180017839 | 3.54518484945, 0.856736542786 | 3.53818746945, 1.37977612576 | 4.25200938943, 0.938933657517 | 6.26438414846, 1.17952710259 | 2.88790645751, 0.192888783336 | 5.09273429578, 1.49949839775 | 2.95199691542, 0.84897400017 | 2.91089046258, 1.22377461382 | 4.42589120179, 1.417365782 | 4.06896381627, -14.4078912631 | 1.64264269874, 13.594934717 | 5.95077654393, 16.4959253192 | 1.97264931319, 12.208321242 | 0.516538018932, 9.22794863419 | 5.23499591345, 9.91394556678 | 1.17445635113, 11.2219801324 | 0.497749565137, 11.7552028282 | 1.56562428674, 9.60547805235 | 2.87565801039, 18.589076052 | 1.05392224519, 14.892785513 | 1.66165089796, 18.0532898611 | 1.83213697413, 10.0767516465 | 0.853622379735, 13.8654008849 | 1.15348718526, 21.299910856 | 0.175289746186, 10.0890500803 | 0.316811426954, 10.2076269439 | 0.966166300131, 19.6188474702 | 1.81215314571, 14.8509606357 | 1.45522893062, 28.1824975639 | 0.141294041196, +1.54081876229 | 12.3779975132, 0.766429423621 | 9.34776193739, 0.455413356751 | 13.183251825, 3.68161078878 | 20.3481237204, 2.35425744809 | 10.9139359587, 0.613231973752 | 12.364624746, 1.94693471203 | 12.8171405043, 0.840922034797 | 9.41115051023, 0.95734730579 | 9.49469931487, 1.97015551877 | 8.89570840834, 0.458238675858 | 19.101984561, 0.869923011972 | 11.646262575, 4.87816630053 | 8.33695792175, 0.921539044558 | 10.9787428056, 1.98427978492 | 10.4619593119, 1.37603007069 | 19.4718669618, 0.569969260551 | 9.76362147103, 1.60606491009 | 8.97144761846, 0.423403937902 | 11.2998140608, 0.472892304832 | 18.3879587203, 4.33486051914 | 10.3958590128, 0.61651596336 | 8.79223302653, 0.709333471028 | 10.1578879873, 4.43210849644 | 11.6260528893, 1.0927858146 | 9.53206042213, 0.188054928458 | 23.7488315602, 4.39684180804 | 1.12423086285, 5.32645061833 | 0.258879189718, 6.56770612254 | 1.88980716816, 4.97200415894 | 0.407118210797, 6.03564845001 | 0.751012545119, 2.94035843782 | 0.314775456319, 2.85547872035 | 2.51220235177, 3.60858208918 | 2.8089375563, 3.89964990999 | 0.856374176369, 3.02735723184 | 0.226780241358, 3.11375978646 | 1.37885008492, 3.23563684881 | 1.32453935853, 4.74247908133 | 2.89363607052, 3.96514946019 | 0.387975516108, 4.4204216991 | 0.657322986031, 5.4094749177 | 0.376668387939, 3.3948416627 | 0.163593376023, 3.21957447237 | 2.63364446483, 5.92619382132 | 1.84933460179, 3.84539096788 | 0.297100044069, 4.590537026 | 2.53226329642, 3.06375316017 | 1.05043548764, 5.07407491355 | 2.45226502214, 6.28652144612 | 0.975087587592, 6.58207129189 | 0.355147337604, 3.72469838853 | 1.61156994808, 6.52684709038 | 1.96726515223, 2.9631288797 | 0.857151949309, 2.97138456376 | 0.629994862143, 3.05207906639 | 0.495742043608, 5.90181207884 | 1.652460374, 2.89162903925 | 1.03099415637, 4.2123939732 | 2.11995054879, 2.75375629284 | 1.33757933345, 4.7521600173 | 1.26866382559, 9.20566066884 | 0.635108361464, 3.35937247059 | 0.237096980877, 6.7470372648 | 2.90489612946, 5.56776407333 | 1.45780412902, 2.97283115952 | 0.768662732119, 5.29033890732 | 1.46684775613, 3.33442909318 | 1.41208702577, 3.3456478028 | 3.15791207885, 6.26122042314 | 0.228863156957, 5.34911249975 | 0.310107651423, 4.0839718193 | 0.433244844548, 5.58341660812 | 0.652454865698, 3.4840279873 | 0.588712471498, 5.48604913149 | 1.29273094631, 2.69170609551 | 0.557907104774, 4.07594518419 | 0.0794660417283, 4.22286388466 | 2.27121671294, 2.78656421487 | 1.09789223697, 3.68130821292 | 0.42822664425, 3.77323745304 | 2.3901193323, 5.99835163287 | 1.64461791151, 4.28719972597 | 0.741702952331, 3.48535661343 | 0.547992783008, 2.91570692268 | 0.297979629089, 4.22482418509 | 1.60766663614, 2.87894041417 | 0.210360178912, 3.81005611699 | 2.09964844162, 5.79399808209 | 0.665058152339, 4.83290584104 | 0.917001805312, 4.54824347301 | 1.28630290164, 2.7904401791 | 0.303055664379, 4.08422388761 | 1.52920833284, 4.597008972 | 0.552201184549, 3.44381095773 | 0.166042909241, 3.50438824207 | 1.92655877373, 4.00278453337 | 0.724330335054, 4.13312479796 | 3.83162584598, 2.98368298402 | 0.248108338937, 2.99413350468 | 0.106464616772, 4.57993344663 | 2.78540985725, 5.34126437112 | 0.222824052156, 7.41604024389 | 0.452783882865, 3.28587796229 | 0.595307265723, 3.3611648224 | 0.838456623147, 3.12354995598 | 0.167846498981, 3.42429119576 | 0.789557072651, 5.8512550284 | 1.99281532804, 3.91105879269 | 0.452095791245, 3.69740704803 | 0.820050676208, 3.1442635652 | 2.21862308472, 2.92284337303 | 0.620210327906, 3.36458898403 | 0.714739708796, 3.19489739931 | 0.350048969031, 7.88833318096 | 0.365468571658, 5.00308578152 | 0.223766784791, 3.22840497378 | 0.539154032626, 4.32414826891 | 0.342917766201, 4.2372602031 | 2.62312171147, 4.03489667364 | 1.19724040465, 2.98468107894 | 1.70816624101, 3.70061721998 | 0.144003322043, 3.32759851079 | 3.22759915673, 3.5348883024 | 2.26666238419, 3.61986027727 | 1.42234783125, 4.13584607426 | 0.38240113167, 3.13105489274 | 0.42684491591, 5.29386720306 | 1.13522472017, 4.35065180729 | 0.450662984793, 4.92212961708 | 0.504918122593, 4.19696666531 | 0.542106242523, 4.70822553306 | 0.431753357932, 4.70496853934 | 0.585882562077, 2.82163939708 | 0.354211377662, 2.7749285673 | 0.773819372569, 4.20106078629 | 3.5468186015, 3.25806230422 | 1.16446490776, 2.97824153046 | 0.634719609118, 6.24049625894 | 0.604503799466, 7.18692448088 | 0.702479476078, 3.9767986394 | 2.46691462078, 4.90972585114 | 2.12411456206, 3.25824555983 | 1.42599273813, 3.1842857736 | 0.780409710085, 7.33108959719 | 0.948593648814, 6.88914480747 | 1.18840666953, 3.93008795772 | 1.03634566272, 4.86100091822 | 0.460655730352, 5.64255515254 | 0.727288715906, 4.05696325215 | 0.596443341098, 4.12078782301 | 0.766925538593, 6.46611201826 | 1.85524070679, 4.94726132676 | 1.97043281815, 6.83805063598 | 0.444160900675, 4.86890068342 | 0.625975194945, 6.76331265223 | 0.224926532447, 8.96799021152 | 1.90689894212, 3.16719895489 | 0.646323589286, 4.93474307859 | 1.07218770687, 4.37542292896 | 0.884930238015, 5.81515843154 | 5.06933221904, @@ -800,18 +797,21 @@ Testing k-means visitor ... 0.94314420035 | 0.981895726286, 0.169963486799 | 0.296020947379, 0.271942650466 | 1.64739221905, 0.326711138057 | 0.863565309388, 1.66146343193 | 0.10325913533, 0.893056486982 | 0.808682871045, 0.282138178835 | 0.371623453277, 0.371895553115 | 0.434925299581, 0.376274486482 | 1.39877606315, 1.0446211384 | 0.571090947977, 0.466324696171 | 0.308323819636, 1.44638826983 | 1.56045441673, 0.320121767249 | 0.501052292835, 0.580846772301 | 1.30830960928, 0.521159294492 | 2.32581712491, 1.36234293815 | 0.289371891003, 0.963647635211 | 1.0261635, 0.637637095911 | 2.04389724471, 1.73748324726 | 0.860053341243, 0.613136565362 | 0.190705662033, 0.701077196961 | 0.193164499076, 0.107195404818 | 0.534806493228, 2.16015060747 | 0.42304329124, 0.922355654532 | 2.02841264143, 1.16959960242 | 2.31610780363, 1.02545023421 | 0.582097280023, 0.494289746101 | 1.28037865741, 0.040977350523 | 0.439638684942, 0.812148875111 | 1.47854501694, 0.569251356464 | 1.15224692006, 0.252754750614 | 0.89989902386, 2.06911336897 | 0.290356054276, 0.305260524931 | 0.990555427867, 0.874265659665 | 2.20241001084, 0.339578116871 | 0.320754547992, 1.93511267746 | 0.587733491711, 1.49362864494 | 1.93197678658, 0.412150967857 | 1.01319160519, 0.902855287476 | 1.07735390865, 1.0106755563 | 0.665572272889, 0.735666970712 | 0.302010636883, 2.07588001793 | 0.794593877907, 0.171995382581 | 1.49726413026, 1.78587441529 | 0.243153154046, 0.378541436116 | 1.31991388346, 0.918472780684 | 2.06758418387, 0.249403107207 | 0.454176981891, 0.583046618517 | 1.94950630499, 0.0628704638461 | 0.387939757822, 2.42609604173 | 1.29214747348, 1.43586493567 | 2.0391938725, 0.417967523855 | 2.22062836794, 1.098242156 | 2.59297376409, 0.480189177144 | 2.10100373728, 1.73565282659 | 1.62926884235, 0.760730091571 | 0.315153143947, 0.866559797058 | 1.76506993856, 0.984499639614 | 0.44249951319, 1.30348326941 | 1.44005990567, 0.13105037532 | 2.63608457803, 0.252311764312 | 1.41263674761, 0.228552899932 | 1.18621757992, 1.0290999953 | 0.390120245762, 0.882866151676 | 1.64057234467, 1.23446216599 | 2.00902296698, 1.71823504911 | 1.66540218242, 0.372278412557 | 1.07397574734, 1.63805067019 | 0.722246090948, 2.57845909391 | 0.640741806074, 1.49235149587 | 1.45715491558, 2.21722378657 | 1.27240410181, 0.326815409914 | 0.485455556687, 0.748585404096 | 0.78756538169, 0.21745467698 | 1.0401079674, 2.21873677412 | 1.02993567713, 1.03597832861 | 0.350879406929, 0.343317792485 | 1.41188975191, 2.51673013034 | 1.01486660235, 1.1147940572 | 1.19178509596, 0.849198242163 | 1.69635984254, 0.758328393524 | 1.4736114257, 0.327236321769 | 0.947598237393, 0.297280087477 | 1.1390147908, 2.18011601789 | 0.297370086524, 0.8865335918 | 1.69415944125, 0.462460808338 | 1.8253858595, 0.960770450807 | 0.280985644803, 0.323387454337 | 0.152741315791, 0.295106002294 | 0.683710648029, 1.56585975281 | 0.828774714947, 1.28799561213 | 0.795433234715, 0.254180636839 | 0.739464244104, 0.486943161095 | 1.03563187104, 0.660394558092 | 0.803358570279, 0.954368451522 | 0.276509523751, 0.406474300541 | 0.827818544391, 0.461464091627 | 0.599869936581, 0.199402475443 | 1.68554411367, 1.20127716327 | 0.216781902792, 0.110914892968 | 0.306856799157, 0.150685481569 | 1.19148169785, 1.83776276952 | 0.469180820593, 1.1195849682 | 2.44610092219, 0.737349207148 | 2.3976699186, 0.333876817449 | 1.37480679256, 1.30679336404 | 1.41567335553, 0.816394091152 | 1.10046765105, 2.29856419478 | 0.485561779197, 0.403110767438 | 1.6268797303, 0.299919940596 | 0.331093402906, 0.483404071006 | 0.290318020102, 0.744873723165 | 1.30272252912, 2.26695861761 | 1.08617294566, 1.50590267295 | 0.433719251144, 1.97273495528 | 2.02645491744, 0.412510467935 | 1.53621178736, 0.340579806797 | 0.953479355234, 0.477579225453 | 1.14369175893, 0.242254482121 | 1.14793354682, 0.812293430821 | 1.56412861853, 0.879667239287 | 0.866309360039, 0.634709228209 | 0.950164048793, 1.76004127096 | 0.755274750165, 1.05606204331 | 2.448576038, 1.76765732635 | 0.983803575974, 0.585782455829 | 0.432310082049, 0.348373922445 | 0.512929947691, 1.60506043565 | 1.07206564725, 0.507838904838 | 1.44461249943, 1.05914192838 | 0.380250398523, 0.896368847415 | 0.299026808915, 1.38264259557 | 0.328637413493, 0.197905188789 | 0.219648997204, 0.610847484075 | 1.378647892, 0.869589558242 | 0.440714327768, 0.783770455788 | 1.06490063493, 0.974629152681 | 2.20910632802, 2.33542719376 | 0.745929386166, 0.315350487304 | 0.354331468356, 0.492928346606 | 0.219002553457, 2.55146883283 | 0.274969047634, 1.40057031621 | 2.27381199684, 1.03864873742 | 0.979007797872, 0.962250524318 | 0.48152121663, 0.386891788541 | 0.483093997597, 1.29666721286 | 1.72165015887, 1.34710948498 | 0.507143795547, 2.18322390256 | 0.172569287983, 1.56301083559 | 0.458743636828, 0.751123742453 | 0.946768432963, 0.690327863639 | 0.992447329403, 0.671823935165 | 2.0978362702, 0.461285118688 | 2.42986142136, 0.250587958715 | 1.29453084627, 2.12937070061 | 1.6383108554, 2.14104233392 | 0.786737857766, 1.66896358889 | 0.377690250523, 2.64777900836 | 0.256778514556, 1.27016157677 | 0.957061170215, 1.48771892078 | 0.616825275551, 0.562017881387 | 1.74590123742, 1.56481864613 | 1.43614555065, 1.10247098536 | 0.377623446533, 0.602776058237 | 0.859106463858, 0.202677292862 | 0.855468120433, 1.82480920271 | 0.496915629909, 0.487247587407 | 0.801326132058, 0.515826294323 | 0.871320724668, 2.19109082809 | 0.644508364546, 0.884618026883 | 1.11758756205, 1.59484914041 | 0.57017322245, 0.498701179507 | 0.933886600228, 0.9693112402 | 1.31405068172, 1.66852970075 | 1.28329575891, 0.579302946369 | 0.151769005917, 0.263279735437 | 2.45623642144, 1.62841230125 | 1.1730311994, 0.307412429659 | 0.676678406507, 0.310302068518 | 0.565438184851, 1.37517051701 | 1.20057856368, 0.252429971783 | 1.69157736474, 0.351928716246 | 2.45380572359, 0.78207486059 | 0.303181203474, 0.818487565897 | 0.0922592753118, 1.30759253408 | 2.28938372681, 0.0365828847014 | 2.65549003031, 0.383402451249 | 0.545838008629, 0.163346978989 | 0.348357206478, 1.22557680956 | 1.42433129564, 1.65024542028 | 0.856078285278, 1.19555457329 | 0.15903928358, 1.20995434808 | 0.961732048479, 0.416115951752 | 0.376111365586, 0.465160867886 | 1.74674578848, 1.68903481752 | 1.72441216776, 1.67477696097 | 2.60016921821, 0.930827044668 | 0.894383569469, 0.498284284652 | 1.53063385682, 0.88187712161 | 0.250559670471, 0.22676531703 | 0.429813566252, 0.956716138216 | 0.130649805751, 0.456105469958 | 1.87824852012, 0.474202306008 | 1.32051975501, 0.311833074448 | 1.19912691392, 0.243732233658 | 0.402424265378, 1.02215168453 | 1.86176187971, 0.936961221963 | 0.293180129731, 2.53127719979 | 0.818797484154, 0.416835118578 | 0.733084462339, 2.09182221074 | 1.09530550263, 1.5377669992 | 0.445950122358, 0.204831284909 | 1.3178848594, 0.549254096821 | 1.68936636922, 0.71094663964 | 0.117115367062, 2.23920560823 | 0.145518035333, 0.973116540588 | 1.82170431151, 0.743233301348 | 1.52405120812, 0.658241041235 | 0.360435704697, 1.76919944043 | 0.857601246328, 0.276799082879 | 1.91143301777, 0.79134554538 | 0.743552871892, 0.724608730694 | 1.22684618238, 0.623110069773 | 1.53275190557, 0.312840367772 | 0.344455103878, 1.05691049646 | 1.15728791277, 0.887089613177 | 0.402850065386, 1.42555762373 | 2.36884242177, 1.47592563111 | 2.34839395956, 1.16457801632 | 1.22734496901, 0.783878255489 | 2.25752535531, 2.20804418257 | 1.21773633899, 0.241587451543 | 0.774212980682, 1.00505746299 | 0.812620504393, 1.66815323836 | 0.715371383661, 0.766527640568 | 1.71161858755, 2.05901816836 | 1.16153214238, 0.868749340576 | 0.971393032742, 1.40106991445 | 2.12294583893, 1.05536033497 | 0.164177899521, 2.36560207183 | 0.27734683301, 0.980177237504 | 0.543463248649, 1.08704357615 | 0.455083257825, 0.865440367712 | 0.561580102184, 1.45086272985 | 1.79651065388, 0.173171780362 | 0.521629375215, 1.02386212465 | 0.923704072222, 2.13355472037 | 0.426544022113, 0.663554456113 | 2.10181679452, 0.407430964684 | 2.26725646845, 1.43898785591 | 0.200391084607, 0.194643343686 | 0.418568600642, 0.93320304839 | 0.701183244743, 1.0023018653 | 0.982458148711, 0.203912872225 | 2.35983089781, 0.597685297377 | 0.934032105178, 0.56274796731 | 1.37174805663, 0.454101796359 | 2.68035254973, 0.550821658799 | 0.904427683499, 0.864005872791 | 1.44879086382, 0.888159398828 | 0.588379026454, 0.931121787456 | 1.60958802959, 0.704842970104 | 1.41076676979, 1.9601170371 | 0.293684499559, 0.441600207327 | 1.29210072348, 0.186913610614 | 0.721378346275, 1.08064941697 | 0.960767147851, 1.78162939885 | 0.467341316827, 0.652344124139 | 0.507023869883, 0.774367097583 | 1.65016248063, 0.1720556597 | 0.678633121852, 2.07498016083 | 1.81380931024, 1.7286173085 | 1.40212944728, 2.60004402628 | 1.27068724087, 1.28532968364 | 0.370060400749, 0.166369844744 | 0.122998474704, 0.510398539045 | 1.21490966623, 0.630318270253 | 2.39089643976, 0.905989117184 | 0.500760167128, 0.411668316376 | 0.557951377106, 1.42068599634 | 0.900566133803, 0.437521123395 | 0.892652768709, 0.420202460094 | 0.294168014628, 1.68008509731 | 0.211094396734, 1.25487856277 | 2.57344633519, 2.49384672854 | 1.20152376007, 1.15518708601 | 1.10416702024, 1.63321448193 | 0.58792458609, 0.958840262092 | 0.595406726254, 0.561483869816 | 0.444579804477, 0.706789275528 | 0.502767161944, 1.10985090694 | 2.11414192209, 1.09534403376 | 0.500158077678, 1.0010283532 | 2.03128916932, 0.422999121123 | 0.55114088445, 1.4327102843 | 0.4236682025, 2.25781580774 | 0.120786449823, 0.629075089004 | 1.60295440061, 0.225025775619 | 0.833568335906, 1.21452252754 | 0.530369453109, 0.50045367977 | 2.66772686192, 0.631097719153 | 0.449290649308, 1.62617489517 | 0.669897743569, 0.15844024558 | 0.253388002697, 0.725149018541 | 0.265037040637, 0.53002489067 | 2.30031197637, 1.39565285273 | 0.976122356777, 0.30640654915 | 0.568772989178, 0.40938388171 | 1.14663487734, 0.435696076396 | 1.34209081007, 0.938392435311 | 0.561376360631, 0.529331993958 | 0.537495254361, 0.989327786559 | 0.431691501708, 0.425334803543 | 0.237494380559, 1.6994977688 | 0.711516292504, 0.508282652828 | 0.470621634986, 0.949366270837 | 0.38411875556, 0.820774682384 | 1.40456469575, 0.692317412848 | 0.438430613274, 1.00929866149 | 0.893650197321, 0.387846108432 | 0.268509916794, 1.27671131479 | 1.62801362147, 0.267203120339 | 0.570965479242, 2.09456628119 | 0.281499069012, 0.82383188417 | 0.318940184304, 1.23539172258 | 0.772306193335, 0.373867669606 | 2.29078453512, 0.28210053162 | 1.36232285579, 0.494882550551 | 0.649548385865, 0.808060415401 | 1.71990258451, 2.29629733041 | 0.830011621788, 0.399303755146 | 1.09577281718, 0.397020067431 | 1.10348325361, 1.09250514355 | 0.542655028833, 0.901057404441 | 0.731512366958, 2.46928657737 | 1.57278241092, 2.498282512 | 0.452416381131, 0.890337588128 | 1.67761448177, 2.27438277799 | 0.149031471475, 0.462431477873 | 1.11630608799, 1.82087708903 | 2.13833284998, 1.71205170727 | 0.422208884884, 0.718991222734 | 0.999172444412, 0.90409622282 | 0.770902294249, 0.41595031335 | 0.301609068896, 0.537498432655 | 0.159178443431, 2.05242704057 | 0.409303474894, 0.323174970795 | 1.56859933281, 0.136081406461 | 1.75935494095, 0.359225375456 | 0.828503162647, 0.474833116607 | 1.38219933945, 0.36294977912 | 1.54186210627, 0.171192485795 | 0.365059759874, 0.334182459126 | 0.745342750611, 0.728429486311 | 0.153240675947, 2.08090480299 | 1.46323076922, 0.421432445838 | 0.875606531018, 0.645400212811 | 0.167875334373, 0.222398227763 | 0.277204905022, 0.397502013991 | 1.37811694283, 0.29246139853 | 0.635786327135, 0.170354761219 | 0.708223947746, 0.439340129297 | 1.53213549452, 1.18023540556 | 0.121456580178, 1.94794701947 | 0.312182693105, 0.529972160774 | 1.04310152524, 1.87586780141 | 1.26254799827, 0.477130456532 | 0.97691541019, 0.170524391565 | 1.62963040786, 2.38548774243 | 0.465172517712, 0.512036027982 | 2.14009371978, 0.229784327831 | 0.127123967881, 1.96755726076 | 2.08141385208, 1.96862533501 | 0.2631088277, 1.41925129919 | 0.572428676801, 0.205180768736 | 0.454617726276, 1.60056379553 | 0.6761093445, 0.425651919745 | 0.484887596033, 1.48090906946 | 0.211726923328, 1.92753780122 | 2.39257243326, 0.640071263911 | 0.525528901278, 0.647831837101 | 0.658106984551, 1.41171609269 | 1.39900005357, 0.964187221285 | 0.155376748348, 1.68417673539 | 0.185645233388, 1.41243205755 | 0.809937910121, 1.64830925878 | 0.738013539721, 0.305338428251 | 2.07398096159, 1.01281101684 | 1.82626181913, 1.8126029486 | 0.218993819183, 0.71966531448 | 0.362541592676, 2.08641562045 | 0.98148684941, 0.636535224106 | 0.313872315055, 1.40977258716 | 0.678022159306, 1.24166641221 | 0.609991845116, 1.74253866817 | 1.46040158917, 1.53754329054 | 0.660626454717, 0.597995275824 | 1.48814745089, 1.20542447458 | 0.505315919074, 0.536401176403 | 0.281826270627, 1.070798275 | 0.95834475172, 1.35298629652 | 0.673784667412, 0.599803458852 | 0.219417883296, 2.26559303637 | 1.42413692639, 0.535151579789 | 0.657256964612, 0.480512266067 | 0.815388055578, 0.773392724319 | 1.61013365084, 0.493310761399 | 0.418544613608, 1.34089170111 | 1.7068975579, 0.673330271486 | 0.264375854879, 0.575452003518 | 1.63173639771, 2.2081146561 | 0.364365530036, 1.72225825441 | 1.5470904448, 0.952163870647 | 1.49778474856, 1.15337131483 | 1.09003763497, 0.782193790851 | 0.178966874852, 0.765340012954 | 0.852179683933, 0.496726682726 | 0.167151510528, 0.663326898335 | 0.948944448328, 1.97981599474 | 0.707205610376, 0.84340642222 | 0.436949076491, 0.91963443566 | 0.776046575221, 0.605737424917 | 1.60015270552, 0.422421990368 | 1.04936456164, 0.381151414216 | 0.264343430161, 0.622164638491 | 0.852284921196, 0.305098959856 | 1.77366223436, 0.481777476786 | 1.60802928194, 0.163359027537 | 0.710824636012, 0.684987565952 | 0.99510238546, 0.188211268233 | 0.823820497723, 2.14311778893 | 1.56206519754, 1.3086307245 | 1.08109631897, 0.390588336682 | 0.919819819885, 2.31974002745 | 1.62756987109, 0.614974801944 | 0.598313170447, 0.843626194748 | 0.604242807902, 0.636158508427 | 1.12989253902, 0.67105709693 | 0.758347926235, 0.775979699259 | 1.53209138919, 0.887546305819 | 1.20789735698, 2.52182183354 | 0.812329311574, 0.0971717140767 | 0.964320738679, 0.14004048798 | 0.920098235851, 2.00846366364 | 2.4557011831, 1.12151090032 | 0.853759604699, 0.727162510977 | 0.231292123824, 1.59527491231 | 0.926772209017, 0.731720842669 | 0.202655056805, 0.525579966204 | 0.533822043294, 1.25057832601 | 0.645088929691, 0.843880981994 | 1.95791961703, 0.712715776817 | 2.18829586412, 1.10783936766 | 1.73224684766, 0.578847997854 | 0.924281167826, 0.589314544945 | 0.808646078631, 1.21492852927 | 2.1230332813, 0.341393443397 | 1.21037536003, 0.126432699551 | 1.54192553591, 0.511932202416 | 0.765899793629, 0.395202383353 | 1.2363401175, 0.77724713562 | 2.51855342955, 0.273856441279 | 0.393652186888, 0.882024098771 | 0.566599088531, 0.690396308482 | 1.88319788867, 0.999749198393 | 0.733638578713, 2.22882275773 | 0.669853410149, 0.875218740075 | 0.582649287505, 1.63328674826 | 0.201133960007, 0.793161060451 | 0.663718597361, 0.329071873479 | 1.07987583433, 1.99120622681 | 1.99211913207, 0.504233548664 | 0.659435709443, 0.853499272731 | 0.345364456904, 1.34431769103 | 0.278306797127, 0.209910644811 | 1.88000099606, 0.402769254395 | 0.954466120856, 1.86003563015 | 0.87892618468, 2.00752873919 | 2.1407856441, 0.620211007538 | 0.138453930261, 0.770165847942 | 0.62378215165, 0.74959336533 | 1.33728533031, 0.50462114009 | 0.445042859751, 0.189250295657 | 0.660406391209, 0.434605552397 | 0.22178322483, 0.68236604141 | 1.56166769423, 0.832239910097 | 0.233221488198, 0.78245768116 | 0.741202429821, 0.965826839553 | 0.934556395143, 0.130846893621 | 1.11587381052, 0.667497076673 | 0.717405898166, 0.97740562861 | 0.689225474105, 0.795988256774 | 1.66696061208, 2.34354518593 | 1.5179763001, 1.38697819984 | 0.473498124854, 0.349913622683 | 1.32267170468, 2.1159373567 | 0.259589940885, 2.25210302955 | 1.95958894032, 0.710976019695 | 1.04963312821, 0.924015256509 | 0.760544725505, 0.296514874359 | 0.113122440263, 2.23084646792 | 0.243564664551, 0.26346461111 | 0.440754560368, 1.0715856015 | 0.509927020375, 1.63783411807 | 1.12521756605, 2.2302529008 | 2.35645791433, 0.915087720222 | 1.56710280562, 0.769485344172 | 0.248207342307, 0.562717869221 | 0.965526877092, 0.336842640208 | 0.19853158974, 0.427024239875 | 2.24454740734, 0.764685185952 | 0.619480787044, 0.418033596885 | 0.774286104585, 0.68888479574 | 0.125979540079, 0.0789017155741 | 0.461785526451, 0.801360151769 | 0.345616246776, 2.1789940249 | 1.30334820382, 1.20677929031 | 0.507175219192, 2.19566132931 | 0.465653543398, 0.16590374418 | 0.308072265434, 0.0637027302805 | 0.483564192316, 1.09349401349 | 0.905851262722, 0.573089947219 | 0.715019506955, 1.48483305656 | 0.380738427642, 1.14935744019 | 0.333763234994, 1.24029775728 | 0.397111634141, 1.34418585379 | 0.113193498003, 0.671041101156 | 1.35410590562, 0.390926660115 | 1.08186320167, 0.33661534615 | 0.765425749799, 1.08834975518 | 0.810947205976, 0.569418944679 | 0.940696496622, 1.25997239312 | 0.626483377512, 0.413155167038 | 0.904442146327, 1.03203991993 | 0.711938444817, 1.52168008363 | 1.54080563258, 0.38928585155 | 0.770407515959, 0.085255861139 | 0.73923254933, 1.58762941258 | 0.659138709005, 0.512284455921 | 0.92031895578, 0.850342009856 | 0.268061807311, 1.14058104213 | 1.56681409758, 1.44216026603 | 1.91421615747, 0.845885547906 | 1.63985372312, 1.24478247216 | 0.450748132611, 1.82410974566 | 0.697395503699, 1.82872152949 | 1.25926866537, 0.694586560271 | 0.388500238778, 1.72232493005 | 0.274416690378, 1.15291850738 | 0.90296219851, 1.16673054304 | 0.104305361337, 1.16063279398 | 0.521132703284, 0.296156686446 | 1.8679029195, 1.17686072594 | 2.02285673943, 1.7778341745 | 1.23127181834, 0.756965279945 | 1.67483657582, 1.01403434916 | 0.740872489054, 0.812595873307 | 0.917893956796, 0.817842968403 | 0.558584850458, 0.232684911588 | 0.678369122611, 0.278425956778 | 0.227775690666, 0.178533495852 | 1.33749658045, 0.631646125283 | 1.42185983994, 0.765984060952 | 0.908957391154, 0.44790886395 | 1.54482216087, 0.704456763101 | 1.36945926045, 2.17914005163 | 1.62467102869, 0.489003519059 | 0.690705448433, 1.83283363575 | 1.01767679582, 0.70861080217 | 1.57450668475, 0.57610882203 | 0.473249561678, 0.664741868378 | 0.735208685119, 1.5757565479 | 0.18426288072, 0.878309875115 | 0.332975169199, 0.438143922785 | 0.215967922997, 1.36421398698 | 0.471883689741, 0.256211198777 | 0.414998667144, 1.31092843969 | 0.219586816948, 0.783520026453 | 0.831975463277, 0.195890217112 | 1.4299150827, 1.95815197824 | 1.05002765427, 1.52913978352 | 1.23150409232, 0.580259945724 | 2.35911126559, 2.22769732589 | 1.61770663679, 0.183492787229 | 0.643513245427, 0.988382500483 | 1.85752344497, 0.848080293145 | 1.35119281053, 2.48171183089 | 1.28632655848, 0.312491623546 | 0.841463611185, 0.157004140351 | 2.45436382205, 0.507365294761 | 0.304117530758, 0.869372517219 | 0.353336617062, 0.763104658288 | 2.32420390099, 1.88019093712 | 1.95216407426, 0.204714685224 | 1.52780993423, 0.0545826165707 | 2.38315812496, 0.14295967406 | 0.225578590239, 0.693437878737 | 0.535668065968, 0.0819471695546 | 0.462541931253, 0.293870938911 | 0.441694179349, 2.33937617784 | 0.142259395872, 0.825252543535 | 0.456228012554, 0.702242653502 | 0.46739999492, 0.889612835974 | 1.21256708162, 2.42940024377 | 0.423790867265, 0.127026739464 | 0.580616610077, 0.197206956564 | 0.996879044506, 0.427231755341 | 0.393218233116, 0.951241339176 | 0.36110858966, 0.111899851393 | 0.690828417936, 1.26487113741 | 1.33535834546, 0.633474291484 | 2.10362625787, 1.94450849716 | 0.78007343787, 0.752310627076 | 0.280668266579, 0.314568159422 | 1.31691816663, 1.75436750673 | 0.701082667486, 1.2839408341 | 0.388150026311, 0.170860339017 | 1.35866365911, 1.85320399828 | 1.37060928035, 1.30963875486 | 2.17247469363, 0.301561762877 | 0.687279017126, 0.314213489864 | 1.11787138165, 1.40929186547 | 1.95659146094, 0.264813382951 | 0.547163494095, 0.795750610604 | 1.01228248999, 0.324091207232 | 0.685667622517, 0.985314319927 | 1.5705959015, 1.30117489635 | 1.31299302769, 1.30407945375 | 0.182469523169, 0.439047079725 | 0.795790051555, 1.91611507184 | 1.20599571362, 0.56106358881 | 1.0745739754, 0.208406057798 | 1.18054244106, 1.94570404926 | 0.0928107785895, 1.3955435982 | 1.51637512069, 0.4417995657 | 1.94249144146, 1.17963917692 | 0.448236324737, 0.852969585332 | 0.183091926755, 1.79031991058 | 0.675614281957, 0.936484890277 | 0.0746451914142, 2.50483731076 | 0.54000859291, 1.84259862454 | 2.57103833386, 1.1349984282 | 0.748745663131, 0.796693534504 | 0.614492421858, 0.537169856445 | 0.462171128835, 2.16174141875 | 0.347557637785, 0.181603755915 | 1.57429390357, 2.39914666631 | 0.38834115031, 0.133616301846 | 1.5954546239, 0.577078642539 | 0.910071071042, 1.23516277524 | 0.66520761334, 0.370906958471 | 0.855509777542, 0.290070488546 | 0.76668747369, 1.22623691309 | 0.103596005078, 2.21146694485 | 1.69138889677, 0.514613006991 | 1.39026361086, 0.230859156687 | 1.85117096138, 0.361941883968 | 0.23503813583, 0.67075189379 | 0.711943965736, 1.55807956365 | 1.39302173275, 0.616058695784 | 1.91959850383, 1.70575501048 | 0.189408386188, 0.692221896558 | 0.395819025962, 0.253648549006 | 1.91475448468, 0.495884526486 | 0.233077201067, 0.340204109878 | 0.247563401137, 0.93707721899 | 1.13127817125, 0.269090748269 | 1.1631762973, 0.638751187288 | 0.321131937769, 0.492992920485 | 0.447407655479, 2.02440389451 | 2.26231648074, 0.789882261738 | 1.15794284614, 0.29278782541 | 1.10024583258, 0.45049179626 | 0.678611186296, 1.04589787191 | 1.64656087762, 0.178864369497 | 0.761164146489, 0.89806046891 | 1.45528284778, 0.379016876334 | 0.451555418047, 1.23540113658 | 1.0817579536, 0.513355152752 | 0.87737706784, 1.29144542689 | 0.729080787308, 0.258520249874 | 0.239467171244, 0.323560188597 | 2.08624039163, 0.797604356098 | 0.273101440892, 2.61953474612 | 1.19207111958, 1.36129334193 | 1.8685736771, 0.749890256181 | 0.445499643062, 0.174595392697 | 0.838493637356, 1.39208279198 | 0.517891810342, 0.95046039368 | 1.45344517236, 0.227773910269 | 0.522981059249, 0.120324153047 | 1.37535157239, 0.244158432185 | 1.22661164086, 0.331264977016 | 0.782302622523, 1.88051895815 | 0.448592430089, 0.466689623514 | 0.462346397071, 0.480646947224 | 1.20639666774, 2.43404313107 | 0.814361675357, 0.551635800558 | 2.31858685454, 0.624310045902 | 1.02813347379, 2.21144953237 | 0.899248530077, 0.442620551965 | 2.00807591843, +14.4078912631 | 1.64264269874, 13.594934717 | 5.95077654393, 16.4959253192 | 1.97264931319, 12.208321242 | 0.516538018932, 9.22794863419 | 5.23499591345, 9.91394556678 | 1.17445635113, 11.2219801324 | 0.497749565137, 11.7552028282 | 1.56562428674, 9.60547805235 | 2.87565801039, 18.589076052 | 1.05392224519, 14.892785513 | 1.66165089796, 18.0532898611 | 1.83213697413, 10.0767516465 | 0.853622379735, 13.8654008849 | 1.15348718526, 21.299910856 | 0.175289746186, 10.0890500803 | 0.316811426954, 10.2076269439 | 0.966166300131, 19.6188474702 | 1.81215314571, 14.8509606357 | 1.45522893062, 28.1824975639 | 0.141294041196, + + Testing affinity propagation visitor ... -64.8864674204, 44.8864674204, 4.88646742035, 84.8864674204, 24.8864674204, +24.8864674204, 78.7138957809, 2.07290290881, 50.3013717523, 7.28320755981, -85.1391063602, 86.0443616908, 89.8325726377, 81.831434088, 82.7096902721, 89.4442819581, 83.2290856718, 80.3368455564, 80.792112092, 89.5990682814, 80.6319322423, 89.0856121755, 81.4048670495, 89.384575523, 82.8700032045, 82.8641158982, 81.5840275508, 87.7393170613, 85.3504194723, 84.7879977908, 82.6158667776, 83.1747202459, 87.2309887772, 84.0887403668, 85.7834812385, 81.185637531, 83.6535581541, 88.1606083177, 88.0351069192, 82.0294774779, 81.0856084652, 86.3554630222, 87.4997084472, 80.507737207, 84.7909670742, 88.4147351677, 85.533402149, 85.3735876517, 80.5427763693, 88.7116662964, 86.8811190655, 82.068028164, 88.6910053353, 84.9938335144, 88.7009633844, 88.8116955834, 84.1464065746, 81.4526416181, 82.8714543256, 86.2709592201, +20.6319322423, 29.8325726377, 27.7393170613, 29.5990682814, 24.0887403668, 26.2709592201, 21.0856084652, 8.16060831768, 6.88111906546, 23.6535581541, 3.65355815409, 21.4526416181, 25.7834812385, 4.79096707423, 27.4997084472, 23.2290856718, 28.7116662964, 9.44428195809, 24.1464065746, 25.3735876517, 5.13910636019, 3.17472024588, 20.507737207, 0.542776369347, 8.41473516768, 28.8116955834, 4.78799779085, 0.50773720697, 21.185637531, 24.7879977908, 2.87000320452, 9.38457552296, 1.40486704949, 9.83257263767, 22.8714543256, 0.336845556413, 2.0294774779, 28.7009633844, 20.5427763693, 28.4147351677, 2.06802816399, 7.73931706126, 7.23098877717, 1.58402755076, 26.8811190655, 8.71166629641, 1.45264161815, 2.70969027208, 24.7909670742, 28.6910053353, 5.37358765167, 9.08561217549, 28.0351069192, 29.4442819581, 20.792112092, 25.3504194723, 0.631932242255, 22.0294774779, 28.1606083177, 6.04436169077, 27.2309887772, 24.9938335144, 4.08874036683, 9.59906828139, 0.79211209196, 4.99383351443, 8.8116955834, 8.69100533529, 26.3554630222, 1.83143408803, 2.86411589824, 6.2709592201, 2.87145432564, 29.0856121755, 21.4048670495, 1.18563753105, 22.6158667776, 5.78348123847, 22.7096902721, 22.8641158982, 23.1747202459, 22.068028164, 4.14640657457, 2.6158667776, 5.53340214896, 6.35546302222, 22.8700032045, 29.384575523, 26.0443616908, 3.22908567178, 8.70096338444, 21.5840275508, 1.08560846516, 21.831434088, 20.3368455564, 5.35041947229, 7.49970844719, 25.533402149, 8.0351069192, 25.1391063602, -1.58402755076, 2.86411589824, 0.336845556413, 7.73931706126, 8.8116955834, 0.631932242255, 8.41473516768, 4.78799779085, 5.53340214896, 5.13910636019, 4.99383351443, 1.40486704949, 0.79211209196, 8.69100533529, 9.59906828139, 9.38457552296, 7.49970844719, 7.23098877717, 0.50773720697, 8.70096338444, 4.79096707423, 4.14640657457, 9.44428195809, 5.37358765167, 8.16060831768, 4.08874036683, 5.78348123847, 8.0351069192, 1.08560846516, 2.87000320452, 2.06802816399, 1.45264161815, 3.65355815409, 6.04436169077, 3.22908567178, 5.35041947229, 2.6158667776, 6.88111906546, 3.17472024588, 6.2709592201, 2.0294774779, 6.35546302222, 8.71166629641, 9.83257263767, 0.542776369347, 1.83143408803, 2.70969027208, 9.08561217549, 2.87145432564, 1.18563753105, +40.792112092, 45.7834812385, 41.831434088, 47.4997084472, 43.2290856718, 47.7393170613, 40.6319322423, 41.0856084652, 41.5840275508, 41.185637531, 48.0351069192, 48.6910053353, 49.8325726377, 48.8116955834, 46.8811190655, 47.2309887772, 40.3368455564, 46.2709592201, 41.4048670495, 42.8714543256, 42.0294774779, 42.068028164, 48.1606083177, 44.1464065746, 48.4147351677, 48.7009633844, 40.5427763693, 49.5990682814, 42.6158667776, 42.7096902721, 40.507737207, 42.8641158982, 49.0856121755, 49.4442819581, 44.7879977908, 45.1391063602, 48.7116662964, 46.0443616908, 43.1747202459, 46.3554630222, 42.8700032045, 41.4526416181, 44.9938335144, 45.3504194723, 43.6535581541, 45.3735876517, 44.0887403668, 45.533402149, 44.7909670742, 49.384575523, -68.8116955834, 69.384575523, 60.3368455564, 62.7096902721, 46.3554630222, 62.8641158982, 66.8811190655, 61.0856084652, 68.6910053353, 61.185637531, 60.6319322423, 65.3735876517, 66.2709592201, 67.4997084472, 65.3504194723, 61.4526416181, 69.4442819581, 46.2709592201, 68.0351069192, 43.6535581541, 64.7879977908, 48.7116662964, 68.7116662964, 44.9938335144, 69.5990682814, 49.0856121755, 42.8714543256, 46.8811190655, 67.2309887772, 45.1391063602, 49.384575523, 69.8325726377, 66.0443616908, 49.4442819581, 48.1606083177, 62.068028164, 68.4147351677, 63.2290856718, 43.1747202459, 49.5990682814, 48.4147351677, 44.1464065746, 62.8700032045, 64.1464065746, 47.2309887772, 49.8325726377, 62.6158667776, 44.0887403668, 60.5427763693, 43.2290856718, 42.8641158982, 65.7834812385, 62.8714543256, 68.7009633844, 47.4997084472, 45.3735876517, 67.7393170613, 63.1747202459, 45.7834812385, 45.3504194723, 68.1606083177, 61.831434088, 61.4048670495, 65.533402149, 61.5840275508, 62.0294774779, 60.507737207, 69.0856121755, 48.0351069192, 44.7909670742, 42.8700032045, 47.7393170613, 64.7909670742, 48.6910053353, 66.3554630222, 65.1391063602, 48.7009633844, 46.0443616908, 44.7879977908, 60.792112092, 48.8116955834, 45.533402149, 63.6535581541, 42.7096902721, 64.9938335144, 64.0887403668, +86.0443616908, 80.5427763693, 83.1747202459, 80.507737207, 82.8641158982, 81.4048670495, 85.3735876517, 84.9938335144, 88.1606083177, 88.8116955834, 82.8714543256, 82.6158667776, 82.7096902721, 81.5840275508, 84.1464065746, 84.7879977908, 85.1391063602, 80.3368455564, 85.7834812385, 89.5990682814, 81.0856084652, 86.2709592201, 88.0351069192, 81.831434088, 85.3504194723, 88.7116662964, 85.533402149, 87.2309887772, 82.0294774779, 89.8325726377, 83.6535581541, 88.6910053353, 80.792112092, 87.7393170613, 89.384575523, 82.068028164, 84.0887403668, 84.7909670742, 89.4442819581, 86.3554630222, 82.8700032045, 87.4997084472, 89.0856121755, 88.4147351677, 81.185637531, 81.4526416181, 88.7009633844, 86.8811190655, 80.6319322423, 83.2290856718, -25.7834812385, 20.5427763693, 22.8700032045, 40.792112092, 22.068028164, 42.0294774779, 26.0443616908, 21.0856084652, 29.0856121755, 21.4048670495, 25.1391063602, 21.5840275508, 40.507737207, 26.2709592201, 22.7096902721, 23.2290856718, 41.5840275508, 28.7009633844, 24.0887403668, 24.9938335144, 25.3504194723, 21.4526416181, 28.6910053353, 41.185637531, 28.7116662964, 28.0351069192, 20.792112092, 27.4997084472, 22.8714543256, 21.831434088, 21.185637531, 27.7393170613, 41.4526416181, 29.8325726377, 40.6319322423, 24.7879977908, 20.6319322423, 24.1464065746, 42.6158667776, 23.1747202459, 29.5990682814, 25.3735876517, 29.384575523, 40.3368455564, 22.6158667776, 29.4442819581, 41.0856084652, 41.831434088, 26.8811190655, 20.3368455564, 23.6535581541, 24.7909670742, 26.3554630222, 28.8116955834, 22.0294774779, 22.8641158982, 42.068028164, 25.533402149, 40.5427763693, 27.2309887772, 28.4147351677, 41.4048670495, 28.1606083177, 20.507737207, +62.8700032045, 69.384575523, 66.3554630222, 61.4048670495, 64.9938335144, 68.7116662964, 68.0351069192, 61.831434088, 65.1391063602, 62.7096902721, 62.6158667776, 69.4442819581, 67.7393170613, 61.185637531, 64.7879977908, 63.1747202459, 62.8641158982, 66.0443616908, 61.5840275508, 60.507737207, 64.1464065746, 69.5990682814, 68.1606083177, 68.4147351677, 65.533402149, 65.7834812385, 60.792112092, 64.0887403668, 68.6910053353, 69.8325726377, 63.6535581541, 68.7009633844, 68.8116955834, 66.8811190655, 62.8714543256, 60.3368455564, 67.4997084472, 61.4526416181, 60.6319322423, 60.5427763693, 62.0294774779, 62.068028164, 64.7909670742, 66.2709592201, 65.3735876517, 65.3504194723, 61.0856084652, 69.0856121755, 63.2290856718, 67.2309887772, Testing multi-column sort ... @@ -1189,6 +1189,8 @@ Testing LogFitVisitor{ } ... Testing ExponentialFitVisitor{ } ... +Testing LinearFitVisitor{ } ... + Testing ExpoSmootherVisitor{ } ... Testing HWExpoSmootherVisitor{ } ... From 12ddf8b7bda83e596eabe272e21ba98b7c3291ad Mon Sep 17 00:00:00 2001 From: Hossein Moein Date: Sat, 3 Dec 2022 11:01:03 -0500 Subject: [PATCH 2/3] Added some of the LinearFitVisitor docs --- docs/HTML/PolyFitVisitor.html | 70 +++++++++++++++++++++++++++++------ 1 file changed, 58 insertions(+), 12 deletions(-) diff --git a/docs/HTML/PolyFitVisitor.html b/docs/HTML/PolyFitVisitor.html index 403955296..5fca90770 100644 --- a/docs/HTML/PolyFitVisitor.html +++ b/docs/HTML/PolyFitVisitor.html @@ -1,3 +1,4 @@ +

static void test_PolyFitVisitor()  {