
(FPCore (z1 z0) :precision binary64 (/ 0.125 (* (* PI z1) (exp (/ z0 z1)))))
double code(double z1, double z0) {
return 0.125 / ((((double) M_PI) * z1) * exp((z0 / z1)));
}
public static double code(double z1, double z0) {
return 0.125 / ((Math.PI * z1) * Math.exp((z0 / z1)));
}
def code(z1, z0): return 0.125 / ((math.pi * z1) * math.exp((z0 / z1)))
function code(z1, z0) return Float64(0.125 / Float64(Float64(pi * z1) * exp(Float64(z0 / z1)))) end
function tmp = code(z1, z0) tmp = 0.125 / ((pi * z1) * exp((z0 / z1))); end
code[z1_, z0_] := N[(0.125 / N[(N[(Pi * z1), $MachinePrecision] * N[Exp[N[(z0 / z1), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\frac{0.125}{\left(\pi \cdot z1\right) \cdot e^{\frac{z0}{z1}}}
Herbie found 16 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (z1 z0) :precision binary64 (/ 0.125 (* (* PI z1) (exp (/ z0 z1)))))
double code(double z1, double z0) {
return 0.125 / ((((double) M_PI) * z1) * exp((z0 / z1)));
}
public static double code(double z1, double z0) {
return 0.125 / ((Math.PI * z1) * Math.exp((z0 / z1)));
}
def code(z1, z0): return 0.125 / ((math.pi * z1) * math.exp((z0 / z1)))
function code(z1, z0) return Float64(0.125 / Float64(Float64(pi * z1) * exp(Float64(z0 / z1)))) end
function tmp = code(z1, z0) tmp = 0.125 / ((pi * z1) * exp((z0 / z1))); end
code[z1_, z0_] := N[(0.125 / N[(N[(Pi * z1), $MachinePrecision] * N[Exp[N[(z0 / z1), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\frac{0.125}{\left(\pi \cdot z1\right) \cdot e^{\frac{z0}{z1}}}
(FPCore (z1 z0) :precision binary64 (/ (/ 0.125 z1) (* (exp (/ z0 z1)) PI)))
double code(double z1, double z0) {
return (0.125 / z1) / (exp((z0 / z1)) * ((double) M_PI));
}
public static double code(double z1, double z0) {
return (0.125 / z1) / (Math.exp((z0 / z1)) * Math.PI);
}
def code(z1, z0): return (0.125 / z1) / (math.exp((z0 / z1)) * math.pi)
function code(z1, z0) return Float64(Float64(0.125 / z1) / Float64(exp(Float64(z0 / z1)) * pi)) end
function tmp = code(z1, z0) tmp = (0.125 / z1) / (exp((z0 / z1)) * pi); end
code[z1_, z0_] := N[(N[(0.125 / z1), $MachinePrecision] / N[(N[Exp[N[(z0 / z1), $MachinePrecision]], $MachinePrecision] * Pi), $MachinePrecision]), $MachinePrecision]
\frac{\frac{0.125}{z1}}{e^{\frac{z0}{z1}} \cdot \pi}
Initial program 99.5%
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
associate-/r*N/A
lower-/.f64N/A
lower-/.f64N/A
*-commutativeN/A
lower-*.f6499.6%
Applied rewrites99.6%
(FPCore (z1 z0) :precision binary64 (/ (* (exp (/ (- z0) z1)) 0.125) (* z1 PI)))
double code(double z1, double z0) {
return (exp((-z0 / z1)) * 0.125) / (z1 * ((double) M_PI));
}
public static double code(double z1, double z0) {
return (Math.exp((-z0 / z1)) * 0.125) / (z1 * Math.PI);
}
def code(z1, z0): return (math.exp((-z0 / z1)) * 0.125) / (z1 * math.pi)
function code(z1, z0) return Float64(Float64(exp(Float64(Float64(-z0) / z1)) * 0.125) / Float64(z1 * pi)) end
function tmp = code(z1, z0) tmp = (exp((-z0 / z1)) * 0.125) / (z1 * pi); end
code[z1_, z0_] := N[(N[(N[Exp[N[((-z0) / z1), $MachinePrecision]], $MachinePrecision] * 0.125), $MachinePrecision] / N[(z1 * Pi), $MachinePrecision]), $MachinePrecision]
\frac{e^{\frac{-z0}{z1}} \cdot 0.125}{z1 \cdot \pi}
Initial program 99.5%
lift-/.f64N/A
mult-flipN/A
*-commutativeN/A
lift-*.f64N/A
*-commutativeN/A
associate-/r*N/A
lift-exp.f64N/A
rec-expN/A
associate-*l/N/A
lower-/.f64N/A
lower-*.f64N/A
lower-exp.f64N/A
lift-/.f64N/A
distribute-neg-fracN/A
lower-/.f64N/A
lower-neg.f6499.6%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6499.6%
Applied rewrites99.6%
(FPCore (z1 z0) :precision binary64 (/ 0.125 (* (* PI z1) (pow E (/ z0 z1)))))
double code(double z1, double z0) {
return 0.125 / ((((double) M_PI) * z1) * pow(((double) M_E), (z0 / z1)));
}
public static double code(double z1, double z0) {
return 0.125 / ((Math.PI * z1) * Math.pow(Math.E, (z0 / z1)));
}
def code(z1, z0): return 0.125 / ((math.pi * z1) * math.pow(math.e, (z0 / z1)))
function code(z1, z0) return Float64(0.125 / Float64(Float64(pi * z1) * (exp(1) ^ Float64(z0 / z1)))) end
function tmp = code(z1, z0) tmp = 0.125 / ((pi * z1) * (2.71828182845904523536 ^ (z0 / z1))); end
code[z1_, z0_] := N[(0.125 / N[(N[(Pi * z1), $MachinePrecision] * N[Power[E, N[(z0 / z1), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\frac{0.125}{\left(\pi \cdot z1\right) \cdot {e}^{\left(\frac{z0}{z1}\right)}}
Initial program 99.5%
lift-exp.f64N/A
lift-/.f64N/A
frac-2negN/A
distribute-frac-negN/A
distribute-neg-frac2N/A
lift-/.f64N/A
lift-/.f64N/A
distribute-neg-frac2N/A
distribute-neg-frac2N/A
remove-double-negN/A
mult-flipN/A
*-commutativeN/A
mult-flipN/A
associate-*l*N/A
*-commutativeN/A
mult-flipN/A
lift-/.f64N/A
exp-prodN/A
lower-pow.f64N/A
lower-exp.f6499.5%
Applied rewrites99.5%
lift-exp.f64N/A
exp-1-eN/A
lower-E.f6499.5%
Applied rewrites99.5%
(FPCore (z1 z0)
:precision binary64
(let* ((t_0 (/ 0.125 (* PI (/ (- (* z1 z1) (* z0 z0)) (- z1 z0))))))
(if (<= z1 -8.2e+160)
(/ (+ 0.125 (* -0.125 (/ z0 z1))) (* z1 PI))
(if (<= z1 -5e-39)
t_0
(if (<= z1 1.25e-155)
(/ 0.125 (* z1 (* (* (+ z0 z1) (/ PI (* z1 z1))) z1)))
(if (<= z1 2.7e+160)
t_0
(/ (/ 0.125 z1) (+ PI (/ (* z0 PI) z1)))))))))double code(double z1, double z0) {
double t_0 = 0.125 / (((double) M_PI) * (((z1 * z1) - (z0 * z0)) / (z1 - z0)));
double tmp;
if (z1 <= -8.2e+160) {
tmp = (0.125 + (-0.125 * (z0 / z1))) / (z1 * ((double) M_PI));
} else if (z1 <= -5e-39) {
tmp = t_0;
} else if (z1 <= 1.25e-155) {
tmp = 0.125 / (z1 * (((z0 + z1) * (((double) M_PI) / (z1 * z1))) * z1));
} else if (z1 <= 2.7e+160) {
tmp = t_0;
} else {
tmp = (0.125 / z1) / (((double) M_PI) + ((z0 * ((double) M_PI)) / z1));
}
return tmp;
}
public static double code(double z1, double z0) {
double t_0 = 0.125 / (Math.PI * (((z1 * z1) - (z0 * z0)) / (z1 - z0)));
double tmp;
if (z1 <= -8.2e+160) {
tmp = (0.125 + (-0.125 * (z0 / z1))) / (z1 * Math.PI);
} else if (z1 <= -5e-39) {
tmp = t_0;
} else if (z1 <= 1.25e-155) {
tmp = 0.125 / (z1 * (((z0 + z1) * (Math.PI / (z1 * z1))) * z1));
} else if (z1 <= 2.7e+160) {
tmp = t_0;
} else {
tmp = (0.125 / z1) / (Math.PI + ((z0 * Math.PI) / z1));
}
return tmp;
}
def code(z1, z0): t_0 = 0.125 / (math.pi * (((z1 * z1) - (z0 * z0)) / (z1 - z0))) tmp = 0 if z1 <= -8.2e+160: tmp = (0.125 + (-0.125 * (z0 / z1))) / (z1 * math.pi) elif z1 <= -5e-39: tmp = t_0 elif z1 <= 1.25e-155: tmp = 0.125 / (z1 * (((z0 + z1) * (math.pi / (z1 * z1))) * z1)) elif z1 <= 2.7e+160: tmp = t_0 else: tmp = (0.125 / z1) / (math.pi + ((z0 * math.pi) / z1)) return tmp
function code(z1, z0) t_0 = Float64(0.125 / Float64(pi * Float64(Float64(Float64(z1 * z1) - Float64(z0 * z0)) / Float64(z1 - z0)))) tmp = 0.0 if (z1 <= -8.2e+160) tmp = Float64(Float64(0.125 + Float64(-0.125 * Float64(z0 / z1))) / Float64(z1 * pi)); elseif (z1 <= -5e-39) tmp = t_0; elseif (z1 <= 1.25e-155) tmp = Float64(0.125 / Float64(z1 * Float64(Float64(Float64(z0 + z1) * Float64(pi / Float64(z1 * z1))) * z1))); elseif (z1 <= 2.7e+160) tmp = t_0; else tmp = Float64(Float64(0.125 / z1) / Float64(pi + Float64(Float64(z0 * pi) / z1))); end return tmp end
function tmp_2 = code(z1, z0) t_0 = 0.125 / (pi * (((z1 * z1) - (z0 * z0)) / (z1 - z0))); tmp = 0.0; if (z1 <= -8.2e+160) tmp = (0.125 + (-0.125 * (z0 / z1))) / (z1 * pi); elseif (z1 <= -5e-39) tmp = t_0; elseif (z1 <= 1.25e-155) tmp = 0.125 / (z1 * (((z0 + z1) * (pi / (z1 * z1))) * z1)); elseif (z1 <= 2.7e+160) tmp = t_0; else tmp = (0.125 / z1) / (pi + ((z0 * pi) / z1)); end tmp_2 = tmp; end
code[z1_, z0_] := Block[{t$95$0 = N[(0.125 / N[(Pi * N[(N[(N[(z1 * z1), $MachinePrecision] - N[(z0 * z0), $MachinePrecision]), $MachinePrecision] / N[(z1 - z0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z1, -8.2e+160], N[(N[(0.125 + N[(-0.125 * N[(z0 / z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(z1 * Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[z1, -5e-39], t$95$0, If[LessEqual[z1, 1.25e-155], N[(0.125 / N[(z1 * N[(N[(N[(z0 + z1), $MachinePrecision] * N[(Pi / N[(z1 * z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z1, 2.7e+160], t$95$0, N[(N[(0.125 / z1), $MachinePrecision] / N[(Pi + N[(N[(z0 * Pi), $MachinePrecision] / z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]
\begin{array}{l}
t_0 := \frac{0.125}{\pi \cdot \frac{z1 \cdot z1 - z0 \cdot z0}{z1 - z0}}\\
\mathbf{if}\;z1 \leq -8.2 \cdot 10^{+160}:\\
\;\;\;\;\frac{0.125 + -0.125 \cdot \frac{z0}{z1}}{z1 \cdot \pi}\\
\mathbf{elif}\;z1 \leq -5 \cdot 10^{-39}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;z1 \leq 1.25 \cdot 10^{-155}:\\
\;\;\;\;\frac{0.125}{z1 \cdot \left(\left(\left(z0 + z1\right) \cdot \frac{\pi}{z1 \cdot z1}\right) \cdot z1\right)}\\
\mathbf{elif}\;z1 \leq 2.7 \cdot 10^{+160}:\\
\;\;\;\;t\_0\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{0.125}{z1}}{\pi + \frac{z0 \cdot \pi}{z1}}\\
\end{array}
if z1 < -8.2e160Initial program 99.5%
lift-/.f64N/A
mult-flipN/A
*-commutativeN/A
lift-*.f64N/A
*-commutativeN/A
associate-/r*N/A
lift-exp.f64N/A
rec-expN/A
associate-*l/N/A
lower-/.f64N/A
lower-*.f64N/A
lower-exp.f64N/A
lift-/.f64N/A
distribute-neg-fracN/A
lower-/.f64N/A
lower-neg.f6499.6%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6499.6%
Applied rewrites99.6%
Taylor expanded in z1 around inf
lower-+.f64N/A
lower-*.f64N/A
lower-/.f6466.3%
Applied rewrites66.3%
if -8.2e160 < z1 < -4.9999999999999998e-39 or 1.25e-155 < z1 < 2.7e160Initial program 99.5%
Taylor expanded in z1 around inf
lower-*.f64N/A
lower-+.f64N/A
lower-PI.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6474.8%
Applied rewrites74.8%
lift-*.f64N/A
lift-+.f64N/A
distribute-rgt-inN/A
lift-/.f64N/A
mult-flipN/A
associate-*l*N/A
lft-mult-inverseN/A
*-rgt-identityN/A
*-commutativeN/A
lift-*.f64N/A
distribute-rgt-outN/A
lower-*.f64N/A
lower-+.f6467.3%
Applied rewrites67.3%
lift-+.f64N/A
flip-+N/A
lower-unsound-/.f64N/A
lower-unsound-*.f32N/A
lower-*.f32N/A
lower-unsound--.f64N/A
lower-*.f64N/A
lower-unsound-*.f64N/A
lower-unsound--.f6448.7%
Applied rewrites48.7%
if -4.9999999999999998e-39 < z1 < 1.25e-155Initial program 99.5%
Taylor expanded in z1 around inf
lower-*.f64N/A
lower-+.f64N/A
lower-PI.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6474.8%
Applied rewrites74.8%
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-*.f64N/A
lower-/.f6474.8%
Applied rewrites74.8%
lift-+.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-/.f64N/A
associate-/l*N/A
lift-*.f64N/A
add-to-fractionN/A
lift-*.f64N/A
+-commutativeN/A
div-addN/A
common-denominatorN/A
distribute-rgt-inN/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
distribute-rgt-inN/A
lift-+.f64N/A
lift-*.f64N/A
Applied rewrites52.5%
if 2.7e160 < z1 Initial program 99.5%
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
associate-/r*N/A
lower-/.f64N/A
lower-/.f64N/A
*-commutativeN/A
lower-*.f6499.6%
Applied rewrites99.6%
Taylor expanded in z1 around inf
lower-+.f64N/A
lower-PI.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6474.9%
Applied rewrites74.9%
(FPCore (z1 z0) :precision binary64 (/ 0.125 (* (- 1.0 (/ (* (- (* -0.5 (* PI (/ z0 z1))) PI) z0) (* PI z1))) (* PI z1))))
double code(double z1, double z0) {
return 0.125 / ((1.0 - ((((-0.5 * (((double) M_PI) * (z0 / z1))) - ((double) M_PI)) * z0) / (((double) M_PI) * z1))) * (((double) M_PI) * z1));
}
public static double code(double z1, double z0) {
return 0.125 / ((1.0 - ((((-0.5 * (Math.PI * (z0 / z1))) - Math.PI) * z0) / (Math.PI * z1))) * (Math.PI * z1));
}
def code(z1, z0): return 0.125 / ((1.0 - ((((-0.5 * (math.pi * (z0 / z1))) - math.pi) * z0) / (math.pi * z1))) * (math.pi * z1))
function code(z1, z0) return Float64(0.125 / Float64(Float64(1.0 - Float64(Float64(Float64(Float64(-0.5 * Float64(pi * Float64(z0 / z1))) - pi) * z0) / Float64(pi * z1))) * Float64(pi * z1))) end
function tmp = code(z1, z0) tmp = 0.125 / ((1.0 - ((((-0.5 * (pi * (z0 / z1))) - pi) * z0) / (pi * z1))) * (pi * z1)); end
code[z1_, z0_] := N[(0.125 / N[(N[(1.0 - N[(N[(N[(N[(-0.5 * N[(Pi * N[(z0 / z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - Pi), $MachinePrecision] * z0), $MachinePrecision] / N[(Pi * z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(Pi * z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\frac{0.125}{\left(1 - \frac{\left(-0.5 \cdot \left(\pi \cdot \frac{z0}{z1}\right) - \pi\right) \cdot z0}{\pi \cdot z1}\right) \cdot \left(\pi \cdot z1\right)}
Initial program 99.5%
Taylor expanded in z0 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-PI.f64N/A
lower-*.f64N/A
lower-PI.f6483.3%
Applied rewrites83.3%
lift-+.f64N/A
+-commutativeN/A
add-flipN/A
sub-to-multN/A
lower-unsound-*.f64N/A
Applied rewrites87.0%
(FPCore (z1 z0) :precision binary64 (/ 0.125 (+ (* z0 (+ PI (* 0.5 (/ (* z0 PI) z1)))) (* z1 PI))))
double code(double z1, double z0) {
return 0.125 / ((z0 * (((double) M_PI) + (0.5 * ((z0 * ((double) M_PI)) / z1)))) + (z1 * ((double) M_PI)));
}
public static double code(double z1, double z0) {
return 0.125 / ((z0 * (Math.PI + (0.5 * ((z0 * Math.PI) / z1)))) + (z1 * Math.PI));
}
def code(z1, z0): return 0.125 / ((z0 * (math.pi + (0.5 * ((z0 * math.pi) / z1)))) + (z1 * math.pi))
function code(z1, z0) return Float64(0.125 / Float64(Float64(z0 * Float64(pi + Float64(0.5 * Float64(Float64(z0 * pi) / z1)))) + Float64(z1 * pi))) end
function tmp = code(z1, z0) tmp = 0.125 / ((z0 * (pi + (0.5 * ((z0 * pi) / z1)))) + (z1 * pi)); end
code[z1_, z0_] := N[(0.125 / N[(N[(z0 * N[(Pi + N[(0.5 * N[(N[(z0 * Pi), $MachinePrecision] / z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(z1 * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\frac{0.125}{z0 \cdot \left(\pi + 0.5 \cdot \frac{z0 \cdot \pi}{z1}\right) + z1 \cdot \pi}
Initial program 99.5%
Taylor expanded in z0 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-PI.f64N/A
lower-*.f64N/A
lower-PI.f6483.3%
Applied rewrites83.3%
(FPCore (z1 z0)
:precision binary64
(let* ((t_0 (* (* PI z1) (exp (/ z0 z1)))))
(if (<= t_0 (- INFINITY))
(/ 0.125 (- (* PI z0) (* (* -0.5 (* PI (/ z0 z1))) z0)))
(if (<= t_0 4e+306)
(/ (+ 0.125 (* -0.125 (/ z0 z1))) (* z1 PI))
(/ 0.125 (* z1 (/ (* z1 (* PI z0)) (* z1 z1))))))))double code(double z1, double z0) {
double t_0 = (((double) M_PI) * z1) * exp((z0 / z1));
double tmp;
if (t_0 <= -((double) INFINITY)) {
tmp = 0.125 / ((((double) M_PI) * z0) - ((-0.5 * (((double) M_PI) * (z0 / z1))) * z0));
} else if (t_0 <= 4e+306) {
tmp = (0.125 + (-0.125 * (z0 / z1))) / (z1 * ((double) M_PI));
} else {
tmp = 0.125 / (z1 * ((z1 * (((double) M_PI) * z0)) / (z1 * z1)));
}
return tmp;
}
public static double code(double z1, double z0) {
double t_0 = (Math.PI * z1) * Math.exp((z0 / z1));
double tmp;
if (t_0 <= -Double.POSITIVE_INFINITY) {
tmp = 0.125 / ((Math.PI * z0) - ((-0.5 * (Math.PI * (z0 / z1))) * z0));
} else if (t_0 <= 4e+306) {
tmp = (0.125 + (-0.125 * (z0 / z1))) / (z1 * Math.PI);
} else {
tmp = 0.125 / (z1 * ((z1 * (Math.PI * z0)) / (z1 * z1)));
}
return tmp;
}
def code(z1, z0): t_0 = (math.pi * z1) * math.exp((z0 / z1)) tmp = 0 if t_0 <= -math.inf: tmp = 0.125 / ((math.pi * z0) - ((-0.5 * (math.pi * (z0 / z1))) * z0)) elif t_0 <= 4e+306: tmp = (0.125 + (-0.125 * (z0 / z1))) / (z1 * math.pi) else: tmp = 0.125 / (z1 * ((z1 * (math.pi * z0)) / (z1 * z1))) return tmp
function code(z1, z0) t_0 = Float64(Float64(pi * z1) * exp(Float64(z0 / z1))) tmp = 0.0 if (t_0 <= Float64(-Inf)) tmp = Float64(0.125 / Float64(Float64(pi * z0) - Float64(Float64(-0.5 * Float64(pi * Float64(z0 / z1))) * z0))); elseif (t_0 <= 4e+306) tmp = Float64(Float64(0.125 + Float64(-0.125 * Float64(z0 / z1))) / Float64(z1 * pi)); else tmp = Float64(0.125 / Float64(z1 * Float64(Float64(z1 * Float64(pi * z0)) / Float64(z1 * z1)))); end return tmp end
function tmp_2 = code(z1, z0) t_0 = (pi * z1) * exp((z0 / z1)); tmp = 0.0; if (t_0 <= -Inf) tmp = 0.125 / ((pi * z0) - ((-0.5 * (pi * (z0 / z1))) * z0)); elseif (t_0 <= 4e+306) tmp = (0.125 + (-0.125 * (z0 / z1))) / (z1 * pi); else tmp = 0.125 / (z1 * ((z1 * (pi * z0)) / (z1 * z1))); end tmp_2 = tmp; end
code[z1_, z0_] := Block[{t$95$0 = N[(N[(Pi * z1), $MachinePrecision] * N[Exp[N[(z0 / z1), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$0, (-Infinity)], N[(0.125 / N[(N[(Pi * z0), $MachinePrecision] - N[(N[(-0.5 * N[(Pi * N[(z0 / z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * z0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$0, 4e+306], N[(N[(0.125 + N[(-0.125 * N[(z0 / z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(z1 * Pi), $MachinePrecision]), $MachinePrecision], N[(0.125 / N[(z1 * N[(N[(z1 * N[(Pi * z0), $MachinePrecision]), $MachinePrecision] / N[(z1 * z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
t_0 := \left(\pi \cdot z1\right) \cdot e^{\frac{z0}{z1}}\\
\mathbf{if}\;t\_0 \leq -\infty:\\
\;\;\;\;\frac{0.125}{\pi \cdot z0 - \left(-0.5 \cdot \left(\pi \cdot \frac{z0}{z1}\right)\right) \cdot z0}\\
\mathbf{elif}\;t\_0 \leq 4 \cdot 10^{+306}:\\
\;\;\;\;\frac{0.125 + -0.125 \cdot \frac{z0}{z1}}{z1 \cdot \pi}\\
\mathbf{else}:\\
\;\;\;\;\frac{0.125}{z1 \cdot \frac{z1 \cdot \left(\pi \cdot z0\right)}{z1 \cdot z1}}\\
\end{array}
if (*.f64 (*.f64 (PI.f64) z1) (exp.f64 (/.f64 z0 z1))) < -inf.0Initial program 99.5%
Taylor expanded in z0 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-PI.f64N/A
lower-*.f64N/A
lower-PI.f6483.3%
Applied rewrites83.3%
lift-+.f64N/A
+-commutativeN/A
lift-*.f64N/A
lift-+.f64N/A
distribute-lft-inN/A
lift-*.f64N/A
associate-+r+N/A
lift-*.f64N/A
*-commutativeN/A
add-flipN/A
lower--.f64N/A
Applied rewrites83.3%
Taylor expanded in z1 around 0
Applied rewrites19.7%
if -inf.0 < (*.f64 (*.f64 (PI.f64) z1) (exp.f64 (/.f64 z0 z1))) < 4.0000000000000001e306Initial program 99.5%
lift-/.f64N/A
mult-flipN/A
*-commutativeN/A
lift-*.f64N/A
*-commutativeN/A
associate-/r*N/A
lift-exp.f64N/A
rec-expN/A
associate-*l/N/A
lower-/.f64N/A
lower-*.f64N/A
lower-exp.f64N/A
lift-/.f64N/A
distribute-neg-fracN/A
lower-/.f64N/A
lower-neg.f6499.6%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6499.6%
Applied rewrites99.6%
Taylor expanded in z1 around inf
lower-+.f64N/A
lower-*.f64N/A
lower-/.f6466.3%
Applied rewrites66.3%
if 4.0000000000000001e306 < (*.f64 (*.f64 (PI.f64) z1) (exp.f64 (/.f64 z0 z1))) Initial program 99.5%
Taylor expanded in z1 around inf
lower-*.f64N/A
lower-+.f64N/A
lower-PI.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6474.8%
Applied rewrites74.8%
lift-+.f64N/A
lift-/.f64N/A
add-to-fractionN/A
*-commutativeN/A
lift-*.f64N/A
div-addN/A
common-denominatorN/A
distribute-rgt-inN/A
lift-*.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites48.1%
Taylor expanded in z1 around 0
Applied rewrites16.0%
(FPCore (z1 z0)
:precision binary64
(let* ((t_0 (/ 0.125 (* (* PI z1) (exp (/ z0 z1))))))
(if (<= t_0 -4e-308)
(/ (+ 0.125 (* -0.125 (/ z0 z1))) (* z1 PI))
(if (<= t_0 0.0)
(/ 0.125 (* z1 (/ (* z1 (* PI z0)) (* z1 z1))))
(/ (/ 0.125 z1) (+ PI (/ (* z0 PI) z1)))))))double code(double z1, double z0) {
double t_0 = 0.125 / ((((double) M_PI) * z1) * exp((z0 / z1)));
double tmp;
if (t_0 <= -4e-308) {
tmp = (0.125 + (-0.125 * (z0 / z1))) / (z1 * ((double) M_PI));
} else if (t_0 <= 0.0) {
tmp = 0.125 / (z1 * ((z1 * (((double) M_PI) * z0)) / (z1 * z1)));
} else {
tmp = (0.125 / z1) / (((double) M_PI) + ((z0 * ((double) M_PI)) / z1));
}
return tmp;
}
public static double code(double z1, double z0) {
double t_0 = 0.125 / ((Math.PI * z1) * Math.exp((z0 / z1)));
double tmp;
if (t_0 <= -4e-308) {
tmp = (0.125 + (-0.125 * (z0 / z1))) / (z1 * Math.PI);
} else if (t_0 <= 0.0) {
tmp = 0.125 / (z1 * ((z1 * (Math.PI * z0)) / (z1 * z1)));
} else {
tmp = (0.125 / z1) / (Math.PI + ((z0 * Math.PI) / z1));
}
return tmp;
}
def code(z1, z0): t_0 = 0.125 / ((math.pi * z1) * math.exp((z0 / z1))) tmp = 0 if t_0 <= -4e-308: tmp = (0.125 + (-0.125 * (z0 / z1))) / (z1 * math.pi) elif t_0 <= 0.0: tmp = 0.125 / (z1 * ((z1 * (math.pi * z0)) / (z1 * z1))) else: tmp = (0.125 / z1) / (math.pi + ((z0 * math.pi) / z1)) return tmp
function code(z1, z0) t_0 = Float64(0.125 / Float64(Float64(pi * z1) * exp(Float64(z0 / z1)))) tmp = 0.0 if (t_0 <= -4e-308) tmp = Float64(Float64(0.125 + Float64(-0.125 * Float64(z0 / z1))) / Float64(z1 * pi)); elseif (t_0 <= 0.0) tmp = Float64(0.125 / Float64(z1 * Float64(Float64(z1 * Float64(pi * z0)) / Float64(z1 * z1)))); else tmp = Float64(Float64(0.125 / z1) / Float64(pi + Float64(Float64(z0 * pi) / z1))); end return tmp end
function tmp_2 = code(z1, z0) t_0 = 0.125 / ((pi * z1) * exp((z0 / z1))); tmp = 0.0; if (t_0 <= -4e-308) tmp = (0.125 + (-0.125 * (z0 / z1))) / (z1 * pi); elseif (t_0 <= 0.0) tmp = 0.125 / (z1 * ((z1 * (pi * z0)) / (z1 * z1))); else tmp = (0.125 / z1) / (pi + ((z0 * pi) / z1)); end tmp_2 = tmp; end
code[z1_, z0_] := Block[{t$95$0 = N[(0.125 / N[(N[(Pi * z1), $MachinePrecision] * N[Exp[N[(z0 / z1), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$0, -4e-308], N[(N[(0.125 + N[(-0.125 * N[(z0 / z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(z1 * Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$0, 0.0], N[(0.125 / N[(z1 * N[(N[(z1 * N[(Pi * z0), $MachinePrecision]), $MachinePrecision] / N[(z1 * z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(0.125 / z1), $MachinePrecision] / N[(Pi + N[(N[(z0 * Pi), $MachinePrecision] / z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
t_0 := \frac{0.125}{\left(\pi \cdot z1\right) \cdot e^{\frac{z0}{z1}}}\\
\mathbf{if}\;t\_0 \leq -4 \cdot 10^{-308}:\\
\;\;\;\;\frac{0.125 + -0.125 \cdot \frac{z0}{z1}}{z1 \cdot \pi}\\
\mathbf{elif}\;t\_0 \leq 0:\\
\;\;\;\;\frac{0.125}{z1 \cdot \frac{z1 \cdot \left(\pi \cdot z0\right)}{z1 \cdot z1}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{0.125}{z1}}{\pi + \frac{z0 \cdot \pi}{z1}}\\
\end{array}
if (/.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 (PI.f64) z1) (exp.f64 (/.f64 z0 z1)))) < -4.0000000000000001e-308Initial program 99.5%
lift-/.f64N/A
mult-flipN/A
*-commutativeN/A
lift-*.f64N/A
*-commutativeN/A
associate-/r*N/A
lift-exp.f64N/A
rec-expN/A
associate-*l/N/A
lower-/.f64N/A
lower-*.f64N/A
lower-exp.f64N/A
lift-/.f64N/A
distribute-neg-fracN/A
lower-/.f64N/A
lower-neg.f6499.6%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6499.6%
Applied rewrites99.6%
Taylor expanded in z1 around inf
lower-+.f64N/A
lower-*.f64N/A
lower-/.f6466.3%
Applied rewrites66.3%
if -4.0000000000000001e-308 < (/.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 (PI.f64) z1) (exp.f64 (/.f64 z0 z1)))) < 0.0Initial program 99.5%
Taylor expanded in z1 around inf
lower-*.f64N/A
lower-+.f64N/A
lower-PI.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6474.8%
Applied rewrites74.8%
lift-+.f64N/A
lift-/.f64N/A
add-to-fractionN/A
*-commutativeN/A
lift-*.f64N/A
div-addN/A
common-denominatorN/A
distribute-rgt-inN/A
lift-*.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites48.1%
Taylor expanded in z1 around 0
Applied rewrites16.0%
if 0.0 < (/.f64 #s(literal 1/8 binary64) (*.f64 (*.f64 (PI.f64) z1) (exp.f64 (/.f64 z0 z1)))) Initial program 99.5%
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
associate-/r*N/A
lower-/.f64N/A
lower-/.f64N/A
*-commutativeN/A
lower-*.f6499.6%
Applied rewrites99.6%
Taylor expanded in z1 around inf
lower-+.f64N/A
lower-PI.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6474.9%
Applied rewrites74.9%
(FPCore (z1 z0)
:precision binary64
(let* ((t_0 (/ 0.125 (+ (* z1 PI) (/ (* (* z1 PI) z0) z1))))
(t_1 (/ (/ 0.125 z1) (+ PI (/ (* z0 PI) z1)))))
(if (<= z1 -3.6e+204)
(/ (+ 0.125 (* -0.125 (/ z0 z1))) (* z1 PI))
(if (<= z1 -1e-67)
t_0
(if (<= z1 1.5e+43) t_1 (if (<= z1 4.6e+164) t_0 t_1))))))double code(double z1, double z0) {
double t_0 = 0.125 / ((z1 * ((double) M_PI)) + (((z1 * ((double) M_PI)) * z0) / z1));
double t_1 = (0.125 / z1) / (((double) M_PI) + ((z0 * ((double) M_PI)) / z1));
double tmp;
if (z1 <= -3.6e+204) {
tmp = (0.125 + (-0.125 * (z0 / z1))) / (z1 * ((double) M_PI));
} else if (z1 <= -1e-67) {
tmp = t_0;
} else if (z1 <= 1.5e+43) {
tmp = t_1;
} else if (z1 <= 4.6e+164) {
tmp = t_0;
} else {
tmp = t_1;
}
return tmp;
}
public static double code(double z1, double z0) {
double t_0 = 0.125 / ((z1 * Math.PI) + (((z1 * Math.PI) * z0) / z1));
double t_1 = (0.125 / z1) / (Math.PI + ((z0 * Math.PI) / z1));
double tmp;
if (z1 <= -3.6e+204) {
tmp = (0.125 + (-0.125 * (z0 / z1))) / (z1 * Math.PI);
} else if (z1 <= -1e-67) {
tmp = t_0;
} else if (z1 <= 1.5e+43) {
tmp = t_1;
} else if (z1 <= 4.6e+164) {
tmp = t_0;
} else {
tmp = t_1;
}
return tmp;
}
def code(z1, z0): t_0 = 0.125 / ((z1 * math.pi) + (((z1 * math.pi) * z0) / z1)) t_1 = (0.125 / z1) / (math.pi + ((z0 * math.pi) / z1)) tmp = 0 if z1 <= -3.6e+204: tmp = (0.125 + (-0.125 * (z0 / z1))) / (z1 * math.pi) elif z1 <= -1e-67: tmp = t_0 elif z1 <= 1.5e+43: tmp = t_1 elif z1 <= 4.6e+164: tmp = t_0 else: tmp = t_1 return tmp
function code(z1, z0) t_0 = Float64(0.125 / Float64(Float64(z1 * pi) + Float64(Float64(Float64(z1 * pi) * z0) / z1))) t_1 = Float64(Float64(0.125 / z1) / Float64(pi + Float64(Float64(z0 * pi) / z1))) tmp = 0.0 if (z1 <= -3.6e+204) tmp = Float64(Float64(0.125 + Float64(-0.125 * Float64(z0 / z1))) / Float64(z1 * pi)); elseif (z1 <= -1e-67) tmp = t_0; elseif (z1 <= 1.5e+43) tmp = t_1; elseif (z1 <= 4.6e+164) tmp = t_0; else tmp = t_1; end return tmp end
function tmp_2 = code(z1, z0) t_0 = 0.125 / ((z1 * pi) + (((z1 * pi) * z0) / z1)); t_1 = (0.125 / z1) / (pi + ((z0 * pi) / z1)); tmp = 0.0; if (z1 <= -3.6e+204) tmp = (0.125 + (-0.125 * (z0 / z1))) / (z1 * pi); elseif (z1 <= -1e-67) tmp = t_0; elseif (z1 <= 1.5e+43) tmp = t_1; elseif (z1 <= 4.6e+164) tmp = t_0; else tmp = t_1; end tmp_2 = tmp; end
code[z1_, z0_] := Block[{t$95$0 = N[(0.125 / N[(N[(z1 * Pi), $MachinePrecision] + N[(N[(N[(z1 * Pi), $MachinePrecision] * z0), $MachinePrecision] / z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(0.125 / z1), $MachinePrecision] / N[(Pi + N[(N[(z0 * Pi), $MachinePrecision] / z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z1, -3.6e+204], N[(N[(0.125 + N[(-0.125 * N[(z0 / z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(z1 * Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[z1, -1e-67], t$95$0, If[LessEqual[z1, 1.5e+43], t$95$1, If[LessEqual[z1, 4.6e+164], t$95$0, t$95$1]]]]]]
\begin{array}{l}
t_0 := \frac{0.125}{z1 \cdot \pi + \frac{\left(z1 \cdot \pi\right) \cdot z0}{z1}}\\
t_1 := \frac{\frac{0.125}{z1}}{\pi + \frac{z0 \cdot \pi}{z1}}\\
\mathbf{if}\;z1 \leq -3.6 \cdot 10^{+204}:\\
\;\;\;\;\frac{0.125 + -0.125 \cdot \frac{z0}{z1}}{z1 \cdot \pi}\\
\mathbf{elif}\;z1 \leq -1 \cdot 10^{-67}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;z1 \leq 1.5 \cdot 10^{+43}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;z1 \leq 4.6 \cdot 10^{+164}:\\
\;\;\;\;t\_0\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
if z1 < -3.6000000000000002e204Initial program 99.5%
lift-/.f64N/A
mult-flipN/A
*-commutativeN/A
lift-*.f64N/A
*-commutativeN/A
associate-/r*N/A
lift-exp.f64N/A
rec-expN/A
associate-*l/N/A
lower-/.f64N/A
lower-*.f64N/A
lower-exp.f64N/A
lift-/.f64N/A
distribute-neg-fracN/A
lower-/.f64N/A
lower-neg.f6499.6%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6499.6%
Applied rewrites99.6%
Taylor expanded in z1 around inf
lower-+.f64N/A
lower-*.f64N/A
lower-/.f6466.3%
Applied rewrites66.3%
if -3.6000000000000002e204 < z1 < -9.9999999999999994e-68 or 1.5000000000000001e43 < z1 < 4.5999999999999999e164Initial program 99.5%
Taylor expanded in z1 around inf
lower-*.f64N/A
lower-+.f64N/A
lower-PI.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6474.8%
Applied rewrites74.8%
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-*.f64N/A
lower-/.f6474.8%
Applied rewrites74.8%
lift-*.f64N/A
lift-+.f64N/A
distribute-lft-inN/A
lift-*.f64N/A
*-commutativeN/A
lift-/.f64N/A
associate-/l*N/A
lift-PI.f64N/A
distribute-lft-inN/A
lift-PI.f64N/A
lift-*.f64N/A
add-to-fractionN/A
*-commutativeN/A
lift-*.f64N/A
distribute-rgt-outN/A
+-commutativeN/A
lift-+.f64N/A
lift-*.f64N/A
Applied rewrites63.5%
if -9.9999999999999994e-68 < z1 < 1.5000000000000001e43 or 4.5999999999999999e164 < z1 Initial program 99.5%
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
associate-/r*N/A
lower-/.f64N/A
lower-/.f64N/A
*-commutativeN/A
lower-*.f6499.6%
Applied rewrites99.6%
Taylor expanded in z1 around inf
lower-+.f64N/A
lower-PI.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6474.9%
Applied rewrites74.9%
(FPCore (z1 z0)
:precision binary64
(let* ((t_0 (/ 0.125 (+ (* z1 PI) (/ (* (* z1 PI) z0) z1)))))
(if (<= z1 -3.6e+204)
(/ (+ 0.125 (* -0.125 (/ z0 z1))) (* z1 PI))
(if (<= z1 -5e+28)
t_0
(if (<= z1 1.5e+43)
(/ 0.125 (* z1 (+ PI (* (/ PI z1) z0))))
(if (<= z1 4.6e+164) t_0 (/ (/ 0.125 z1) PI)))))))double code(double z1, double z0) {
double t_0 = 0.125 / ((z1 * ((double) M_PI)) + (((z1 * ((double) M_PI)) * z0) / z1));
double tmp;
if (z1 <= -3.6e+204) {
tmp = (0.125 + (-0.125 * (z0 / z1))) / (z1 * ((double) M_PI));
} else if (z1 <= -5e+28) {
tmp = t_0;
} else if (z1 <= 1.5e+43) {
tmp = 0.125 / (z1 * (((double) M_PI) + ((((double) M_PI) / z1) * z0)));
} else if (z1 <= 4.6e+164) {
tmp = t_0;
} else {
tmp = (0.125 / z1) / ((double) M_PI);
}
return tmp;
}
public static double code(double z1, double z0) {
double t_0 = 0.125 / ((z1 * Math.PI) + (((z1 * Math.PI) * z0) / z1));
double tmp;
if (z1 <= -3.6e+204) {
tmp = (0.125 + (-0.125 * (z0 / z1))) / (z1 * Math.PI);
} else if (z1 <= -5e+28) {
tmp = t_0;
} else if (z1 <= 1.5e+43) {
tmp = 0.125 / (z1 * (Math.PI + ((Math.PI / z1) * z0)));
} else if (z1 <= 4.6e+164) {
tmp = t_0;
} else {
tmp = (0.125 / z1) / Math.PI;
}
return tmp;
}
def code(z1, z0): t_0 = 0.125 / ((z1 * math.pi) + (((z1 * math.pi) * z0) / z1)) tmp = 0 if z1 <= -3.6e+204: tmp = (0.125 + (-0.125 * (z0 / z1))) / (z1 * math.pi) elif z1 <= -5e+28: tmp = t_0 elif z1 <= 1.5e+43: tmp = 0.125 / (z1 * (math.pi + ((math.pi / z1) * z0))) elif z1 <= 4.6e+164: tmp = t_0 else: tmp = (0.125 / z1) / math.pi return tmp
function code(z1, z0) t_0 = Float64(0.125 / Float64(Float64(z1 * pi) + Float64(Float64(Float64(z1 * pi) * z0) / z1))) tmp = 0.0 if (z1 <= -3.6e+204) tmp = Float64(Float64(0.125 + Float64(-0.125 * Float64(z0 / z1))) / Float64(z1 * pi)); elseif (z1 <= -5e+28) tmp = t_0; elseif (z1 <= 1.5e+43) tmp = Float64(0.125 / Float64(z1 * Float64(pi + Float64(Float64(pi / z1) * z0)))); elseif (z1 <= 4.6e+164) tmp = t_0; else tmp = Float64(Float64(0.125 / z1) / pi); end return tmp end
function tmp_2 = code(z1, z0) t_0 = 0.125 / ((z1 * pi) + (((z1 * pi) * z0) / z1)); tmp = 0.0; if (z1 <= -3.6e+204) tmp = (0.125 + (-0.125 * (z0 / z1))) / (z1 * pi); elseif (z1 <= -5e+28) tmp = t_0; elseif (z1 <= 1.5e+43) tmp = 0.125 / (z1 * (pi + ((pi / z1) * z0))); elseif (z1 <= 4.6e+164) tmp = t_0; else tmp = (0.125 / z1) / pi; end tmp_2 = tmp; end
code[z1_, z0_] := Block[{t$95$0 = N[(0.125 / N[(N[(z1 * Pi), $MachinePrecision] + N[(N[(N[(z1 * Pi), $MachinePrecision] * z0), $MachinePrecision] / z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z1, -3.6e+204], N[(N[(0.125 + N[(-0.125 * N[(z0 / z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(z1 * Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[z1, -5e+28], t$95$0, If[LessEqual[z1, 1.5e+43], N[(0.125 / N[(z1 * N[(Pi + N[(N[(Pi / z1), $MachinePrecision] * z0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z1, 4.6e+164], t$95$0, N[(N[(0.125 / z1), $MachinePrecision] / Pi), $MachinePrecision]]]]]]
\begin{array}{l}
t_0 := \frac{0.125}{z1 \cdot \pi + \frac{\left(z1 \cdot \pi\right) \cdot z0}{z1}}\\
\mathbf{if}\;z1 \leq -3.6 \cdot 10^{+204}:\\
\;\;\;\;\frac{0.125 + -0.125 \cdot \frac{z0}{z1}}{z1 \cdot \pi}\\
\mathbf{elif}\;z1 \leq -5 \cdot 10^{+28}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;z1 \leq 1.5 \cdot 10^{+43}:\\
\;\;\;\;\frac{0.125}{z1 \cdot \left(\pi + \frac{\pi}{z1} \cdot z0\right)}\\
\mathbf{elif}\;z1 \leq 4.6 \cdot 10^{+164}:\\
\;\;\;\;t\_0\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{0.125}{z1}}{\pi}\\
\end{array}
if z1 < -3.6000000000000002e204Initial program 99.5%
lift-/.f64N/A
mult-flipN/A
*-commutativeN/A
lift-*.f64N/A
*-commutativeN/A
associate-/r*N/A
lift-exp.f64N/A
rec-expN/A
associate-*l/N/A
lower-/.f64N/A
lower-*.f64N/A
lower-exp.f64N/A
lift-/.f64N/A
distribute-neg-fracN/A
lower-/.f64N/A
lower-neg.f6499.6%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6499.6%
Applied rewrites99.6%
Taylor expanded in z1 around inf
lower-+.f64N/A
lower-*.f64N/A
lower-/.f6466.3%
Applied rewrites66.3%
if -3.6000000000000002e204 < z1 < -4.9999999999999996e28 or 1.5000000000000001e43 < z1 < 4.5999999999999999e164Initial program 99.5%
Taylor expanded in z1 around inf
lower-*.f64N/A
lower-+.f64N/A
lower-PI.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6474.8%
Applied rewrites74.8%
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-*.f64N/A
lower-/.f6474.8%
Applied rewrites74.8%
lift-*.f64N/A
lift-+.f64N/A
distribute-lft-inN/A
lift-*.f64N/A
*-commutativeN/A
lift-/.f64N/A
associate-/l*N/A
lift-PI.f64N/A
distribute-lft-inN/A
lift-PI.f64N/A
lift-*.f64N/A
add-to-fractionN/A
*-commutativeN/A
lift-*.f64N/A
distribute-rgt-outN/A
+-commutativeN/A
lift-+.f64N/A
lift-*.f64N/A
Applied rewrites63.5%
if -4.9999999999999996e28 < z1 < 1.5000000000000001e43Initial program 99.5%
Taylor expanded in z1 around inf
lower-*.f64N/A
lower-+.f64N/A
lower-PI.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6474.8%
Applied rewrites74.8%
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-*.f64N/A
lower-/.f6474.8%
Applied rewrites74.8%
if 4.5999999999999999e164 < z1 Initial program 99.5%
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
associate-/r*N/A
lower-/.f64N/A
lower-/.f64N/A
*-commutativeN/A
lower-*.f6499.6%
Applied rewrites99.6%
Taylor expanded in z1 around inf
lower-PI.f6465.9%
Applied rewrites65.9%
(FPCore (z1 z0)
:precision binary64
(if (<= z1 5e+33)
(/ 0.125 (* z1 (+ PI (* (/ PI z1) z0))))
(if (<= z1 4.6e+164)
(/ 0.125 (/ (* (* PI (+ z0 z1)) z1) z1))
(/ (/ 0.125 z1) PI))))double code(double z1, double z0) {
double tmp;
if (z1 <= 5e+33) {
tmp = 0.125 / (z1 * (((double) M_PI) + ((((double) M_PI) / z1) * z0)));
} else if (z1 <= 4.6e+164) {
tmp = 0.125 / (((((double) M_PI) * (z0 + z1)) * z1) / z1);
} else {
tmp = (0.125 / z1) / ((double) M_PI);
}
return tmp;
}
public static double code(double z1, double z0) {
double tmp;
if (z1 <= 5e+33) {
tmp = 0.125 / (z1 * (Math.PI + ((Math.PI / z1) * z0)));
} else if (z1 <= 4.6e+164) {
tmp = 0.125 / (((Math.PI * (z0 + z1)) * z1) / z1);
} else {
tmp = (0.125 / z1) / Math.PI;
}
return tmp;
}
def code(z1, z0): tmp = 0 if z1 <= 5e+33: tmp = 0.125 / (z1 * (math.pi + ((math.pi / z1) * z0))) elif z1 <= 4.6e+164: tmp = 0.125 / (((math.pi * (z0 + z1)) * z1) / z1) else: tmp = (0.125 / z1) / math.pi return tmp
function code(z1, z0) tmp = 0.0 if (z1 <= 5e+33) tmp = Float64(0.125 / Float64(z1 * Float64(pi + Float64(Float64(pi / z1) * z0)))); elseif (z1 <= 4.6e+164) tmp = Float64(0.125 / Float64(Float64(Float64(pi * Float64(z0 + z1)) * z1) / z1)); else tmp = Float64(Float64(0.125 / z1) / pi); end return tmp end
function tmp_2 = code(z1, z0) tmp = 0.0; if (z1 <= 5e+33) tmp = 0.125 / (z1 * (pi + ((pi / z1) * z0))); elseif (z1 <= 4.6e+164) tmp = 0.125 / (((pi * (z0 + z1)) * z1) / z1); else tmp = (0.125 / z1) / pi; end tmp_2 = tmp; end
code[z1_, z0_] := If[LessEqual[z1, 5e+33], N[(0.125 / N[(z1 * N[(Pi + N[(N[(Pi / z1), $MachinePrecision] * z0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z1, 4.6e+164], N[(0.125 / N[(N[(N[(Pi * N[(z0 + z1), $MachinePrecision]), $MachinePrecision] * z1), $MachinePrecision] / z1), $MachinePrecision]), $MachinePrecision], N[(N[(0.125 / z1), $MachinePrecision] / Pi), $MachinePrecision]]]
\begin{array}{l}
\mathbf{if}\;z1 \leq 5 \cdot 10^{+33}:\\
\;\;\;\;\frac{0.125}{z1 \cdot \left(\pi + \frac{\pi}{z1} \cdot z0\right)}\\
\mathbf{elif}\;z1 \leq 4.6 \cdot 10^{+164}:\\
\;\;\;\;\frac{0.125}{\frac{\left(\pi \cdot \left(z0 + z1\right)\right) \cdot z1}{z1}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{0.125}{z1}}{\pi}\\
\end{array}
if z1 < 4.9999999999999997e33Initial program 99.5%
Taylor expanded in z1 around inf
lower-*.f64N/A
lower-+.f64N/A
lower-PI.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6474.8%
Applied rewrites74.8%
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-*.f64N/A
lower-/.f6474.8%
Applied rewrites74.8%
if 4.9999999999999997e33 < z1 < 4.5999999999999999e164Initial program 99.5%
Taylor expanded in z1 around inf
lower-*.f64N/A
lower-+.f64N/A
lower-PI.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6474.8%
Applied rewrites74.8%
lift-*.f64N/A
*-commutativeN/A
lift-+.f64N/A
lift-/.f64N/A
add-to-fractionN/A
associate-*l/N/A
lower-/.f64N/A
lower-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
+-commutativeN/A
lift-*.f64N/A
lift-*.f64N/A
distribute-rgt-outN/A
lower-*.f64N/A
lower-+.f6441.4%
Applied rewrites41.4%
if 4.5999999999999999e164 < z1 Initial program 99.5%
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
associate-/r*N/A
lower-/.f64N/A
lower-/.f64N/A
*-commutativeN/A
lower-*.f6499.6%
Applied rewrites99.6%
Taylor expanded in z1 around inf
lower-PI.f6465.9%
Applied rewrites65.9%
(FPCore (z1 z0) :precision binary64 (/ 0.125 (* z1 (+ PI (* (/ PI z1) z0)))))
double code(double z1, double z0) {
return 0.125 / (z1 * (((double) M_PI) + ((((double) M_PI) / z1) * z0)));
}
public static double code(double z1, double z0) {
return 0.125 / (z1 * (Math.PI + ((Math.PI / z1) * z0)));
}
def code(z1, z0): return 0.125 / (z1 * (math.pi + ((math.pi / z1) * z0)))
function code(z1, z0) return Float64(0.125 / Float64(z1 * Float64(pi + Float64(Float64(pi / z1) * z0)))) end
function tmp = code(z1, z0) tmp = 0.125 / (z1 * (pi + ((pi / z1) * z0))); end
code[z1_, z0_] := N[(0.125 / N[(z1 * N[(Pi + N[(N[(Pi / z1), $MachinePrecision] * z0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\frac{0.125}{z1 \cdot \left(\pi + \frac{\pi}{z1} \cdot z0\right)}
Initial program 99.5%
Taylor expanded in z1 around inf
lower-*.f64N/A
lower-+.f64N/A
lower-PI.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6474.8%
Applied rewrites74.8%
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-*.f64N/A
lower-/.f6474.8%
Applied rewrites74.8%
(FPCore (z1 z0) :precision binary64 (/ 1.0 (/ (* PI (+ z0 z1)) 0.125)))
double code(double z1, double z0) {
return 1.0 / ((((double) M_PI) * (z0 + z1)) / 0.125);
}
public static double code(double z1, double z0) {
return 1.0 / ((Math.PI * (z0 + z1)) / 0.125);
}
def code(z1, z0): return 1.0 / ((math.pi * (z0 + z1)) / 0.125)
function code(z1, z0) return Float64(1.0 / Float64(Float64(pi * Float64(z0 + z1)) / 0.125)) end
function tmp = code(z1, z0) tmp = 1.0 / ((pi * (z0 + z1)) / 0.125); end
code[z1_, z0_] := N[(1.0 / N[(N[(Pi * N[(z0 + z1), $MachinePrecision]), $MachinePrecision] / 0.125), $MachinePrecision]), $MachinePrecision]
\frac{1}{\frac{\pi \cdot \left(z0 + z1\right)}{0.125}}
Initial program 99.5%
Taylor expanded in z1 around inf
lower-*.f64N/A
lower-+.f64N/A
lower-PI.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6474.8%
Applied rewrites74.8%
lift-/.f64N/A
div-flipN/A
lower-unsound-/.f64N/A
lower-unsound-/.f6474.8%
Applied rewrites67.3%
(FPCore (z1 z0) :precision binary64 (/ 0.125 (* PI (+ z1 z0))))
double code(double z1, double z0) {
return 0.125 / (((double) M_PI) * (z1 + z0));
}
public static double code(double z1, double z0) {
return 0.125 / (Math.PI * (z1 + z0));
}
def code(z1, z0): return 0.125 / (math.pi * (z1 + z0))
function code(z1, z0) return Float64(0.125 / Float64(pi * Float64(z1 + z0))) end
function tmp = code(z1, z0) tmp = 0.125 / (pi * (z1 + z0)); end
code[z1_, z0_] := N[(0.125 / N[(Pi * N[(z1 + z0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\frac{0.125}{\pi \cdot \left(z1 + z0\right)}
Initial program 99.5%
Taylor expanded in z1 around inf
lower-*.f64N/A
lower-+.f64N/A
lower-PI.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6474.8%
Applied rewrites74.8%
lift-*.f64N/A
lift-+.f64N/A
distribute-rgt-inN/A
lift-/.f64N/A
mult-flipN/A
associate-*l*N/A
lft-mult-inverseN/A
*-rgt-identityN/A
*-commutativeN/A
lift-*.f64N/A
distribute-rgt-outN/A
lower-*.f64N/A
lower-+.f6467.3%
Applied rewrites67.3%
(FPCore (z1 z0) :precision binary64 (/ 0.125 (* z1 PI)))
double code(double z1, double z0) {
return 0.125 / (z1 * ((double) M_PI));
}
public static double code(double z1, double z0) {
return 0.125 / (z1 * Math.PI);
}
def code(z1, z0): return 0.125 / (z1 * math.pi)
function code(z1, z0) return Float64(0.125 / Float64(z1 * pi)) end
function tmp = code(z1, z0) tmp = 0.125 / (z1 * pi); end
code[z1_, z0_] := N[(0.125 / N[(z1 * Pi), $MachinePrecision]), $MachinePrecision]
\frac{0.125}{z1 \cdot \pi}
Initial program 99.5%
Taylor expanded in z1 around inf
lower-/.f64N/A
lower-*.f64N/A
lower-PI.f6465.8%
Applied rewrites65.8%
herbie shell --seed 2025250
(FPCore (z1 z0)
:name "(/ 1/8 (* (* PI z1) (exp (/ z0 z1))))"
:precision binary64
(/ 0.125 (* (* PI z1) (exp (/ z0 z1)))))