?

Average Accuracy: 99.4% → 99.3%
Time: 13.2s
Precision: binary64
Cost: 13376

?

\[\left(3 \cdot \sqrt{x}\right) \cdot \left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right) \]
\[\sqrt{x} \cdot \left(-3 + \mathsf{fma}\left(3, y, \frac{0.3333333333333333}{x}\right)\right) \]
(FPCore (x y)
 :precision binary64
 (* (* 3.0 (sqrt x)) (- (+ y (/ 1.0 (* x 9.0))) 1.0)))
(FPCore (x y)
 :precision binary64
 (* (sqrt x) (+ -3.0 (fma 3.0 y (/ 0.3333333333333333 x)))))
double code(double x, double y) {
	return (3.0 * sqrt(x)) * ((y + (1.0 / (x * 9.0))) - 1.0);
}
double code(double x, double y) {
	return sqrt(x) * (-3.0 + fma(3.0, y, (0.3333333333333333 / x)));
}
function code(x, y)
	return Float64(Float64(3.0 * sqrt(x)) * Float64(Float64(y + Float64(1.0 / Float64(x * 9.0))) - 1.0))
end
function code(x, y)
	return Float64(sqrt(x) * Float64(-3.0 + fma(3.0, y, Float64(0.3333333333333333 / x))))
end
code[x_, y_] := N[(N[(3.0 * N[Sqrt[x], $MachinePrecision]), $MachinePrecision] * N[(N[(y + N[(1.0 / N[(x * 9.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - 1.0), $MachinePrecision]), $MachinePrecision]
code[x_, y_] := N[(N[Sqrt[x], $MachinePrecision] * N[(-3.0 + N[(3.0 * y + N[(0.3333333333333333 / x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\left(3 \cdot \sqrt{x}\right) \cdot \left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right)
\sqrt{x} \cdot \left(-3 + \mathsf{fma}\left(3, y, \frac{0.3333333333333333}{x}\right)\right)

Error?

Target

Original99.4%
Target99.4%
Herbie99.3%
\[3 \cdot \left(y \cdot \sqrt{x} + \left(\frac{1}{x \cdot 9} - 1\right) \cdot \sqrt{x}\right) \]

Derivation?

  1. Initial program 99.4%

    \[\left(3 \cdot \sqrt{x}\right) \cdot \left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right) \]
  2. Simplified99.3%

    \[\leadsto \color{blue}{\sqrt{x} \cdot \left(-3 + \mathsf{fma}\left(3, y, \frac{0.3333333333333333}{x}\right)\right)} \]
    Proof

    [Start]99.4

    \[ \left(3 \cdot \sqrt{x}\right) \cdot \left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right) \]

    associate--l+ [=>]99.4

    \[ \left(3 \cdot \sqrt{x}\right) \cdot \color{blue}{\left(y + \left(\frac{1}{x \cdot 9} - 1\right)\right)} \]

    distribute-lft-in [=>]99.4

    \[ \color{blue}{\left(3 \cdot \sqrt{x}\right) \cdot y + \left(3 \cdot \sqrt{x}\right) \cdot \left(\frac{1}{x \cdot 9} - 1\right)} \]

    +-commutative [=>]99.4

    \[ \color{blue}{\left(3 \cdot \sqrt{x}\right) \cdot \left(\frac{1}{x \cdot 9} - 1\right) + \left(3 \cdot \sqrt{x}\right) \cdot y} \]

    *-commutative [<=]99.4

    \[ \left(3 \cdot \sqrt{x}\right) \cdot \left(\frac{1}{x \cdot 9} - 1\right) + \color{blue}{y \cdot \left(3 \cdot \sqrt{x}\right)} \]

    associate-*r* [=>]99.3

    \[ \left(3 \cdot \sqrt{x}\right) \cdot \left(\frac{1}{x \cdot 9} - 1\right) + \color{blue}{\left(y \cdot 3\right) \cdot \sqrt{x}} \]

    cancel-sign-sub [<=]99.3

    \[ \color{blue}{\left(3 \cdot \sqrt{x}\right) \cdot \left(\frac{1}{x \cdot 9} - 1\right) - \left(-y \cdot 3\right) \cdot \sqrt{x}} \]

    *-commutative [=>]99.3

    \[ \color{blue}{\left(\frac{1}{x \cdot 9} - 1\right) \cdot \left(3 \cdot \sqrt{x}\right)} - \left(-y \cdot 3\right) \cdot \sqrt{x} \]

    associate-*r* [=>]99.3

    \[ \color{blue}{\left(\left(\frac{1}{x \cdot 9} - 1\right) \cdot 3\right) \cdot \sqrt{x}} - \left(-y \cdot 3\right) \cdot \sqrt{x} \]

    distribute-rgt-out-- [=>]99.3

    \[ \color{blue}{\sqrt{x} \cdot \left(\left(\frac{1}{x \cdot 9} - 1\right) \cdot 3 - \left(-y \cdot 3\right)\right)} \]

    distribute-lft-neg-in [=>]99.3

    \[ \sqrt{x} \cdot \left(\left(\frac{1}{x \cdot 9} - 1\right) \cdot 3 - \color{blue}{\left(-y\right) \cdot 3}\right) \]

    cancel-sign-sub [=>]99.3

    \[ \sqrt{x} \cdot \color{blue}{\left(\left(\frac{1}{x \cdot 9} - 1\right) \cdot 3 + y \cdot 3\right)} \]

    distribute-rgt-in [<=]99.3

    \[ \sqrt{x} \cdot \color{blue}{\left(3 \cdot \left(\left(\frac{1}{x \cdot 9} - 1\right) + y\right)\right)} \]

    +-commutative [<=]99.3

    \[ \sqrt{x} \cdot \left(3 \cdot \color{blue}{\left(y + \left(\frac{1}{x \cdot 9} - 1\right)\right)}\right) \]

    associate--l+ [<=]99.3

    \[ \sqrt{x} \cdot \left(3 \cdot \color{blue}{\left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right)}\right) \]

    sub-neg [=>]99.3

    \[ \sqrt{x} \cdot \left(3 \cdot \color{blue}{\left(\left(y + \frac{1}{x \cdot 9}\right) + \left(-1\right)\right)}\right) \]

    +-commutative [=>]99.3

    \[ \sqrt{x} \cdot \left(3 \cdot \color{blue}{\left(\left(-1\right) + \left(y + \frac{1}{x \cdot 9}\right)\right)}\right) \]

    distribute-lft-in [=>]99.3

    \[ \sqrt{x} \cdot \color{blue}{\left(3 \cdot \left(-1\right) + 3 \cdot \left(y + \frac{1}{x \cdot 9}\right)\right)} \]
  3. Final simplification99.3%

    \[\leadsto \sqrt{x} \cdot \left(-3 + \mathsf{fma}\left(3, y, \frac{0.3333333333333333}{x}\right)\right) \]

Alternatives

Alternative 1
Accuracy64.7%
Cost7382
\[\begin{array}{l} \mathbf{if}\;x \leq 15000:\\ \;\;\;\;\sqrt{\frac{0.1111111111111111}{x}}\\ \mathbf{elif}\;x \leq 8.5 \cdot 10^{+98} \lor \neg \left(x \leq 2.9 \cdot 10^{+125}\right) \land \left(x \leq 8.6 \cdot 10^{+293} \lor \neg \left(x \leq 1.06 \cdot 10^{+302}\right)\right):\\ \;\;\;\;\sqrt{x} \cdot -3\\ \mathbf{else}:\\ \;\;\;\;3 \cdot \left(\sqrt{x} \cdot y\right)\\ \end{array} \]
Alternative 2
Accuracy64.9%
Cost7382
\[\begin{array}{l} \mathbf{if}\;x \leq 15000:\\ \;\;\;\;\sqrt{\frac{0.1111111111111111}{x}}\\ \mathbf{elif}\;x \leq 8.8 \cdot 10^{+98} \lor \neg \left(x \leq 2.7 \cdot 10^{+126} \lor \neg \left(x \leq 8.6 \cdot 10^{+293}\right) \land x \leq 2.3 \cdot 10^{+300}\right):\\ \;\;\;\;\sqrt{x} \cdot -3\\ \mathbf{else}:\\ \;\;\;\;y \cdot \left(\sqrt{x} \cdot 3\right)\\ \end{array} \]
Alternative 3
Accuracy64.8%
Cost7381
\[\begin{array}{l} t_0 := \sqrt{x} \cdot -3\\ \mathbf{if}\;x \leq 15000:\\ \;\;\;\;\sqrt{\frac{0.1111111111111111}{x}}\\ \mathbf{elif}\;x \leq 2.6 \cdot 10^{+98}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;x \leq 3 \cdot 10^{+125}:\\ \;\;\;\;y \cdot \left(\sqrt{x} \cdot 3\right)\\ \mathbf{elif}\;x \leq 2.5 \cdot 10^{+293} \lor \neg \left(x \leq 6 \cdot 10^{+300}\right):\\ \;\;\;\;t_0\\ \mathbf{else}:\\ \;\;\;\;\sqrt{x} \cdot \left(3 \cdot y\right)\\ \end{array} \]
Alternative 4
Accuracy99.3%
Cost7360
\[\left(\sqrt{x} \cdot 3\right) \cdot \left(\left(\left(\frac{0.1111111111111111}{x} + \left(y + 1\right)\right) + -1\right) + -1\right) \]
Alternative 5
Accuracy84.9%
Cost7108
\[\begin{array}{l} \mathbf{if}\;x \leq 0.00037:\\ \;\;\;\;\frac{\sqrt{x}}{-0.3333333333333333} \cdot \left(1 + \frac{-0.1111111111111111}{x}\right)\\ \mathbf{else}:\\ \;\;\;\;\sqrt{x} \cdot \left(-3 + 3 \cdot y\right)\\ \end{array} \]
Alternative 6
Accuracy99.4%
Cost7104
\[3 \cdot \left(\sqrt{x} \cdot \left(y + \left(\frac{0.1111111111111111}{x} + -1\right)\right)\right) \]
Alternative 7
Accuracy99.4%
Cost7104
\[\left(\sqrt{x} \cdot 3\right) \cdot \left(\left(y + \frac{0.1111111111111111}{x}\right) + -1\right) \]
Alternative 8
Accuracy84.9%
Cost6980
\[\begin{array}{l} \mathbf{if}\;x \leq 1.02 \cdot 10^{-8}:\\ \;\;\;\;\sqrt{\frac{0.1111111111111111}{x}}\\ \mathbf{else}:\\ \;\;\;\;3 \cdot \left(\sqrt{x} \cdot \left(y + -1\right)\right)\\ \end{array} \]
Alternative 9
Accuracy84.9%
Cost6980
\[\begin{array}{l} \mathbf{if}\;x \leq 0.00039:\\ \;\;\;\;\sqrt{x} \cdot \left(-3 + \frac{0.3333333333333333}{x}\right)\\ \mathbf{else}:\\ \;\;\;\;3 \cdot \left(\sqrt{x} \cdot \left(y + -1\right)\right)\\ \end{array} \]
Alternative 10
Accuracy84.9%
Cost6980
\[\begin{array}{l} \mathbf{if}\;x \leq 0.0065:\\ \;\;\;\;\sqrt{x} \cdot \left(-3 + \frac{0.3333333333333333}{x}\right)\\ \mathbf{else}:\\ \;\;\;\;\sqrt{x} \cdot \left(-3 + 3 \cdot y\right)\\ \end{array} \]
Alternative 11
Accuracy65.3%
Cost6724
\[\begin{array}{l} \mathbf{if}\;x \leq 15000:\\ \;\;\;\;\sqrt{\frac{0.1111111111111111}{x}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{x} \cdot -3\\ \end{array} \]
Alternative 12
Accuracy40.7%
Cost6592
\[\sqrt{\frac{0.1111111111111111}{x}} \]

Error

Reproduce?

herbie shell --seed 2023138 
(FPCore (x y)
  :name "Numeric.SpecFunctions:incompleteGamma from math-functions-0.1.5.2, B"
  :precision binary64

  :herbie-target
  (* 3.0 (+ (* y (sqrt x)) (* (- (/ 1.0 (* x 9.0)) 1.0) (sqrt x))))

  (* (* 3.0 (sqrt x)) (- (+ y (/ 1.0 (* x 9.0))) 1.0)))