Gaudi Framework, version v22r0

Home   Generated: 9 Feb 2011

cbrt.h

Go to the documentation of this file.
00001 // $Id: cbrt.h,v 1.1 2007/07/27 12:59:52 marcocle Exp $
00002 #ifndef GAUDIKERNEL_CBRT_H
00003 #define GAUDIKERNEL_CBRT_H
00004 
00005 // ============================================================================
00006 // Include files
00007 // ============================================================================
00008 
00009 #include <cmath>
00010 
00020 // double cbrt(double) is a gcc built-in
00021 #ifndef __GNUC__
00022 inline double cbrt( double __x ){
00023   return ::pow( __x, static_cast<double>(1.0/3.0) );
00024 }
00025 #endif
00026 
00027 // we need cbrtf for floats
00028 inline float cbrt( float __x ) {
00029 #ifdef __GNUC__
00030   return ::cbrtf( __x );
00031 #else
00032   return ::pow( __x, static_cast<float>(1.0/3.0) );
00033 #endif
00034 }
00035 
00036 // we need cbrtl for long doubles
00037 inline long double cbrt( long double __x ) {
00038 #ifdef __GNUC__
00039   return ::cbrtl( __x );
00040 #else
00041   return ::pow( __x, static_cast<long double>(1.0/3.0) );
00042 #endif
00043 }
00044 
00045 #ifdef __INTEL_COMPILER        // Disable ICC remark
00046   #pragma warning(push)
00047   #pragma warning(disable:2259) // non-pointer conversion may lose significant bits
00048 #endif
00049 
00050 // use cbrt(double) for integers
00051 #define cbrt_for_int_type(t) \
00052 inline double cbrt( t __x ) { return cbrt ( static_cast<double>(__x) ); }
00053 
00054 cbrt_for_int_type(int)
00055 cbrt_for_int_type(long)
00056 cbrt_for_int_type(long long)
00057 cbrt_for_int_type(unsigned int)
00058 cbrt_for_int_type(unsigned long)
00059 cbrt_for_int_type(unsigned long long)
00060 
00061 #ifdef __INTEL_COMPILER        // End disable ICC remark
00062   #pragma warning(pop)
00063 #endif
00064 
00065 #undef cbrt_for_int_type
00066 
00067 #endif
00068 // ============================================================================
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines

Generated at Wed Feb 9 16:24:50 2011 for Gaudi Framework, version v22r0 by Doxygen version 1.6.2 written by Dimitri van Heesch, © 1997-2004