Average Error: 12.3 → 9.7
Time: 39.7s
Precision: 64
\[\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\]
\[\left(\frac{\sqrt[3]{\sin ky}}{\mathsf{hypot}\left(\sin ky, \sin kx\right)} \cdot \left(\sqrt[3]{\sin ky} \cdot \sqrt[3]{\sin ky}\right)\right) \cdot \sin th\]
\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th
\left(\frac{\sqrt[3]{\sin ky}}{\mathsf{hypot}\left(\sin ky, \sin kx\right)} \cdot \left(\sqrt[3]{\sin ky} \cdot \sqrt[3]{\sin ky}\right)\right) \cdot \sin th
double f(double kx, double ky, double th) {
        double r745481 = ky;
        double r745482 = sin(r745481);
        double r745483 = kx;
        double r745484 = sin(r745483);
        double r745485 = 2.0;
        double r745486 = pow(r745484, r745485);
        double r745487 = pow(r745482, r745485);
        double r745488 = r745486 + r745487;
        double r745489 = sqrt(r745488);
        double r745490 = r745482 / r745489;
        double r745491 = th;
        double r745492 = sin(r745491);
        double r745493 = r745490 * r745492;
        return r745493;
}

double f(double kx, double ky, double th) {
        double r745494 = ky;
        double r745495 = sin(r745494);
        double r745496 = cbrt(r745495);
        double r745497 = kx;
        double r745498 = sin(r745497);
        double r745499 = hypot(r745495, r745498);
        double r745500 = r745496 / r745499;
        double r745501 = r745496 * r745496;
        double r745502 = r745500 * r745501;
        double r745503 = th;
        double r745504 = sin(r745503);
        double r745505 = r745502 * r745504;
        return r745505;
}

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

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

    \[\leadsto \color{blue}{\sin th \cdot \frac{\sin ky}{\mathsf{hypot}\left(\sin ky, \sin kx\right)}}\]
  3. Using strategy rm
  4. Applied *-un-lft-identity8.8

    \[\leadsto \sin th \cdot \frac{\sin ky}{\color{blue}{1 \cdot \mathsf{hypot}\left(\sin ky, \sin kx\right)}}\]
  5. Applied add-cube-cbrt9.7

    \[\leadsto \sin th \cdot \frac{\color{blue}{\left(\sqrt[3]{\sin ky} \cdot \sqrt[3]{\sin ky}\right) \cdot \sqrt[3]{\sin ky}}}{1 \cdot \mathsf{hypot}\left(\sin ky, \sin kx\right)}\]
  6. Applied times-frac9.7

    \[\leadsto \sin th \cdot \color{blue}{\left(\frac{\sqrt[3]{\sin ky} \cdot \sqrt[3]{\sin ky}}{1} \cdot \frac{\sqrt[3]{\sin ky}}{\mathsf{hypot}\left(\sin ky, \sin kx\right)}\right)}\]
  7. Simplified9.7

    \[\leadsto \sin th \cdot \left(\color{blue}{\left(\sqrt[3]{\sin ky} \cdot \sqrt[3]{\sin ky}\right)} \cdot \frac{\sqrt[3]{\sin ky}}{\mathsf{hypot}\left(\sin ky, \sin kx\right)}\right)\]
  8. Final simplification9.7

    \[\leadsto \left(\frac{\sqrt[3]{\sin ky}}{\mathsf{hypot}\left(\sin ky, \sin kx\right)} \cdot \left(\sqrt[3]{\sin ky} \cdot \sqrt[3]{\sin ky}\right)\right) \cdot \sin th\]

Reproduce

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