diff --git a/utils/regr/corr.cpp b/utils/regr/corr.cpp index 13efbe897..c1c388da9 100644 --- a/utils/regr/corr.cpp +++ b/utils/regr/corr.cpp @@ -39,11 +39,11 @@ static Add_corr_ToUDAFMap addToMap; struct corr_data { uint64_t cnt; - double sumx; - double sumx2; // sum of (x squared) - double sumy; - double sumy2; // sum of (y squared) - double sumxy; // sum of x * y + long double sumx; + long double sumx2; // sum of (x squared) + long double sumy; + long double sumy2; // sum of (y squared) + long double sumxy; // sum of x * y }; @@ -153,29 +153,29 @@ mcsv1_UDAF::ReturnCode corr::evaluate(mcsv1Context* context, static_any::any& va double N = data->cnt; if (N > 1) { - double sumx = data->sumx; - double sumy = data->sumy; - double sumx2 = data->sumx2; - double sumy2 = data->sumy2; - double sumxy = data->sumxy; + long double sumx = data->sumx; + long double sumy = data->sumy; + long double sumx2 = data->sumx2; + long double sumy2 = data->sumy2; + long double sumxy = data->sumxy; - double var_popx = (sumx2 - (sumx * sumx / N)) / N; + long double var_popx = (sumx2 - (sumx * sumx / N)) / N; if (var_popx == 0) { // When var_popx is 0, NULL is the result. return mcsv1_UDAF::SUCCESS; } - double var_popy = (sumy2 - (sumy * sumy / N)) / N; + long double var_popy = (sumy2 - (sumy * sumy / N)) / N; if (var_popy == 0) { // When var_popy is 0, NULL is the result return mcsv1_UDAF::SUCCESS; } - double std_popx = sqrt(var_popx); - double std_popy = sqrt(var_popy); - double covar_pop = (sumxy - ((sumx * sumy) / N)) / N; - double corr = covar_pop / (std_popy * std_popx); - valOut = corr; + long double std_popx = sqrt(var_popx); + long double std_popy = sqrt(var_popy); + long double covar_pop = (sumxy - ((sumx * sumy) / N)) / N; + long double corr = covar_pop / (std_popy * std_popx); + valOut = static_cast(corr); } return mcsv1_UDAF::SUCCESS; } diff --git a/utils/regr/covar_pop.cpp b/utils/regr/covar_pop.cpp index 6313e49d2..876be1f30 100644 --- a/utils/regr/covar_pop.cpp +++ b/utils/regr/covar_pop.cpp @@ -39,9 +39,9 @@ static Add_covar_pop_ToUDAFMap addToMap; struct covar_pop_data { uint64_t cnt; - double sumx; - double sumy; - double sumxy; // sum of x * y + long double sumx; + long double sumy; + long double sumxy; // sum of x * y }; @@ -145,12 +145,12 @@ mcsv1_UDAF::ReturnCode covar_pop::evaluate(mcsv1Context* context, static_any::an double N = data->cnt; if (N > 0) { - double sumx = data->sumx; - double sumy = data->sumy; - double sumxy = data->sumxy; + long double sumx = data->sumx; + long double sumy = data->sumy; + long double sumxy = data->sumxy; - double covar_pop = (sumxy - ((sumx * sumy) / N)) / N ; - valOut = covar_pop; + long double covar_pop = (sumxy - ((sumx * sumy) / N)) / N ; + valOut = static_cast(covar_pop); } return mcsv1_UDAF::SUCCESS; } diff --git a/utils/regr/covar_samp.cpp b/utils/regr/covar_samp.cpp index 0a79ff31a..ccc302046 100644 --- a/utils/regr/covar_samp.cpp +++ b/utils/regr/covar_samp.cpp @@ -39,9 +39,9 @@ static Add_covar_samp_ToUDAFMap addToMap; struct covar_samp_data { uint64_t cnt; - double sumx; - double sumy; - double sumxy; // sum of x * y + long double sumx; + long double sumy; + long double sumxy; // sum of x * y }; @@ -145,12 +145,12 @@ mcsv1_UDAF::ReturnCode covar_samp::evaluate(mcsv1Context* context, static_any::a double N = data->cnt; if (N > 1) { - double sumx = data->sumx; - double sumy = data->sumy; - double sumxy = data->sumxy; + long double sumx = data->sumx; + long double sumy = data->sumy; + long double sumxy = data->sumxy; - double covar_samp = (sumxy - ((sumx * sumy) / N)) / (N - 1); - valOut = covar_samp; + long double covar_samp = (sumxy - ((sumx * sumy) / N)) / (N - 1); + valOut = static_cast(covar_samp); } else if (N == 1) diff --git a/utils/regr/regr_avgx.cpp b/utils/regr/regr_avgx.cpp index e601b4172..bf010e648 100644 --- a/utils/regr/regr_avgx.cpp +++ b/utils/regr/regr_avgx.cpp @@ -40,7 +40,7 @@ static Add_regr_avgx_ToUDAFMap addToMap; // Use the simple data model struct regr_avgx_data { - double sum; + long double sum; uint64_t cnt; }; @@ -132,7 +132,7 @@ mcsv1_UDAF::ReturnCode regr_avgx::evaluate(mcsv1Context* context, static_any::an if (data->cnt > 0) { - valOut = data->sum / (double)data->cnt; + valOut = static_cast(data->sum / (long double)data->cnt); } return mcsv1_UDAF::SUCCESS; diff --git a/utils/regr/regr_avgy.cpp b/utils/regr/regr_avgy.cpp index 0d0cc58dd..7325d991f 100644 --- a/utils/regr/regr_avgy.cpp +++ b/utils/regr/regr_avgy.cpp @@ -40,7 +40,7 @@ static Add_regr_avgy_ToUDAFMap addToMap; // Use the simple data model struct regr_avgy_data { - double sum; + long double sum; uint64_t cnt; }; @@ -130,7 +130,7 @@ mcsv1_UDAF::ReturnCode regr_avgy::evaluate(mcsv1Context* context, static_any::an if (data->cnt > 0) { - valOut = data->sum / (double)data->cnt; + valOut = static_cast(data->sum / (long double)data->cnt); } return mcsv1_UDAF::SUCCESS; } diff --git a/utils/regr/regr_intercept.cpp b/utils/regr/regr_intercept.cpp index d46d3117c..df9310f03 100644 --- a/utils/regr/regr_intercept.cpp +++ b/utils/regr/regr_intercept.cpp @@ -39,10 +39,10 @@ static Add_regr_intercept_ToUDAFMap addToMap; struct regr_intercept_data { uint64_t cnt; - double sumx; - double sumx2; // sum of (x squared) - double sumy; - double sumxy; // sum of (x*y) + long double sumx; + long double sumx2; // sum of (x squared) + long double sumy; + long double sumxy; // sum of x * y }; @@ -148,15 +148,15 @@ mcsv1_UDAF::ReturnCode regr_intercept::evaluate(mcsv1Context* context, static_an double N = data->cnt; if (N > 1) { - double sumx = data->sumx; - double sumy = data->sumy; - double sumx2 = data->sumx2; - double sumxy = data->sumxy; - double numerator = sumy * sumx2 - sumx * sumxy; - double var_pop = (N * sumx2) - (sumx * sumx); + long double sumx = data->sumx; + long double sumy = data->sumy; + long double sumx2 = data->sumx2; + long double sumxy = data->sumxy; + long double numerator = sumy * sumx2 - sumx * sumxy; + long double var_pop = (N * sumx2) - (sumx * sumx); if (var_pop != 0) { - valOut = numerator / var_pop; + valOut = static_cast(numerator / var_pop); } } return mcsv1_UDAF::SUCCESS; diff --git a/utils/regr/regr_r2.cpp b/utils/regr/regr_r2.cpp index f159d834a..1abd3ea2e 100644 --- a/utils/regr/regr_r2.cpp +++ b/utils/regr/regr_r2.cpp @@ -39,11 +39,11 @@ static Add_regr_r2_ToUDAFMap addToMap; struct regr_r2_data { uint64_t cnt; - double sumx; - double sumx2; // sum of (x squared) - double sumy; - double sumy2; // sum of (y squared) - double sumxy; // sum of x * y + long double sumx; + long double sumx2; // sum of (x squared) + long double sumy; + long double sumy2; // sum of (y squared) + long double sumxy; // sum of x * y }; @@ -153,13 +153,13 @@ mcsv1_UDAF::ReturnCode regr_r2::evaluate(mcsv1Context* context, static_any::any& double N = data->cnt; if (N > 1) { - double sumx = data->sumx; - double sumy = data->sumy; - double sumx2 = data->sumx2; - double sumy2 = data->sumy2; - double sumxy = data->sumxy; + long double sumx = data->sumx; + long double sumy = data->sumy; + long double sumx2 = data->sumx2; + long double sumy2 = data->sumy2; + long double sumxy = data->sumxy; - double var_popx = (sumx2 - (sumx * sumx / N)) / N; + long double var_popx = (sumx2 - (sumx * sumx / N)) / N; if (var_popx == 0) { // When var_popx is 0, NULL is the result. @@ -172,11 +172,11 @@ mcsv1_UDAF::ReturnCode regr_r2::evaluate(mcsv1Context* context, static_any::any& valOut = 1.0; return mcsv1_UDAF::SUCCESS; } - double std_popx = sqrt(var_popx); - double std_popy = sqrt(var_popy); - double covar_pop = (sumxy - ((sumx * sumy) / N)) / N; - double corr = covar_pop / (std_popy * std_popx); - valOut = corr * corr; + long double std_popx = sqrt(var_popx); + long double std_popy = sqrt(var_popy); + long double covar_pop = (sumxy - ((sumx * sumy) / N)) / N; + long double corr = covar_pop / (std_popy * std_popx); + valOut = static_cast(corr * corr); } return mcsv1_UDAF::SUCCESS; } diff --git a/utils/regr/regr_slope.cpp b/utils/regr/regr_slope.cpp index 6790e223e..de9eab5c7 100644 --- a/utils/regr/regr_slope.cpp +++ b/utils/regr/regr_slope.cpp @@ -39,10 +39,10 @@ static Add_regr_slope_ToUDAFMap addToMap; struct regr_slope_data { uint64_t cnt; - double sumx; - double sumx2; // sum of (x squared) - double sumy; - double sumxy; // sum of (x*y) + long double sumx; + long double sumx2; // sum of (x squared) + long double sumy; + long double sumxy; // sum of x * y }; @@ -148,16 +148,16 @@ mcsv1_UDAF::ReturnCode regr_slope::evaluate(mcsv1Context* context, static_any::a if (N > 1) { // COVAR_POP(y, x) / VAR_POP(x) - double sumx = data->sumx; - double sumy = data->sumy; - double sumx2 = data->sumx2; - double sumxy = data->sumxy; - double covar_pop = N * sumxy - sumx * sumy; - double var_pop = N * sumx2 - sumx * sumx; + long double sumx = data->sumx; + long double sumy = data->sumy; + long double sumx2 = data->sumx2; + long double sumxy = data->sumxy; + long double covar_pop = N * sumxy - sumx * sumy; + long double var_pop = N * sumx2 - sumx * sumx; if (var_pop != 0) { - double slope = covar_pop / var_pop; - valOut = slope; + long double slope = covar_pop / var_pop; + valOut = static_cast(slope); } } return mcsv1_UDAF::SUCCESS; diff --git a/utils/regr/regr_sxx.cpp b/utils/regr/regr_sxx.cpp index b4c467fc3..5769a227b 100644 --- a/utils/regr/regr_sxx.cpp +++ b/utils/regr/regr_sxx.cpp @@ -39,8 +39,8 @@ static Add_regr_sxx_ToUDAFMap addToMap; struct regr_sxx_data { uint64_t cnt; - double sumx; - double sumx2; // sum of (x squared) + long double sumx; + long double sumx2; // sum of (x squared) }; @@ -128,11 +128,11 @@ mcsv1_UDAF::ReturnCode regr_sxx::evaluate(mcsv1Context* context, static_any::any double N = data->cnt; if (N > 0) { - double sumx = data->sumx; - double sumx2 = data->sumx2; + long double sumx = data->sumx; + long double sumx2 = data->sumx2; - double var_popx = (sumx2 - (sumx * sumx / N)) / N; - valOut = data->cnt * var_popx; + long double var_popx = (sumx2 - (sumx * sumx / N)) / N; + valOut = static_cast(data->cnt * var_popx); } return mcsv1_UDAF::SUCCESS; } diff --git a/utils/regr/regr_sxy.cpp b/utils/regr/regr_sxy.cpp index 9cdbffb6a..76e1373c4 100644 --- a/utils/regr/regr_sxy.cpp +++ b/utils/regr/regr_sxy.cpp @@ -39,9 +39,9 @@ static Add_regr_sxy_ToUDAFMap addToMap; struct regr_sxy_data { uint64_t cnt; - double sumx; - double sumy; - double sumxy; // sum of x * y + long double sumx; + long double sumy; + long double sumxy; // sum of x * y }; @@ -88,8 +88,8 @@ mcsv1_UDAF::ReturnCode regr_sxy::nextValue(mcsv1Context* context, ColumnDatum* v static_any::any& valIn_y = valsIn[0].columnData; static_any::any& valIn_x = valsIn[1].columnData; struct regr_sxy_data* data = (struct regr_sxy_data*)context->getUserData()->data; - double valx = 0.0; - double valy = 0.0; + long double valx = 0.0; + long double valy = 0.0; valx = convertAnyTo(valIn_x); valy = convertAnyTo(valIn_y); @@ -145,13 +145,13 @@ mcsv1_UDAF::ReturnCode regr_sxy::evaluate(mcsv1Context* context, static_any::any double N = data->cnt; if (N > 0) { - double sumx = data->sumx; - double sumy = data->sumy; - double sumxy = data->sumxy; + long double sumx = data->sumx; + long double sumy = data->sumy; + long double sumxy = data->sumxy; - double covar_pop = (sumxy - ((sumx * sumy) / N)) / N; - double regr_sxy = data->cnt * covar_pop; - valOut = regr_sxy; + long double covar_pop = (sumxy - ((sumx * sumy) / N)) / N; + long double regr_sxy = data->cnt * covar_pop; + valOut = static_cast(regr_sxy); } return mcsv1_UDAF::SUCCESS; } diff --git a/utils/regr/regr_syy.cpp b/utils/regr/regr_syy.cpp index 98e614a8e..014a28389 100644 --- a/utils/regr/regr_syy.cpp +++ b/utils/regr/regr_syy.cpp @@ -39,8 +39,8 @@ static Add_regr_syy_ToUDAFMap addToMap; struct regr_syy_data { uint64_t cnt; - double sumy; - double sumy2; // sum of (y squared) + long double sumy; + long double sumy2; // sum of (y squared) }; @@ -125,14 +125,14 @@ mcsv1_UDAF::ReturnCode regr_syy::subEvaluate(mcsv1Context* context, const UserDa mcsv1_UDAF::ReturnCode regr_syy::evaluate(mcsv1Context* context, static_any::any& valOut) { struct regr_syy_data* data = (struct regr_syy_data*)context->getUserData()->data; - double N = data->cnt; + long double N = data->cnt; if (N > 0) { - double sumy = data->sumy; - double sumy2 = data->sumy2; + long double sumy = data->sumy; + long double sumy2 = data->sumy2; - double var_popy = (sumy2 - (sumy * sumy / N)) / N; - valOut = data->cnt * var_popy; + long double var_popy = (sumy2 - (sumy * sumy / N)) / N; + valOut = static_cast(data->cnt * var_popy); } return mcsv1_UDAF::SUCCESS; }