小技?(めんどくさい?)

union dbl{
  double dbl;
  struct{
    int  hoge1 :32;
    int  hoge2 :31;
    int  pm   :1;
  }B8;
} dbl;

#define abs4dbl(x) ((dbl.dbl=(x)),(dbl.B8.pm=(0&(dbl.B8.pm)),dbl.dbl))

うちの環境では fabs の15倍は早い、どうっすか?