Average Error: 12.7 → 8.7
Time: 58.0s
Precision: 64
\[\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\]
\[\frac{\sin th}{\frac{\sqrt{\left(\sin kx\right)^2 + \left(\sin ky\right)^2}^*}{\sin ky}}\]
\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th
\frac{\sin th}{\frac{\sqrt{\left(\sin kx\right)^2 + \left(\sin ky\right)^2}^*}{\sin ky}}
double f(double kx, double ky, double th) {
        double r1384141 = ky;
        double r1384142 = sin(r1384141);
        double r1384143 = kx;
        double r1384144 = sin(r1384143);
        double r1384145 = 2.0;
        double r1384146 = pow(r1384144, r1384145);
        double r1384147 = pow(r1384142, r1384145);
        double r1384148 = r1384146 + r1384147;
        double r1384149 = sqrt(r1384148);
        double r1384150 = r1384142 / r1384149;
        double r1384151 = th;
        double r1384152 = sin(r1384151);
        double r1384153 = r1384150 * r1384152;
        return r1384153;
}

double f(double kx, double ky, double th) {
        double r1384154 = th;
        double r1384155 = sin(r1384154);
        double r1384156 = kx;
        double r1384157 = sin(r1384156);
        double r1384158 = ky;
        double r1384159 = sin(r1384158);
        double r1384160 = hypot(r1384157, r1384159);
        double r1384161 = r1384160 / r1384159;
        double r1384162 = r1384155 / r1384161;
        return r1384162;
}

Error

Bits error versus kx

Bits error versus ky

Bits error versus th

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 12.7

    \[\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\]
  2. Simplified8.7

    \[\leadsto \color{blue}{\sin th \cdot \frac{\sin ky}{\sqrt{\left(\sin kx\right)^2 + \left(\sin ky\right)^2}^*}}\]
  3. Using strategy rm
  4. Applied clear-num8.8

    \[\leadsto \sin th \cdot \color{blue}{\frac{1}{\frac{\sqrt{\left(\sin kx\right)^2 + \left(\sin ky\right)^2}^*}{\sin ky}}}\]
  5. Using strategy rm
  6. Applied un-div-inv8.7

    \[\leadsto \color{blue}{\frac{\sin th}{\frac{\sqrt{\left(\sin kx\right)^2 + \left(\sin ky\right)^2}^*}{\sin ky}}}\]
  7. Final simplification8.7

    \[\leadsto \frac{\sin th}{\frac{\sqrt{\left(\sin kx\right)^2 + \left(\sin ky\right)^2}^*}{\sin ky}}\]

Reproduce

herbie shell --seed 2019112 +o rules:numerics
(FPCore (kx ky th)
  :name "Toniolo and Linder, Equation (3b), real"
  (* (/ (sin ky) (sqrt (+ (pow (sin kx) 2) (pow (sin ky) 2)))) (sin th)))