Average Error: 1.0 → 0.7
Time: 6.4s
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({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}\right) \cdot \left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \sqrt{{\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)}^{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({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}\right) \cdot \left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}\right)}}\right)}
double f(double l, double Om, double kx, double ky) {
        double r37051 = 1.0;
        double r37052 = 2.0;
        double r37053 = r37051 / r37052;
        double r37054 = l;
        double r37055 = r37052 * r37054;
        double r37056 = Om;
        double r37057 = r37055 / r37056;
        double r37058 = pow(r37057, r37052);
        double r37059 = kx;
        double r37060 = sin(r37059);
        double r37061 = pow(r37060, r37052);
        double r37062 = ky;
        double r37063 = sin(r37062);
        double r37064 = pow(r37063, r37052);
        double r37065 = r37061 + r37064;
        double r37066 = r37058 * r37065;
        double r37067 = r37051 + r37066;
        double r37068 = sqrt(r37067);
        double r37069 = r37051 / r37068;
        double r37070 = r37051 + r37069;
        double r37071 = r37053 * r37070;
        double r37072 = sqrt(r37071);
        return r37072;
}

double f(double l, double Om, double kx, double ky) {
        double r37073 = 1.0;
        double r37074 = 2.0;
        double r37075 = r37073 / r37074;
        double r37076 = l;
        double r37077 = r37074 * r37076;
        double r37078 = Om;
        double r37079 = r37077 / r37078;
        double r37080 = 2.0;
        double r37081 = r37074 / r37080;
        double r37082 = pow(r37079, r37081);
        double r37083 = kx;
        double r37084 = sin(r37083);
        double r37085 = pow(r37084, r37074);
        double r37086 = ky;
        double r37087 = sin(r37086);
        double r37088 = pow(r37087, r37074);
        double r37089 = r37085 + r37088;
        double r37090 = sqrt(r37089);
        double r37091 = r37082 * r37090;
        double r37092 = r37091 * r37091;
        double r37093 = r37073 + r37092;
        double r37094 = sqrt(r37093);
        double r37095 = r37073 / r37094;
        double r37096 = r37073 + r37095;
        double r37097 = r37075 * r37096;
        double r37098 = sqrt(r37097);
        return r37098;
}

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

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

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

    \[\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(\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}} \cdot \sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}\right)}}\right)}\]
  5. Applied unswap-sqr0.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 \sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}\right) \cdot \left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}\right)}}}\right)}\]
  6. Final simplification0.7

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

Reproduce

herbie shell --seed 2020062 +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))))))))))