| 531 | // coordinates of Jupiter through Pluto, for better accuracy. |
| 532 | |
| 533 | void ErrorCorrect(int ind, real *x, real *y, real *z) |
| 534 | { |
| 535 | real U, V, W, A, S0, T0[4], *pr; |
| 536 | int IK, IJ, irError; |
| 537 | |
| 538 | irError = cErrorCount[ind-oJup]; |
| 539 | pr = (real *)&rErrorData[iErrorOffset[ind-oJup]]; |
| 540 | for (IK = 1; IK <= 3; IK++) { |
| 541 | if (ind == oJup && IK == 3) { |
| 542 | T0[3] = 0.0; |
| 543 | break; |
| 544 | } |
| 545 | if (IK == 3) |
| 546 | irError--; |
| 547 | S0 = ReadThree(pr[0], pr[1], pr[2]); pr += 3; |
| 548 | A = 0.0; |
| 549 | for (IJ = 1; IJ <= irError; IJ++) { |
| 550 | U = *pr++; V = *pr++; W = *pr++; |
| 551 | A += RFromD(U)*RCos((V*is.T+W)*rPi/rDegHalf); |
| 552 | } |
| 553 | T0[IK] = DFromR(S0+A); |
| 554 | } |
| 555 | *x += T0[2]; *y += T0[1]; *z += T0[3]; |
| 556 | } |
| 557 | |
| 558 | |
| 559 | // This is the (classic) heart of the whole program of Astrolog. Calculate |
no test coverage detected