g4tools  5.4.0
mathf
Go to the documentation of this file.
1 // Copyright (C) 2010, Guy Barrand. All rights reserved.
2 // See the file tools.license for terms.
3 
4 #ifndef tools_mathf
5 #define tools_mathf
6 
7 namespace tools {
8 
9 //have : static const fpi = (float)3.1415926535897931160E0; ???
10 
11 inline float fpi() {return (float)3.1415926535897931160E0;}
12 inline float ftwo_pi() {return (float)6.2831853071795862320E0;}
13 inline float fhalf_pi() {return (float)1.5707963267948965580E0;}
14 
15 //inline float fdeg2rad() {return fpi()/180.0f;} //0.0174f
16 //inline float frad2deg() {return 180.0f/fpi();}
17 
18 inline float fdeg2rad() {
19  static const float s_v = fpi()/180.0f; //0.0174f
20  return s_v;
21 }
22 inline float frad2deg() {
23  static const float s_v = 180.0f/fpi();
24  return s_v;
25 }
26 
27 inline int fround(const float& a_x) {
28  // From CoinGL/src/base/SbViewportRegion.cpp.
29  if (a_x == (float) (int(a_x))) return int(a_x);
30  else return (a_x>0.0f) ? int(a_x+0.5f) : -int(0.5f-a_x);
31 }
32 
33 inline float fstep(const float& a_x) {return a_x<0.0f?0.0f:1.0f;}
34 
35 }
36 
37 
38 #include <cmath>
39 
40 namespace tools {
41 
42 inline float fcos(const float& x) {return (float)::cos(double(x));}
43 inline float fsin(const float& x) {return (float)::sin(double(x));}
44 inline float facos(const float& x) {return (float)::acos(double(x));}
45 inline float fasin(const float& x) {return (float)::asin(double(x));}
46 inline float ftan(const float& x) {return (float)::tan(double(x));}
47 inline float fatan(const float& x) {return (float)::atan(double(x));}
48 inline float fatan2(const float& x,const float& y) {return (float)::atan2(double(x),double(y));}
49 inline float fsqrt(const float& x) {return (float)::sqrt(double(x));}
50 inline float fpow(const float& x,const float& y) {return (float)::pow(double(x),(double)(y));}
51 inline float fexp(const float& x) {return (float)::exp(double(x));}
52 inline float flog(const float& x) {return (float)::log(double(x));}
53 inline float flog10(const float& x) {return (float)::log10(double(x));}
54 inline float ffloor(const float& x) {return (float)::floor(double(x));}
55 inline float fceil(const float& x) {return (float)::ceil(double(x));}
56 inline float fcosh(const float& x) {return (float)::cosh(double(x));}
57 inline float fsinh(const float& x) {return (float)::sinh(double(x));}
58 inline float ffabs(const float& x) {return (float)::fabs(double(x));}
59 
60 }
61 
62 #endif
tools::fdeg2rad
float fdeg2rad()
Definition: mathf:18
tools::fasin
float fasin(const float &x)
Definition: mathf:45
tools::fstep
float fstep(const float &a_x)
Definition: mathf:33
tools::facos
float facos(const float &x)
Definition: mathf:44
tools::ffabs
float ffabs(const float &x)
Definition: mathf:58
tools::fcos
float fcos(const float &x)
Definition: mathf:42
tools::fpi
float fpi()
Definition: mathf:11
tools::frad2deg
float frad2deg()
Definition: mathf:22
tools::fatan
float fatan(const float &x)
Definition: mathf:47
tools::ftan
float ftan(const float &x)
Definition: mathf:46
tools::fsinh
float fsinh(const float &x)
Definition: mathf:57
tools::fcosh
float fcosh(const float &x)
Definition: mathf:56
tools::fceil
float fceil(const float &x)
Definition: mathf:55
tools::fsqrt
float fsqrt(const float &x)
Definition: mathf:49
tools::flog10
float flog10(const float &x)
Definition: mathf:53
tools::fexp
float fexp(const float &x)
Definition: mathf:51
tools
inlined C code : ///////////////////////////////////
Definition: aida_ntuple:26
tools::fhalf_pi
float fhalf_pi()
Definition: mathf:13
tools::ftwo_pi
float ftwo_pi()
Definition: mathf:12
tools::flog
float flog(const float &x)
Definition: mathf:52
tools::ffloor
float ffloor(const float &x)
Definition: mathf:54
tools::fpow
float fpow(const float &x, const float &y)
Definition: mathf:50
tools::fsin
float fsin(const float &x)
Definition: mathf:43
tools::fround
int fround(const float &a_x)
Definition: mathf:27
tools::fatan2
float fatan2(const float &x, const float &y)
Definition: mathf:48