7 #include "cln/sfloat.h"
17 const cl_SF scale_float (const cl_SF& x, sintC delta)
20 // x=0.0 -> x als Ergebnis
21 // delta muß betragsmäßig <= SF_exp_high-SF_exp_low sein.
22 // Neues SF mit um delta vergrößertem Exponenten bilden.
27 SF_decode(x, { return x; }, sign=,exp=,mant=);
30 { var uintC udelta = delta;
31 if (udelta <= (uintL)(SF_exp_high-SF_exp_low))
33 return encode_SF(sign,exp,mant);
36 { throw floating_point_overflow_exception(); }
40 { var uintC udelta = -delta;
41 if (udelta <= (uintL)(SF_exp_high-SF_exp_low))
43 return encode_SF(sign,exp,mant);
46 if (underflow_allowed())
47 { throw floating_point_underflow_exception(); }