// binary operator -
// General includes.
#include "cl_sysdep.h"
// Specification.
#include "cln/ffloat.h"
// Implementation.
#include "cl_FF.h"
#include "cl_ieee.h"
namespace cln {
NEED_IEEE_FLOATS()
const cl_FF operator- (const cl_FF& x1, const cl_FF& x2)
{
#ifdef FAST_FLOAT
float_to_FF(FF_to_float(x1) - FF_to_float(x2), return ,
TRUE, TRUE, // Overflow und subnormale Zahl abfangen
FALSE, // kein Underflow mit Ergebnis +/- 0.0 möglich
// (nach Definition der subnormalen Zahlen)
FALSE, FALSE // keine Singularität, kein NaN als Ergebnis möglich
);
#else
var ffloat x2_ = cl_ffloat_value(x2);
if (FF_uexp(x2_) == 0)
{ return x1; }
else
{ return x1 + allocate_ffloat(x2_ ^ bit(31)); }
#endif
}
} // namespace cln
syntax highlighted by Code2HTML, v. 0.9.1