Current File : //usr/local/apps/perl/lib/site_perl/5.30.0/x86_64-linux/tgmath.ph
require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&_TGMATH_H)) {
    eval 'sub _TGMATH_H () {1;}' unless defined(&_TGMATH_H);
    require 'math.ph';
    require 'complex.ph';
    if( &__GNUC_PREREQ (2, 7)) {
	if(defined(&__NO_LONG_DOUBLE_MATH)) {
	    eval 'sub __tgml {
	        my($fct) = @_;
    		eval q($fct);
	    }' unless defined(&__tgml);
	} else {
	    eval 'sub __tgml {
	        my($fct) = @_;
    		eval q($fct   &l);
	    }' unless defined(&__tgml);
	}
	if( &__GNUC_PREREQ (3, 1)) {
	    eval 'sub __floating_type {
	        my($type) = @_;
    		eval q(( &__builtin_classify_type (($type) 0) == 8|| ( &__builtin_classify_type (($type) 0) == 9 &&  &__builtin_classify_type ( &__real__ (($type) 0)) == 8)));
	    }' unless defined(&__floating_type);
	} else {
	    eval 'sub __floating_type {
	        my($type) = @_;
    		eval q(((($type) 0.25)  && (($type) 0.25- 1)));
	    }' unless defined(&__floating_type);
	}
	eval 'sub __tgmath_real_type_sub {
	    my($T, $E) = @_;
    	    eval q( &__typeof__ (*(0? ( &__typeof__ (0? 0: ( &void *) ($E))) 0: ( &__typeof__ (0? ($T *) 0: ( &void *) (!($E)))) 0)));
	}' unless defined(&__tgmath_real_type_sub);
	eval 'sub __tgmath_real_type {
	    my($expr) = @_;
    	    eval q( &__tgmath_real_type_sub ( &__typeof__ (( &__typeof__ ($expr)) 0),  &__floating_type ( &__typeof__ ($expr))));
	}' unless defined(&__tgmath_real_type);
	eval 'sub __TGMATH_UNARY_REAL_ONLY {
	    my($Val, $Fct) = @_;
    	    eval q(( &__extension__ (($sizeof{$Val} == $sizeof{\'double\'} ||  &__builtin_classify_type ($Val) != 8) ? ( &__tgmath_real_type ($Val)) $Fct ($Val) : ($sizeof{$Val} == $sizeof{\'float\'}) ? ( &__tgmath_real_type ($Val)) $Fct &f ($Val) : ( &__tgmath_real_type ($Val))  &__tgml($Fct) ($Val))));
	}' unless defined(&__TGMATH_UNARY_REAL_ONLY);
	eval 'sub __TGMATH_UNARY_REAL_RET_ONLY {
	    my($Val, $RetType, $Fct) = @_;
    	    eval q(( &__extension__ (($sizeof{$Val} == $sizeof{\'double\'} ||  &__builtin_classify_type ($Val) != 8) ? ($RetType) $Fct ($Val) : ($sizeof{$Val} == $sizeof{\'float\'}) ? ($RetType) $Fct &f ($Val) : ($RetType)  &__tgml($Fct) ($Val))));
	}' unless defined(&__TGMATH_UNARY_REAL_RET_ONLY);
	eval 'sub __TGMATH_BINARY_FIRST_REAL_ONLY {
	    my($Val1, $Val2, $Fct) = @_;
    	    eval q(( &__extension__ (($sizeof{$Val1} == $sizeof{\'double\'} ||  &__builtin_classify_type ($Val1) != 8) ? ( &__tgmath_real_type ($Val1)) $Fct ($Val1, $Val2) : ($sizeof{$Val1} == $sizeof{\'float\'}) ? ( &__tgmath_real_type ($Val1)) $Fct &f ($Val1, $Val2) : ( &__tgmath_real_type ($Val1))  &__tgml($Fct) ($Val1, $Val2))));
	}' unless defined(&__TGMATH_BINARY_FIRST_REAL_ONLY);
	eval 'sub __TGMATH_BINARY_REAL_ONLY {
	    my($Val1, $Val2, $Fct) = @_;
    	    eval q(( &__extension__ ((($sizeof{$Val1} > $sizeof{\'double\'} || $sizeof{$Val2} > $sizeof{\'double\'})  &&  &__builtin_classify_type (($Val1) + ($Val2)) == 8) ? ( &__typeof (( &__tgmath_real_type ($Val1)) 0+ ( &__tgmath_real_type ($Val2)) 0))  &__tgml($Fct) ($Val1, $Val2) : ($sizeof{$Val1} == $sizeof{\'double\'} || $sizeof{$Val2} == $sizeof{\'double\'} ||  &__builtin_classify_type ($Val1) != 8||  &__builtin_classify_type ($Val2) != 8) ? ( &__typeof (( &__tgmath_real_type ($Val1)) 0+ ( &__tgmath_real_type ($Val2)) 0)) $Fct ($Val1, $Val2) : ( &__typeof (( &__tgmath_real_type ($Val1)) 0+ ( &__tgmath_real_type ($Val2)) 0)) $Fct &f ($Val1, $Val2))));
	}' unless defined(&__TGMATH_BINARY_REAL_ONLY);
	eval 'sub __TGMATH_TERNARY_FIRST_SECOND_REAL_ONLY {
	    my($Val1, $Val2, $Val3, $Fct) = @_;
    	    eval q(( &__extension__ ((($sizeof{$Val1} > $sizeof{\'double\'} || $sizeof{$Val2} > $sizeof{\'double\'})  &&  &__builtin_classify_type (($Val1) + ($Val2)) == 8) ? ( &__typeof (( &__tgmath_real_type ($Val1)) 0+ ( &__tgmath_real_type ($Val2)) 0))  &__tgml($Fct) ($Val1, $Val2, $Val3) : ($sizeof{$Val1} == $sizeof{\'double\'} || $sizeof{$Val2} == $sizeof{\'double\'} ||  &__builtin_classify_type ($Val1) != 8||  &__builtin_classify_type ($Val2) != 8) ? ( &__typeof (( &__tgmath_real_type ($Val1)) 0+ ( &__tgmath_real_type ($Val2)) 0)) $Fct ($Val1, $Val2, $Val3) : ( &__typeof (( &__tgmath_real_type ($Val1)) 0+ ( &__tgmath_real_type ($Val2)) 0)) $Fct &f ($Val1, $Val2, $Val3))));
	}' unless defined(&__TGMATH_TERNARY_FIRST_SECOND_REAL_ONLY);
	eval 'sub __TGMATH_TERNARY_REAL_ONLY {
	    my($Val1, $Val2, $Val3, $Fct) = @_;
    	    eval q(( &__extension__ ((($sizeof{$Val1} > $sizeof{\'double\'} || $sizeof{$Val2} > $sizeof{\'double\'} || $sizeof{$Val3} > $sizeof{\'double\'})  &&  &__builtin_classify_type (($Val1) + ($Val2) + ($Val3)) == 8) ? ( &__typeof (( &__tgmath_real_type ($Val1)) 0+ ( &__tgmath_real_type ($Val2)) 0+ ( &__tgmath_real_type ($Val3)) 0))  &__tgml($Fct) ($Val1, $Val2, $Val3) : ($sizeof{$Val1} == $sizeof{\'double\'} || $sizeof{$Val2} == $sizeof{\'double\'} || $sizeof{$Val3} == $sizeof{\'double\'} ||  &__builtin_classify_type ($Val1) != 8||  &__builtin_classify_type ($Val2) != 8||  &__builtin_classify_type ($Val3) != 8) ? ( &__typeof (( &__tgmath_real_type ($Val1)) 0+ ( &__tgmath_real_type ($Val2)) 0+ ( &__tgmath_real_type ($Val3)) 0)) $Fct ($Val1, $Val2, $Val3) : ( &__typeof (( &__tgmath_real_type ($Val1)) 0+ ( &__tgmath_real_type ($Val2)) 0+ ( &__tgmath_real_type ($Val3)) 0)) $Fct &f ($Val1, $Val2, $Val3))));
	}' unless defined(&__TGMATH_TERNARY_REAL_ONLY);
	eval 'sub __TGMATH_UNARY_REAL_IMAG {
	    my($Val, $Fct, $Cfct) = @_;
    	    eval q(( &__extension__ (($sizeof{ &__real__ ($Val)} == $sizeof{\'double\'} ||  &__builtin_classify_type ( &__real__ ($Val)) != 8) ? (($sizeof{ &__real__ ($Val)} == $sizeof{$Val}) ? ( &__tgmath_real_type ($Val)) $Fct ($Val) : ( &__tgmath_real_type ($Val)) $Cfct ($Val)) : ($sizeof{ &__real__ ($Val)} == $sizeof{\'float\'}) ? (($sizeof{ &__real__ ($Val)} == $sizeof{$Val}) ? ( &__tgmath_real_type ($Val)) $Fct &f ($Val) : ( &__tgmath_real_type ($Val)) $Cfct &f ($Val)) : (($sizeof{ &__real__ ($Val)} == $sizeof{$Val}) ? ( &__tgmath_real_type ($Val))  &__tgml($Fct) ($Val) : ( &__tgmath_real_type ($Val))  &__tgml($Cfct) ($Val)))));
	}' unless defined(&__TGMATH_UNARY_REAL_IMAG);
	eval 'sub __TGMATH_UNARY_IMAG {
	    my($Val, $Cfct) = @_;
    	    eval q(( &__extension__ (($sizeof{ &__real__ ($Val)} == $sizeof{\'double\'} ||  &__builtin_classify_type ( &__real__ ($Val)) != 8) ? ( &__typeof__ (( &__tgmath_real_type ($Val)) 0+  &_Complex_I)) $Cfct ($Val) : ($sizeof{ &__real__ ($Val)} == $sizeof{\'float\'}) ? ( &__typeof__ (( &__tgmath_real_type ($Val)) 0+  &_Complex_I)) $Cfct &f ($Val) : ( &__typeof__ (( &__tgmath_real_type ($Val)) 0+  &_Complex_I))  &__tgml($Cfct) ($Val))));
	}' unless defined(&__TGMATH_UNARY_IMAG);
	eval 'sub __TGMATH_UNARY_REAL_IMAG_RET_REAL {
	    my($Val, $Fct, $Cfct) = @_;
    	    eval q(( &__extension__ (($sizeof{ &__real__ ($Val)} == $sizeof{\'double\'} ||  &__builtin_classify_type ( &__real__ ($Val)) != 8) ? (($sizeof{ &__real__ ($Val)} == $sizeof{$Val}) ? ( &__typeof__ ( &__real__ ( &__tgmath_real_type ($Val)) 0)) $Fct ($Val) : ( &__typeof__ ( &__real__ ( &__tgmath_real_type ($Val)) 0)) $Cfct ($Val)) : ($sizeof{ &__real__ ($Val)} == $sizeof{\'float\'}) ? (($sizeof{ &__real__ ($Val)} == $sizeof{$Val}) ? ( &__typeof__ ( &__real__ ( &__tgmath_real_type ($Val)) 0)) $Fct &f ($Val) : ( &__typeof__ ( &__real__ ( &__tgmath_real_type ($Val)) 0)) $Cfct &f ($Val)) : (($sizeof{ &__real__ ($Val)} == $sizeof{$Val}) ? ( &__typeof__ ( &__real__ ( &__tgmath_real_type ($Val)) 0))  &__tgml($Fct) ($Val) : ( &__typeof__ ( &__real__ ( &__tgmath_real_type ($Val)) 0))  &__tgml($Cfct) ($Val)))));
	}' unless defined(&__TGMATH_UNARY_REAL_IMAG_RET_REAL);
	eval 'sub __TGMATH_BINARY_REAL_IMAG {
	    my($Val1, $Val2, $Fct, $Cfct) = @_;
    	    eval q(( &__extension__ ((($sizeof{ &__real__ ($Val1)} > $sizeof{\'double\'} || $sizeof{ &__real__ ($Val2)} > $sizeof{\'double\'})  &&  &__builtin_classify_type ( &__real__ ($Val1) +  &__real__ ($Val2)) == 8) ? (($sizeof{ &__real__ ($Val1)} == $sizeof{$Val1}  && $sizeof{ &__real__ ($Val2)} == $sizeof{$Val2}) ? ( &__typeof (( &__tgmath_real_type ($Val1)) 0+ ( &__tgmath_real_type ($Val2)) 0))  &__tgml($Fct) ($Val1, $Val2) : ( &__typeof (( &__tgmath_real_type ($Val1)) 0+ ( &__tgmath_real_type ($Val2)) 0))  &__tgml($Cfct) ($Val1, $Val2)) : ($sizeof{ &__real__ ($Val1)} == $sizeof{\'double\'} || $sizeof{ &__real__ ($Val2)} == $sizeof{\'double\'} ||  &__builtin_classify_type ( &__real__ ($Val1)) != 8||  &__builtin_classify_type ( &__real__ ($Val2)) != 8) ? (($sizeof{ &__real__ ($Val1)} == $sizeof{$Val1}  && $sizeof{ &__real__ ($Val2)} == $sizeof{$Val2}) ? ( &__typeof (( &__tgmath_real_type ($Val1)) 0+ ( &__tgmath_real_type ($Val2)) 0)) $Fct ($Val1, $Val2) : ( &__typeof (( &__tgmath_real_type ($Val1)) 0+ ( &__tgmath_real_type ($Val2)) 0)) $Cfct ($Val1, $Val2)) : (($sizeof{ &__real__ ($Val1)} == $sizeof{$Val1}  && $sizeof{ &__real__ ($Val2)} == $sizeof{$Val2}) ? ( &__typeof (( &__tgmath_real_type ($Val1)) 0+ ( &__tgmath_real_type ($Val2)) 0)) $Fct &f ($Val1, $Val2) : ( &__typeof (( &__tgmath_real_type ($Val1)) 0+ ( &__tgmath_real_type ($Val2)) 0)) $Cfct &f ($Val1, $Val2)))));
	}' unless defined(&__TGMATH_BINARY_REAL_IMAG);
    } else {
	die("Unsupported compiler; you cannot use <tgmath.h>");
    }
    eval 'sub acos {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_IMAG ($Val,  &acos,  &cacos));
    }' unless defined(&acos);
    eval 'sub asin {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_IMAG ($Val,  &asin,  &casin));
    }' unless defined(&asin);
    eval 'sub atan {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_IMAG ($Val,  &atan,  &catan));
    }' unless defined(&atan);
    eval 'sub atan2 {
        my($Val1, $Val2) = @_;
	    eval q( &__TGMATH_BINARY_REAL_ONLY ($Val1, $Val2,  &atan2));
    }' unless defined(&atan2);
    eval 'sub cos {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_IMAG ($Val,  &cos,  &ccos));
    }' unless defined(&cos);
    eval 'sub sin {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_IMAG ($Val,  &sin,  &csin));
    }' unless defined(&sin);
    eval 'sub tan {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_IMAG ($Val,  &tan,  &ctan));
    }' unless defined(&tan);
    eval 'sub acosh {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_IMAG ($Val,  &acosh,  &cacosh));
    }' unless defined(&acosh);
    eval 'sub asinh {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_IMAG ($Val,  &asinh,  &casinh));
    }' unless defined(&asinh);
    eval 'sub atanh {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_IMAG ($Val,  &atanh,  &catanh));
    }' unless defined(&atanh);
    eval 'sub cosh {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_IMAG ($Val,  &cosh,  &ccosh));
    }' unless defined(&cosh);
    eval 'sub sinh {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_IMAG ($Val,  &sinh,  &csinh));
    }' unless defined(&sinh);
    eval 'sub tanh {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_IMAG ($Val,  &tanh,  &ctanh));
    }' unless defined(&tanh);
    eval 'sub exp {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_IMAG ($Val,  &exp,  &cexp));
    }' unless defined(&exp);
    eval 'sub frexp {
        my($Val1, $Val2) = @_;
	    eval q( &__TGMATH_BINARY_FIRST_REAL_ONLY ($Val1, $Val2,  &frexp));
    }' unless defined(&frexp);
    eval 'sub ldexp {
        my($Val1, $Val2) = @_;
	    eval q( &__TGMATH_BINARY_FIRST_REAL_ONLY ($Val1, $Val2,  &ldexp));
    }' unless defined(&ldexp);
    eval 'sub log {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_IMAG ($Val,  &log,  &clog));
    }' unless defined(&log);
    if(defined(&__USE_GNU)) {
	eval 'sub log10 {
	    my($Val) = @_;
    	    eval q( &__TGMATH_UNARY_REAL_IMAG ($Val,  &log10,  &__clog10));
	}' unless defined(&log10);
    } else {
	eval 'sub log10 {
	    my($Val) = @_;
    	    eval q( &__TGMATH_UNARY_REAL_ONLY ($Val,  &log10));
	}' unless defined(&log10);
    }
    eval 'sub expm1 {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_ONLY ($Val,  &expm1));
    }' unless defined(&expm1);
    eval 'sub log1p {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_ONLY ($Val,  &log1p));
    }' unless defined(&log1p);
    eval 'sub logb {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_ONLY ($Val,  &logb));
    }' unless defined(&logb);
    eval 'sub exp2 {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_ONLY ($Val,  &exp2));
    }' unless defined(&exp2);
    eval 'sub log2 {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_ONLY ($Val,  &log2));
    }' unless defined(&log2);
    eval 'sub pow {
        my($Val1, $Val2) = @_;
	    eval q( &__TGMATH_BINARY_REAL_IMAG ($Val1, $Val2,  &pow,  &cpow));
    }' unless defined(&pow);
    eval 'sub sqrt {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_IMAG ($Val,  &sqrt,  &csqrt));
    }' unless defined(&sqrt);
    eval 'sub hypot {
        my($Val1, $Val2) = @_;
	    eval q( &__TGMATH_BINARY_REAL_ONLY ($Val1, $Val2,  &hypot));
    }' unless defined(&hypot);
    eval 'sub cbrt {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_ONLY ($Val,  &cbrt));
    }' unless defined(&cbrt);
    eval 'sub ceil {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_ONLY ($Val,  &ceil));
    }' unless defined(&ceil);
    eval 'sub fabs {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_IMAG_RET_REAL ($Val,  &fabs,  &cabs));
    }' unless defined(&fabs);
    eval 'sub floor {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_ONLY ($Val,  &floor));
    }' unless defined(&floor);
    eval 'sub fmod {
        my($Val1, $Val2) = @_;
	    eval q( &__TGMATH_BINARY_REAL_ONLY ($Val1, $Val2,  &fmod));
    }' unless defined(&fmod);
    eval 'sub nearbyint {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_ONLY ($Val,  &nearbyint));
    }' unless defined(&nearbyint);
    eval 'sub round {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_ONLY ($Val,  &round));
    }' unless defined(&round);
    eval 'sub trunc {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_ONLY ($Val,  &trunc));
    }' unless defined(&trunc);
    eval 'sub remquo {
        my($Val1, $Val2, $Val3) = @_;
	    eval q( &__TGMATH_TERNARY_FIRST_SECOND_REAL_ONLY ($Val1, $Val2, $Val3,  &remquo));
    }' unless defined(&remquo);
    eval 'sub lrint {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_RET_ONLY ($Val, \'long int\',  &lrint));
    }' unless defined(&lrint);
    eval 'sub llrint {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_RET_ONLY ($Val, \'long long int\',  &llrint));
    }' unless defined(&llrint);
    eval 'sub lround {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_RET_ONLY ($Val, \'long int\',  &lround));
    }' unless defined(&lround);
    eval 'sub llround {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_RET_ONLY ($Val, \'long long int\',  &llround));
    }' unless defined(&llround);
    eval 'sub copysign {
        my($Val1, $Val2) = @_;
	    eval q( &__TGMATH_BINARY_REAL_ONLY ($Val1, $Val2,  &copysign));
    }' unless defined(&copysign);
    eval 'sub erf {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_ONLY ($Val,  &erf));
    }' unless defined(&erf);
    eval 'sub erfc {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_ONLY ($Val,  &erfc));
    }' unless defined(&erfc);
    eval 'sub tgamma {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_ONLY ($Val,  &tgamma));
    }' unless defined(&tgamma);
    eval 'sub lgamma {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_ONLY ($Val,  &lgamma));
    }' unless defined(&lgamma);
    eval 'sub rint {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_ONLY ($Val,  &rint));
    }' unless defined(&rint);
    eval 'sub nextafter {
        my($Val1, $Val2) = @_;
	    eval q( &__TGMATH_BINARY_REAL_ONLY ($Val1, $Val2,  &nextafter));
    }' unless defined(&nextafter);
    eval 'sub nexttoward {
        my($Val1, $Val2) = @_;
	    eval q( &__TGMATH_BINARY_FIRST_REAL_ONLY ($Val1, $Val2,  &nexttoward));
    }' unless defined(&nexttoward);
    eval 'sub remainder {
        my($Val1, $Val2) = @_;
	    eval q( &__TGMATH_BINARY_REAL_ONLY ($Val1, $Val2,  &remainder));
    }' unless defined(&remainder);
    if(defined (&__USE_MISC) || defined (&__USE_XOPEN_EXTENDED)) {
	eval 'sub scalb {
	    my($Val1, $Val2) = @_;
    	    eval q( &__TGMATH_BINARY_REAL_ONLY ($Val1, $Val2,  &scalb));
	}' unless defined(&scalb);
    }
    eval 'sub scalbn {
        my($Val1, $Val2) = @_;
	    eval q( &__TGMATH_BINARY_FIRST_REAL_ONLY ($Val1, $Val2,  &scalbn));
    }' unless defined(&scalbn);
    eval 'sub scalbln {
        my($Val1, $Val2) = @_;
	    eval q( &__TGMATH_BINARY_FIRST_REAL_ONLY ($Val1, $Val2,  &scalbln));
    }' unless defined(&scalbln);
    eval 'sub ilogb {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_RET_ONLY ($Val, \'int\',  &ilogb));
    }' unless defined(&ilogb);
    eval 'sub fdim {
        my($Val1, $Val2) = @_;
	    eval q( &__TGMATH_BINARY_REAL_ONLY ($Val1, $Val2,  &fdim));
    }' unless defined(&fdim);
    eval 'sub fmax {
        my($Val1, $Val2) = @_;
	    eval q( &__TGMATH_BINARY_REAL_ONLY ($Val1, $Val2,  &fmax));
    }' unless defined(&fmax);
    eval 'sub fmin {
        my($Val1, $Val2) = @_;
	    eval q( &__TGMATH_BINARY_REAL_ONLY ($Val1, $Val2,  &fmin));
    }' unless defined(&fmin);
    eval 'sub fma {
        my($Val1, $Val2, $Val3) = @_;
	    eval q( &__TGMATH_TERNARY_REAL_ONLY ($Val1, $Val2, $Val3,  &fma));
    }' unless defined(&fma);
    eval 'sub carg {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_IMAG_RET_REAL ($Val,  &carg,  &carg));
    }' unless defined(&carg);
    eval 'sub conj {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_IMAG ($Val,  &conj));
    }' unless defined(&conj);
    eval 'sub cproj {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_IMAG ($Val,  &cproj));
    }' unless defined(&cproj);
    eval 'sub cimag {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_IMAG_RET_REAL ($Val,  &cimag,  &cimag));
    }' unless defined(&cimag);
    eval 'sub creal {
        my($Val) = @_;
	    eval q( &__TGMATH_UNARY_REAL_IMAG_RET_REAL ($Val,  &creal,  &creal));
    }' unless defined(&creal);
}
1;