Lines Matching full:dn

70 /*   dn is the source number (assumed valid)			      */
83 decimal32 * decimal32FromNumber(decimal32 *d32, const decNumber *dn, in decimal32FromNumber() argument
98 ae=dn->exponent+dn->digits-1; /* [0 if special] */ in decimal32FromNumber()
99 if (dn->digits>DECIMAL32_Pmax /* too many digits */ in decimal32FromNumber()
104 decNumberPlus(&dw, dn, &dc); /* (round and check) */ in decimal32FromNumber()
106 dw.bits|=dn->bits&DECNEG; in decimal32FromNumber()
108 dn=&dw; /* use the work number */ in decimal32FromNumber()
111 if (dn->bits&DECSPECIAL) { /* a special value */ in decimal32FromNumber()
112 if (dn->bits&DECINF) targ=DECIMAL_Inf<<24; in decimal32FromNumber()
114 if ((*dn->lsu!=0 || dn->digits>1) /* non-zero coefficient */ in decimal32FromNumber()
115 && (dn->digits<DECIMAL32_Pmax)) { /* coefficient fits */ in decimal32FromNumber()
116 decDigitsToDPD(dn, &targ, 0); in decimal32FromNumber()
118 if (dn->bits&DECNAN) targ|=DECIMAL_NaN<<24; in decimal32FromNumber()
124 if (decNumberIsZero(dn)) { /* is a zero */ in decimal32FromNumber()
126 if (dn->exponent<-DECIMAL32_Bias) { in decimal32FromNumber()
131 exp=dn->exponent+DECIMAL32_Bias; /* bias exponent */ in decimal32FromNumber()
143 /* the dn is known to fit, but it may need to be padded */ in decimal32FromNumber()
144 exp=(uInt)(dn->exponent+DECIMAL32_Bias); /* bias exponent */ in decimal32FromNumber()
153 targ=BIN2DPD[dn->lsu[0]]; in decimal32FromNumber()
154 if (dn->digits>3) targ|=(uInt)(BIN2DPD[dn->lsu[1]])<<10; in decimal32FromNumber()
155 msd=(dn->digits==7 ? dn->lsu[2] : 0); in decimal32FromNumber()
158 decDigitsToDPD(dn, &targ, pad); in decimal32FromNumber()
172 if (dn->bits&DECNEG) targ|=0x80000000; /* add sign bit */ in decimal32FromNumber()
186 /* dn is the target number, with appropriate space */
189 decNumber * decimal32ToNumber(const decimal32 *d32, decNumber *dn) { in decimal32ToNumber() argument
202 decNumberZero(dn); /* clean number */ in decimal32ToNumber()
203 if (sour&0x80000000) dn->bits=DECNEG; /* set sign if negative */ in decimal32ToNumber()
210 dn->bits|=DECINF; in decimal32ToNumber()
211 return dn; /* no coefficient needed */ in decimal32ToNumber()
213 else if (sour&0x02000000) dn->bits|=DECSNAN; in decimal32ToNumber()
214 else dn->bits|=DECNAN; in decimal32ToNumber()
218 dn->exponent=(exp<<6)+((sour>>20)&0x3f)-DECIMAL32_Bias; /* unbiased */ in decimal32ToNumber()
225 decDigitsFromDPD(dn, &sour, 3); /* process 3 declets */ in decimal32ToNumber()
226 return dn; in decimal32ToNumber()
229 if (!sour) return dn; /* easy: coefficient is 0 */ in decimal32ToNumber()
231 decDigitsFromDPD(dn, &sour, 2); /* process 2 declets */ in decimal32ToNumber()
233 decDigitsFromDPD(dn, &sour, 1); /* process 1 declet */ in decimal32ToNumber()
234 return dn; in decimal32ToNumber()
252 decNumber dn; /* work */ in decimal32ToEngString() local
253 decimal32ToNumber(d32, &dn); in decimal32ToEngString()
254 decNumberToEngString(&dn, string); in decimal32ToEngString()
393 decNumber dn; /* .. */ in decimal32FromString() local
398 decNumberFromString(&dn, string, &dc); /* will round if needed */ in decimal32FromString()
399 decimal32FromNumber(result, &dn, &dc); in decimal32FromString()
413 decNumber dn; /* work */ in decimal32IsCanonical() local
417 decimal32ToNumber(d32, &dn); in decimal32IsCanonical()
418 decimal32FromNumber(&canon, &dn, &dc);/* canon will now be canonical */ in decimal32IsCanonical()
430 decNumber dn; /* work */ in decimal32Canonical() local
433 decimal32ToNumber(d32, &dn); in decimal32Canonical()
434 decimal32FromNumber(result, &dn, &dc);/* result will now be canonical */ in decimal32Canonical()