diff options
| author | Florian Fischer <florian.fl.fischer@fau.de> | 2020-05-06 16:56:32 +0200 |
|---|---|---|
| committer | Florian Fischer <florian.fl.fischer@fau.de> | 2020-06-02 11:18:47 +0200 |
| commit | 8174a918ea3b7cb216bf7ea98cfdc10661b5c37d (patch) | |
| tree | 0747ec3ccb9f8d7eeccfac35977fc17855ca3bbb /src/benchmarks/cfrac/padd.c | |
| parent | 8f52e8fc02dd235582f5961941bcd564e9a681cd (diff) | |
| download | allocbench-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/padd.c')
| -rw-r--r-- | src/benchmarks/cfrac/padd.c | 94 |
1 files changed, 0 insertions, 94 deletions
diff --git a/src/benchmarks/cfrac/padd.c b/src/benchmarks/cfrac/padd.c deleted file mode 100644 index 62b93d5..0000000 --- a/src/benchmarks/cfrac/padd.c +++ /dev/null @@ -1,94 +0,0 @@ -#include "pdefs.h" -#include "precision.h" -#include <string.h> - -#ifdef ASM_16BIT -#include "asm16bit.h" -#endif - -/* - * Add - * - * This will work correctly if -0 is passed as input - */ -precision padd(u, v) - register precision v; -#ifndef ASM_16BIT - precision u; -{ - register digitPtr wPtr, uPtr, vPtr; -#else - register precision u; -{ - register digitPtr wPtr; - digitPtr uPtr; -#endif - precision w; /* function result */ - register accumulator temp; /* 0 <= temp < 2*base */ - register digit carry; /* 0 <= carry <= 1 */ -#ifdef ASM_16BIT - register int size; -#endif - - (void) pparm(u); - (void) pparm(v); - if (u->sign != v->sign) { /* Are we are actually subtracting? */ - w = pUndef; - if (v->sign) { - v->sign = !v->sign; /* can't generate -0 */ - pset(&w, psub(u, v)); - v->sign = !v->sign; - } else { - u->sign = !u->sign; /* can't generate -0 */ - pset(&w, psub(v, u)); - u->sign = !u->sign; - } - } else { - if (u->size < v->size) { /* u is always biggest number */ - w = u; u = v; v = w; - } - - w = palloc(u->size+1); /* there is at most one added digit */ - if (w == pUndef) return w; /* arguments not destroyed */ - - w->sign = u->sign; - - uPtr = u->value; - wPtr = w->value; -#ifndef ASM_16BIT - vPtr = v->value; - carry = 0; - do { /* Add digits in both args */ - temp = *uPtr++ + *vPtr++; /* 0 <= temp < 2*base-1 */ - temp += carry; /* 0 <= temp < 2*base */ - carry = divBase(temp); /* 0 <= carry <= 1 */ - *wPtr++ = modBase(temp); /* mod has positive args */ - } while (vPtr < v->value + v->size); - - while (uPtr < u->value + u->size) { /* propogate carry */ - temp = *uPtr++ + carry; - carry = divBase(temp); - *wPtr++ = modBase(temp); - } - *wPtr = carry; -#else - size = v->size; - temp = u->size - size; - carry = memaddw(wPtr, uPtr, v->value, size); - if (temp > 0) { - memcpy(wPtr + size, uPtr + size, temp * sizeof(digit)); - if (carry) { - carry = memincw(wPtr + size, temp); - } - } - wPtr[u->size] = carry; /* yes, I do mean u->size */ -#endif - if (carry == 0) { - --(w->size); - } - } - - pdestroy(u); - pdestroy(v); - return presult(w); -} |
