diff options
| author | Douglas B. Rumbaugh <doug@douglasrumbaugh.com> | 2025-01-06 12:47:54 -0500 |
|---|---|---|
| committer | Douglas B. Rumbaugh <doug@douglasrumbaugh.com> | 2025-01-06 12:48:09 -0500 |
| commit | ce4be21ca210c61f1e73f8d8432e5d3f8d9e61a5 (patch) | |
| tree | 21e806467e0a36da4d957025e15e1dda93b417e0 /src/cdf.c | |
| parent | bd0772bb4a1950b3f438d7b9d8a82daac796f59d (diff) | |
| download | math-utils-ce4be21ca210c61f1e73f8d8432e5d3f8d9e61a5.tar.gz | |
cdf: Added "reverse" cdf functionality
Diffstat (limited to 'src/cdf.c')
| -rw-r--r-- | src/cdf.c | 43 |
1 files changed, 34 insertions, 9 deletions
@@ -122,25 +122,50 @@ static int read_data_uint(DistRecord **records, size_t capacity, FILE *file) { } static int print_data_fp(DistRecord *records, long double *freqs, size_t cnt) { - for (size_t i=0; i<cnt; i++) { - fprintf(stdout, "%Lf\t%lf\n", freqs[i], records[i].data.d); - } + if (ARG_REVERSE_CDF) { + long double total_freq = 1.0; + for (size_t i=0; i<cnt; i++) { + fprintf(stdout, "%Lf\t%lf\n", total_freq, records[i].data.d); + total_freq -= freqs[i]; + } + + } else { + for (size_t i=0; i<cnt; i++) { + fprintf(stdout, "%Lf\t%lf\n", freqs[i], records[i].data.d); + } + } return 1; } static int print_data_int(DistRecord *records, long double *freqs, size_t cnt) { - for (size_t i=0; i<cnt; i++) { - fprintf(stdout, "%Lf\t%ld\n", freqs[i], records[i].data.i); - } + if (ARG_REVERSE_CDF) { + long double total_freq = 1.0; + for (size_t i=0; i<cnt; i++) { + fprintf(stdout, "%Lf\t%ld\n", total_freq, records[i].data.i); + total_freq -= freqs[i]; + } + } else { + for (size_t i=0; i<cnt; i++) { + fprintf(stdout, "%Lf\t%ld\n", freqs[i], records[i].data.i); + } + } return 1; } static int print_data_uint(DistRecord *records, long double *freqs, size_t cnt) { - for (size_t i=0; i<cnt; i++) { - fprintf(stdout, "%Lf\t%ld\n", freqs[i], records[i].data.u); - } + if (ARG_REVERSE_CDF) { + long double total_freq = 1.0; + for (size_t i=0; i<cnt; i++) { + fprintf(stdout, "%Lf\t%ld\n", total_freq, records[i].data.u); + total_freq -= freqs[i]; + } + } else { + for (size_t i=0; i<cnt; i++) { + fprintf(stdout, "%Lf\t%ld\n", freqs[i], records[i].data.u); + } + } return 1; } |