91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

三角函數包括反三角函數的實現,基本思想是利用泰勒級數。鑒于反三角函數ACOS在0.9-1的時候利用直接利用泰勒級數時收斂很慢的缺點,比較ulicx作了優化,使得精度和時間都達到了自己預期。適用于在嵌入式環境下不好實用math庫的項目

資源截圖

代碼片段和文件信息

//?CalDis.cpp?:?Defines?the?entry?point?for?the?console?application.
//
#include?“stdio.h“?
#include?“stdlib.h“??
#include?“time.h“

#include?“math.h“
#define?PI????????3.14159265358979323846
#define?COEFF???6370693.4856530580439461631130889
//角度轉弧度
double?deg2rad(double?deg)
{
????return?(deg*PI)/180.0;
}
double?rad2deg(double?rad)
{
????return?rad*180/PI;
}

double?fabs(double?x)
{
if?(x? return?-x;
return?x;
}

//牛頓迭代法求開方
double?k_sqrt(double?adouble?x0)
{?

double?x1y;
x1=(x0+a/x0)/2.0;??
if(fabs(x1-x0)>=10e-15)
y?=?k_sqrt(ax1);
else??y=x1;
??return?y;
}
double?sqrt(double?x)
{?
return?k_sqrt(x?1.0);
}
//用于計算距離和方向
double?sin(double?x)
{
???double?result=xtemp=x;
???double?den=xfac=1;
???int?n=1sign=1;
???while((temp>1e-15)||(temp<-1e-15))????????
???{
???????n++fac*=nden*=x;
???????n++fac*=nden*=x;
???????temp=den/fac;sign=-sign;
???????result=sign>0?result+temp:result-temp;
???}
???return?result;
}?
double?cos(double?x)
{
x=PI?/?2?-?x;
return?sin(x);
}???
double?pow(double?x?int?n)
{
double?result?=?1;
if?(n?==?0)
return?1;
for?(int?i?=?0;?i? {
result*=x;
}

return?result;
}

long?factorial(int?x)
{
long?result?=?1;
for?(int?i?=?1;?i?<=?x;?i++)
result?*=?i;

return?result;
}
double?asin(double?x)
{

double?result=0;
double?temp=x;

int?n=1;


while((temp>1e-15)||(temp<-1e-15))????????
{
result?+=?temp;
temp?=?factorial(2*n)?/?(pow(2?2*n)?*?pow(factorial(n)?2))?*?pow(x?2*n+1)?/?(2*n+1);
printf(“%lf?%d\n“?temp?n);
n++;
}
printf(“n=%d\n“n);
return result;
}

double?acos(double?x)
{

if?(fabs(x)? return?PI?/?2?-?asin(x);
else
return?2?*?asin(sqrt((1-x)/2));

}

//計算距離
double?distance(double?lat1double?lon1double?lat2double?lon2)
{
????double?test=sin(deg2rad(lat1))?*?sin(deg2rad(lat2))?+?cos(deg2rad(lat1))?*?cos(deg2rad(lat2))?*?cos(deg2rad(lon1?-?lon2));
printf(“test?%.lf\n“?test);
????return?COEFF*acos(test);
}?


int?main(int?argc?char*?argv[])
{

clock_t?start?finish;??
double??duration;??
start?=?clock();
printf(“%lf\n“?sin(deg2rad(0)));
printf(“%lf\n“?cos(deg2rad(60)));
?
printf(“%.15lf\n“?cos(acos(0.99999988888887)));


printf(“%lf\n“?cos(acos(0.5)));
?
????printf(“%lf\n“?distance(31.589204?118.46524231.589804?118.465242));


printf(“%lf\n“sqrt(2));
finish?=?clock();??
??
duration?=?(double)(finish?-?start)?/?CLOCKS_PER_SEC;??
??
printf(?“%f?seconds\n“?duration);??
????
return?0;
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????2624??2014-06-29?23:35??CalDis\CalDis.cpp

?????文件???????4544??2014-06-29?23:20??CalDis\CalDis.dsp

?????文件????????518??2014-06-24?14:40??CalDis\CalDis.dsw

?????文件??????50688??2014-06-29?23:38??CalDis\CalDis.opt

?????文件???????1273??2014-06-29?23:35??CalDis\CalDis.plg

?????文件?????192580??2014-06-29?23:35??CalDis\Debug\CalDis.exe

?????文件?????228984??2014-06-29?23:35??CalDis\Debug\CalDis.ilk

?????文件??????13361??2014-06-29?23:35??CalDis\Debug\CalDis.obj

?????文件?????203608??2014-06-25?16:52??CalDis\Debug\CalDis.pch

?????文件?????459776??2014-06-29?23:35??CalDis\Debug\CalDis.pdb

?????文件???????1827??2014-06-25?16:52??CalDis\Debug\StdAfx.obj

?????文件??????41984??2014-06-29?23:35??CalDis\Debug\vc60.idb

?????文件??????53248??2014-06-29?23:35??CalDis\Debug\vc60.pdb

?????文件???????1208??2014-06-24?14:40??CalDis\ReadMe.txt

?????文件????????293??2014-06-24?14:40??CalDis\StdAfx.cpp

?????文件????????769??2014-06-24?14:40??CalDis\StdAfx.h

?????目錄??????????0??2014-06-29?23:35??CalDis\Debug

?????目錄??????????0??2014-06-29?23:38??CalDis

?????文件??????50176??2014-06-29?23:38??CalDis\CalDis.ncb

-----------?---------??----------?-----??----

??????????????1307461????????????????????19


評論

共有 條評論