forked from OSchip/llvm-project
18 lines
420 B
C++
18 lines
420 B
C++
/*
|
|
* Note: tan(x) = sin(x)/cos(x) also, but the final assembly ends up being
|
|
* twice as long for R600 (maybe for others as well).
|
|
*/
|
|
|
|
#if __CLC_FPSIZE == 32
|
|
#define __CLC_CONST(x) x ## f
|
|
#else
|
|
#define __CLC_CONST(x) x
|
|
#endif
|
|
|
|
_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE tan(__CLC_GENTYPE x) {
|
|
__CLC_GENTYPE sinx = sin(x);
|
|
return sinx / sqrt( (__CLC_GENTYPE) __CLC_CONST(1.0) - (sinx*sinx) );
|
|
}
|
|
|
|
#undef __CLC_CONST
|