Ejemplo n.º 1
0
Decimal64 DecimalUtil::fabs(Decimal64 value)
{
#if BDLDFP_DECIMALPLATFORM_C99_TR
    return fabsd64(value.value());
#elif BDLDFP_DECIMALPLATFORM_DECNUMBER
    Decimal64 rv;
    decDoubleAbs(rv.data(), value.data(), getContext());
    return rv;
#endif
}
Ejemplo n.º 2
0
Datum decimal64_abs(PG_FUNCTION_ARGS)
{
        PGDecimal64 a = PG_GETARG_DECIMAL64(0);
        PGDecimal64 ret;

        DECLARE_DEC_CTXT(DEC_INIT_DECIMAL64);
        decDoubleAbs(&ret, &a, &dc); 
        DEC_CHK_STATUS(dc, DEC_STATUS_OFUF, "decimal64 overflow"); 

        PG_RETURN_DECIMAL64(ret);
}
Ejemplo n.º 3
0
Decimal32 DecimalUtil::fabs(Decimal32 value)
{
#if BDLDFP_DECIMALPLATFORM_C99_TR
    return fabsd32(value.value());
#elif BDLDFP_DECIMALPLATFORM_DECNUMBER
    // TODO TBD Just flip the sign bit, but beware of endianness
    Decimal64 in(value);
    Decimal64 out;
    decDoubleAbs(out.data(), in.data(), getContext());
    return Decimal32(out);
#endif
}