diff options
author | tlatorre <tlatorre@uchicago.edu> | 2018-08-14 10:08:27 -0500 |
---|---|---|
committer | tlatorre <tlatorre@uchicago.edu> | 2018-08-14 10:08:27 -0500 |
commit | 24c8bcfe7f76b20124e2862ea050f815c0f768e7 (patch) | |
tree | e5bdbd638a2c7f38f1c094cc9e95cbdfe05b9481 /src/test-charge.c | |
parent | 0b7f199c0d93074484ea580504485a32dc29f5e2 (diff) | |
download | sddm-24c8bcfe7f76b20124e2862ea050f815c0f768e7.tar.gz sddm-24c8bcfe7f76b20124e2862ea050f815c0f768e7.tar.bz2 sddm-24c8bcfe7f76b20124e2862ea050f815c0f768e7.zip |
move everything to src directory
Diffstat (limited to 'src/test-charge.c')
-rw-r--r-- | src/test-charge.c | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/src/test-charge.c b/src/test-charge.c new file mode 100644 index 0000000..0b73d24 --- /dev/null +++ b/src/test-charge.c @@ -0,0 +1,86 @@ +#include <stdio.h> +#include "sno_charge.h" +#include <unistd.h> +#include <stdlib.h> +#include <errno.h> /* for errno */ +#include <string.h> /* for strerror() */ + +void usage(void) +{ + fprintf(stderr,"Usage: ./test-charge\n"); + fprintf(stderr," -n number of PE\n"); + fprintf(stderr," -b number of bins\n"); + fprintf(stderr," --xmin Lowest value of charge\n"); + fprintf(stderr," --xmax Highest value of charge\n"); + fprintf(stderr," -h Display this help message\n"); + exit(1); +} + +int main(int argc, char **argv) +{ + size_t i, j, nq, n; + double *x; + double qlo, qhi; + + n = 10; + nq = 1000; + qlo = -1.0; + qhi = 1.0; + + for (i = 1; i < argc; i++) { + if (!strncmp(argv[i], "--", 2)) { + if (!strcmp(argv[i]+2,"xmin")) { + qlo = strtod(argv[++i],NULL); + continue; + } else if (!strcmp(argv[i]+2,"xmax")) { + qhi = strtod(argv[++i],NULL); + continue; + } + } else if (argv[i][0] == '-') { + switch (argv[i][1]) { + case 'n': + n = atoi(argv[++i]); + break; + case 'b': + nq = atoi(argv[++i]); + break; + case 'h': + usage(); + default: + fprintf(stderr, "unrecognized option '%s'\n", argv[i]); + exit(1); + } + } + } + + init_charge(); + + x = malloc(nq*sizeof(double)); + + for (i = 0; i < nq; i++) { + x[i] = qlo + (qhi-qlo)*i/(nq-1); + } + + FILE *pipe = popen("graph -T X --bitmap-size 2000x2000 -X 'Charge (PE)' -Y Probability", "w"); + + if (!pipe) { + fprintf(stderr, "error running graph command: %s\n", strerror(errno)); + exit(1); + } + + for (i = 1; i <= n; i++) { + for (j = 0; j < nq; j++) { + fprintf(pipe, "%.10f %.10f\n", x[j], pq(x[j],i)); + } + fprintf(pipe, "\n\n"); + } + + if (pclose(pipe)) { + fprintf(stderr, "error closing graph command: %s\n", strerror(errno)); + exit(1); + } + + free(x); + + return 0; +} |