嗨,几个月没发文章的,因为学业紧张嘛。今天刚好赶一下稿。
最近写了一个算法库,主要功能是把Visual Studio上的某些厉害的算法函数移植到keil上。比如sqrt啊,abs啊之类的。今天,我就介绍几个我的函数(等库写好了当资源或等我有钱了创个GYUIT.CN放进去)
1,Sqrt
函数原型是这样的:
double Sqrt(
double x
)
可见,它有一个形参x,这个函数的目的是求出x的开根号,比如这样:
int main(void)
{
std::cout<< Sqrt(16);
return 0;
}
输出:
4
这是它的函数体:
double Sqrt(double x) {
double guess = x;
double eps = 2.2204460492503131e-16;
while (abst(guess * guess - x) > eps * x) {
guess = (guess + x / guess) / 2;
}
return guess;
}
别直接放到编译器上运行啊!它会报错,因为abst也是我的函数。
来看一下abst函数原型:
double abst(
double x
)
再来看看它的函数体:
double abst(double x) {
if (x < 0.0) {
return -x;
}
else {
return x;
}
}
这个其实已经不用讲了,将负数转换成它的正数。负负得正。
本来还想讲一下我的SIN呢,但是不知道为什么,在keil上无法编译,所以我就不讲出来丢人了。