]> www.ginac.de Git - cln.git/blobdiff - src/float/dfloat/elem/cl_DF_scale.cc
Finalize CLN 1.3.7 release.
[cln.git] / src / float / dfloat / elem / cl_DF_scale.cc
index 77c2ef69e274f736f23cf645b661165f3a495734..e72ded33b4532028e0a79b7417d3b7c968258ce7 100644 (file)
@@ -1,23 +1,25 @@
 // 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 "float/dfloat/cl_DF.h"
+#include "float/cl_F.h"
 
-const cl_DF scale_float (const cl_DF& x, sintL delta)
+namespace cln {
+
+const cl_DF scale_float (const cl_DF& x, sintC delta)
 {
   // Methode:
   // x=0.0 -> x als Ergebnis
-  // delta muß betragsmäßig <= DF_exp_high-DF_exp_low sein.
-  // Neues DF mit um delta vergrößertem Exponenten bilden.
+  // delta muß 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;
@@ -31,7 +33,7 @@ const cl_DF scale_float (const cl_DF& x, sintL delta)
 #endif
       if (delta >= 0)
         // delta>=0
-        { var uintL udelta = delta;
+        { var uintC udelta = delta;
           if (udelta <= (uintL)(DF_exp_high-DF_exp_low))
             { exp = exp+udelta;
 #if (cl_word_size==64)
@@ -41,11 +43,11 @@ const cl_DF scale_float (const cl_DF& x, sintL delta)
 #endif
             }
             else
-            { cl_error_floating_point_overflow(); }
+            { throw floating_point_overflow_exception(); }
         }
         else
         // delta<0
-        { var uintL udelta = -delta;
+        { var uintC udelta = -delta;
           if (udelta <= (uintL)(DF_exp_high-DF_exp_low))
             { exp = exp-udelta;
 #if (cl_word_size==64)
@@ -56,8 +58,10 @@ const cl_DF scale_float (const cl_DF& x, sintL delta)
             }
             else
             if (underflow_allowed())
-              { cl_error_floating_point_underflow(); }
+              { throw floating_point_underflow_exception(); }
               else
               { return cl_DF_0; }
         }
 }
+
+}  // namespace cln