##math
gentype acos (gentype)
gentype acosh (gentype)
gentype acospi (gentype x)
gentype asin (gentype)
gentype asinh (gentype)
gentype asinpi (gentype x)
gentype atan (gentype y_over_x)
gentype atan2 (gentype y, gentype x)
gentype atanh (gentype)
gentype atanpi (gentype x)
gentype atan2pi (gentype y, gentype x)
gentype cbrt (gentype)
gentype ceil (gentype)
gentype copysign (gentype x, gentype y)
gentype cos (gentype)
gentype cosh (gentype)
gentype cospi (gentype x)
gentype erfc (gentype)
gentype erf (gentype)
gentype exp (gentype x)
gentype exp2 (gentype)
gentype exp10 (gentype)
gentype expm1 (gentype x)
gentype fabs (gentype)
gentype fdim (gentype x, gentype y)
gentype floor (gentype)
# XXX we use madd for fma
gentype fma (gentype a, gentype b, gentype c)
gentype fmax (gentype x, gentype y)
gentypef fmax (gentypef x, float y)
gentypeh fmax (gentypeh x, half y)
gentyped fmax (gentyped x, double y)
gentype fmin (gentype x, gentype y)
gentypef fmin (gentypef x, float y)
gentypeh fmin (gentypeh x, half y)
gentyped fmin (gentyped x, double y)
gentype fmod (gentype x, gentype y)
gentype fract (gentype x, __global gentype *iptr)
gentype fract (gentype x, __local gentype *iptr)
gentype fract (gentype x, __private gentype *iptr)
floatn frexp (floatn x, __global intn *exp)
floatn frexp (floatn x, __local intn *exp)
floatn frexp (floatn x, __private intn *exp)
float frexp (float x, __global int *exp)
float frexp (float x, __local int *exp)
float frexp (float x, __private int *exp)
halfn frexp (halfn x, __global intn *exp)
halfn frexp (halfn x, __local intn *exp)
halfn frexp (halfn x, __private intn *exp)
half frexp (half x, __global int *exp)
half frexp (half x, __local int *exp)
half frexp (half x, __private int *exp)
doublen frexp (doublen x, __global intn *exp)
doublen frexp (doublen x, __local intn *exp)
doublen frexp (doublen x, __private intn *exp)
double frexp (double x, __global int *exp)
double frexp (double x, __local int *exp)
double frexp (double x, __private int *exp)
gentype hypot (gentype x, gentype y)
intn ilogb (floatn x)
int ilogb (float x)
shortn ilogb (halfn x)
short ilogb (half x)
intn ilogb (doublen x)
int ilogb (double x)
floatn ldexp (floatn x, intn k)
floatn ldexp (floatn x, int k)
float ldexp (float x, int k)
halfn ldexp (halfn x, intn k)
halfn ldexp (halfn x, int k)
half ldexp (half x, int k)
doublen ldexp (doublen x, intn k)
doublen ldexp (doublen x, int k)
double ldexp (double x, int k)
gentype lgamma (gentype x)
floatn lgamma_r (floatn x, __global intn *signp)
floatn lgamma_r (floatn x, __local intn *signp)
floatn lgamma_r (floatn x, __private intn *signp)
float lgamma_r (float x, __global int *signp)
float lgamma_r (float x, __local int *signp)
float lgamma_r (float x,   __private int *signp)
halfn lgamma_r (halfn x, __global intn *signp)
halfn lgamma_r (halfn x, __local intn *signp)
halfn lgamma_r (halfn x, __private intn *signp)
half lgamma_r (half x, __global int *signp)
half lgamma_r (half x, __local int *signp)
half lgamma_r (half x,   __private int *signp)
#doublen lgamma_r (doublen x, __global intn *signp)
#doublen lgamma_r (doublen x, __local intn *signp)
#doublen lgamma_r (doublen x, __private intn *signp)
#double lgamma_r (double x, __global int *signp)
#double lgamma_r (double x, __local int *signp)
#double lgamma_r (double x, __private int *signp)
gentype log (gentype)
gentype log2 (gentype)
gentype log10 (gentype)
gentype log1p (gentype x)
gentype logb (gentype x)
gentype mad (gentype a, gentype b, gentype c)
gentype maxmag (gentype x, gentype y)
gentype minmag (gentype x, gentype y)
gentype modf (gentype x, __global gentype *iptr)
gentype modf (gentype x, __local gentype *iptr)
gentype modf (gentype x, __private gentype *iptr)
floatn nan (uintn nancode)
float nan (uint nancode)
halfn nan (ushortn nancode)
half nan (ushort nancode)
doublen nan (ulongn nancode)
double nan (ulong nancode)
gentype nextafter (gentype x, gentype y)
gentype pow (gentype x, gentype y)
floatn pown (floatn x, intn y)
float pown (float x, int y)
halfn pown (halfn x, intn y)
half pown (half x, int y)
doublen pown (doublen x, intn y)
double pown (double x, int y)
gentype powr (gentype x, gentype y)
gentype remainder (gentype x, gentype y)
floatn remquo (floatn x, floatn y, __global intn *quo)
floatn remquo (floatn x, floatn y, __local intn *quo)
floatn remquo (floatn x, floatn y, __private intn *quo)
float remquo (float x, float y, __global int *quo)
float remquo (float x, float y, __local int *quo)
float remquo (float x, float y, __private int *quo)
halfn remquo (halfn x, halfn y, __global intn *quo)
halfn remquo (halfn x, halfn y, __local intn *quo)
halfn remquo (halfn x, halfn y, __private intn *quo)
half remquo (half x, half y, __global int *quo)
half remquo (half x, half y, __local int *quo)
half remquo (half x, half y, __private int *quo)
doublen remquo (doublen x, doublen y, __global intn *quo)
doublen remquo (doublen x, doublen y, __local intn *quo)
doublen remquo (doublen x, doublen y, __private intn *quo)
double remquo (double x, double y, __global int *quo)
double remquo (double x, double y, __local int *quo)
double remquo (double x, double y, __private int *quo)
gentype rint (gentype)
floatn rootn (floatn x, intn y)
halfn rootn (halfn x, intn y)
doublen rootn (doublen x, intn y)
doublen rootn (double x, int y)
gentype round (gentype x)
gentype rsqrt (gentype)
gentype sin (gentype)
gentype sincos (gentype x, __global gentype *cosval)
gentype sincos (gentype x, __local gentype *cosval)
gentype sincos (gentype x, __private gentype *cosval)
gentype sinh (gentype)
gentype sinpi (gentype x)
gentype sqrt (gentype)
gentype tan (gentype)
gentype tanh (gentype)
gentype tanpi (gentype x)
gentype tgamma (gentype)
gentype trunc (gentype)


# XXX we already defined all native and non-native
# functions to the same one.
gentype native_cos (gentype x)
gentype native_divide (gentype x, gentype y)
gentype native_exp (gentype x)
gentype native_exp2 (gentype x)
gentype native_exp10 (gentype x)
gentype native_log (gentype x)
gentype native_log2 (gentype x)
gentype native_log10 (gentype x)
gentype native_powr (gentype x, gentype y)
gentype native_recip (gentype x)
gentype native_rsqrt (gentype x)
gentype native_sin (gentype x)
gentype native_sqrt (gentype x)
gentype native_tan (gentype x)


##half_native_math
#gentype half_cos (gentype x)
#gentype half_divide (gentype x, gentype y)
#gentype half_exp (gentype x)
#gentype half_exp2 (gentype x)
#gentype half_exp10 (gentype x)
#gentype half_log (gentype x)
#gentype half_log2 (gentype x)
#gentype half_log10 (gentype x)
#gentype half_powr (gentype x, gentype y)
#gentype half_recip (gentype x)
#gentype half_rsqrt (gentype x)
#gentype half_sin (gentype x)
#gentype half_sqrt (gentype x)
#gentype half_tan (gentype x)
