Compare commits
No commits in common. "6010d99cba4671d190788f49e11b65c6ebe268a5" and "5d28295a15c8e9a7eadbb54e5963b9abd26b7115" have entirely different histories.
6010d99cba
...
5d28295a15
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -189,33 +189,6 @@ ci array_get_90_ci(double xs[], int n)
|
||||||
return array_get_ci((ci) { .low = 0.05, .high = 0.95 }, xs, n);
|
return array_get_ci((ci) { .low = 0.05, .high = 0.95 }, xs, n);
|
||||||
}
|
}
|
||||||
|
|
||||||
double array_get_median(double xs[], int n){
|
|
||||||
int median_k = (int)floor(0.5 * n);
|
|
||||||
return quickselect(median_k, xs, n);
|
|
||||||
}
|
|
||||||
|
|
||||||
void array_print_stats(double xs[], int n){
|
|
||||||
ci ci_90 = array_get_ci((ci) { .low = 0.05, .high = 0.95 }, xs, n);
|
|
||||||
ci ci_80 = array_get_ci((ci) { .low = 0.1, .high = 0.9 }, xs, n);
|
|
||||||
ci ci_50 = array_get_ci((ci) { .low = 0.25, .high = 0.75 }, xs, n);
|
|
||||||
double median = array_get_median(xs, n);
|
|
||||||
double mean = array_mean(xs, n);
|
|
||||||
double std = array_std(xs, n);
|
|
||||||
printf("Mean: %lf\n"
|
|
||||||
" Std: %lf\n"
|
|
||||||
" 5%%: %lf\n"
|
|
||||||
" 10%%: %lf\n"
|
|
||||||
" 25%%: %lf\n"
|
|
||||||
" 50%%: %lf\n"
|
|
||||||
" 75%%: %lf\n"
|
|
||||||
" 90%%: %lf\n"
|
|
||||||
" 95%%: %lf\n",
|
|
||||||
mean, std, ci_90.low, ci_80.low, ci_50.low, median, ci_50.high, ci_80.high, ci_90.high);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Replicate some of the above functions over samplers
|
|
||||||
// However, in the future I'll delete this
|
|
||||||
// There should be a clear boundary between working with samplers and working with an array of samples
|
|
||||||
ci sampler_get_ci(ci interval, double (*sampler)(uint64_t*), int n, uint64_t* seed)
|
ci sampler_get_ci(ci interval, double (*sampler)(uint64_t*), int n, uint64_t* seed)
|
||||||
{
|
{
|
||||||
UNUSED(seed); // don't want to use it right now, but want to preserve ability to do so (e.g., remove parallelism from internals). Also nicer for consistency.
|
UNUSED(seed); // don't want to use it right now, but want to preserve ability to do so (e.g., remove parallelism from internals). Also nicer for consistency.
|
||||||
|
|
|
@ -4,17 +4,13 @@
|
||||||
/* Parallel sampling */
|
/* Parallel sampling */
|
||||||
void sampler_parallel(double (*sampler)(uint64_t* seed), double* results, int n_threads, int n_samples);
|
void sampler_parallel(double (*sampler)(uint64_t* seed), double* results, int n_threads, int n_samples);
|
||||||
|
|
||||||
/* Get median and confidence intervals */
|
/* Get 90% confidence interval */
|
||||||
double array_get_median(double xs[], int n);
|
|
||||||
typedef struct ci_t {
|
typedef struct ci_t {
|
||||||
double low;
|
double low;
|
||||||
double high;
|
double high;
|
||||||
} ci;
|
} ci;
|
||||||
ci array_get_ci(ci interval, double* xs, int n);
|
ci array_get_ci(ci interval, double* xs, int n);
|
||||||
ci array_get_90_ci(double xs[], int n);
|
ci array_get_90_ci(double xs[], int n);
|
||||||
void array_print_stats(double xs[], int n);
|
|
||||||
|
|
||||||
// Deprecated: get confidence intervals directly from samplers
|
|
||||||
ci sampler_get_ci(ci interval, double (*sampler)(uint64_t*), int n, uint64_t* seed);
|
ci sampler_get_ci(ci interval, double (*sampler)(uint64_t*), int n, uint64_t* seed);
|
||||||
ci sampler_get_90_ci(double (*sampler)(uint64_t*), int n, uint64_t* seed);
|
ci sampler_get_90_ci(double (*sampler)(uint64_t*), int n, uint64_t* seed);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user