
(FPCore (z1 z0 z3 z2)
:precision binary64
(/
(* z1 (* z0 z0))
(*
(-
1.0
(cos
(* -2.0 (atan (* (/ z0 z3) (tan (* PI (- (+ z2 z2) -0.5))))))))
(- 1.0 z1))))double code(double z1, double z0, double z3, double z2) {
return (z1 * (z0 * z0)) / ((1.0 - cos((-2.0 * atan(((z0 / z3) * tan((((double) M_PI) * ((z2 + z2) - -0.5)))))))) * (1.0 - z1));
}
public static double code(double z1, double z0, double z3, double z2) {
return (z1 * (z0 * z0)) / ((1.0 - Math.cos((-2.0 * Math.atan(((z0 / z3) * Math.tan((Math.PI * ((z2 + z2) - -0.5)))))))) * (1.0 - z1));
}
def code(z1, z0, z3, z2): return (z1 * (z0 * z0)) / ((1.0 - math.cos((-2.0 * math.atan(((z0 / z3) * math.tan((math.pi * ((z2 + z2) - -0.5)))))))) * (1.0 - z1))
function code(z1, z0, z3, z2) return Float64(Float64(z1 * Float64(z0 * z0)) / Float64(Float64(1.0 - cos(Float64(-2.0 * atan(Float64(Float64(z0 / z3) * tan(Float64(pi * Float64(Float64(z2 + z2) - -0.5)))))))) * Float64(1.0 - z1))) end
function tmp = code(z1, z0, z3, z2) tmp = (z1 * (z0 * z0)) / ((1.0 - cos((-2.0 * atan(((z0 / z3) * tan((pi * ((z2 + z2) - -0.5)))))))) * (1.0 - z1)); end
code[z1_, z0_, z3_, z2_] := N[(N[(z1 * N[(z0 * z0), $MachinePrecision]), $MachinePrecision] / N[(N[(1.0 - N[Cos[N[(-2.0 * N[ArcTan[N[(N[(z0 / z3), $MachinePrecision] * N[Tan[N[(Pi * N[(N[(z2 + z2), $MachinePrecision] - -0.5), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] * N[(1.0 - z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\frac{z1 \cdot \left(z0 \cdot z0\right)}{\left(1 - \cos \left(-2 \cdot \tan^{-1} \left(\frac{z0}{z3} \cdot \tan \left(\pi \cdot \left(\left(z2 + z2\right) - -0.5\right)\right)\right)\right)\right) \cdot \left(1 - z1\right)}
Herbie found 17 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (z1 z0 z3 z2)
:precision binary64
(/
(* z1 (* z0 z0))
(*
(-
1.0
(cos
(* -2.0 (atan (* (/ z0 z3) (tan (* PI (- (+ z2 z2) -0.5))))))))
(- 1.0 z1))))double code(double z1, double z0, double z3, double z2) {
return (z1 * (z0 * z0)) / ((1.0 - cos((-2.0 * atan(((z0 / z3) * tan((((double) M_PI) * ((z2 + z2) - -0.5)))))))) * (1.0 - z1));
}
public static double code(double z1, double z0, double z3, double z2) {
return (z1 * (z0 * z0)) / ((1.0 - Math.cos((-2.0 * Math.atan(((z0 / z3) * Math.tan((Math.PI * ((z2 + z2) - -0.5)))))))) * (1.0 - z1));
}
def code(z1, z0, z3, z2): return (z1 * (z0 * z0)) / ((1.0 - math.cos((-2.0 * math.atan(((z0 / z3) * math.tan((math.pi * ((z2 + z2) - -0.5)))))))) * (1.0 - z1))
function code(z1, z0, z3, z2) return Float64(Float64(z1 * Float64(z0 * z0)) / Float64(Float64(1.0 - cos(Float64(-2.0 * atan(Float64(Float64(z0 / z3) * tan(Float64(pi * Float64(Float64(z2 + z2) - -0.5)))))))) * Float64(1.0 - z1))) end
function tmp = code(z1, z0, z3, z2) tmp = (z1 * (z0 * z0)) / ((1.0 - cos((-2.0 * atan(((z0 / z3) * tan((pi * ((z2 + z2) - -0.5)))))))) * (1.0 - z1)); end
code[z1_, z0_, z3_, z2_] := N[(N[(z1 * N[(z0 * z0), $MachinePrecision]), $MachinePrecision] / N[(N[(1.0 - N[Cos[N[(-2.0 * N[ArcTan[N[(N[(z0 / z3), $MachinePrecision] * N[Tan[N[(Pi * N[(N[(z2 + z2), $MachinePrecision] - -0.5), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] * N[(1.0 - z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\frac{z1 \cdot \left(z0 \cdot z0\right)}{\left(1 - \cos \left(-2 \cdot \tan^{-1} \left(\frac{z0}{z3} \cdot \tan \left(\pi \cdot \left(\left(z2 + z2\right) - -0.5\right)\right)\right)\right)\right) \cdot \left(1 - z1\right)}
(FPCore (z1 z0 z3 z2)
:precision binary64
(let* ((t_0
(/
(* (* z1 (fabs z0)) (fabs z0))
(*
(-
1.0
(cos
(*
-2.0
(atan
(/
(*
(+
1.0
(*
-0.08888888888888889
(* (pow z2 6.0) (pow PI 6.0))))
(fabs z0))
(* (- (sin (* (+ z2 z2) PI))) z3))))))
(- 1.0 z1)))))
(if (<= (fabs z0) 5e-30)
t_0
(if (<= (fabs z0) 3.5e+154)
(*
z1
(/
(* (fabs z0) (fabs z0))
(*
(- 1.0 z1)
(-
1.0
(cos
(*
(atan
(*
(-
(*
(-
(*
(-
(* (* -0.08888888888888889 (* z2 z2)) (pow PI 6.0))
(* -0.6666666666666666 (pow PI 4.0)))
(* z2 z2))
(* 2.0 (* PI PI)))
(* z2 z2))
-1.0)
(/
(+
(* -0.5 (/ (fabs z0) (* z3 PI)))
(*
-0.3333333333333333
(/ (* (fabs z0) (* (pow z2 2.0) PI)) z3)))
z2)))
2.0))))))
t_0))))double code(double z1, double z0, double z3, double z2) {
double t_0 = ((z1 * fabs(z0)) * fabs(z0)) / ((1.0 - cos((-2.0 * atan((((1.0 + (-0.08888888888888889 * (pow(z2, 6.0) * pow(((double) M_PI), 6.0)))) * fabs(z0)) / (-sin(((z2 + z2) * ((double) M_PI))) * z3)))))) * (1.0 - z1));
double tmp;
if (fabs(z0) <= 5e-30) {
tmp = t_0;
} else if (fabs(z0) <= 3.5e+154) {
tmp = z1 * ((fabs(z0) * fabs(z0)) / ((1.0 - z1) * (1.0 - cos((atan(((((((((-0.08888888888888889 * (z2 * z2)) * pow(((double) M_PI), 6.0)) - (-0.6666666666666666 * pow(((double) M_PI), 4.0))) * (z2 * z2)) - (2.0 * (((double) M_PI) * ((double) M_PI)))) * (z2 * z2)) - -1.0) * (((-0.5 * (fabs(z0) / (z3 * ((double) M_PI)))) + (-0.3333333333333333 * ((fabs(z0) * (pow(z2, 2.0) * ((double) M_PI))) / z3))) / z2))) * 2.0)))));
} else {
tmp = t_0;
}
return tmp;
}
public static double code(double z1, double z0, double z3, double z2) {
double t_0 = ((z1 * Math.abs(z0)) * Math.abs(z0)) / ((1.0 - Math.cos((-2.0 * Math.atan((((1.0 + (-0.08888888888888889 * (Math.pow(z2, 6.0) * Math.pow(Math.PI, 6.0)))) * Math.abs(z0)) / (-Math.sin(((z2 + z2) * Math.PI)) * z3)))))) * (1.0 - z1));
double tmp;
if (Math.abs(z0) <= 5e-30) {
tmp = t_0;
} else if (Math.abs(z0) <= 3.5e+154) {
tmp = z1 * ((Math.abs(z0) * Math.abs(z0)) / ((1.0 - z1) * (1.0 - Math.cos((Math.atan(((((((((-0.08888888888888889 * (z2 * z2)) * Math.pow(Math.PI, 6.0)) - (-0.6666666666666666 * Math.pow(Math.PI, 4.0))) * (z2 * z2)) - (2.0 * (Math.PI * Math.PI))) * (z2 * z2)) - -1.0) * (((-0.5 * (Math.abs(z0) / (z3 * Math.PI))) + (-0.3333333333333333 * ((Math.abs(z0) * (Math.pow(z2, 2.0) * Math.PI)) / z3))) / z2))) * 2.0)))));
} else {
tmp = t_0;
}
return tmp;
}
def code(z1, z0, z3, z2): t_0 = ((z1 * math.fabs(z0)) * math.fabs(z0)) / ((1.0 - math.cos((-2.0 * math.atan((((1.0 + (-0.08888888888888889 * (math.pow(z2, 6.0) * math.pow(math.pi, 6.0)))) * math.fabs(z0)) / (-math.sin(((z2 + z2) * math.pi)) * z3)))))) * (1.0 - z1)) tmp = 0 if math.fabs(z0) <= 5e-30: tmp = t_0 elif math.fabs(z0) <= 3.5e+154: tmp = z1 * ((math.fabs(z0) * math.fabs(z0)) / ((1.0 - z1) * (1.0 - math.cos((math.atan(((((((((-0.08888888888888889 * (z2 * z2)) * math.pow(math.pi, 6.0)) - (-0.6666666666666666 * math.pow(math.pi, 4.0))) * (z2 * z2)) - (2.0 * (math.pi * math.pi))) * (z2 * z2)) - -1.0) * (((-0.5 * (math.fabs(z0) / (z3 * math.pi))) + (-0.3333333333333333 * ((math.fabs(z0) * (math.pow(z2, 2.0) * math.pi)) / z3))) / z2))) * 2.0))))) else: tmp = t_0 return tmp
function code(z1, z0, z3, z2) t_0 = Float64(Float64(Float64(z1 * abs(z0)) * abs(z0)) / Float64(Float64(1.0 - cos(Float64(-2.0 * atan(Float64(Float64(Float64(1.0 + Float64(-0.08888888888888889 * Float64((z2 ^ 6.0) * (pi ^ 6.0)))) * abs(z0)) / Float64(Float64(-sin(Float64(Float64(z2 + z2) * pi))) * z3)))))) * Float64(1.0 - z1))) tmp = 0.0 if (abs(z0) <= 5e-30) tmp = t_0; elseif (abs(z0) <= 3.5e+154) tmp = Float64(z1 * Float64(Float64(abs(z0) * abs(z0)) / Float64(Float64(1.0 - z1) * Float64(1.0 - cos(Float64(atan(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(-0.08888888888888889 * Float64(z2 * z2)) * (pi ^ 6.0)) - Float64(-0.6666666666666666 * (pi ^ 4.0))) * Float64(z2 * z2)) - Float64(2.0 * Float64(pi * pi))) * Float64(z2 * z2)) - -1.0) * Float64(Float64(Float64(-0.5 * Float64(abs(z0) / Float64(z3 * pi))) + Float64(-0.3333333333333333 * Float64(Float64(abs(z0) * Float64((z2 ^ 2.0) * pi)) / z3))) / z2))) * 2.0)))))); else tmp = t_0; end return tmp end
function tmp_2 = code(z1, z0, z3, z2) t_0 = ((z1 * abs(z0)) * abs(z0)) / ((1.0 - cos((-2.0 * atan((((1.0 + (-0.08888888888888889 * ((z2 ^ 6.0) * (pi ^ 6.0)))) * abs(z0)) / (-sin(((z2 + z2) * pi)) * z3)))))) * (1.0 - z1)); tmp = 0.0; if (abs(z0) <= 5e-30) tmp = t_0; elseif (abs(z0) <= 3.5e+154) tmp = z1 * ((abs(z0) * abs(z0)) / ((1.0 - z1) * (1.0 - cos((atan(((((((((-0.08888888888888889 * (z2 * z2)) * (pi ^ 6.0)) - (-0.6666666666666666 * (pi ^ 4.0))) * (z2 * z2)) - (2.0 * (pi * pi))) * (z2 * z2)) - -1.0) * (((-0.5 * (abs(z0) / (z3 * pi))) + (-0.3333333333333333 * ((abs(z0) * ((z2 ^ 2.0) * pi)) / z3))) / z2))) * 2.0))))); else tmp = t_0; end tmp_2 = tmp; end
code[z1_, z0_, z3_, z2_] := Block[{t$95$0 = N[(N[(N[(z1 * N[Abs[z0], $MachinePrecision]), $MachinePrecision] * N[Abs[z0], $MachinePrecision]), $MachinePrecision] / N[(N[(1.0 - N[Cos[N[(-2.0 * N[ArcTan[N[(N[(N[(1.0 + N[(-0.08888888888888889 * N[(N[Power[z2, 6.0], $MachinePrecision] * N[Power[Pi, 6.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Abs[z0], $MachinePrecision]), $MachinePrecision] / N[((-N[Sin[N[(N[(z2 + z2), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision]) * z3), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] * N[(1.0 - z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[Abs[z0], $MachinePrecision], 5e-30], t$95$0, If[LessEqual[N[Abs[z0], $MachinePrecision], 3.5e+154], N[(z1 * N[(N[(N[Abs[z0], $MachinePrecision] * N[Abs[z0], $MachinePrecision]), $MachinePrecision] / N[(N[(1.0 - z1), $MachinePrecision] * N[(1.0 - N[Cos[N[(N[ArcTan[N[(N[(N[(N[(N[(N[(N[(N[(-0.08888888888888889 * N[(z2 * z2), $MachinePrecision]), $MachinePrecision] * N[Power[Pi, 6.0], $MachinePrecision]), $MachinePrecision] - N[(-0.6666666666666666 * N[Power[Pi, 4.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(z2 * z2), $MachinePrecision]), $MachinePrecision] - N[(2.0 * N[(Pi * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(z2 * z2), $MachinePrecision]), $MachinePrecision] - -1.0), $MachinePrecision] * N[(N[(N[(-0.5 * N[(N[Abs[z0], $MachinePrecision] / N[(z3 * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(-0.3333333333333333 * N[(N[(N[Abs[z0], $MachinePrecision] * N[(N[Power[z2, 2.0], $MachinePrecision] * Pi), $MachinePrecision]), $MachinePrecision] / z3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / z2), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$0]]]
\begin{array}{l}
t_0 := \frac{\left(z1 \cdot \left|z0\right|\right) \cdot \left|z0\right|}{\left(1 - \cos \left(-2 \cdot \tan^{-1} \left(\frac{\left(1 + -0.08888888888888889 \cdot \left({z2}^{6} \cdot {\pi}^{6}\right)\right) \cdot \left|z0\right|}{\left(-\sin \left(\left(z2 + z2\right) \cdot \pi\right)\right) \cdot z3}\right)\right)\right) \cdot \left(1 - z1\right)}\\
\mathbf{if}\;\left|z0\right| \leq 5 \cdot 10^{-30}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;\left|z0\right| \leq 3.5 \cdot 10^{+154}:\\
\;\;\;\;z1 \cdot \frac{\left|z0\right| \cdot \left|z0\right|}{\left(1 - z1\right) \cdot \left(1 - \cos \left(\tan^{-1} \left(\left(\left(\left(\left(-0.08888888888888889 \cdot \left(z2 \cdot z2\right)\right) \cdot {\pi}^{6} - -0.6666666666666666 \cdot {\pi}^{4}\right) \cdot \left(z2 \cdot z2\right) - 2 \cdot \left(\pi \cdot \pi\right)\right) \cdot \left(z2 \cdot z2\right) - -1\right) \cdot \frac{-0.5 \cdot \frac{\left|z0\right|}{z3 \cdot \pi} + -0.3333333333333333 \cdot \frac{\left|z0\right| \cdot \left({z2}^{2} \cdot \pi\right)}{z3}}{z2}\right) \cdot 2\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;t\_0\\
\end{array}
if z0 < 4.9999999999999997e-30 or 3.5000000000000002e154 < z0 Initial program 46.2%
lift-*.f64N/A
lift-/.f64N/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites53.5%
Taylor expanded in z2 around 0
lower-+.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-+.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
Applied rewrites73.5%
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f6479.5%
Applied rewrites79.5%
Taylor expanded in z2 around inf
lower-*.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-pow.f64N/A
lower-PI.f6479.5%
Applied rewrites79.5%
if 4.9999999999999997e-30 < z0 < 3.5000000000000002e154Initial program 46.2%
lift-*.f64N/A
lift-/.f64N/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites53.5%
Taylor expanded in z2 around 0
lower-+.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-+.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
Applied rewrites73.5%
Applied rewrites70.4%
Taylor expanded in z2 around 0
lower-/.f64N/A
Applied rewrites74.2%
(FPCore (z1 z0 z3 z2)
:precision binary64
(let* ((t_0 (sin (* (+ z2 z2) PI)))
(t_1
(/
(* (* z1 (fabs z0)) (fabs z0))
(*
(-
1.0
(cos
(*
-2.0
(atan
(/
(*
(+
1.0
(*
-0.08888888888888889
(* (pow z2 6.0) (pow PI 6.0))))
(fabs z0))
(* (- t_0) z3))))))
(- 1.0 z1)))))
(if (<= (fabs z0) 5e-30)
t_1
(if (<= (fabs z0) 3.5e+154)
(*
z1
(/
(* (fabs z0) (fabs z0))
(*
(- 1.0 z1)
(-
1.0
(cos
(*
(atan
(*
(-
(*
(-
(*
(-
(* (* -0.08888888888888889 (* z2 z2)) (pow PI 6.0))
-64.9393940226683)
(* z2 z2))
(* 2.0 (* PI PI)))
(* z2 z2))
-1.0)
(/ (- (fabs z0)) (* t_0 z3))))
2.0))))))
t_1))))double code(double z1, double z0, double z3, double z2) {
double t_0 = sin(((z2 + z2) * ((double) M_PI)));
double t_1 = ((z1 * fabs(z0)) * fabs(z0)) / ((1.0 - cos((-2.0 * atan((((1.0 + (-0.08888888888888889 * (pow(z2, 6.0) * pow(((double) M_PI), 6.0)))) * fabs(z0)) / (-t_0 * z3)))))) * (1.0 - z1));
double tmp;
if (fabs(z0) <= 5e-30) {
tmp = t_1;
} else if (fabs(z0) <= 3.5e+154) {
tmp = z1 * ((fabs(z0) * fabs(z0)) / ((1.0 - z1) * (1.0 - cos((atan(((((((((-0.08888888888888889 * (z2 * z2)) * pow(((double) M_PI), 6.0)) - -64.9393940226683) * (z2 * z2)) - (2.0 * (((double) M_PI) * ((double) M_PI)))) * (z2 * z2)) - -1.0) * (-fabs(z0) / (t_0 * z3)))) * 2.0)))));
} else {
tmp = t_1;
}
return tmp;
}
public static double code(double z1, double z0, double z3, double z2) {
double t_0 = Math.sin(((z2 + z2) * Math.PI));
double t_1 = ((z1 * Math.abs(z0)) * Math.abs(z0)) / ((1.0 - Math.cos((-2.0 * Math.atan((((1.0 + (-0.08888888888888889 * (Math.pow(z2, 6.0) * Math.pow(Math.PI, 6.0)))) * Math.abs(z0)) / (-t_0 * z3)))))) * (1.0 - z1));
double tmp;
if (Math.abs(z0) <= 5e-30) {
tmp = t_1;
} else if (Math.abs(z0) <= 3.5e+154) {
tmp = z1 * ((Math.abs(z0) * Math.abs(z0)) / ((1.0 - z1) * (1.0 - Math.cos((Math.atan(((((((((-0.08888888888888889 * (z2 * z2)) * Math.pow(Math.PI, 6.0)) - -64.9393940226683) * (z2 * z2)) - (2.0 * (Math.PI * Math.PI))) * (z2 * z2)) - -1.0) * (-Math.abs(z0) / (t_0 * z3)))) * 2.0)))));
} else {
tmp = t_1;
}
return tmp;
}
def code(z1, z0, z3, z2): t_0 = math.sin(((z2 + z2) * math.pi)) t_1 = ((z1 * math.fabs(z0)) * math.fabs(z0)) / ((1.0 - math.cos((-2.0 * math.atan((((1.0 + (-0.08888888888888889 * (math.pow(z2, 6.0) * math.pow(math.pi, 6.0)))) * math.fabs(z0)) / (-t_0 * z3)))))) * (1.0 - z1)) tmp = 0 if math.fabs(z0) <= 5e-30: tmp = t_1 elif math.fabs(z0) <= 3.5e+154: tmp = z1 * ((math.fabs(z0) * math.fabs(z0)) / ((1.0 - z1) * (1.0 - math.cos((math.atan(((((((((-0.08888888888888889 * (z2 * z2)) * math.pow(math.pi, 6.0)) - -64.9393940226683) * (z2 * z2)) - (2.0 * (math.pi * math.pi))) * (z2 * z2)) - -1.0) * (-math.fabs(z0) / (t_0 * z3)))) * 2.0))))) else: tmp = t_1 return tmp
function code(z1, z0, z3, z2) t_0 = sin(Float64(Float64(z2 + z2) * pi)) t_1 = Float64(Float64(Float64(z1 * abs(z0)) * abs(z0)) / Float64(Float64(1.0 - cos(Float64(-2.0 * atan(Float64(Float64(Float64(1.0 + Float64(-0.08888888888888889 * Float64((z2 ^ 6.0) * (pi ^ 6.0)))) * abs(z0)) / Float64(Float64(-t_0) * z3)))))) * Float64(1.0 - z1))) tmp = 0.0 if (abs(z0) <= 5e-30) tmp = t_1; elseif (abs(z0) <= 3.5e+154) tmp = Float64(z1 * Float64(Float64(abs(z0) * abs(z0)) / Float64(Float64(1.0 - z1) * Float64(1.0 - cos(Float64(atan(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(-0.08888888888888889 * Float64(z2 * z2)) * (pi ^ 6.0)) - -64.9393940226683) * Float64(z2 * z2)) - Float64(2.0 * Float64(pi * pi))) * Float64(z2 * z2)) - -1.0) * Float64(Float64(-abs(z0)) / Float64(t_0 * z3)))) * 2.0)))))); else tmp = t_1; end return tmp end
function tmp_2 = code(z1, z0, z3, z2) t_0 = sin(((z2 + z2) * pi)); t_1 = ((z1 * abs(z0)) * abs(z0)) / ((1.0 - cos((-2.0 * atan((((1.0 + (-0.08888888888888889 * ((z2 ^ 6.0) * (pi ^ 6.0)))) * abs(z0)) / (-t_0 * z3)))))) * (1.0 - z1)); tmp = 0.0; if (abs(z0) <= 5e-30) tmp = t_1; elseif (abs(z0) <= 3.5e+154) tmp = z1 * ((abs(z0) * abs(z0)) / ((1.0 - z1) * (1.0 - cos((atan(((((((((-0.08888888888888889 * (z2 * z2)) * (pi ^ 6.0)) - -64.9393940226683) * (z2 * z2)) - (2.0 * (pi * pi))) * (z2 * z2)) - -1.0) * (-abs(z0) / (t_0 * z3)))) * 2.0))))); else tmp = t_1; end tmp_2 = tmp; end
code[z1_, z0_, z3_, z2_] := Block[{t$95$0 = N[Sin[N[(N[(z2 + z2), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$1 = N[(N[(N[(z1 * N[Abs[z0], $MachinePrecision]), $MachinePrecision] * N[Abs[z0], $MachinePrecision]), $MachinePrecision] / N[(N[(1.0 - N[Cos[N[(-2.0 * N[ArcTan[N[(N[(N[(1.0 + N[(-0.08888888888888889 * N[(N[Power[z2, 6.0], $MachinePrecision] * N[Power[Pi, 6.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Abs[z0], $MachinePrecision]), $MachinePrecision] / N[((-t$95$0) * z3), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] * N[(1.0 - z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[Abs[z0], $MachinePrecision], 5e-30], t$95$1, If[LessEqual[N[Abs[z0], $MachinePrecision], 3.5e+154], N[(z1 * N[(N[(N[Abs[z0], $MachinePrecision] * N[Abs[z0], $MachinePrecision]), $MachinePrecision] / N[(N[(1.0 - z1), $MachinePrecision] * N[(1.0 - N[Cos[N[(N[ArcTan[N[(N[(N[(N[(N[(N[(N[(N[(-0.08888888888888889 * N[(z2 * z2), $MachinePrecision]), $MachinePrecision] * N[Power[Pi, 6.0], $MachinePrecision]), $MachinePrecision] - -64.9393940226683), $MachinePrecision] * N[(z2 * z2), $MachinePrecision]), $MachinePrecision] - N[(2.0 * N[(Pi * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(z2 * z2), $MachinePrecision]), $MachinePrecision] - -1.0), $MachinePrecision] * N[((-N[Abs[z0], $MachinePrecision]) / N[(t$95$0 * z3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
t_0 := \sin \left(\left(z2 + z2\right) \cdot \pi\right)\\
t_1 := \frac{\left(z1 \cdot \left|z0\right|\right) \cdot \left|z0\right|}{\left(1 - \cos \left(-2 \cdot \tan^{-1} \left(\frac{\left(1 + -0.08888888888888889 \cdot \left({z2}^{6} \cdot {\pi}^{6}\right)\right) \cdot \left|z0\right|}{\left(-t\_0\right) \cdot z3}\right)\right)\right) \cdot \left(1 - z1\right)}\\
\mathbf{if}\;\left|z0\right| \leq 5 \cdot 10^{-30}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;\left|z0\right| \leq 3.5 \cdot 10^{+154}:\\
\;\;\;\;z1 \cdot \frac{\left|z0\right| \cdot \left|z0\right|}{\left(1 - z1\right) \cdot \left(1 - \cos \left(\tan^{-1} \left(\left(\left(\left(\left(-0.08888888888888889 \cdot \left(z2 \cdot z2\right)\right) \cdot {\pi}^{6} - -64.9393940226683\right) \cdot \left(z2 \cdot z2\right) - 2 \cdot \left(\pi \cdot \pi\right)\right) \cdot \left(z2 \cdot z2\right) - -1\right) \cdot \frac{-\left|z0\right|}{t\_0 \cdot z3}\right) \cdot 2\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
if z0 < 4.9999999999999997e-30 or 3.5000000000000002e154 < z0 Initial program 46.2%
lift-*.f64N/A
lift-/.f64N/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites53.5%
Taylor expanded in z2 around 0
lower-+.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-+.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
Applied rewrites73.5%
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f6479.5%
Applied rewrites79.5%
Taylor expanded in z2 around inf
lower-*.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-pow.f64N/A
lower-PI.f6479.5%
Applied rewrites79.5%
if 4.9999999999999997e-30 < z0 < 3.5000000000000002e154Initial program 46.2%
lift-*.f64N/A
lift-/.f64N/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites53.5%
Taylor expanded in z2 around 0
lower-+.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-+.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
Applied rewrites73.5%
Applied rewrites70.4%
Evaluated real constant70.4%
(FPCore (z1 z0 z3 z2)
:precision binary64
(let* ((t_0 (sin (* (+ z2 z2) PI))) (t_1 (* (fabs z0) (fabs z0))))
(if (<= (fabs z0) 5e-30)
(/
(* z1 t_1)
(*
(-
1.0
(cos
(*
-2.0
(atan
(/
(*
(+
1.0
(* -0.08888888888888889 (* (pow z2 6.0) (pow PI 6.0))))
(fabs z0))
(* (- t_0) z3))))))
(- 1.0 z1)))
(if (<= (fabs z0) 2.65e+152)
(*
z1
(/
t_1
(*
(- 1.0 z1)
(-
1.0
(cos
(*
(atan
(*
(-
(*
(-
(*
(-
(* (* -0.08888888888888889 (* z2 z2)) (pow PI 6.0))
-64.9393940226683)
(* z2 z2))
(* 2.0 (* PI PI)))
(* z2 z2))
-1.0)
(/ (- (fabs z0)) (* t_0 z3))))
2.0))))))
(*
(/ (* (fabs z0) z1) (- 1.0 z1))
(/
(fabs z0)
(-
1.0
(cos
(* (atan (* (tan (* 0.5 PI)) (/ (fabs z0) z3))) 2.0)))))))))double code(double z1, double z0, double z3, double z2) {
double t_0 = sin(((z2 + z2) * ((double) M_PI)));
double t_1 = fabs(z0) * fabs(z0);
double tmp;
if (fabs(z0) <= 5e-30) {
tmp = (z1 * t_1) / ((1.0 - cos((-2.0 * atan((((1.0 + (-0.08888888888888889 * (pow(z2, 6.0) * pow(((double) M_PI), 6.0)))) * fabs(z0)) / (-t_0 * z3)))))) * (1.0 - z1));
} else if (fabs(z0) <= 2.65e+152) {
tmp = z1 * (t_1 / ((1.0 - z1) * (1.0 - cos((atan(((((((((-0.08888888888888889 * (z2 * z2)) * pow(((double) M_PI), 6.0)) - -64.9393940226683) * (z2 * z2)) - (2.0 * (((double) M_PI) * ((double) M_PI)))) * (z2 * z2)) - -1.0) * (-fabs(z0) / (t_0 * z3)))) * 2.0)))));
} else {
tmp = ((fabs(z0) * z1) / (1.0 - z1)) * (fabs(z0) / (1.0 - cos((atan((tan((0.5 * ((double) M_PI))) * (fabs(z0) / z3))) * 2.0))));
}
return tmp;
}
public static double code(double z1, double z0, double z3, double z2) {
double t_0 = Math.sin(((z2 + z2) * Math.PI));
double t_1 = Math.abs(z0) * Math.abs(z0);
double tmp;
if (Math.abs(z0) <= 5e-30) {
tmp = (z1 * t_1) / ((1.0 - Math.cos((-2.0 * Math.atan((((1.0 + (-0.08888888888888889 * (Math.pow(z2, 6.0) * Math.pow(Math.PI, 6.0)))) * Math.abs(z0)) / (-t_0 * z3)))))) * (1.0 - z1));
} else if (Math.abs(z0) <= 2.65e+152) {
tmp = z1 * (t_1 / ((1.0 - z1) * (1.0 - Math.cos((Math.atan(((((((((-0.08888888888888889 * (z2 * z2)) * Math.pow(Math.PI, 6.0)) - -64.9393940226683) * (z2 * z2)) - (2.0 * (Math.PI * Math.PI))) * (z2 * z2)) - -1.0) * (-Math.abs(z0) / (t_0 * z3)))) * 2.0)))));
} else {
tmp = ((Math.abs(z0) * z1) / (1.0 - z1)) * (Math.abs(z0) / (1.0 - Math.cos((Math.atan((Math.tan((0.5 * Math.PI)) * (Math.abs(z0) / z3))) * 2.0))));
}
return tmp;
}
def code(z1, z0, z3, z2): t_0 = math.sin(((z2 + z2) * math.pi)) t_1 = math.fabs(z0) * math.fabs(z0) tmp = 0 if math.fabs(z0) <= 5e-30: tmp = (z1 * t_1) / ((1.0 - math.cos((-2.0 * math.atan((((1.0 + (-0.08888888888888889 * (math.pow(z2, 6.0) * math.pow(math.pi, 6.0)))) * math.fabs(z0)) / (-t_0 * z3)))))) * (1.0 - z1)) elif math.fabs(z0) <= 2.65e+152: tmp = z1 * (t_1 / ((1.0 - z1) * (1.0 - math.cos((math.atan(((((((((-0.08888888888888889 * (z2 * z2)) * math.pow(math.pi, 6.0)) - -64.9393940226683) * (z2 * z2)) - (2.0 * (math.pi * math.pi))) * (z2 * z2)) - -1.0) * (-math.fabs(z0) / (t_0 * z3)))) * 2.0))))) else: tmp = ((math.fabs(z0) * z1) / (1.0 - z1)) * (math.fabs(z0) / (1.0 - math.cos((math.atan((math.tan((0.5 * math.pi)) * (math.fabs(z0) / z3))) * 2.0)))) return tmp
function code(z1, z0, z3, z2) t_0 = sin(Float64(Float64(z2 + z2) * pi)) t_1 = Float64(abs(z0) * abs(z0)) tmp = 0.0 if (abs(z0) <= 5e-30) tmp = Float64(Float64(z1 * t_1) / Float64(Float64(1.0 - cos(Float64(-2.0 * atan(Float64(Float64(Float64(1.0 + Float64(-0.08888888888888889 * Float64((z2 ^ 6.0) * (pi ^ 6.0)))) * abs(z0)) / Float64(Float64(-t_0) * z3)))))) * Float64(1.0 - z1))); elseif (abs(z0) <= 2.65e+152) tmp = Float64(z1 * Float64(t_1 / Float64(Float64(1.0 - z1) * Float64(1.0 - cos(Float64(atan(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(-0.08888888888888889 * Float64(z2 * z2)) * (pi ^ 6.0)) - -64.9393940226683) * Float64(z2 * z2)) - Float64(2.0 * Float64(pi * pi))) * Float64(z2 * z2)) - -1.0) * Float64(Float64(-abs(z0)) / Float64(t_0 * z3)))) * 2.0)))))); else tmp = Float64(Float64(Float64(abs(z0) * z1) / Float64(1.0 - z1)) * Float64(abs(z0) / Float64(1.0 - cos(Float64(atan(Float64(tan(Float64(0.5 * pi)) * Float64(abs(z0) / z3))) * 2.0))))); end return tmp end
function tmp_2 = code(z1, z0, z3, z2) t_0 = sin(((z2 + z2) * pi)); t_1 = abs(z0) * abs(z0); tmp = 0.0; if (abs(z0) <= 5e-30) tmp = (z1 * t_1) / ((1.0 - cos((-2.0 * atan((((1.0 + (-0.08888888888888889 * ((z2 ^ 6.0) * (pi ^ 6.0)))) * abs(z0)) / (-t_0 * z3)))))) * (1.0 - z1)); elseif (abs(z0) <= 2.65e+152) tmp = z1 * (t_1 / ((1.0 - z1) * (1.0 - cos((atan(((((((((-0.08888888888888889 * (z2 * z2)) * (pi ^ 6.0)) - -64.9393940226683) * (z2 * z2)) - (2.0 * (pi * pi))) * (z2 * z2)) - -1.0) * (-abs(z0) / (t_0 * z3)))) * 2.0))))); else tmp = ((abs(z0) * z1) / (1.0 - z1)) * (abs(z0) / (1.0 - cos((atan((tan((0.5 * pi)) * (abs(z0) / z3))) * 2.0)))); end tmp_2 = tmp; end
code[z1_, z0_, z3_, z2_] := Block[{t$95$0 = N[Sin[N[(N[(z2 + z2), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$1 = N[(N[Abs[z0], $MachinePrecision] * N[Abs[z0], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[Abs[z0], $MachinePrecision], 5e-30], N[(N[(z1 * t$95$1), $MachinePrecision] / N[(N[(1.0 - N[Cos[N[(-2.0 * N[ArcTan[N[(N[(N[(1.0 + N[(-0.08888888888888889 * N[(N[Power[z2, 6.0], $MachinePrecision] * N[Power[Pi, 6.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Abs[z0], $MachinePrecision]), $MachinePrecision] / N[((-t$95$0) * z3), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] * N[(1.0 - z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[Abs[z0], $MachinePrecision], 2.65e+152], N[(z1 * N[(t$95$1 / N[(N[(1.0 - z1), $MachinePrecision] * N[(1.0 - N[Cos[N[(N[ArcTan[N[(N[(N[(N[(N[(N[(N[(N[(-0.08888888888888889 * N[(z2 * z2), $MachinePrecision]), $MachinePrecision] * N[Power[Pi, 6.0], $MachinePrecision]), $MachinePrecision] - -64.9393940226683), $MachinePrecision] * N[(z2 * z2), $MachinePrecision]), $MachinePrecision] - N[(2.0 * N[(Pi * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(z2 * z2), $MachinePrecision]), $MachinePrecision] - -1.0), $MachinePrecision] * N[((-N[Abs[z0], $MachinePrecision]) / N[(t$95$0 * z3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(N[Abs[z0], $MachinePrecision] * z1), $MachinePrecision] / N[(1.0 - z1), $MachinePrecision]), $MachinePrecision] * N[(N[Abs[z0], $MachinePrecision] / N[(1.0 - N[Cos[N[(N[ArcTan[N[(N[Tan[N[(0.5 * Pi), $MachinePrecision]], $MachinePrecision] * N[(N[Abs[z0], $MachinePrecision] / z3), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
t_0 := \sin \left(\left(z2 + z2\right) \cdot \pi\right)\\
t_1 := \left|z0\right| \cdot \left|z0\right|\\
\mathbf{if}\;\left|z0\right| \leq 5 \cdot 10^{-30}:\\
\;\;\;\;\frac{z1 \cdot t\_1}{\left(1 - \cos \left(-2 \cdot \tan^{-1} \left(\frac{\left(1 + -0.08888888888888889 \cdot \left({z2}^{6} \cdot {\pi}^{6}\right)\right) \cdot \left|z0\right|}{\left(-t\_0\right) \cdot z3}\right)\right)\right) \cdot \left(1 - z1\right)}\\
\mathbf{elif}\;\left|z0\right| \leq 2.65 \cdot 10^{+152}:\\
\;\;\;\;z1 \cdot \frac{t\_1}{\left(1 - z1\right) \cdot \left(1 - \cos \left(\tan^{-1} \left(\left(\left(\left(\left(-0.08888888888888889 \cdot \left(z2 \cdot z2\right)\right) \cdot {\pi}^{6} - -64.9393940226683\right) \cdot \left(z2 \cdot z2\right) - 2 \cdot \left(\pi \cdot \pi\right)\right) \cdot \left(z2 \cdot z2\right) - -1\right) \cdot \frac{-\left|z0\right|}{t\_0 \cdot z3}\right) \cdot 2\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left|z0\right| \cdot z1}{1 - z1} \cdot \frac{\left|z0\right|}{1 - \cos \left(\tan^{-1} \left(\tan \left(0.5 \cdot \pi\right) \cdot \frac{\left|z0\right|}{z3}\right) \cdot 2\right)}\\
\end{array}
if z0 < 4.9999999999999997e-30Initial program 46.2%
lift-*.f64N/A
lift-/.f64N/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites53.5%
Taylor expanded in z2 around 0
lower-+.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-+.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
Applied rewrites73.5%
Taylor expanded in z2 around inf
lower-*.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-pow.f64N/A
lower-PI.f6473.5%
Applied rewrites73.5%
if 4.9999999999999997e-30 < z0 < 2.6499999999999999e152Initial program 46.2%
lift-*.f64N/A
lift-/.f64N/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites53.5%
Taylor expanded in z2 around 0
lower-+.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-+.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
Applied rewrites73.5%
Applied rewrites70.4%
Evaluated real constant70.4%
if 2.6499999999999999e152 < z0 Initial program 46.2%
Taylor expanded in z2 around 0
Applied rewrites47.2%
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
*-commutativeN/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
times-fracN/A
lower-*.f64N/A
lower-/.f64N/A
lower-/.f6455.5%
Applied rewrites55.5%
(FPCore (z1 z0 z3 z2)
:precision binary64
(let* ((t_0 (/ (* (fabs z0) PI) z3)))
(if (<= (fabs z0) 2.7e-30)
(/
(* (* z1 (fabs z0)) (fabs z0))
(*
(-
1.0
(cos
(*
-2.0
(atan
(/
(+
(*
-1.0
(*
(pow z2 2.0)
(- (* -1.0 t_0) (* -0.3333333333333333 t_0))))
(* -0.5 (/ (fabs z0) (* z3 PI))))
z2)))))
(- 1.0 z1)))
(if (<= (fabs z0) 2.65e+152)
(*
z1
(/
(* (fabs z0) (fabs z0))
(*
(- 1.0 z1)
(-
1.0
(cos
(*
(atan
(*
(-
(*
(-
(*
(-
(* (* -0.08888888888888889 (* z2 z2)) (pow PI 6.0))
-64.9393940226683)
(* z2 z2))
(* 2.0 (* PI PI)))
(* z2 z2))
-1.0)
(/ (- (fabs z0)) (* (sin (* (+ z2 z2) PI)) z3))))
2.0))))))
(*
(/ (* (fabs z0) z1) (- 1.0 z1))
(/
(fabs z0)
(-
1.0
(cos
(* (atan (* (tan (* 0.5 PI)) (/ (fabs z0) z3))) 2.0)))))))))double code(double z1, double z0, double z3, double z2) {
double t_0 = (fabs(z0) * ((double) M_PI)) / z3;
double tmp;
if (fabs(z0) <= 2.7e-30) {
tmp = ((z1 * fabs(z0)) * fabs(z0)) / ((1.0 - cos((-2.0 * atan((((-1.0 * (pow(z2, 2.0) * ((-1.0 * t_0) - (-0.3333333333333333 * t_0)))) + (-0.5 * (fabs(z0) / (z3 * ((double) M_PI))))) / z2))))) * (1.0 - z1));
} else if (fabs(z0) <= 2.65e+152) {
tmp = z1 * ((fabs(z0) * fabs(z0)) / ((1.0 - z1) * (1.0 - cos((atan(((((((((-0.08888888888888889 * (z2 * z2)) * pow(((double) M_PI), 6.0)) - -64.9393940226683) * (z2 * z2)) - (2.0 * (((double) M_PI) * ((double) M_PI)))) * (z2 * z2)) - -1.0) * (-fabs(z0) / (sin(((z2 + z2) * ((double) M_PI))) * z3)))) * 2.0)))));
} else {
tmp = ((fabs(z0) * z1) / (1.0 - z1)) * (fabs(z0) / (1.0 - cos((atan((tan((0.5 * ((double) M_PI))) * (fabs(z0) / z3))) * 2.0))));
}
return tmp;
}
public static double code(double z1, double z0, double z3, double z2) {
double t_0 = (Math.abs(z0) * Math.PI) / z3;
double tmp;
if (Math.abs(z0) <= 2.7e-30) {
tmp = ((z1 * Math.abs(z0)) * Math.abs(z0)) / ((1.0 - Math.cos((-2.0 * Math.atan((((-1.0 * (Math.pow(z2, 2.0) * ((-1.0 * t_0) - (-0.3333333333333333 * t_0)))) + (-0.5 * (Math.abs(z0) / (z3 * Math.PI)))) / z2))))) * (1.0 - z1));
} else if (Math.abs(z0) <= 2.65e+152) {
tmp = z1 * ((Math.abs(z0) * Math.abs(z0)) / ((1.0 - z1) * (1.0 - Math.cos((Math.atan(((((((((-0.08888888888888889 * (z2 * z2)) * Math.pow(Math.PI, 6.0)) - -64.9393940226683) * (z2 * z2)) - (2.0 * (Math.PI * Math.PI))) * (z2 * z2)) - -1.0) * (-Math.abs(z0) / (Math.sin(((z2 + z2) * Math.PI)) * z3)))) * 2.0)))));
} else {
tmp = ((Math.abs(z0) * z1) / (1.0 - z1)) * (Math.abs(z0) / (1.0 - Math.cos((Math.atan((Math.tan((0.5 * Math.PI)) * (Math.abs(z0) / z3))) * 2.0))));
}
return tmp;
}
def code(z1, z0, z3, z2): t_0 = (math.fabs(z0) * math.pi) / z3 tmp = 0 if math.fabs(z0) <= 2.7e-30: tmp = ((z1 * math.fabs(z0)) * math.fabs(z0)) / ((1.0 - math.cos((-2.0 * math.atan((((-1.0 * (math.pow(z2, 2.0) * ((-1.0 * t_0) - (-0.3333333333333333 * t_0)))) + (-0.5 * (math.fabs(z0) / (z3 * math.pi)))) / z2))))) * (1.0 - z1)) elif math.fabs(z0) <= 2.65e+152: tmp = z1 * ((math.fabs(z0) * math.fabs(z0)) / ((1.0 - z1) * (1.0 - math.cos((math.atan(((((((((-0.08888888888888889 * (z2 * z2)) * math.pow(math.pi, 6.0)) - -64.9393940226683) * (z2 * z2)) - (2.0 * (math.pi * math.pi))) * (z2 * z2)) - -1.0) * (-math.fabs(z0) / (math.sin(((z2 + z2) * math.pi)) * z3)))) * 2.0))))) else: tmp = ((math.fabs(z0) * z1) / (1.0 - z1)) * (math.fabs(z0) / (1.0 - math.cos((math.atan((math.tan((0.5 * math.pi)) * (math.fabs(z0) / z3))) * 2.0)))) return tmp
function code(z1, z0, z3, z2) t_0 = Float64(Float64(abs(z0) * pi) / z3) tmp = 0.0 if (abs(z0) <= 2.7e-30) tmp = Float64(Float64(Float64(z1 * abs(z0)) * abs(z0)) / Float64(Float64(1.0 - cos(Float64(-2.0 * atan(Float64(Float64(Float64(-1.0 * Float64((z2 ^ 2.0) * Float64(Float64(-1.0 * t_0) - Float64(-0.3333333333333333 * t_0)))) + Float64(-0.5 * Float64(abs(z0) / Float64(z3 * pi)))) / z2))))) * Float64(1.0 - z1))); elseif (abs(z0) <= 2.65e+152) tmp = Float64(z1 * Float64(Float64(abs(z0) * abs(z0)) / Float64(Float64(1.0 - z1) * Float64(1.0 - cos(Float64(atan(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(-0.08888888888888889 * Float64(z2 * z2)) * (pi ^ 6.0)) - -64.9393940226683) * Float64(z2 * z2)) - Float64(2.0 * Float64(pi * pi))) * Float64(z2 * z2)) - -1.0) * Float64(Float64(-abs(z0)) / Float64(sin(Float64(Float64(z2 + z2) * pi)) * z3)))) * 2.0)))))); else tmp = Float64(Float64(Float64(abs(z0) * z1) / Float64(1.0 - z1)) * Float64(abs(z0) / Float64(1.0 - cos(Float64(atan(Float64(tan(Float64(0.5 * pi)) * Float64(abs(z0) / z3))) * 2.0))))); end return tmp end
function tmp_2 = code(z1, z0, z3, z2) t_0 = (abs(z0) * pi) / z3; tmp = 0.0; if (abs(z0) <= 2.7e-30) tmp = ((z1 * abs(z0)) * abs(z0)) / ((1.0 - cos((-2.0 * atan((((-1.0 * ((z2 ^ 2.0) * ((-1.0 * t_0) - (-0.3333333333333333 * t_0)))) + (-0.5 * (abs(z0) / (z3 * pi)))) / z2))))) * (1.0 - z1)); elseif (abs(z0) <= 2.65e+152) tmp = z1 * ((abs(z0) * abs(z0)) / ((1.0 - z1) * (1.0 - cos((atan(((((((((-0.08888888888888889 * (z2 * z2)) * (pi ^ 6.0)) - -64.9393940226683) * (z2 * z2)) - (2.0 * (pi * pi))) * (z2 * z2)) - -1.0) * (-abs(z0) / (sin(((z2 + z2) * pi)) * z3)))) * 2.0))))); else tmp = ((abs(z0) * z1) / (1.0 - z1)) * (abs(z0) / (1.0 - cos((atan((tan((0.5 * pi)) * (abs(z0) / z3))) * 2.0)))); end tmp_2 = tmp; end
code[z1_, z0_, z3_, z2_] := Block[{t$95$0 = N[(N[(N[Abs[z0], $MachinePrecision] * Pi), $MachinePrecision] / z3), $MachinePrecision]}, If[LessEqual[N[Abs[z0], $MachinePrecision], 2.7e-30], N[(N[(N[(z1 * N[Abs[z0], $MachinePrecision]), $MachinePrecision] * N[Abs[z0], $MachinePrecision]), $MachinePrecision] / N[(N[(1.0 - N[Cos[N[(-2.0 * N[ArcTan[N[(N[(N[(-1.0 * N[(N[Power[z2, 2.0], $MachinePrecision] * N[(N[(-1.0 * t$95$0), $MachinePrecision] - N[(-0.3333333333333333 * t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(-0.5 * N[(N[Abs[z0], $MachinePrecision] / N[(z3 * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / z2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] * N[(1.0 - z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[Abs[z0], $MachinePrecision], 2.65e+152], N[(z1 * N[(N[(N[Abs[z0], $MachinePrecision] * N[Abs[z0], $MachinePrecision]), $MachinePrecision] / N[(N[(1.0 - z1), $MachinePrecision] * N[(1.0 - N[Cos[N[(N[ArcTan[N[(N[(N[(N[(N[(N[(N[(N[(-0.08888888888888889 * N[(z2 * z2), $MachinePrecision]), $MachinePrecision] * N[Power[Pi, 6.0], $MachinePrecision]), $MachinePrecision] - -64.9393940226683), $MachinePrecision] * N[(z2 * z2), $MachinePrecision]), $MachinePrecision] - N[(2.0 * N[(Pi * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(z2 * z2), $MachinePrecision]), $MachinePrecision] - -1.0), $MachinePrecision] * N[((-N[Abs[z0], $MachinePrecision]) / N[(N[Sin[N[(N[(z2 + z2), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision] * z3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(N[Abs[z0], $MachinePrecision] * z1), $MachinePrecision] / N[(1.0 - z1), $MachinePrecision]), $MachinePrecision] * N[(N[Abs[z0], $MachinePrecision] / N[(1.0 - N[Cos[N[(N[ArcTan[N[(N[Tan[N[(0.5 * Pi), $MachinePrecision]], $MachinePrecision] * N[(N[Abs[z0], $MachinePrecision] / z3), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
t_0 := \frac{\left|z0\right| \cdot \pi}{z3}\\
\mathbf{if}\;\left|z0\right| \leq 2.7 \cdot 10^{-30}:\\
\;\;\;\;\frac{\left(z1 \cdot \left|z0\right|\right) \cdot \left|z0\right|}{\left(1 - \cos \left(-2 \cdot \tan^{-1} \left(\frac{-1 \cdot \left({z2}^{2} \cdot \left(-1 \cdot t\_0 - -0.3333333333333333 \cdot t\_0\right)\right) + -0.5 \cdot \frac{\left|z0\right|}{z3 \cdot \pi}}{z2}\right)\right)\right) \cdot \left(1 - z1\right)}\\
\mathbf{elif}\;\left|z0\right| \leq 2.65 \cdot 10^{+152}:\\
\;\;\;\;z1 \cdot \frac{\left|z0\right| \cdot \left|z0\right|}{\left(1 - z1\right) \cdot \left(1 - \cos \left(\tan^{-1} \left(\left(\left(\left(\left(-0.08888888888888889 \cdot \left(z2 \cdot z2\right)\right) \cdot {\pi}^{6} - -64.9393940226683\right) \cdot \left(z2 \cdot z2\right) - 2 \cdot \left(\pi \cdot \pi\right)\right) \cdot \left(z2 \cdot z2\right) - -1\right) \cdot \frac{-\left|z0\right|}{\sin \left(\left(z2 + z2\right) \cdot \pi\right) \cdot z3}\right) \cdot 2\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left|z0\right| \cdot z1}{1 - z1} \cdot \frac{\left|z0\right|}{1 - \cos \left(\tan^{-1} \left(\tan \left(0.5 \cdot \pi\right) \cdot \frac{\left|z0\right|}{z3}\right) \cdot 2\right)}\\
\end{array}
if z0 < 2.6999999999999999e-30Initial program 46.2%
lift-*.f64N/A
lift-/.f64N/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites53.5%
Taylor expanded in z2 around 0
lower-+.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-+.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
Applied rewrites73.5%
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f6479.5%
Applied rewrites79.5%
Taylor expanded in z2 around 0
lower-/.f64N/A
Applied rewrites58.6%
if 2.6999999999999999e-30 < z0 < 2.6499999999999999e152Initial program 46.2%
lift-*.f64N/A
lift-/.f64N/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites53.5%
Taylor expanded in z2 around 0
lower-+.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-+.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
Applied rewrites73.5%
Applied rewrites70.4%
Evaluated real constant70.4%
if 2.6499999999999999e152 < z0 Initial program 46.2%
Taylor expanded in z2 around 0
Applied rewrites47.2%
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
*-commutativeN/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
times-fracN/A
lower-*.f64N/A
lower-/.f64N/A
lower-/.f6455.5%
Applied rewrites55.5%
(FPCore (z1 z0 z3 z2)
:precision binary64
(let* ((t_0 (/ (* (fabs z0) PI) z3)))
(if (<= (fabs z0) 2.2e+113)
(/
(* (* z1 (fabs z0)) (fabs z0))
(*
(-
1.0
(cos
(*
-2.0
(atan
(/
(+
(*
-1.0
(*
(pow z2 2.0)
(- (* -1.0 t_0) (* -0.3333333333333333 t_0))))
(* -0.5 (/ (fabs z0) (* z3 PI))))
z2)))))
(- 1.0 z1)))
(*
(/ (* (fabs z0) z1) (- 1.0 z1))
(/
(fabs z0)
(-
1.0
(cos (* (atan (* (tan (* 0.5 PI)) (/ (fabs z0) z3))) 2.0))))))))double code(double z1, double z0, double z3, double z2) {
double t_0 = (fabs(z0) * ((double) M_PI)) / z3;
double tmp;
if (fabs(z0) <= 2.2e+113) {
tmp = ((z1 * fabs(z0)) * fabs(z0)) / ((1.0 - cos((-2.0 * atan((((-1.0 * (pow(z2, 2.0) * ((-1.0 * t_0) - (-0.3333333333333333 * t_0)))) + (-0.5 * (fabs(z0) / (z3 * ((double) M_PI))))) / z2))))) * (1.0 - z1));
} else {
tmp = ((fabs(z0) * z1) / (1.0 - z1)) * (fabs(z0) / (1.0 - cos((atan((tan((0.5 * ((double) M_PI))) * (fabs(z0) / z3))) * 2.0))));
}
return tmp;
}
public static double code(double z1, double z0, double z3, double z2) {
double t_0 = (Math.abs(z0) * Math.PI) / z3;
double tmp;
if (Math.abs(z0) <= 2.2e+113) {
tmp = ((z1 * Math.abs(z0)) * Math.abs(z0)) / ((1.0 - Math.cos((-2.0 * Math.atan((((-1.0 * (Math.pow(z2, 2.0) * ((-1.0 * t_0) - (-0.3333333333333333 * t_0)))) + (-0.5 * (Math.abs(z0) / (z3 * Math.PI)))) / z2))))) * (1.0 - z1));
} else {
tmp = ((Math.abs(z0) * z1) / (1.0 - z1)) * (Math.abs(z0) / (1.0 - Math.cos((Math.atan((Math.tan((0.5 * Math.PI)) * (Math.abs(z0) / z3))) * 2.0))));
}
return tmp;
}
def code(z1, z0, z3, z2): t_0 = (math.fabs(z0) * math.pi) / z3 tmp = 0 if math.fabs(z0) <= 2.2e+113: tmp = ((z1 * math.fabs(z0)) * math.fabs(z0)) / ((1.0 - math.cos((-2.0 * math.atan((((-1.0 * (math.pow(z2, 2.0) * ((-1.0 * t_0) - (-0.3333333333333333 * t_0)))) + (-0.5 * (math.fabs(z0) / (z3 * math.pi)))) / z2))))) * (1.0 - z1)) else: tmp = ((math.fabs(z0) * z1) / (1.0 - z1)) * (math.fabs(z0) / (1.0 - math.cos((math.atan((math.tan((0.5 * math.pi)) * (math.fabs(z0) / z3))) * 2.0)))) return tmp
function code(z1, z0, z3, z2) t_0 = Float64(Float64(abs(z0) * pi) / z3) tmp = 0.0 if (abs(z0) <= 2.2e+113) tmp = Float64(Float64(Float64(z1 * abs(z0)) * abs(z0)) / Float64(Float64(1.0 - cos(Float64(-2.0 * atan(Float64(Float64(Float64(-1.0 * Float64((z2 ^ 2.0) * Float64(Float64(-1.0 * t_0) - Float64(-0.3333333333333333 * t_0)))) + Float64(-0.5 * Float64(abs(z0) / Float64(z3 * pi)))) / z2))))) * Float64(1.0 - z1))); else tmp = Float64(Float64(Float64(abs(z0) * z1) / Float64(1.0 - z1)) * Float64(abs(z0) / Float64(1.0 - cos(Float64(atan(Float64(tan(Float64(0.5 * pi)) * Float64(abs(z0) / z3))) * 2.0))))); end return tmp end
function tmp_2 = code(z1, z0, z3, z2) t_0 = (abs(z0) * pi) / z3; tmp = 0.0; if (abs(z0) <= 2.2e+113) tmp = ((z1 * abs(z0)) * abs(z0)) / ((1.0 - cos((-2.0 * atan((((-1.0 * ((z2 ^ 2.0) * ((-1.0 * t_0) - (-0.3333333333333333 * t_0)))) + (-0.5 * (abs(z0) / (z3 * pi)))) / z2))))) * (1.0 - z1)); else tmp = ((abs(z0) * z1) / (1.0 - z1)) * (abs(z0) / (1.0 - cos((atan((tan((0.5 * pi)) * (abs(z0) / z3))) * 2.0)))); end tmp_2 = tmp; end
code[z1_, z0_, z3_, z2_] := Block[{t$95$0 = N[(N[(N[Abs[z0], $MachinePrecision] * Pi), $MachinePrecision] / z3), $MachinePrecision]}, If[LessEqual[N[Abs[z0], $MachinePrecision], 2.2e+113], N[(N[(N[(z1 * N[Abs[z0], $MachinePrecision]), $MachinePrecision] * N[Abs[z0], $MachinePrecision]), $MachinePrecision] / N[(N[(1.0 - N[Cos[N[(-2.0 * N[ArcTan[N[(N[(N[(-1.0 * N[(N[Power[z2, 2.0], $MachinePrecision] * N[(N[(-1.0 * t$95$0), $MachinePrecision] - N[(-0.3333333333333333 * t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(-0.5 * N[(N[Abs[z0], $MachinePrecision] / N[(z3 * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / z2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] * N[(1.0 - z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(N[Abs[z0], $MachinePrecision] * z1), $MachinePrecision] / N[(1.0 - z1), $MachinePrecision]), $MachinePrecision] * N[(N[Abs[z0], $MachinePrecision] / N[(1.0 - N[Cos[N[(N[ArcTan[N[(N[Tan[N[(0.5 * Pi), $MachinePrecision]], $MachinePrecision] * N[(N[Abs[z0], $MachinePrecision] / z3), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
t_0 := \frac{\left|z0\right| \cdot \pi}{z3}\\
\mathbf{if}\;\left|z0\right| \leq 2.2 \cdot 10^{+113}:\\
\;\;\;\;\frac{\left(z1 \cdot \left|z0\right|\right) \cdot \left|z0\right|}{\left(1 - \cos \left(-2 \cdot \tan^{-1} \left(\frac{-1 \cdot \left({z2}^{2} \cdot \left(-1 \cdot t\_0 - -0.3333333333333333 \cdot t\_0\right)\right) + -0.5 \cdot \frac{\left|z0\right|}{z3 \cdot \pi}}{z2}\right)\right)\right) \cdot \left(1 - z1\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left|z0\right| \cdot z1}{1 - z1} \cdot \frac{\left|z0\right|}{1 - \cos \left(\tan^{-1} \left(\tan \left(0.5 \cdot \pi\right) \cdot \frac{\left|z0\right|}{z3}\right) \cdot 2\right)}\\
\end{array}
if z0 < 2.2000000000000001e113Initial program 46.2%
lift-*.f64N/A
lift-/.f64N/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites53.5%
Taylor expanded in z2 around 0
lower-+.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-+.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
Applied rewrites73.5%
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f6479.5%
Applied rewrites79.5%
Taylor expanded in z2 around 0
lower-/.f64N/A
Applied rewrites58.6%
if 2.2000000000000001e113 < z0 Initial program 46.2%
Taylor expanded in z2 around 0
Applied rewrites47.2%
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
*-commutativeN/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
times-fracN/A
lower-*.f64N/A
lower-/.f64N/A
lower-/.f6455.5%
Applied rewrites55.5%
(FPCore (z1 z0 z3 z2)
:precision binary64
(let* ((t_0 (/ (* (fabs z0) PI) z3)))
(if (<= (fabs z0) 2.2e+113)
(/
(* z1 (* (fabs z0) (fabs z0)))
(*
(-
1.0
(cos
(*
-2.0
(atan
(/
(+
(*
-1.0
(*
(pow z2 2.0)
(- (* -1.0 t_0) (* -0.3333333333333333 t_0))))
(* -0.5 (/ (fabs z0) (* z3 PI))))
z2)))))
(- 1.0 z1)))
(*
(/ (* (fabs z0) z1) (- 1.0 z1))
(/
(fabs z0)
(-
1.0
(cos (* (atan (* (tan (* 0.5 PI)) (/ (fabs z0) z3))) 2.0))))))))double code(double z1, double z0, double z3, double z2) {
double t_0 = (fabs(z0) * ((double) M_PI)) / z3;
double tmp;
if (fabs(z0) <= 2.2e+113) {
tmp = (z1 * (fabs(z0) * fabs(z0))) / ((1.0 - cos((-2.0 * atan((((-1.0 * (pow(z2, 2.0) * ((-1.0 * t_0) - (-0.3333333333333333 * t_0)))) + (-0.5 * (fabs(z0) / (z3 * ((double) M_PI))))) / z2))))) * (1.0 - z1));
} else {
tmp = ((fabs(z0) * z1) / (1.0 - z1)) * (fabs(z0) / (1.0 - cos((atan((tan((0.5 * ((double) M_PI))) * (fabs(z0) / z3))) * 2.0))));
}
return tmp;
}
public static double code(double z1, double z0, double z3, double z2) {
double t_0 = (Math.abs(z0) * Math.PI) / z3;
double tmp;
if (Math.abs(z0) <= 2.2e+113) {
tmp = (z1 * (Math.abs(z0) * Math.abs(z0))) / ((1.0 - Math.cos((-2.0 * Math.atan((((-1.0 * (Math.pow(z2, 2.0) * ((-1.0 * t_0) - (-0.3333333333333333 * t_0)))) + (-0.5 * (Math.abs(z0) / (z3 * Math.PI)))) / z2))))) * (1.0 - z1));
} else {
tmp = ((Math.abs(z0) * z1) / (1.0 - z1)) * (Math.abs(z0) / (1.0 - Math.cos((Math.atan((Math.tan((0.5 * Math.PI)) * (Math.abs(z0) / z3))) * 2.0))));
}
return tmp;
}
def code(z1, z0, z3, z2): t_0 = (math.fabs(z0) * math.pi) / z3 tmp = 0 if math.fabs(z0) <= 2.2e+113: tmp = (z1 * (math.fabs(z0) * math.fabs(z0))) / ((1.0 - math.cos((-2.0 * math.atan((((-1.0 * (math.pow(z2, 2.0) * ((-1.0 * t_0) - (-0.3333333333333333 * t_0)))) + (-0.5 * (math.fabs(z0) / (z3 * math.pi)))) / z2))))) * (1.0 - z1)) else: tmp = ((math.fabs(z0) * z1) / (1.0 - z1)) * (math.fabs(z0) / (1.0 - math.cos((math.atan((math.tan((0.5 * math.pi)) * (math.fabs(z0) / z3))) * 2.0)))) return tmp
function code(z1, z0, z3, z2) t_0 = Float64(Float64(abs(z0) * pi) / z3) tmp = 0.0 if (abs(z0) <= 2.2e+113) tmp = Float64(Float64(z1 * Float64(abs(z0) * abs(z0))) / Float64(Float64(1.0 - cos(Float64(-2.0 * atan(Float64(Float64(Float64(-1.0 * Float64((z2 ^ 2.0) * Float64(Float64(-1.0 * t_0) - Float64(-0.3333333333333333 * t_0)))) + Float64(-0.5 * Float64(abs(z0) / Float64(z3 * pi)))) / z2))))) * Float64(1.0 - z1))); else tmp = Float64(Float64(Float64(abs(z0) * z1) / Float64(1.0 - z1)) * Float64(abs(z0) / Float64(1.0 - cos(Float64(atan(Float64(tan(Float64(0.5 * pi)) * Float64(abs(z0) / z3))) * 2.0))))); end return tmp end
function tmp_2 = code(z1, z0, z3, z2) t_0 = (abs(z0) * pi) / z3; tmp = 0.0; if (abs(z0) <= 2.2e+113) tmp = (z1 * (abs(z0) * abs(z0))) / ((1.0 - cos((-2.0 * atan((((-1.0 * ((z2 ^ 2.0) * ((-1.0 * t_0) - (-0.3333333333333333 * t_0)))) + (-0.5 * (abs(z0) / (z3 * pi)))) / z2))))) * (1.0 - z1)); else tmp = ((abs(z0) * z1) / (1.0 - z1)) * (abs(z0) / (1.0 - cos((atan((tan((0.5 * pi)) * (abs(z0) / z3))) * 2.0)))); end tmp_2 = tmp; end
code[z1_, z0_, z3_, z2_] := Block[{t$95$0 = N[(N[(N[Abs[z0], $MachinePrecision] * Pi), $MachinePrecision] / z3), $MachinePrecision]}, If[LessEqual[N[Abs[z0], $MachinePrecision], 2.2e+113], N[(N[(z1 * N[(N[Abs[z0], $MachinePrecision] * N[Abs[z0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[(1.0 - N[Cos[N[(-2.0 * N[ArcTan[N[(N[(N[(-1.0 * N[(N[Power[z2, 2.0], $MachinePrecision] * N[(N[(-1.0 * t$95$0), $MachinePrecision] - N[(-0.3333333333333333 * t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(-0.5 * N[(N[Abs[z0], $MachinePrecision] / N[(z3 * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / z2), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] * N[(1.0 - z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(N[Abs[z0], $MachinePrecision] * z1), $MachinePrecision] / N[(1.0 - z1), $MachinePrecision]), $MachinePrecision] * N[(N[Abs[z0], $MachinePrecision] / N[(1.0 - N[Cos[N[(N[ArcTan[N[(N[Tan[N[(0.5 * Pi), $MachinePrecision]], $MachinePrecision] * N[(N[Abs[z0], $MachinePrecision] / z3), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
t_0 := \frac{\left|z0\right| \cdot \pi}{z3}\\
\mathbf{if}\;\left|z0\right| \leq 2.2 \cdot 10^{+113}:\\
\;\;\;\;\frac{z1 \cdot \left(\left|z0\right| \cdot \left|z0\right|\right)}{\left(1 - \cos \left(-2 \cdot \tan^{-1} \left(\frac{-1 \cdot \left({z2}^{2} \cdot \left(-1 \cdot t\_0 - -0.3333333333333333 \cdot t\_0\right)\right) + -0.5 \cdot \frac{\left|z0\right|}{z3 \cdot \pi}}{z2}\right)\right)\right) \cdot \left(1 - z1\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left|z0\right| \cdot z1}{1 - z1} \cdot \frac{\left|z0\right|}{1 - \cos \left(\tan^{-1} \left(\tan \left(0.5 \cdot \pi\right) \cdot \frac{\left|z0\right|}{z3}\right) \cdot 2\right)}\\
\end{array}
if z0 < 2.2000000000000001e113Initial program 46.2%
lift-*.f64N/A
lift-/.f64N/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites53.5%
Taylor expanded in z2 around 0
lower-+.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-+.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
Applied rewrites73.5%
Taylor expanded in z2 around 0
lower-/.f64N/A
Applied rewrites54.5%
if 2.2000000000000001e113 < z0 Initial program 46.2%
Taylor expanded in z2 around 0
Applied rewrites47.2%
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
*-commutativeN/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
times-fracN/A
lower-*.f64N/A
lower-/.f64N/A
lower-/.f6455.5%
Applied rewrites55.5%
(FPCore (z1 z0 z3 z2)
:precision binary64
(if (<= (tan (* PI (- (+ z2 z2) -0.5))) 400.0)
(*
z0
(/
(* z0 z1)
(*
(- 1.0 (cos (* (atan (* (tan (* 0.5 PI)) (/ z0 z3))) 2.0)))
(- 1.0 z1))))
(*
(/ (* z1 z0) (- 1.0 z1))
(/
z0
(- 1.0 (cos (* (atan (* (/ z0 (* (* z3 PI) z2)) -0.5)) 2.0)))))))double code(double z1, double z0, double z3, double z2) {
double tmp;
if (tan((((double) M_PI) * ((z2 + z2) - -0.5))) <= 400.0) {
tmp = z0 * ((z0 * z1) / ((1.0 - cos((atan((tan((0.5 * ((double) M_PI))) * (z0 / z3))) * 2.0))) * (1.0 - z1)));
} else {
tmp = ((z1 * z0) / (1.0 - z1)) * (z0 / (1.0 - cos((atan(((z0 / ((z3 * ((double) M_PI)) * z2)) * -0.5)) * 2.0))));
}
return tmp;
}
public static double code(double z1, double z0, double z3, double z2) {
double tmp;
if (Math.tan((Math.PI * ((z2 + z2) - -0.5))) <= 400.0) {
tmp = z0 * ((z0 * z1) / ((1.0 - Math.cos((Math.atan((Math.tan((0.5 * Math.PI)) * (z0 / z3))) * 2.0))) * (1.0 - z1)));
} else {
tmp = ((z1 * z0) / (1.0 - z1)) * (z0 / (1.0 - Math.cos((Math.atan(((z0 / ((z3 * Math.PI) * z2)) * -0.5)) * 2.0))));
}
return tmp;
}
def code(z1, z0, z3, z2): tmp = 0 if math.tan((math.pi * ((z2 + z2) - -0.5))) <= 400.0: tmp = z0 * ((z0 * z1) / ((1.0 - math.cos((math.atan((math.tan((0.5 * math.pi)) * (z0 / z3))) * 2.0))) * (1.0 - z1))) else: tmp = ((z1 * z0) / (1.0 - z1)) * (z0 / (1.0 - math.cos((math.atan(((z0 / ((z3 * math.pi) * z2)) * -0.5)) * 2.0)))) return tmp
function code(z1, z0, z3, z2) tmp = 0.0 if (tan(Float64(pi * Float64(Float64(z2 + z2) - -0.5))) <= 400.0) tmp = Float64(z0 * Float64(Float64(z0 * z1) / Float64(Float64(1.0 - cos(Float64(atan(Float64(tan(Float64(0.5 * pi)) * Float64(z0 / z3))) * 2.0))) * Float64(1.0 - z1)))); else tmp = Float64(Float64(Float64(z1 * z0) / Float64(1.0 - z1)) * Float64(z0 / Float64(1.0 - cos(Float64(atan(Float64(Float64(z0 / Float64(Float64(z3 * pi) * z2)) * -0.5)) * 2.0))))); end return tmp end
function tmp_2 = code(z1, z0, z3, z2) tmp = 0.0; if (tan((pi * ((z2 + z2) - -0.5))) <= 400.0) tmp = z0 * ((z0 * z1) / ((1.0 - cos((atan((tan((0.5 * pi)) * (z0 / z3))) * 2.0))) * (1.0 - z1))); else tmp = ((z1 * z0) / (1.0 - z1)) * (z0 / (1.0 - cos((atan(((z0 / ((z3 * pi) * z2)) * -0.5)) * 2.0)))); end tmp_2 = tmp; end
code[z1_, z0_, z3_, z2_] := If[LessEqual[N[Tan[N[(Pi * N[(N[(z2 + z2), $MachinePrecision] - -0.5), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], 400.0], N[(z0 * N[(N[(z0 * z1), $MachinePrecision] / N[(N[(1.0 - N[Cos[N[(N[ArcTan[N[(N[Tan[N[(0.5 * Pi), $MachinePrecision]], $MachinePrecision] * N[(z0 / z3), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] * N[(1.0 - z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(z1 * z0), $MachinePrecision] / N[(1.0 - z1), $MachinePrecision]), $MachinePrecision] * N[(z0 / N[(1.0 - N[Cos[N[(N[ArcTan[N[(N[(z0 / N[(N[(z3 * Pi), $MachinePrecision] * z2), $MachinePrecision]), $MachinePrecision] * -0.5), $MachinePrecision]], $MachinePrecision] * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\mathbf{if}\;\tan \left(\pi \cdot \left(\left(z2 + z2\right) - -0.5\right)\right) \leq 400:\\
\;\;\;\;z0 \cdot \frac{z0 \cdot z1}{\left(1 - \cos \left(\tan^{-1} \left(\tan \left(0.5 \cdot \pi\right) \cdot \frac{z0}{z3}\right) \cdot 2\right)\right) \cdot \left(1 - z1\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{z1 \cdot z0}{1 - z1} \cdot \frac{z0}{1 - \cos \left(\tan^{-1} \left(\frac{z0}{\left(z3 \cdot \pi\right) \cdot z2} \cdot -0.5\right) \cdot 2\right)}\\
\end{array}
if (tan.f64 (*.f64 (PI.f64) (-.f64 (+.f64 z2 z2) #s(literal -1/2 binary64)))) < 400Initial program 46.2%
Taylor expanded in z2 around 0
Applied rewrites47.2%
lift-/.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
associate-/l*N/A
lower-*.f64N/A
lower-/.f6455.4%
Applied rewrites55.4%
if 400 < (tan.f64 (*.f64 (PI.f64) (-.f64 (+.f64 z2 z2) #s(literal -1/2 binary64)))) Initial program 46.2%
lift-*.f64N/A
lift-/.f64N/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites53.5%
Taylor expanded in z2 around 0
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f6447.0%
Applied rewrites47.0%
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lift-*.f64N/A
*-commutativeN/A
times-fracN/A
Applied rewrites54.6%
(FPCore (z1 z0 z3 z2)
:precision binary64
(let* ((t_0
(/
(* z1 (* z0 z0))
(*
(-
1.0
(cos
(*
-2.0
(atan (* (/ z0 z3) (tan (* PI (- (+ z2 z2) -0.5))))))))
(- 1.0 z1))))
(t_1
(*
(/ (* z1 z0) (- 1.0 z1))
(/
z0
(-
1.0
(cos (* (atan (* (/ z0 (* (* z3 PI) z2)) -0.5)) 2.0)))))))
(if (<= t_0 -2e-312)
t_1
(if (<= t_0 1e-136)
(*
(/
(* z0 z0)
(*
(- 1.0 (cos (* (atan (* (tan (* 0.5 PI)) (/ z0 z3))) 2.0)))
1.0))
z1)
t_1))))double code(double z1, double z0, double z3, double z2) {
double t_0 = (z1 * (z0 * z0)) / ((1.0 - cos((-2.0 * atan(((z0 / z3) * tan((((double) M_PI) * ((z2 + z2) - -0.5)))))))) * (1.0 - z1));
double t_1 = ((z1 * z0) / (1.0 - z1)) * (z0 / (1.0 - cos((atan(((z0 / ((z3 * ((double) M_PI)) * z2)) * -0.5)) * 2.0))));
double tmp;
if (t_0 <= -2e-312) {
tmp = t_1;
} else if (t_0 <= 1e-136) {
tmp = ((z0 * z0) / ((1.0 - cos((atan((tan((0.5 * ((double) M_PI))) * (z0 / z3))) * 2.0))) * 1.0)) * z1;
} else {
tmp = t_1;
}
return tmp;
}
public static double code(double z1, double z0, double z3, double z2) {
double t_0 = (z1 * (z0 * z0)) / ((1.0 - Math.cos((-2.0 * Math.atan(((z0 / z3) * Math.tan((Math.PI * ((z2 + z2) - -0.5)))))))) * (1.0 - z1));
double t_1 = ((z1 * z0) / (1.0 - z1)) * (z0 / (1.0 - Math.cos((Math.atan(((z0 / ((z3 * Math.PI) * z2)) * -0.5)) * 2.0))));
double tmp;
if (t_0 <= -2e-312) {
tmp = t_1;
} else if (t_0 <= 1e-136) {
tmp = ((z0 * z0) / ((1.0 - Math.cos((Math.atan((Math.tan((0.5 * Math.PI)) * (z0 / z3))) * 2.0))) * 1.0)) * z1;
} else {
tmp = t_1;
}
return tmp;
}
def code(z1, z0, z3, z2): t_0 = (z1 * (z0 * z0)) / ((1.0 - math.cos((-2.0 * math.atan(((z0 / z3) * math.tan((math.pi * ((z2 + z2) - -0.5)))))))) * (1.0 - z1)) t_1 = ((z1 * z0) / (1.0 - z1)) * (z0 / (1.0 - math.cos((math.atan(((z0 / ((z3 * math.pi) * z2)) * -0.5)) * 2.0)))) tmp = 0 if t_0 <= -2e-312: tmp = t_1 elif t_0 <= 1e-136: tmp = ((z0 * z0) / ((1.0 - math.cos((math.atan((math.tan((0.5 * math.pi)) * (z0 / z3))) * 2.0))) * 1.0)) * z1 else: tmp = t_1 return tmp
function code(z1, z0, z3, z2) t_0 = Float64(Float64(z1 * Float64(z0 * z0)) / Float64(Float64(1.0 - cos(Float64(-2.0 * atan(Float64(Float64(z0 / z3) * tan(Float64(pi * Float64(Float64(z2 + z2) - -0.5)))))))) * Float64(1.0 - z1))) t_1 = Float64(Float64(Float64(z1 * z0) / Float64(1.0 - z1)) * Float64(z0 / Float64(1.0 - cos(Float64(atan(Float64(Float64(z0 / Float64(Float64(z3 * pi) * z2)) * -0.5)) * 2.0))))) tmp = 0.0 if (t_0 <= -2e-312) tmp = t_1; elseif (t_0 <= 1e-136) tmp = Float64(Float64(Float64(z0 * z0) / Float64(Float64(1.0 - cos(Float64(atan(Float64(tan(Float64(0.5 * pi)) * Float64(z0 / z3))) * 2.0))) * 1.0)) * z1); else tmp = t_1; end return tmp end
function tmp_2 = code(z1, z0, z3, z2) t_0 = (z1 * (z0 * z0)) / ((1.0 - cos((-2.0 * atan(((z0 / z3) * tan((pi * ((z2 + z2) - -0.5)))))))) * (1.0 - z1)); t_1 = ((z1 * z0) / (1.0 - z1)) * (z0 / (1.0 - cos((atan(((z0 / ((z3 * pi) * z2)) * -0.5)) * 2.0)))); tmp = 0.0; if (t_0 <= -2e-312) tmp = t_1; elseif (t_0 <= 1e-136) tmp = ((z0 * z0) / ((1.0 - cos((atan((tan((0.5 * pi)) * (z0 / z3))) * 2.0))) * 1.0)) * z1; else tmp = t_1; end tmp_2 = tmp; end
code[z1_, z0_, z3_, z2_] := Block[{t$95$0 = N[(N[(z1 * N[(z0 * z0), $MachinePrecision]), $MachinePrecision] / N[(N[(1.0 - N[Cos[N[(-2.0 * N[ArcTan[N[(N[(z0 / z3), $MachinePrecision] * N[Tan[N[(Pi * N[(N[(z2 + z2), $MachinePrecision] - -0.5), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] * N[(1.0 - z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(N[(z1 * z0), $MachinePrecision] / N[(1.0 - z1), $MachinePrecision]), $MachinePrecision] * N[(z0 / N[(1.0 - N[Cos[N[(N[ArcTan[N[(N[(z0 / N[(N[(z3 * Pi), $MachinePrecision] * z2), $MachinePrecision]), $MachinePrecision] * -0.5), $MachinePrecision]], $MachinePrecision] * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$0, -2e-312], t$95$1, If[LessEqual[t$95$0, 1e-136], N[(N[(N[(z0 * z0), $MachinePrecision] / N[(N[(1.0 - N[Cos[N[(N[ArcTan[N[(N[Tan[N[(0.5 * Pi), $MachinePrecision]], $MachinePrecision] * N[(z0 / z3), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] * 1.0), $MachinePrecision]), $MachinePrecision] * z1), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
t_0 := \frac{z1 \cdot \left(z0 \cdot z0\right)}{\left(1 - \cos \left(-2 \cdot \tan^{-1} \left(\frac{z0}{z3} \cdot \tan \left(\pi \cdot \left(\left(z2 + z2\right) - -0.5\right)\right)\right)\right)\right) \cdot \left(1 - z1\right)}\\
t_1 := \frac{z1 \cdot z0}{1 - z1} \cdot \frac{z0}{1 - \cos \left(\tan^{-1} \left(\frac{z0}{\left(z3 \cdot \pi\right) \cdot z2} \cdot -0.5\right) \cdot 2\right)}\\
\mathbf{if}\;t\_0 \leq -2 \cdot 10^{-312}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t\_0 \leq 10^{-136}:\\
\;\;\;\;\frac{z0 \cdot z0}{\left(1 - \cos \left(\tan^{-1} \left(\tan \left(0.5 \cdot \pi\right) \cdot \frac{z0}{z3}\right) \cdot 2\right)\right) \cdot 1} \cdot z1\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
if (/.f64 (*.f64 z1 (*.f64 z0 z0)) (*.f64 (-.f64 #s(literal 1 binary64) (cos.f64 (*.f64 #s(literal -2 binary64) (atan.f64 (*.f64 (/.f64 z0 z3) (tan.f64 (*.f64 (PI.f64) (-.f64 (+.f64 z2 z2) #s(literal -1/2 binary64))))))))) (-.f64 #s(literal 1 binary64) z1))) < -2.0000000000018713e-312 or 1e-136 < (/.f64 (*.f64 z1 (*.f64 z0 z0)) (*.f64 (-.f64 #s(literal 1 binary64) (cos.f64 (*.f64 #s(literal -2 binary64) (atan.f64 (*.f64 (/.f64 z0 z3) (tan.f64 (*.f64 (PI.f64) (-.f64 (+.f64 z2 z2) #s(literal -1/2 binary64))))))))) (-.f64 #s(literal 1 binary64) z1))) Initial program 46.2%
lift-*.f64N/A
lift-/.f64N/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites53.5%
Taylor expanded in z2 around 0
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f6447.0%
Applied rewrites47.0%
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lift-*.f64N/A
*-commutativeN/A
times-fracN/A
Applied rewrites54.6%
if -2.0000000000018713e-312 < (/.f64 (*.f64 z1 (*.f64 z0 z0)) (*.f64 (-.f64 #s(literal 1 binary64) (cos.f64 (*.f64 #s(literal -2 binary64) (atan.f64 (*.f64 (/.f64 z0 z3) (tan.f64 (*.f64 (PI.f64) (-.f64 (+.f64 z2 z2) #s(literal -1/2 binary64))))))))) (-.f64 #s(literal 1 binary64) z1))) < 1e-136Initial program 46.2%
Taylor expanded in z2 around 0
Applied rewrites47.2%
Taylor expanded in z1 around 0
Applied rewrites31.7%
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-*.f64N/A
Applied rewrites31.8%
(FPCore (z1 z0 z3 z2)
:precision binary64
(let* ((t_0
(/
(* z1 (* z0 z0))
(*
(-
1.0
(cos
(*
-2.0
(atan (* (/ z0 z3) (tan (* PI (- (+ z2 z2) -0.5))))))))
(- 1.0 z1))))
(t_1
(*
(/ (* z1 z0) (- 1.0 z1))
(/
z0
(-
1.0
(cos (* (atan (* (/ z0 (* (* z3 PI) z2)) -0.5)) 2.0)))))))
(if (<= t_0 -2e-312)
t_1
(if (<= t_0 INFINITY)
(*
(* z0 z1)
(/
z0
(*
(- 1.0 (cos (* (atan (* (tan (* 0.5 PI)) (/ z0 z3))) 2.0)))
1.0)))
t_1))))double code(double z1, double z0, double z3, double z2) {
double t_0 = (z1 * (z0 * z0)) / ((1.0 - cos((-2.0 * atan(((z0 / z3) * tan((((double) M_PI) * ((z2 + z2) - -0.5)))))))) * (1.0 - z1));
double t_1 = ((z1 * z0) / (1.0 - z1)) * (z0 / (1.0 - cos((atan(((z0 / ((z3 * ((double) M_PI)) * z2)) * -0.5)) * 2.0))));
double tmp;
if (t_0 <= -2e-312) {
tmp = t_1;
} else if (t_0 <= ((double) INFINITY)) {
tmp = (z0 * z1) * (z0 / ((1.0 - cos((atan((tan((0.5 * ((double) M_PI))) * (z0 / z3))) * 2.0))) * 1.0));
} else {
tmp = t_1;
}
return tmp;
}
public static double code(double z1, double z0, double z3, double z2) {
double t_0 = (z1 * (z0 * z0)) / ((1.0 - Math.cos((-2.0 * Math.atan(((z0 / z3) * Math.tan((Math.PI * ((z2 + z2) - -0.5)))))))) * (1.0 - z1));
double t_1 = ((z1 * z0) / (1.0 - z1)) * (z0 / (1.0 - Math.cos((Math.atan(((z0 / ((z3 * Math.PI) * z2)) * -0.5)) * 2.0))));
double tmp;
if (t_0 <= -2e-312) {
tmp = t_1;
} else if (t_0 <= Double.POSITIVE_INFINITY) {
tmp = (z0 * z1) * (z0 / ((1.0 - Math.cos((Math.atan((Math.tan((0.5 * Math.PI)) * (z0 / z3))) * 2.0))) * 1.0));
} else {
tmp = t_1;
}
return tmp;
}
def code(z1, z0, z3, z2): t_0 = (z1 * (z0 * z0)) / ((1.0 - math.cos((-2.0 * math.atan(((z0 / z3) * math.tan((math.pi * ((z2 + z2) - -0.5)))))))) * (1.0 - z1)) t_1 = ((z1 * z0) / (1.0 - z1)) * (z0 / (1.0 - math.cos((math.atan(((z0 / ((z3 * math.pi) * z2)) * -0.5)) * 2.0)))) tmp = 0 if t_0 <= -2e-312: tmp = t_1 elif t_0 <= math.inf: tmp = (z0 * z1) * (z0 / ((1.0 - math.cos((math.atan((math.tan((0.5 * math.pi)) * (z0 / z3))) * 2.0))) * 1.0)) else: tmp = t_1 return tmp
function code(z1, z0, z3, z2) t_0 = Float64(Float64(z1 * Float64(z0 * z0)) / Float64(Float64(1.0 - cos(Float64(-2.0 * atan(Float64(Float64(z0 / z3) * tan(Float64(pi * Float64(Float64(z2 + z2) - -0.5)))))))) * Float64(1.0 - z1))) t_1 = Float64(Float64(Float64(z1 * z0) / Float64(1.0 - z1)) * Float64(z0 / Float64(1.0 - cos(Float64(atan(Float64(Float64(z0 / Float64(Float64(z3 * pi) * z2)) * -0.5)) * 2.0))))) tmp = 0.0 if (t_0 <= -2e-312) tmp = t_1; elseif (t_0 <= Inf) tmp = Float64(Float64(z0 * z1) * Float64(z0 / Float64(Float64(1.0 - cos(Float64(atan(Float64(tan(Float64(0.5 * pi)) * Float64(z0 / z3))) * 2.0))) * 1.0))); else tmp = t_1; end return tmp end
function tmp_2 = code(z1, z0, z3, z2) t_0 = (z1 * (z0 * z0)) / ((1.0 - cos((-2.0 * atan(((z0 / z3) * tan((pi * ((z2 + z2) - -0.5)))))))) * (1.0 - z1)); t_1 = ((z1 * z0) / (1.0 - z1)) * (z0 / (1.0 - cos((atan(((z0 / ((z3 * pi) * z2)) * -0.5)) * 2.0)))); tmp = 0.0; if (t_0 <= -2e-312) tmp = t_1; elseif (t_0 <= Inf) tmp = (z0 * z1) * (z0 / ((1.0 - cos((atan((tan((0.5 * pi)) * (z0 / z3))) * 2.0))) * 1.0)); else tmp = t_1; end tmp_2 = tmp; end
code[z1_, z0_, z3_, z2_] := Block[{t$95$0 = N[(N[(z1 * N[(z0 * z0), $MachinePrecision]), $MachinePrecision] / N[(N[(1.0 - N[Cos[N[(-2.0 * N[ArcTan[N[(N[(z0 / z3), $MachinePrecision] * N[Tan[N[(Pi * N[(N[(z2 + z2), $MachinePrecision] - -0.5), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] * N[(1.0 - z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(N[(z1 * z0), $MachinePrecision] / N[(1.0 - z1), $MachinePrecision]), $MachinePrecision] * N[(z0 / N[(1.0 - N[Cos[N[(N[ArcTan[N[(N[(z0 / N[(N[(z3 * Pi), $MachinePrecision] * z2), $MachinePrecision]), $MachinePrecision] * -0.5), $MachinePrecision]], $MachinePrecision] * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$0, -2e-312], t$95$1, If[LessEqual[t$95$0, Infinity], N[(N[(z0 * z1), $MachinePrecision] * N[(z0 / N[(N[(1.0 - N[Cos[N[(N[ArcTan[N[(N[Tan[N[(0.5 * Pi), $MachinePrecision]], $MachinePrecision] * N[(z0 / z3), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] * 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
t_0 := \frac{z1 \cdot \left(z0 \cdot z0\right)}{\left(1 - \cos \left(-2 \cdot \tan^{-1} \left(\frac{z0}{z3} \cdot \tan \left(\pi \cdot \left(\left(z2 + z2\right) - -0.5\right)\right)\right)\right)\right) \cdot \left(1 - z1\right)}\\
t_1 := \frac{z1 \cdot z0}{1 - z1} \cdot \frac{z0}{1 - \cos \left(\tan^{-1} \left(\frac{z0}{\left(z3 \cdot \pi\right) \cdot z2} \cdot -0.5\right) \cdot 2\right)}\\
\mathbf{if}\;t\_0 \leq -2 \cdot 10^{-312}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t\_0 \leq \infty:\\
\;\;\;\;\left(z0 \cdot z1\right) \cdot \frac{z0}{\left(1 - \cos \left(\tan^{-1} \left(\tan \left(0.5 \cdot \pi\right) \cdot \frac{z0}{z3}\right) \cdot 2\right)\right) \cdot 1}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
if (/.f64 (*.f64 z1 (*.f64 z0 z0)) (*.f64 (-.f64 #s(literal 1 binary64) (cos.f64 (*.f64 #s(literal -2 binary64) (atan.f64 (*.f64 (/.f64 z0 z3) (tan.f64 (*.f64 (PI.f64) (-.f64 (+.f64 z2 z2) #s(literal -1/2 binary64))))))))) (-.f64 #s(literal 1 binary64) z1))) < -2.0000000000018713e-312 or +inf.0 < (/.f64 (*.f64 z1 (*.f64 z0 z0)) (*.f64 (-.f64 #s(literal 1 binary64) (cos.f64 (*.f64 #s(literal -2 binary64) (atan.f64 (*.f64 (/.f64 z0 z3) (tan.f64 (*.f64 (PI.f64) (-.f64 (+.f64 z2 z2) #s(literal -1/2 binary64))))))))) (-.f64 #s(literal 1 binary64) z1))) Initial program 46.2%
lift-*.f64N/A
lift-/.f64N/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites53.5%
Taylor expanded in z2 around 0
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f6447.0%
Applied rewrites47.0%
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lift-*.f64N/A
*-commutativeN/A
times-fracN/A
Applied rewrites54.6%
if -2.0000000000018713e-312 < (/.f64 (*.f64 z1 (*.f64 z0 z0)) (*.f64 (-.f64 #s(literal 1 binary64) (cos.f64 (*.f64 #s(literal -2 binary64) (atan.f64 (*.f64 (/.f64 z0 z3) (tan.f64 (*.f64 (PI.f64) (-.f64 (+.f64 z2 z2) #s(literal -1/2 binary64))))))))) (-.f64 #s(literal 1 binary64) z1))) < +inf.0Initial program 46.2%
Taylor expanded in z2 around 0
Applied rewrites47.2%
Taylor expanded in z1 around 0
Applied rewrites31.7%
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
associate-/l*N/A
lower-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lower-/.f6436.4%
Applied rewrites36.4%
(FPCore (z1 z0 z3 z2)
:precision binary64
(let* ((t_0 (- (+ z2 z2) -0.5)))
(if (<= (* PI t_0) 5e+206)
(*
(/ (* z1 z0) (- 1.0 z1))
(/
z0
(- 1.0 (cos (* (atan (* (/ z0 (* (* z3 PI) z2)) -0.5)) 2.0)))))
(/
(* z0 z0)
(- (cos (* (atan (* (/ z0 z3) (tan (* t_0 PI)))) -2.0)) 1.0)))))double code(double z1, double z0, double z3, double z2) {
double t_0 = (z2 + z2) - -0.5;
double tmp;
if ((((double) M_PI) * t_0) <= 5e+206) {
tmp = ((z1 * z0) / (1.0 - z1)) * (z0 / (1.0 - cos((atan(((z0 / ((z3 * ((double) M_PI)) * z2)) * -0.5)) * 2.0))));
} else {
tmp = (z0 * z0) / (cos((atan(((z0 / z3) * tan((t_0 * ((double) M_PI))))) * -2.0)) - 1.0);
}
return tmp;
}
public static double code(double z1, double z0, double z3, double z2) {
double t_0 = (z2 + z2) - -0.5;
double tmp;
if ((Math.PI * t_0) <= 5e+206) {
tmp = ((z1 * z0) / (1.0 - z1)) * (z0 / (1.0 - Math.cos((Math.atan(((z0 / ((z3 * Math.PI) * z2)) * -0.5)) * 2.0))));
} else {
tmp = (z0 * z0) / (Math.cos((Math.atan(((z0 / z3) * Math.tan((t_0 * Math.PI)))) * -2.0)) - 1.0);
}
return tmp;
}
def code(z1, z0, z3, z2): t_0 = (z2 + z2) - -0.5 tmp = 0 if (math.pi * t_0) <= 5e+206: tmp = ((z1 * z0) / (1.0 - z1)) * (z0 / (1.0 - math.cos((math.atan(((z0 / ((z3 * math.pi) * z2)) * -0.5)) * 2.0)))) else: tmp = (z0 * z0) / (math.cos((math.atan(((z0 / z3) * math.tan((t_0 * math.pi)))) * -2.0)) - 1.0) return tmp
function code(z1, z0, z3, z2) t_0 = Float64(Float64(z2 + z2) - -0.5) tmp = 0.0 if (Float64(pi * t_0) <= 5e+206) tmp = Float64(Float64(Float64(z1 * z0) / Float64(1.0 - z1)) * Float64(z0 / Float64(1.0 - cos(Float64(atan(Float64(Float64(z0 / Float64(Float64(z3 * pi) * z2)) * -0.5)) * 2.0))))); else tmp = Float64(Float64(z0 * z0) / Float64(cos(Float64(atan(Float64(Float64(z0 / z3) * tan(Float64(t_0 * pi)))) * -2.0)) - 1.0)); end return tmp end
function tmp_2 = code(z1, z0, z3, z2) t_0 = (z2 + z2) - -0.5; tmp = 0.0; if ((pi * t_0) <= 5e+206) tmp = ((z1 * z0) / (1.0 - z1)) * (z0 / (1.0 - cos((atan(((z0 / ((z3 * pi) * z2)) * -0.5)) * 2.0)))); else tmp = (z0 * z0) / (cos((atan(((z0 / z3) * tan((t_0 * pi)))) * -2.0)) - 1.0); end tmp_2 = tmp; end
code[z1_, z0_, z3_, z2_] := Block[{t$95$0 = N[(N[(z2 + z2), $MachinePrecision] - -0.5), $MachinePrecision]}, If[LessEqual[N[(Pi * t$95$0), $MachinePrecision], 5e+206], N[(N[(N[(z1 * z0), $MachinePrecision] / N[(1.0 - z1), $MachinePrecision]), $MachinePrecision] * N[(z0 / N[(1.0 - N[Cos[N[(N[ArcTan[N[(N[(z0 / N[(N[(z3 * Pi), $MachinePrecision] * z2), $MachinePrecision]), $MachinePrecision] * -0.5), $MachinePrecision]], $MachinePrecision] * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(z0 * z0), $MachinePrecision] / N[(N[Cos[N[(N[ArcTan[N[(N[(z0 / z3), $MachinePrecision] * N[Tan[N[(t$95$0 * Pi), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * -2.0), $MachinePrecision]], $MachinePrecision] - 1.0), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
t_0 := \left(z2 + z2\right) - -0.5\\
\mathbf{if}\;\pi \cdot t\_0 \leq 5 \cdot 10^{+206}:\\
\;\;\;\;\frac{z1 \cdot z0}{1 - z1} \cdot \frac{z0}{1 - \cos \left(\tan^{-1} \left(\frac{z0}{\left(z3 \cdot \pi\right) \cdot z2} \cdot -0.5\right) \cdot 2\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{z0 \cdot z0}{\cos \left(\tan^{-1} \left(\frac{z0}{z3} \cdot \tan \left(t\_0 \cdot \pi\right)\right) \cdot -2\right) - 1}\\
\end{array}
if (*.f64 (PI.f64) (-.f64 (+.f64 z2 z2) #s(literal -1/2 binary64))) < 5.0000000000000002e206Initial program 46.2%
lift-*.f64N/A
lift-/.f64N/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites53.5%
Taylor expanded in z2 around 0
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f6447.0%
Applied rewrites47.0%
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lift-*.f64N/A
*-commutativeN/A
times-fracN/A
Applied rewrites54.6%
if 5.0000000000000002e206 < (*.f64 (PI.f64) (-.f64 (+.f64 z2 z2) #s(literal -1/2 binary64))) Initial program 46.2%
lift-*.f64N/A
lift-/.f64N/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites53.5%
Taylor expanded in z1 around inf
lower-*.f64N/A
lower-/.f64N/A
lower-pow.f64N/A
lower--.f64N/A
lower-cos.f64N/A
Applied rewrites38.9%
Applied rewrites31.5%
(FPCore (z1 z0 z3 z2)
:precision binary64
(let* ((t_0
(/
(* (* z1 (fabs z0)) (fabs z0))
(*
(-
1.0
(cos
(* -2.0 (atan (* -0.5 (/ (fabs z0) (* z2 (* z3 PI))))))))
(- 1.0 z1)))))
(if (<= (fabs z0) 5e-30)
t_0
(if (<= (fabs z0) 3.7e+153)
(*
z1
(/
(* (fabs z0) (fabs z0))
(*
(-
1.0
(cos
(* (atan (* (/ (fabs z0) (* (* z3 PI) z2)) -0.5)) 2.0)))
(- 1.0 z1))))
t_0))))double code(double z1, double z0, double z3, double z2) {
double t_0 = ((z1 * fabs(z0)) * fabs(z0)) / ((1.0 - cos((-2.0 * atan((-0.5 * (fabs(z0) / (z2 * (z3 * ((double) M_PI))))))))) * (1.0 - z1));
double tmp;
if (fabs(z0) <= 5e-30) {
tmp = t_0;
} else if (fabs(z0) <= 3.7e+153) {
tmp = z1 * ((fabs(z0) * fabs(z0)) / ((1.0 - cos((atan(((fabs(z0) / ((z3 * ((double) M_PI)) * z2)) * -0.5)) * 2.0))) * (1.0 - z1)));
} else {
tmp = t_0;
}
return tmp;
}
public static double code(double z1, double z0, double z3, double z2) {
double t_0 = ((z1 * Math.abs(z0)) * Math.abs(z0)) / ((1.0 - Math.cos((-2.0 * Math.atan((-0.5 * (Math.abs(z0) / (z2 * (z3 * Math.PI)))))))) * (1.0 - z1));
double tmp;
if (Math.abs(z0) <= 5e-30) {
tmp = t_0;
} else if (Math.abs(z0) <= 3.7e+153) {
tmp = z1 * ((Math.abs(z0) * Math.abs(z0)) / ((1.0 - Math.cos((Math.atan(((Math.abs(z0) / ((z3 * Math.PI) * z2)) * -0.5)) * 2.0))) * (1.0 - z1)));
} else {
tmp = t_0;
}
return tmp;
}
def code(z1, z0, z3, z2): t_0 = ((z1 * math.fabs(z0)) * math.fabs(z0)) / ((1.0 - math.cos((-2.0 * math.atan((-0.5 * (math.fabs(z0) / (z2 * (z3 * math.pi)))))))) * (1.0 - z1)) tmp = 0 if math.fabs(z0) <= 5e-30: tmp = t_0 elif math.fabs(z0) <= 3.7e+153: tmp = z1 * ((math.fabs(z0) * math.fabs(z0)) / ((1.0 - math.cos((math.atan(((math.fabs(z0) / ((z3 * math.pi) * z2)) * -0.5)) * 2.0))) * (1.0 - z1))) else: tmp = t_0 return tmp
function code(z1, z0, z3, z2) t_0 = Float64(Float64(Float64(z1 * abs(z0)) * abs(z0)) / Float64(Float64(1.0 - cos(Float64(-2.0 * atan(Float64(-0.5 * Float64(abs(z0) / Float64(z2 * Float64(z3 * pi)))))))) * Float64(1.0 - z1))) tmp = 0.0 if (abs(z0) <= 5e-30) tmp = t_0; elseif (abs(z0) <= 3.7e+153) tmp = Float64(z1 * Float64(Float64(abs(z0) * abs(z0)) / Float64(Float64(1.0 - cos(Float64(atan(Float64(Float64(abs(z0) / Float64(Float64(z3 * pi) * z2)) * -0.5)) * 2.0))) * Float64(1.0 - z1)))); else tmp = t_0; end return tmp end
function tmp_2 = code(z1, z0, z3, z2) t_0 = ((z1 * abs(z0)) * abs(z0)) / ((1.0 - cos((-2.0 * atan((-0.5 * (abs(z0) / (z2 * (z3 * pi)))))))) * (1.0 - z1)); tmp = 0.0; if (abs(z0) <= 5e-30) tmp = t_0; elseif (abs(z0) <= 3.7e+153) tmp = z1 * ((abs(z0) * abs(z0)) / ((1.0 - cos((atan(((abs(z0) / ((z3 * pi) * z2)) * -0.5)) * 2.0))) * (1.0 - z1))); else tmp = t_0; end tmp_2 = tmp; end
code[z1_, z0_, z3_, z2_] := Block[{t$95$0 = N[(N[(N[(z1 * N[Abs[z0], $MachinePrecision]), $MachinePrecision] * N[Abs[z0], $MachinePrecision]), $MachinePrecision] / N[(N[(1.0 - N[Cos[N[(-2.0 * N[ArcTan[N[(-0.5 * N[(N[Abs[z0], $MachinePrecision] / N[(z2 * N[(z3 * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] * N[(1.0 - z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[Abs[z0], $MachinePrecision], 5e-30], t$95$0, If[LessEqual[N[Abs[z0], $MachinePrecision], 3.7e+153], N[(z1 * N[(N[(N[Abs[z0], $MachinePrecision] * N[Abs[z0], $MachinePrecision]), $MachinePrecision] / N[(N[(1.0 - N[Cos[N[(N[ArcTan[N[(N[(N[Abs[z0], $MachinePrecision] / N[(N[(z3 * Pi), $MachinePrecision] * z2), $MachinePrecision]), $MachinePrecision] * -0.5), $MachinePrecision]], $MachinePrecision] * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] * N[(1.0 - z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$0]]]
\begin{array}{l}
t_0 := \frac{\left(z1 \cdot \left|z0\right|\right) \cdot \left|z0\right|}{\left(1 - \cos \left(-2 \cdot \tan^{-1} \left(-0.5 \cdot \frac{\left|z0\right|}{z2 \cdot \left(z3 \cdot \pi\right)}\right)\right)\right) \cdot \left(1 - z1\right)}\\
\mathbf{if}\;\left|z0\right| \leq 5 \cdot 10^{-30}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;\left|z0\right| \leq 3.7 \cdot 10^{+153}:\\
\;\;\;\;z1 \cdot \frac{\left|z0\right| \cdot \left|z0\right|}{\left(1 - \cos \left(\tan^{-1} \left(\frac{\left|z0\right|}{\left(z3 \cdot \pi\right) \cdot z2} \cdot -0.5\right) \cdot 2\right)\right) \cdot \left(1 - z1\right)}\\
\mathbf{else}:\\
\;\;\;\;t\_0\\
\end{array}
if z0 < 4.9999999999999997e-30 or 3.7000000000000002e153 < z0 Initial program 46.2%
lift-*.f64N/A
lift-/.f64N/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites53.5%
Taylor expanded in z2 around 0
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f6447.0%
Applied rewrites47.0%
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f6452.0%
Applied rewrites52.0%
if 4.9999999999999997e-30 < z0 < 3.7000000000000002e153Initial program 46.2%
lift-*.f64N/A
lift-/.f64N/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites53.5%
Taylor expanded in z2 around 0
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f6447.0%
Applied rewrites47.0%
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lower-*.f64N/A
lower-/.f6448.9%
Applied rewrites48.9%
(FPCore (z1 z0 z3 z2)
:precision binary64
(if (<= (fabs z0) 3.7e+153)
(*
(/
(* (fabs z0) (fabs z0))
(-
1.0
(cos (* (atan (* (/ (fabs z0) (* (* z3 PI) z2)) -0.5)) 2.0))))
(/ z1 (- 1.0 z1)))
(/
(* (* z1 (fabs z0)) (fabs z0))
(*
(-
1.0
(cos (* -2.0 (atan (* -0.5 (/ (fabs z0) (* z2 (* z3 PI))))))))
(- 1.0 z1)))))double code(double z1, double z0, double z3, double z2) {
double tmp;
if (fabs(z0) <= 3.7e+153) {
tmp = ((fabs(z0) * fabs(z0)) / (1.0 - cos((atan(((fabs(z0) / ((z3 * ((double) M_PI)) * z2)) * -0.5)) * 2.0)))) * (z1 / (1.0 - z1));
} else {
tmp = ((z1 * fabs(z0)) * fabs(z0)) / ((1.0 - cos((-2.0 * atan((-0.5 * (fabs(z0) / (z2 * (z3 * ((double) M_PI))))))))) * (1.0 - z1));
}
return tmp;
}
public static double code(double z1, double z0, double z3, double z2) {
double tmp;
if (Math.abs(z0) <= 3.7e+153) {
tmp = ((Math.abs(z0) * Math.abs(z0)) / (1.0 - Math.cos((Math.atan(((Math.abs(z0) / ((z3 * Math.PI) * z2)) * -0.5)) * 2.0)))) * (z1 / (1.0 - z1));
} else {
tmp = ((z1 * Math.abs(z0)) * Math.abs(z0)) / ((1.0 - Math.cos((-2.0 * Math.atan((-0.5 * (Math.abs(z0) / (z2 * (z3 * Math.PI)))))))) * (1.0 - z1));
}
return tmp;
}
def code(z1, z0, z3, z2): tmp = 0 if math.fabs(z0) <= 3.7e+153: tmp = ((math.fabs(z0) * math.fabs(z0)) / (1.0 - math.cos((math.atan(((math.fabs(z0) / ((z3 * math.pi) * z2)) * -0.5)) * 2.0)))) * (z1 / (1.0 - z1)) else: tmp = ((z1 * math.fabs(z0)) * math.fabs(z0)) / ((1.0 - math.cos((-2.0 * math.atan((-0.5 * (math.fabs(z0) / (z2 * (z3 * math.pi)))))))) * (1.0 - z1)) return tmp
function code(z1, z0, z3, z2) tmp = 0.0 if (abs(z0) <= 3.7e+153) tmp = Float64(Float64(Float64(abs(z0) * abs(z0)) / Float64(1.0 - cos(Float64(atan(Float64(Float64(abs(z0) / Float64(Float64(z3 * pi) * z2)) * -0.5)) * 2.0)))) * Float64(z1 / Float64(1.0 - z1))); else tmp = Float64(Float64(Float64(z1 * abs(z0)) * abs(z0)) / Float64(Float64(1.0 - cos(Float64(-2.0 * atan(Float64(-0.5 * Float64(abs(z0) / Float64(z2 * Float64(z3 * pi)))))))) * Float64(1.0 - z1))); end return tmp end
function tmp_2 = code(z1, z0, z3, z2) tmp = 0.0; if (abs(z0) <= 3.7e+153) tmp = ((abs(z0) * abs(z0)) / (1.0 - cos((atan(((abs(z0) / ((z3 * pi) * z2)) * -0.5)) * 2.0)))) * (z1 / (1.0 - z1)); else tmp = ((z1 * abs(z0)) * abs(z0)) / ((1.0 - cos((-2.0 * atan((-0.5 * (abs(z0) / (z2 * (z3 * pi)))))))) * (1.0 - z1)); end tmp_2 = tmp; end
code[z1_, z0_, z3_, z2_] := If[LessEqual[N[Abs[z0], $MachinePrecision], 3.7e+153], N[(N[(N[(N[Abs[z0], $MachinePrecision] * N[Abs[z0], $MachinePrecision]), $MachinePrecision] / N[(1.0 - N[Cos[N[(N[ArcTan[N[(N[(N[Abs[z0], $MachinePrecision] / N[(N[(z3 * Pi), $MachinePrecision] * z2), $MachinePrecision]), $MachinePrecision] * -0.5), $MachinePrecision]], $MachinePrecision] * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(z1 / N[(1.0 - z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(z1 * N[Abs[z0], $MachinePrecision]), $MachinePrecision] * N[Abs[z0], $MachinePrecision]), $MachinePrecision] / N[(N[(1.0 - N[Cos[N[(-2.0 * N[ArcTan[N[(-0.5 * N[(N[Abs[z0], $MachinePrecision] / N[(z2 * N[(z3 * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] * N[(1.0 - z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\mathbf{if}\;\left|z0\right| \leq 3.7 \cdot 10^{+153}:\\
\;\;\;\;\frac{\left|z0\right| \cdot \left|z0\right|}{1 - \cos \left(\tan^{-1} \left(\frac{\left|z0\right|}{\left(z3 \cdot \pi\right) \cdot z2} \cdot -0.5\right) \cdot 2\right)} \cdot \frac{z1}{1 - z1}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(z1 \cdot \left|z0\right|\right) \cdot \left|z0\right|}{\left(1 - \cos \left(-2 \cdot \tan^{-1} \left(-0.5 \cdot \frac{\left|z0\right|}{z2 \cdot \left(z3 \cdot \pi\right)}\right)\right)\right) \cdot \left(1 - z1\right)}\\
\end{array}
if z0 < 3.7000000000000002e153Initial program 46.2%
lift-*.f64N/A
lift-/.f64N/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites53.5%
Taylor expanded in z2 around 0
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f6447.0%
Applied rewrites47.0%
lift-/.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
times-fracN/A
lower-*.f64N/A
Applied rewrites51.0%
if 3.7000000000000002e153 < z0 Initial program 46.2%
lift-*.f64N/A
lift-/.f64N/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites53.5%
Taylor expanded in z2 around 0
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f6447.0%
Applied rewrites47.0%
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f6452.0%
Applied rewrites52.0%
(FPCore (z1 z0 z3 z2) :precision binary64 (* (/ (* z1 z0) (- 1.0 z1)) (/ z0 (- 1.0 (cos (* (atan (* (/ z0 (* (* z3 PI) z2)) -0.5)) 2.0))))))
double code(double z1, double z0, double z3, double z2) {
return ((z1 * z0) / (1.0 - z1)) * (z0 / (1.0 - cos((atan(((z0 / ((z3 * ((double) M_PI)) * z2)) * -0.5)) * 2.0))));
}
public static double code(double z1, double z0, double z3, double z2) {
return ((z1 * z0) / (1.0 - z1)) * (z0 / (1.0 - Math.cos((Math.atan(((z0 / ((z3 * Math.PI) * z2)) * -0.5)) * 2.0))));
}
def code(z1, z0, z3, z2): return ((z1 * z0) / (1.0 - z1)) * (z0 / (1.0 - math.cos((math.atan(((z0 / ((z3 * math.pi) * z2)) * -0.5)) * 2.0))))
function code(z1, z0, z3, z2) return Float64(Float64(Float64(z1 * z0) / Float64(1.0 - z1)) * Float64(z0 / Float64(1.0 - cos(Float64(atan(Float64(Float64(z0 / Float64(Float64(z3 * pi) * z2)) * -0.5)) * 2.0))))) end
function tmp = code(z1, z0, z3, z2) tmp = ((z1 * z0) / (1.0 - z1)) * (z0 / (1.0 - cos((atan(((z0 / ((z3 * pi) * z2)) * -0.5)) * 2.0)))); end
code[z1_, z0_, z3_, z2_] := N[(N[(N[(z1 * z0), $MachinePrecision] / N[(1.0 - z1), $MachinePrecision]), $MachinePrecision] * N[(z0 / N[(1.0 - N[Cos[N[(N[ArcTan[N[(N[(z0 / N[(N[(z3 * Pi), $MachinePrecision] * z2), $MachinePrecision]), $MachinePrecision] * -0.5), $MachinePrecision]], $MachinePrecision] * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\frac{z1 \cdot z0}{1 - z1} \cdot \frac{z0}{1 - \cos \left(\tan^{-1} \left(\frac{z0}{\left(z3 \cdot \pi\right) \cdot z2} \cdot -0.5\right) \cdot 2\right)}
Initial program 46.2%
lift-*.f64N/A
lift-/.f64N/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites53.5%
Taylor expanded in z2 around 0
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f6447.0%
Applied rewrites47.0%
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lift-*.f64N/A
*-commutativeN/A
times-fracN/A
Applied rewrites54.6%
(FPCore (z1 z0 z3 z2)
:precision binary64
(let* ((t_0
(-
1.0
(cos (* (atan (* (/ z0 (* (* z3 PI) z2)) -0.5)) 2.0)))))
(if (<= z1 -6.8e-29)
(* z1 (/ (* z0 z0) (* t_0 (- 1.0 z1))))
(if (<= z1 2.15e+17)
(* z0 (/ (* z0 z1) (* 1.0 t_0)))
(/
(* z1 (* z0 z0))
(*
(- 1.0 (cos (* -2.0 (atan (* -0.5 (/ z0 (* z2 (* z3 PI))))))))
(- 1.0 z1)))))))double code(double z1, double z0, double z3, double z2) {
double t_0 = 1.0 - cos((atan(((z0 / ((z3 * ((double) M_PI)) * z2)) * -0.5)) * 2.0));
double tmp;
if (z1 <= -6.8e-29) {
tmp = z1 * ((z0 * z0) / (t_0 * (1.0 - z1)));
} else if (z1 <= 2.15e+17) {
tmp = z0 * ((z0 * z1) / (1.0 * t_0));
} else {
tmp = (z1 * (z0 * z0)) / ((1.0 - cos((-2.0 * atan((-0.5 * (z0 / (z2 * (z3 * ((double) M_PI))))))))) * (1.0 - z1));
}
return tmp;
}
public static double code(double z1, double z0, double z3, double z2) {
double t_0 = 1.0 - Math.cos((Math.atan(((z0 / ((z3 * Math.PI) * z2)) * -0.5)) * 2.0));
double tmp;
if (z1 <= -6.8e-29) {
tmp = z1 * ((z0 * z0) / (t_0 * (1.0 - z1)));
} else if (z1 <= 2.15e+17) {
tmp = z0 * ((z0 * z1) / (1.0 * t_0));
} else {
tmp = (z1 * (z0 * z0)) / ((1.0 - Math.cos((-2.0 * Math.atan((-0.5 * (z0 / (z2 * (z3 * Math.PI)))))))) * (1.0 - z1));
}
return tmp;
}
def code(z1, z0, z3, z2): t_0 = 1.0 - math.cos((math.atan(((z0 / ((z3 * math.pi) * z2)) * -0.5)) * 2.0)) tmp = 0 if z1 <= -6.8e-29: tmp = z1 * ((z0 * z0) / (t_0 * (1.0 - z1))) elif z1 <= 2.15e+17: tmp = z0 * ((z0 * z1) / (1.0 * t_0)) else: tmp = (z1 * (z0 * z0)) / ((1.0 - math.cos((-2.0 * math.atan((-0.5 * (z0 / (z2 * (z3 * math.pi)))))))) * (1.0 - z1)) return tmp
function code(z1, z0, z3, z2) t_0 = Float64(1.0 - cos(Float64(atan(Float64(Float64(z0 / Float64(Float64(z3 * pi) * z2)) * -0.5)) * 2.0))) tmp = 0.0 if (z1 <= -6.8e-29) tmp = Float64(z1 * Float64(Float64(z0 * z0) / Float64(t_0 * Float64(1.0 - z1)))); elseif (z1 <= 2.15e+17) tmp = Float64(z0 * Float64(Float64(z0 * z1) / Float64(1.0 * t_0))); else tmp = Float64(Float64(z1 * Float64(z0 * z0)) / Float64(Float64(1.0 - cos(Float64(-2.0 * atan(Float64(-0.5 * Float64(z0 / Float64(z2 * Float64(z3 * pi)))))))) * Float64(1.0 - z1))); end return tmp end
function tmp_2 = code(z1, z0, z3, z2) t_0 = 1.0 - cos((atan(((z0 / ((z3 * pi) * z2)) * -0.5)) * 2.0)); tmp = 0.0; if (z1 <= -6.8e-29) tmp = z1 * ((z0 * z0) / (t_0 * (1.0 - z1))); elseif (z1 <= 2.15e+17) tmp = z0 * ((z0 * z1) / (1.0 * t_0)); else tmp = (z1 * (z0 * z0)) / ((1.0 - cos((-2.0 * atan((-0.5 * (z0 / (z2 * (z3 * pi)))))))) * (1.0 - z1)); end tmp_2 = tmp; end
code[z1_, z0_, z3_, z2_] := Block[{t$95$0 = N[(1.0 - N[Cos[N[(N[ArcTan[N[(N[(z0 / N[(N[(z3 * Pi), $MachinePrecision] * z2), $MachinePrecision]), $MachinePrecision] * -0.5), $MachinePrecision]], $MachinePrecision] * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z1, -6.8e-29], N[(z1 * N[(N[(z0 * z0), $MachinePrecision] / N[(t$95$0 * N[(1.0 - z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z1, 2.15e+17], N[(z0 * N[(N[(z0 * z1), $MachinePrecision] / N[(1.0 * t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(z1 * N[(z0 * z0), $MachinePrecision]), $MachinePrecision] / N[(N[(1.0 - N[Cos[N[(-2.0 * N[ArcTan[N[(-0.5 * N[(z0 / N[(z2 * N[(z3 * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] * N[(1.0 - z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
t_0 := 1 - \cos \left(\tan^{-1} \left(\frac{z0}{\left(z3 \cdot \pi\right) \cdot z2} \cdot -0.5\right) \cdot 2\right)\\
\mathbf{if}\;z1 \leq -6.8 \cdot 10^{-29}:\\
\;\;\;\;z1 \cdot \frac{z0 \cdot z0}{t\_0 \cdot \left(1 - z1\right)}\\
\mathbf{elif}\;z1 \leq 2.15 \cdot 10^{+17}:\\
\;\;\;\;z0 \cdot \frac{z0 \cdot z1}{1 \cdot t\_0}\\
\mathbf{else}:\\
\;\;\;\;\frac{z1 \cdot \left(z0 \cdot z0\right)}{\left(1 - \cos \left(-2 \cdot \tan^{-1} \left(-0.5 \cdot \frac{z0}{z2 \cdot \left(z3 \cdot \pi\right)}\right)\right)\right) \cdot \left(1 - z1\right)}\\
\end{array}
if z1 < -6.7999999999999994e-29Initial program 46.2%
lift-*.f64N/A
lift-/.f64N/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites53.5%
Taylor expanded in z2 around 0
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f6447.0%
Applied rewrites47.0%
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lower-*.f64N/A
lower-/.f6448.9%
Applied rewrites48.9%
if -6.7999999999999994e-29 < z1 < 2.15e17Initial program 46.2%
lift-*.f64N/A
lift-/.f64N/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites53.5%
Taylor expanded in z2 around 0
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f6447.0%
Applied rewrites47.0%
Taylor expanded in z1 around 0
Applied rewrites32.0%
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
associate-/l*N/A
lower-*.f64N/A
Applied rewrites36.2%
if 2.15e17 < z1 Initial program 46.2%
lift-*.f64N/A
lift-/.f64N/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites53.5%
Taylor expanded in z2 around 0
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f6447.0%
Applied rewrites47.0%
(FPCore (z1 z0 z3 z2)
:precision binary64
(let* ((t_0
(- 1.0 (cos (* (atan (* (/ z0 (* (* z3 PI) z2)) -0.5)) 2.0))))
(t_1 (* z1 (/ (* z0 z0) (* t_0 (- 1.0 z1))))))
(if (<= z1 -6.8e-29)
t_1
(if (<= z1 2.15e+17) (* z0 (/ (* z0 z1) (* 1.0 t_0))) t_1))))double code(double z1, double z0, double z3, double z2) {
double t_0 = 1.0 - cos((atan(((z0 / ((z3 * ((double) M_PI)) * z2)) * -0.5)) * 2.0));
double t_1 = z1 * ((z0 * z0) / (t_0 * (1.0 - z1)));
double tmp;
if (z1 <= -6.8e-29) {
tmp = t_1;
} else if (z1 <= 2.15e+17) {
tmp = z0 * ((z0 * z1) / (1.0 * t_0));
} else {
tmp = t_1;
}
return tmp;
}
public static double code(double z1, double z0, double z3, double z2) {
double t_0 = 1.0 - Math.cos((Math.atan(((z0 / ((z3 * Math.PI) * z2)) * -0.5)) * 2.0));
double t_1 = z1 * ((z0 * z0) / (t_0 * (1.0 - z1)));
double tmp;
if (z1 <= -6.8e-29) {
tmp = t_1;
} else if (z1 <= 2.15e+17) {
tmp = z0 * ((z0 * z1) / (1.0 * t_0));
} else {
tmp = t_1;
}
return tmp;
}
def code(z1, z0, z3, z2): t_0 = 1.0 - math.cos((math.atan(((z0 / ((z3 * math.pi) * z2)) * -0.5)) * 2.0)) t_1 = z1 * ((z0 * z0) / (t_0 * (1.0 - z1))) tmp = 0 if z1 <= -6.8e-29: tmp = t_1 elif z1 <= 2.15e+17: tmp = z0 * ((z0 * z1) / (1.0 * t_0)) else: tmp = t_1 return tmp
function code(z1, z0, z3, z2) t_0 = Float64(1.0 - cos(Float64(atan(Float64(Float64(z0 / Float64(Float64(z3 * pi) * z2)) * -0.5)) * 2.0))) t_1 = Float64(z1 * Float64(Float64(z0 * z0) / Float64(t_0 * Float64(1.0 - z1)))) tmp = 0.0 if (z1 <= -6.8e-29) tmp = t_1; elseif (z1 <= 2.15e+17) tmp = Float64(z0 * Float64(Float64(z0 * z1) / Float64(1.0 * t_0))); else tmp = t_1; end return tmp end
function tmp_2 = code(z1, z0, z3, z2) t_0 = 1.0 - cos((atan(((z0 / ((z3 * pi) * z2)) * -0.5)) * 2.0)); t_1 = z1 * ((z0 * z0) / (t_0 * (1.0 - z1))); tmp = 0.0; if (z1 <= -6.8e-29) tmp = t_1; elseif (z1 <= 2.15e+17) tmp = z0 * ((z0 * z1) / (1.0 * t_0)); else tmp = t_1; end tmp_2 = tmp; end
code[z1_, z0_, z3_, z2_] := Block[{t$95$0 = N[(1.0 - N[Cos[N[(N[ArcTan[N[(N[(z0 / N[(N[(z3 * Pi), $MachinePrecision] * z2), $MachinePrecision]), $MachinePrecision] * -0.5), $MachinePrecision]], $MachinePrecision] * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(z1 * N[(N[(z0 * z0), $MachinePrecision] / N[(t$95$0 * N[(1.0 - z1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z1, -6.8e-29], t$95$1, If[LessEqual[z1, 2.15e+17], N[(z0 * N[(N[(z0 * z1), $MachinePrecision] / N[(1.0 * t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]]
\begin{array}{l}
t_0 := 1 - \cos \left(\tan^{-1} \left(\frac{z0}{\left(z3 \cdot \pi\right) \cdot z2} \cdot -0.5\right) \cdot 2\right)\\
t_1 := z1 \cdot \frac{z0 \cdot z0}{t\_0 \cdot \left(1 - z1\right)}\\
\mathbf{if}\;z1 \leq -6.8 \cdot 10^{-29}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;z1 \leq 2.15 \cdot 10^{+17}:\\
\;\;\;\;z0 \cdot \frac{z0 \cdot z1}{1 \cdot t\_0}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
if z1 < -6.7999999999999994e-29 or 2.15e17 < z1 Initial program 46.2%
lift-*.f64N/A
lift-/.f64N/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites53.5%
Taylor expanded in z2 around 0
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f6447.0%
Applied rewrites47.0%
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lower-*.f64N/A
lower-/.f6448.9%
Applied rewrites48.9%
if -6.7999999999999994e-29 < z1 < 2.15e17Initial program 46.2%
lift-*.f64N/A
lift-/.f64N/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites53.5%
Taylor expanded in z2 around 0
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f6447.0%
Applied rewrites47.0%
Taylor expanded in z1 around 0
Applied rewrites32.0%
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
associate-/l*N/A
lower-*.f64N/A
Applied rewrites36.2%
(FPCore (z1 z0 z3 z2)
:precision binary64
(let* ((t_0 (cos (* (atan (* (/ z0 (* (* z3 PI) z2)) -0.5)) 2.0))))
(if (<= z1 2.45e+17)
(* z0 (/ (* z0 z1) (* 1.0 (- 1.0 t_0))))
(/ (* (* (- z0) z0) z1) (* (- t_0 1.0) 1.0)))))double code(double z1, double z0, double z3, double z2) {
double t_0 = cos((atan(((z0 / ((z3 * ((double) M_PI)) * z2)) * -0.5)) * 2.0));
double tmp;
if (z1 <= 2.45e+17) {
tmp = z0 * ((z0 * z1) / (1.0 * (1.0 - t_0)));
} else {
tmp = ((-z0 * z0) * z1) / ((t_0 - 1.0) * 1.0);
}
return tmp;
}
public static double code(double z1, double z0, double z3, double z2) {
double t_0 = Math.cos((Math.atan(((z0 / ((z3 * Math.PI) * z2)) * -0.5)) * 2.0));
double tmp;
if (z1 <= 2.45e+17) {
tmp = z0 * ((z0 * z1) / (1.0 * (1.0 - t_0)));
} else {
tmp = ((-z0 * z0) * z1) / ((t_0 - 1.0) * 1.0);
}
return tmp;
}
def code(z1, z0, z3, z2): t_0 = math.cos((math.atan(((z0 / ((z3 * math.pi) * z2)) * -0.5)) * 2.0)) tmp = 0 if z1 <= 2.45e+17: tmp = z0 * ((z0 * z1) / (1.0 * (1.0 - t_0))) else: tmp = ((-z0 * z0) * z1) / ((t_0 - 1.0) * 1.0) return tmp
function code(z1, z0, z3, z2) t_0 = cos(Float64(atan(Float64(Float64(z0 / Float64(Float64(z3 * pi) * z2)) * -0.5)) * 2.0)) tmp = 0.0 if (z1 <= 2.45e+17) tmp = Float64(z0 * Float64(Float64(z0 * z1) / Float64(1.0 * Float64(1.0 - t_0)))); else tmp = Float64(Float64(Float64(Float64(-z0) * z0) * z1) / Float64(Float64(t_0 - 1.0) * 1.0)); end return tmp end
function tmp_2 = code(z1, z0, z3, z2) t_0 = cos((atan(((z0 / ((z3 * pi) * z2)) * -0.5)) * 2.0)); tmp = 0.0; if (z1 <= 2.45e+17) tmp = z0 * ((z0 * z1) / (1.0 * (1.0 - t_0))); else tmp = ((-z0 * z0) * z1) / ((t_0 - 1.0) * 1.0); end tmp_2 = tmp; end
code[z1_, z0_, z3_, z2_] := Block[{t$95$0 = N[Cos[N[(N[ArcTan[N[(N[(z0 / N[(N[(z3 * Pi), $MachinePrecision] * z2), $MachinePrecision]), $MachinePrecision] * -0.5), $MachinePrecision]], $MachinePrecision] * 2.0), $MachinePrecision]], $MachinePrecision]}, If[LessEqual[z1, 2.45e+17], N[(z0 * N[(N[(z0 * z1), $MachinePrecision] / N[(1.0 * N[(1.0 - t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[((-z0) * z0), $MachinePrecision] * z1), $MachinePrecision] / N[(N[(t$95$0 - 1.0), $MachinePrecision] * 1.0), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
t_0 := \cos \left(\tan^{-1} \left(\frac{z0}{\left(z3 \cdot \pi\right) \cdot z2} \cdot -0.5\right) \cdot 2\right)\\
\mathbf{if}\;z1 \leq 2.45 \cdot 10^{+17}:\\
\;\;\;\;z0 \cdot \frac{z0 \cdot z1}{1 \cdot \left(1 - t\_0\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(\left(-z0\right) \cdot z0\right) \cdot z1}{\left(t\_0 - 1\right) \cdot 1}\\
\end{array}
if z1 < 2.45e17Initial program 46.2%
lift-*.f64N/A
lift-/.f64N/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites53.5%
Taylor expanded in z2 around 0
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f6447.0%
Applied rewrites47.0%
Taylor expanded in z1 around 0
Applied rewrites32.0%
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
associate-/l*N/A
lower-*.f64N/A
Applied rewrites36.2%
if 2.45e17 < z1 Initial program 46.2%
lift-*.f64N/A
lift-/.f64N/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites53.5%
Taylor expanded in z2 around 0
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f6447.0%
Applied rewrites47.0%
Taylor expanded in z1 around 0
Applied rewrites32.0%
lift-/.f64N/A
frac-2negN/A
lower-/.f64N/A
Applied rewrites30.3%
(FPCore (z1 z0 z3 z2) :precision binary64 (* z0 (/ (* z0 z1) (* 1.0 (- 1.0 (cos (* (atan (* (/ z0 (* (* z3 PI) z2)) -0.5)) 2.0)))))))
double code(double z1, double z0, double z3, double z2) {
return z0 * ((z0 * z1) / (1.0 * (1.0 - cos((atan(((z0 / ((z3 * ((double) M_PI)) * z2)) * -0.5)) * 2.0)))));
}
public static double code(double z1, double z0, double z3, double z2) {
return z0 * ((z0 * z1) / (1.0 * (1.0 - Math.cos((Math.atan(((z0 / ((z3 * Math.PI) * z2)) * -0.5)) * 2.0)))));
}
def code(z1, z0, z3, z2): return z0 * ((z0 * z1) / (1.0 * (1.0 - math.cos((math.atan(((z0 / ((z3 * math.pi) * z2)) * -0.5)) * 2.0)))))
function code(z1, z0, z3, z2) return Float64(z0 * Float64(Float64(z0 * z1) / Float64(1.0 * Float64(1.0 - cos(Float64(atan(Float64(Float64(z0 / Float64(Float64(z3 * pi) * z2)) * -0.5)) * 2.0)))))) end
function tmp = code(z1, z0, z3, z2) tmp = z0 * ((z0 * z1) / (1.0 * (1.0 - cos((atan(((z0 / ((z3 * pi) * z2)) * -0.5)) * 2.0))))); end
code[z1_, z0_, z3_, z2_] := N[(z0 * N[(N[(z0 * z1), $MachinePrecision] / N[(1.0 * N[(1.0 - N[Cos[N[(N[ArcTan[N[(N[(z0 / N[(N[(z3 * Pi), $MachinePrecision] * z2), $MachinePrecision]), $MachinePrecision] * -0.5), $MachinePrecision]], $MachinePrecision] * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
z0 \cdot \frac{z0 \cdot z1}{1 \cdot \left(1 - \cos \left(\tan^{-1} \left(\frac{z0}{\left(z3 \cdot \pi\right) \cdot z2} \cdot -0.5\right) \cdot 2\right)\right)}
Initial program 46.2%
lift-*.f64N/A
lift-/.f64N/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites53.5%
Taylor expanded in z2 around 0
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f6447.0%
Applied rewrites47.0%
Taylor expanded in z1 around 0
Applied rewrites32.0%
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
associate-/l*N/A
lower-*.f64N/A
Applied rewrites36.2%
herbie shell --seed 2025250
(FPCore (z1 z0 z3 z2)
:name "(/ (* z1 (* z0 z0)) (* (- 1 (cos (* -2 (atan (* (/ z0 z3) (tan (* PI (- (+ z2 z2) -1/2)))))))) (- 1 z1)))"
:precision binary64
(/ (* z1 (* z0 z0)) (* (- 1.0 (cos (* -2.0 (atan (* (/ z0 z3) (tan (* PI (- (+ z2 z2) -0.5)))))))) (- 1.0 z1))))