aboutsummaryrefslogtreecommitdiff
path: root/src/benchmarks/cfrac/pio.c
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fl.fischer@fau.de>2020-05-06 16:56:32 +0200
committerFlorian Fischer <florian.fl.fischer@fau.de>2020-06-02 11:18:47 +0200
commit8174a918ea3b7cb216bf7ea98cfdc10661b5c37d (patch)
tree0747ec3ccb9f8d7eeccfac35977fc17855ca3bbb /src/benchmarks/cfrac/pio.c
parent8f52e8fc02dd235582f5961941bcd564e9a681cd (diff)
downloadallocbench-8174a918ea3b7cb216bf7ea98cfdc10661b5c37d.tar.gz
allocbench-8174a918ea3b7cb216bf7ea98cfdc10661b5c37d.zip
make the whole project more python idiomatic
* rename src directory to allocbench * make global variable names UPPERCASE * format a lot of code using yapf * use lowercase ld_preload and ld_library_path as Allocator members * name expected Errors 'err' and don't raise a new Exception * disable some pylint messages
Diffstat (limited to 'src/benchmarks/cfrac/pio.c')
-rw-r--r--src/benchmarks/cfrac/pio.c165
1 files changed, 0 insertions, 165 deletions
diff --git a/src/benchmarks/cfrac/pio.c b/src/benchmarks/cfrac/pio.c
deleted file mode 100644
index 16b5bda..0000000
--- a/src/benchmarks/cfrac/pio.c
+++ /dev/null
@@ -1,165 +0,0 @@
-#include <stdio.h>
-#include <ctype.h>
-#include <string.h>
-#include "pdefs.h"
-#include "pcvt.h"
-#include "precision.h"
-
-/*
- * Output a string to a file.
- *
- * Returns:
- * the number of characters written
- * or EOF if error
- */
-static int fouts(stream, chp)
- FILE *stream;
- register char *chp;
-{
- register int count = 0, res = 0;
-
- if (chp != (char *) 0 && *chp != '\0') do {
- count++;
- res = putc(*chp, stream);
- } while (*++chp != '\0' && res != EOF);
-
- if (res != EOF) res = count;
- return res;
-}
-
-/*
- * output the value of a precision to a file (no cr or whitespace)
- *
- * Returns:
- * The number of characters output or EOF if error
- */
-int fputp(stream, p)
- FILE *stream;
- precision p;
-{
- int res;
- char *chp = ptoa(pparm(p));
-
- res = fouts(stream, chp);
- deallocate(chp);
- pdestroy(p);
- return res;
-}
-
-/*
- * Output a precision to stdout with a newline (useful from debugger)
- */
-int putp(p)
- precision p;
-{
- int res;
- char *chp = ptoa(pparm(p));
-
- res = fouts(stdout, chp);
- res = putc('\n', stdout);
- deallocate(chp);
- pdestroy(p);
- return res;
-
-}
-
-/*
- * Output a justified precision
- *
- * Returns: The number of characters in the precision, or EOF if error
- */
-int fprintp(stream, p, minWidth)
- FILE *stream;
- precision p;
- register int minWidth;
-{
- int res;
- char *chp = ptoa(pparm(p));
- int len;
-
- len = strlen(chp);
- if (minWidth < 0) { /* left-justified */
- res = fouts(stream, chp);
- while (minWidth++ < -len) {
- putc(' ', stream);
- }
- } else {
- while (minWidth-- > len) { /* right-justified */
- putc(' ', stream);
- }
- res = fouts(stream, chp);
- }
-
- deallocate(chp);
- pdestroy(p);
- return res;
-}
-
-
-/*
- * Read in a precision type - same as atop but with io
- *
- * leading whitespace skipped
- * an optional leading '-' or '+' followed by digits '0'..'9'
- * leading 0's Ok
- * stops at first unrecognized character
- *
- * Returns: pUndef if EOF or invalid argument (NULL or nondigit as 1st digit)
- */
-precision fgetp(stream)
- FILE *stream;
-{
- precision res = pUndef;
- precision clump = pUndef;
- int sign = 0;
- register int ch;
- register accumulator temp, x;
- register int j;
-
- ch = getc(stream);
- if (ch != EOF) {
- while (isspace(ch)) ch = getc(stream); /* skip whitespace */
- if (ch == '-') {
- sign = 1;
- ch = getc(stream);
- } else if (ch == '+') {
- ch = getc(stream);
- }
- if (isdigit(ch)) {
- pset(&res, pzero);
- pset(&clump, utop(aDigit));
- do {
- j = aDigitLog-1;
- temp = ch - '0';
- do {
- if (!isdigit(ch = getc(stream))) goto atoplast;
- temp = temp * aBase + (ch - '0');
- } while (--j > 0);
- pset(&res, padd(pmul(res, clump), utop(temp)));
- } while (isdigit(ch = getc(stream)));
- goto atopdone;
-atoplast:
- x = aBase;
- while (j++ < aDigitLog-1) {
- x *= aBase;
- }
- pset(&res, padd(pmul(res, utop(x)), utop(temp)));
-atopdone:
- if (ch != EOF) ungetc(ch, stream);
- if (sign) {
- pset(&res, pneg(res));
- }
- } else {
- if (ch == EOF) {
- res = pUndef;
- } else {
- ungetc(ch, stream);
- }
- }
- } else {
- res = pUndef;
- }
- pdestroy(clump);
- if (res == pUndef) return res;
- return presult(res);
-}