
(FPCore (z0) :precision binary64 (sin (* 1/180 (* z0 PI))))
double code(double z0) {
return sin((0.005555555555555556 * (z0 * ((double) M_PI))));
}
public static double code(double z0) {
return Math.sin((0.005555555555555556 * (z0 * Math.PI)));
}
def code(z0): return math.sin((0.005555555555555556 * (z0 * math.pi)))
function code(z0) return sin(Float64(0.005555555555555556 * Float64(z0 * pi))) end
function tmp = code(z0) tmp = sin((0.005555555555555556 * (z0 * pi))); end
code[z0_] := N[Sin[N[(1/180 * N[(z0 * Pi), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
\sin \left(\frac{1}{180} \cdot \left(z0 \cdot \pi\right)\right)
Herbie found 2 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (z0) :precision binary64 (sin (* 1/180 (* z0 PI))))
double code(double z0) {
return sin((0.005555555555555556 * (z0 * ((double) M_PI))));
}
public static double code(double z0) {
return Math.sin((0.005555555555555556 * (z0 * Math.PI)));
}
def code(z0): return math.sin((0.005555555555555556 * (z0 * math.pi)))
function code(z0) return sin(Float64(0.005555555555555556 * Float64(z0 * pi))) end
function tmp = code(z0) tmp = sin((0.005555555555555556 * (z0 * pi))); end
code[z0_] := N[Sin[N[(1/180 * N[(z0 * Pi), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
\sin \left(\frac{1}{180} \cdot \left(z0 \cdot \pi\right)\right)
(FPCore (z0) :precision binary64 (sin (* (* PI 1/180) z0)))
double code(double z0) {
return sin(((((double) M_PI) * 0.005555555555555556) * z0));
}
public static double code(double z0) {
return Math.sin(((Math.PI * 0.005555555555555556) * z0));
}
def code(z0): return math.sin(((math.pi * 0.005555555555555556) * z0))
function code(z0) return sin(Float64(Float64(pi * 0.005555555555555556) * z0)) end
function tmp = code(z0) tmp = sin(((pi * 0.005555555555555556) * z0)); end
code[z0_] := N[Sin[N[(N[(Pi * 1/180), $MachinePrecision] * z0), $MachinePrecision]], $MachinePrecision]
\sin \left(\left(\pi \cdot \frac{1}{180}\right) \cdot z0\right)
Initial program 56.6%
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f6456.7%
Applied rewrites56.7%
herbie shell --seed 2025277 -o generate:taylor -o generate:evaluate
(FPCore (z0)
:name "(sin (* 1/180 (* z0 PI)))"
:precision binary64
(sin (* 1/180 (* z0 PI))))