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