static void variance_fp_recurrence_next(double *m, double *s, ulonglong *count, double nr)
{
  *count += 1;

  if (*count == 1) 
  {
    *m= nr;
    *s= 0;
  }
  else
  {
    double m_kminusone= *m;
    volatile double diff= nr - m_kminusone;
    *m= m_kminusone + diff / (double) *count;
    *s= *s + diff * (nr - *m);
  }
}
static void variance_fp_recurrence_next(double *m, double *s, ulonglong *count, double nr)
{
  *count += 1;

  if (*count == 1) 
  {
    *m= nr;
    *s= 0;
  }
  else
  {
    double m_kminusone= *m;
    volatile double diff= nr - m_kminusone;
    *m= m_kminusone + diff / (double) *count;
    *s= *s + diff * (nr - *m);
  }
}