
v2: fix fmax implementation use consistent checks for __CLC_FP_SIZE add missing TODOs fix whitespace in definitions.h v3: undef ZERO in modf.inc Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> reviewer: Jeroen Ketema <j.ketema@xs4all.nl> Reviewed-by: Aaron Watry <awatry@gmail.com> Tested-by: Aaron Watry <awatry@gmail.com> llvm-svn: 332677
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
|