Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- float sin(float angle){
- float x,xint,xx,xxxx,sinpart,cospart,sinsemi,cossemi,sinfinal,cosfinal;
- float cospart2,sinpart2,cos2part,sin2part,cos2semi,sin2semi,sincospart,sincossemi;
- float sinuncorr,cosuncorr,hypsq,errormul;
- x = angle * 0.1591549431;
- xint = float($$nearest(x));
- x = x - xint; // get fractional part
- xx = x * x;
- xxxx = xx * xx;
- sinpart = xx * -0.0046075748;
- cospart = xx * -0.0204391631;
- sinpart = sinpart + 0.0796819754;
- cospart = cospart + 0.2536086171;
- sinpart2 = xx * -0.645963615;
- sinpart = sinpart * xxxx;
- cospart2 = xx * -1.2336977925;
- cospart = cospart * xxxx;
- sinpart = sinpart + sinpart2;
- cospart = cospart + cospart2;
- sinpart = sinpart + 1.5707963235;
- cospart = cospart + 1.0;
- sinpart = sinpart * x;
- cos2part = cospart * cospart;
- sin2part = sinpart * sinpart;
- sincospart = sinpart * cospart;
- cossemi = cos2part - sin2part;
- sinsemi = sincospart * 2.0;
- sin2semi = sinsemi * sinsemi;
- cos2semi = cossemi * cossemi;
- sincossemi = sinsemi * cossemi;
- hypsq = cos2semi + sin2semi;
- cosuncorr = cos2semi - sin2semi;
- errormul = 2.0 - hypsq;
- sinuncorr = sincossemi * 2.0;
- cosfinal = errormul * cosuncorr;
- sinfinal = errormul * sinuncorr;
- return sinfinal;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement