// TODO: Enable half precision when atan2 is implemented #if __CLC_FPSIZE > 16 #if __CLC_FPSIZE == 64 #define __CLC_CONST(x) x #elif __CLC_FPSIZE == 32 #define __CLC_CONST(x) x ## f #elif __CLC_FPSIZE == 16 #define __CLC_CONST(x) x ## h #endif _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE asin(__CLC_GENTYPE x) { return atan2(x, sqrt( (__CLC_GENTYPE)__CLC_CONST(1.0) - (x*x) )); } #undef __CLC_CONST #endif