require '_h2ph_pre.ph';

unless(defined(&_MATH_H)) {
    die("Never use <bits/huge_val.h> directly; include <math.h> instead.");
}
require 'features.ph';
if( &__GNUC_PREREQ(2,96)) {
    eval 'sub HUGE_VAL () {( &__extension__ 0x1.0 &p2047);}' unless defined(&HUGE_VAL);
} else {
    eval 'sub __HUGE_VAL_bytes () {{ 0, 0, 0, 0, 0, 0, 0xf0, 0x7f };}' unless defined(&__HUGE_VAL_bytes);
    eval 'sub __huge_val_t () {\'union union\' { \'unsigned char __c\'[8];  &double  &__d; };}' unless defined(&__huge_val_t);
    if(defined(&__GNUC__)) {
	eval 'sub HUGE_VAL () {( &__extension__ (( &__huge_val_t) {  &__c:  &__HUGE_VAL_bytes }). &__d);}' unless defined(&HUGE_VAL);
    } else {
	eval 'sub HUGE_VAL () {( ($__huge_val->{__d}));}' unless defined(&HUGE_VAL);
    }
}
if(defined(&__USE_ISOC99)) {
    if( &__GNUC_PREREQ(2,96)) {
	eval 'sub HUGE_VALF () {( &__extension__ 0x1.0 &p255f);}' unless defined(&HUGE_VALF);
	eval 'sub HUGE_VALL () {( &__extension__ 0x1.0 &p32767L);}' unless defined(&HUGE_VALL);
    } else {
	eval 'sub __HUGE_VALF_bytes () {{ 0, 0, 0x80, 0x7f };}' unless defined(&__HUGE_VALF_bytes);
	eval 'sub __huge_valf_t () {\'union union\' { \'unsigned char __c\'[4];  &float  &__f; };}' unless defined(&__huge_valf_t);
	if(defined(&__GNUC__)) {
	    eval 'sub HUGE_VALF () {( &__extension__ (( &__huge_valf_t) {  &__c:  &__HUGE_VALF_bytes }). &__f);}' unless defined(&HUGE_VALF);
	} else {
	    eval 'sub HUGE_VALF () {( ($__huge_valf->{__f}));}' unless defined(&HUGE_VALF);
	}
	eval 'sub __HUGE_VALL_bytes () {{ 0, 0, 0, 0, 0, 0, 0, 0x80, 0xff, 0x7f, 0, 0};}' unless defined(&__HUGE_VALL_bytes);
	eval 'sub __huge_vall_t () {\'union union\' { \'unsigned char __c\'[12]; \'long double __ld\'; };}' unless defined(&__huge_vall_t);
	if(defined(&__GNUC__)) {
	    eval 'sub HUGE_VALL () {( &__extension__ (( &__huge_vall_t) {  &__c:  &__HUGE_VALL_bytes }). &__ld);}' unless defined(&HUGE_VALL);
	} else {
	    eval 'sub HUGE_VALL () {( ($__huge_vall->{__ld}));}' unless defined(&HUGE_VALL);
	}
    }
}
1;
