// If long double functions are present, just alias
// to the __builtin_ version.  This may not do the right thing (TODO)

// GCC 3.3 doesn't have some of these builtins
//
extern (C) {
real acosl(real);
real asinl(real);
real atanl(real);
real atan2l(real, real);

alias __builtin_cosl cosl;
alias __builtin_sinl sinl;

real tanl(real);
real acoshl(real);
real asinhl(real);
real atanhl(real);
real coshl(real);
real sinhl(real);
real tanhl(real);

alias __builtin_expl expl;

real exp2l(real);
real expm1l(real);
real frexpl(real, bint*);
bint ilogbl(real);
real ldexpl(real, bint);

alias __builtin_logl logl;

real log10l(real);
real log1pl(real);
real log2l(real);
real logbl(real);
real modfl(real, real*);
real scalbnl(real, bint);
real scalblnl(real, blng);
real cbrtl(real);
real fabsl(real);
real hypotl(real, real);
real powl(real, real);

alias __builtin_sqrtl sqrtl;

real erfl(real);
real erfcl(real);
real lgammal(real);
real tgammal(real);
real ceill(real);
real floorl(real);
real nearbyintl(real);
real rintl(real);
blng lrintl(real);
long llrintl(real);
real roundl(real);
blng lroundl(real);
long llroundl(real);
real truncl(real);
real fmodl(real, real);
real remainderl(real, real);
real remquol(real, real, bint*);
real copysignl(real, real);

alias __builtin_nanl nanl;

real nextafterl(real, real);
real nexttowardl(real, real);
real fdiml(real, real);
real fmaxl(real, real);
real fminl(real, real);
real fmal(real, real, real);

alias __builtin_sqrt sqrt;
//alias __builtin_sqrtf sqrtf;// needs an extra step
}
