?

Average Accuracy: 75.8% → 95.7%
Time: 13.6s
Precision: binary64
Cost: 968

?

\[ \begin{array}{c}[x, y] = \mathsf{sort}([x, y])\\ \end{array} \]
\[\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)} \]
\[\begin{array}{l} \mathbf{if}\;z \leq -4 \cdot 10^{-160}:\\ \;\;\;\;\frac{\frac{y}{z + 1} \cdot \frac{x}{z}}{z}\\ \mathbf{elif}\;z \leq 1.55 \cdot 10^{-75}:\\ \;\;\;\;\frac{\frac{x}{\frac{z}{y}}}{z}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{z + 1} \cdot \frac{\frac{y}{z}}{z}\\ \end{array} \]
(FPCore (x y z) :precision binary64 (/ (* x y) (* (* z z) (+ z 1.0))))
(FPCore (x y z)
 :precision binary64
 (if (<= z -4e-160)
   (/ (* (/ y (+ z 1.0)) (/ x z)) z)
   (if (<= z 1.55e-75) (/ (/ x (/ z y)) z) (* (/ x (+ z 1.0)) (/ (/ y z) 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 tmp;
	if (z <= -4e-160) {
		tmp = ((y / (z + 1.0)) * (x / z)) / z;
	} else if (z <= 1.55e-75) {
		tmp = (x / (z / y)) / z;
	} else {
		tmp = (x / (z + 1.0)) * ((y / z) / z);
	}
	return tmp;
}
real(8) function code(x, y, z)
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    code = (x * y) / ((z * z) * (z + 1.0d0))
end function
real(8) function code(x, y, z)
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    real(8) :: tmp
    if (z <= (-4d-160)) then
        tmp = ((y / (z + 1.0d0)) * (x / z)) / z
    else if (z <= 1.55d-75) then
        tmp = (x / (z / y)) / z
    else
        tmp = (x / (z + 1.0d0)) * ((y / z) / z)
    end if
    code = tmp
end function
public static double code(double x, double y, double z) {
	return (x * y) / ((z * z) * (z + 1.0));
}
public static double code(double x, double y, double z) {
	double tmp;
	if (z <= -4e-160) {
		tmp = ((y / (z + 1.0)) * (x / z)) / z;
	} else if (z <= 1.55e-75) {
		tmp = (x / (z / y)) / z;
	} else {
		tmp = (x / (z + 1.0)) * ((y / z) / z);
	}
	return tmp;
}
def code(x, y, z):
	return (x * y) / ((z * z) * (z + 1.0))
def code(x, y, z):
	tmp = 0
	if z <= -4e-160:
		tmp = ((y / (z + 1.0)) * (x / z)) / z
	elif z <= 1.55e-75:
		tmp = (x / (z / y)) / z
	else:
		tmp = (x / (z + 1.0)) * ((y / z) / 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)
	tmp = 0.0
	if (z <= -4e-160)
		tmp = Float64(Float64(Float64(y / Float64(z + 1.0)) * Float64(x / z)) / z);
	elseif (z <= 1.55e-75)
		tmp = Float64(Float64(x / Float64(z / y)) / z);
	else
		tmp = Float64(Float64(x / Float64(z + 1.0)) * Float64(Float64(y / z) / z));
	end
	return tmp
end
function tmp = code(x, y, z)
	tmp = (x * y) / ((z * z) * (z + 1.0));
end
function tmp_2 = code(x, y, z)
	tmp = 0.0;
	if (z <= -4e-160)
		tmp = ((y / (z + 1.0)) * (x / z)) / z;
	elseif (z <= 1.55e-75)
		tmp = (x / (z / y)) / z;
	else
		tmp = (x / (z + 1.0)) * ((y / z) / z);
	end
	tmp_2 = 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_] := If[LessEqual[z, -4e-160], N[(N[(N[(y / N[(z + 1.0), $MachinePrecision]), $MachinePrecision] * N[(x / z), $MachinePrecision]), $MachinePrecision] / z), $MachinePrecision], If[LessEqual[z, 1.55e-75], N[(N[(x / N[(z / y), $MachinePrecision]), $MachinePrecision] / z), $MachinePrecision], N[(N[(x / N[(z + 1.0), $MachinePrecision]), $MachinePrecision] * N[(N[(y / z), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision]]]
\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)}
\begin{array}{l}
\mathbf{if}\;z \leq -4 \cdot 10^{-160}:\\
\;\;\;\;\frac{\frac{y}{z + 1} \cdot \frac{x}{z}}{z}\\

\mathbf{elif}\;z \leq 1.55 \cdot 10^{-75}:\\
\;\;\;\;\frac{\frac{x}{\frac{z}{y}}}{z}\\

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


\end{array}

Error?

Try it out?

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original75.8%
Target93.5%
Herbie95.7%
\[\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 z < -4e-160

    1. Initial program 83.9%

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

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

      [Start]83.9

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

      times-frac [=>]90.6

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

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

      [Start]90.6

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

      *-commutative [=>]90.6

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

      associate-/r* [=>]94.1

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

      associate-*r/ [=>]96.5

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

    if -4e-160 < z < 1.55000000000000003e-75

    1. Initial program 31.8%

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

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

      [Start]31.8

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

      times-frac [=>]31.2

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

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

      [Start]31.2

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

      *-commutative [=>]31.2

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

      associate-/r* [=>]65.4

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

      associate-*r/ [=>]91.6

      \[ \color{blue}{\frac{\frac{y}{z + 1} \cdot \frac{x}{z}}{z}} \]
    4. Applied egg-rr92.4%

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

      [Start]91.6

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

      clear-num [=>]91.5

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

      frac-times [=>]92.4

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

      *-un-lft-identity [<=]92.4

      \[ \frac{\frac{\color{blue}{x}}{\frac{z + 1}{y} \cdot z}}{z} \]
    5. Taylor expanded in z around 0 92.5%

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

    if 1.55000000000000003e-75 < z

    1. Initial program 84.1%

      \[\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)} \]
    2. Taylor expanded in x around 0 84.1%

      \[\leadsto \color{blue}{\frac{y \cdot x}{{z}^{2} \cdot \left(1 + z\right)}} \]
    3. Simplified96.1%

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

      [Start]84.1

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

      unpow2 [=>]84.1

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

      times-frac [=>]92.7

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

      +-commutative [<=]92.7

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

      *-commutative [<=]92.7

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

      associate-/r* [=>]96.1

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;z \leq -4 \cdot 10^{-160}:\\ \;\;\;\;\frac{\frac{y}{z + 1} \cdot \frac{x}{z}}{z}\\ \mathbf{elif}\;z \leq 1.55 \cdot 10^{-75}:\\ \;\;\;\;\frac{\frac{x}{\frac{z}{y}}}{z}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{z + 1} \cdot \frac{\frac{y}{z}}{z}\\ \end{array} \]

Alternatives

Alternative 1
Accuracy95.4%
Cost969
\[\begin{array}{l} \mathbf{if}\;z \leq -4.9 \cdot 10^{-36} \lor \neg \left(z \leq 1.38 \cdot 10^{-73}\right):\\ \;\;\;\;\frac{x}{z + 1} \cdot \frac{\frac{y}{z}}{z}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{x}{\frac{z}{y}}}{z}\\ \end{array} \]
Alternative 2
Accuracy90.5%
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{x}{\frac{z}{y}}}{z}\\ \end{array} \]
Alternative 3
Accuracy93.3%
Cost841
\[\begin{array}{l} \mathbf{if}\;z \leq -1 \lor \neg \left(z \leq 0.75\right):\\ \;\;\;\;\frac{\frac{x}{\frac{z}{\frac{y}{z}}}}{z}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{y}{z} - y}{\frac{z}{x}}\\ \end{array} \]
Alternative 4
Accuracy90.3%
Cost840
\[\begin{array}{l} \mathbf{if}\;z \leq -1:\\ \;\;\;\;\frac{y}{z} \cdot \frac{x}{z \cdot z}\\ \mathbf{elif}\;z \leq 1:\\ \;\;\;\;\frac{\frac{x}{\frac{z}{y}}}{z}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{z} \cdot \frac{y}{z \cdot z}\\ \end{array} \]
Alternative 5
Accuracy90.6%
Cost840
\[\begin{array}{l} \mathbf{if}\;z \leq -1:\\ \;\;\;\;\frac{y}{z} \cdot \frac{x}{z \cdot z}\\ \mathbf{elif}\;z \leq 0.76:\\ \;\;\;\;\frac{\frac{y}{z} - y}{\frac{z}{x}}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{z} \cdot \frac{y}{z \cdot z}\\ \end{array} \]
Alternative 6
Accuracy92.5%
Cost840
\[\begin{array}{l} \mathbf{if}\;z \leq -4.9 \cdot 10^{-57}:\\ \;\;\;\;\frac{y}{z + 1} \cdot \frac{x}{z \cdot z}\\ \mathbf{elif}\;z \leq 0.75:\\ \;\;\;\;\frac{\frac{y}{z} - y}{\frac{z}{x}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{x}{\frac{z}{\frac{y}{z}}}}{z}\\ \end{array} \]
Alternative 7
Accuracy73.4%
Cost712
\[\begin{array}{l} \mathbf{if}\;y \leq 2 \cdot 10^{-294}:\\ \;\;\;\;x \cdot \frac{\frac{y}{z}}{z}\\ \mathbf{elif}\;y \leq 2.3 \cdot 10^{+17}:\\ \;\;\;\;\frac{x}{z} \cdot \frac{y}{z}\\ \mathbf{else}:\\ \;\;\;\;y \cdot \frac{x}{z \cdot z}\\ \end{array} \]
Alternative 8
Accuracy73.6%
Cost712
\[\begin{array}{l} \mathbf{if}\;x \leq -6.1 \cdot 10^{+19}:\\ \;\;\;\;x \cdot \frac{\frac{y}{z}}{z}\\ \mathbf{elif}\;x \leq -5 \cdot 10^{-283}:\\ \;\;\;\;\frac{x}{z} \cdot \frac{y}{z}\\ \mathbf{else}:\\ \;\;\;\;y \cdot \frac{\frac{x}{z}}{z}\\ \end{array} \]
Alternative 9
Accuracy73.7%
Cost712
\[\begin{array}{l} \mathbf{if}\;y \leq 1.32 \cdot 10^{-266}:\\ \;\;\;\;\frac{x}{z \cdot \frac{z}{y}}\\ \mathbf{elif}\;y \leq 2.5 \cdot 10^{+17}:\\ \;\;\;\;\frac{x}{z} \cdot \frac{y}{z}\\ \mathbf{else}:\\ \;\;\;\;y \cdot \frac{x}{z \cdot z}\\ \end{array} \]
Alternative 10
Accuracy73.7%
Cost712
\[\begin{array}{l} \mathbf{if}\;y \leq 10^{-250}:\\ \;\;\;\;\frac{x}{\frac{z}{\frac{y}{z}}}\\ \mathbf{elif}\;y \leq 2.15 \cdot 10^{+17}:\\ \;\;\;\;\frac{x}{z} \cdot \frac{y}{z}\\ \mathbf{else}:\\ \;\;\;\;y \cdot \frac{x}{z \cdot z}\\ \end{array} \]
Alternative 11
Accuracy73.6%
Cost712
\[\begin{array}{l} \mathbf{if}\;y \leq 7.5 \cdot 10^{-250}:\\ \;\;\;\;\frac{x}{\frac{z}{\frac{y}{z}}}\\ \mathbf{elif}\;y \leq 9.6 \cdot 10^{-138}:\\ \;\;\;\;\frac{x}{z} \cdot \frac{y}{z}\\ \mathbf{else}:\\ \;\;\;\;\frac{y}{z \cdot \frac{z}{x}}\\ \end{array} \]
Alternative 12
Accuracy73.8%
Cost712
\[\begin{array}{l} \mathbf{if}\;y \leq 4 \cdot 10^{-249}:\\ \;\;\;\;\frac{x}{\frac{z}{\frac{y}{z}}}\\ \mathbf{elif}\;y \leq 2.35 \cdot 10^{+17}:\\ \;\;\;\;\frac{x}{z} \cdot \frac{y}{z}\\ \mathbf{else}:\\ \;\;\;\;\frac{y}{\frac{z \cdot z}{x}}\\ \end{array} \]
Alternative 13
Accuracy95.2%
Cost704
\[\frac{\frac{x}{z \cdot \frac{z + 1}{y}}}{z} \]
Alternative 14
Accuracy71.5%
Cost580
\[\begin{array}{l} \mathbf{if}\;y \leq 1.55 \cdot 10^{-103}:\\ \;\;\;\;x \cdot \frac{\frac{y}{z}}{z}\\ \mathbf{else}:\\ \;\;\;\;y \cdot \frac{x}{z \cdot z}\\ \end{array} \]
Alternative 15
Accuracy31.8%
Cost516
\[\begin{array}{l} \mathbf{if}\;x \leq -1 \cdot 10^{+63}:\\ \;\;\;\;x \cdot \frac{-y}{z}\\ \mathbf{else}:\\ \;\;\;\;\frac{-y}{\frac{z}{x}}\\ \end{array} \]
Alternative 16
Accuracy32.2%
Cost516
\[\begin{array}{l} \mathbf{if}\;y \leq 2 \cdot 10^{-129}:\\ \;\;\;\;\frac{x}{\frac{z}{-y}}\\ \mathbf{else}:\\ \;\;\;\;\frac{-y}{\frac{z}{x}}\\ \end{array} \]
Alternative 17
Accuracy63.2%
Cost448
\[x \cdot \frac{y}{z \cdot z} \]
Alternative 18
Accuracy65.6%
Cost448
\[x \cdot \frac{\frac{y}{z}}{z} \]
Alternative 19
Accuracy27.9%
Cost384
\[\frac{-y}{\frac{z}{x}} \]

Error

Reproduce?

herbie shell --seed 2023147 
(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))))