Lines Matching defs:dn

68 /*   dn is the source number (assumed valid)			      */
81 decimal32 * decimal32FromNumber(decimal32 *d32, const decNumber *dn,
96 ae=dn->exponent+dn->digits-1; /* [0 if special] */
97 if (dn->digits>DECIMAL32_Pmax /* too many digits */
102 decNumberPlus(&dw, dn, &dc); /* (round and check) */
104 dw.bits|=dn->bits&DECNEG;
106 dn=&dw; /* use the work number */
109 if (dn->bits&DECSPECIAL) { /* a special value */
110 if (dn->bits&DECINF) targ=DECIMAL_Inf<<24;
112 if ((*dn->lsu!=0 || dn->digits>1) /* non-zero coefficient */
113 && (dn->digits<DECIMAL32_Pmax)) { /* coefficient fits */
114 decDigitsToDPD(dn, &targ, 0);
116 if (dn->bits&DECNAN) targ|=DECIMAL_NaN<<24;
122 if (decNumberIsZero(dn)) { /* is a zero */
124 if (dn->exponent<-DECIMAL32_Bias) {
129 exp=dn->exponent+DECIMAL32_Bias; /* bias exponent */
141 /* the dn is known to fit, but it may need to be padded */
142 exp=(uInt)(dn->exponent+DECIMAL32_Bias); /* bias exponent */
151 targ=BIN2DPD[dn->lsu[0]];
152 if (dn->digits>3) targ|=(uInt)(BIN2DPD[dn->lsu[1]])<<10;
153 msd=(dn->digits==7 ? dn->lsu[2] : 0);
156 decDigitsToDPD(dn, &targ, pad);
170 if (dn->bits&DECNEG) targ|=0x80000000; /* add sign bit */
183 /* dn is the target number, with appropriate space */
186 decNumber * decimal32ToNumber(const decimal32 *d32, decNumber *dn) {
198 decNumberZero(dn); /* clean number */
199 if (sour&0x80000000) dn->bits=DECNEG; /* set sign if negative */
206 dn->bits|=DECINF;
207 return dn; /* no coefficient needed */
209 else if (sour&0x02000000) dn->bits|=DECSNAN;
210 else dn->bits|=DECNAN;
214 dn->exponent=(exp<<6)+((sour>>20)&0x3f)-DECIMAL32_Bias; /* unbiased */
221 decDigitsFromDPD(dn, &sour, 3); /* process 3 declets */
222 return dn;
225 if (!sour) return dn; /* easy: coefficient is 0 */
227 decDigitsFromDPD(dn, &sour, 2); /* process 2 declets */
229 decDigitsFromDPD(dn, &sour, 1); /* process 1 declet */
230 return dn;
248 decNumber dn; /* work */
249 decimal32ToNumber(d32, &dn);
250 decNumberToEngString(&dn, string);
388 decNumber dn; /* .. */
393 decNumberFromString(&dn, string, &dc); /* will round if needed */
394 decimal32FromNumber(result, &dn, &dc);
408 decNumber dn; /* work */
412 decimal32ToNumber(d32, &dn);
413 decimal32FromNumber(&canon, &dn, &dc);/* canon will now be canonical */
425 decNumber dn; /* work */
428 decimal32ToNumber(d32, &dn);
429 decimal32FromNumber(result, &dn, &dc);/* result will now be canonical */