//целый корень....
int isqrt4(unsigned x) {
unsigned m, y, b;
m = 0x40000000;
y = 0;
while(m != 0) { // Do 16 times.
b = y | m;
y = y >> 1;
if (x >= b) { x = x - b; y = y | m; }
m = m >> 2;
}
return y;
}
float sinus(float z)
{ double esp=100000
float prev = z;
float S = z;
float check;
int iterations_limit = 10000;
int i;
/* можно указать максимальное количество итераций
* на случай, если точность не будет достигнута */
for(i= 0; i < iterations_limit; ++i)
{
S += prev*(-1)*z*z / ((2*i + 3)*(2*i + 2));
check = prev;
prev = prev*(-1)*z*z / ((2*i + 3)*(2*i + 2));
if (((check*check) - (prev*prev)) < (eps*esp)) break;
}
return S;
}
как видно нарыл в сети корень(только целый) и синус,но почему-то синус не фурычит(компилятор на "не декларированные" переменные esp и prev кричит,хотя всё правильно вроде)...
подкиньте идейки как посчитать,и можно код корня изменить так чтоб дробные считал..?(или как асмом через сопроцессор(сам не нашел под арху амр9) посчитать синус и корень(остальное само уже выползет)?)