MCPcopy Create free account
hub / github.com/CloverHackyColor/CloverBootloader / AtanF

Function AtanF

rEFIt_UEFI/libeg/FloatLib.cpp:172–198  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

170}
171
172float AtanF(float X) //assume 0.0 < X < 1.0
173{
174 float Eps = 1.0e-8f;
175 int i = 1;
176 float X2 = X * X;
177 float D = X;
178 float Y = 0.f;
179 float sign = 1.0f;
180
181 if (X > 0.5f) {
182 //make here arctg(1-x)
183 X = 1.0f - D;
184 X2 = X * X;
185 Y = PI4 - X * 0.5f - X2 * 0.25f - X * X2 * 0.25f * ( 1.f / 3.f - X2 * (0.1f + X / 12.f + X2 / 28.f));
186 } else {
187 // Y = X * (1 - X2 * ( 1.0f / 3.0f - X2 * (1.0f / 5.0f - X2 * ( 1.0f / 7.0f))));
188 for (i = 1; i < 50; i += 2) {
189 Y += (D * sign / i);
190 D *= X2;
191 if (D < Eps) {
192 break;
193 }
194 sign = - sign;
195 }
196 }
197 return Y;
198}
199
200float Atan2F(float Y, float X) //result -pi..+pi
201{

Callers 1

Atan2FFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected