?

Average Accuracy: 77.2% → 98.2%
Time: 14.5s
Precision: binary64
Cost: 7496

?

\[\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)} \]
\[\begin{array}{l} t_0 := \frac{y}{z + 1}\\ t_1 := \frac{\frac{x \cdot t_0}{z}}{z}\\ \mathbf{if}\;x \cdot y \leq -5 \cdot 10^{-200}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{-217}:\\ \;\;\;\;\frac{x}{z} \cdot \frac{y}{\mathsf{fma}\left(z, z, z\right)}\\ \mathbf{elif}\;x \cdot y \leq 10^{+241}:\\ \;\;\;\;t_1\\ \mathbf{else}:\\ \;\;\;\;\frac{t_0}{\frac{z}{\frac{x}{z}}}\\ \end{array} \]
(FPCore (x y z) :precision binary64 (/ (* x y) (* (* z z) (+ z 1.0))))
(FPCore (x y z)
 :precision binary64
 (let* ((t_0 (/ y (+ z 1.0))) (t_1 (/ (/ (* x t_0) z) z)))
   (if (<= (* x y) -5e-200)
     t_1
     (if (<= (* x y) 2e-217)
       (* (/ x z) (/ y (fma z z z)))
       (if (<= (* x y) 1e+241) t_1 (/ t_0 (/ z (/ x z))))))))
double code(double x, double y, double z) {
	return (x * y) / ((z * z) * (z + 1.0));
}
double code(double x, double y, double z) {
	double t_0 = y / (z + 1.0);
	double t_1 = ((x * t_0) / z) / z;
	double tmp;
	if ((x * y) <= -5e-200) {
		tmp = t_1;
	} else if ((x * y) <= 2e-217) {
		tmp = (x / z) * (y / fma(z, z, z));
	} else if ((x * y) <= 1e+241) {
		tmp = t_1;
	} else {
		tmp = t_0 / (z / (x / z));
	}
	return tmp;
}
function code(x, y, z)
	return Float64(Float64(x * y) / Float64(Float64(z * z) * Float64(z + 1.0)))
end
function code(x, y, z)
	t_0 = Float64(y / Float64(z + 1.0))
	t_1 = Float64(Float64(Float64(x * t_0) / z) / z)
	tmp = 0.0
	if (Float64(x * y) <= -5e-200)
		tmp = t_1;
	elseif (Float64(x * y) <= 2e-217)
		tmp = Float64(Float64(x / z) * Float64(y / fma(z, z, z)));
	elseif (Float64(x * y) <= 1e+241)
		tmp = t_1;
	else
		tmp = Float64(t_0 / Float64(z / Float64(x / z)));
	end
	return tmp
end
code[x_, y_, z_] := N[(N[(x * y), $MachinePrecision] / N[(N[(z * z), $MachinePrecision] * N[(z + 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
code[x_, y_, z_] := Block[{t$95$0 = N[(y / N[(z + 1.0), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(N[(x * t$95$0), $MachinePrecision] / z), $MachinePrecision] / z), $MachinePrecision]}, If[LessEqual[N[(x * y), $MachinePrecision], -5e-200], t$95$1, If[LessEqual[N[(x * y), $MachinePrecision], 2e-217], N[(N[(x / z), $MachinePrecision] * N[(y / N[(z * z + z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(x * y), $MachinePrecision], 1e+241], t$95$1, N[(t$95$0 / N[(z / N[(x / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]
\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)}
\begin{array}{l}
t_0 := \frac{y}{z + 1}\\
t_1 := \frac{\frac{x \cdot t_0}{z}}{z}\\
\mathbf{if}\;x \cdot y \leq -5 \cdot 10^{-200}:\\
\;\;\;\;t_1\\

\mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{-217}:\\
\;\;\;\;\frac{x}{z} \cdot \frac{y}{\mathsf{fma}\left(z, z, z\right)}\\

\mathbf{elif}\;x \cdot y \leq 10^{+241}:\\
\;\;\;\;t_1\\

\mathbf{else}:\\
\;\;\;\;\frac{t_0}{\frac{z}{\frac{x}{z}}}\\


\end{array}

Error?

Target

Original77.2%
Target94.0%
Herbie98.2%
\[\begin{array}{l} \mathbf{if}\;z < 249.6182814532307:\\ \;\;\;\;\frac{y \cdot \frac{x}{z}}{z + z \cdot z}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\frac{y}{z}}{1 + z} \cdot x}{z}\\ \end{array} \]

Derivation?

  1. Split input into 3 regimes
  2. if (*.f64 x y) < -4.99999999999999991e-200 or 2.00000000000000016e-217 < (*.f64 x y) < 1.0000000000000001e241

    1. Initial program 85.2%

      \[\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)} \]
    2. Simplified86.3%

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

      [Start]85.2

      \[ \frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)} \]

      times-frac [=>]86.3

      \[ \color{blue}{\frac{x}{z \cdot z} \cdot \frac{y}{z + 1}} \]
    3. Applied egg-rr97.7%

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

      [Start]86.3

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

      associate-*l/ [=>]91.6

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

      associate-/r* [=>]97.7

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

    if -4.99999999999999991e-200 < (*.f64 x y) < 2.00000000000000016e-217

    1. Initial program 69.4%

      \[\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)} \]
    2. Simplified99.6%

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

      [Start]69.4

      \[ \frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)} \]

      associate-*l* [=>]69.4

      \[ \frac{x \cdot y}{\color{blue}{z \cdot \left(z \cdot \left(z + 1\right)\right)}} \]

      times-frac [=>]99.6

      \[ \color{blue}{\frac{x}{z} \cdot \frac{y}{z \cdot \left(z + 1\right)}} \]

      distribute-lft-in [=>]99.6

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

      fma-def [=>]99.6

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

      *-rgt-identity [=>]99.6

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

    if 1.0000000000000001e241 < (*.f64 x y)

    1. Initial program 25.1%

      \[\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)} \]
    2. Simplified73.4%

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

      [Start]25.1

      \[ \frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)} \]

      times-frac [=>]73.4

      \[ \color{blue}{\frac{x}{z \cdot z} \cdot \frac{y}{z + 1}} \]
    3. Applied egg-rr96.8%

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

      [Start]73.4

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

      *-commutative [=>]73.4

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

      clear-num [=>]73.2

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

      un-div-inv [=>]73.9

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

      associate-/l* [=>]96.8

      \[ \frac{\frac{y}{z + 1}}{\color{blue}{\frac{z}{\frac{x}{z}}}} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification98.2%

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \cdot y \leq -5 \cdot 10^{-200}:\\ \;\;\;\;\frac{\frac{x \cdot \frac{y}{z + 1}}{z}}{z}\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{-217}:\\ \;\;\;\;\frac{x}{z} \cdot \frac{y}{\mathsf{fma}\left(z, z, z\right)}\\ \mathbf{elif}\;x \cdot y \leq 10^{+241}:\\ \;\;\;\;\frac{\frac{x \cdot \frac{y}{z + 1}}{z}}{z}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{y}{z + 1}}{\frac{z}{\frac{x}{z}}}\\ \end{array} \]

Alternatives

Alternative 1
Accuracy92.4%
Cost1744
\[\begin{array}{l} t_0 := \frac{x \cdot y}{\left(z + 1\right) \cdot \left(z \cdot z\right)}\\ t_1 := \frac{y}{z} \cdot \frac{\frac{x}{z}}{z}\\ \mathbf{if}\;x \cdot y \leq -1 \cdot 10^{+212}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;x \cdot y \leq -5 \cdot 10^{-221}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{-267}:\\ \;\;\;\;\frac{\frac{y}{z}}{\frac{z}{x}}\\ \mathbf{elif}\;x \cdot y \leq 5 \cdot 10^{+215}:\\ \;\;\;\;t_0\\ \mathbf{else}:\\ \;\;\;\;t_1\\ \end{array} \]
Alternative 2
Accuracy97.8%
Cost1484
\[\begin{array}{l} t_0 := \frac{y}{z + 1}\\ t_1 := \frac{\frac{x \cdot t_0}{z}}{z}\\ \mathbf{if}\;x \cdot y \leq -1 \cdot 10^{-206}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;x \cdot y \leq 2 \cdot 10^{-302}:\\ \;\;\;\;\frac{x}{z} \cdot \frac{y}{z}\\ \mathbf{elif}\;x \cdot y \leq 10^{+241}:\\ \;\;\;\;t_1\\ \mathbf{else}:\\ \;\;\;\;\frac{t_0}{\frac{z}{\frac{x}{z}}}\\ \end{array} \]
Alternative 3
Accuracy95.1%
Cost968
\[\begin{array}{l} \mathbf{if}\;z \leq -4.5 \cdot 10^{+120}:\\ \;\;\;\;\frac{\frac{y}{z}}{z \cdot \frac{z}{x}}\\ \mathbf{elif}\;z \leq 7.8 \cdot 10^{+86}:\\ \;\;\;\;\frac{y \cdot \frac{x}{z}}{z \cdot \left(z + 1\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{z} \cdot \frac{\frac{y}{z}}{z}\\ \end{array} \]
Alternative 4
Accuracy90.8%
Cost841
\[\begin{array}{l} \mathbf{if}\;z \leq -1 \lor \neg \left(z \leq 1\right):\\ \;\;\;\;\frac{x}{z} \cdot \frac{y}{z \cdot z}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{y}{\frac{z}{x}}}{z}\\ \end{array} \]
Alternative 5
Accuracy90.7%
Cost841
\[\begin{array}{l} \mathbf{if}\;z \leq -1 \lor \neg \left(z \leq 1\right):\\ \;\;\;\;\frac{y}{z} \cdot \frac{x}{z \cdot z}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{y}{\frac{z}{x}}}{z}\\ \end{array} \]
Alternative 6
Accuracy93.2%
Cost841
\[\begin{array}{l} \mathbf{if}\;z \leq -1 \lor \neg \left(z \leq 1\right):\\ \;\;\;\;\frac{y}{z} \cdot \frac{\frac{x}{z}}{z}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{y}{\frac{z}{x}}}{z}\\ \end{array} \]
Alternative 7
Accuracy93.4%
Cost840
\[\begin{array}{l} \mathbf{if}\;z \leq -1:\\ \;\;\;\;\frac{y}{z} \cdot \frac{\frac{x}{z}}{z}\\ \mathbf{elif}\;z \leq 1:\\ \;\;\;\;\frac{\frac{y}{\frac{z}{x}}}{z}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{z} \cdot \frac{\frac{y}{z}}{z}\\ \end{array} \]
Alternative 8
Accuracy93.3%
Cost840
\[\begin{array}{l} \mathbf{if}\;z \leq -1:\\ \;\;\;\;\frac{\frac{y}{z}}{z \cdot \frac{z}{x}}\\ \mathbf{elif}\;z \leq 1:\\ \;\;\;\;\frac{\frac{y}{\frac{z}{x}}}{z}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{z} \cdot \frac{\frac{y}{z}}{z}\\ \end{array} \]
Alternative 9
Accuracy93.3%
Cost840
\[\begin{array}{l} \mathbf{if}\;z \leq -1:\\ \;\;\;\;\frac{\frac{x \cdot \frac{y}{z}}{z}}{z}\\ \mathbf{elif}\;z \leq 1:\\ \;\;\;\;\frac{\frac{y}{\frac{z}{x}}}{z}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{z} \cdot \frac{\frac{y}{z}}{z}\\ \end{array} \]
Alternative 10
Accuracy68.8%
Cost712
\[\begin{array}{l} \mathbf{if}\;y \leq -5.8 \cdot 10^{-161}:\\ \;\;\;\;x \cdot \frac{y}{z \cdot z}\\ \mathbf{elif}\;y \leq 1.56 \cdot 10^{+32}:\\ \;\;\;\;\frac{x}{z} \cdot \frac{y}{z}\\ \mathbf{else}:\\ \;\;\;\;y \cdot \frac{x}{z \cdot z}\\ \end{array} \]
Alternative 11
Accuracy68.8%
Cost712
\[\begin{array}{l} \mathbf{if}\;y \leq -1.25 \cdot 10^{-160}:\\ \;\;\;\;x \cdot \frac{y}{z \cdot z}\\ \mathbf{elif}\;y \leq 6.8 \cdot 10^{+31}:\\ \;\;\;\;\frac{x}{z} \cdot \frac{y}{z}\\ \mathbf{else}:\\ \;\;\;\;\frac{y}{\frac{z \cdot z}{x}}\\ \end{array} \]
Alternative 12
Accuracy69.0%
Cost712
\[\begin{array}{l} \mathbf{if}\;y \leq -1.25 \cdot 10^{-161}:\\ \;\;\;\;x \cdot \frac{y}{z \cdot z}\\ \mathbf{elif}\;y \leq 6.8 \cdot 10^{+31}:\\ \;\;\;\;\frac{\frac{y}{z}}{\frac{z}{x}}\\ \mathbf{else}:\\ \;\;\;\;\frac{y}{\frac{z \cdot z}{x}}\\ \end{array} \]
Alternative 13
Accuracy64.4%
Cost580
\[\begin{array}{l} \mathbf{if}\;x \leq -2.1 \cdot 10^{-56}:\\ \;\;\;\;x \cdot \frac{y}{z \cdot z}\\ \mathbf{else}:\\ \;\;\;\;y \cdot \frac{x}{z \cdot z}\\ \end{array} \]
Alternative 14
Accuracy30.8%
Cost516
\[\begin{array}{l} \mathbf{if}\;y \leq 5 \cdot 10^{-57}:\\ \;\;\;\;\frac{-x}{\frac{z}{y}}\\ \mathbf{else}:\\ \;\;\;\;\frac{-y}{\frac{z}{x}}\\ \end{array} \]
Alternative 15
Accuracy62.8%
Cost448
\[x \cdot \frac{y}{z \cdot z} \]
Alternative 16
Accuracy28.0%
Cost384
\[x \cdot \frac{-y}{z} \]
Alternative 17
Accuracy28.6%
Cost384
\[\frac{-x}{\frac{z}{y}} \]

Error

Reproduce?

herbie shell --seed 2023151 
(FPCore (x y z)
  :name "Statistics.Distribution.Beta:$cvariance from math-functions-0.1.5.2"
  :precision binary64

  :herbie-target
  (if (< z 249.6182814532307) (/ (* y (/ x z)) (+ z (* z z))) (/ (* (/ (/ y z) (+ 1.0 z)) x) z))

  (/ (* x y) (* (* z z) (+ z 1.0))))