| Alternative 1 | |
|---|---|
| Accuracy | 49.9% |
| Cost | 6464 |
\[\sin x
\]
(FPCore (x y) :precision binary64 (* (sin x) (/ (sinh y) y)))
(FPCore (x y) :precision binary64 (+ (sin x) (* 0.16666666666666666 (* y (* (sin x) y)))))
double code(double x, double y) {
return sin(x) * (sinh(y) / y);
}
double code(double x, double y) {
return sin(x) + (0.16666666666666666 * (y * (sin(x) * y)));
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
code = sin(x) * (sinh(y) / y)
end function
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
code = sin(x) + (0.16666666666666666d0 * (y * (sin(x) * y)))
end function
public static double code(double x, double y) {
return Math.sin(x) * (Math.sinh(y) / y);
}
public static double code(double x, double y) {
return Math.sin(x) + (0.16666666666666666 * (y * (Math.sin(x) * y)));
}
def code(x, y): return math.sin(x) * (math.sinh(y) / y)
def code(x, y): return math.sin(x) + (0.16666666666666666 * (y * (math.sin(x) * y)))
function code(x, y) return Float64(sin(x) * Float64(sinh(y) / y)) end
function code(x, y) return Float64(sin(x) + Float64(0.16666666666666666 * Float64(y * Float64(sin(x) * y)))) end
function tmp = code(x, y) tmp = sin(x) * (sinh(y) / y); end
function tmp = code(x, y) tmp = sin(x) + (0.16666666666666666 * (y * (sin(x) * y))); end
code[x_, y_] := N[(N[Sin[x], $MachinePrecision] * N[(N[Sinh[y], $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision]
code[x_, y_] := N[(N[Sin[x], $MachinePrecision] + N[(0.16666666666666666 * N[(y * N[(N[Sin[x], $MachinePrecision] * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\sin x \cdot \frac{\sinh y}{y}
\sin x + 0.16666666666666666 \cdot \left(y \cdot \left(\sin x \cdot y\right)\right)
Results
Initial program 51.2%
Taylor expanded in y around 0 51.7%
Simplified51.7%
[Start]51.7 | \[ \sin x + 0.16666666666666666 \cdot \left({y}^{2} \cdot \sin x\right)
\] |
|---|---|
*-commutative [=>]51.7 | \[ \sin x + 0.16666666666666666 \cdot \color{blue}{\left(\sin x \cdot {y}^{2}\right)}
\] |
unpow2 [=>]51.7 | \[ \sin x + 0.16666666666666666 \cdot \left(\sin x \cdot \color{blue}{\left(y \cdot y\right)}\right)
\] |
Taylor expanded in x around inf 51.7%
Simplified52.1%
[Start]51.7 | \[ \sin x + 0.16666666666666666 \cdot \left({y}^{2} \cdot \sin x\right)
\] |
|---|---|
unpow2 [=>]51.7 | \[ \sin x + 0.16666666666666666 \cdot \left(\color{blue}{\left(y \cdot y\right)} \cdot \sin x\right)
\] |
associate-*l* [=>]52.1 | \[ \sin x + 0.16666666666666666 \cdot \color{blue}{\left(y \cdot \left(y \cdot \sin x\right)\right)}
\] |
Final simplification52.1%
| Alternative 1 | |
|---|---|
| Accuracy | 49.9% |
| Cost | 6464 |
| Alternative 2 | |
|---|---|
| Accuracy | 26.4% |
| Cost | 64 |
herbie shell --seed 2023157
(FPCore (x y)
:name "Linear.Quaternion:$ccos from linear-1.19.1.3"
:precision binary64
(* (sin x) (/ (sinh y) y)))