aboutsummaryrefslogtreecommitdiff
path: root/src/benchmarks/cfrac/ltop.c
blob: 33eaea569bd08e329cb0e6cf2f16f93ac82388a4 (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"

/*
 * Long to Precision
 */
precision ltop(l)
   register long l;
{
   register digitPtr  uPtr;
   register precision u = palloc(LONGSIZE);

   if (u == pUndef) return u;

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

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