15 const cl_DF scale_float (const cl_DF& x, sintL delta)
18 // x=0.0 -> x als Ergebnis
19 // delta muß betragsmäßig <= DF_exp_high-DF_exp_low sein.
20 // Neues DF mit um delta vergrößertem Exponenten bilden.
24 #if (cl_word_size==64)
26 DF_decode(x, { return x; }, sign=,exp=,mant=);
30 DF_decode2(x, { return x; }, sign=,exp=,manthi=,mantlo=);
34 { var uintL udelta = delta;
35 if (udelta <= (uintL)(DF_exp_high-DF_exp_low))
37 #if (cl_word_size==64)
38 return encode_DF(sign,exp,mant);
40 return encode_DF(sign,exp,manthi,mantlo);
44 { cl_error_floating_point_overflow(); }
48 { var uintL udelta = -delta;
49 if (udelta <= (uintL)(DF_exp_high-DF_exp_low))
51 #if (cl_word_size==64)
52 return encode_DF(sign,exp,mant);
54 return encode_DF(sign,exp,manthi,mantlo);
58 if (underflow_allowed())
59 { cl_error_floating_point_underflow(); }