| // 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 |