diff --git a/utils/regr/regr_sxx.cpp b/utils/regr/regr_sxx.cpp index 0903148dc..beacf14d4 100644 --- a/utils/regr/regr_sxx.cpp +++ b/utils/regr/regr_sxx.cpp @@ -125,14 +125,11 @@ mcsv1_UDAF::ReturnCode regr_sxx::subEvaluate(mcsv1Context* context, const UserDa mcsv1_UDAF::ReturnCode regr_sxx::evaluate(mcsv1Context* context, static_any::any& valOut) { struct regr_sxx_data* data = (struct regr_sxx_data*)context->getUserData()->data; - double N = data->cnt; + long double N = data->cnt; if (N > 0) { - long double sumx = data->sumx; - long double sumx2 = data->sumx2; - - long double var_popx = (sumx2 - (sumx * sumx / N)) / N; - valOut = static_cast(N * var_popx); + long double var_popx = (data->sumx2 - (data->sumx * data->sumx / N)); + valOut = static_cast(var_popx); } return mcsv1_UDAF::SUCCESS; } diff --git a/utils/regr/regr_sxy.cpp b/utils/regr/regr_sxy.cpp index 092d3c375..cad3e69eb 100644 --- a/utils/regr/regr_sxy.cpp +++ b/utils/regr/regr_sxy.cpp @@ -142,15 +142,10 @@ mcsv1_UDAF::ReturnCode regr_sxy::subEvaluate(mcsv1Context* context, const UserDa mcsv1_UDAF::ReturnCode regr_sxy::evaluate(mcsv1Context* context, static_any::any& valOut) { struct regr_sxy_data* data = (struct regr_sxy_data*)context->getUserData()->data; - double N = data->cnt; + long double N = data->cnt; if (N > 0) { - long double sumx = data->sumx; - long double sumy = data->sumy; - long double sumxy = data->sumxy; - - long double covar_pop = (sumxy - ((sumx * sumy) / N)) / N; - long double regr_sxy = data->cnt * covar_pop; + long double regr_sxy = (data->sumxy - ((data->sumx * data->sumy) / N)); valOut = static_cast(regr_sxy); } return mcsv1_UDAF::SUCCESS; diff --git a/utils/regr/regr_syy.cpp b/utils/regr/regr_syy.cpp index 0fc3102ed..4f9797663 100644 --- a/utils/regr/regr_syy.cpp +++ b/utils/regr/regr_syy.cpp @@ -128,11 +128,8 @@ mcsv1_UDAF::ReturnCode regr_syy::evaluate(mcsv1Context* context, static_any::any long double N = data->cnt; if (N > 0) { - long double sumy = data->sumy; - long double sumy2 = data->sumy2; - - long double var_popy = (sumy2 - (sumy * sumy / N)) / N; - valOut = static_cast(N * var_popy); + long double var_popy = (data->sumy2 - (data->sumy * data->sumy / N)); + valOut = static_cast(var_popy); } return mcsv1_UDAF::SUCCESS; }