47 return x * (float(-0xf.8eed2p-4) +
x*
x * float(0x3.1238p-4)) ;
53 return x * (float(-0xf.ecfc8p-4) +
z * (float(0x4.9e79dp-4) +
z * float(-0x1.44f924p-4) ) );
59 return x * (float(-0xf.fcc7ap-4) +
z * (float(0x5.23886p-4) +
z * (float(-0x2.571968p-4) +
z * float(0x9.fb05p-8) ) ) ) ;
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) ) ) ) );
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))))));
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))))))) ;
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)))))))));
90 constexpr float pi4f = 3.1415926535897932384626434/4;
91 constexpr float pi34f = 3.1415926535897932384626434*3/4;
96 auto angle = (x>=0) ? pi4f : pi34f;
97 angle += approx_atan2f_P<DEGREE>(
r);
106 return unsafe_atan2f_impl<DEGREE>(
y,
x);
113 return unsafe_atan2f_impl<DEGREE>(
y, (y==0.f)&(x==0.
f) ? 0.2f :
x);
132 return x * (-664694912.f +
z * 131209024.f);
138 return x * (-680392064.f +
z * (197338400.f +
z * (-54233256.f)));
144 return x * (-683027840.f +
z * (219543904.f +
z * (-99981040.f +
z * 26649684.f)));
150 return x * (-683473920.f +
z * (225785056.f +
z * (-123151184.f +
z * (58210592.f +
z * (-14249276.f)))));
156 return x * (-683549696.f +
z * (227369312.f +
z * (-132297008.f +
z * (79584144.f +
z * (-35987016.f +
z * 8010488.f)))));
162 return x * (-683562624.f +
z * (227746080.f +
z * (-135400128.f +
z * (90460848.f +
z * (-54431464.f +
z * (22973256.f +
z * (-4657049.f)))))));
167 return x * (-683562624.f +
z * (227746080.f +
z * (-135400128.f +
z * (90460848.f +
z * (-54431464.f +
z * (22973256.f +
z * (-4657049.f)))))));
177 constexpr int pi34 = int(3LL*maxint/4LL);
182 auto angle = (x>=0) ? pi4 : pi34;
183 angle += int(approx_atan2i_P<DEGREE>(
r));
194 return unsafe_atan2i_impl<DEGREE>(
y,
x);
201 return std::round(x*p2i);
220 return std::round(x*p2i);
float approx_atan2i_P< 15 >(float x)
float approx_atan2i_P< 11 >(float x)
float approx_atan2i_P< 3 >(float x)
float unsafe_atan2f(float y, float x)
float approx_atan2f_P(float x)
float approx_atan2i_P< 5 >(float x)
int unsafe_atan2i(float y, float x)
T x() const
Cartesian x coordinate.
float approx_atan2f_P< 9 >(float x)
float approx_atan2f_P< 7 >(float x)
float approx_atan2i_P< 7 >(float x)
Abs< T >::type abs(const T &t)
float approx_atan2f_P< 15 >(float x)
float approx_atan2f_P< 11 >(float x)
float approx_atan2i_P< 9 >(float x)
float approx_atan2i_P< 13 >(float x)
float unsafe_atan2f_impl(float y, float x)
float approx_atan2f_P< 5 >(float x)
int unsafe_atan2i_impl(float y, float x)
float approx_atan2i_P(float x)
float approx_atan2f_P< 13 >(float x)
float approx_atan2f_P< 3 >(float x)
float safe_atan2f(float y, float x)
T angle(T x1, T y1, T z1, T x2, T y2, T z2)