aboutsummaryrefslogtreecommitdiff
path: root/src/benchmarks/cfrac/ptob.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/ptob.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/ptob.c')
-rw-r--r--src/benchmarks/cfrac/ptob.c81
1 files changed, 0 insertions, 81 deletions
diff --git a/src/benchmarks/cfrac/ptob.c b/src/benchmarks/cfrac/ptob.c
deleted file mode 100644
index d5b04c1..0000000
--- a/src/benchmarks/cfrac/ptob.c
+++ /dev/null
@@ -1,81 +0,0 @@
-#include "pdefs.h"
-#include "precision.h"
-
-/*
- * Convert a precision to a given base (the sign is ignored)
- *
- * Input:
- * u - the number to convert
- * dest - Where to put the ASCII representation radix
- * WARNING! Not '\0' terminated, this is an exact image
- * size - the number of digits of dest.
- * (alphabet[0] padded on left)
- * if size is too small, truncation occurs on left
- * alphabet - A mapping from each radix digit to it's character digit
- * (note: '\0' is perfectly OK as a digit)
- * radix - The size of the alphabet, and the conversion radix
- * 2 <= radix < 256.
- *
- * Returns:
- * -1 if invalid radix
- * 0 if successful
- * >0 the number didn't fit
- */
-int ptob(u, dest, size, alphabet, radix)
- precision u; /* the number to convert */
- char *dest; /* where to place the converted ascii */
- unsigned int size; /* the size of the result in characters */
- char *alphabet; /* the character set forming the radix */
- register unsigned int radix; /* the size of the character set */
-{
- register accumulator temp;
- register unsigned int i;
- register char *chp;
- unsigned int lgclump;
- int res = 0;
-
- precision r = pUndef, v = pUndef, pbase = pUndef;
-
- if (radix > 256 || radix < 2) return -1;
- if (size == 0) return 1;
-
- (void) pparm(u);
- temp = radix;
- i = 1;
- while (temp * radix > temp) {
- temp *= radix;
- i++;
- }
- lgclump = i;
-
- pset(&v, pabs(u));
- pset(&pbase, utop(temp)); /* assumes accumulator and int are the same! */
-
- chp = dest + size;
- do {
- pdivmod(v, pbase, &v, &r);
- temp = ptou(r); /* assumes accumulator and int are the same! */
- i = lgclump;
- do {
- *--chp = alphabet[temp % radix]; /* remainder */
- temp = temp / radix;
- if (chp == dest) goto bail;
- } while (--i > 0);
- } while pnez(v);
-
- if (chp > dest) do {
- *--chp = *alphabet;
- } while (chp > dest);
-
-bail:
- if (pnez(v) || temp != 0) { /* check for overflow */
- res = 1;
- }
-
- pdestroy(pbase);
- pdestroy(v);
- pdestroy(r);
-
- pdestroy(u);
- return res;
-}