Average Error: 0.2 → 0.2
Time: 54.7s
Precision: 64
\[\lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\cos delta - \sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right)}\]
\[\tan^{-1}_* \frac{\cos \phi_1 \cdot \left(\sin delta \cdot \sin theta\right)}{\frac{1}{\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right) + \sin \phi_1 \cdot \cos delta\right)\right) + \cos delta} \cdot \left(\cos delta \cdot \cos delta - \sin \phi_1 \cdot \left(\sin \left(\sin^{-1} \left(\cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right) + \sin \phi_1 \cdot \cos delta\right)\right) \cdot \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right) + \sin \phi_1 \cdot \cos delta\right)\right)\right)\right)\right)} + \lambda_1\]
\lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\cos delta - \sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right)}
\tan^{-1}_* \frac{\cos \phi_1 \cdot \left(\sin delta \cdot \sin theta\right)}{\frac{1}{\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right) + \sin \phi_1 \cdot \cos delta\right)\right) + \cos delta} \cdot \left(\cos delta \cdot \cos delta - \sin \phi_1 \cdot \left(\sin \left(\sin^{-1} \left(\cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right) + \sin \phi_1 \cdot \cos delta\right)\right) \cdot \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right) + \sin \phi_1 \cdot \cos delta\right)\right)\right)\right)\right)} + \lambda_1
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r1652462 = lambda1;
        double r1652463 = theta;
        double r1652464 = sin(r1652463);
        double r1652465 = delta;
        double r1652466 = sin(r1652465);
        double r1652467 = r1652464 * r1652466;
        double r1652468 = phi1;
        double r1652469 = cos(r1652468);
        double r1652470 = r1652467 * r1652469;
        double r1652471 = cos(r1652465);
        double r1652472 = sin(r1652468);
        double r1652473 = r1652472 * r1652471;
        double r1652474 = r1652469 * r1652466;
        double r1652475 = cos(r1652463);
        double r1652476 = r1652474 * r1652475;
        double r1652477 = r1652473 + r1652476;
        double r1652478 = asin(r1652477);
        double r1652479 = sin(r1652478);
        double r1652480 = r1652472 * r1652479;
        double r1652481 = r1652471 - r1652480;
        double r1652482 = atan2(r1652470, r1652481);
        double r1652483 = r1652462 + r1652482;
        return r1652483;
}

double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r1652484 = phi1;
        double r1652485 = cos(r1652484);
        double r1652486 = delta;
        double r1652487 = sin(r1652486);
        double r1652488 = theta;
        double r1652489 = sin(r1652488);
        double r1652490 = r1652487 * r1652489;
        double r1652491 = r1652485 * r1652490;
        double r1652492 = 1.0;
        double r1652493 = sin(r1652484);
        double r1652494 = cos(r1652488);
        double r1652495 = r1652485 * r1652487;
        double r1652496 = r1652494 * r1652495;
        double r1652497 = cos(r1652486);
        double r1652498 = r1652493 * r1652497;
        double r1652499 = r1652496 + r1652498;
        double r1652500 = asin(r1652499);
        double r1652501 = sin(r1652500);
        double r1652502 = r1652493 * r1652501;
        double r1652503 = r1652502 + r1652497;
        double r1652504 = r1652492 / r1652503;
        double r1652505 = r1652497 * r1652497;
        double r1652506 = r1652501 * r1652502;
        double r1652507 = r1652493 * r1652506;
        double r1652508 = r1652505 - r1652507;
        double r1652509 = r1652504 * r1652508;
        double r1652510 = atan2(r1652491, r1652509);
        double r1652511 = lambda1;
        double r1652512 = r1652510 + r1652511;
        return r1652512;
}

Error

Bits error versus lambda1

Bits error versus phi1

Bits error versus phi2

Bits error versus delta

Bits error versus theta

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.2

    \[\lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\cos delta - \sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right)}\]
  2. Using strategy rm
  3. Applied flip--0.2

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\color{blue}{\frac{\cos delta \cdot \cos delta - \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right)\right) \cdot \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right)\right)}{\cos delta + \sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right)}}}\]
  4. Using strategy rm
  5. Applied div-inv0.2

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\color{blue}{\left(\cos delta \cdot \cos delta - \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right)\right) \cdot \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right)\right)\right) \cdot \frac{1}{\cos delta + \sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right)}}}\]
  6. Using strategy rm
  7. Applied associate-*l*0.2

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\left(\cos delta \cdot \cos delta - \color{blue}{\sin \phi_1 \cdot \left(\sin \left(\sin^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right) \cdot \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right)\right)\right)}\right) \cdot \frac{1}{\cos delta + \sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right)}}\]
  8. Final simplification0.2

    \[\leadsto \tan^{-1}_* \frac{\cos \phi_1 \cdot \left(\sin delta \cdot \sin theta\right)}{\frac{1}{\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right) + \sin \phi_1 \cdot \cos delta\right)\right) + \cos delta} \cdot \left(\cos delta \cdot \cos delta - \sin \phi_1 \cdot \left(\sin \left(\sin^{-1} \left(\cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right) + \sin \phi_1 \cdot \cos delta\right)\right) \cdot \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right) + \sin \phi_1 \cdot \cos delta\right)\right)\right)\right)\right)} + \lambda_1\]

Reproduce

herbie shell --seed 2019152 
(FPCore (lambda1 phi1 phi2 delta theta)
  :name "Destination given bearing on a great circle"
  (+ lambda1 (atan2 (* (* (sin theta) (sin delta)) (cos phi1)) (- (cos delta) (* (sin phi1) (sin (asin (+ (* (sin phi1) (cos delta)) (* (* (cos phi1) (sin delta)) (cos theta))))))))))