
(FPCore (z1 z0) :precision binary64 (/ 0.125 (* (exp (/ z1 z0)) (* z0 PI))))
double code(double z1, double z0) {
return 0.125 / (exp((z1 / z0)) * (z0 * ((double) M_PI)));
}
public static double code(double z1, double z0) {
return 0.125 / (Math.exp((z1 / z0)) * (z0 * Math.PI));
}
def code(z1, z0): return 0.125 / (math.exp((z1 / z0)) * (z0 * math.pi))
function code(z1, z0) return Float64(0.125 / Float64(exp(Float64(z1 / z0)) * Float64(z0 * pi))) end
function tmp = code(z1, z0) tmp = 0.125 / (exp((z1 / z0)) * (z0 * pi)); end
code[z1_, z0_] := N[(0.125 / N[(N[Exp[N[(z1 / z0), $MachinePrecision]], $MachinePrecision] * N[(z0 * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\frac{0.125}{e^{\frac{z1}{z0}} \cdot \left(z0 \cdot \pi\right)}
Herbie found 14 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (z1 z0) :precision binary64 (/ 0.125 (* (exp (/ z1 z0)) (* z0 PI))))
double code(double z1, double z0) {
return 0.125 / (exp((z1 / z0)) * (z0 * ((double) M_PI)));
}
public static double code(double z1, double z0) {
return 0.125 / (Math.exp((z1 / z0)) * (z0 * Math.PI));
}
def code(z1, z0): return 0.125 / (math.exp((z1 / z0)) * (z0 * math.pi))
function code(z1, z0) return Float64(0.125 / Float64(exp(Float64(z1 / z0)) * Float64(z0 * pi))) end
function tmp = code(z1, z0) tmp = 0.125 / (exp((z1 / z0)) * (z0 * pi)); end
code[z1_, z0_] := N[(0.125 / N[(N[Exp[N[(z1 / z0), $MachinePrecision]], $MachinePrecision] * N[(z0 * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\frac{0.125}{e^{\frac{z1}{z0}} \cdot \left(z0 \cdot \pi\right)}
(FPCore (z1 z0) :precision binary64 (/ (* (/ 0.125 (* PI (exp (/ z1 z0)))) 3.0) (* z0 3.0)))
double code(double z1, double z0) {
return ((0.125 / (((double) M_PI) * exp((z1 / z0)))) * 3.0) / (z0 * 3.0);
}
public static double code(double z1, double z0) {
return ((0.125 / (Math.PI * Math.exp((z1 / z0)))) * 3.0) / (z0 * 3.0);
}
def code(z1, z0): return ((0.125 / (math.pi * math.exp((z1 / z0)))) * 3.0) / (z0 * 3.0)
function code(z1, z0) return Float64(Float64(Float64(0.125 / Float64(pi * exp(Float64(z1 / z0)))) * 3.0) / Float64(z0 * 3.0)) end
function tmp = code(z1, z0) tmp = ((0.125 / (pi * exp((z1 / z0)))) * 3.0) / (z0 * 3.0); end
code[z1_, z0_] := N[(N[(N[(0.125 / N[(Pi * N[Exp[N[(z1 / z0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * 3.0), $MachinePrecision] / N[(z0 * 3.0), $MachinePrecision]), $MachinePrecision]
\frac{\frac{0.125}{\pi \cdot e^{\frac{z1}{z0}}} \cdot 3}{z0 \cdot 3}
Initial program 99.6%
lift-/.f64N/A
mult-flipN/A
*-commutativeN/A
metadata-evalN/A
associate-*r*N/A
*-commutativeN/A
mult-flipN/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
*-commutativeN/A
associate-/r*N/A
metadata-evalN/A
frac-timesN/A
lower-/.f64N/A
Applied rewrites99.6%
(FPCore (z1 z0) :precision binary64 (* (/ 0.3333333333333333 (* (* z0 PI) (exp (/ z1 z0)))) 0.375))
double code(double z1, double z0) {
return (0.3333333333333333 / ((z0 * ((double) M_PI)) * exp((z1 / z0)))) * 0.375;
}
public static double code(double z1, double z0) {
return (0.3333333333333333 / ((z0 * Math.PI) * Math.exp((z1 / z0)))) * 0.375;
}
def code(z1, z0): return (0.3333333333333333 / ((z0 * math.pi) * math.exp((z1 / z0)))) * 0.375
function code(z1, z0) return Float64(Float64(0.3333333333333333 / Float64(Float64(z0 * pi) * exp(Float64(z1 / z0)))) * 0.375) end
function tmp = code(z1, z0) tmp = (0.3333333333333333 / ((z0 * pi) * exp((z1 / z0)))) * 0.375; end
code[z1_, z0_] := N[(N[(0.3333333333333333 / N[(N[(z0 * Pi), $MachinePrecision] * N[Exp[N[(z1 / z0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * 0.375), $MachinePrecision]
\frac{0.3333333333333333}{\left(z0 \cdot \pi\right) \cdot e^{\frac{z1}{z0}}} \cdot 0.375
Initial program 99.6%
lift-/.f64N/A
mult-flipN/A
*-commutativeN/A
metadata-evalN/A
associate-*r*N/A
*-commutativeN/A
mult-flipN/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
*-commutativeN/A
associate-/r*N/A
metadata-evalN/A
frac-timesN/A
lower-/.f64N/A
Applied rewrites99.6%
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-/.f64N/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
associate-/r*N/A
frac-timesN/A
times-fracN/A
metadata-evalN/A
*-commutativeN/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
associate-*l*N/A
Applied rewrites99.5%
(FPCore (z1 z0)
:precision binary64
(let* ((t_0 (/ (* z1 PI) z0)))
(if (<= z0 -1.16e-116)
(/ 0.375 (+ (* 3.0 (* z0 PI)) (* z1 (+ (* 1.5 t_0) (* 3.0 PI)))))
(if (<= z0 2.1e-156)
(/ 0.125 (* z0 (* z0 (/ (* (+ z1 z0) PI) (* z0 z0)))))
(*
(/ 0.3333333333333333 (+ (* z0 PI) (* z1 (+ PI (* 0.5 t_0)))))
0.375)))))double code(double z1, double z0) {
double t_0 = (z1 * ((double) M_PI)) / z0;
double tmp;
if (z0 <= -1.16e-116) {
tmp = 0.375 / ((3.0 * (z0 * ((double) M_PI))) + (z1 * ((1.5 * t_0) + (3.0 * ((double) M_PI)))));
} else if (z0 <= 2.1e-156) {
tmp = 0.125 / (z0 * (z0 * (((z1 + z0) * ((double) M_PI)) / (z0 * z0))));
} else {
tmp = (0.3333333333333333 / ((z0 * ((double) M_PI)) + (z1 * (((double) M_PI) + (0.5 * t_0))))) * 0.375;
}
return tmp;
}
public static double code(double z1, double z0) {
double t_0 = (z1 * Math.PI) / z0;
double tmp;
if (z0 <= -1.16e-116) {
tmp = 0.375 / ((3.0 * (z0 * Math.PI)) + (z1 * ((1.5 * t_0) + (3.0 * Math.PI))));
} else if (z0 <= 2.1e-156) {
tmp = 0.125 / (z0 * (z0 * (((z1 + z0) * Math.PI) / (z0 * z0))));
} else {
tmp = (0.3333333333333333 / ((z0 * Math.PI) + (z1 * (Math.PI + (0.5 * t_0))))) * 0.375;
}
return tmp;
}
def code(z1, z0): t_0 = (z1 * math.pi) / z0 tmp = 0 if z0 <= -1.16e-116: tmp = 0.375 / ((3.0 * (z0 * math.pi)) + (z1 * ((1.5 * t_0) + (3.0 * math.pi)))) elif z0 <= 2.1e-156: tmp = 0.125 / (z0 * (z0 * (((z1 + z0) * math.pi) / (z0 * z0)))) else: tmp = (0.3333333333333333 / ((z0 * math.pi) + (z1 * (math.pi + (0.5 * t_0))))) * 0.375 return tmp
function code(z1, z0) t_0 = Float64(Float64(z1 * pi) / z0) tmp = 0.0 if (z0 <= -1.16e-116) tmp = Float64(0.375 / Float64(Float64(3.0 * Float64(z0 * pi)) + Float64(z1 * Float64(Float64(1.5 * t_0) + Float64(3.0 * pi))))); elseif (z0 <= 2.1e-156) tmp = Float64(0.125 / Float64(z0 * Float64(z0 * Float64(Float64(Float64(z1 + z0) * pi) / Float64(z0 * z0))))); else tmp = Float64(Float64(0.3333333333333333 / Float64(Float64(z0 * pi) + Float64(z1 * Float64(pi + Float64(0.5 * t_0))))) * 0.375); end return tmp end
function tmp_2 = code(z1, z0) t_0 = (z1 * pi) / z0; tmp = 0.0; if (z0 <= -1.16e-116) tmp = 0.375 / ((3.0 * (z0 * pi)) + (z1 * ((1.5 * t_0) + (3.0 * pi)))); elseif (z0 <= 2.1e-156) tmp = 0.125 / (z0 * (z0 * (((z1 + z0) * pi) / (z0 * z0)))); else tmp = (0.3333333333333333 / ((z0 * pi) + (z1 * (pi + (0.5 * t_0))))) * 0.375; end tmp_2 = tmp; end
code[z1_, z0_] := Block[{t$95$0 = N[(N[(z1 * Pi), $MachinePrecision] / z0), $MachinePrecision]}, If[LessEqual[z0, -1.16e-116], N[(0.375 / N[(N[(3.0 * N[(z0 * Pi), $MachinePrecision]), $MachinePrecision] + N[(z1 * N[(N[(1.5 * t$95$0), $MachinePrecision] + N[(3.0 * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z0, 2.1e-156], N[(0.125 / N[(z0 * N[(z0 * N[(N[(N[(z1 + z0), $MachinePrecision] * Pi), $MachinePrecision] / N[(z0 * z0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(0.3333333333333333 / N[(N[(z0 * Pi), $MachinePrecision] + N[(z1 * N[(Pi + N[(0.5 * t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * 0.375), $MachinePrecision]]]]
\begin{array}{l}
t_0 := \frac{z1 \cdot \pi}{z0}\\
\mathbf{if}\;z0 \leq -1.16 \cdot 10^{-116}:\\
\;\;\;\;\frac{0.375}{3 \cdot \left(z0 \cdot \pi\right) + z1 \cdot \left(1.5 \cdot t\_0 + 3 \cdot \pi\right)}\\
\mathbf{elif}\;z0 \leq 2.1 \cdot 10^{-156}:\\
\;\;\;\;\frac{0.125}{z0 \cdot \left(z0 \cdot \frac{\left(z1 + z0\right) \cdot \pi}{z0 \cdot z0}\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{0.3333333333333333}{z0 \cdot \pi + z1 \cdot \left(\pi + 0.5 \cdot t\_0\right)} \cdot 0.375\\
\end{array}
if z0 < -1.16e-116Initial program 99.6%
lift-/.f64N/A
mult-flipN/A
*-commutativeN/A
metadata-evalN/A
associate-*r*N/A
*-commutativeN/A
mult-flipN/A
metadata-evalN/A
frac-timesN/A
lower-/.f64N/A
metadata-evalN/A
lower-*.f6499.4%
Applied rewrites99.4%
Taylor expanded in z1 around 0
lower-+.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-+.f64N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-PI.f6482.7%
Applied rewrites82.7%
if -1.16e-116 < z0 < 2.1000000000000001e-156Initial program 99.6%
Taylor expanded in z0 around inf
lower-*.f64N/A
lower-+.f64N/A
lower-PI.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6474.3%
Applied rewrites74.3%
lift-+.f64N/A
lift-/.f64N/A
add-to-fractionN/A
*-commutativeN/A
lift-*.f64N/A
div-addN/A
common-denominatorN/A
lower-/.f64N/A
lower-+.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6448.2%
Applied rewrites48.2%
lift-/.f64N/A
lift-+.f64N/A
lift-*.f64N/A
lift-*.f64N/A
distribute-rgt-outN/A
lift-*.f64N/A
lift-*.f64N/A
distribute-rgt-inN/A
lift-+.f64N/A
lift-*.f64N/A
associate-/l*N/A
lower-*.f64N/A
lower-/.f6452.6%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6452.6%
lift-+.f64N/A
+-commutativeN/A
lower-+.f6452.6%
Applied rewrites52.6%
if 2.1000000000000001e-156 < z0 Initial program 99.6%
lift-/.f64N/A
mult-flipN/A
*-commutativeN/A
metadata-evalN/A
associate-*r*N/A
*-commutativeN/A
mult-flipN/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
*-commutativeN/A
associate-/r*N/A
metadata-evalN/A
frac-timesN/A
lower-/.f64N/A
Applied rewrites99.6%
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-/.f64N/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
associate-/r*N/A
frac-timesN/A
times-fracN/A
metadata-evalN/A
*-commutativeN/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
associate-*l*N/A
Applied rewrites99.5%
Taylor expanded in z1 around 0
lower-*.f64N/A
lower-PI.f6464.7%
Applied rewrites64.7%
Taylor expanded in z1 around 0
lower-+.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-+.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6482.8%
Applied rewrites82.8%
(FPCore (z1 z0)
:precision binary64
(if (<= z0 -1.16e-116)
(/
0.375
(* (+ (* (+ (* 0.5 (* PI (/ z1 z0))) PI) z1) (* z0 PI)) 3.0))
(if (<= z0 2.1e-156)
(/ 0.125 (* z0 (* z0 (/ (* (+ z1 z0) PI) (* z0 z0)))))
(*
(/
0.3333333333333333
(+ (* z0 PI) (* z1 (+ PI (* 0.5 (/ (* z1 PI) z0))))))
0.375))))double code(double z1, double z0) {
double tmp;
if (z0 <= -1.16e-116) {
tmp = 0.375 / (((((0.5 * (((double) M_PI) * (z1 / z0))) + ((double) M_PI)) * z1) + (z0 * ((double) M_PI))) * 3.0);
} else if (z0 <= 2.1e-156) {
tmp = 0.125 / (z0 * (z0 * (((z1 + z0) * ((double) M_PI)) / (z0 * z0))));
} else {
tmp = (0.3333333333333333 / ((z0 * ((double) M_PI)) + (z1 * (((double) M_PI) + (0.5 * ((z1 * ((double) M_PI)) / z0)))))) * 0.375;
}
return tmp;
}
public static double code(double z1, double z0) {
double tmp;
if (z0 <= -1.16e-116) {
tmp = 0.375 / (((((0.5 * (Math.PI * (z1 / z0))) + Math.PI) * z1) + (z0 * Math.PI)) * 3.0);
} else if (z0 <= 2.1e-156) {
tmp = 0.125 / (z0 * (z0 * (((z1 + z0) * Math.PI) / (z0 * z0))));
} else {
tmp = (0.3333333333333333 / ((z0 * Math.PI) + (z1 * (Math.PI + (0.5 * ((z1 * Math.PI) / z0)))))) * 0.375;
}
return tmp;
}
def code(z1, z0): tmp = 0 if z0 <= -1.16e-116: tmp = 0.375 / (((((0.5 * (math.pi * (z1 / z0))) + math.pi) * z1) + (z0 * math.pi)) * 3.0) elif z0 <= 2.1e-156: tmp = 0.125 / (z0 * (z0 * (((z1 + z0) * math.pi) / (z0 * z0)))) else: tmp = (0.3333333333333333 / ((z0 * math.pi) + (z1 * (math.pi + (0.5 * ((z1 * math.pi) / z0)))))) * 0.375 return tmp
function code(z1, z0) tmp = 0.0 if (z0 <= -1.16e-116) tmp = Float64(0.375 / Float64(Float64(Float64(Float64(Float64(0.5 * Float64(pi * Float64(z1 / z0))) + pi) * z1) + Float64(z0 * pi)) * 3.0)); elseif (z0 <= 2.1e-156) tmp = Float64(0.125 / Float64(z0 * Float64(z0 * Float64(Float64(Float64(z1 + z0) * pi) / Float64(z0 * z0))))); else tmp = Float64(Float64(0.3333333333333333 / Float64(Float64(z0 * pi) + Float64(z1 * Float64(pi + Float64(0.5 * Float64(Float64(z1 * pi) / z0)))))) * 0.375); end return tmp end
function tmp_2 = code(z1, z0) tmp = 0.0; if (z0 <= -1.16e-116) tmp = 0.375 / (((((0.5 * (pi * (z1 / z0))) + pi) * z1) + (z0 * pi)) * 3.0); elseif (z0 <= 2.1e-156) tmp = 0.125 / (z0 * (z0 * (((z1 + z0) * pi) / (z0 * z0)))); else tmp = (0.3333333333333333 / ((z0 * pi) + (z1 * (pi + (0.5 * ((z1 * pi) / z0)))))) * 0.375; end tmp_2 = tmp; end
code[z1_, z0_] := If[LessEqual[z0, -1.16e-116], N[(0.375 / N[(N[(N[(N[(N[(0.5 * N[(Pi * N[(z1 / z0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + Pi), $MachinePrecision] * z1), $MachinePrecision] + N[(z0 * Pi), $MachinePrecision]), $MachinePrecision] * 3.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[z0, 2.1e-156], N[(0.125 / N[(z0 * N[(z0 * N[(N[(N[(z1 + z0), $MachinePrecision] * Pi), $MachinePrecision] / N[(z0 * z0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(0.3333333333333333 / N[(N[(z0 * Pi), $MachinePrecision] + N[(z1 * N[(Pi + N[(0.5 * N[(N[(z1 * Pi), $MachinePrecision] / z0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * 0.375), $MachinePrecision]]]
\begin{array}{l}
\mathbf{if}\;z0 \leq -1.16 \cdot 10^{-116}:\\
\;\;\;\;\frac{0.375}{\left(\left(0.5 \cdot \left(\pi \cdot \frac{z1}{z0}\right) + \pi\right) \cdot z1 + z0 \cdot \pi\right) \cdot 3}\\
\mathbf{elif}\;z0 \leq 2.1 \cdot 10^{-156}:\\
\;\;\;\;\frac{0.125}{z0 \cdot \left(z0 \cdot \frac{\left(z1 + z0\right) \cdot \pi}{z0 \cdot z0}\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{0.3333333333333333}{z0 \cdot \pi + z1 \cdot \left(\pi + 0.5 \cdot \frac{z1 \cdot \pi}{z0}\right)} \cdot 0.375\\
\end{array}
if z0 < -1.16e-116Initial program 99.6%
Taylor expanded in z1 around 0
lower-+.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-+.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6482.9%
Applied rewrites82.9%
lift-/.f64N/A
mult-flipN/A
*-commutativeN/A
metadata-evalN/A
frac-timesN/A
metadata-evalN/A
lower-/.f64N/A
lower-*.f6482.7%
Applied rewrites82.7%
if -1.16e-116 < z0 < 2.1000000000000001e-156Initial program 99.6%
Taylor expanded in z0 around inf
lower-*.f64N/A
lower-+.f64N/A
lower-PI.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6474.3%
Applied rewrites74.3%
lift-+.f64N/A
lift-/.f64N/A
add-to-fractionN/A
*-commutativeN/A
lift-*.f64N/A
div-addN/A
common-denominatorN/A
lower-/.f64N/A
lower-+.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6448.2%
Applied rewrites48.2%
lift-/.f64N/A
lift-+.f64N/A
lift-*.f64N/A
lift-*.f64N/A
distribute-rgt-outN/A
lift-*.f64N/A
lift-*.f64N/A
distribute-rgt-inN/A
lift-+.f64N/A
lift-*.f64N/A
associate-/l*N/A
lower-*.f64N/A
lower-/.f6452.6%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6452.6%
lift-+.f64N/A
+-commutativeN/A
lower-+.f6452.6%
Applied rewrites52.6%
if 2.1000000000000001e-156 < z0 Initial program 99.6%
lift-/.f64N/A
mult-flipN/A
*-commutativeN/A
metadata-evalN/A
associate-*r*N/A
*-commutativeN/A
mult-flipN/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
*-commutativeN/A
associate-/r*N/A
metadata-evalN/A
frac-timesN/A
lower-/.f64N/A
Applied rewrites99.6%
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-/.f64N/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
associate-/r*N/A
frac-timesN/A
times-fracN/A
metadata-evalN/A
*-commutativeN/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
associate-*l*N/A
Applied rewrites99.5%
Taylor expanded in z1 around 0
lower-*.f64N/A
lower-PI.f6464.7%
Applied rewrites64.7%
Taylor expanded in z1 around 0
lower-+.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-+.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6482.8%
Applied rewrites82.8%
(FPCore (z1 z0)
:precision binary64
(let* ((t_0 (+ (* z0 PI) (* z1 (+ PI (* 0.5 (/ (* z1 PI) z0)))))))
(if (<= z0 -1.7e-125)
(/ 0.125 t_0)
(if (<= z0 2.1e-156)
(/ 0.125 (* z0 (* z0 (/ (* (+ z1 z0) PI) (* z0 z0)))))
(* (/ 0.3333333333333333 t_0) 0.375)))))double code(double z1, double z0) {
double t_0 = (z0 * ((double) M_PI)) + (z1 * (((double) M_PI) + (0.5 * ((z1 * ((double) M_PI)) / z0))));
double tmp;
if (z0 <= -1.7e-125) {
tmp = 0.125 / t_0;
} else if (z0 <= 2.1e-156) {
tmp = 0.125 / (z0 * (z0 * (((z1 + z0) * ((double) M_PI)) / (z0 * z0))));
} else {
tmp = (0.3333333333333333 / t_0) * 0.375;
}
return tmp;
}
public static double code(double z1, double z0) {
double t_0 = (z0 * Math.PI) + (z1 * (Math.PI + (0.5 * ((z1 * Math.PI) / z0))));
double tmp;
if (z0 <= -1.7e-125) {
tmp = 0.125 / t_0;
} else if (z0 <= 2.1e-156) {
tmp = 0.125 / (z0 * (z0 * (((z1 + z0) * Math.PI) / (z0 * z0))));
} else {
tmp = (0.3333333333333333 / t_0) * 0.375;
}
return tmp;
}
def code(z1, z0): t_0 = (z0 * math.pi) + (z1 * (math.pi + (0.5 * ((z1 * math.pi) / z0)))) tmp = 0 if z0 <= -1.7e-125: tmp = 0.125 / t_0 elif z0 <= 2.1e-156: tmp = 0.125 / (z0 * (z0 * (((z1 + z0) * math.pi) / (z0 * z0)))) else: tmp = (0.3333333333333333 / t_0) * 0.375 return tmp
function code(z1, z0) t_0 = Float64(Float64(z0 * pi) + Float64(z1 * Float64(pi + Float64(0.5 * Float64(Float64(z1 * pi) / z0))))) tmp = 0.0 if (z0 <= -1.7e-125) tmp = Float64(0.125 / t_0); elseif (z0 <= 2.1e-156) tmp = Float64(0.125 / Float64(z0 * Float64(z0 * Float64(Float64(Float64(z1 + z0) * pi) / Float64(z0 * z0))))); else tmp = Float64(Float64(0.3333333333333333 / t_0) * 0.375); end return tmp end
function tmp_2 = code(z1, z0) t_0 = (z0 * pi) + (z1 * (pi + (0.5 * ((z1 * pi) / z0)))); tmp = 0.0; if (z0 <= -1.7e-125) tmp = 0.125 / t_0; elseif (z0 <= 2.1e-156) tmp = 0.125 / (z0 * (z0 * (((z1 + z0) * pi) / (z0 * z0)))); else tmp = (0.3333333333333333 / t_0) * 0.375; end tmp_2 = tmp; end
code[z1_, z0_] := Block[{t$95$0 = N[(N[(z0 * Pi), $MachinePrecision] + N[(z1 * N[(Pi + N[(0.5 * N[(N[(z1 * Pi), $MachinePrecision] / z0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z0, -1.7e-125], N[(0.125 / t$95$0), $MachinePrecision], If[LessEqual[z0, 2.1e-156], N[(0.125 / N[(z0 * N[(z0 * N[(N[(N[(z1 + z0), $MachinePrecision] * Pi), $MachinePrecision] / N[(z0 * z0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(0.3333333333333333 / t$95$0), $MachinePrecision] * 0.375), $MachinePrecision]]]]
\begin{array}{l}
t_0 := z0 \cdot \pi + z1 \cdot \left(\pi + 0.5 \cdot \frac{z1 \cdot \pi}{z0}\right)\\
\mathbf{if}\;z0 \leq -1.7 \cdot 10^{-125}:\\
\;\;\;\;\frac{0.125}{t\_0}\\
\mathbf{elif}\;z0 \leq 2.1 \cdot 10^{-156}:\\
\;\;\;\;\frac{0.125}{z0 \cdot \left(z0 \cdot \frac{\left(z1 + z0\right) \cdot \pi}{z0 \cdot z0}\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{0.3333333333333333}{t\_0} \cdot 0.375\\
\end{array}
if z0 < -1.6999999999999999e-125Initial program 99.6%
Taylor expanded in z1 around 0
lower-+.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-+.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6482.9%
Applied rewrites82.9%
if -1.6999999999999999e-125 < z0 < 2.1000000000000001e-156Initial program 99.6%
Taylor expanded in z0 around inf
lower-*.f64N/A
lower-+.f64N/A
lower-PI.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6474.3%
Applied rewrites74.3%
lift-+.f64N/A
lift-/.f64N/A
add-to-fractionN/A
*-commutativeN/A
lift-*.f64N/A
div-addN/A
common-denominatorN/A
lower-/.f64N/A
lower-+.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6448.2%
Applied rewrites48.2%
lift-/.f64N/A
lift-+.f64N/A
lift-*.f64N/A
lift-*.f64N/A
distribute-rgt-outN/A
lift-*.f64N/A
lift-*.f64N/A
distribute-rgt-inN/A
lift-+.f64N/A
lift-*.f64N/A
associate-/l*N/A
lower-*.f64N/A
lower-/.f6452.6%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6452.6%
lift-+.f64N/A
+-commutativeN/A
lower-+.f6452.6%
Applied rewrites52.6%
if 2.1000000000000001e-156 < z0 Initial program 99.6%
lift-/.f64N/A
mult-flipN/A
*-commutativeN/A
metadata-evalN/A
associate-*r*N/A
*-commutativeN/A
mult-flipN/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
*-commutativeN/A
associate-/r*N/A
metadata-evalN/A
frac-timesN/A
lower-/.f64N/A
Applied rewrites99.6%
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-/.f64N/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
associate-/r*N/A
frac-timesN/A
times-fracN/A
metadata-evalN/A
*-commutativeN/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
associate-*l*N/A
Applied rewrites99.5%
Taylor expanded in z1 around 0
lower-*.f64N/A
lower-PI.f6464.7%
Applied rewrites64.7%
Taylor expanded in z1 around 0
lower-+.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-+.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6482.8%
Applied rewrites82.8%
(FPCore (z1 z0)
:precision binary64
(let* ((t_0
(/
0.125
(+ (* z0 PI) (* z1 (+ PI (* 0.5 (/ (* z1 PI) z0))))))))
(if (<= z0 -1.7e-125)
t_0
(if (<= z0 2.1e-156)
(/ 0.125 (* z0 (* z0 (/ (* (+ z1 z0) PI) (* z0 z0)))))
t_0))))double code(double z1, double z0) {
double t_0 = 0.125 / ((z0 * ((double) M_PI)) + (z1 * (((double) M_PI) + (0.5 * ((z1 * ((double) M_PI)) / z0)))));
double tmp;
if (z0 <= -1.7e-125) {
tmp = t_0;
} else if (z0 <= 2.1e-156) {
tmp = 0.125 / (z0 * (z0 * (((z1 + z0) * ((double) M_PI)) / (z0 * z0))));
} else {
tmp = t_0;
}
return tmp;
}
public static double code(double z1, double z0) {
double t_0 = 0.125 / ((z0 * Math.PI) + (z1 * (Math.PI + (0.5 * ((z1 * Math.PI) / z0)))));
double tmp;
if (z0 <= -1.7e-125) {
tmp = t_0;
} else if (z0 <= 2.1e-156) {
tmp = 0.125 / (z0 * (z0 * (((z1 + z0) * Math.PI) / (z0 * z0))));
} else {
tmp = t_0;
}
return tmp;
}
def code(z1, z0): t_0 = 0.125 / ((z0 * math.pi) + (z1 * (math.pi + (0.5 * ((z1 * math.pi) / z0))))) tmp = 0 if z0 <= -1.7e-125: tmp = t_0 elif z0 <= 2.1e-156: tmp = 0.125 / (z0 * (z0 * (((z1 + z0) * math.pi) / (z0 * z0)))) else: tmp = t_0 return tmp
function code(z1, z0) t_0 = Float64(0.125 / Float64(Float64(z0 * pi) + Float64(z1 * Float64(pi + Float64(0.5 * Float64(Float64(z1 * pi) / z0)))))) tmp = 0.0 if (z0 <= -1.7e-125) tmp = t_0; elseif (z0 <= 2.1e-156) tmp = Float64(0.125 / Float64(z0 * Float64(z0 * Float64(Float64(Float64(z1 + z0) * pi) / Float64(z0 * z0))))); else tmp = t_0; end return tmp end
function tmp_2 = code(z1, z0) t_0 = 0.125 / ((z0 * pi) + (z1 * (pi + (0.5 * ((z1 * pi) / z0))))); tmp = 0.0; if (z0 <= -1.7e-125) tmp = t_0; elseif (z0 <= 2.1e-156) tmp = 0.125 / (z0 * (z0 * (((z1 + z0) * pi) / (z0 * z0)))); else tmp = t_0; end tmp_2 = tmp; end
code[z1_, z0_] := Block[{t$95$0 = N[(0.125 / N[(N[(z0 * Pi), $MachinePrecision] + N[(z1 * N[(Pi + N[(0.5 * N[(N[(z1 * Pi), $MachinePrecision] / z0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z0, -1.7e-125], t$95$0, If[LessEqual[z0, 2.1e-156], N[(0.125 / N[(z0 * N[(z0 * N[(N[(N[(z1 + z0), $MachinePrecision] * Pi), $MachinePrecision] / N[(z0 * z0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$0]]]
\begin{array}{l}
t_0 := \frac{0.125}{z0 \cdot \pi + z1 \cdot \left(\pi + 0.5 \cdot \frac{z1 \cdot \pi}{z0}\right)}\\
\mathbf{if}\;z0 \leq -1.7 \cdot 10^{-125}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;z0 \leq 2.1 \cdot 10^{-156}:\\
\;\;\;\;\frac{0.125}{z0 \cdot \left(z0 \cdot \frac{\left(z1 + z0\right) \cdot \pi}{z0 \cdot z0}\right)}\\
\mathbf{else}:\\
\;\;\;\;t\_0\\
\end{array}
if z0 < -1.6999999999999999e-125 or 2.1000000000000001e-156 < z0 Initial program 99.6%
Taylor expanded in z1 around 0
lower-+.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-+.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6482.9%
Applied rewrites82.9%
if -1.6999999999999999e-125 < z0 < 2.1000000000000001e-156Initial program 99.6%
Taylor expanded in z0 around inf
lower-*.f64N/A
lower-+.f64N/A
lower-PI.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6474.3%
Applied rewrites74.3%
lift-+.f64N/A
lift-/.f64N/A
add-to-fractionN/A
*-commutativeN/A
lift-*.f64N/A
div-addN/A
common-denominatorN/A
lower-/.f64N/A
lower-+.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6448.2%
Applied rewrites48.2%
lift-/.f64N/A
lift-+.f64N/A
lift-*.f64N/A
lift-*.f64N/A
distribute-rgt-outN/A
lift-*.f64N/A
lift-*.f64N/A
distribute-rgt-inN/A
lift-+.f64N/A
lift-*.f64N/A
associate-/l*N/A
lower-*.f64N/A
lower-/.f6452.6%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6452.6%
lift-+.f64N/A
+-commutativeN/A
lower-+.f6452.6%
Applied rewrites52.6%
(FPCore (z1 z0) :precision binary64 (/ 0.125 (* (+ 1.0 (/ (* (+ (* 0.5 (* PI (/ z1 z0))) PI) z1) (* z0 PI))) (* z0 PI))))
double code(double z1, double z0) {
return 0.125 / ((1.0 + ((((0.5 * (((double) M_PI) * (z1 / z0))) + ((double) M_PI)) * z1) / (z0 * ((double) M_PI)))) * (z0 * ((double) M_PI)));
}
public static double code(double z1, double z0) {
return 0.125 / ((1.0 + ((((0.5 * (Math.PI * (z1 / z0))) + Math.PI) * z1) / (z0 * Math.PI))) * (z0 * Math.PI));
}
def code(z1, z0): return 0.125 / ((1.0 + ((((0.5 * (math.pi * (z1 / z0))) + math.pi) * z1) / (z0 * math.pi))) * (z0 * math.pi))
function code(z1, z0) return Float64(0.125 / Float64(Float64(1.0 + Float64(Float64(Float64(Float64(0.5 * Float64(pi * Float64(z1 / z0))) + pi) * z1) / Float64(z0 * pi))) * Float64(z0 * pi))) end
function tmp = code(z1, z0) tmp = 0.125 / ((1.0 + ((((0.5 * (pi * (z1 / z0))) + pi) * z1) / (z0 * pi))) * (z0 * pi)); end
code[z1_, z0_] := N[(0.125 / N[(N[(1.0 + N[(N[(N[(N[(0.5 * N[(Pi * N[(z1 / z0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + Pi), $MachinePrecision] * z1), $MachinePrecision] / N[(z0 * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(z0 * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\frac{0.125}{\left(1 + \frac{\left(0.5 \cdot \left(\pi \cdot \frac{z1}{z0}\right) + \pi\right) \cdot z1}{z0 \cdot \pi}\right) \cdot \left(z0 \cdot \pi\right)}
Initial program 99.6%
Taylor expanded in z1 around 0
lower-+.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-+.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6482.9%
Applied rewrites82.9%
lift-+.f64N/A
sum-to-multN/A
lower-unsound-*.f64N/A
Applied rewrites86.7%
(FPCore (z1 z0)
:precision binary64
(let* ((t_0 (/ 0.125 (* (exp (/ z1 z0)) (* z0 PI)))))
(if (<= t_0 -4e-309)
(* (/ 0.375 (* (+ z0 z1) PI)) 0.3333333333333333)
(if (<= t_0 0.0)
(/ 0.125 (* z0 (* z0 (/ (* (+ z1 z0) PI) (* z0 z0)))))
(*
(/ 0.3333333333333333 (* (* z0 PI) (+ 1.0 (/ z1 z0))))
0.375)))))double code(double z1, double z0) {
double t_0 = 0.125 / (exp((z1 / z0)) * (z0 * ((double) M_PI)));
double tmp;
if (t_0 <= -4e-309) {
tmp = (0.375 / ((z0 + z1) * ((double) M_PI))) * 0.3333333333333333;
} else if (t_0 <= 0.0) {
tmp = 0.125 / (z0 * (z0 * (((z1 + z0) * ((double) M_PI)) / (z0 * z0))));
} else {
tmp = (0.3333333333333333 / ((z0 * ((double) M_PI)) * (1.0 + (z1 / z0)))) * 0.375;
}
return tmp;
}
public static double code(double z1, double z0) {
double t_0 = 0.125 / (Math.exp((z1 / z0)) * (z0 * Math.PI));
double tmp;
if (t_0 <= -4e-309) {
tmp = (0.375 / ((z0 + z1) * Math.PI)) * 0.3333333333333333;
} else if (t_0 <= 0.0) {
tmp = 0.125 / (z0 * (z0 * (((z1 + z0) * Math.PI) / (z0 * z0))));
} else {
tmp = (0.3333333333333333 / ((z0 * Math.PI) * (1.0 + (z1 / z0)))) * 0.375;
}
return tmp;
}
def code(z1, z0): t_0 = 0.125 / (math.exp((z1 / z0)) * (z0 * math.pi)) tmp = 0 if t_0 <= -4e-309: tmp = (0.375 / ((z0 + z1) * math.pi)) * 0.3333333333333333 elif t_0 <= 0.0: tmp = 0.125 / (z0 * (z0 * (((z1 + z0) * math.pi) / (z0 * z0)))) else: tmp = (0.3333333333333333 / ((z0 * math.pi) * (1.0 + (z1 / z0)))) * 0.375 return tmp
function code(z1, z0) t_0 = Float64(0.125 / Float64(exp(Float64(z1 / z0)) * Float64(z0 * pi))) tmp = 0.0 if (t_0 <= -4e-309) tmp = Float64(Float64(0.375 / Float64(Float64(z0 + z1) * pi)) * 0.3333333333333333); elseif (t_0 <= 0.0) tmp = Float64(0.125 / Float64(z0 * Float64(z0 * Float64(Float64(Float64(z1 + z0) * pi) / Float64(z0 * z0))))); else tmp = Float64(Float64(0.3333333333333333 / Float64(Float64(z0 * pi) * Float64(1.0 + Float64(z1 / z0)))) * 0.375); end return tmp end
function tmp_2 = code(z1, z0) t_0 = 0.125 / (exp((z1 / z0)) * (z0 * pi)); tmp = 0.0; if (t_0 <= -4e-309) tmp = (0.375 / ((z0 + z1) * pi)) * 0.3333333333333333; elseif (t_0 <= 0.0) tmp = 0.125 / (z0 * (z0 * (((z1 + z0) * pi) / (z0 * z0)))); else tmp = (0.3333333333333333 / ((z0 * pi) * (1.0 + (z1 / z0)))) * 0.375; end tmp_2 = tmp; end
code[z1_, z0_] := Block[{t$95$0 = N[(0.125 / N[(N[Exp[N[(z1 / z0), $MachinePrecision]], $MachinePrecision] * N[(z0 * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$0, -4e-309], N[(N[(0.375 / N[(N[(z0 + z1), $MachinePrecision] * Pi), $MachinePrecision]), $MachinePrecision] * 0.3333333333333333), $MachinePrecision], If[LessEqual[t$95$0, 0.0], N[(0.125 / N[(z0 * N[(z0 * N[(N[(N[(z1 + z0), $MachinePrecision] * Pi), $MachinePrecision] / N[(z0 * z0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(0.3333333333333333 / N[(N[(z0 * Pi), $MachinePrecision] * N[(1.0 + N[(z1 / z0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * 0.375), $MachinePrecision]]]]
\begin{array}{l}
t_0 := \frac{0.125}{e^{\frac{z1}{z0}} \cdot \left(z0 \cdot \pi\right)}\\
\mathbf{if}\;t\_0 \leq -4 \cdot 10^{-309}:\\
\;\;\;\;\frac{0.375}{\left(z0 + z1\right) \cdot \pi} \cdot 0.3333333333333333\\
\mathbf{elif}\;t\_0 \leq 0:\\
\;\;\;\;\frac{0.125}{z0 \cdot \left(z0 \cdot \frac{\left(z1 + z0\right) \cdot \pi}{z0 \cdot z0}\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{0.3333333333333333}{\left(z0 \cdot \pi\right) \cdot \left(1 + \frac{z1}{z0}\right)} \cdot 0.375\\
\end{array}
if (/.f64 #s(literal 1/8 binary64) (*.f64 (exp.f64 (/.f64 z1 z0)) (*.f64 z0 (PI.f64)))) < -3.9999999999999977e-309Initial program 99.6%
Taylor expanded in z0 around inf
lower-*.f64N/A
lower-+.f64N/A
lower-PI.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6474.3%
Applied rewrites74.3%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6474.3%
lift-+.f64N/A
+-commutativeN/A
lower-+.f6474.3%
lift-/.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-/l*N/A
lift-/.f64N/A
lower-*.f6474.3%
Applied rewrites74.3%
Applied rewrites66.1%
lift-/.f64N/A
lift-*.f64N/A
associate-/r*N/A
mult-flipN/A
metadata-evalN/A
lower-*.f64N/A
Applied rewrites66.2%
if -3.9999999999999977e-309 < (/.f64 #s(literal 1/8 binary64) (*.f64 (exp.f64 (/.f64 z1 z0)) (*.f64 z0 (PI.f64)))) < 0.0Initial program 99.6%
Taylor expanded in z0 around inf
lower-*.f64N/A
lower-+.f64N/A
lower-PI.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6474.3%
Applied rewrites74.3%
lift-+.f64N/A
lift-/.f64N/A
add-to-fractionN/A
*-commutativeN/A
lift-*.f64N/A
div-addN/A
common-denominatorN/A
lower-/.f64N/A
lower-+.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6448.2%
Applied rewrites48.2%
lift-/.f64N/A
lift-+.f64N/A
lift-*.f64N/A
lift-*.f64N/A
distribute-rgt-outN/A
lift-*.f64N/A
lift-*.f64N/A
distribute-rgt-inN/A
lift-+.f64N/A
lift-*.f64N/A
associate-/l*N/A
lower-*.f64N/A
lower-/.f6452.6%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6452.6%
lift-+.f64N/A
+-commutativeN/A
lower-+.f6452.6%
Applied rewrites52.6%
if 0.0 < (/.f64 #s(literal 1/8 binary64) (*.f64 (exp.f64 (/.f64 z1 z0)) (*.f64 z0 (PI.f64)))) Initial program 99.6%
lift-/.f64N/A
mult-flipN/A
*-commutativeN/A
metadata-evalN/A
associate-*r*N/A
*-commutativeN/A
mult-flipN/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
*-commutativeN/A
associate-/r*N/A
metadata-evalN/A
frac-timesN/A
lower-/.f64N/A
Applied rewrites99.6%
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-/.f64N/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
associate-/r*N/A
frac-timesN/A
times-fracN/A
metadata-evalN/A
*-commutativeN/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
associate-*l*N/A
Applied rewrites99.5%
Taylor expanded in z1 around 0
lower-+.f64N/A
lower-/.f6474.2%
Applied rewrites74.2%
(FPCore (z1 z0) :precision binary64 (/ 0.125 (* z0 (+ PI (* (/ PI z0) z1)))))
double code(double z1, double z0) {
return 0.125 / (z0 * (((double) M_PI) + ((((double) M_PI) / z0) * z1)));
}
public static double code(double z1, double z0) {
return 0.125 / (z0 * (Math.PI + ((Math.PI / z0) * z1)));
}
def code(z1, z0): return 0.125 / (z0 * (math.pi + ((math.pi / z0) * z1)))
function code(z1, z0) return Float64(0.125 / Float64(z0 * Float64(pi + Float64(Float64(pi / z0) * z1)))) end
function tmp = code(z1, z0) tmp = 0.125 / (z0 * (pi + ((pi / z0) * z1))); end
code[z1_, z0_] := N[(0.125 / N[(z0 * N[(Pi + N[(N[(Pi / z0), $MachinePrecision] * z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\frac{0.125}{z0 \cdot \left(\pi + \frac{\pi}{z0} \cdot z1\right)}
Initial program 99.6%
Taylor expanded in z0 around inf
lower-*.f64N/A
lower-+.f64N/A
lower-PI.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6474.3%
Applied rewrites74.3%
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-*.f64N/A
lower-/.f6474.3%
Applied rewrites74.3%
(FPCore (z1 z0) :precision binary64 (* (/ 0.375 (* (+ z0 z1) PI)) 0.3333333333333333))
double code(double z1, double z0) {
return (0.375 / ((z0 + z1) * ((double) M_PI))) * 0.3333333333333333;
}
public static double code(double z1, double z0) {
return (0.375 / ((z0 + z1) * Math.PI)) * 0.3333333333333333;
}
def code(z1, z0): return (0.375 / ((z0 + z1) * math.pi)) * 0.3333333333333333
function code(z1, z0) return Float64(Float64(0.375 / Float64(Float64(z0 + z1) * pi)) * 0.3333333333333333) end
function tmp = code(z1, z0) tmp = (0.375 / ((z0 + z1) * pi)) * 0.3333333333333333; end
code[z1_, z0_] := N[(N[(0.375 / N[(N[(z0 + z1), $MachinePrecision] * Pi), $MachinePrecision]), $MachinePrecision] * 0.3333333333333333), $MachinePrecision]
\frac{0.375}{\left(z0 + z1\right) \cdot \pi} \cdot 0.3333333333333333
Initial program 99.6%
Taylor expanded in z0 around inf
lower-*.f64N/A
lower-+.f64N/A
lower-PI.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6474.3%
Applied rewrites74.3%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6474.3%
lift-+.f64N/A
+-commutativeN/A
lower-+.f6474.3%
lift-/.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-/l*N/A
lift-/.f64N/A
lower-*.f6474.3%
Applied rewrites74.3%
Applied rewrites66.1%
lift-/.f64N/A
lift-*.f64N/A
associate-/r*N/A
mult-flipN/A
metadata-evalN/A
lower-*.f64N/A
Applied rewrites66.2%
(FPCore (z1 z0) :precision binary64 (* (/ 0.3333333333333333 (* (+ z0 z1) PI)) 0.375))
double code(double z1, double z0) {
return (0.3333333333333333 / ((z0 + z1) * ((double) M_PI))) * 0.375;
}
public static double code(double z1, double z0) {
return (0.3333333333333333 / ((z0 + z1) * Math.PI)) * 0.375;
}
def code(z1, z0): return (0.3333333333333333 / ((z0 + z1) * math.pi)) * 0.375
function code(z1, z0) return Float64(Float64(0.3333333333333333 / Float64(Float64(z0 + z1) * pi)) * 0.375) end
function tmp = code(z1, z0) tmp = (0.3333333333333333 / ((z0 + z1) * pi)) * 0.375; end
code[z1_, z0_] := N[(N[(0.3333333333333333 / N[(N[(z0 + z1), $MachinePrecision] * Pi), $MachinePrecision]), $MachinePrecision] * 0.375), $MachinePrecision]
\frac{0.3333333333333333}{\left(z0 + z1\right) \cdot \pi} \cdot 0.375
Initial program 99.6%
Taylor expanded in z0 around inf
lower-*.f64N/A
lower-+.f64N/A
lower-PI.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6474.3%
Applied rewrites74.3%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6474.3%
lift-+.f64N/A
+-commutativeN/A
lower-+.f6474.3%
lift-/.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-/l*N/A
lift-/.f64N/A
lower-*.f6474.3%
Applied rewrites74.3%
Applied rewrites66.1%
lift-/.f64N/A
mult-flipN/A
*-commutativeN/A
lower-*.f64N/A
Applied rewrites66.2%
(FPCore (z1 z0) :precision binary64 (/ 0.125 (* (+ z0 z1) PI)))
double code(double z1, double z0) {
return 0.125 / ((z0 + z1) * ((double) M_PI));
}
public static double code(double z1, double z0) {
return 0.125 / ((z0 + z1) * Math.PI);
}
def code(z1, z0): return 0.125 / ((z0 + z1) * math.pi)
function code(z1, z0) return Float64(0.125 / Float64(Float64(z0 + z1) * pi)) end
function tmp = code(z1, z0) tmp = 0.125 / ((z0 + z1) * pi); end
code[z1_, z0_] := N[(0.125 / N[(N[(z0 + z1), $MachinePrecision] * Pi), $MachinePrecision]), $MachinePrecision]
\frac{0.125}{\left(z0 + z1\right) \cdot \pi}
Initial program 99.6%
Taylor expanded in z0 around inf
lower-*.f64N/A
lower-+.f64N/A
lower-PI.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6474.3%
Applied rewrites74.3%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6474.3%
lift-+.f64N/A
+-commutativeN/A
lower-+.f6474.3%
lift-/.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-/l*N/A
lift-/.f64N/A
lower-*.f6474.3%
Applied rewrites74.3%
Applied rewrites66.1%
lift-/.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-/r*N/A
metadata-evalN/A
lower-/.f6466.3%
lift-PI.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-PI.f6466.3%
lift-*.f64N/A
*-lft-identity66.3%
lift-+.f64N/A
+-commutativeN/A
lower-+.f6466.3%
Applied rewrites66.3%
(FPCore (z1 z0) :precision binary64 (/ 0.125 (* z0 PI)))
double code(double z1, double z0) {
return 0.125 / (z0 * ((double) M_PI));
}
public static double code(double z1, double z0) {
return 0.125 / (z0 * Math.PI);
}
def code(z1, z0): return 0.125 / (z0 * math.pi)
function code(z1, z0) return Float64(0.125 / Float64(z0 * pi)) end
function tmp = code(z1, z0) tmp = 0.125 / (z0 * pi); end
code[z1_, z0_] := N[(0.125 / N[(z0 * Pi), $MachinePrecision]), $MachinePrecision]
\frac{0.125}{z0 \cdot \pi}
Initial program 99.6%
Taylor expanded in z1 around 0
lower-*.f64N/A
lower-PI.f6464.7%
Applied rewrites64.7%
herbie shell --seed 2025250
(FPCore (z1 z0)
:name "(/ 1/8 (* (exp (/ z1 z0)) (* z0 PI)))"
:precision binary64
(/ 0.125 (* (exp (/ z1 z0)) (* z0 PI))))