// unary operator - // General includes. #include "cl_sysdep.h" // Specification. #include "cln/dfloat.h" // Implementation. #include "cl_DF.h" namespace cln { const cl_DF operator- (const cl_DF& x) { // Methode: // Falls x=0.0, fertig. Sonst Vorzeichenbit umdrehen. #if (cl_word_size==64) var dfloat x_ = TheDfloat(x)->dfloat_value; if (DF_uexp(x_) == 0) return x; else return allocate_dfloat( x_ ^ bit(63) ); #else var uint32 semhi = TheDfloat(x)->dfloat_value.semhi; var uint32 mlo = TheDfloat(x)->dfloat_value.mlo; if (DF_uexp(semhi) == 0) return x; else return allocate_dfloat( semhi ^ bit(31), mlo ); #endif } } // namespace cln