Skip to content
Snippets Groups Projects
Commit 5c285c8c authored by Uwe Schulzweida's avatar Uwe Schulzweida
Browse files

varray_kurt: removed unused variable rsum4w.

parent c8f7d7da
No related branches found
No related tags found
No related merge requests found
......@@ -965,8 +965,7 @@ template double varray_weighted_var_1(const size_t len, const Varray<double> &v,
template <typename T>
static void
varray_prekurtsum(size_t len, const Varray<T> &v, const double mean, double &rsum3w, double &rsum4w, double &rsum2diff,
double &rsum4diff)
varray_prekurtsum(size_t len, const Varray<T> &v, const double mean, double &rsum3w, double &rsum2diff, double &rsum4diff)
{
rsum2diff = rsum4diff = 0.0;
for (size_t i = 0; i < len; ++i)
......@@ -976,15 +975,13 @@ varray_prekurtsum(size_t len, const Varray<T> &v, const double mean, double &rsu
rsum4diff += vdiff * vdiff * vdiff * vdiff;
}
rsum3w = len;
rsum4w = len;
}
template <typename T>
static void
varray_prekurtsum_mv(size_t len, const Varray<T> &v, T missval, const double mean, double &rsum3w, double &rsum4w, double &rsum2diff,
double &rsum4diff)
varray_prekurtsum_mv(size_t len, const Varray<T> &v, T missval, const double mean, double &rsum3w, double &rsum2diff, double &rsum4diff)
{
rsum3w = rsum4w = rsum2diff = rsum4diff = 0.0;
rsum3w = rsum2diff = rsum4diff = 0.0;
for (size_t i = 0; i < len; ++i)
if (!DBL_IS_EQUAL(v[i], missval))
{
......@@ -992,7 +989,6 @@ varray_prekurtsum_mv(size_t len, const Varray<T> &v, T missval, const double mea
rsum2diff += vdiff * vdiff;
rsum4diff += vdiff * vdiff * vdiff * vdiff;
rsum3w += 1;
rsum4w += 1;
}
}
......@@ -1001,22 +997,21 @@ double
varray_kurt(size_t len, const Varray<T> &v, size_t nmiss, T missval)
{
double rsum3w; // 3rd moment variables
double rsum4w; // 4th moment variables
double rsum2diff, rsum4diff;
double rsum, rsumw;
if (nmiss > 0)
{
varray_prevarsum0_mv(len, v, missval, rsum, rsumw);
varray_prekurtsum_mv(len, v, missval, (rsum / rsumw), rsum3w, rsum4w, rsum2diff, rsum4diff);
varray_prekurtsum_mv(len, v, missval, (rsum / rsumw), rsum3w, rsum2diff, rsum4diff);
}
else
{
varray_prevarsum0(len, v, rsum, rsumw);
varray_prekurtsum(len, v, (rsum / rsumw), rsum3w, rsum4w, rsum2diff, rsum4diff);
varray_prekurtsum(len, v, (rsum / rsumw), rsum3w, rsum2diff, rsum4diff);
}
if (IS_EQUAL(rsum3w, 0.0) || IS_EQUAL(rsum2diff, 0.0)) return missval;
if (is_equal(rsum3w, 0.0) || is_equal(rsum2diff, 0.0)) return missval;
auto rkurt = ((rsum4diff / rsum3w) / std::pow(rsum2diff / rsum3w, 2)) - 3.0;
if (rkurt < 0.0 && rkurt > -1.e-5) rkurt = 0.0;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment