forked from OSchip/llvm-project
19 lines
405 B
C++
19 lines
405 B
C++
// 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
|