CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
FastMath.cc
Go to the documentation of this file.
2 namespace fastmath_details {
3  float atanbuf_[257 * 2];
4  double datanbuf_[513 * 2];
5 
6  namespace {
7  // ====================================================================
8  // arctan initialization
9  // =====================================================================
10  struct Initatan {
11  Initatan() {
12  unsigned int ind;
13  for (ind = 0; ind <= 256; ind++) {
14  double v = ind / 256.0;
15  double asinv = ::asin(v);
16  atanbuf_[ind * 2] = ::cos(asinv);
17  atanbuf_[ind * 2 + 1] = asinv;
18  }
19  for (ind = 0; ind <= 512; ind++) {
20  double v = ind / 512.0;
21  double asinv = ::asin(v);
22  datanbuf_[ind * 2] = ::cos(asinv);
23  datanbuf_[ind * 2 + 1] = asinv;
24  }
25  }
26  };
27  Initatan initAtan;
28  } // namespace
29 } // namespace fastmath_details
float atanbuf_[257 *2]
Definition: FastMath.cc:3
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
double datanbuf_[513 *2]
Definition: FastMath.cc:4