Average Error: 1.7 → 1.5
Time: 10.5s
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 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \mathsf{log1p}\left(\mathsf{expm1}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)\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 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \mathsf{log1p}\left(\mathsf{expm1}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)\right)\right)}}\right)}
double f(double l, double Om, double kx, double ky) {
        double r64176 = 1.0;
        double r64177 = 2.0;
        double r64178 = r64176 / r64177;
        double r64179 = l;
        double r64180 = r64177 * r64179;
        double r64181 = Om;
        double r64182 = r64180 / r64181;
        double r64183 = pow(r64182, r64177);
        double r64184 = kx;
        double r64185 = sin(r64184);
        double r64186 = pow(r64185, r64177);
        double r64187 = ky;
        double r64188 = sin(r64187);
        double r64189 = pow(r64188, r64177);
        double r64190 = r64186 + r64189;
        double r64191 = r64183 * r64190;
        double r64192 = r64176 + r64191;
        double r64193 = sqrt(r64192);
        double r64194 = r64176 / r64193;
        double r64195 = r64176 + r64194;
        double r64196 = r64178 * r64195;
        double r64197 = sqrt(r64196);
        return r64197;
}

double f(double l, double Om, double kx, double ky) {
        double r64198 = 1.0;
        double r64199 = 2.0;
        double r64200 = r64198 / r64199;
        double r64201 = l;
        double r64202 = r64199 * r64201;
        double r64203 = Om;
        double r64204 = r64202 / r64203;
        double r64205 = 2.0;
        double r64206 = r64199 / r64205;
        double r64207 = pow(r64204, r64206);
        double r64208 = kx;
        double r64209 = sin(r64208);
        double r64210 = pow(r64209, r64199);
        double r64211 = ky;
        double r64212 = sin(r64211);
        double r64213 = pow(r64212, r64199);
        double r64214 = r64210 + r64213;
        double r64215 = r64207 * r64214;
        double r64216 = expm1(r64215);
        double r64217 = log1p(r64216);
        double r64218 = r64207 * r64217;
        double r64219 = r64198 + r64218;
        double r64220 = sqrt(r64219);
        double r64221 = r64198 / r64220;
        double r64222 = r64198 + r64221;
        double r64223 = r64200 * r64222;
        double r64224 = sqrt(r64223);
        return r64224;
}

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.7

    \[\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 sqr-pow1.7

    \[\leadsto \sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + \color{blue}{\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot {\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right)} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}\right)}\]
  4. Applied associate-*l*1.5

    \[\leadsto \sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + \color{blue}{{\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)\right)}}}\right)}\]
  5. Using strategy rm
  6. Applied log1p-expm1-u1.5

    \[\leadsto \sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \color{blue}{\mathsf{log1p}\left(\mathsf{expm1}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)\right)\right)}}}\right)}\]
  7. Final simplification1.5

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

Reproduce

herbie shell --seed 2020056 +o rules:numerics
(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))))))))))