From 24c8bcfe7f76b20124e2862ea050f815c0f768e7 Mon Sep 17 00:00:00 2001 From: tlatorre Date: Tue, 14 Aug 2018 10:08:27 -0500 Subject: move everything to src directory --- src/test-charge.c | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 src/test-charge.c (limited to 'src/test-charge.c') 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 +#include "sno_charge.h" +#include +#include +#include /* for errno */ +#include /* 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; +} -- cgit