Average Error: 0.2 → 0.2
Time: 48.9s
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)}\]
\[\lambda_1 + \tan^{-1}_* \frac{\cos \phi_1 \cdot \left(\sin delta \cdot \sin theta\right)}{\sqrt[3]{\left(\left(\cos delta - \sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right)\right)\right)\right) \cdot \left(\cos delta - \left(\left(\cos delta \cdot \sin \phi_1\right) \cdot \sin \phi_1 + \left(\cos \phi_1 \cdot \cos theta\right) \cdot \left(\sin delta \cdot \sin \phi_1\right)\right)\right)\right) \cdot \left(\cos delta - \sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right)\right)\right)\right)}}\]
\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)}
\lambda_1 + \tan^{-1}_* \frac{\cos \phi_1 \cdot \left(\sin delta \cdot \sin theta\right)}{\sqrt[3]{\left(\left(\cos delta - \sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right)\right)\right)\right) \cdot \left(\cos delta - \left(\left(\cos delta \cdot \sin \phi_1\right) \cdot \sin \phi_1 + \left(\cos \phi_1 \cdot \cos theta\right) \cdot \left(\sin delta \cdot \sin \phi_1\right)\right)\right)\right) \cdot \left(\cos delta - \sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right)\right)\right)\right)}}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r3250360 = lambda1;
        double r3250361 = theta;
        double r3250362 = sin(r3250361);
        double r3250363 = delta;
        double r3250364 = sin(r3250363);
        double r3250365 = r3250362 * r3250364;
        double r3250366 = phi1;
        double r3250367 = cos(r3250366);
        double r3250368 = r3250365 * r3250367;
        double r3250369 = cos(r3250363);
        double r3250370 = sin(r3250366);
        double r3250371 = r3250370 * r3250369;
        double r3250372 = r3250367 * r3250364;
        double r3250373 = cos(r3250361);
        double r3250374 = r3250372 * r3250373;
        double r3250375 = r3250371 + r3250374;
        double r3250376 = asin(r3250375);
        double r3250377 = sin(r3250376);
        double r3250378 = r3250370 * r3250377;
        double r3250379 = r3250369 - r3250378;
        double r3250380 = atan2(r3250368, r3250379);
        double r3250381 = r3250360 + r3250380;
        return r3250381;
}

double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r3250382 = lambda1;
        double r3250383 = phi1;
        double r3250384 = cos(r3250383);
        double r3250385 = delta;
        double r3250386 = sin(r3250385);
        double r3250387 = theta;
        double r3250388 = sin(r3250387);
        double r3250389 = r3250386 * r3250388;
        double r3250390 = r3250384 * r3250389;
        double r3250391 = cos(r3250385);
        double r3250392 = sin(r3250383);
        double r3250393 = r3250391 * r3250392;
        double r3250394 = cos(r3250387);
        double r3250395 = r3250384 * r3250386;
        double r3250396 = r3250394 * r3250395;
        double r3250397 = r3250393 + r3250396;
        double r3250398 = asin(r3250397);
        double r3250399 = sin(r3250398);
        double r3250400 = r3250392 * r3250399;
        double r3250401 = r3250391 - r3250400;
        double r3250402 = r3250393 * r3250392;
        double r3250403 = r3250384 * r3250394;
        double r3250404 = r3250386 * r3250392;
        double r3250405 = r3250403 * r3250404;
        double r3250406 = r3250402 + r3250405;
        double r3250407 = r3250391 - r3250406;
        double r3250408 = r3250401 * r3250407;
        double r3250409 = r3250408 * r3250401;
        double r3250410 = cbrt(r3250409);
        double r3250411 = atan2(r3250390, r3250410);
        double r3250412 = r3250382 + r3250411;
        return r3250412;
}

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 add-cbrt-cube0.2

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\color{blue}{\sqrt[3]{\left(\left(\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)\right) \cdot \left(\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)\right)\right) \cdot \left(\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)\right)}}}\]
  4. Taylor expanded around inf 0.2

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\sqrt[3]{\left(\left(\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)\right) \cdot \color{blue}{\left(\cos delta - \left({\left(\sin \phi_1\right)}^{2} \cdot \cos delta + \sin \phi_1 \cdot \left(\cos \phi_1 \cdot \left(\cos theta \cdot \sin delta\right)\right)\right)\right)}\right) \cdot \left(\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)\right)}}\]
  5. Simplified0.2

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\sqrt[3]{\left(\left(\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)\right) \cdot \color{blue}{\left(\cos delta - \left(\left(\cos delta \cdot \sin \phi_1\right) \cdot \sin \phi_1 + \left(\sin \phi_1 \cdot \sin delta\right) \cdot \left(\cos theta \cdot \cos \phi_1\right)\right)\right)}\right) \cdot \left(\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)\right)}}\]
  6. Final simplification0.2

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

Reproduce

herbie shell --seed 2019170 
(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))))))))))