The iterative process performed in the programme 'fractrace' is shown below.
It was necessary to add a small but finite number in the denominators to avoid nasty divergences in the numerical evaluation. This is not a satisfactory procedure because it introduces a small deformation that should not be there. Recall that the scator product is closed in the $\mathbb{S}_{-}^{1+n}$ set, so it should be possible to solve this problem in a better way.
/* ix - fractrace - tomotrace */
aar = ar * ar; aai = ai * ai; aaj = aj * aj;
double r2 = aar + aai + aaj + aai * aaj /(aar+.001);
double r2 = aar + aai + aaj + aai * aaj /(aar+.001);
for (n = 1; n < zkl; n++) {
r2 = aar + aai + aaj + aai * aaj /(aar+.001);
tar = aar - aai - aaj + aai * aaj /(aar+.001) +br;
tai = 2 * ar * ai - 2 * ai * aaj / (ar+.001) +bi;
taj = 2 * ar * aj - 2 * aj * aai / (ar+.001) +bj;
ar=tar; ai=tai; aj=taj;
aar = ar * ar; aai = ai * ai; aaj = aj * aj;
r2 = aar + aai + aaj + aai * aaj /(aar+.001);
if (r2 > 400) { tw = n; break; }
}
r2 = aar + aai + aaj + aai * aaj /(aar+.001);
tar = aar - aai - aaj + aai * aaj /(aar+.001) +br;
tai = 2 * ar * ai - 2 * ai * aaj / (ar+.001) +bi;
taj = 2 * ar * aj - 2 * aj * aai / (ar+.001) +bj;
ar=tar; ai=tai; aj=taj;
aar = ar * ar; aai = ai * ai; aaj = aj * aj;
r2 = aar + aai + aaj + aai * aaj /(aar+.001);
if (r2 > 400) { tw = n; break; }
}
An example to download in .xml file to process with 'fractrace': fractrace-formula-example.zip