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);
}
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);
}