rendered paste body
if(isinf(cislo))
{
return INFINITY;
}
if(cislo <= 0 || isnan(cislo) || isinf(eps) || isnan(eps) || eps <= 0)
{
return NAN;
}
if (cislo == 1)
{
return 0;
}
int poc = 0;
if (cislo > IZP_E)
{
while(cislo > IZP_E){ //deli cislo na 2 casti
cislo /= IZP_E; //dalej pocita len zo zvyskom
poc++; //pocet nasobkov e v cisle
}
}
else if (cislo <IZP_E)
{
while(cislo < IZP_E){
cislo *= IZP_E;
poc--;
}
}
double p_rada = (cislo - 1)/(cislo + 1); //pomocna premenna
double sum = 0.0; //sucet rozvoja
double i = 1.0;
double nove_c=(cislo - 1)/(cislo + 1); //clen rozvoja
double citatel = (cislo-1)*(cislo-1);
double menovatel = (cislo+1)*(cislo+1);
while (fabs(nove_c) >= eps) {
i+=2;
sum += nove_c;
p_rada = p_rada* ((citatel)/(menovatel));
nove_c=p_rada*(1/i);
}
return (2*sum)+poc;
}