]> www.ginac.de Git - cln.git/blobdiff - src/float/dfloat/conv/cl_DF_from_double.cc
Remove exception hooks in favor of real C++ exceptions:
[cln.git] / src / float / dfloat / conv / cl_DF_from_double.cc
index f6c46053d84776a87b71e3095597802ee788985b..7e3ffe93b96a67bd33e8f948e2a4e50eef65d578 100644 (file)
@@ -19,20 +19,20 @@ cl_heap_dfloat* cl_double_to_DF_pointer (const dfloatjanus& val_)
       if (exp == 0) // e=0 ?
         // vorzeichenbehaftete 0.0 oder subnormale Zahl
         { if (!((val << 1) == 0) && underflow_allowed())
-            { cl_error_floating_point_underflow(); }
+            { throw floating_point_underflow_exception(); }
             else
             { return cl_DF_0; } // +/- 0.0 -> 0.0
         }
       elif (exp == 2047) // e=2047 ?
         { if (!((val << (64-DF_mant_len)) == 0))
-            { cl_error_floating_point_nan(); } // NaN
+            { throw floating_point_nan_exception(); } // NaN
             else
-            { cl_error_floating_point_overflow(); } // Infinity, Overflow
+            { throw floating_point_overflow_exception(); } // Infinity, Overflow
         }
       else
         { // Der Exponent muß um DF_exp_mid-1022 erhöht werden.
           if ((DF_exp_mid>1022) && (exp > DF_exp_high-DF_exp_mid+1022))
-            { cl_error_floating_point_overflow(); } // Overflow
+            { throw floating_point_overflow_exception(); } // Overflow
           val += (sint64)(DF_exp_mid - 1022) << DF_mant_len;
           return allocate_dfloat(val);
         }
@@ -41,20 +41,20 @@ cl_heap_dfloat* cl_double_to_DF_pointer (const dfloatjanus& val_)
       if (exp == 0) // e=0 ?
         // vorzeichenbehaftete 0.0 oder subnormale Zahl
         { if (!(((val.semhi << 1) == 0) && (val.mlo == 0)) && underflow_allowed())
-            { cl_error_floating_point_underflow(); }
+            { throw floating_point_underflow_exception(); }
             else
             { return cl_DF_0; } // +/- 0.0 -> 0.0
         }
       elif (exp == 2047) // e=2047 ?
         { if (!(((val.semhi << (64-DF_mant_len)) == 0) && (val.mlo == 0)))
-            { cl_error_floating_point_nan(); } // NaN
+            { throw floating_point_nan_exception(); } // NaN
             else
-            { cl_error_floating_point_overflow(); } // Infinity, Overflow
+            { throw floating_point_overflow_exception(); } // Infinity, Overflow
         }
       else
         { // Der Exponent muß um DF_exp_mid-1022 erhöht werden.
           if ((DF_exp_mid>1022) && (exp > DF_exp_high-DF_exp_mid+1022))
-            { cl_error_floating_point_overflow(); } // Overflow
+            { throw floating_point_overflow_exception(); } // Overflow
           val.semhi += (sint32)(DF_exp_mid - 1022) << (DF_mant_len-32);
           return allocate_dfloat(val.semhi,val.mlo);
         }