?

Average Accuracy: 31.2% → 35.9%
Time: 15.2s
Precision: binary64
Cost: 26760

?

\[\frac{\cosh x \cdot \frac{y}{x}}{z} \]
\[\begin{array}{l} \mathbf{if}\;y \leq -1.7 \cdot 10^{+101}:\\ \;\;\;\;y \cdot \frac{1}{z \cdot x}\\ \mathbf{elif}\;y \leq 480:\\ \;\;\;\;\mathsf{fma}\left(0.5, \frac{\frac{y \cdot x}{{\left(\sqrt[3]{z}\right)}^{2}}}{\sqrt[3]{z}}, \frac{\frac{y}{x}}{z}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{y}{z \cdot x}\\ \end{array} \]
(FPCore (x y z) :precision binary64 (/ (* (cosh x) (/ y x)) z))
(FPCore (x y z)
 :precision binary64
 (if (<= y -1.7e+101)
   (* y (/ 1.0 (* z x)))
   (if (<= y 480.0)
     (fma 0.5 (/ (/ (* y x) (pow (cbrt z) 2.0)) (cbrt z)) (/ (/ y x) z))
     (/ y (* z x)))))
double code(double x, double y, double z) {
	return (cosh(x) * (y / x)) / z;
}
double code(double x, double y, double z) {
	double tmp;
	if (y <= -1.7e+101) {
		tmp = y * (1.0 / (z * x));
	} else if (y <= 480.0) {
		tmp = fma(0.5, (((y * x) / pow(cbrt(z), 2.0)) / cbrt(z)), ((y / x) / z));
	} else {
		tmp = y / (z * x);
	}
	return tmp;
}
function code(x, y, z)
	return Float64(Float64(cosh(x) * Float64(y / x)) / z)
end
function code(x, y, z)
	tmp = 0.0
	if (y <= -1.7e+101)
		tmp = Float64(y * Float64(1.0 / Float64(z * x)));
	elseif (y <= 480.0)
		tmp = fma(0.5, Float64(Float64(Float64(y * x) / (cbrt(z) ^ 2.0)) / cbrt(z)), Float64(Float64(y / x) / z));
	else
		tmp = Float64(y / Float64(z * x));
	end
	return tmp
end
code[x_, y_, z_] := N[(N[(N[Cosh[x], $MachinePrecision] * N[(y / x), $MachinePrecision]), $MachinePrecision] / z), $MachinePrecision]
code[x_, y_, z_] := If[LessEqual[y, -1.7e+101], N[(y * N[(1.0 / N[(z * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 480.0], N[(0.5 * N[(N[(N[(y * x), $MachinePrecision] / N[Power[N[Power[z, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / N[Power[z, 1/3], $MachinePrecision]), $MachinePrecision] + N[(N[(y / x), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision], N[(y / N[(z * x), $MachinePrecision]), $MachinePrecision]]]
\frac{\cosh x \cdot \frac{y}{x}}{z}
\begin{array}{l}
\mathbf{if}\;y \leq -1.7 \cdot 10^{+101}:\\
\;\;\;\;y \cdot \frac{1}{z \cdot x}\\

\mathbf{elif}\;y \leq 480:\\
\;\;\;\;\mathsf{fma}\left(0.5, \frac{\frac{y \cdot x}{{\left(\sqrt[3]{z}\right)}^{2}}}{\sqrt[3]{z}}, \frac{\frac{y}{x}}{z}\right)\\

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


\end{array}

Error?

Target

Original31.2%
Target35.0%
Herbie35.9%
\[\begin{array}{l} \mathbf{if}\;y < -4.618902267687042 \cdot 10^{-52}:\\ \;\;\;\;\frac{\frac{y}{z}}{x} \cdot \cosh x\\ \mathbf{elif}\;y < 1.038530535935153 \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 < -1.70000000000000009e101

    1. Initial program 12.7%

      \[\frac{\cosh x \cdot \frac{y}{x}}{z} \]
    2. Simplified23.0%

      \[\leadsto \color{blue}{y \cdot \frac{\cosh x}{x \cdot z}} \]
      Step-by-step derivation

      [Start]12.7

      \[ \frac{\cosh x \cdot \frac{y}{x}}{z} \]

      associate-*r/ [=>]12.7

      \[ \frac{\color{blue}{\frac{\cosh x \cdot y}{x}}}{z} \]

      associate-/l/ [=>]22.9

      \[ \color{blue}{\frac{\cosh x \cdot y}{z \cdot x}} \]

      associate-*l/ [<=]23.0

      \[ \color{blue}{\frac{\cosh x}{z \cdot x} \cdot y} \]

      *-commutative [=>]23.0

      \[ \color{blue}{y \cdot \frac{\cosh x}{z \cdot x}} \]

      *-commutative [=>]23.0

      \[ y \cdot \frac{\cosh x}{\color{blue}{x \cdot z}} \]
    3. Taylor expanded in x around 0 24.4%

      \[\leadsto y \cdot \color{blue}{\frac{1}{z \cdot x}} \]

    if -1.70000000000000009e101 < y < 480

    1. Initial program 42.0%

      \[\frac{\cosh x \cdot \frac{y}{x}}{z} \]
    2. Taylor expanded in x around 0 37.1%

      \[\leadsto \color{blue}{\frac{y}{z \cdot x} + 0.5 \cdot \frac{y \cdot x}{z}} \]
    3. Simplified43.7%

      \[\leadsto \color{blue}{\mathsf{fma}\left(0.5, \frac{y}{z} \cdot x, \frac{\frac{y}{x}}{z}\right)} \]
      Step-by-step derivation

      [Start]37.1

      \[ \frac{y}{z \cdot x} + 0.5 \cdot \frac{y \cdot x}{z} \]

      +-commutative [=>]37.1

      \[ \color{blue}{0.5 \cdot \frac{y \cdot x}{z} + \frac{y}{z \cdot x}} \]

      fma-def [=>]37.1

      \[ \color{blue}{\mathsf{fma}\left(0.5, \frac{y \cdot x}{z}, \frac{y}{z \cdot x}\right)} \]

      associate-/l* [=>]36.6

      \[ \mathsf{fma}\left(0.5, \color{blue}{\frac{y}{\frac{z}{x}}}, \frac{y}{z \cdot x}\right) \]

      associate-/r/ [=>]37.1

      \[ \mathsf{fma}\left(0.5, \color{blue}{\frac{y}{z} \cdot x}, \frac{y}{z \cdot x}\right) \]

      associate-/l/ [<=]43.7

      \[ \mathsf{fma}\left(0.5, \frac{y}{z} \cdot x, \color{blue}{\frac{\frac{y}{x}}{z}}\right) \]
    4. Applied egg-rr43.7%

      \[\leadsto \mathsf{fma}\left(0.5, \color{blue}{\frac{\frac{y \cdot x}{{\left(\sqrt[3]{z}\right)}^{2}}}{\sqrt[3]{z}}}, \frac{\frac{y}{x}}{z}\right) \]
      Step-by-step derivation

      [Start]43.7

      \[ \mathsf{fma}\left(0.5, \frac{y}{z} \cdot x, \frac{\frac{y}{x}}{z}\right) \]

      associate-*l/ [=>]43.7

      \[ \mathsf{fma}\left(0.5, \color{blue}{\frac{y \cdot x}{z}}, \frac{\frac{y}{x}}{z}\right) \]

      add-cube-cbrt [=>]43.7

      \[ \mathsf{fma}\left(0.5, \frac{y \cdot x}{\color{blue}{\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \sqrt[3]{z}}}, \frac{\frac{y}{x}}{z}\right) \]

      associate-/r* [=>]43.7

      \[ \mathsf{fma}\left(0.5, \color{blue}{\frac{\frac{y \cdot x}{\sqrt[3]{z} \cdot \sqrt[3]{z}}}{\sqrt[3]{z}}}, \frac{\frac{y}{x}}{z}\right) \]

      pow2 [=>]43.7

      \[ \mathsf{fma}\left(0.5, \frac{\frac{y \cdot x}{\color{blue}{{\left(\sqrt[3]{z}\right)}^{2}}}}{\sqrt[3]{z}}, \frac{\frac{y}{x}}{z}\right) \]

    if 480 < y

    1. Initial program 15.3%

      \[\frac{\cosh x \cdot \frac{y}{x}}{z} \]
    2. Simplified21.4%

      \[\leadsto \color{blue}{y \cdot \frac{\cosh x}{x \cdot z}} \]
      Step-by-step derivation

      [Start]15.3

      \[ \frac{\cosh x \cdot \frac{y}{x}}{z} \]

      associate-*r/ [=>]15.3

      \[ \frac{\color{blue}{\frac{\cosh x \cdot y}{x}}}{z} \]

      associate-/l/ [=>]21.5

      \[ \color{blue}{\frac{\cosh x \cdot y}{z \cdot x}} \]

      associate-*l/ [<=]21.4

      \[ \color{blue}{\frac{\cosh x}{z \cdot x} \cdot y} \]

      *-commutative [=>]21.4

      \[ \color{blue}{y \cdot \frac{\cosh x}{z \cdot x}} \]

      *-commutative [=>]21.4

      \[ y \cdot \frac{\cosh x}{\color{blue}{x \cdot z}} \]
    3. Taylor expanded in x around 0 23.4%

      \[\leadsto \color{blue}{\frac{y}{z \cdot x}} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification35.6%

    \[\leadsto \begin{array}{l} \mathbf{if}\;y \leq -1.7 \cdot 10^{+101}:\\ \;\;\;\;y \cdot \frac{1}{z \cdot x}\\ \mathbf{elif}\;y \leq 480:\\ \;\;\;\;\mathsf{fma}\left(0.5, \frac{\frac{y \cdot x}{{\left(\sqrt[3]{z}\right)}^{2}}}{\sqrt[3]{z}}, \frac{\frac{y}{x}}{z}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{y}{z \cdot x}\\ \end{array} \]

Alternatives

Alternative 1
Accuracy35.9%
Cost7496
\[\begin{array}{l} \mathbf{if}\;y \leq -1.85 \cdot 10^{+101}:\\ \;\;\;\;y \cdot \frac{1}{z \cdot x}\\ \mathbf{elif}\;y \leq 3400:\\ \;\;\;\;\mathsf{fma}\left(0.5, \frac{1}{\frac{z}{y \cdot x}}, \frac{\frac{y}{x}}{z}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{y}{z \cdot x}\\ \end{array} \]
Alternative 2
Accuracy35.2%
Cost7368
\[\begin{array}{l} \mathbf{if}\;y \leq -1.45 \cdot 10^{+192}:\\ \;\;\;\;y \cdot \frac{1}{z \cdot x}\\ \mathbf{elif}\;y \leq 7800:\\ \;\;\;\;\mathsf{fma}\left(0.5, x \cdot \frac{y}{z}, \frac{\frac{y}{x}}{z}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{y}{z \cdot x}\\ \end{array} \]
Alternative 3
Accuracy35.8%
Cost968
\[\begin{array}{l} \mathbf{if}\;y \leq -2.45 \cdot 10^{+101}:\\ \;\;\;\;y \cdot \frac{1}{z \cdot x}\\ \mathbf{elif}\;y \leq 1950:\\ \;\;\;\;\frac{y \cdot \left(x \cdot 0.5 + \frac{1}{x}\right)}{z}\\ \mathbf{else}:\\ \;\;\;\;\frac{y}{z \cdot x}\\ \end{array} \]
Alternative 4
Accuracy35.8%
Cost968
\[\begin{array}{l} \mathbf{if}\;y \leq -4 \cdot 10^{+102}:\\ \;\;\;\;y \cdot \frac{1}{z \cdot x}\\ \mathbf{elif}\;y \leq 98000:\\ \;\;\;\;\frac{\frac{y}{x} + x \cdot \left(y \cdot 0.5\right)}{z}\\ \mathbf{else}:\\ \;\;\;\;\frac{y}{z \cdot x}\\ \end{array} \]
Alternative 5
Accuracy33.3%
Cost585
\[\begin{array}{l} \mathbf{if}\;y \leq 200 \lor \neg \left(y \leq 1.12 \cdot 10^{+263}\right):\\ \;\;\;\;\frac{\frac{y}{x}}{z}\\ \mathbf{else}:\\ \;\;\;\;\frac{y}{z \cdot x}\\ \end{array} \]
Alternative 6
Accuracy32.9%
Cost580
\[\begin{array}{l} \mathbf{if}\;z \leq -1.2 \cdot 10^{+170}:\\ \;\;\;\;y \cdot \frac{\frac{1}{z}}{x}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{y}{z}}{x}\\ \end{array} \]
Alternative 7
Accuracy32.9%
Cost452
\[\begin{array}{l} \mathbf{if}\;z \leq -9.6 \cdot 10^{+170}:\\ \;\;\;\;\frac{y}{z \cdot x}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{y}{z}}{x}\\ \end{array} \]
Alternative 8
Accuracy32.0%
Cost320
\[\frac{y}{z \cdot x} \]

Error

Reproduce?

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

  :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))