}
double distribution_percentile(distribution_t *dist, double percent) {
- if (percent <= 0 || percent > 100 || dist == NULL) {
+ if (percent < 0 || percent > 100 || dist == NULL) {
errno = EINVAL;
return NAN;
}
pthread_mutex_lock(&d2->mutex);
if (d1->total_sum < d2->total_sum) {
+ d1->total_sum = d2->total_sum - d1->total_sum;
for (size_t i = 0; i < tree_size(d1->num_buckets); ++i) {
if (d1->tree[i].maximum != d2->tree[i].maximum ||
d1->tree[i].bucket_counter > d2->tree[i].bucket_counter) {
d2->tree[i].bucket_counter - d1->tree[i].bucket_counter;
}
} else {
+ d1->total_sum -= d2->total_sum;
for (size_t i = 0; i < tree_size(d1->num_buckets); ++i) {
if (d1->tree[i].maximum != d2->tree[i].maximum ||
d1->tree[i].bucket_counter < d2->tree[i].bucket_counter) {