double a;
double a = 0;
static double ulp(double x){    register Long L;    double a;    L = (word0(x) & Exp_mask) - (P-1)*Exp_msk1;#ifndef Sudden_Underflow    if (L > 0) {#endif        set_word0(a, L);        set_word1(a, 0);#ifndef Sudden_Underflow    }    else {        L = -L >> Exp_shift;        if (L < Exp_shift) {            set_word0(a, 0x80000 >> L);            set_word1(a, 0);        }        else {            set_word0(a, 0);            L -= Exp_shift;            set_word1(a, L >= 31 ? 1 : 1 << (31 - L));        }    }#endif    return a;}