long H3(double ar, double ai, double aj, double ak, double br, double bi, double bj, double bk, long zkl)
{
double aar, aai, aaj, aak;
double d;
long tw;
int n;
aar = ar * ar; aai = ai * ai; aaj = aj * aj; aak = ak * ak; tw = 0L;
d = aar + aai + aaj + aak;
for (n = 1; n < zkl; n++)
{
ak = 2 * ak * ar * aj + d * bk;
ai = 2 * ai * ar * aj + d * bi;
aj = aaj - (aai + aak + aar) / 2.0 + d * bj;
ar = aar - (aai + aak + aaj) / 2.0 + d * br;
aar = ar * ar; aai = ai * ai; aaj = aj * aj; aak = ak * ak;
d = aar + aai + aaj + aak;
if ((d) > gr) { tw = n; break; }
}
return (tw);
}