]> www.ginac.de Git - cln.git/blobdiff - src/float/lfloat/elem/cl_LF_futrunc.cc
Extend the exponent range from 32 bits to 64 bits on selected platforms.
[cln.git] / src / float / lfloat / elem / cl_LF_futrunc.cc
index fe31e900dfa3f176a98cd292fb53d381b97612dd..0afe85c6231831f85833f3489cf70bbc48320ebd 100644 (file)
@@ -29,18 +29,18 @@ const cl_LF futruncate (const cl_LF& x)
 // e>=16n -> Ergebnis x.
 #if 0
       var cl_signean sign;
-      var sintL exp;
+      var sintE exp;
       var const uintD* mantMSDptr;
       var uintC mantlen;
       LF_decode(x, { return x; }, sign=,exp=,mantMSDptr=,mantlen=,);
       if (exp<=0) { return encode_LF1s(sign,mantlen); } // e<=0 -> Ergebnis +-1.0
-      if ((uintL)exp >= intDsize*mantlen) // e>=16n -> x als Ergebnis
+      if ((uintE)exp >= intDsize*mantlen) // e>=16n -> x als Ergebnis
         { return x; }
         else
         // 0 < e < 16n
         { // Testen, ob alle hinteren 16n-e Bits =0 sind:
-          var uintC count = floor((uintL)exp,intDsize); // zu kopierende Digits, < mantlen
-          var uintC bitcount = ((uintL)exp) % intDsize; // zu kopierende Bits danach, >=0, <intDsize
+          var uintC count = floor((uintE)exp,intDsize); // zu kopierende Digits, < mantlen
+          var uintC bitcount = ((uintE)exp) % intDsize; // zu kopierende Bits danach, >=0, <intDsize
           var uintD mask = minus_bitm(intDsize-bitcount); // Maske mit bitcount Bits
           var uintD* mantptr = mantMSDptr mspop count;
           if (   ((mspref(mantptr,0) & ~mask) ==0)
@@ -64,12 +64,12 @@ const cl_LF futruncate (const cl_LF& x)
         }
 #else
       var uintC len = TheLfloat(x)->len;
-      var uintL uexp = TheLfloat(x)->expo;
+      var uintE uexp = TheLfloat(x)->expo;
       if (uexp <= LF_exp_mid)
         { if (uexp == 0) { return x; } // x=0.0 -> Ergebnis 0.0
           return encode_LF1s(TheLfloat(x)->sign,len); // e<=0 -> Ergebnis +-1.0
         }
-      var uintL exp = uexp - LF_exp_mid;
+      var uintE exp = uexp - LF_exp_mid;
       if (exp >= intDsize*len) // e>=16n -> x als Ergebnis
         { return x; }
       // 0 < e < 16n