Average Error: 1.8 → 1.9
Time: 14.2s
Precision: 64
\[\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}\right)}\]
\[\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + \log \left(e^{{\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}\right)}}\right)}\]
\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}\right)}
\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + \log \left(e^{{\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}\right)}}\right)}
double f(double l, double Om, double kx, double ky) {
        double r50176 = 1.0;
        double r50177 = 2.0;
        double r50178 = r50176 / r50177;
        double r50179 = l;
        double r50180 = r50177 * r50179;
        double r50181 = Om;
        double r50182 = r50180 / r50181;
        double r50183 = pow(r50182, r50177);
        double r50184 = kx;
        double r50185 = sin(r50184);
        double r50186 = pow(r50185, r50177);
        double r50187 = ky;
        double r50188 = sin(r50187);
        double r50189 = pow(r50188, r50177);
        double r50190 = r50186 + r50189;
        double r50191 = r50183 * r50190;
        double r50192 = r50176 + r50191;
        double r50193 = sqrt(r50192);
        double r50194 = r50176 / r50193;
        double r50195 = r50176 + r50194;
        double r50196 = r50178 * r50195;
        double r50197 = sqrt(r50196);
        return r50197;
}

double f(double l, double Om, double kx, double ky) {
        double r50198 = 1.0;
        double r50199 = 2.0;
        double r50200 = r50198 / r50199;
        double r50201 = l;
        double r50202 = r50199 * r50201;
        double r50203 = Om;
        double r50204 = r50202 / r50203;
        double r50205 = pow(r50204, r50199);
        double r50206 = kx;
        double r50207 = sin(r50206);
        double r50208 = pow(r50207, r50199);
        double r50209 = ky;
        double r50210 = sin(r50209);
        double r50211 = pow(r50210, r50199);
        double r50212 = r50208 + r50211;
        double r50213 = r50205 * r50212;
        double r50214 = exp(r50213);
        double r50215 = log(r50214);
        double r50216 = r50198 + r50215;
        double r50217 = sqrt(r50216);
        double r50218 = r50198 / r50217;
        double r50219 = r50198 + r50218;
        double r50220 = r50200 * r50219;
        double r50221 = sqrt(r50220);
        return r50221;
}

Error

Bits error versus l

Bits error versus Om

Bits error versus kx

Bits error versus ky

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 1.8

    \[\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}\right)}\]
  2. Using strategy rm
  3. Applied add-log-exp1.9

    \[\leadsto \sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + \color{blue}{\log \left(e^{{\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}\right)}}}\right)}\]
  4. Final simplification1.9

    \[\leadsto \sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + \log \left(e^{{\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}\right)}}\right)}\]

Reproduce

herbie shell --seed 2020047 
(FPCore (l Om kx ky)
  :name "Toniolo and Linder, Equation (3a)"
  :precision binary64
  (sqrt (* (/ 1 2) (+ 1 (/ 1 (sqrt (+ 1 (* (pow (/ (* 2 l) Om) 2) (+ (pow (sin kx) 2) (pow (sin ky) 2))))))))))