\[\left(a - \frac{1}{3}\right) \cdot \left(1 + \frac{1}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}} \cdot rand\right)
\]
↓
\[-0.3333333333333333 + \mathsf{fma}\left(0.3333333333333333, rand \cdot \sqrt{-0.3333333333333333 + a}, a\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
(+
-0.3333333333333333
(fma 0.3333333333333333 (* rand (sqrt (+ -0.3333333333333333 a))) a)))
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 -0.3333333333333333 + fma(0.3333333333333333, (rand * sqrt((-0.3333333333333333 + a))), a);
}
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 Float64(-0.3333333333333333 + fma(0.3333333333333333, Float64(rand * sqrt(Float64(-0.3333333333333333 + a))), a))
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[(-0.3333333333333333 + N[(0.3333333333333333 * N[(rand * N[Sqrt[N[(-0.3333333333333333 + a), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] + a), $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)
↓
-0.3333333333333333 + \mathsf{fma}\left(0.3333333333333333, rand \cdot \sqrt{-0.3333333333333333 + a}, a\right)
Alternatives
| Alternative 1 |
|---|
| Accuracy | 91.2% |
|---|
| Cost | 7113 |
|---|
\[\begin{array}{l}
\mathbf{if}\;rand \leq -2.4 \cdot 10^{+88} \lor \neg \left(rand \leq 10^{+61}\right):\\
\;\;\;\;0.3333333333333333 \cdot \left(rand \cdot \sqrt{a - 0.3333333333333333}\right)\\
\mathbf{else}:\\
\;\;\;\;a - 0.3333333333333333\\
\end{array}
\]
| Alternative 2 |
|---|
| Accuracy | 91.3% |
|---|
| Cost | 7113 |
|---|
\[\begin{array}{l}
\mathbf{if}\;rand \leq -5 \cdot 10^{+88} \lor \neg \left(rand \leq 8.2 \cdot 10^{+60}\right):\\
\;\;\;\;rand \cdot \sqrt{-0.037037037037037035 + a \cdot 0.1111111111111111}\\
\mathbf{else}:\\
\;\;\;\;a - 0.3333333333333333\\
\end{array}
\]
| Alternative 3 |
|---|
| Accuracy | 98.8% |
|---|
| Cost | 7104 |
|---|
\[\left(-0.3333333333333333 + a\right) \cdot \left(1 + \frac{rand}{\sqrt{a \cdot 9}}\right)
\]
| Alternative 4 |
|---|
| Accuracy | 98.7% |
|---|
| Cost | 7104 |
|---|
\[\left(-0.3333333333333333 + a\right) \cdot \left(1 + \frac{\frac{rand}{3}}{\sqrt{a}}\right)
\]
| Alternative 5 |
|---|
| Accuracy | 99.8% |
|---|
| Cost | 7104 |
|---|
\[-0.3333333333333333 + \left(a + \sqrt{-0.3333333333333333 + a} \cdot \left(0.3333333333333333 \cdot rand\right)\right)
\]
| Alternative 6 |
|---|
| Accuracy | 99.8% |
|---|
| Cost | 7104 |
|---|
\[\left(a + 0.3333333333333333 \cdot \left(rand \cdot \sqrt{a - 0.3333333333333333}\right)\right) - 0.3333333333333333
\]
| Alternative 7 |
|---|
| Accuracy | 90.5% |
|---|
| Cost | 6985 |
|---|
\[\begin{array}{l}
\mathbf{if}\;rand \leq -2.2 \cdot 10^{+88} \lor \neg \left(rand \leq 9 \cdot 10^{+60}\right):\\
\;\;\;\;rand \cdot \sqrt{a \cdot 0.1111111111111111}\\
\mathbf{else}:\\
\;\;\;\;a - 0.3333333333333333\\
\end{array}
\]
| Alternative 8 |
|---|
| Accuracy | 71.0% |
|---|
| Cost | 192 |
|---|
\[a - 0.3333333333333333
\]
| Alternative 9 |
|---|
| Accuracy | 69.7% |
|---|
| Cost | 64 |
|---|
\[a
\]