Hi,
Looks like currently "gsl_rstat_reset" does not reset "median_workspace_p"
member of "gsl_rstat_workspace". This results in wrong median computations
after one reset. Minimum program attached shows the problem.
Actually "gsl_rstat_workspace" does not include an "reset" function which
would be useful.
I am willing to write a simple fix for that.
Thank you,
Pedro Donato
#include <stdio.h>
#include <gsl/gsl_rstat.h>
int main()
{
gsl_rstat_workspace * rstat = gsl_rstat_alloc();
gsl_rstat_add(1.0,rstat);
gsl_rstat_add(2.0,rstat);
gsl_rstat_add(3.0,rstat);
printf("Data = 1, 2, 3\n");
printf("Mean = %lf, Median = %lf \n",
gsl_rstat_mean(rstat), gsl_rstat_median(rstat));
gsl_rstat_reset(rstat);
printf("After reset:\n");
printf("Mean = %lf, Median = %lf \n",
gsl_rstat_mean(rstat), gsl_rstat_median(rstat));
gsl_rstat_add(4.0,rstat);
gsl_rstat_add(5.0,rstat);
gsl_rstat_add(6.0,rstat);
printf("New data added: 4, 5, 6\n");
printf("Mean = %lf, Median = %lf \n",
gsl_rstat_mean(rstat), gsl_rstat_median(rstat));
return 0;
}