Lines Matching defs:pd

36  * Rounds decimal record *pd according to modes in *pm, recording exceptions
38 * or non-zero to indicate exact or inexact. pd->ndigits is expected to be
42 decimal_round(decimal_mode *pm, decimal_record *pd, fp_exception_field_type *ps,
61 if (pd->ndigits <= 0)
63 lsd = pd->ds[pd->ndigits - 1] - '0';
68 if (pd->sign != 0)
72 if (pd->sign == 0)
79 for (i = (pd->ndigits - 1); (pd->ds[i] == '9') && (i >= 0); i--)
80 pd->ds[i] = '0';
82 (pd->ds[i])++;
84 pd->ds[0] = '1';
87 pd->exponent++;
89 if (pd->ndigits > 0)
90 pd->ds[pd->ndigits] = '0';
91 pd->ndigits++;
96 if (pd->ndigits <= 0) { /* Create zero string. */
97 pd->ds[0] = '0';
98 pd->ndigits = 1;
101 pd->ds[pd->ndigits] = 0;/* Terminate string. */
125 _big_float *pd, b, d;
141 pd = &d;
143 _big_float_times_power(&d, 2, e, (int) nsig, &pd);
144 switch ((unsigned int)pd) {
163 if (pd != &d)
166 _display_big_float(pd, 10);
171 _fourdigitsquick((short unsigned) pd->bsignificand[pd->blength - 1], s);
176 for (i = (pd->blength - 2); i >= 0; i--) { /* Convert powers of
179 _fourdigitsquick((short unsigned) pd->bsignificand[i], &(ds[is]));
185 *nzeros = pd->bexponent;
186 if (pd != &d)
187 _free_big_float(pd);
337 _unpacked_to_decimal(unpacked *px, decimal_mode *pm, decimal_record *pd,
348 pd->sign = px->sign;
349 pd->fpclass = px->fpclass;
436 pd->ds[ids] = is[ids];
442 pd->ds[ids] = '0';
445 pd->ndigits = ids;
446 pd->exponent = intdigs - ids;
492 pd->exponent = -idsbound;
501 pd->ds[ids++] = '0';
503 pd->ds[ids++] = fs[i - fraczeros];
523 pd->ds[ids] = '0';
525 pd->ndigits = ids;
527 decimal_round(pm, pd, ps, round, sticky);
533 pd->ds[ids] = is[ids];
535 pd->ds[ids] = '0';
547 pd->ds[ids++] = '0';
549 pd->ds[ids++] = fs[i - fraczeros]; /* Copy fraction digits. */
551 pd->ds[ids++] = '0';
553 pd->ndigits = ids;
554 pd->exponent = intdigs - ids;
572 decimal_round(pm, pd, ps, round, sticky);
593 pd->ndigits = 0;
598 pd->ds[ids] = is[ids];
600 pd->ds[ids] = '0';
606 (void) memcpy(&(pd->ds[0]), &(is[0]), ncopy);
613 (void) memset(&(pd->ds[ids]), '0', ncopy);
619 pd->ndigits = ids;
630 decimal_round(pm, pd, ps, round, sticky);
631 for (i = pd->ndigits; i < (pd->ndigits + roundpos); i++)
632 pd->ds[i] = '0'; /* Blank out rounded
634 pd->exponent = 0;
635 pd->ndigits = i;
636 pd->ds[i] = 0; /* Terminate string. */
642 double_to_decimal(double *px, decimal_mode *pm, decimal_record *pd,
650 pd->sign = kluge.f.msw.sign;
651 pd->fpclass = _class_double(px);
652 switch (pd->fpclass) {
663 _unpacked_to_decimal(&u, pm, pd, ps);
668 quadruple_to_decimal(quadruple *px, decimal_mode *pm, decimal_record *pd,
682 pd->sign = kluge.f.msw.sign;
683 pd->fpclass = _class_quadruple(px);
684 switch (pd->fpclass) {
695 _unpacked_to_decimal(&u, pm, pd, ps);