#include <cstdint>
#include <cmath>
#include <limits>
#include <algorithm>
Go to the source code of this file.
template<int DEGREE>
float approx_atan2f_P |
( |
float |
x | ) |
|
|
inline |
Definition at line 69 of file approx_atan2.h.
References x, and detailsBasic3DVector::z.
71 return x * (float(-0xf.ffe82p-4) +
z * (float(0x5.526c8p-4) +
z * (float(-0x3.18bea8p-4) +
z * (float(0x1.dce3bcp-4) +
z * (float(-0xd.7a64ap-8) +
z * float(0x3.000eap-8))))));
Definition at line 75 of file approx_atan2.h.
References x, and detailsBasic3DVector::z.
77 return x * (float(-0xf.fffbep-4) +
z * (float(0x5.54adp-4) +
z * (float(-0x3.2b4df8p-4) +
z * (float(0x2.1df79p-4) +
z * (float(-0x1.46081p-4) +
z * (float(0x8.99028p-8) +
z * float(-0x1.be0bc4p-8))))))) ;
Definition at line 81 of file approx_atan2.h.
References x, and detailsBasic3DVector::z.
83 return x * (float(-0xf.ffff4p-4) +
z * (float(0x5.552f9p-4 +
z * (
float(-0x3.30f728p-4) +
z * (
float(0x2.39826p-4) +
z * (
float(-0x1.8a880cp-4) +
z * (
float(0xe.484d6p-8) +
z * (
float(-0x5.93d5p-8) +
z *
float(0x1.0875dcp-8)))))))));
Definition at line 46 of file approx_atan2.h.
References x.
47 return x * (float(-0xf.8eed2p-4) +
x*
x * float(0x3.1238p-4)) ;
Definition at line 63 of file approx_atan2.h.
References x, and detailsBasic3DVector::z.
65 return x * (float(-0xf.ff73ep-4) +
z * (float(0x5.48ee1p-4) +
z * (float(-0x2.e1efe8p-4) +
z * (float(0x1.5cce54p-4) +
z * float(-0x5.56245p-8) ) ) ) );
template<int DEGREE>
float approx_atan2i_P |
( |
float |
x | ) |
|
|
inline |
Definition at line 161 of file approx_atan2.h.
References x, and detailsBasic3DVector::z.
163 return x * (-683562624.f +
z * (227746080.f +
z * (-135400128.f +
z * (90460848.f +
z * (-54431464.f +
z * (22973256.f +
z * (-4657049.f)))))));
Definition at line 166 of file approx_atan2.h.
References x, and detailsBasic3DVector::z.
168 return x * (-683562624.f +
z * (227746080.f +
z * (-135400128.f +
z * (90460848.f +
z * (-54431464.f +
z * (22973256.f +
z * (-4657049.f)))))));
short phi2short |
( |
float |
x | ) |
|
|
inline |
template<int DEGREE>
float safe_atan2f |
( |
float |
y, |
|
|
float |
x |
|
) |
| |
|
inline |
float short2phi |
( |
short |
x | ) |
|
|
inline |
template<int DEGREE>
float unsafe_atan2f |
( |
float |
y, |
|
|
float |
x |
|
) |
| |
|
inline |
template<int DEGREE>
float unsafe_atan2f_impl |
( |
float |
y, |
|
|
float |
x |
|
) |
| |
|
inline |
template<int DEGREE>
int unsafe_atan2i |
( |
float |
y, |
|
|
float |
x |
|
) |
| |
|
inline |
template<int DEGREE>
int unsafe_atan2i_impl |
( |
float |
y, |
|
|
float |
x |
|
) |
| |
|
inline |
Definition at line 173 of file approx_atan2.h.
References funct::abs(), angle(), constexpr, max(), and alignCSCRings::r.
178 constexpr int pi34 = int(3LL*maxint/4LL);
183 auto angle = (
x>=0) ? pi4 : pi34;
184 angle += int(approx_atan2i_P<DEGREE>(
r));
const T & max(const T &a, const T &b)
Abs< T >::type abs(const T &t)
T angle(T x1, T y1, T z1, T x2, T y2, T z2)