\[\left(\left(2.328306437 \cdot 10^{-10} \leq ux \land ux \leq 1\right) \land \left(2.328306437 \cdot 10^{-10} \leq uy \land uy \leq 1\right)\right) \land \left(0 \leq maxCos \land maxCos \leq 1\right)\]
\[\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(1 - ux\right) + ux \cdot maxCos\right) \cdot \left(\left(1 - ux\right) + ux \cdot maxCos\right)}
\]
↓
\[\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{\left(1 - maxCos\right) \cdot \mathsf{fma}\left(maxCos - 1, ux \cdot ux, 2 \cdot ux\right)}
\]
(FPCore (ux uy maxCos)
:precision binary64
(*
(cos (* (* uy 2.0) PI))
(sqrt
(- 1.0 (* (+ (- 1.0 ux) (* ux maxCos)) (+ (- 1.0 ux) (* ux maxCos)))))))
↓
(FPCore (ux uy maxCos)
:precision binary64
(*
(cos (* (* uy 2.0) PI))
(sqrt (* (- 1.0 maxCos) (fma (- maxCos 1.0) (* ux ux) (* 2.0 ux))))))
double code(double ux, double uy, double maxCos) {
return cos(((uy * 2.0) * ((double) M_PI))) * sqrt((1.0 - (((1.0 - ux) + (ux * maxCos)) * ((1.0 - ux) + (ux * maxCos)))));
}
↓
double code(double ux, double uy, double maxCos) {
return cos(((uy * 2.0) * ((double) M_PI))) * sqrt(((1.0 - maxCos) * fma((maxCos - 1.0), (ux * ux), (2.0 * ux))));
}
function code(ux, uy, maxCos)
return Float64(cos(Float64(Float64(uy * 2.0) * pi)) * sqrt(Float64(1.0 - Float64(Float64(Float64(1.0 - ux) + Float64(ux * maxCos)) * Float64(Float64(1.0 - ux) + Float64(ux * maxCos))))))
end
↓
function code(ux, uy, maxCos)
return Float64(cos(Float64(Float64(uy * 2.0) * pi)) * sqrt(Float64(Float64(1.0 - maxCos) * fma(Float64(maxCos - 1.0), Float64(ux * ux), Float64(2.0 * ux)))))
end
code[ux_, uy_, maxCos_] := N[(N[Cos[N[(N[(uy * 2.0), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision] * N[Sqrt[N[(1.0 - N[(N[(N[(1.0 - ux), $MachinePrecision] + N[(ux * maxCos), $MachinePrecision]), $MachinePrecision] * N[(N[(1.0 - ux), $MachinePrecision] + N[(ux * maxCos), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]
↓
code[ux_, uy_, maxCos_] := N[(N[Cos[N[(N[(uy * 2.0), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision] * N[Sqrt[N[(N[(1.0 - maxCos), $MachinePrecision] * N[(N[(maxCos - 1.0), $MachinePrecision] * N[(ux * ux), $MachinePrecision] + N[(2.0 * ux), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]
\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(1 - ux\right) + ux \cdot maxCos\right) \cdot \left(\left(1 - ux\right) + ux \cdot maxCos\right)}
↓
\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{\left(1 - maxCos\right) \cdot \mathsf{fma}\left(maxCos - 1, ux \cdot ux, 2 \cdot ux\right)}
Alternatives
| Alternative 1 |
|---|
| Error | 0.4 |
|---|
| Cost | 20352 |
|---|
\[\cos \left(2 \cdot \left(uy \cdot \pi\right)\right) \cdot \sqrt{\left(ux - maxCos \cdot ux\right) \cdot \left(\left(2 + maxCos \cdot ux\right) - ux\right)}
\]
| Alternative 2 |
|---|
| Error | 0.4 |
|---|
| Cost | 20352 |
|---|
\[\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{\left(1 - maxCos\right) \cdot \left(ux \cdot \left(\left(-1 + maxCos\right) \cdot ux + 2\right)\right)}
\]
| Alternative 3 |
|---|
| Error | 1.0 |
|---|
| Cost | 20096 |
|---|
\[\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{\left(1 - maxCos\right) \cdot \left(\left(2 - ux\right) \cdot ux\right)}
\]
| Alternative 4 |
|---|
| Error | 1.6 |
|---|
| Cost | 19840 |
|---|
\[\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{ux \cdot \left(2 - ux\right)}
\]
| Alternative 5 |
|---|
| Error | 25.9 |
|---|
| Cost | 13696 |
|---|
\[\sqrt{-\left(\mathsf{fma}\left(ux, maxCos, 1\right) - \left(ux - 1\right)\right) \cdot \left(ux \cdot maxCos - ux\right)}
\]
| Alternative 6 |
|---|
| Error | 25.9 |
|---|
| Cost | 13632 |
|---|
\[\sqrt{\left(1 - maxCos\right) \cdot \mathsf{fma}\left(maxCos - 1, ux \cdot ux, 2 \cdot ux\right)}
\]
| Alternative 7 |
|---|
| Error | 25.9 |
|---|
| Cost | 7232 |
|---|
\[\sqrt{\left(\left(ux \cdot \left(-1 + maxCos\right) + 2\right) \cdot ux\right) \cdot \left(1 - maxCos\right)}
\]
| Alternative 8 |
|---|
| Error | 25.9 |
|---|
| Cost | 7232 |
|---|
\[\sqrt{\left(ux - maxCos \cdot ux\right) \cdot \left(\left(2 + maxCos \cdot ux\right) - ux\right)}
\]
| Alternative 9 |
|---|
| Error | 25.9 |
|---|
| Cost | 7232 |
|---|
\[\sqrt{\left(ux - ux \cdot maxCos\right) \cdot \left(\left(ux \cdot maxCos - ux\right) + 2\right)}
\]
| Alternative 10 |
|---|
| Error | 26.3 |
|---|
| Cost | 6912 |
|---|
\[\sqrt{-ux \cdot \left(-1 + \left(ux - 1\right)\right)}
\]
| Alternative 11 |
|---|
| Error | 39.6 |
|---|
| Cost | 6848 |
|---|
\[\sqrt{\left(2 - 2 \cdot maxCos\right) \cdot ux}
\]
| Alternative 12 |
|---|
| Error | 39.7 |
|---|
| Cost | 6592 |
|---|
\[\sqrt{ux \cdot 2}
\]