]> www.ginac.de Git - cln.git/blobdiff - src/float/dfloat/elem/cl_DF_scale_I.cc
Finalize CLN 1.3.7 release.
[cln.git] / src / float / dfloat / elem / cl_DF_scale_I.cc
index 2397882f4efa2754550ae9153a79bd25889c962e..c221fd72e2b958ba056a45cdc1093cc942ca3d6a 100644 (file)
@@ -1,24 +1,26 @@
 // scale_float().
 
 // General includes.
-#include "cl_sysdep.h"
+#include "base/cl_sysdep.h"
 
 // Specification.
-#include "cl_dfloat.h"
+#include "cln/dfloat.h"
 
 
 // Implementation.
 
-#include "cl_DF.h"
-#include "cl_F.h"
-#include "cl_I.h"
+#include "float/dfloat/cl_DF.h"
+#include "float/cl_F.h"
+#include "integer/cl_I.h"
+
+namespace cln {
 
 const cl_DF scale_float (const cl_DF& x, const cl_I& delta)
 {
   // Methode:
   // x=0.0 -> x als Ergebnis
-  // delta muß ein Fixnum betragsmäßig <= DF_exp_high-DF_exp_low sein.
-  // Neues DF mit um delta vergrößertem Exponenten bilden.
+  // delta muß ein Fixnum betragsmäßig <= DF_exp_high-DF_exp_low sein.
+  // Neues DF mit um delta vergrößertem Exponenten bilden.
       // x entpacken:
       var cl_signean sign;
       var sintL exp;
@@ -32,9 +34,9 @@ const cl_DF scale_float (const cl_DF& x, const cl_I& delta)
 #endif
       if (!minusp(delta))
         // delta>=0
-        { var uintL udelta;
+        { var uintV udelta;
           if (fixnump(delta)
-              && ((udelta = FN_to_L(delta)) <= (uintL)(DF_exp_high-DF_exp_low))
+              && ((udelta = FN_to_V(delta)) <= (uintV)(DF_exp_high-DF_exp_low))
              )
             { exp = exp+udelta;
 #if (cl_word_size==64)
@@ -44,14 +46,14 @@ const cl_DF scale_float (const cl_DF& x, const cl_I& delta)
 #endif
             }
             else
-            { cl_error_floating_point_overflow(); }
+            { throw floating_point_overflow_exception(); }
         }
         else
         // delta<0
         { var uintL udelta;
           if (fixnump(delta)
-              && ((udelta = -FN_to_L(delta)) <= (uintL)(DF_exp_high-DF_exp_low))
-              && ((cl_value_len+1<intLsize) || !(udelta==0))
+              && ((udelta = -FN_to_V(delta)) <= (uintV)(DF_exp_high-DF_exp_low))
+              && ((cl_value_len+1<intVsize) || !(udelta==0))
              )
             { exp = exp-udelta;
 #if (cl_word_size==64)
@@ -62,8 +64,10 @@ const cl_DF scale_float (const cl_DF& x, const cl_I& delta)
             }
             else
             if (underflow_allowed())
-              { cl_error_floating_point_underflow(); }
+              { throw floating_point_underflow_exception(); }
               else
               { return cl_DF_0; }
         }
 }
+
+}  // namespace cln