Lines Matching defs:pd

37  * Convert a hexadecimal record in *pd to unpacked form in *pu.
39 * Up to 30 hexadecimal digits from pd->ds are converted to a binary
42 * pd->ds, the least significant bit of px->significand will be set.
45 __hex_to_unpacked(decimal_record *pd, unpacked *pu)
49 pu->sign = pd->sign;
50 pu->fpclass = pd->fpclass;
54 * radix point in *pd lies to the right of the last (base sixteen)
58 pu->exponent = pd->exponent + (pd->ndigits << 2) - 1;
64 n = pd->ndigits;
68 pu->significand[i >> 3] |= HEXVAL(pd->ds[i]) <<
91 if (pd->ndigits > 30 || pd->more)
97 * decimal record *pd to a floating point value *px observing the round-
101 * These routines assume pd->fpclass is either fp_zero or fp_normal.
102 * If pd->fpclass is fp_zero, *px is set to zero with the sign indicated
103 * by pd->sign and no exceptions are raised. Otherwise, pd->ds must
104 * contain a string of hexadecimal digits of length pd->ndigits > 0, and
108 * (-1)^(pd->sign) * m * 2^(pd->exponent)
114 __hex_to_single(decimal_record *pd, enum fp_direction_type rd, single *px,
121 if (pd->fpclass == fp_zero) {
122 kluge.f.msw.sign = pd->sign? 1 : 0;
127 __hex_to_unpacked(pd, &u);
135 __hex_to_double(decimal_record *pd, enum fp_direction_type rd, double *px,
142 if (pd->fpclass == fp_zero) {
143 kluge.f.msw.sign = pd->sign? 1 : 0;
149 __hex_to_unpacked(pd, &u);
159 __hex_to_quadruple(decimal_record *pd, enum fp_direction_type rd, quadruple *px,
166 if (pd->fpclass == fp_zero) {
167 kluge.f.msw.sign = pd->sign? 1 : 0;
175 __hex_to_unpacked(pd, &u);
185 __hex_to_extended(decimal_record *pd, enum fp_direction_type rd, extended *px,
192 if (pd->fpclass == fp_zero) {
193 kluge.f.msw.sign = pd->sign? 1 : 0;
201 __hex_to_unpacked(pd, &u);