require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&_SYS_FLOAT_IEEE754_H_)) {
    eval 'sub _SYS_FLOAT_IEEE754_H_ () {1;}' unless defined(&_SYS_FLOAT_IEEE754_H_);
    require 'sys/cdefs.ph';
    require 'sys/featuretest.ph';
    eval 'sub _FLOAT_IEEE754 () {1;}' unless defined(&_FLOAT_IEEE754);
    if(!defined(&__ASSEMBLER__)  && !defined(&FLT_ROUNDS)) {
	eval 'sub FLT_ROUNDS () { &__flt_rounds();}' unless defined(&FLT_ROUNDS);
    }
    if(!defined(&_ANSI_SOURCE)  && !defined(&_POSIX_C_SOURCE)  && !defined(&_XOPEN_SOURCE) || (((defined(&__STDC_VERSION__) ? &__STDC_VERSION__ : undef) - 0) >= 199901) || (((defined(&_POSIX_C_SOURCE) ? &_POSIX_C_SOURCE : undef) - 0) >= 200112) || (((defined(&_XOPEN_SOURCE) ? &_XOPEN_SOURCE : undef) - 0) >= 600) || defined(&_ISOC99_SOURCE) || defined(&_NETBSD_SOURCE)) {
	unless(defined(&FLT_EVAL_METHOD)) {
	    if( &__GNUC_PREREQ__(3, 3)) {
		eval 'sub FLT_EVAL_METHOD () { &__FLT_EVAL_METHOD__;}' unless defined(&FLT_EVAL_METHOD);
	    }
	}
    }
    if( &__GNUC_PREREQ__(3, 3)) {
	eval 'sub FLT_RADIX () { &__FLT_RADIX__;}' unless defined(&FLT_RADIX);
	eval 'sub FLT_MANT_DIG () { &__FLT_MANT_DIG__;}' unless defined(&FLT_MANT_DIG);
	eval 'sub FLT_EPSILON () { &__FLT_EPSILON__;}' unless defined(&FLT_EPSILON);
	eval 'sub FLT_DIG () { &__FLT_DIG__;}' unless defined(&FLT_DIG);
	eval 'sub FLT_MIN_EXP () { &__FLT_MIN_EXP__;}' unless defined(&FLT_MIN_EXP);
	eval 'sub FLT_MIN () { &__FLT_MIN__;}' unless defined(&FLT_MIN);
	eval 'sub FLT_MIN_10_EXP () { &__FLT_MIN_10_EXP__;}' unless defined(&FLT_MIN_10_EXP);
	eval 'sub FLT_MAX_EXP () { &__FLT_MAX_EXP__;}' unless defined(&FLT_MAX_EXP);
	eval 'sub FLT_MAX () { &__FLT_MAX__;}' unless defined(&FLT_MAX);
	eval 'sub FLT_MAX_10_EXP () { &__FLT_MAX_10_EXP__;}' unless defined(&FLT_MAX_10_EXP);
	eval 'sub DBL_MANT_DIG () { &__DBL_MANT_DIG__;}' unless defined(&DBL_MANT_DIG);
	eval 'sub DBL_EPSILON () { &__DBL_EPSILON__;}' unless defined(&DBL_EPSILON);
	eval 'sub DBL_DIG () { &__DBL_DIG__;}' unless defined(&DBL_DIG);
	eval 'sub DBL_MIN_EXP () { &__DBL_MIN_EXP__;}' unless defined(&DBL_MIN_EXP);
	eval 'sub DBL_MIN () { &__DBL_MIN__;}' unless defined(&DBL_MIN);
	eval 'sub DBL_MIN_10_EXP () { &__DBL_MIN_10_EXP__;}' unless defined(&DBL_MIN_10_EXP);
	eval 'sub DBL_MAX_EXP () { &__DBL_MAX_EXP__;}' unless defined(&DBL_MAX_EXP);
	eval 'sub DBL_MAX () { &__DBL_MAX__;}' unless defined(&DBL_MAX);
	eval 'sub DBL_MAX_10_EXP () { &__DBL_MAX_10_EXP__;}' unless defined(&DBL_MAX_10_EXP);
    } else {
	eval 'sub FLT_RADIX () {2;}' unless defined(&FLT_RADIX);
	eval 'sub FLT_MANT_DIG () {24;}' unless defined(&FLT_MANT_DIG);
	eval 'sub FLT_DIG () {6;}' unless defined(&FLT_DIG);
	eval 'sub FLT_MIN_EXP () {(-125);}' unless defined(&FLT_MIN_EXP);
	eval 'sub FLT_MIN_10_EXP () {(-37);}' unless defined(&FLT_MIN_10_EXP);
	eval 'sub FLT_MAX_EXP () {128;}' unless defined(&FLT_MAX_EXP);
	eval 'sub FLT_MAX_10_EXP () {38;}' unless defined(&FLT_MAX_10_EXP);
	if((defined(&__STDC_VERSION__) ? &__STDC_VERSION__ : undef) >= 199901) {
	    eval 'sub FLT_EPSILON () {0x1.0 &p-23 &F;}' unless defined(&FLT_EPSILON);
	    eval 'sub FLT_MIN () {0x1.0 &p-126 &F;}' unless defined(&FLT_MIN);
	    eval 'sub FLT_MAX () {0x1. &fffffep+127 &F;}' unless defined(&FLT_MAX);
	} else {
	    eval 'sub FLT_EPSILON () {1.19209290E-7;}' unless defined(&FLT_EPSILON);
	    eval 'sub FLT_MIN () {1.17549435E-38;}' unless defined(&FLT_MIN);
	    eval 'sub FLT_MAX () {3.40282347E+38;}' unless defined(&FLT_MAX);
	}
	eval 'sub DBL_MANT_DIG () {53;}' unless defined(&DBL_MANT_DIG);
	eval 'sub DBL_DIG () {15;}' unless defined(&DBL_DIG);
	eval 'sub DBL_MIN_EXP () {(-1021);}' unless defined(&DBL_MIN_EXP);
	eval 'sub DBL_MIN_10_EXP () {(-307);}' unless defined(&DBL_MIN_10_EXP);
	eval 'sub DBL_MAX_EXP () {1024;}' unless defined(&DBL_MAX_EXP);
	eval 'sub DBL_MAX_10_EXP () {308;}' unless defined(&DBL_MAX_10_EXP);
	if((defined(&__STDC_VERSION__) ? &__STDC_VERSION__ : undef) >= 199901) {
	    eval 'sub DBL_EPSILON () {0x1.0 &p-52;}' unless defined(&DBL_EPSILON);
	    eval 'sub DBL_MIN () {0x1.0 &p-1022;}' unless defined(&DBL_MIN);
	    eval 'sub DBL_MAX () {0x1. &fffffffffffffp+1023;}' unless defined(&DBL_MAX);
	} else {
	    eval 'sub DBL_EPSILON () {2.2204460492503131E-16;}' unless defined(&DBL_EPSILON);
	    eval 'sub DBL_MIN () {2.2250738585072014E-308;}' unless defined(&DBL_MIN);
	    eval 'sub DBL_MAX () {1.7976931348623157E+308;}' unless defined(&DBL_MAX);
	}
    }
    unless(defined(&LDBL_MANT_DIG)) {
	eval 'sub LDBL_MANT_DIG () { &DBL_MANT_DIG;}' unless defined(&LDBL_MANT_DIG);
	eval 'sub LDBL_EPSILON () { &DBL_EPSILON;}' unless defined(&LDBL_EPSILON);
	eval 'sub LDBL_DIG () { &DBL_DIG;}' unless defined(&LDBL_DIG);
	eval 'sub LDBL_MIN_EXP () { &DBL_MIN_EXP;}' unless defined(&LDBL_MIN_EXP);
	eval 'sub LDBL_MIN () { &DBL_MIN;}' unless defined(&LDBL_MIN);
	eval 'sub LDBL_MIN_10_EXP () { &DBL_MIN_10_EXP;}' unless defined(&LDBL_MIN_10_EXP);
	eval 'sub LDBL_MAX_EXP () { &DBL_MAX_EXP;}' unless defined(&LDBL_MAX_EXP);
	eval 'sub LDBL_MAX () { &DBL_MAX;}' unless defined(&LDBL_MAX);
	eval 'sub LDBL_MAX_10_EXP () { &DBL_MAX_10_EXP;}' unless defined(&LDBL_MAX_10_EXP);
	if(!defined(&_ANSI_SOURCE)  && !defined(&_POSIX_C_SOURCE)  && !defined(&_XOPEN_SOURCE) || (((defined(&__STDC_VERSION__) ? &__STDC_VERSION__ : undef) - 0) >= 199901) || (((defined(&_POSIX_C_SOURCE) ? &_POSIX_C_SOURCE : undef) - 0) >= 200112) || (((defined(&_XOPEN_SOURCE) ? &_XOPEN_SOURCE : undef) - 0) >= 600) || defined(&_ISOC99_SOURCE) || defined(&_NETBSD_SOURCE)) {
	    if( &__GNUC_PREREQ__(3, 3)) {
		eval 'sub DECIMAL_DIG () { &__DECIMAL_DIG__;}' unless defined(&DECIMAL_DIG);
	    } else {
		eval 'sub DECIMAL_DIG () {17;}' unless defined(&DECIMAL_DIG);
	    }
	}
    }
}
1;
