summaryrefslogtreecommitdiff
path: root/sys/src/cmd/unix/drawterm/libmp/mptov.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/src/cmd/unix/drawterm/libmp/mptov.c')
-rw-r--r--sys/src/cmd/unix/drawterm/libmp/mptov.c69
1 files changed, 0 insertions, 69 deletions
diff --git a/sys/src/cmd/unix/drawterm/libmp/mptov.c b/sys/src/cmd/unix/drawterm/libmp/mptov.c
deleted file mode 100644
index fd371d82a..000000000
--- a/sys/src/cmd/unix/drawterm/libmp/mptov.c
+++ /dev/null
@@ -1,69 +0,0 @@
-#include "os.h"
-#include <mp.h>
-#include "dat.h"
-
-#define VLDIGITS (sizeof(vlong)/sizeof(mpdigit))
-
-/*
- * this code assumes that a vlong is an integral number of
- * mpdigits long.
- */
-mpint*
-vtomp(vlong v, mpint *b)
-{
- int s;
- uvlong uv;
-
- if(b == nil)
- b = mpnew(VLDIGITS*sizeof(mpdigit));
- else
- mpbits(b, VLDIGITS*sizeof(mpdigit));
- mpassign(mpzero, b);
- if(v == 0)
- return b;
- if(v < 0){
- b->sign = -1;
- uv = -v;
- } else
- uv = v;
- for(s = 0; s < VLDIGITS && uv != 0; s++){
- b->p[s] = uv;
- uv >>= sizeof(mpdigit)*8;
- }
- b->top = s;
- return b;
-}
-
-vlong
-mptov(mpint *b)
-{
- uvlong v;
- int s;
-
- if(b->top == 0)
- return (vlong) 0;
-
- mpnorm(b);
- if(b->top > VLDIGITS){
- if(b->sign > 0)
- return (vlong)MAXVLONG;
- else
- return (vlong)MINVLONG;
- }
-
- v = (uvlong) 0;
- for(s = 0; s < b->top; s++)
- v |= b->p[s]<<(s*sizeof(mpdigit)*8);
-
- if(b->sign > 0){
- if(v > MAXVLONG)
- v = MAXVLONG;
- } else {
- if(v > MINVLONG)
- v = MINVLONG;
- else
- v = -(vlong)v;
- }
-
- return (vlong)v;
-}