aboutsummaryrefslogtreecommitdiff
path: root/src/benchmarks/cfrac/pidiv.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/pidiv.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/pidiv.c')
-rw-r--r--src/benchmarks/cfrac/pidiv.c60
1 files changed, 0 insertions, 60 deletions
diff --git a/src/benchmarks/cfrac/pidiv.c b/src/benchmarks/cfrac/pidiv.c
deleted file mode 100644
index 61c09a7..0000000
--- a/src/benchmarks/cfrac/pidiv.c
+++ /dev/null
@@ -1,60 +0,0 @@
-#include "pdefs.h"
-#include "precision.h"
-#ifdef ASM_16BIT
-#include "asm16bit.h"
-#endif
-
-/*
- * Single-digit divide
- */
-precision pidiv(u, v)
- register precision u;
- int v;
-{
-#ifndef ASM_16BIT
- register digitPtr uPtr, qPtr;
- register accumulator temp; /* 0 <= temp < base^2 */
-#endif
- register digit r, d; /* 0 <= r,d < base */
- register posit m;
- register precision q;
-
- (void) pparm(u);
-
- if (v < 0) d = (digit) -v; else d = (digit) v;
- if (d >= BASE) {
- q = pnew(errorp(PDOMAIN, "pidiv", "divisor too big for single digit"));
- goto done;
- }
- if (d == 0) {
- q = pnew(errorp(PDOMAIN, "pidiv", "divide by zero"));
- goto done;
- }
- m = u->size;
- q = palloc(m);
- if (q == pUndef) goto done;
-
-#ifndef ASM_16BIT
- qPtr = q->value + m;
- uPtr = u->value + m;
- r = 0; /* r is current remainder */
- do {
- temp = mulBase(r); /* 0 <= temp <= (base-1)^2 */
- temp += *--uPtr; /* 0 <= temp <= base(base-1) */
- r = uModDiv(temp, d, --qPtr); /* 0 <= r < base */
- } while (uPtr > u->value);
-#else
- r = memdivw1(q->value, u->value, m, d);
-#endif
- /*
- * normalize q
- */
- if (m > 1 && q->value[m-1] == 0) {
- --(q->size);
- }
- q->sign = (u->sign != (v < 0));
- if (q->size == 1 && *(q->value) == 0) q->sign = false;
-done:
- pdestroy(u);
- return presult(q);
-}