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

Function Atan2F

rEFIt_UEFI/libeg/FloatLib.cpp:200–220  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

198}
199
200float Atan2F(float Y, float X) //result -pi..+pi
201{
202 float sign = (((X >= 0.0f) && (Y < 0.0f)) ||
203 ((X < 0.0f) && (Y >= 0.0f)))?-1.0f:1.0f;
204 float PP = 0.f;
205 float res = 0.f;
206 //1,1 = pi4 1,-1=pi34 -1,-1=-pi34 -1,1=-pi4
207 if (X < 0.f) {
208 PP = PI;
209 }
210 X = (X >= 0.0f)?X:(-X);
211 Y = (Y >= 0.0f)?Y:(-Y);
212 if (Y < X) {
213 res = AtanF(Y / X);
214 } else if (X == 0.0f) {
215 res = PI5;
216 } else {
217 res = (PI5 - AtanF(X / Y));
218 }
219 return sign * (res - PP);
220}
221
222/*
223RETURN_STATUS

Callers 2

nsvg__scanlineSolidFunction · 0.85
testSVGFunction · 0.85

Calls 1

AtanFFunction · 0.85

Tested by

no test coverage detected