packages feed

data-sketches-core-0.2.0.1: cbits/req.h

#ifndef REQ_H
#define REQ_H

#include <stdint.h>

typedef struct req_sketch req_sketch_t;

req_sketch_t *req_new(uint32_t k, int rank_accuracy, uint64_t seed);
void          req_free(req_sketch_t *sk);

void     req_insert(req_sketch_t *sk, double val);
void     req_merge(req_sketch_t *dst, const req_sketch_t *src);

uint64_t req_count(const req_sketch_t *sk);
int      req_is_empty(const req_sketch_t *sk);
double   req_min(const req_sketch_t *sk);
double   req_max(const req_sketch_t *sk);
double   req_sum(const req_sketch_t *sk);
int      req_retained(const req_sketch_t *sk);
uint32_t req_k(const req_sketch_t *sk);
int      req_rank_accuracy(const req_sketch_t *sk);
int      req_num_levels(const req_sketch_t *sk);
int      req_criterion(const req_sketch_t *sk);
void     req_set_criterion(req_sketch_t *sk, int crit);

uint64_t req_count_with_criterion(req_sketch_t *sk, double value);
double   req_rank(req_sketch_t *sk, double value);
double   req_quantile(req_sketch_t *sk, double norm_rank);

#endif