Average Error: 0.2 → 0.2
Time: 36.5s
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{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\frac{{\left(\cos delta\right)}^{3} - \left(3 \cdot \left({\left(\sin \phi_1\right)}^{4} \cdot \left({\left(\cos \phi_1\right)}^{2} \cdot \left(\cos delta \cdot \left({\left(\sin delta\right)}^{2} \cdot {\left(\cos theta\right)}^{2}\right)\right)\right)\right) + \left({\left(\sin \phi_1\right)}^{3} \cdot \left({\left(\cos \phi_1\right)}^{3} \cdot \left({\left(\cos theta\right)}^{3} \cdot {\left(\sin delta\right)}^{3}\right)\right) + \left({\left(\sin \phi_1\right)}^{6} \cdot {\left(\cos delta\right)}^{3} + 3 \cdot \left({\left(\sin \phi_1\right)}^{5} \cdot \left(\cos \phi_1 \cdot \left(\sin delta \cdot \left({\left(\cos delta\right)}^{2} \cdot \cos theta\right)\right)\right)\right)\right)\right)\right)}{\cos delta \cdot \cos delta + \left(\sin \phi_1 \cdot \sin \left(\frac{\pi}{2} - \cos^{-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)}}\]
\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{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\frac{{\left(\cos delta\right)}^{3} - \left(3 \cdot \left({\left(\sin \phi_1\right)}^{4} \cdot \left({\left(\cos \phi_1\right)}^{2} \cdot \left(\cos delta \cdot \left({\left(\sin delta\right)}^{2} \cdot {\left(\cos theta\right)}^{2}\right)\right)\right)\right) + \left({\left(\sin \phi_1\right)}^{3} \cdot \left({\left(\cos \phi_1\right)}^{3} \cdot \left({\left(\cos theta\right)}^{3} \cdot {\left(\sin delta\right)}^{3}\right)\right) + \left({\left(\sin \phi_1\right)}^{6} \cdot {\left(\cos delta\right)}^{3} + 3 \cdot \left({\left(\sin \phi_1\right)}^{5} \cdot \left(\cos \phi_1 \cdot \left(\sin delta \cdot \left({\left(\cos delta\right)}^{2} \cdot \cos theta\right)\right)\right)\right)\right)\right)\right)}{\cos delta \cdot \cos delta + \left(\sin \phi_1 \cdot \sin \left(\frac{\pi}{2} - \cos^{-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)}}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r76121 = lambda1;
        double r76122 = theta;
        double r76123 = sin(r76122);
        double r76124 = delta;
        double r76125 = sin(r76124);
        double r76126 = r76123 * r76125;
        double r76127 = phi1;
        double r76128 = cos(r76127);
        double r76129 = r76126 * r76128;
        double r76130 = cos(r76124);
        double r76131 = sin(r76127);
        double r76132 = r76131 * r76130;
        double r76133 = r76128 * r76125;
        double r76134 = cos(r76122);
        double r76135 = r76133 * r76134;
        double r76136 = r76132 + r76135;
        double r76137 = asin(r76136);
        double r76138 = sin(r76137);
        double r76139 = r76131 * r76138;
        double r76140 = r76130 - r76139;
        double r76141 = atan2(r76129, r76140);
        double r76142 = r76121 + r76141;
        return r76142;
}

double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
        double r76143 = lambda1;
        double r76144 = theta;
        double r76145 = sin(r76144);
        double r76146 = delta;
        double r76147 = sin(r76146);
        double r76148 = r76145 * r76147;
        double r76149 = phi1;
        double r76150 = cos(r76149);
        double r76151 = r76148 * r76150;
        double r76152 = cos(r76146);
        double r76153 = 3.0;
        double r76154 = pow(r76152, r76153);
        double r76155 = sin(r76149);
        double r76156 = 4.0;
        double r76157 = pow(r76155, r76156);
        double r76158 = 2.0;
        double r76159 = pow(r76150, r76158);
        double r76160 = pow(r76147, r76158);
        double r76161 = cos(r76144);
        double r76162 = pow(r76161, r76158);
        double r76163 = r76160 * r76162;
        double r76164 = r76152 * r76163;
        double r76165 = r76159 * r76164;
        double r76166 = r76157 * r76165;
        double r76167 = r76153 * r76166;
        double r76168 = pow(r76155, r76153);
        double r76169 = pow(r76150, r76153);
        double r76170 = pow(r76161, r76153);
        double r76171 = pow(r76147, r76153);
        double r76172 = r76170 * r76171;
        double r76173 = r76169 * r76172;
        double r76174 = r76168 * r76173;
        double r76175 = 6.0;
        double r76176 = pow(r76155, r76175);
        double r76177 = r76176 * r76154;
        double r76178 = 5.0;
        double r76179 = pow(r76155, r76178);
        double r76180 = pow(r76152, r76158);
        double r76181 = r76180 * r76161;
        double r76182 = r76147 * r76181;
        double r76183 = r76150 * r76182;
        double r76184 = r76179 * r76183;
        double r76185 = r76153 * r76184;
        double r76186 = r76177 + r76185;
        double r76187 = r76174 + r76186;
        double r76188 = r76167 + r76187;
        double r76189 = r76154 - r76188;
        double r76190 = r76152 * r76152;
        double r76191 = atan2(1.0, 0.0);
        double r76192 = r76191 / r76158;
        double r76193 = r76155 * r76152;
        double r76194 = r76150 * r76147;
        double r76195 = r76194 * r76161;
        double r76196 = r76193 + r76195;
        double r76197 = acos(r76196);
        double r76198 = r76192 - r76197;
        double r76199 = sin(r76198);
        double r76200 = r76155 * r76199;
        double r76201 = asin(r76196);
        double r76202 = sin(r76201);
        double r76203 = r76155 * r76202;
        double r76204 = r76152 + r76203;
        double r76205 = r76200 * r76204;
        double r76206 = r76190 + r76205;
        double r76207 = r76189 / r76206;
        double r76208 = atan2(r76151, r76207);
        double r76209 = r76143 + r76208;
        return r76209;
}

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 flip3--0.2

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

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\frac{{\left(\cos delta\right)}^{3} - {\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)}^{3}}{\color{blue}{\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(\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. Using strategy rm
  6. Applied asin-acos0.2

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

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

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

Reproduce

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