
(FPCore (z0 z1) :precision binary64 (/ (* PI z0) z1))
double code(double z0, double z1) {
return (((double) M_PI) * z0) / z1;
}
public static double code(double z0, double z1) {
return (Math.PI * z0) / z1;
}
def code(z0, z1): return (math.pi * z0) / z1
function code(z0, z1) return Float64(Float64(pi * z0) / z1) end
function tmp = code(z0, z1) tmp = (pi * z0) / z1; end
code[z0_, z1_] := N[(N[(Pi * z0), $MachinePrecision] / z1), $MachinePrecision]
\frac{\pi \cdot z0}{z1}
Herbie found 2 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (z0 z1) :precision binary64 (/ (* PI z0) z1))
double code(double z0, double z1) {
return (((double) M_PI) * z0) / z1;
}
public static double code(double z0, double z1) {
return (Math.PI * z0) / z1;
}
def code(z0, z1): return (math.pi * z0) / z1
function code(z0, z1) return Float64(Float64(pi * z0) / z1) end
function tmp = code(z0, z1) tmp = (pi * z0) / z1; end
code[z0_, z1_] := N[(N[(Pi * z0), $MachinePrecision] / z1), $MachinePrecision]
\frac{\pi \cdot z0}{z1}
(FPCore (z0 z1) :precision binary64 (* (/ PI z1) z0))
double code(double z0, double z1) {
return (((double) M_PI) / z1) * z0;
}
public static double code(double z0, double z1) {
return (Math.PI / z1) * z0;
}
def code(z0, z1): return (math.pi / z1) * z0
function code(z0, z1) return Float64(Float64(pi / z1) * z0) end
function tmp = code(z0, z1) tmp = (pi / z1) * z0; end
code[z0_, z1_] := N[(N[(Pi / z1), $MachinePrecision] * z0), $MachinePrecision]
\frac{\pi}{z1} \cdot z0
Initial program 99.6%
lift-/.f64N/A
mult-flipN/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
*-commutativeN/A
lower-*.f64N/A
mult-flip-revN/A
lower-/.f6499.6%
Applied rewrites99.6%
(FPCore (z0 z1) :precision binary64 (* (/ z0 z1) PI))
double code(double z0, double z1) {
return (z0 / z1) * ((double) M_PI);
}
public static double code(double z0, double z1) {
return (z0 / z1) * Math.PI;
}
def code(z0, z1): return (z0 / z1) * math.pi
function code(z0, z1) return Float64(Float64(z0 / z1) * pi) end
function tmp = code(z0, z1) tmp = (z0 / z1) * pi; end
code[z0_, z1_] := N[(N[(z0 / z1), $MachinePrecision] * Pi), $MachinePrecision]
\frac{z0}{z1} \cdot \pi
Initial program 99.6%
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-*.f64N/A
lower-/.f6499.6%
Applied rewrites99.6%
herbie shell --seed 2025250
(FPCore (z0 z1)
:name "(/ (* PI z0) z1)"
:precision binary64
(/ (* PI z0) z1))