aboutsummaryrefslogtreecommitdiff
path: root/src/benchmarks/cfrac/itop.c
blob: 87d309af3f1c48488d7e1a2e320767ec722f9c49 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include "pdefs.h"
#include "pcvt.h"
#include "precision.h"

/*
 * Integer to Precision
 */
precision itop(i)
   register int i;
{
   register digitPtr  uPtr;
   register precision u = palloc(INTSIZE);

   if (u == pUndef) return u;

   if (u->sign = (i < 0)) i = -i;
   uPtr	      = u->value;
   do {
      *uPtr++ = modBase(i);
      i	      = divBase(i);
   } while (i != 0);

   u->size = (uPtr - u->value);			/* normalize */
   return presult(u);
}