/* */ #ifndef H_CDF #define H_CDF #include #include #include #include #include #include #include #include typedef union { int64_t i; uint64_t u; double d; } Number; typedef struct { Number data; uint64_t count; } DistRecord; static int parse_options(int argc, char*const* argv); static void help(); static int process_data(FILE *file); static DistRecord *expand_array(DistRecord *records, size_t *capacity); static int read_data_int(DistRecord **records, size_t capacity, FILE *file); static int read_data_uint(DistRecord **records, size_t capacity, FILE *file); static int read_data_fp(DistRecord **records, size_t capacity, FILE *file); static int print_data_fp(DistRecord *records, long double *freqs, size_t cnt); static int print_data_int(DistRecord *records, long double *freqs, size_t cnt); static int print_data_uint(DistRecord *records, long double *freqs, size_t cnt); #endif