7 #ifndef PXR_BASE_ARCH_MATH_H 
    8 #define PXR_BASE_ARCH_MATH_H 
   18 #if defined(ARCH_COMPILER_MSVC) 
   24 #define M_PI 3.14159265358979323846 
   32 #if defined (ARCH_CPU_INTEL) || defined (ARCH_CPU_ARM) || defined (doxygen) 
   36 #define ARCH_MIN_FLOAT_EPS_SQR      0.000244141F 
   39 inline long ArchSign(
long val) {
 
   40     return (val > 0) - (val < 0);
 
   45 inline uint32_t ArchFloatToBitPattern(
float v) {
 
   56 inline float ArchBitPatternToFloat(uint32_t 
v) {
 
   67 inline uint64_t ArchDoubleToBitPattern(
double v) {
 
   78 inline double ArchBitPatternToDouble(uint64_t 
v) {
 
   88 #error Unknown system architecture. 
   91 #if defined(ARCH_OS_LINUX) || defined(doxygen) 
   94 inline void ArchSinCosf(
float v, 
float *
s, 
float *
c) { 
sincosf(v, s, c); }
 
   97 inline void ArchSinCos(
double v, 
double *
s, 
double *
c) { 
sincos(v, s, c); }
 
   99 #elif defined(ARCH_OS_DARWIN) || defined(ARCH_OS_WINDOWS) 
  101 inline void ArchSinCosf(
float v, 
float *
s, 
float *
c) {
 
  105 inline void ArchSinCos(
double v, 
double *
s, 
double *
c) {
 
  111 #error Unknown architecture. 
  120 #if defined(ARCH_COMPILER_GCC) || defined(ARCH_COMPILER_CLANG) 
  121     return __builtin_ctzl(x);
 
  122 #elif defined(ARCH_COMPILER_MSVC) 
  124     _BitScanForward64(&index, x);
 
  128     x = (x ^ (x - 1)) >> 1;
 
  142 #endif // PXR_BASE_ARCH_MATH_H 
SYS_API double cos(double x)
 
int ArchCountTrailingZeros(uint64_t x)
 
GLsizei const GLfloat * value
 
OIIO_HOSTDEVICE void sincos(float x, float *sine, float *cosine)
 
SYS_API void sincosf(float x, float *s, float *c)
 
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
 
#define PXR_NAMESPACE_CLOSE_SCOPE
 
SYS_API double sin(double x)