?

Average Accuracy: 87.4% → 87.4%
Time: 13.4s
Precision: binary64
Cost: 19968

?

\[\left(a - \frac{1}{3}\right) \cdot \left(1 + \frac{1}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}} \cdot rand\right) \]
\[\mathsf{fma}\left(\left(a + -0.3333333333333333\right) \cdot {\left(\mathsf{fma}\left(a, 9, -3\right)\right)}^{-0.5}, rand, a + -0.3333333333333333\right) \]
(FPCore (a rand)
 :precision binary64
 (*
  (- a (/ 1.0 3.0))
  (+ 1.0 (* (/ 1.0 (sqrt (* 9.0 (- a (/ 1.0 3.0))))) rand))))
(FPCore (a rand)
 :precision binary64
 (fma
  (* (+ a -0.3333333333333333) (pow (fma a 9.0 -3.0) -0.5))
  rand
  (+ a -0.3333333333333333)))
double code(double a, double rand) {
	return (a - (1.0 / 3.0)) * (1.0 + ((1.0 / sqrt((9.0 * (a - (1.0 / 3.0))))) * rand));
}
double code(double a, double rand) {
	return fma(((a + -0.3333333333333333) * pow(fma(a, 9.0, -3.0), -0.5)), rand, (a + -0.3333333333333333));
}
function code(a, rand)
	return Float64(Float64(a - Float64(1.0 / 3.0)) * Float64(1.0 + Float64(Float64(1.0 / sqrt(Float64(9.0 * Float64(a - Float64(1.0 / 3.0))))) * rand)))
end
function code(a, rand)
	return fma(Float64(Float64(a + -0.3333333333333333) * (fma(a, 9.0, -3.0) ^ -0.5)), rand, Float64(a + -0.3333333333333333))
end
code[a_, rand_] := N[(N[(a - N[(1.0 / 3.0), $MachinePrecision]), $MachinePrecision] * N[(1.0 + N[(N[(1.0 / N[Sqrt[N[(9.0 * N[(a - N[(1.0 / 3.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] * rand), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
code[a_, rand_] := N[(N[(N[(a + -0.3333333333333333), $MachinePrecision] * N[Power[N[(a * 9.0 + -3.0), $MachinePrecision], -0.5], $MachinePrecision]), $MachinePrecision] * rand + N[(a + -0.3333333333333333), $MachinePrecision]), $MachinePrecision]
\left(a - \frac{1}{3}\right) \cdot \left(1 + \frac{1}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}} \cdot rand\right)
\mathsf{fma}\left(\left(a + -0.3333333333333333\right) \cdot {\left(\mathsf{fma}\left(a, 9, -3\right)\right)}^{-0.5}, rand, a + -0.3333333333333333\right)

Error?

Derivation?

  1. Initial program 82.6%

    \[\left(a - \frac{1}{3}\right) \cdot \left(1 + \frac{1}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}} \cdot rand\right) \]
  2. Simplified82.6%

    \[\leadsto \color{blue}{\left(a + -0.3333333333333333\right) \cdot \left(1 + \frac{1}{\sqrt{\left(a + -0.3333333333333333\right) \cdot 9}} \cdot rand\right)} \]
    Step-by-step derivation

    [Start]82.6

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

    sub-neg [=>]82.6

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

    metadata-eval [=>]82.6

    \[ \left(a + \left(-\color{blue}{0.3333333333333333}\right)\right) \cdot \left(1 + \frac{1}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}} \cdot rand\right) \]

    metadata-eval [=>]82.6

    \[ \left(a + \color{blue}{-0.3333333333333333}\right) \cdot \left(1 + \frac{1}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}} \cdot rand\right) \]

    *-commutative [=>]82.6

    \[ \left(a + -0.3333333333333333\right) \cdot \left(1 + \frac{1}{\sqrt{\color{blue}{\left(a - \frac{1}{3}\right) \cdot 9}}} \cdot rand\right) \]

    sub-neg [=>]82.6

    \[ \left(a + -0.3333333333333333\right) \cdot \left(1 + \frac{1}{\sqrt{\color{blue}{\left(a + \left(-\frac{1}{3}\right)\right)} \cdot 9}} \cdot rand\right) \]

    metadata-eval [=>]82.6

    \[ \left(a + -0.3333333333333333\right) \cdot \left(1 + \frac{1}{\sqrt{\left(a + \left(-\color{blue}{0.3333333333333333}\right)\right) \cdot 9}} \cdot rand\right) \]

    metadata-eval [=>]82.6

    \[ \left(a + -0.3333333333333333\right) \cdot \left(1 + \frac{1}{\sqrt{\left(a + \color{blue}{-0.3333333333333333}\right) \cdot 9}} \cdot rand\right) \]
  3. Applied egg-rr82.7%

    \[\leadsto \color{blue}{\mathsf{fma}\left(\left(a + -0.3333333333333333\right) \cdot {\left(\mathsf{fma}\left(a, 9, -3\right)\right)}^{-0.5}, rand, a + -0.3333333333333333\right)} \]
    Step-by-step derivation

    [Start]82.6

    \[ \left(a + -0.3333333333333333\right) \cdot \left(1 + \frac{1}{\sqrt{\left(a + -0.3333333333333333\right) \cdot 9}} \cdot rand\right) \]

    +-commutative [=>]82.6

    \[ \left(a + -0.3333333333333333\right) \cdot \color{blue}{\left(\frac{1}{\sqrt{\left(a + -0.3333333333333333\right) \cdot 9}} \cdot rand + 1\right)} \]

    distribute-lft-in [=>]82.6

    \[ \color{blue}{\left(a + -0.3333333333333333\right) \cdot \left(\frac{1}{\sqrt{\left(a + -0.3333333333333333\right) \cdot 9}} \cdot rand\right) + \left(a + -0.3333333333333333\right) \cdot 1} \]

    associate-*r* [=>]82.6

    \[ \color{blue}{\left(\left(a + -0.3333333333333333\right) \cdot \frac{1}{\sqrt{\left(a + -0.3333333333333333\right) \cdot 9}}\right) \cdot rand} + \left(a + -0.3333333333333333\right) \cdot 1 \]

    *-rgt-identity [=>]82.6

    \[ \left(\left(a + -0.3333333333333333\right) \cdot \frac{1}{\sqrt{\left(a + -0.3333333333333333\right) \cdot 9}}\right) \cdot rand + \color{blue}{\left(a + -0.3333333333333333\right)} \]

    fma-def [=>]82.6

    \[ \color{blue}{\mathsf{fma}\left(\left(a + -0.3333333333333333\right) \cdot \frac{1}{\sqrt{\left(a + -0.3333333333333333\right) \cdot 9}}, rand, a + -0.3333333333333333\right)} \]

    inv-pow [=>]82.6

    \[ \mathsf{fma}\left(\left(a + -0.3333333333333333\right) \cdot \color{blue}{{\left(\sqrt{\left(a + -0.3333333333333333\right) \cdot 9}\right)}^{-1}}, rand, a + -0.3333333333333333\right) \]

    sqrt-pow2 [=>]82.7

    \[ \mathsf{fma}\left(\left(a + -0.3333333333333333\right) \cdot \color{blue}{{\left(\left(a + -0.3333333333333333\right) \cdot 9\right)}^{\left(\frac{-1}{2}\right)}}, rand, a + -0.3333333333333333\right) \]

    *-commutative [=>]82.7

    \[ \mathsf{fma}\left(\left(a + -0.3333333333333333\right) \cdot {\color{blue}{\left(9 \cdot \left(a + -0.3333333333333333\right)\right)}}^{\left(\frac{-1}{2}\right)}, rand, a + -0.3333333333333333\right) \]

    distribute-rgt-in [=>]82.7

    \[ \mathsf{fma}\left(\left(a + -0.3333333333333333\right) \cdot {\color{blue}{\left(a \cdot 9 + -0.3333333333333333 \cdot 9\right)}}^{\left(\frac{-1}{2}\right)}, rand, a + -0.3333333333333333\right) \]

    metadata-eval [=>]82.7

    \[ \mathsf{fma}\left(\left(a + -0.3333333333333333\right) \cdot {\left(a \cdot 9 + \color{blue}{-3}\right)}^{\left(\frac{-1}{2}\right)}, rand, a + -0.3333333333333333\right) \]

    metadata-eval [<=]82.7

    \[ \mathsf{fma}\left(\left(a + -0.3333333333333333\right) \cdot {\left(a \cdot 9 + \color{blue}{\left(-3\right)}\right)}^{\left(\frac{-1}{2}\right)}, rand, a + -0.3333333333333333\right) \]

    metadata-eval [<=]82.7

    \[ \mathsf{fma}\left(\left(a + -0.3333333333333333\right) \cdot {\left(a \cdot 9 + \left(-\color{blue}{\sqrt{9}}\right)\right)}^{\left(\frac{-1}{2}\right)}, rand, a + -0.3333333333333333\right) \]

    fma-def [=>]82.7

    \[ \mathsf{fma}\left(\left(a + -0.3333333333333333\right) \cdot {\color{blue}{\left(\mathsf{fma}\left(a, 9, -\sqrt{9}\right)\right)}}^{\left(\frac{-1}{2}\right)}, rand, a + -0.3333333333333333\right) \]

    metadata-eval [=>]82.7

    \[ \mathsf{fma}\left(\left(a + -0.3333333333333333\right) \cdot {\left(\mathsf{fma}\left(a, 9, -\color{blue}{3}\right)\right)}^{\left(\frac{-1}{2}\right)}, rand, a + -0.3333333333333333\right) \]

    metadata-eval [=>]82.7

    \[ \mathsf{fma}\left(\left(a + -0.3333333333333333\right) \cdot {\left(\mathsf{fma}\left(a, 9, \color{blue}{-3}\right)\right)}^{\left(\frac{-1}{2}\right)}, rand, a + -0.3333333333333333\right) \]

    metadata-eval [=>]82.7

    \[ \mathsf{fma}\left(\left(a + -0.3333333333333333\right) \cdot {\left(\mathsf{fma}\left(a, 9, -3\right)\right)}^{\color{blue}{-0.5}}, rand, a + -0.3333333333333333\right) \]
  4. Final simplification82.7%

    \[\leadsto \mathsf{fma}\left(\left(a + -0.3333333333333333\right) \cdot {\left(\mathsf{fma}\left(a, 9, -3\right)\right)}^{-0.5}, rand, a + -0.3333333333333333\right) \]

Alternatives

Alternative 1
Accuracy80.1%
Cost7113
\[\begin{array}{l} \mathbf{if}\;rand \leq -6.2 \cdot 10^{+87} \lor \neg \left(rand \leq 5.9 \cdot 10^{+68}\right):\\ \;\;\;\;0.3333333333333333 \cdot \left(rand \cdot \sqrt{a - 0.3333333333333333}\right)\\ \mathbf{else}:\\ \;\;\;\;a - 0.3333333333333333\\ \end{array} \]
Alternative 2
Accuracy80.1%
Cost7112
\[\begin{array}{l} \mathbf{if}\;rand \leq -8.2 \cdot 10^{+86}:\\ \;\;\;\;rand \cdot \left(0.3333333333333333 \cdot \sqrt{a + -0.3333333333333333}\right)\\ \mathbf{elif}\;rand \leq 1.75 \cdot 10^{+69}:\\ \;\;\;\;a - 0.3333333333333333\\ \mathbf{else}:\\ \;\;\;\;0.3333333333333333 \cdot \left(rand \cdot \sqrt{a - 0.3333333333333333}\right)\\ \end{array} \]
Alternative 3
Accuracy80.3%
Cost7112
\[\begin{array}{l} t_0 := \sqrt{a + -0.3333333333333333}\\ \mathbf{if}\;rand \leq -1.12 \cdot 10^{+85}:\\ \;\;\;\;rand \cdot \left(0.3333333333333333 \cdot t_0\right)\\ \mathbf{elif}\;rand \leq 1.75 \cdot 10^{+69}:\\ \;\;\;\;a - 0.3333333333333333\\ \mathbf{else}:\\ \;\;\;\;t_0 \cdot \left(rand \cdot 0.3333333333333333\right)\\ \end{array} \]
Alternative 4
Accuracy87.2%
Cost7104
\[\left(a + 0.3333333333333333 \cdot \left(rand \cdot \sqrt{a - 0.3333333333333333}\right)\right) - 0.3333333333333333 \]
Alternative 5
Accuracy79.3%
Cost6985
\[\begin{array}{l} \mathbf{if}\;rand \leq -3.5 \cdot 10^{+86} \lor \neg \left(rand \leq 2.3 \cdot 10^{+69}\right):\\ \;\;\;\;0.3333333333333333 \cdot \left(rand \cdot \sqrt{a}\right)\\ \mathbf{else}:\\ \;\;\;\;a - 0.3333333333333333\\ \end{array} \]
Alternative 6
Accuracy86.3%
Cost6976
\[\left(a + 0.3333333333333333 \cdot \left(rand \cdot \sqrt{a}\right)\right) - 0.3333333333333333 \]
Alternative 7
Accuracy62.1%
Cost192
\[a - 0.3333333333333333 \]
Alternative 8
Accuracy1.5%
Cost64
\[-0.3333333333333333 \]
Alternative 9
Accuracy61.1%
Cost64
\[a \]

Error

Reproduce?

herbie shell --seed 2023157 
(FPCore (a rand)
  :name "Octave 3.8, oct_fill_randg"
  :precision binary64
  (* (- a (/ 1.0 3.0)) (+ 1.0 (* (/ 1.0 (sqrt (* 9.0 (- a (/ 1.0 3.0))))) rand))))