Average Error: 8.0 → 0.5
Time: 16.8s
Precision: 64
\[\frac{\cosh x \cdot \frac{y}{x}}{z}\]
\[\begin{array}{l} \mathbf{if}\;y \le -41.67494460546429735359197366051375865936:\\ \;\;\;\;\frac{\frac{1}{2}}{x} \cdot \frac{e^{-x} + e^{x}}{\frac{z}{y}}\\ \mathbf{elif}\;y \le 6.315061908017308627405584932781533751405 \cdot 10^{-61}:\\ \;\;\;\;\frac{\frac{y}{x} \cdot \left(\frac{1}{2} \cdot \left(e^{-x} + e^{x}\right)\right)}{z}\\ \mathbf{else}:\\ \;\;\;\;\cosh x \cdot \frac{\frac{y}{z}}{x}\\ \end{array}\]
\frac{\cosh x \cdot \frac{y}{x}}{z}
\begin{array}{l}
\mathbf{if}\;y \le -41.67494460546429735359197366051375865936:\\
\;\;\;\;\frac{\frac{1}{2}}{x} \cdot \frac{e^{-x} + e^{x}}{\frac{z}{y}}\\

\mathbf{elif}\;y \le 6.315061908017308627405584932781533751405 \cdot 10^{-61}:\\
\;\;\;\;\frac{\frac{y}{x} \cdot \left(\frac{1}{2} \cdot \left(e^{-x} + e^{x}\right)\right)}{z}\\

\mathbf{else}:\\
\;\;\;\;\cosh x \cdot \frac{\frac{y}{z}}{x}\\

\end{array}
double f(double x, double y, double z) {
        double r481128 = x;
        double r481129 = cosh(r481128);
        double r481130 = y;
        double r481131 = r481130 / r481128;
        double r481132 = r481129 * r481131;
        double r481133 = z;
        double r481134 = r481132 / r481133;
        return r481134;
}

double f(double x, double y, double z) {
        double r481135 = y;
        double r481136 = -41.6749446054643;
        bool r481137 = r481135 <= r481136;
        double r481138 = 0.5;
        double r481139 = x;
        double r481140 = r481138 / r481139;
        double r481141 = -r481139;
        double r481142 = exp(r481141);
        double r481143 = exp(r481139);
        double r481144 = r481142 + r481143;
        double r481145 = z;
        double r481146 = r481145 / r481135;
        double r481147 = r481144 / r481146;
        double r481148 = r481140 * r481147;
        double r481149 = 6.315061908017309e-61;
        bool r481150 = r481135 <= r481149;
        double r481151 = r481135 / r481139;
        double r481152 = r481138 * r481144;
        double r481153 = r481151 * r481152;
        double r481154 = r481153 / r481145;
        double r481155 = cosh(r481139);
        double r481156 = r481135 / r481145;
        double r481157 = r481156 / r481139;
        double r481158 = r481155 * r481157;
        double r481159 = r481150 ? r481154 : r481158;
        double r481160 = r481137 ? r481148 : r481159;
        return r481160;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original8.0
Target0.5
Herbie0.5
\[\begin{array}{l} \mathbf{if}\;y \lt -4.618902267687041990497740832940559043667 \cdot 10^{-52}:\\ \;\;\;\;\frac{\frac{y}{z}}{x} \cdot \cosh x\\ \mathbf{elif}\;y \lt 1.038530535935153018369520384190862667426 \cdot 10^{-39}:\\ \;\;\;\;\frac{\frac{\cosh x \cdot y}{x}}{z}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{y}{z}}{x} \cdot \cosh x\\ \end{array}\]

Derivation

  1. Split input into 3 regimes
  2. if y < -41.6749446054643

    1. Initial program 21.2

      \[\frac{\cosh x \cdot \frac{y}{x}}{z}\]
    2. Simplified0.3

      \[\leadsto \color{blue}{\frac{y}{z \cdot x} \cdot \cosh x}\]
    3. Taylor expanded around inf 0.4

      \[\leadsto \color{blue}{\frac{\left(\frac{1}{2} \cdot e^{x} + \frac{1}{2} \cdot e^{-x}\right) \cdot y}{x \cdot z}}\]
    4. Simplified0.5

      \[\leadsto \color{blue}{\frac{e^{x} + e^{-x}}{\frac{z}{y}} \cdot \frac{\frac{1}{2}}{x}}\]

    if -41.6749446054643 < y < 6.315061908017309e-61

    1. Initial program 0.3

      \[\frac{\cosh x \cdot \frac{y}{x}}{z}\]
    2. Simplified10.9

      \[\leadsto \color{blue}{\frac{y}{z \cdot x} \cdot \cosh x}\]
    3. Using strategy rm
    4. Applied div-inv11.9

      \[\leadsto \color{blue}{\left(y \cdot \frac{1}{z \cdot x}\right)} \cdot \cosh x\]
    5. Applied associate-*l*11.9

      \[\leadsto \color{blue}{y \cdot \left(\frac{1}{z \cdot x} \cdot \cosh x\right)}\]
    6. Simplified11.9

      \[\leadsto y \cdot \color{blue}{\frac{\frac{\cosh x}{z}}{x}}\]
    7. Taylor expanded around -inf 10.9

      \[\leadsto \color{blue}{\frac{y \cdot \left(\frac{1}{2} \cdot e^{-1 \cdot x} + \frac{1}{2} \cdot e^{x}\right)}{x \cdot z}}\]
    8. Simplified0.3

      \[\leadsto \color{blue}{\frac{\frac{y}{x} \cdot \left(\frac{1}{2} \cdot \left(e^{-x} + e^{x}\right)\right)}{z}}\]

    if 6.315061908017309e-61 < y

    1. Initial program 16.7

      \[\frac{\cosh x \cdot \frac{y}{x}}{z}\]
    2. Simplified0.8

      \[\leadsto \color{blue}{\frac{y}{z \cdot x} \cdot \cosh x}\]
    3. Using strategy rm
    4. Applied *-un-lft-identity0.8

      \[\leadsto \color{blue}{\left(1 \cdot \frac{y}{z \cdot x}\right)} \cdot \cosh x\]
    5. Applied associate-*l*0.8

      \[\leadsto \color{blue}{1 \cdot \left(\frac{y}{z \cdot x} \cdot \cosh x\right)}\]
    6. Simplified0.9

      \[\leadsto 1 \cdot \color{blue}{\left(\frac{\frac{y}{z}}{x} \cdot \cosh x\right)}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification0.5

    \[\leadsto \begin{array}{l} \mathbf{if}\;y \le -41.67494460546429735359197366051375865936:\\ \;\;\;\;\frac{\frac{1}{2}}{x} \cdot \frac{e^{-x} + e^{x}}{\frac{z}{y}}\\ \mathbf{elif}\;y \le 6.315061908017308627405584932781533751405 \cdot 10^{-61}:\\ \;\;\;\;\frac{\frac{y}{x} \cdot \left(\frac{1}{2} \cdot \left(e^{-x} + e^{x}\right)\right)}{z}\\ \mathbf{else}:\\ \;\;\;\;\cosh x \cdot \frac{\frac{y}{z}}{x}\\ \end{array}\]

Reproduce

herbie shell --seed 2019174 
(FPCore (x y z)
  :name "Linear.Quaternion:$ctan from linear-1.19.1.3"

  :herbie-target
  (if (< y -4.618902267687042e-52) (* (/ (/ y z) x) (cosh x)) (if (< y 1.038530535935153e-39) (/ (/ (* (cosh x) y) x) z) (* (/ (/ y z) x) (cosh x))))

  (/ (* (cosh x) (/ y x)) z))