
(FPCore (z1 z2 z0) :precision binary64 (atan (* (/ z1 z2) (tan (* PI (+ 0.5 (+ z0 z0)))))))
double code(double z1, double z2, double z0) {
return atan(((z1 / z2) * tan((((double) M_PI) * (0.5 + (z0 + z0))))));
}
public static double code(double z1, double z2, double z0) {
return Math.atan(((z1 / z2) * Math.tan((Math.PI * (0.5 + (z0 + z0))))));
}
def code(z1, z2, z0): return math.atan(((z1 / z2) * math.tan((math.pi * (0.5 + (z0 + z0))))))
function code(z1, z2, z0) return atan(Float64(Float64(z1 / z2) * tan(Float64(pi * Float64(0.5 + Float64(z0 + z0)))))) end
function tmp = code(z1, z2, z0) tmp = atan(((z1 / z2) * tan((pi * (0.5 + (z0 + z0)))))); end
code[z1_, z2_, z0_] := N[ArcTan[N[(N[(z1 / z2), $MachinePrecision] * N[Tan[N[(Pi * N[(0.5 + N[(z0 + z0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
\tan^{-1} \left(\frac{z1}{z2} \cdot \tan \left(\pi \cdot \left(0.5 + \left(z0 + z0\right)\right)\right)\right)
Herbie found 23 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (z1 z2 z0) :precision binary64 (atan (* (/ z1 z2) (tan (* PI (+ 0.5 (+ z0 z0)))))))
double code(double z1, double z2, double z0) {
return atan(((z1 / z2) * tan((((double) M_PI) * (0.5 + (z0 + z0))))));
}
public static double code(double z1, double z2, double z0) {
return Math.atan(((z1 / z2) * Math.tan((Math.PI * (0.5 + (z0 + z0))))));
}
def code(z1, z2, z0): return math.atan(((z1 / z2) * math.tan((math.pi * (0.5 + (z0 + z0))))))
function code(z1, z2, z0) return atan(Float64(Float64(z1 / z2) * tan(Float64(pi * Float64(0.5 + Float64(z0 + z0)))))) end
function tmp = code(z1, z2, z0) tmp = atan(((z1 / z2) * tan((pi * (0.5 + (z0 + z0)))))); end
code[z1_, z2_, z0_] := N[ArcTan[N[(N[(z1 / z2), $MachinePrecision] * N[Tan[N[(Pi * N[(0.5 + N[(z0 + z0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
\tan^{-1} \left(\frac{z1}{z2} \cdot \tan \left(\pi \cdot \left(0.5 + \left(z0 + z0\right)\right)\right)\right)
(FPCore (z1 z2 z0)
:precision binary64
(let* ((t_0 (cos (* 0.5 PI)))
(t_1 (pow t_0 2.0))
(t_2 (sin (* 0.5 PI)))
(t_3 (pow t_2 2.0))
(t_4 (* -2.0 (/ (* PI t_3) t_1)))
(t_5 (- (* 2.0 PI) t_4))
(t_6 (* PI (* t_2 t_5)))
(t_7 (* z2 t_0)))
(if (<= z0 -9e+18)
(atan
(*
(/ z1 z2)
(+
(* z0 (- (+ (* 2.0 PI) (* 2.0 (/ (* z0 t_6) t_0))) t_4))
(/ t_2 t_0))))
(if (<= z0 1.5e+14)
(atan
(*
(- z1)
(/
(sin (+ (* (* PI -2.0) z0) (* 0.5 PI)))
(* (- z2) (sin (* (* -2.0 z0) PI))))))
(atan
(+
(*
z0
(+
(*
z0
(+
(* 2.0 (/ (* z1 t_6) t_7))
(/
(*
z0
(*
z1
(-
(* -1.3333333333333333 (pow PI 3.0))
(+
(* -4.0 (/ (* (pow PI 2.0) (* t_3 t_5)) t_1))
(+
(* -2.0 (* (pow PI 2.0) t_5))
(*
1.3333333333333333
(/ (* (pow PI 3.0) t_3) t_1)))))))
z2)))
(/ (* z1 t_5) z2)))
(/ (* z1 t_2) t_7)))))))double code(double z1, double z2, double z0) {
double t_0 = cos((0.5 * ((double) M_PI)));
double t_1 = pow(t_0, 2.0);
double t_2 = sin((0.5 * ((double) M_PI)));
double t_3 = pow(t_2, 2.0);
double t_4 = -2.0 * ((((double) M_PI) * t_3) / t_1);
double t_5 = (2.0 * ((double) M_PI)) - t_4;
double t_6 = ((double) M_PI) * (t_2 * t_5);
double t_7 = z2 * t_0;
double tmp;
if (z0 <= -9e+18) {
tmp = atan(((z1 / z2) * ((z0 * (((2.0 * ((double) M_PI)) + (2.0 * ((z0 * t_6) / t_0))) - t_4)) + (t_2 / t_0))));
} else if (z0 <= 1.5e+14) {
tmp = atan((-z1 * (sin((((((double) M_PI) * -2.0) * z0) + (0.5 * ((double) M_PI)))) / (-z2 * sin(((-2.0 * z0) * ((double) M_PI)))))));
} else {
tmp = atan(((z0 * ((z0 * ((2.0 * ((z1 * t_6) / t_7)) + ((z0 * (z1 * ((-1.3333333333333333 * pow(((double) M_PI), 3.0)) - ((-4.0 * ((pow(((double) M_PI), 2.0) * (t_3 * t_5)) / t_1)) + ((-2.0 * (pow(((double) M_PI), 2.0) * t_5)) + (1.3333333333333333 * ((pow(((double) M_PI), 3.0) * t_3) / t_1))))))) / z2))) + ((z1 * t_5) / z2))) + ((z1 * t_2) / t_7)));
}
return tmp;
}
public static double code(double z1, double z2, double z0) {
double t_0 = Math.cos((0.5 * Math.PI));
double t_1 = Math.pow(t_0, 2.0);
double t_2 = Math.sin((0.5 * Math.PI));
double t_3 = Math.pow(t_2, 2.0);
double t_4 = -2.0 * ((Math.PI * t_3) / t_1);
double t_5 = (2.0 * Math.PI) - t_4;
double t_6 = Math.PI * (t_2 * t_5);
double t_7 = z2 * t_0;
double tmp;
if (z0 <= -9e+18) {
tmp = Math.atan(((z1 / z2) * ((z0 * (((2.0 * Math.PI) + (2.0 * ((z0 * t_6) / t_0))) - t_4)) + (t_2 / t_0))));
} else if (z0 <= 1.5e+14) {
tmp = Math.atan((-z1 * (Math.sin((((Math.PI * -2.0) * z0) + (0.5 * Math.PI))) / (-z2 * Math.sin(((-2.0 * z0) * Math.PI))))));
} else {
tmp = Math.atan(((z0 * ((z0 * ((2.0 * ((z1 * t_6) / t_7)) + ((z0 * (z1 * ((-1.3333333333333333 * Math.pow(Math.PI, 3.0)) - ((-4.0 * ((Math.pow(Math.PI, 2.0) * (t_3 * t_5)) / t_1)) + ((-2.0 * (Math.pow(Math.PI, 2.0) * t_5)) + (1.3333333333333333 * ((Math.pow(Math.PI, 3.0) * t_3) / t_1))))))) / z2))) + ((z1 * t_5) / z2))) + ((z1 * t_2) / t_7)));
}
return tmp;
}
def code(z1, z2, z0): t_0 = math.cos((0.5 * math.pi)) t_1 = math.pow(t_0, 2.0) t_2 = math.sin((0.5 * math.pi)) t_3 = math.pow(t_2, 2.0) t_4 = -2.0 * ((math.pi * t_3) / t_1) t_5 = (2.0 * math.pi) - t_4 t_6 = math.pi * (t_2 * t_5) t_7 = z2 * t_0 tmp = 0 if z0 <= -9e+18: tmp = math.atan(((z1 / z2) * ((z0 * (((2.0 * math.pi) + (2.0 * ((z0 * t_6) / t_0))) - t_4)) + (t_2 / t_0)))) elif z0 <= 1.5e+14: tmp = math.atan((-z1 * (math.sin((((math.pi * -2.0) * z0) + (0.5 * math.pi))) / (-z2 * math.sin(((-2.0 * z0) * math.pi)))))) else: tmp = math.atan(((z0 * ((z0 * ((2.0 * ((z1 * t_6) / t_7)) + ((z0 * (z1 * ((-1.3333333333333333 * math.pow(math.pi, 3.0)) - ((-4.0 * ((math.pow(math.pi, 2.0) * (t_3 * t_5)) / t_1)) + ((-2.0 * (math.pow(math.pi, 2.0) * t_5)) + (1.3333333333333333 * ((math.pow(math.pi, 3.0) * t_3) / t_1))))))) / z2))) + ((z1 * t_5) / z2))) + ((z1 * t_2) / t_7))) return tmp
function code(z1, z2, z0) t_0 = cos(Float64(0.5 * pi)) t_1 = t_0 ^ 2.0 t_2 = sin(Float64(0.5 * pi)) t_3 = t_2 ^ 2.0 t_4 = Float64(-2.0 * Float64(Float64(pi * t_3) / t_1)) t_5 = Float64(Float64(2.0 * pi) - t_4) t_6 = Float64(pi * Float64(t_2 * t_5)) t_7 = Float64(z2 * t_0) tmp = 0.0 if (z0 <= -9e+18) tmp = atan(Float64(Float64(z1 / z2) * Float64(Float64(z0 * Float64(Float64(Float64(2.0 * pi) + Float64(2.0 * Float64(Float64(z0 * t_6) / t_0))) - t_4)) + Float64(t_2 / t_0)))); elseif (z0 <= 1.5e+14) tmp = atan(Float64(Float64(-z1) * Float64(sin(Float64(Float64(Float64(pi * -2.0) * z0) + Float64(0.5 * pi))) / Float64(Float64(-z2) * sin(Float64(Float64(-2.0 * z0) * pi)))))); else tmp = atan(Float64(Float64(z0 * Float64(Float64(z0 * Float64(Float64(2.0 * Float64(Float64(z1 * t_6) / t_7)) + Float64(Float64(z0 * Float64(z1 * Float64(Float64(-1.3333333333333333 * (pi ^ 3.0)) - Float64(Float64(-4.0 * Float64(Float64((pi ^ 2.0) * Float64(t_3 * t_5)) / t_1)) + Float64(Float64(-2.0 * Float64((pi ^ 2.0) * t_5)) + Float64(1.3333333333333333 * Float64(Float64((pi ^ 3.0) * t_3) / t_1))))))) / z2))) + Float64(Float64(z1 * t_5) / z2))) + Float64(Float64(z1 * t_2) / t_7))); end return tmp end
function tmp_2 = code(z1, z2, z0) t_0 = cos((0.5 * pi)); t_1 = t_0 ^ 2.0; t_2 = sin((0.5 * pi)); t_3 = t_2 ^ 2.0; t_4 = -2.0 * ((pi * t_3) / t_1); t_5 = (2.0 * pi) - t_4; t_6 = pi * (t_2 * t_5); t_7 = z2 * t_0; tmp = 0.0; if (z0 <= -9e+18) tmp = atan(((z1 / z2) * ((z0 * (((2.0 * pi) + (2.0 * ((z0 * t_6) / t_0))) - t_4)) + (t_2 / t_0)))); elseif (z0 <= 1.5e+14) tmp = atan((-z1 * (sin((((pi * -2.0) * z0) + (0.5 * pi))) / (-z2 * sin(((-2.0 * z0) * pi)))))); else tmp = atan(((z0 * ((z0 * ((2.0 * ((z1 * t_6) / t_7)) + ((z0 * (z1 * ((-1.3333333333333333 * (pi ^ 3.0)) - ((-4.0 * (((pi ^ 2.0) * (t_3 * t_5)) / t_1)) + ((-2.0 * ((pi ^ 2.0) * t_5)) + (1.3333333333333333 * (((pi ^ 3.0) * t_3) / t_1))))))) / z2))) + ((z1 * t_5) / z2))) + ((z1 * t_2) / t_7))); end tmp_2 = tmp; end
code[z1_, z2_, z0_] := Block[{t$95$0 = N[Cos[N[(0.5 * Pi), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$1 = N[Power[t$95$0, 2.0], $MachinePrecision]}, Block[{t$95$2 = N[Sin[N[(0.5 * Pi), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$3 = N[Power[t$95$2, 2.0], $MachinePrecision]}, Block[{t$95$4 = N[(-2.0 * N[(N[(Pi * t$95$3), $MachinePrecision] / t$95$1), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$5 = N[(N[(2.0 * Pi), $MachinePrecision] - t$95$4), $MachinePrecision]}, Block[{t$95$6 = N[(Pi * N[(t$95$2 * t$95$5), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$7 = N[(z2 * t$95$0), $MachinePrecision]}, If[LessEqual[z0, -9e+18], N[ArcTan[N[(N[(z1 / z2), $MachinePrecision] * N[(N[(z0 * N[(N[(N[(2.0 * Pi), $MachinePrecision] + N[(2.0 * N[(N[(z0 * t$95$6), $MachinePrecision] / t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - t$95$4), $MachinePrecision]), $MachinePrecision] + N[(t$95$2 / t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], If[LessEqual[z0, 1.5e+14], N[ArcTan[N[((-z1) * N[(N[Sin[N[(N[(N[(Pi * -2.0), $MachinePrecision] * z0), $MachinePrecision] + N[(0.5 * Pi), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / N[((-z2) * N[Sin[N[(N[(-2.0 * z0), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[N[(N[(z0 * N[(N[(z0 * N[(N[(2.0 * N[(N[(z1 * t$95$6), $MachinePrecision] / t$95$7), $MachinePrecision]), $MachinePrecision] + N[(N[(z0 * N[(z1 * N[(N[(-1.3333333333333333 * N[Power[Pi, 3.0], $MachinePrecision]), $MachinePrecision] - N[(N[(-4.0 * N[(N[(N[Power[Pi, 2.0], $MachinePrecision] * N[(t$95$3 * t$95$5), $MachinePrecision]), $MachinePrecision] / t$95$1), $MachinePrecision]), $MachinePrecision] + N[(N[(-2.0 * N[(N[Power[Pi, 2.0], $MachinePrecision] * t$95$5), $MachinePrecision]), $MachinePrecision] + N[(1.3333333333333333 * N[(N[(N[Power[Pi, 3.0], $MachinePrecision] * t$95$3), $MachinePrecision] / t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / z2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(z1 * t$95$5), $MachinePrecision] / z2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(z1 * t$95$2), $MachinePrecision] / t$95$7), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]]]]]]]]]]
\begin{array}{l}
t_0 := \cos \left(0.5 \cdot \pi\right)\\
t_1 := {t\_0}^{2}\\
t_2 := \sin \left(0.5 \cdot \pi\right)\\
t_3 := {t\_2}^{2}\\
t_4 := -2 \cdot \frac{\pi \cdot t\_3}{t\_1}\\
t_5 := 2 \cdot \pi - t\_4\\
t_6 := \pi \cdot \left(t\_2 \cdot t\_5\right)\\
t_7 := z2 \cdot t\_0\\
\mathbf{if}\;z0 \leq -9 \cdot 10^{+18}:\\
\;\;\;\;\tan^{-1} \left(\frac{z1}{z2} \cdot \left(z0 \cdot \left(\left(2 \cdot \pi + 2 \cdot \frac{z0 \cdot t\_6}{t\_0}\right) - t\_4\right) + \frac{t\_2}{t\_0}\right)\right)\\
\mathbf{elif}\;z0 \leq 1.5 \cdot 10^{+14}:\\
\;\;\;\;\tan^{-1} \left(\left(-z1\right) \cdot \frac{\sin \left(\left(\pi \cdot -2\right) \cdot z0 + 0.5 \cdot \pi\right)}{\left(-z2\right) \cdot \sin \left(\left(-2 \cdot z0\right) \cdot \pi\right)}\right)\\
\mathbf{else}:\\
\;\;\;\;\tan^{-1} \left(z0 \cdot \left(z0 \cdot \left(2 \cdot \frac{z1 \cdot t\_6}{t\_7} + \frac{z0 \cdot \left(z1 \cdot \left(-1.3333333333333333 \cdot {\pi}^{3} - \left(-4 \cdot \frac{{\pi}^{2} \cdot \left(t\_3 \cdot t\_5\right)}{t\_1} + \left(-2 \cdot \left({\pi}^{2} \cdot t\_5\right) + 1.3333333333333333 \cdot \frac{{\pi}^{3} \cdot t\_3}{t\_1}\right)\right)\right)\right)}{z2}\right) + \frac{z1 \cdot t\_5}{z2}\right) + \frac{z1 \cdot t\_2}{t\_7}\right)\\
\end{array}
if z0 < -9e18Initial program 32.3%
Taylor expanded in z0 around 0
Applied rewrites56.7%
if -9e18 < z0 < 1.5e14Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
lift-cos.f64N/A
cos-neg-revN/A
sin-+PI/2-revN/A
lower-sin.f64N/A
lift-PI.f64N/A
mult-flipN/A
metadata-evalN/A
*-commutativeN/A
lift-*.f64N/A
lower-+.f64N/A
lift-*.f64N/A
*-commutativeN/A
distribute-rgt-neg-inN/A
lift-+.f64N/A
count-2N/A
distribute-lft-neg-inN/A
metadata-evalN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f6476.7%
Applied rewrites76.7%
if 1.5e14 < z0 Initial program 32.3%
Taylor expanded in z0 around 0
Applied rewrites33.0%
(FPCore (z1 z2 z0)
:precision binary64
(let* ((t_0 (/ (pow PI 3.0) z2))
(t_1 (cos (* 0.5 PI)))
(t_2 (sin (* 0.5 PI)))
(t_3 (- (/ PI z2) (* 0.3333333333333333 (/ PI z2))))
(t_4 (* -2.0 (/ (* PI (pow t_2 2.0)) (pow t_1 2.0)))))
(if (<= z0 -9e+18)
(atan
(*
(/ z1 z2)
(+
(*
z0
(-
(+
(* 2.0 PI)
(* 2.0 (/ (* z0 (* PI (* t_2 (- (* 2.0 PI) t_4)))) t_1)))
t_4))
(/ t_2 t_1))))
(if (<= z0 1.5e+14)
(atan
(*
(- z1)
(/
(sin (+ (* (* PI -2.0) z0) (* 0.5 PI)))
(* (- z2) (sin (* (* -2.0 z0) PI))))))
(atan
(*
(- z1)
(/
(+
(*
(pow z0 2.0)
(+
(*
-1.0
(*
(pow z0 2.0)
(-
(* -0.3333333333333333 t_0)
(+
(* -0.6666666666666666 (* (pow PI 2.0) t_3))
(* -0.06666666666666667 t_0)))))
(* -1.0 t_3)))
(* 0.5 (/ 1.0 (* z2 PI))))
z0)))))))double code(double z1, double z2, double z0) {
double t_0 = pow(((double) M_PI), 3.0) / z2;
double t_1 = cos((0.5 * ((double) M_PI)));
double t_2 = sin((0.5 * ((double) M_PI)));
double t_3 = (((double) M_PI) / z2) - (0.3333333333333333 * (((double) M_PI) / z2));
double t_4 = -2.0 * ((((double) M_PI) * pow(t_2, 2.0)) / pow(t_1, 2.0));
double tmp;
if (z0 <= -9e+18) {
tmp = atan(((z1 / z2) * ((z0 * (((2.0 * ((double) M_PI)) + (2.0 * ((z0 * (((double) M_PI) * (t_2 * ((2.0 * ((double) M_PI)) - t_4)))) / t_1))) - t_4)) + (t_2 / t_1))));
} else if (z0 <= 1.5e+14) {
tmp = atan((-z1 * (sin((((((double) M_PI) * -2.0) * z0) + (0.5 * ((double) M_PI)))) / (-z2 * sin(((-2.0 * z0) * ((double) M_PI)))))));
} else {
tmp = atan((-z1 * (((pow(z0, 2.0) * ((-1.0 * (pow(z0, 2.0) * ((-0.3333333333333333 * t_0) - ((-0.6666666666666666 * (pow(((double) M_PI), 2.0) * t_3)) + (-0.06666666666666667 * t_0))))) + (-1.0 * t_3))) + (0.5 * (1.0 / (z2 * ((double) M_PI))))) / z0)));
}
return tmp;
}
public static double code(double z1, double z2, double z0) {
double t_0 = Math.pow(Math.PI, 3.0) / z2;
double t_1 = Math.cos((0.5 * Math.PI));
double t_2 = Math.sin((0.5 * Math.PI));
double t_3 = (Math.PI / z2) - (0.3333333333333333 * (Math.PI / z2));
double t_4 = -2.0 * ((Math.PI * Math.pow(t_2, 2.0)) / Math.pow(t_1, 2.0));
double tmp;
if (z0 <= -9e+18) {
tmp = Math.atan(((z1 / z2) * ((z0 * (((2.0 * Math.PI) + (2.0 * ((z0 * (Math.PI * (t_2 * ((2.0 * Math.PI) - t_4)))) / t_1))) - t_4)) + (t_2 / t_1))));
} else if (z0 <= 1.5e+14) {
tmp = Math.atan((-z1 * (Math.sin((((Math.PI * -2.0) * z0) + (0.5 * Math.PI))) / (-z2 * Math.sin(((-2.0 * z0) * Math.PI))))));
} else {
tmp = Math.atan((-z1 * (((Math.pow(z0, 2.0) * ((-1.0 * (Math.pow(z0, 2.0) * ((-0.3333333333333333 * t_0) - ((-0.6666666666666666 * (Math.pow(Math.PI, 2.0) * t_3)) + (-0.06666666666666667 * t_0))))) + (-1.0 * t_3))) + (0.5 * (1.0 / (z2 * Math.PI)))) / z0)));
}
return tmp;
}
def code(z1, z2, z0): t_0 = math.pow(math.pi, 3.0) / z2 t_1 = math.cos((0.5 * math.pi)) t_2 = math.sin((0.5 * math.pi)) t_3 = (math.pi / z2) - (0.3333333333333333 * (math.pi / z2)) t_4 = -2.0 * ((math.pi * math.pow(t_2, 2.0)) / math.pow(t_1, 2.0)) tmp = 0 if z0 <= -9e+18: tmp = math.atan(((z1 / z2) * ((z0 * (((2.0 * math.pi) + (2.0 * ((z0 * (math.pi * (t_2 * ((2.0 * math.pi) - t_4)))) / t_1))) - t_4)) + (t_2 / t_1)))) elif z0 <= 1.5e+14: tmp = math.atan((-z1 * (math.sin((((math.pi * -2.0) * z0) + (0.5 * math.pi))) / (-z2 * math.sin(((-2.0 * z0) * math.pi)))))) else: tmp = math.atan((-z1 * (((math.pow(z0, 2.0) * ((-1.0 * (math.pow(z0, 2.0) * ((-0.3333333333333333 * t_0) - ((-0.6666666666666666 * (math.pow(math.pi, 2.0) * t_3)) + (-0.06666666666666667 * t_0))))) + (-1.0 * t_3))) + (0.5 * (1.0 / (z2 * math.pi)))) / z0))) return tmp
function code(z1, z2, z0) t_0 = Float64((pi ^ 3.0) / z2) t_1 = cos(Float64(0.5 * pi)) t_2 = sin(Float64(0.5 * pi)) t_3 = Float64(Float64(pi / z2) - Float64(0.3333333333333333 * Float64(pi / z2))) t_4 = Float64(-2.0 * Float64(Float64(pi * (t_2 ^ 2.0)) / (t_1 ^ 2.0))) tmp = 0.0 if (z0 <= -9e+18) tmp = atan(Float64(Float64(z1 / z2) * Float64(Float64(z0 * Float64(Float64(Float64(2.0 * pi) + Float64(2.0 * Float64(Float64(z0 * Float64(pi * Float64(t_2 * Float64(Float64(2.0 * pi) - t_4)))) / t_1))) - t_4)) + Float64(t_2 / t_1)))); elseif (z0 <= 1.5e+14) tmp = atan(Float64(Float64(-z1) * Float64(sin(Float64(Float64(Float64(pi * -2.0) * z0) + Float64(0.5 * pi))) / Float64(Float64(-z2) * sin(Float64(Float64(-2.0 * z0) * pi)))))); else tmp = atan(Float64(Float64(-z1) * Float64(Float64(Float64((z0 ^ 2.0) * Float64(Float64(-1.0 * Float64((z0 ^ 2.0) * Float64(Float64(-0.3333333333333333 * t_0) - Float64(Float64(-0.6666666666666666 * Float64((pi ^ 2.0) * t_3)) + Float64(-0.06666666666666667 * t_0))))) + Float64(-1.0 * t_3))) + Float64(0.5 * Float64(1.0 / Float64(z2 * pi)))) / z0))); end return tmp end
function tmp_2 = code(z1, z2, z0) t_0 = (pi ^ 3.0) / z2; t_1 = cos((0.5 * pi)); t_2 = sin((0.5 * pi)); t_3 = (pi / z2) - (0.3333333333333333 * (pi / z2)); t_4 = -2.0 * ((pi * (t_2 ^ 2.0)) / (t_1 ^ 2.0)); tmp = 0.0; if (z0 <= -9e+18) tmp = atan(((z1 / z2) * ((z0 * (((2.0 * pi) + (2.0 * ((z0 * (pi * (t_2 * ((2.0 * pi) - t_4)))) / t_1))) - t_4)) + (t_2 / t_1)))); elseif (z0 <= 1.5e+14) tmp = atan((-z1 * (sin((((pi * -2.0) * z0) + (0.5 * pi))) / (-z2 * sin(((-2.0 * z0) * pi)))))); else tmp = atan((-z1 * ((((z0 ^ 2.0) * ((-1.0 * ((z0 ^ 2.0) * ((-0.3333333333333333 * t_0) - ((-0.6666666666666666 * ((pi ^ 2.0) * t_3)) + (-0.06666666666666667 * t_0))))) + (-1.0 * t_3))) + (0.5 * (1.0 / (z2 * pi)))) / z0))); end tmp_2 = tmp; end
code[z1_, z2_, z0_] := Block[{t$95$0 = N[(N[Power[Pi, 3.0], $MachinePrecision] / z2), $MachinePrecision]}, Block[{t$95$1 = N[Cos[N[(0.5 * Pi), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$2 = N[Sin[N[(0.5 * Pi), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$3 = N[(N[(Pi / z2), $MachinePrecision] - N[(0.3333333333333333 * N[(Pi / z2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[(-2.0 * N[(N[(Pi * N[Power[t$95$2, 2.0], $MachinePrecision]), $MachinePrecision] / N[Power[t$95$1, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z0, -9e+18], N[ArcTan[N[(N[(z1 / z2), $MachinePrecision] * N[(N[(z0 * N[(N[(N[(2.0 * Pi), $MachinePrecision] + N[(2.0 * N[(N[(z0 * N[(Pi * N[(t$95$2 * N[(N[(2.0 * Pi), $MachinePrecision] - t$95$4), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - t$95$4), $MachinePrecision]), $MachinePrecision] + N[(t$95$2 / t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], If[LessEqual[z0, 1.5e+14], N[ArcTan[N[((-z1) * N[(N[Sin[N[(N[(N[(Pi * -2.0), $MachinePrecision] * z0), $MachinePrecision] + N[(0.5 * Pi), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / N[((-z2) * N[Sin[N[(N[(-2.0 * z0), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[N[((-z1) * N[(N[(N[(N[Power[z0, 2.0], $MachinePrecision] * N[(N[(-1.0 * N[(N[Power[z0, 2.0], $MachinePrecision] * N[(N[(-0.3333333333333333 * t$95$0), $MachinePrecision] - N[(N[(-0.6666666666666666 * N[(N[Power[Pi, 2.0], $MachinePrecision] * t$95$3), $MachinePrecision]), $MachinePrecision] + N[(-0.06666666666666667 * t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(-1.0 * t$95$3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(0.5 * N[(1.0 / N[(z2 * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / z0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]]]]]]]
\begin{array}{l}
t_0 := \frac{{\pi}^{3}}{z2}\\
t_1 := \cos \left(0.5 \cdot \pi\right)\\
t_2 := \sin \left(0.5 \cdot \pi\right)\\
t_3 := \frac{\pi}{z2} - 0.3333333333333333 \cdot \frac{\pi}{z2}\\
t_4 := -2 \cdot \frac{\pi \cdot {t\_2}^{2}}{{t\_1}^{2}}\\
\mathbf{if}\;z0 \leq -9 \cdot 10^{+18}:\\
\;\;\;\;\tan^{-1} \left(\frac{z1}{z2} \cdot \left(z0 \cdot \left(\left(2 \cdot \pi + 2 \cdot \frac{z0 \cdot \left(\pi \cdot \left(t\_2 \cdot \left(2 \cdot \pi - t\_4\right)\right)\right)}{t\_1}\right) - t\_4\right) + \frac{t\_2}{t\_1}\right)\right)\\
\mathbf{elif}\;z0 \leq 1.5 \cdot 10^{+14}:\\
\;\;\;\;\tan^{-1} \left(\left(-z1\right) \cdot \frac{\sin \left(\left(\pi \cdot -2\right) \cdot z0 + 0.5 \cdot \pi\right)}{\left(-z2\right) \cdot \sin \left(\left(-2 \cdot z0\right) \cdot \pi\right)}\right)\\
\mathbf{else}:\\
\;\;\;\;\tan^{-1} \left(\left(-z1\right) \cdot \frac{{z0}^{2} \cdot \left(-1 \cdot \left({z0}^{2} \cdot \left(-0.3333333333333333 \cdot t\_0 - \left(-0.6666666666666666 \cdot \left({\pi}^{2} \cdot t\_3\right) + -0.06666666666666667 \cdot t\_0\right)\right)\right) + -1 \cdot t\_3\right) + 0.5 \cdot \frac{1}{z2 \cdot \pi}}{z0}\right)\\
\end{array}
if z0 < -9e18Initial program 32.3%
Taylor expanded in z0 around 0
Applied rewrites56.7%
if -9e18 < z0 < 1.5e14Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
lift-cos.f64N/A
cos-neg-revN/A
sin-+PI/2-revN/A
lower-sin.f64N/A
lift-PI.f64N/A
mult-flipN/A
metadata-evalN/A
*-commutativeN/A
lift-*.f64N/A
lower-+.f64N/A
lift-*.f64N/A
*-commutativeN/A
distribute-rgt-neg-inN/A
lift-+.f64N/A
count-2N/A
distribute-lft-neg-inN/A
metadata-evalN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f6476.7%
Applied rewrites76.7%
if 1.5e14 < z0 Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
Applied rewrites72.8%
(FPCore (z1 z2 z0)
:precision binary64
(let* ((t_0 (/ (pow PI 3.0) z2))
(t_1 (* (- z2) (sin (* (* -2.0 z0) PI))))
(t_2 (- (/ PI z2) (* 0.3333333333333333 (/ PI z2)))))
(if (<= z0 -1.35e+247)
(atan
(*
(- z1)
(/
(+
1.0
(*
(pow z0 2.0)
(+
(* -2.0 (pow PI 2.0))
(* 0.6666666666666666 (* (pow z0 2.0) (pow PI 4.0))))))
t_1)))
(if (<= z0 -21000000000.0)
(atan
(*
(- z1)
(/
(+ 1.0 (* -2.0 (log (pow 19333.689074365146 (* z0 z0)))))
t_1)))
(if (<= z0 1.5e+14)
(atan
(* (- z1) (/ (sin (+ (* (* PI -2.0) z0) (* 0.5 PI))) t_1)))
(atan
(*
(- z1)
(/
(+
(*
(pow z0 2.0)
(+
(*
-1.0
(*
(pow z0 2.0)
(-
(* -0.3333333333333333 t_0)
(+
(* -0.6666666666666666 (* (pow PI 2.0) t_2))
(* -0.06666666666666667 t_0)))))
(* -1.0 t_2)))
(* 0.5 (/ 1.0 (* z2 PI))))
z0))))))))double code(double z1, double z2, double z0) {
double t_0 = pow(((double) M_PI), 3.0) / z2;
double t_1 = -z2 * sin(((-2.0 * z0) * ((double) M_PI)));
double t_2 = (((double) M_PI) / z2) - (0.3333333333333333 * (((double) M_PI) / z2));
double tmp;
if (z0 <= -1.35e+247) {
tmp = atan((-z1 * ((1.0 + (pow(z0, 2.0) * ((-2.0 * pow(((double) M_PI), 2.0)) + (0.6666666666666666 * (pow(z0, 2.0) * pow(((double) M_PI), 4.0)))))) / t_1)));
} else if (z0 <= -21000000000.0) {
tmp = atan((-z1 * ((1.0 + (-2.0 * log(pow(19333.689074365146, (z0 * z0))))) / t_1)));
} else if (z0 <= 1.5e+14) {
tmp = atan((-z1 * (sin((((((double) M_PI) * -2.0) * z0) + (0.5 * ((double) M_PI)))) / t_1)));
} else {
tmp = atan((-z1 * (((pow(z0, 2.0) * ((-1.0 * (pow(z0, 2.0) * ((-0.3333333333333333 * t_0) - ((-0.6666666666666666 * (pow(((double) M_PI), 2.0) * t_2)) + (-0.06666666666666667 * t_0))))) + (-1.0 * t_2))) + (0.5 * (1.0 / (z2 * ((double) M_PI))))) / z0)));
}
return tmp;
}
public static double code(double z1, double z2, double z0) {
double t_0 = Math.pow(Math.PI, 3.0) / z2;
double t_1 = -z2 * Math.sin(((-2.0 * z0) * Math.PI));
double t_2 = (Math.PI / z2) - (0.3333333333333333 * (Math.PI / z2));
double tmp;
if (z0 <= -1.35e+247) {
tmp = Math.atan((-z1 * ((1.0 + (Math.pow(z0, 2.0) * ((-2.0 * Math.pow(Math.PI, 2.0)) + (0.6666666666666666 * (Math.pow(z0, 2.0) * Math.pow(Math.PI, 4.0)))))) / t_1)));
} else if (z0 <= -21000000000.0) {
tmp = Math.atan((-z1 * ((1.0 + (-2.0 * Math.log(Math.pow(19333.689074365146, (z0 * z0))))) / t_1)));
} else if (z0 <= 1.5e+14) {
tmp = Math.atan((-z1 * (Math.sin((((Math.PI * -2.0) * z0) + (0.5 * Math.PI))) / t_1)));
} else {
tmp = Math.atan((-z1 * (((Math.pow(z0, 2.0) * ((-1.0 * (Math.pow(z0, 2.0) * ((-0.3333333333333333 * t_0) - ((-0.6666666666666666 * (Math.pow(Math.PI, 2.0) * t_2)) + (-0.06666666666666667 * t_0))))) + (-1.0 * t_2))) + (0.5 * (1.0 / (z2 * Math.PI)))) / z0)));
}
return tmp;
}
def code(z1, z2, z0): t_0 = math.pow(math.pi, 3.0) / z2 t_1 = -z2 * math.sin(((-2.0 * z0) * math.pi)) t_2 = (math.pi / z2) - (0.3333333333333333 * (math.pi / z2)) tmp = 0 if z0 <= -1.35e+247: tmp = math.atan((-z1 * ((1.0 + (math.pow(z0, 2.0) * ((-2.0 * math.pow(math.pi, 2.0)) + (0.6666666666666666 * (math.pow(z0, 2.0) * math.pow(math.pi, 4.0)))))) / t_1))) elif z0 <= -21000000000.0: tmp = math.atan((-z1 * ((1.0 + (-2.0 * math.log(math.pow(19333.689074365146, (z0 * z0))))) / t_1))) elif z0 <= 1.5e+14: tmp = math.atan((-z1 * (math.sin((((math.pi * -2.0) * z0) + (0.5 * math.pi))) / t_1))) else: tmp = math.atan((-z1 * (((math.pow(z0, 2.0) * ((-1.0 * (math.pow(z0, 2.0) * ((-0.3333333333333333 * t_0) - ((-0.6666666666666666 * (math.pow(math.pi, 2.0) * t_2)) + (-0.06666666666666667 * t_0))))) + (-1.0 * t_2))) + (0.5 * (1.0 / (z2 * math.pi)))) / z0))) return tmp
function code(z1, z2, z0) t_0 = Float64((pi ^ 3.0) / z2) t_1 = Float64(Float64(-z2) * sin(Float64(Float64(-2.0 * z0) * pi))) t_2 = Float64(Float64(pi / z2) - Float64(0.3333333333333333 * Float64(pi / z2))) tmp = 0.0 if (z0 <= -1.35e+247) tmp = atan(Float64(Float64(-z1) * Float64(Float64(1.0 + Float64((z0 ^ 2.0) * Float64(Float64(-2.0 * (pi ^ 2.0)) + Float64(0.6666666666666666 * Float64((z0 ^ 2.0) * (pi ^ 4.0)))))) / t_1))); elseif (z0 <= -21000000000.0) tmp = atan(Float64(Float64(-z1) * Float64(Float64(1.0 + Float64(-2.0 * log((19333.689074365146 ^ Float64(z0 * z0))))) / t_1))); elseif (z0 <= 1.5e+14) tmp = atan(Float64(Float64(-z1) * Float64(sin(Float64(Float64(Float64(pi * -2.0) * z0) + Float64(0.5 * pi))) / t_1))); else tmp = atan(Float64(Float64(-z1) * Float64(Float64(Float64((z0 ^ 2.0) * Float64(Float64(-1.0 * Float64((z0 ^ 2.0) * Float64(Float64(-0.3333333333333333 * t_0) - Float64(Float64(-0.6666666666666666 * Float64((pi ^ 2.0) * t_2)) + Float64(-0.06666666666666667 * t_0))))) + Float64(-1.0 * t_2))) + Float64(0.5 * Float64(1.0 / Float64(z2 * pi)))) / z0))); end return tmp end
function tmp_2 = code(z1, z2, z0) t_0 = (pi ^ 3.0) / z2; t_1 = -z2 * sin(((-2.0 * z0) * pi)); t_2 = (pi / z2) - (0.3333333333333333 * (pi / z2)); tmp = 0.0; if (z0 <= -1.35e+247) tmp = atan((-z1 * ((1.0 + ((z0 ^ 2.0) * ((-2.0 * (pi ^ 2.0)) + (0.6666666666666666 * ((z0 ^ 2.0) * (pi ^ 4.0)))))) / t_1))); elseif (z0 <= -21000000000.0) tmp = atan((-z1 * ((1.0 + (-2.0 * log((19333.689074365146 ^ (z0 * z0))))) / t_1))); elseif (z0 <= 1.5e+14) tmp = atan((-z1 * (sin((((pi * -2.0) * z0) + (0.5 * pi))) / t_1))); else tmp = atan((-z1 * ((((z0 ^ 2.0) * ((-1.0 * ((z0 ^ 2.0) * ((-0.3333333333333333 * t_0) - ((-0.6666666666666666 * ((pi ^ 2.0) * t_2)) + (-0.06666666666666667 * t_0))))) + (-1.0 * t_2))) + (0.5 * (1.0 / (z2 * pi)))) / z0))); end tmp_2 = tmp; end
code[z1_, z2_, z0_] := Block[{t$95$0 = N[(N[Power[Pi, 3.0], $MachinePrecision] / z2), $MachinePrecision]}, Block[{t$95$1 = N[((-z2) * N[Sin[N[(N[(-2.0 * z0), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(Pi / z2), $MachinePrecision] - N[(0.3333333333333333 * N[(Pi / z2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[z0, -1.35e+247], N[ArcTan[N[((-z1) * N[(N[(1.0 + N[(N[Power[z0, 2.0], $MachinePrecision] * N[(N[(-2.0 * N[Power[Pi, 2.0], $MachinePrecision]), $MachinePrecision] + N[(0.6666666666666666 * N[(N[Power[z0, 2.0], $MachinePrecision] * N[Power[Pi, 4.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$1), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], If[LessEqual[z0, -21000000000.0], N[ArcTan[N[((-z1) * N[(N[(1.0 + N[(-2.0 * N[Log[N[Power[19333.689074365146, N[(z0 * z0), $MachinePrecision]], $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$1), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], If[LessEqual[z0, 1.5e+14], N[ArcTan[N[((-z1) * N[(N[Sin[N[(N[(N[(Pi * -2.0), $MachinePrecision] * z0), $MachinePrecision] + N[(0.5 * Pi), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / t$95$1), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[N[((-z1) * N[(N[(N[(N[Power[z0, 2.0], $MachinePrecision] * N[(N[(-1.0 * N[(N[Power[z0, 2.0], $MachinePrecision] * N[(N[(-0.3333333333333333 * t$95$0), $MachinePrecision] - N[(N[(-0.6666666666666666 * N[(N[Power[Pi, 2.0], $MachinePrecision] * t$95$2), $MachinePrecision]), $MachinePrecision] + N[(-0.06666666666666667 * t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(-1.0 * t$95$2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(0.5 * N[(1.0 / N[(z2 * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / z0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]]]]]]
\begin{array}{l}
t_0 := \frac{{\pi}^{3}}{z2}\\
t_1 := \left(-z2\right) \cdot \sin \left(\left(-2 \cdot z0\right) \cdot \pi\right)\\
t_2 := \frac{\pi}{z2} - 0.3333333333333333 \cdot \frac{\pi}{z2}\\
\mathbf{if}\;z0 \leq -1.35 \cdot 10^{+247}:\\
\;\;\;\;\tan^{-1} \left(\left(-z1\right) \cdot \frac{1 + {z0}^{2} \cdot \left(-2 \cdot {\pi}^{2} + 0.6666666666666666 \cdot \left({z0}^{2} \cdot {\pi}^{4}\right)\right)}{t\_1}\right)\\
\mathbf{elif}\;z0 \leq -21000000000:\\
\;\;\;\;\tan^{-1} \left(\left(-z1\right) \cdot \frac{1 + -2 \cdot \log \left({19333.689074365146}^{\left(z0 \cdot z0\right)}\right)}{t\_1}\right)\\
\mathbf{elif}\;z0 \leq 1.5 \cdot 10^{+14}:\\
\;\;\;\;\tan^{-1} \left(\left(-z1\right) \cdot \frac{\sin \left(\left(\pi \cdot -2\right) \cdot z0 + 0.5 \cdot \pi\right)}{t\_1}\right)\\
\mathbf{else}:\\
\;\;\;\;\tan^{-1} \left(\left(-z1\right) \cdot \frac{{z0}^{2} \cdot \left(-1 \cdot \left({z0}^{2} \cdot \left(-0.3333333333333333 \cdot t\_0 - \left(-0.6666666666666666 \cdot \left({\pi}^{2} \cdot t\_2\right) + -0.06666666666666667 \cdot t\_0\right)\right)\right) + -1 \cdot t\_2\right) + 0.5 \cdot \frac{1}{z2 \cdot \pi}}{z0}\right)\\
\end{array}
if z0 < -1.35e247Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-+.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-pow.f64N/A
lower-PI.f6471.8%
Applied rewrites71.8%
lift-*.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-PI.f64N/A
add-log-expN/A
log-pow-revN/A
log-pow-revN/A
lower-log.f64N/A
lower-pow.f64N/A
lift-PI.f64N/A
pow-expN/A
unpow2N/A
lift-pow.f64N/A
lower-exp.f6474.6%
lift-pow.f64N/A
unpow2N/A
lower-*.f6474.6%
lift-pow.f64N/A
unpow2N/A
lower-*.f6474.6%
Applied rewrites74.6%
Taylor expanded in z0 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-*.f64N/A
lower-pow.f64N/A
lower-pow.f64N/A
lower-PI.f6474.2%
Applied rewrites74.2%
if -1.35e247 < z0 < -2.1e10Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-+.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-pow.f64N/A
lower-PI.f6471.8%
Applied rewrites71.8%
lift-*.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-PI.f64N/A
add-log-expN/A
log-pow-revN/A
log-pow-revN/A
lower-log.f64N/A
lower-pow.f64N/A
lift-PI.f64N/A
pow-expN/A
unpow2N/A
lift-pow.f64N/A
lower-exp.f6474.6%
lift-pow.f64N/A
unpow2N/A
lower-*.f6474.6%
lift-pow.f64N/A
unpow2N/A
lower-*.f6474.6%
Applied rewrites74.6%
Evaluated real constant74.6%
if -2.1e10 < z0 < 1.5e14Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
lift-cos.f64N/A
cos-neg-revN/A
sin-+PI/2-revN/A
lower-sin.f64N/A
lift-PI.f64N/A
mult-flipN/A
metadata-evalN/A
*-commutativeN/A
lift-*.f64N/A
lower-+.f64N/A
lift-*.f64N/A
*-commutativeN/A
distribute-rgt-neg-inN/A
lift-+.f64N/A
count-2N/A
distribute-lft-neg-inN/A
metadata-evalN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f6476.7%
Applied rewrites76.7%
if 1.5e14 < z0 Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
Applied rewrites72.8%
(FPCore (z1 z2 z0)
:precision binary64
(let* ((t_0 (* (- (fabs z2)) (sin (* (* -2.0 z0) PI))))
(t_1 (- (fabs z1)))
(t_2
(atan
(* (/ (fabs z1) (fabs z2)) (tan (* PI (+ 0.5 (+ z0 z0)))))))
(t_3 (* (+ z0 z0) PI)))
(*
(copysign 1.0 z1)
(*
(copysign 1.0 z2)
(if (<= t_2 -5e-9)
(atan (/ (* (- (cos t_3)) (fabs z1)) (* (sin t_3) (fabs z2))))
(if (<= t_2 -4e-208)
(atan
(*
t_1
(/
(+
1.0
(*
(pow z0 2.0)
(+
(* -2.0 (pow PI 2.0))
(* 0.6666666666666666 (* (pow z0 2.0) (pow PI 4.0))))))
t_0)))
(if (<= t_2 1e-15)
(atan
(*
t_1
(/
(+ 1.0 (* -2.0 (log (pow 19333.689074365146 (* z0 z0)))))
t_0)))
(atan
(*
t_1
(/ (sin (+ (* (* PI -2.0) z0) (* 0.5 PI))) t_0))))))))))double code(double z1, double z2, double z0) {
double t_0 = -fabs(z2) * sin(((-2.0 * z0) * ((double) M_PI)));
double t_1 = -fabs(z1);
double t_2 = atan(((fabs(z1) / fabs(z2)) * tan((((double) M_PI) * (0.5 + (z0 + z0))))));
double t_3 = (z0 + z0) * ((double) M_PI);
double tmp;
if (t_2 <= -5e-9) {
tmp = atan(((-cos(t_3) * fabs(z1)) / (sin(t_3) * fabs(z2))));
} else if (t_2 <= -4e-208) {
tmp = atan((t_1 * ((1.0 + (pow(z0, 2.0) * ((-2.0 * pow(((double) M_PI), 2.0)) + (0.6666666666666666 * (pow(z0, 2.0) * pow(((double) M_PI), 4.0)))))) / t_0)));
} else if (t_2 <= 1e-15) {
tmp = atan((t_1 * ((1.0 + (-2.0 * log(pow(19333.689074365146, (z0 * z0))))) / t_0)));
} else {
tmp = atan((t_1 * (sin((((((double) M_PI) * -2.0) * z0) + (0.5 * ((double) M_PI)))) / t_0)));
}
return copysign(1.0, z1) * (copysign(1.0, z2) * tmp);
}
public static double code(double z1, double z2, double z0) {
double t_0 = -Math.abs(z2) * Math.sin(((-2.0 * z0) * Math.PI));
double t_1 = -Math.abs(z1);
double t_2 = Math.atan(((Math.abs(z1) / Math.abs(z2)) * Math.tan((Math.PI * (0.5 + (z0 + z0))))));
double t_3 = (z0 + z0) * Math.PI;
double tmp;
if (t_2 <= -5e-9) {
tmp = Math.atan(((-Math.cos(t_3) * Math.abs(z1)) / (Math.sin(t_3) * Math.abs(z2))));
} else if (t_2 <= -4e-208) {
tmp = Math.atan((t_1 * ((1.0 + (Math.pow(z0, 2.0) * ((-2.0 * Math.pow(Math.PI, 2.0)) + (0.6666666666666666 * (Math.pow(z0, 2.0) * Math.pow(Math.PI, 4.0)))))) / t_0)));
} else if (t_2 <= 1e-15) {
tmp = Math.atan((t_1 * ((1.0 + (-2.0 * Math.log(Math.pow(19333.689074365146, (z0 * z0))))) / t_0)));
} else {
tmp = Math.atan((t_1 * (Math.sin((((Math.PI * -2.0) * z0) + (0.5 * Math.PI))) / t_0)));
}
return Math.copySign(1.0, z1) * (Math.copySign(1.0, z2) * tmp);
}
def code(z1, z2, z0): t_0 = -math.fabs(z2) * math.sin(((-2.0 * z0) * math.pi)) t_1 = -math.fabs(z1) t_2 = math.atan(((math.fabs(z1) / math.fabs(z2)) * math.tan((math.pi * (0.5 + (z0 + z0)))))) t_3 = (z0 + z0) * math.pi tmp = 0 if t_2 <= -5e-9: tmp = math.atan(((-math.cos(t_3) * math.fabs(z1)) / (math.sin(t_3) * math.fabs(z2)))) elif t_2 <= -4e-208: tmp = math.atan((t_1 * ((1.0 + (math.pow(z0, 2.0) * ((-2.0 * math.pow(math.pi, 2.0)) + (0.6666666666666666 * (math.pow(z0, 2.0) * math.pow(math.pi, 4.0)))))) / t_0))) elif t_2 <= 1e-15: tmp = math.atan((t_1 * ((1.0 + (-2.0 * math.log(math.pow(19333.689074365146, (z0 * z0))))) / t_0))) else: tmp = math.atan((t_1 * (math.sin((((math.pi * -2.0) * z0) + (0.5 * math.pi))) / t_0))) return math.copysign(1.0, z1) * (math.copysign(1.0, z2) * tmp)
function code(z1, z2, z0) t_0 = Float64(Float64(-abs(z2)) * sin(Float64(Float64(-2.0 * z0) * pi))) t_1 = Float64(-abs(z1)) t_2 = atan(Float64(Float64(abs(z1) / abs(z2)) * tan(Float64(pi * Float64(0.5 + Float64(z0 + z0)))))) t_3 = Float64(Float64(z0 + z0) * pi) tmp = 0.0 if (t_2 <= -5e-9) tmp = atan(Float64(Float64(Float64(-cos(t_3)) * abs(z1)) / Float64(sin(t_3) * abs(z2)))); elseif (t_2 <= -4e-208) tmp = atan(Float64(t_1 * Float64(Float64(1.0 + Float64((z0 ^ 2.0) * Float64(Float64(-2.0 * (pi ^ 2.0)) + Float64(0.6666666666666666 * Float64((z0 ^ 2.0) * (pi ^ 4.0)))))) / t_0))); elseif (t_2 <= 1e-15) tmp = atan(Float64(t_1 * Float64(Float64(1.0 + Float64(-2.0 * log((19333.689074365146 ^ Float64(z0 * z0))))) / t_0))); else tmp = atan(Float64(t_1 * Float64(sin(Float64(Float64(Float64(pi * -2.0) * z0) + Float64(0.5 * pi))) / t_0))); end return Float64(copysign(1.0, z1) * Float64(copysign(1.0, z2) * tmp)) end
function tmp_2 = code(z1, z2, z0) t_0 = -abs(z2) * sin(((-2.0 * z0) * pi)); t_1 = -abs(z1); t_2 = atan(((abs(z1) / abs(z2)) * tan((pi * (0.5 + (z0 + z0)))))); t_3 = (z0 + z0) * pi; tmp = 0.0; if (t_2 <= -5e-9) tmp = atan(((-cos(t_3) * abs(z1)) / (sin(t_3) * abs(z2)))); elseif (t_2 <= -4e-208) tmp = atan((t_1 * ((1.0 + ((z0 ^ 2.0) * ((-2.0 * (pi ^ 2.0)) + (0.6666666666666666 * ((z0 ^ 2.0) * (pi ^ 4.0)))))) / t_0))); elseif (t_2 <= 1e-15) tmp = atan((t_1 * ((1.0 + (-2.0 * log((19333.689074365146 ^ (z0 * z0))))) / t_0))); else tmp = atan((t_1 * (sin((((pi * -2.0) * z0) + (0.5 * pi))) / t_0))); end tmp_2 = (sign(z1) * abs(1.0)) * ((sign(z2) * abs(1.0)) * tmp); end
code[z1_, z2_, z0_] := Block[{t$95$0 = N[((-N[Abs[z2], $MachinePrecision]) * N[Sin[N[(N[(-2.0 * z0), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = (-N[Abs[z1], $MachinePrecision])}, Block[{t$95$2 = N[ArcTan[N[(N[(N[Abs[z1], $MachinePrecision] / N[Abs[z2], $MachinePrecision]), $MachinePrecision] * N[Tan[N[(Pi * N[(0.5 + N[(z0 + z0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$3 = N[(N[(z0 + z0), $MachinePrecision] * Pi), $MachinePrecision]}, N[(N[With[{TMP1 = Abs[1.0], TMP2 = Sign[z1]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision] * N[(N[With[{TMP1 = Abs[1.0], TMP2 = Sign[z2]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision] * If[LessEqual[t$95$2, -5e-9], N[ArcTan[N[(N[((-N[Cos[t$95$3], $MachinePrecision]) * N[Abs[z1], $MachinePrecision]), $MachinePrecision] / N[(N[Sin[t$95$3], $MachinePrecision] * N[Abs[z2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], If[LessEqual[t$95$2, -4e-208], N[ArcTan[N[(t$95$1 * N[(N[(1.0 + N[(N[Power[z0, 2.0], $MachinePrecision] * N[(N[(-2.0 * N[Power[Pi, 2.0], $MachinePrecision]), $MachinePrecision] + N[(0.6666666666666666 * N[(N[Power[z0, 2.0], $MachinePrecision] * N[Power[Pi, 4.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], If[LessEqual[t$95$2, 1e-15], N[ArcTan[N[(t$95$1 * N[(N[(1.0 + N[(-2.0 * N[Log[N[Power[19333.689074365146, N[(z0 * z0), $MachinePrecision]], $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[N[(t$95$1 * N[(N[Sin[N[(N[(N[(Pi * -2.0), $MachinePrecision] * z0), $MachinePrecision] + N[(0.5 * Pi), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / t$95$0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]]]), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
t_0 := \left(-\left|z2\right|\right) \cdot \sin \left(\left(-2 \cdot z0\right) \cdot \pi\right)\\
t_1 := -\left|z1\right|\\
t_2 := \tan^{-1} \left(\frac{\left|z1\right|}{\left|z2\right|} \cdot \tan \left(\pi \cdot \left(0.5 + \left(z0 + z0\right)\right)\right)\right)\\
t_3 := \left(z0 + z0\right) \cdot \pi\\
\mathsf{copysign}\left(1, z1\right) \cdot \left(\mathsf{copysign}\left(1, z2\right) \cdot \begin{array}{l}
\mathbf{if}\;t\_2 \leq -5 \cdot 10^{-9}:\\
\;\;\;\;\tan^{-1} \left(\frac{\left(-\cos t\_3\right) \cdot \left|z1\right|}{\sin t\_3 \cdot \left|z2\right|}\right)\\
\mathbf{elif}\;t\_2 \leq -4 \cdot 10^{-208}:\\
\;\;\;\;\tan^{-1} \left(t\_1 \cdot \frac{1 + {z0}^{2} \cdot \left(-2 \cdot {\pi}^{2} + 0.6666666666666666 \cdot \left({z0}^{2} \cdot {\pi}^{4}\right)\right)}{t\_0}\right)\\
\mathbf{elif}\;t\_2 \leq 10^{-15}:\\
\;\;\;\;\tan^{-1} \left(t\_1 \cdot \frac{1 + -2 \cdot \log \left({19333.689074365146}^{\left(z0 \cdot z0\right)}\right)}{t\_0}\right)\\
\mathbf{else}:\\
\;\;\;\;\tan^{-1} \left(t\_1 \cdot \frac{\sin \left(\left(\pi \cdot -2\right) \cdot z0 + 0.5 \cdot \pi\right)}{t\_0}\right)\\
\end{array}\right)
\end{array}
if (atan.f64 (*.f64 (/.f64 z1 z2) (tan.f64 (*.f64 (PI.f64) (+.f64 #s(literal 1/2 binary64) (+.f64 z0 z0)))))) < -5.0000000000000001e-9Initial program 32.3%
lift-*.f64N/A
*-commutativeN/A
lift-tan.f64N/A
tan-quotN/A
frac-2negN/A
lift-/.f64N/A
frac-timesN/A
lower-/.f64N/A
Applied rewrites65.1%
if -5.0000000000000001e-9 < (atan.f64 (*.f64 (/.f64 z1 z2) (tan.f64 (*.f64 (PI.f64) (+.f64 #s(literal 1/2 binary64) (+.f64 z0 z0)))))) < -4.0000000000000004e-208Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-+.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-pow.f64N/A
lower-PI.f6471.8%
Applied rewrites71.8%
lift-*.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-PI.f64N/A
add-log-expN/A
log-pow-revN/A
log-pow-revN/A
lower-log.f64N/A
lower-pow.f64N/A
lift-PI.f64N/A
pow-expN/A
unpow2N/A
lift-pow.f64N/A
lower-exp.f6474.6%
lift-pow.f64N/A
unpow2N/A
lower-*.f6474.6%
lift-pow.f64N/A
unpow2N/A
lower-*.f6474.6%
Applied rewrites74.6%
Taylor expanded in z0 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-*.f64N/A
lower-pow.f64N/A
lower-pow.f64N/A
lower-PI.f6474.2%
Applied rewrites74.2%
if -4.0000000000000004e-208 < (atan.f64 (*.f64 (/.f64 z1 z2) (tan.f64 (*.f64 (PI.f64) (+.f64 #s(literal 1/2 binary64) (+.f64 z0 z0)))))) < 1.0000000000000001e-15Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-+.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-pow.f64N/A
lower-PI.f6471.8%
Applied rewrites71.8%
lift-*.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-PI.f64N/A
add-log-expN/A
log-pow-revN/A
log-pow-revN/A
lower-log.f64N/A
lower-pow.f64N/A
lift-PI.f64N/A
pow-expN/A
unpow2N/A
lift-pow.f64N/A
lower-exp.f6474.6%
lift-pow.f64N/A
unpow2N/A
lower-*.f6474.6%
lift-pow.f64N/A
unpow2N/A
lower-*.f6474.6%
Applied rewrites74.6%
Evaluated real constant74.6%
if 1.0000000000000001e-15 < (atan.f64 (*.f64 (/.f64 z1 z2) (tan.f64 (*.f64 (PI.f64) (+.f64 #s(literal 1/2 binary64) (+.f64 z0 z0)))))) Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
lift-cos.f64N/A
cos-neg-revN/A
sin-+PI/2-revN/A
lower-sin.f64N/A
lift-PI.f64N/A
mult-flipN/A
metadata-evalN/A
*-commutativeN/A
lift-*.f64N/A
lower-+.f64N/A
lift-*.f64N/A
*-commutativeN/A
distribute-rgt-neg-inN/A
lift-+.f64N/A
count-2N/A
distribute-lft-neg-inN/A
metadata-evalN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f6476.7%
Applied rewrites76.7%
(FPCore (z1 z2 z0)
:precision binary64
(let* ((t_0 (- (fabs z1)))
(t_1 (* (- (fabs z2)) (sin (* (* -2.0 z0) PI)))))
(*
(copysign 1.0 z1)
(*
(copysign 1.0 z2)
(if (<= (/ (fabs z1) (fabs z2)) 140000000.0)
(atan
(*
t_0
(/
(+ 1.0 (* -2.0 (log (pow 19333.689074365146 (* z0 z0)))))
t_1)))
(atan
(* t_0 (/ (sin (+ (* (* PI -2.0) z0) (* 0.5 PI))) t_1))))))))double code(double z1, double z2, double z0) {
double t_0 = -fabs(z1);
double t_1 = -fabs(z2) * sin(((-2.0 * z0) * ((double) M_PI)));
double tmp;
if ((fabs(z1) / fabs(z2)) <= 140000000.0) {
tmp = atan((t_0 * ((1.0 + (-2.0 * log(pow(19333.689074365146, (z0 * z0))))) / t_1)));
} else {
tmp = atan((t_0 * (sin((((((double) M_PI) * -2.0) * z0) + (0.5 * ((double) M_PI)))) / t_1)));
}
return copysign(1.0, z1) * (copysign(1.0, z2) * tmp);
}
public static double code(double z1, double z2, double z0) {
double t_0 = -Math.abs(z1);
double t_1 = -Math.abs(z2) * Math.sin(((-2.0 * z0) * Math.PI));
double tmp;
if ((Math.abs(z1) / Math.abs(z2)) <= 140000000.0) {
tmp = Math.atan((t_0 * ((1.0 + (-2.0 * Math.log(Math.pow(19333.689074365146, (z0 * z0))))) / t_1)));
} else {
tmp = Math.atan((t_0 * (Math.sin((((Math.PI * -2.0) * z0) + (0.5 * Math.PI))) / t_1)));
}
return Math.copySign(1.0, z1) * (Math.copySign(1.0, z2) * tmp);
}
def code(z1, z2, z0): t_0 = -math.fabs(z1) t_1 = -math.fabs(z2) * math.sin(((-2.0 * z0) * math.pi)) tmp = 0 if (math.fabs(z1) / math.fabs(z2)) <= 140000000.0: tmp = math.atan((t_0 * ((1.0 + (-2.0 * math.log(math.pow(19333.689074365146, (z0 * z0))))) / t_1))) else: tmp = math.atan((t_0 * (math.sin((((math.pi * -2.0) * z0) + (0.5 * math.pi))) / t_1))) return math.copysign(1.0, z1) * (math.copysign(1.0, z2) * tmp)
function code(z1, z2, z0) t_0 = Float64(-abs(z1)) t_1 = Float64(Float64(-abs(z2)) * sin(Float64(Float64(-2.0 * z0) * pi))) tmp = 0.0 if (Float64(abs(z1) / abs(z2)) <= 140000000.0) tmp = atan(Float64(t_0 * Float64(Float64(1.0 + Float64(-2.0 * log((19333.689074365146 ^ Float64(z0 * z0))))) / t_1))); else tmp = atan(Float64(t_0 * Float64(sin(Float64(Float64(Float64(pi * -2.0) * z0) + Float64(0.5 * pi))) / t_1))); end return Float64(copysign(1.0, z1) * Float64(copysign(1.0, z2) * tmp)) end
function tmp_2 = code(z1, z2, z0) t_0 = -abs(z1); t_1 = -abs(z2) * sin(((-2.0 * z0) * pi)); tmp = 0.0; if ((abs(z1) / abs(z2)) <= 140000000.0) tmp = atan((t_0 * ((1.0 + (-2.0 * log((19333.689074365146 ^ (z0 * z0))))) / t_1))); else tmp = atan((t_0 * (sin((((pi * -2.0) * z0) + (0.5 * pi))) / t_1))); end tmp_2 = (sign(z1) * abs(1.0)) * ((sign(z2) * abs(1.0)) * tmp); end
code[z1_, z2_, z0_] := Block[{t$95$0 = (-N[Abs[z1], $MachinePrecision])}, Block[{t$95$1 = N[((-N[Abs[z2], $MachinePrecision]) * N[Sin[N[(N[(-2.0 * z0), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, N[(N[With[{TMP1 = Abs[1.0], TMP2 = Sign[z1]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision] * N[(N[With[{TMP1 = Abs[1.0], TMP2 = Sign[z2]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision] * If[LessEqual[N[(N[Abs[z1], $MachinePrecision] / N[Abs[z2], $MachinePrecision]), $MachinePrecision], 140000000.0], N[ArcTan[N[(t$95$0 * N[(N[(1.0 + N[(-2.0 * N[Log[N[Power[19333.689074365146, N[(z0 * z0), $MachinePrecision]], $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$1), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[N[(t$95$0 * N[(N[Sin[N[(N[(N[(Pi * -2.0), $MachinePrecision] * z0), $MachinePrecision] + N[(0.5 * Pi), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / t$95$1), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
t_0 := -\left|z1\right|\\
t_1 := \left(-\left|z2\right|\right) \cdot \sin \left(\left(-2 \cdot z0\right) \cdot \pi\right)\\
\mathsf{copysign}\left(1, z1\right) \cdot \left(\mathsf{copysign}\left(1, z2\right) \cdot \begin{array}{l}
\mathbf{if}\;\frac{\left|z1\right|}{\left|z2\right|} \leq 140000000:\\
\;\;\;\;\tan^{-1} \left(t\_0 \cdot \frac{1 + -2 \cdot \log \left({19333.689074365146}^{\left(z0 \cdot z0\right)}\right)}{t\_1}\right)\\
\mathbf{else}:\\
\;\;\;\;\tan^{-1} \left(t\_0 \cdot \frac{\sin \left(\left(\pi \cdot -2\right) \cdot z0 + 0.5 \cdot \pi\right)}{t\_1}\right)\\
\end{array}\right)
\end{array}
if (/.f64 z1 z2) < 1.4e8Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-+.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-pow.f64N/A
lower-PI.f6471.8%
Applied rewrites71.8%
lift-*.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-PI.f64N/A
add-log-expN/A
log-pow-revN/A
log-pow-revN/A
lower-log.f64N/A
lower-pow.f64N/A
lift-PI.f64N/A
pow-expN/A
unpow2N/A
lift-pow.f64N/A
lower-exp.f6474.6%
lift-pow.f64N/A
unpow2N/A
lower-*.f6474.6%
lift-pow.f64N/A
unpow2N/A
lower-*.f6474.6%
Applied rewrites74.6%
Evaluated real constant74.6%
if 1.4e8 < (/.f64 z1 z2) Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
lift-cos.f64N/A
cos-neg-revN/A
sin-+PI/2-revN/A
lower-sin.f64N/A
lift-PI.f64N/A
mult-flipN/A
metadata-evalN/A
*-commutativeN/A
lift-*.f64N/A
lower-+.f64N/A
lift-*.f64N/A
*-commutativeN/A
distribute-rgt-neg-inN/A
lift-+.f64N/A
count-2N/A
distribute-lft-neg-inN/A
metadata-evalN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f6476.7%
Applied rewrites76.7%
(FPCore (z1 z2 z0)
:precision binary64
(let* ((t_0 (* (- z2) (sin (* (* -2.0 z0) PI))))
(t_1 (* (* (* (* PI PI) -2.0) z0) z0)))
(if (<= z0 -2.7e+106)
(atan (* z1 (/ (tan (* 0.5 PI)) z2)))
(if (<= z0 -8500000000.0)
(atan
(* (- z1) (/ (/ (- (* t_1 t_1) (* 1.0 1.0)) (- t_1 1.0)) t_0)))
(if (<= z0 1.5e+14)
(atan (* (- z1) (/ (cos (* (+ z0 z0) PI)) t_0)))
(atan
(/
(*
z1
(-
(*
(pow z0 2.0)
(- (/ PI z2) (* 0.3333333333333333 (/ PI z2))))
(* 0.5 (/ 1.0 (* z2 PI)))))
z0)))))))double code(double z1, double z2, double z0) {
double t_0 = -z2 * sin(((-2.0 * z0) * ((double) M_PI)));
double t_1 = (((((double) M_PI) * ((double) M_PI)) * -2.0) * z0) * z0;
double tmp;
if (z0 <= -2.7e+106) {
tmp = atan((z1 * (tan((0.5 * ((double) M_PI))) / z2)));
} else if (z0 <= -8500000000.0) {
tmp = atan((-z1 * ((((t_1 * t_1) - (1.0 * 1.0)) / (t_1 - 1.0)) / t_0)));
} else if (z0 <= 1.5e+14) {
tmp = atan((-z1 * (cos(((z0 + z0) * ((double) M_PI))) / t_0)));
} else {
tmp = atan(((z1 * ((pow(z0, 2.0) * ((((double) M_PI) / z2) - (0.3333333333333333 * (((double) M_PI) / z2)))) - (0.5 * (1.0 / (z2 * ((double) M_PI)))))) / z0));
}
return tmp;
}
public static double code(double z1, double z2, double z0) {
double t_0 = -z2 * Math.sin(((-2.0 * z0) * Math.PI));
double t_1 = (((Math.PI * Math.PI) * -2.0) * z0) * z0;
double tmp;
if (z0 <= -2.7e+106) {
tmp = Math.atan((z1 * (Math.tan((0.5 * Math.PI)) / z2)));
} else if (z0 <= -8500000000.0) {
tmp = Math.atan((-z1 * ((((t_1 * t_1) - (1.0 * 1.0)) / (t_1 - 1.0)) / t_0)));
} else if (z0 <= 1.5e+14) {
tmp = Math.atan((-z1 * (Math.cos(((z0 + z0) * Math.PI)) / t_0)));
} else {
tmp = Math.atan(((z1 * ((Math.pow(z0, 2.0) * ((Math.PI / z2) - (0.3333333333333333 * (Math.PI / z2)))) - (0.5 * (1.0 / (z2 * Math.PI))))) / z0));
}
return tmp;
}
def code(z1, z2, z0): t_0 = -z2 * math.sin(((-2.0 * z0) * math.pi)) t_1 = (((math.pi * math.pi) * -2.0) * z0) * z0 tmp = 0 if z0 <= -2.7e+106: tmp = math.atan((z1 * (math.tan((0.5 * math.pi)) / z2))) elif z0 <= -8500000000.0: tmp = math.atan((-z1 * ((((t_1 * t_1) - (1.0 * 1.0)) / (t_1 - 1.0)) / t_0))) elif z0 <= 1.5e+14: tmp = math.atan((-z1 * (math.cos(((z0 + z0) * math.pi)) / t_0))) else: tmp = math.atan(((z1 * ((math.pow(z0, 2.0) * ((math.pi / z2) - (0.3333333333333333 * (math.pi / z2)))) - (0.5 * (1.0 / (z2 * math.pi))))) / z0)) return tmp
function code(z1, z2, z0) t_0 = Float64(Float64(-z2) * sin(Float64(Float64(-2.0 * z0) * pi))) t_1 = Float64(Float64(Float64(Float64(pi * pi) * -2.0) * z0) * z0) tmp = 0.0 if (z0 <= -2.7e+106) tmp = atan(Float64(z1 * Float64(tan(Float64(0.5 * pi)) / z2))); elseif (z0 <= -8500000000.0) tmp = atan(Float64(Float64(-z1) * Float64(Float64(Float64(Float64(t_1 * t_1) - Float64(1.0 * 1.0)) / Float64(t_1 - 1.0)) / t_0))); elseif (z0 <= 1.5e+14) tmp = atan(Float64(Float64(-z1) * Float64(cos(Float64(Float64(z0 + z0) * pi)) / t_0))); else tmp = atan(Float64(Float64(z1 * Float64(Float64((z0 ^ 2.0) * Float64(Float64(pi / z2) - Float64(0.3333333333333333 * Float64(pi / z2)))) - Float64(0.5 * Float64(1.0 / Float64(z2 * pi))))) / z0)); end return tmp end
function tmp_2 = code(z1, z2, z0) t_0 = -z2 * sin(((-2.0 * z0) * pi)); t_1 = (((pi * pi) * -2.0) * z0) * z0; tmp = 0.0; if (z0 <= -2.7e+106) tmp = atan((z1 * (tan((0.5 * pi)) / z2))); elseif (z0 <= -8500000000.0) tmp = atan((-z1 * ((((t_1 * t_1) - (1.0 * 1.0)) / (t_1 - 1.0)) / t_0))); elseif (z0 <= 1.5e+14) tmp = atan((-z1 * (cos(((z0 + z0) * pi)) / t_0))); else tmp = atan(((z1 * (((z0 ^ 2.0) * ((pi / z2) - (0.3333333333333333 * (pi / z2)))) - (0.5 * (1.0 / (z2 * pi))))) / z0)); end tmp_2 = tmp; end
code[z1_, z2_, z0_] := Block[{t$95$0 = N[((-z2) * N[Sin[N[(N[(-2.0 * z0), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(N[(N[(Pi * Pi), $MachinePrecision] * -2.0), $MachinePrecision] * z0), $MachinePrecision] * z0), $MachinePrecision]}, If[LessEqual[z0, -2.7e+106], N[ArcTan[N[(z1 * N[(N[Tan[N[(0.5 * Pi), $MachinePrecision]], $MachinePrecision] / z2), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], If[LessEqual[z0, -8500000000.0], N[ArcTan[N[((-z1) * N[(N[(N[(N[(t$95$1 * t$95$1), $MachinePrecision] - N[(1.0 * 1.0), $MachinePrecision]), $MachinePrecision] / N[(t$95$1 - 1.0), $MachinePrecision]), $MachinePrecision] / t$95$0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], If[LessEqual[z0, 1.5e+14], N[ArcTan[N[((-z1) * N[(N[Cos[N[(N[(z0 + z0), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision] / t$95$0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[N[(N[(z1 * N[(N[(N[Power[z0, 2.0], $MachinePrecision] * N[(N[(Pi / z2), $MachinePrecision] - N[(0.3333333333333333 * N[(Pi / z2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(0.5 * N[(1.0 / N[(z2 * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / z0), $MachinePrecision]], $MachinePrecision]]]]]]
\begin{array}{l}
t_0 := \left(-z2\right) \cdot \sin \left(\left(-2 \cdot z0\right) \cdot \pi\right)\\
t_1 := \left(\left(\left(\pi \cdot \pi\right) \cdot -2\right) \cdot z0\right) \cdot z0\\
\mathbf{if}\;z0 \leq -2.7 \cdot 10^{+106}:\\
\;\;\;\;\tan^{-1} \left(z1 \cdot \frac{\tan \left(0.5 \cdot \pi\right)}{z2}\right)\\
\mathbf{elif}\;z0 \leq -8500000000:\\
\;\;\;\;\tan^{-1} \left(\left(-z1\right) \cdot \frac{\frac{t\_1 \cdot t\_1 - 1 \cdot 1}{t\_1 - 1}}{t\_0}\right)\\
\mathbf{elif}\;z0 \leq 1.5 \cdot 10^{+14}:\\
\;\;\;\;\tan^{-1} \left(\left(-z1\right) \cdot \frac{\cos \left(\left(z0 + z0\right) \cdot \pi\right)}{t\_0}\right)\\
\mathbf{else}:\\
\;\;\;\;\tan^{-1} \left(\frac{z1 \cdot \left({z0}^{2} \cdot \left(\frac{\pi}{z2} - 0.3333333333333333 \cdot \frac{\pi}{z2}\right) - 0.5 \cdot \frac{1}{z2 \cdot \pi}\right)}{z0}\right)\\
\end{array}
if z0 < -2.7000000000000001e106Initial program 32.3%
Taylor expanded in z0 around 0
Applied rewrites42.6%
lift-*.f64N/A
lift-/.f64N/A
associate-*l/N/A
associate-/l*N/A
lower-*.f64N/A
lower-/.f6442.6%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6442.6%
Applied rewrites42.6%
if -2.7000000000000001e106 < z0 < -8.5e9Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-+.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-pow.f64N/A
lower-PI.f6471.8%
Applied rewrites71.8%
lift-+.f64N/A
+-commutativeN/A
flip-+N/A
lower-unsound-/.f64N/A
Applied rewrites60.8%
if -8.5e9 < z0 < 1.5e14Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
if 1.5e14 < z0 Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-/.f64N/A
Applied rewrites56.2%
Taylor expanded in z1 around 0
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower--.f64N/A
lower-/.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-/.f64N/A
lower-PI.f64N/A
Applied rewrites67.5%
(FPCore (z1 z2 z0)
:precision binary64
(let* ((t_0 (* (* (* (* PI PI) -2.0) z0) z0)) (t_1 (* (+ z0 z0) PI)))
(if (<= z0 -2.7e+106)
(atan (* z1 (/ (tan (* 0.5 PI)) z2)))
(if (<= z0 -8500000000.0)
(atan
(*
(- z1)
(/
(/ (- (* t_0 t_0) (* 1.0 1.0)) (- t_0 1.0))
(* (- z2) (sin (* (* -2.0 z0) PI))))))
(if (<= z0 1.5e+14)
(atan (/ (* (- (cos t_1)) z1) (* (sin t_1) z2)))
(atan
(/
(*
z1
(-
(*
(pow z0 2.0)
(- (/ PI z2) (* 0.3333333333333333 (/ PI z2))))
(* 0.5 (/ 1.0 (* z2 PI)))))
z0)))))))double code(double z1, double z2, double z0) {
double t_0 = (((((double) M_PI) * ((double) M_PI)) * -2.0) * z0) * z0;
double t_1 = (z0 + z0) * ((double) M_PI);
double tmp;
if (z0 <= -2.7e+106) {
tmp = atan((z1 * (tan((0.5 * ((double) M_PI))) / z2)));
} else if (z0 <= -8500000000.0) {
tmp = atan((-z1 * ((((t_0 * t_0) - (1.0 * 1.0)) / (t_0 - 1.0)) / (-z2 * sin(((-2.0 * z0) * ((double) M_PI)))))));
} else if (z0 <= 1.5e+14) {
tmp = atan(((-cos(t_1) * z1) / (sin(t_1) * z2)));
} else {
tmp = atan(((z1 * ((pow(z0, 2.0) * ((((double) M_PI) / z2) - (0.3333333333333333 * (((double) M_PI) / z2)))) - (0.5 * (1.0 / (z2 * ((double) M_PI)))))) / z0));
}
return tmp;
}
public static double code(double z1, double z2, double z0) {
double t_0 = (((Math.PI * Math.PI) * -2.0) * z0) * z0;
double t_1 = (z0 + z0) * Math.PI;
double tmp;
if (z0 <= -2.7e+106) {
tmp = Math.atan((z1 * (Math.tan((0.5 * Math.PI)) / z2)));
} else if (z0 <= -8500000000.0) {
tmp = Math.atan((-z1 * ((((t_0 * t_0) - (1.0 * 1.0)) / (t_0 - 1.0)) / (-z2 * Math.sin(((-2.0 * z0) * Math.PI))))));
} else if (z0 <= 1.5e+14) {
tmp = Math.atan(((-Math.cos(t_1) * z1) / (Math.sin(t_1) * z2)));
} else {
tmp = Math.atan(((z1 * ((Math.pow(z0, 2.0) * ((Math.PI / z2) - (0.3333333333333333 * (Math.PI / z2)))) - (0.5 * (1.0 / (z2 * Math.PI))))) / z0));
}
return tmp;
}
def code(z1, z2, z0): t_0 = (((math.pi * math.pi) * -2.0) * z0) * z0 t_1 = (z0 + z0) * math.pi tmp = 0 if z0 <= -2.7e+106: tmp = math.atan((z1 * (math.tan((0.5 * math.pi)) / z2))) elif z0 <= -8500000000.0: tmp = math.atan((-z1 * ((((t_0 * t_0) - (1.0 * 1.0)) / (t_0 - 1.0)) / (-z2 * math.sin(((-2.0 * z0) * math.pi)))))) elif z0 <= 1.5e+14: tmp = math.atan(((-math.cos(t_1) * z1) / (math.sin(t_1) * z2))) else: tmp = math.atan(((z1 * ((math.pow(z0, 2.0) * ((math.pi / z2) - (0.3333333333333333 * (math.pi / z2)))) - (0.5 * (1.0 / (z2 * math.pi))))) / z0)) return tmp
function code(z1, z2, z0) t_0 = Float64(Float64(Float64(Float64(pi * pi) * -2.0) * z0) * z0) t_1 = Float64(Float64(z0 + z0) * pi) tmp = 0.0 if (z0 <= -2.7e+106) tmp = atan(Float64(z1 * Float64(tan(Float64(0.5 * pi)) / z2))); elseif (z0 <= -8500000000.0) tmp = atan(Float64(Float64(-z1) * Float64(Float64(Float64(Float64(t_0 * t_0) - Float64(1.0 * 1.0)) / Float64(t_0 - 1.0)) / Float64(Float64(-z2) * sin(Float64(Float64(-2.0 * z0) * pi)))))); elseif (z0 <= 1.5e+14) tmp = atan(Float64(Float64(Float64(-cos(t_1)) * z1) / Float64(sin(t_1) * z2))); else tmp = atan(Float64(Float64(z1 * Float64(Float64((z0 ^ 2.0) * Float64(Float64(pi / z2) - Float64(0.3333333333333333 * Float64(pi / z2)))) - Float64(0.5 * Float64(1.0 / Float64(z2 * pi))))) / z0)); end return tmp end
function tmp_2 = code(z1, z2, z0) t_0 = (((pi * pi) * -2.0) * z0) * z0; t_1 = (z0 + z0) * pi; tmp = 0.0; if (z0 <= -2.7e+106) tmp = atan((z1 * (tan((0.5 * pi)) / z2))); elseif (z0 <= -8500000000.0) tmp = atan((-z1 * ((((t_0 * t_0) - (1.0 * 1.0)) / (t_0 - 1.0)) / (-z2 * sin(((-2.0 * z0) * pi)))))); elseif (z0 <= 1.5e+14) tmp = atan(((-cos(t_1) * z1) / (sin(t_1) * z2))); else tmp = atan(((z1 * (((z0 ^ 2.0) * ((pi / z2) - (0.3333333333333333 * (pi / z2)))) - (0.5 * (1.0 / (z2 * pi))))) / z0)); end tmp_2 = tmp; end
code[z1_, z2_, z0_] := Block[{t$95$0 = N[(N[(N[(N[(Pi * Pi), $MachinePrecision] * -2.0), $MachinePrecision] * z0), $MachinePrecision] * z0), $MachinePrecision]}, Block[{t$95$1 = N[(N[(z0 + z0), $MachinePrecision] * Pi), $MachinePrecision]}, If[LessEqual[z0, -2.7e+106], N[ArcTan[N[(z1 * N[(N[Tan[N[(0.5 * Pi), $MachinePrecision]], $MachinePrecision] / z2), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], If[LessEqual[z0, -8500000000.0], N[ArcTan[N[((-z1) * N[(N[(N[(N[(t$95$0 * t$95$0), $MachinePrecision] - N[(1.0 * 1.0), $MachinePrecision]), $MachinePrecision] / N[(t$95$0 - 1.0), $MachinePrecision]), $MachinePrecision] / N[((-z2) * N[Sin[N[(N[(-2.0 * z0), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], If[LessEqual[z0, 1.5e+14], N[ArcTan[N[(N[((-N[Cos[t$95$1], $MachinePrecision]) * z1), $MachinePrecision] / N[(N[Sin[t$95$1], $MachinePrecision] * z2), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[N[(N[(z1 * N[(N[(N[Power[z0, 2.0], $MachinePrecision] * N[(N[(Pi / z2), $MachinePrecision] - N[(0.3333333333333333 * N[(Pi / z2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(0.5 * N[(1.0 / N[(z2 * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / z0), $MachinePrecision]], $MachinePrecision]]]]]]
\begin{array}{l}
t_0 := \left(\left(\left(\pi \cdot \pi\right) \cdot -2\right) \cdot z0\right) \cdot z0\\
t_1 := \left(z0 + z0\right) \cdot \pi\\
\mathbf{if}\;z0 \leq -2.7 \cdot 10^{+106}:\\
\;\;\;\;\tan^{-1} \left(z1 \cdot \frac{\tan \left(0.5 \cdot \pi\right)}{z2}\right)\\
\mathbf{elif}\;z0 \leq -8500000000:\\
\;\;\;\;\tan^{-1} \left(\left(-z1\right) \cdot \frac{\frac{t\_0 \cdot t\_0 - 1 \cdot 1}{t\_0 - 1}}{\left(-z2\right) \cdot \sin \left(\left(-2 \cdot z0\right) \cdot \pi\right)}\right)\\
\mathbf{elif}\;z0 \leq 1.5 \cdot 10^{+14}:\\
\;\;\;\;\tan^{-1} \left(\frac{\left(-\cos t\_1\right) \cdot z1}{\sin t\_1 \cdot z2}\right)\\
\mathbf{else}:\\
\;\;\;\;\tan^{-1} \left(\frac{z1 \cdot \left({z0}^{2} \cdot \left(\frac{\pi}{z2} - 0.3333333333333333 \cdot \frac{\pi}{z2}\right) - 0.5 \cdot \frac{1}{z2 \cdot \pi}\right)}{z0}\right)\\
\end{array}
if z0 < -2.7000000000000001e106Initial program 32.3%
Taylor expanded in z0 around 0
Applied rewrites42.6%
lift-*.f64N/A
lift-/.f64N/A
associate-*l/N/A
associate-/l*N/A
lower-*.f64N/A
lower-/.f6442.6%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6442.6%
Applied rewrites42.6%
if -2.7000000000000001e106 < z0 < -8.5e9Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-+.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-pow.f64N/A
lower-PI.f6471.8%
Applied rewrites71.8%
lift-+.f64N/A
+-commutativeN/A
flip-+N/A
lower-unsound-/.f64N/A
Applied rewrites60.8%
if -8.5e9 < z0 < 1.5e14Initial program 32.3%
lift-*.f64N/A
*-commutativeN/A
lift-tan.f64N/A
tan-quotN/A
frac-2negN/A
lift-/.f64N/A
frac-timesN/A
lower-/.f64N/A
Applied rewrites65.1%
if 1.5e14 < z0 Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-/.f64N/A
Applied rewrites56.2%
Taylor expanded in z1 around 0
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower--.f64N/A
lower-/.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-/.f64N/A
lower-PI.f64N/A
Applied rewrites67.5%
(FPCore (z1 z2 z0)
:precision binary64
(let* ((t_0 (sin (* (* -2.0 z0) PI))) (t_1 (* (* PI PI) PI)))
(*
(copysign 1.0 z1)
(*
(copysign 1.0 z2)
(if (<= (/ (fabs z1) (fabs z2)) 140000000.0)
(atan
(/
(*
(fabs z1)
(-
(*
(-
(*
(-
(* (* -0.08888888888888889 (* z0 z0)) (* t_1 t_1))
(* -0.6666666666666666 (pow PI 4.0)))
(* z0 z0))
(* 2.0 (* PI PI)))
(* z0 z0))
-1.0))
(* t_0 (fabs z2))))
(atan
(*
(- (fabs z1))
(/
(sin (+ (* (* PI -2.0) z0) (* 0.5 PI)))
(* (- (fabs z2)) t_0)))))))))double code(double z1, double z2, double z0) {
double t_0 = sin(((-2.0 * z0) * ((double) M_PI)));
double t_1 = (((double) M_PI) * ((double) M_PI)) * ((double) M_PI);
double tmp;
if ((fabs(z1) / fabs(z2)) <= 140000000.0) {
tmp = atan(((fabs(z1) * (((((((-0.08888888888888889 * (z0 * z0)) * (t_1 * t_1)) - (-0.6666666666666666 * pow(((double) M_PI), 4.0))) * (z0 * z0)) - (2.0 * (((double) M_PI) * ((double) M_PI)))) * (z0 * z0)) - -1.0)) / (t_0 * fabs(z2))));
} else {
tmp = atan((-fabs(z1) * (sin((((((double) M_PI) * -2.0) * z0) + (0.5 * ((double) M_PI)))) / (-fabs(z2) * t_0))));
}
return copysign(1.0, z1) * (copysign(1.0, z2) * tmp);
}
public static double code(double z1, double z2, double z0) {
double t_0 = Math.sin(((-2.0 * z0) * Math.PI));
double t_1 = (Math.PI * Math.PI) * Math.PI;
double tmp;
if ((Math.abs(z1) / Math.abs(z2)) <= 140000000.0) {
tmp = Math.atan(((Math.abs(z1) * (((((((-0.08888888888888889 * (z0 * z0)) * (t_1 * t_1)) - (-0.6666666666666666 * Math.pow(Math.PI, 4.0))) * (z0 * z0)) - (2.0 * (Math.PI * Math.PI))) * (z0 * z0)) - -1.0)) / (t_0 * Math.abs(z2))));
} else {
tmp = Math.atan((-Math.abs(z1) * (Math.sin((((Math.PI * -2.0) * z0) + (0.5 * Math.PI))) / (-Math.abs(z2) * t_0))));
}
return Math.copySign(1.0, z1) * (Math.copySign(1.0, z2) * tmp);
}
def code(z1, z2, z0): t_0 = math.sin(((-2.0 * z0) * math.pi)) t_1 = (math.pi * math.pi) * math.pi tmp = 0 if (math.fabs(z1) / math.fabs(z2)) <= 140000000.0: tmp = math.atan(((math.fabs(z1) * (((((((-0.08888888888888889 * (z0 * z0)) * (t_1 * t_1)) - (-0.6666666666666666 * math.pow(math.pi, 4.0))) * (z0 * z0)) - (2.0 * (math.pi * math.pi))) * (z0 * z0)) - -1.0)) / (t_0 * math.fabs(z2)))) else: tmp = math.atan((-math.fabs(z1) * (math.sin((((math.pi * -2.0) * z0) + (0.5 * math.pi))) / (-math.fabs(z2) * t_0)))) return math.copysign(1.0, z1) * (math.copysign(1.0, z2) * tmp)
function code(z1, z2, z0) t_0 = sin(Float64(Float64(-2.0 * z0) * pi)) t_1 = Float64(Float64(pi * pi) * pi) tmp = 0.0 if (Float64(abs(z1) / abs(z2)) <= 140000000.0) tmp = atan(Float64(Float64(abs(z1) * Float64(Float64(Float64(Float64(Float64(Float64(Float64(-0.08888888888888889 * Float64(z0 * z0)) * Float64(t_1 * t_1)) - Float64(-0.6666666666666666 * (pi ^ 4.0))) * Float64(z0 * z0)) - Float64(2.0 * Float64(pi * pi))) * Float64(z0 * z0)) - -1.0)) / Float64(t_0 * abs(z2)))); else tmp = atan(Float64(Float64(-abs(z1)) * Float64(sin(Float64(Float64(Float64(pi * -2.0) * z0) + Float64(0.5 * pi))) / Float64(Float64(-abs(z2)) * t_0)))); end return Float64(copysign(1.0, z1) * Float64(copysign(1.0, z2) * tmp)) end
function tmp_2 = code(z1, z2, z0) t_0 = sin(((-2.0 * z0) * pi)); t_1 = (pi * pi) * pi; tmp = 0.0; if ((abs(z1) / abs(z2)) <= 140000000.0) tmp = atan(((abs(z1) * (((((((-0.08888888888888889 * (z0 * z0)) * (t_1 * t_1)) - (-0.6666666666666666 * (pi ^ 4.0))) * (z0 * z0)) - (2.0 * (pi * pi))) * (z0 * z0)) - -1.0)) / (t_0 * abs(z2)))); else tmp = atan((-abs(z1) * (sin((((pi * -2.0) * z0) + (0.5 * pi))) / (-abs(z2) * t_0)))); end tmp_2 = (sign(z1) * abs(1.0)) * ((sign(z2) * abs(1.0)) * tmp); end
code[z1_, z2_, z0_] := Block[{t$95$0 = N[Sin[N[(N[(-2.0 * z0), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$1 = N[(N[(Pi * Pi), $MachinePrecision] * Pi), $MachinePrecision]}, N[(N[With[{TMP1 = Abs[1.0], TMP2 = Sign[z1]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision] * N[(N[With[{TMP1 = Abs[1.0], TMP2 = Sign[z2]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision] * If[LessEqual[N[(N[Abs[z1], $MachinePrecision] / N[Abs[z2], $MachinePrecision]), $MachinePrecision], 140000000.0], N[ArcTan[N[(N[(N[Abs[z1], $MachinePrecision] * N[(N[(N[(N[(N[(N[(N[(-0.08888888888888889 * N[(z0 * z0), $MachinePrecision]), $MachinePrecision] * N[(t$95$1 * t$95$1), $MachinePrecision]), $MachinePrecision] - N[(-0.6666666666666666 * N[Power[Pi, 4.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(z0 * z0), $MachinePrecision]), $MachinePrecision] - N[(2.0 * N[(Pi * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(z0 * z0), $MachinePrecision]), $MachinePrecision] - -1.0), $MachinePrecision]), $MachinePrecision] / N[(t$95$0 * N[Abs[z2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[N[((-N[Abs[z1], $MachinePrecision]) * N[(N[Sin[N[(N[(N[(Pi * -2.0), $MachinePrecision] * z0), $MachinePrecision] + N[(0.5 * Pi), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / N[((-N[Abs[z2], $MachinePrecision]) * t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
t_0 := \sin \left(\left(-2 \cdot z0\right) \cdot \pi\right)\\
t_1 := \left(\pi \cdot \pi\right) \cdot \pi\\
\mathsf{copysign}\left(1, z1\right) \cdot \left(\mathsf{copysign}\left(1, z2\right) \cdot \begin{array}{l}
\mathbf{if}\;\frac{\left|z1\right|}{\left|z2\right|} \leq 140000000:\\
\;\;\;\;\tan^{-1} \left(\frac{\left|z1\right| \cdot \left(\left(\left(\left(-0.08888888888888889 \cdot \left(z0 \cdot z0\right)\right) \cdot \left(t\_1 \cdot t\_1\right) - -0.6666666666666666 \cdot {\pi}^{4}\right) \cdot \left(z0 \cdot z0\right) - 2 \cdot \left(\pi \cdot \pi\right)\right) \cdot \left(z0 \cdot z0\right) - -1\right)}{t\_0 \cdot \left|z2\right|}\right)\\
\mathbf{else}:\\
\;\;\;\;\tan^{-1} \left(\left(-\left|z1\right|\right) \cdot \frac{\sin \left(\left(\pi \cdot -2\right) \cdot z0 + 0.5 \cdot \pi\right)}{\left(-\left|z2\right|\right) \cdot t\_0}\right)\\
\end{array}\right)
\end{array}
if (/.f64 z1 z2) < 1.4e8Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 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 rewrites74.1%
Applied rewrites74.1%
if 1.4e8 < (/.f64 z1 z2) Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
lift-cos.f64N/A
cos-neg-revN/A
sin-+PI/2-revN/A
lower-sin.f64N/A
lift-PI.f64N/A
mult-flipN/A
metadata-evalN/A
*-commutativeN/A
lift-*.f64N/A
lower-+.f64N/A
lift-*.f64N/A
*-commutativeN/A
distribute-rgt-neg-inN/A
lift-+.f64N/A
count-2N/A
distribute-lft-neg-inN/A
metadata-evalN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f6476.7%
Applied rewrites76.7%
(FPCore (z1 z2 z0)
:precision binary64
(let* ((t_0 (* (* (* (* PI PI) -2.0) z0) z0)))
(if (<= z0 -2.7e+106)
(atan (* z1 (/ (tan (* 0.5 PI)) z2)))
(if (<= z0 2e-46)
(atan
(*
(- z1)
(/
(/ (- (* t_0 t_0) (* 1.0 1.0)) (- t_0 1.0))
(* (- z2) (sin (* (* -2.0 z0) PI))))))
(atan
(/
(*
z1
(-
(*
(pow z0 2.0)
(- (/ PI z2) (* 0.3333333333333333 (/ PI z2))))
(* 0.5 (/ 1.0 (* z2 PI)))))
z0))))))double code(double z1, double z2, double z0) {
double t_0 = (((((double) M_PI) * ((double) M_PI)) * -2.0) * z0) * z0;
double tmp;
if (z0 <= -2.7e+106) {
tmp = atan((z1 * (tan((0.5 * ((double) M_PI))) / z2)));
} else if (z0 <= 2e-46) {
tmp = atan((-z1 * ((((t_0 * t_0) - (1.0 * 1.0)) / (t_0 - 1.0)) / (-z2 * sin(((-2.0 * z0) * ((double) M_PI)))))));
} else {
tmp = atan(((z1 * ((pow(z0, 2.0) * ((((double) M_PI) / z2) - (0.3333333333333333 * (((double) M_PI) / z2)))) - (0.5 * (1.0 / (z2 * ((double) M_PI)))))) / z0));
}
return tmp;
}
public static double code(double z1, double z2, double z0) {
double t_0 = (((Math.PI * Math.PI) * -2.0) * z0) * z0;
double tmp;
if (z0 <= -2.7e+106) {
tmp = Math.atan((z1 * (Math.tan((0.5 * Math.PI)) / z2)));
} else if (z0 <= 2e-46) {
tmp = Math.atan((-z1 * ((((t_0 * t_0) - (1.0 * 1.0)) / (t_0 - 1.0)) / (-z2 * Math.sin(((-2.0 * z0) * Math.PI))))));
} else {
tmp = Math.atan(((z1 * ((Math.pow(z0, 2.0) * ((Math.PI / z2) - (0.3333333333333333 * (Math.PI / z2)))) - (0.5 * (1.0 / (z2 * Math.PI))))) / z0));
}
return tmp;
}
def code(z1, z2, z0): t_0 = (((math.pi * math.pi) * -2.0) * z0) * z0 tmp = 0 if z0 <= -2.7e+106: tmp = math.atan((z1 * (math.tan((0.5 * math.pi)) / z2))) elif z0 <= 2e-46: tmp = math.atan((-z1 * ((((t_0 * t_0) - (1.0 * 1.0)) / (t_0 - 1.0)) / (-z2 * math.sin(((-2.0 * z0) * math.pi)))))) else: tmp = math.atan(((z1 * ((math.pow(z0, 2.0) * ((math.pi / z2) - (0.3333333333333333 * (math.pi / z2)))) - (0.5 * (1.0 / (z2 * math.pi))))) / z0)) return tmp
function code(z1, z2, z0) t_0 = Float64(Float64(Float64(Float64(pi * pi) * -2.0) * z0) * z0) tmp = 0.0 if (z0 <= -2.7e+106) tmp = atan(Float64(z1 * Float64(tan(Float64(0.5 * pi)) / z2))); elseif (z0 <= 2e-46) tmp = atan(Float64(Float64(-z1) * Float64(Float64(Float64(Float64(t_0 * t_0) - Float64(1.0 * 1.0)) / Float64(t_0 - 1.0)) / Float64(Float64(-z2) * sin(Float64(Float64(-2.0 * z0) * pi)))))); else tmp = atan(Float64(Float64(z1 * Float64(Float64((z0 ^ 2.0) * Float64(Float64(pi / z2) - Float64(0.3333333333333333 * Float64(pi / z2)))) - Float64(0.5 * Float64(1.0 / Float64(z2 * pi))))) / z0)); end return tmp end
function tmp_2 = code(z1, z2, z0) t_0 = (((pi * pi) * -2.0) * z0) * z0; tmp = 0.0; if (z0 <= -2.7e+106) tmp = atan((z1 * (tan((0.5 * pi)) / z2))); elseif (z0 <= 2e-46) tmp = atan((-z1 * ((((t_0 * t_0) - (1.0 * 1.0)) / (t_0 - 1.0)) / (-z2 * sin(((-2.0 * z0) * pi)))))); else tmp = atan(((z1 * (((z0 ^ 2.0) * ((pi / z2) - (0.3333333333333333 * (pi / z2)))) - (0.5 * (1.0 / (z2 * pi))))) / z0)); end tmp_2 = tmp; end
code[z1_, z2_, z0_] := Block[{t$95$0 = N[(N[(N[(N[(Pi * Pi), $MachinePrecision] * -2.0), $MachinePrecision] * z0), $MachinePrecision] * z0), $MachinePrecision]}, If[LessEqual[z0, -2.7e+106], N[ArcTan[N[(z1 * N[(N[Tan[N[(0.5 * Pi), $MachinePrecision]], $MachinePrecision] / z2), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], If[LessEqual[z0, 2e-46], N[ArcTan[N[((-z1) * N[(N[(N[(N[(t$95$0 * t$95$0), $MachinePrecision] - N[(1.0 * 1.0), $MachinePrecision]), $MachinePrecision] / N[(t$95$0 - 1.0), $MachinePrecision]), $MachinePrecision] / N[((-z2) * N[Sin[N[(N[(-2.0 * z0), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[N[(N[(z1 * N[(N[(N[Power[z0, 2.0], $MachinePrecision] * N[(N[(Pi / z2), $MachinePrecision] - N[(0.3333333333333333 * N[(Pi / z2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(0.5 * N[(1.0 / N[(z2 * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / z0), $MachinePrecision]], $MachinePrecision]]]]
\begin{array}{l}
t_0 := \left(\left(\left(\pi \cdot \pi\right) \cdot -2\right) \cdot z0\right) \cdot z0\\
\mathbf{if}\;z0 \leq -2.7 \cdot 10^{+106}:\\
\;\;\;\;\tan^{-1} \left(z1 \cdot \frac{\tan \left(0.5 \cdot \pi\right)}{z2}\right)\\
\mathbf{elif}\;z0 \leq 2 \cdot 10^{-46}:\\
\;\;\;\;\tan^{-1} \left(\left(-z1\right) \cdot \frac{\frac{t\_0 \cdot t\_0 - 1 \cdot 1}{t\_0 - 1}}{\left(-z2\right) \cdot \sin \left(\left(-2 \cdot z0\right) \cdot \pi\right)}\right)\\
\mathbf{else}:\\
\;\;\;\;\tan^{-1} \left(\frac{z1 \cdot \left({z0}^{2} \cdot \left(\frac{\pi}{z2} - 0.3333333333333333 \cdot \frac{\pi}{z2}\right) - 0.5 \cdot \frac{1}{z2 \cdot \pi}\right)}{z0}\right)\\
\end{array}
if z0 < -2.7000000000000001e106Initial program 32.3%
Taylor expanded in z0 around 0
Applied rewrites42.6%
lift-*.f64N/A
lift-/.f64N/A
associate-*l/N/A
associate-/l*N/A
lower-*.f64N/A
lower-/.f6442.6%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6442.6%
Applied rewrites42.6%
if -2.7000000000000001e106 < z0 < 2e-46Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-+.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-pow.f64N/A
lower-PI.f6471.8%
Applied rewrites71.8%
lift-+.f64N/A
+-commutativeN/A
flip-+N/A
lower-unsound-/.f64N/A
Applied rewrites60.8%
if 2e-46 < z0 Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-/.f64N/A
Applied rewrites56.2%
Taylor expanded in z1 around 0
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower--.f64N/A
lower-/.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-/.f64N/A
lower-PI.f64N/A
Applied rewrites67.5%
(FPCore (z1 z2 z0)
:precision binary64
(if (<= z0 1.5e+14)
(atan
(*
(- z1)
(/
(sin (+ (* (* PI -2.0) z0) (* 0.5 PI)))
(* (- z2) (sin (* (* -2.0 z0) PI))))))
(atan
(/
(*
z1
(-
(* (pow z0 2.0) (- (/ PI z2) (* 0.3333333333333333 (/ PI z2))))
(* 0.5 (/ 1.0 (* z2 PI)))))
z0))))double code(double z1, double z2, double z0) {
double tmp;
if (z0 <= 1.5e+14) {
tmp = atan((-z1 * (sin((((((double) M_PI) * -2.0) * z0) + (0.5 * ((double) M_PI)))) / (-z2 * sin(((-2.0 * z0) * ((double) M_PI)))))));
} else {
tmp = atan(((z1 * ((pow(z0, 2.0) * ((((double) M_PI) / z2) - (0.3333333333333333 * (((double) M_PI) / z2)))) - (0.5 * (1.0 / (z2 * ((double) M_PI)))))) / z0));
}
return tmp;
}
public static double code(double z1, double z2, double z0) {
double tmp;
if (z0 <= 1.5e+14) {
tmp = Math.atan((-z1 * (Math.sin((((Math.PI * -2.0) * z0) + (0.5 * Math.PI))) / (-z2 * Math.sin(((-2.0 * z0) * Math.PI))))));
} else {
tmp = Math.atan(((z1 * ((Math.pow(z0, 2.0) * ((Math.PI / z2) - (0.3333333333333333 * (Math.PI / z2)))) - (0.5 * (1.0 / (z2 * Math.PI))))) / z0));
}
return tmp;
}
def code(z1, z2, z0): tmp = 0 if z0 <= 1.5e+14: tmp = math.atan((-z1 * (math.sin((((math.pi * -2.0) * z0) + (0.5 * math.pi))) / (-z2 * math.sin(((-2.0 * z0) * math.pi)))))) else: tmp = math.atan(((z1 * ((math.pow(z0, 2.0) * ((math.pi / z2) - (0.3333333333333333 * (math.pi / z2)))) - (0.5 * (1.0 / (z2 * math.pi))))) / z0)) return tmp
function code(z1, z2, z0) tmp = 0.0 if (z0 <= 1.5e+14) tmp = atan(Float64(Float64(-z1) * Float64(sin(Float64(Float64(Float64(pi * -2.0) * z0) + Float64(0.5 * pi))) / Float64(Float64(-z2) * sin(Float64(Float64(-2.0 * z0) * pi)))))); else tmp = atan(Float64(Float64(z1 * Float64(Float64((z0 ^ 2.0) * Float64(Float64(pi / z2) - Float64(0.3333333333333333 * Float64(pi / z2)))) - Float64(0.5 * Float64(1.0 / Float64(z2 * pi))))) / z0)); end return tmp end
function tmp_2 = code(z1, z2, z0) tmp = 0.0; if (z0 <= 1.5e+14) tmp = atan((-z1 * (sin((((pi * -2.0) * z0) + (0.5 * pi))) / (-z2 * sin(((-2.0 * z0) * pi)))))); else tmp = atan(((z1 * (((z0 ^ 2.0) * ((pi / z2) - (0.3333333333333333 * (pi / z2)))) - (0.5 * (1.0 / (z2 * pi))))) / z0)); end tmp_2 = tmp; end
code[z1_, z2_, z0_] := If[LessEqual[z0, 1.5e+14], N[ArcTan[N[((-z1) * N[(N[Sin[N[(N[(N[(Pi * -2.0), $MachinePrecision] * z0), $MachinePrecision] + N[(0.5 * Pi), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / N[((-z2) * N[Sin[N[(N[(-2.0 * z0), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[N[(N[(z1 * N[(N[(N[Power[z0, 2.0], $MachinePrecision] * N[(N[(Pi / z2), $MachinePrecision] - N[(0.3333333333333333 * N[(Pi / z2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(0.5 * N[(1.0 / N[(z2 * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / z0), $MachinePrecision]], $MachinePrecision]]
\begin{array}{l}
\mathbf{if}\;z0 \leq 1.5 \cdot 10^{+14}:\\
\;\;\;\;\tan^{-1} \left(\left(-z1\right) \cdot \frac{\sin \left(\left(\pi \cdot -2\right) \cdot z0 + 0.5 \cdot \pi\right)}{\left(-z2\right) \cdot \sin \left(\left(-2 \cdot z0\right) \cdot \pi\right)}\right)\\
\mathbf{else}:\\
\;\;\;\;\tan^{-1} \left(\frac{z1 \cdot \left({z0}^{2} \cdot \left(\frac{\pi}{z2} - 0.3333333333333333 \cdot \frac{\pi}{z2}\right) - 0.5 \cdot \frac{1}{z2 \cdot \pi}\right)}{z0}\right)\\
\end{array}
if z0 < 1.5e14Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
lift-cos.f64N/A
cos-neg-revN/A
sin-+PI/2-revN/A
lower-sin.f64N/A
lift-PI.f64N/A
mult-flipN/A
metadata-evalN/A
*-commutativeN/A
lift-*.f64N/A
lower-+.f64N/A
lift-*.f64N/A
*-commutativeN/A
distribute-rgt-neg-inN/A
lift-+.f64N/A
count-2N/A
distribute-lft-neg-inN/A
metadata-evalN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f6476.7%
Applied rewrites76.7%
if 1.5e14 < z0 Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-/.f64N/A
Applied rewrites56.2%
Taylor expanded in z1 around 0
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower--.f64N/A
lower-/.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-/.f64N/A
lower-PI.f64N/A
Applied rewrites67.5%
(FPCore (z1 z2 z0)
:precision binary64
(if (<= z0 -5.6e+15)
(atan (* z1 (/ (tan (* 0.5 PI)) z2)))
(atan
(*
(- z1)
(/
(+
(*
-1.0
(*
(pow z0 2.0)
(- (/ PI z2) (* 0.3333333333333333 (/ PI z2)))))
(* 0.5 (/ 1.0 (* z2 PI))))
z0)))))double code(double z1, double z2, double z0) {
double tmp;
if (z0 <= -5.6e+15) {
tmp = atan((z1 * (tan((0.5 * ((double) M_PI))) / z2)));
} else {
tmp = atan((-z1 * (((-1.0 * (pow(z0, 2.0) * ((((double) M_PI) / z2) - (0.3333333333333333 * (((double) M_PI) / z2))))) + (0.5 * (1.0 / (z2 * ((double) M_PI))))) / z0)));
}
return tmp;
}
public static double code(double z1, double z2, double z0) {
double tmp;
if (z0 <= -5.6e+15) {
tmp = Math.atan((z1 * (Math.tan((0.5 * Math.PI)) / z2)));
} else {
tmp = Math.atan((-z1 * (((-1.0 * (Math.pow(z0, 2.0) * ((Math.PI / z2) - (0.3333333333333333 * (Math.PI / z2))))) + (0.5 * (1.0 / (z2 * Math.PI)))) / z0)));
}
return tmp;
}
def code(z1, z2, z0): tmp = 0 if z0 <= -5.6e+15: tmp = math.atan((z1 * (math.tan((0.5 * math.pi)) / z2))) else: tmp = math.atan((-z1 * (((-1.0 * (math.pow(z0, 2.0) * ((math.pi / z2) - (0.3333333333333333 * (math.pi / z2))))) + (0.5 * (1.0 / (z2 * math.pi)))) / z0))) return tmp
function code(z1, z2, z0) tmp = 0.0 if (z0 <= -5.6e+15) tmp = atan(Float64(z1 * Float64(tan(Float64(0.5 * pi)) / z2))); else tmp = atan(Float64(Float64(-z1) * Float64(Float64(Float64(-1.0 * Float64((z0 ^ 2.0) * Float64(Float64(pi / z2) - Float64(0.3333333333333333 * Float64(pi / z2))))) + Float64(0.5 * Float64(1.0 / Float64(z2 * pi)))) / z0))); end return tmp end
function tmp_2 = code(z1, z2, z0) tmp = 0.0; if (z0 <= -5.6e+15) tmp = atan((z1 * (tan((0.5 * pi)) / z2))); else tmp = atan((-z1 * (((-1.0 * ((z0 ^ 2.0) * ((pi / z2) - (0.3333333333333333 * (pi / z2))))) + (0.5 * (1.0 / (z2 * pi)))) / z0))); end tmp_2 = tmp; end
code[z1_, z2_, z0_] := If[LessEqual[z0, -5.6e+15], N[ArcTan[N[(z1 * N[(N[Tan[N[(0.5 * Pi), $MachinePrecision]], $MachinePrecision] / z2), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[N[((-z1) * N[(N[(N[(-1.0 * N[(N[Power[z0, 2.0], $MachinePrecision] * N[(N[(Pi / z2), $MachinePrecision] - N[(0.3333333333333333 * N[(Pi / z2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(0.5 * N[(1.0 / N[(z2 * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / z0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
\begin{array}{l}
\mathbf{if}\;z0 \leq -5.6 \cdot 10^{+15}:\\
\;\;\;\;\tan^{-1} \left(z1 \cdot \frac{\tan \left(0.5 \cdot \pi\right)}{z2}\right)\\
\mathbf{else}:\\
\;\;\;\;\tan^{-1} \left(\left(-z1\right) \cdot \frac{-1 \cdot \left({z0}^{2} \cdot \left(\frac{\pi}{z2} - 0.3333333333333333 \cdot \frac{\pi}{z2}\right)\right) + 0.5 \cdot \frac{1}{z2 \cdot \pi}}{z0}\right)\\
\end{array}
if z0 < -5.6e15Initial program 32.3%
Taylor expanded in z0 around 0
Applied rewrites42.6%
lift-*.f64N/A
lift-/.f64N/A
associate-*l/N/A
associate-/l*N/A
lower-*.f64N/A
lower-/.f6442.6%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6442.6%
Applied rewrites42.6%
if -5.6e15 < z0 Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-/.f64N/A
Applied rewrites71.0%
(FPCore (z1 z2 z0)
:precision binary64
(if (<= z0 2e-46)
(-
(atan
(*
(/
(- (* (* (* (* PI PI) -2.0) z0) z0) -1.0)
(* (sin (* (* -2.0 z0) PI)) (- z2)))
z1)))
(atan
(/
(*
z1
(-
(* (pow z0 2.0) (- (/ PI z2) (* 0.3333333333333333 (/ PI z2))))
(* 0.5 (/ 1.0 (* z2 PI)))))
z0))))double code(double z1, double z2, double z0) {
double tmp;
if (z0 <= 2e-46) {
tmp = -atan((((((((((double) M_PI) * ((double) M_PI)) * -2.0) * z0) * z0) - -1.0) / (sin(((-2.0 * z0) * ((double) M_PI))) * -z2)) * z1));
} else {
tmp = atan(((z1 * ((pow(z0, 2.0) * ((((double) M_PI) / z2) - (0.3333333333333333 * (((double) M_PI) / z2)))) - (0.5 * (1.0 / (z2 * ((double) M_PI)))))) / z0));
}
return tmp;
}
public static double code(double z1, double z2, double z0) {
double tmp;
if (z0 <= 2e-46) {
tmp = -Math.atan((((((((Math.PI * Math.PI) * -2.0) * z0) * z0) - -1.0) / (Math.sin(((-2.0 * z0) * Math.PI)) * -z2)) * z1));
} else {
tmp = Math.atan(((z1 * ((Math.pow(z0, 2.0) * ((Math.PI / z2) - (0.3333333333333333 * (Math.PI / z2)))) - (0.5 * (1.0 / (z2 * Math.PI))))) / z0));
}
return tmp;
}
def code(z1, z2, z0): tmp = 0 if z0 <= 2e-46: tmp = -math.atan((((((((math.pi * math.pi) * -2.0) * z0) * z0) - -1.0) / (math.sin(((-2.0 * z0) * math.pi)) * -z2)) * z1)) else: tmp = math.atan(((z1 * ((math.pow(z0, 2.0) * ((math.pi / z2) - (0.3333333333333333 * (math.pi / z2)))) - (0.5 * (1.0 / (z2 * math.pi))))) / z0)) return tmp
function code(z1, z2, z0) tmp = 0.0 if (z0 <= 2e-46) tmp = Float64(-atan(Float64(Float64(Float64(Float64(Float64(Float64(Float64(pi * pi) * -2.0) * z0) * z0) - -1.0) / Float64(sin(Float64(Float64(-2.0 * z0) * pi)) * Float64(-z2))) * z1))); else tmp = atan(Float64(Float64(z1 * Float64(Float64((z0 ^ 2.0) * Float64(Float64(pi / z2) - Float64(0.3333333333333333 * Float64(pi / z2)))) - Float64(0.5 * Float64(1.0 / Float64(z2 * pi))))) / z0)); end return tmp end
function tmp_2 = code(z1, z2, z0) tmp = 0.0; if (z0 <= 2e-46) tmp = -atan((((((((pi * pi) * -2.0) * z0) * z0) - -1.0) / (sin(((-2.0 * z0) * pi)) * -z2)) * z1)); else tmp = atan(((z1 * (((z0 ^ 2.0) * ((pi / z2) - (0.3333333333333333 * (pi / z2)))) - (0.5 * (1.0 / (z2 * pi))))) / z0)); end tmp_2 = tmp; end
code[z1_, z2_, z0_] := If[LessEqual[z0, 2e-46], (-N[ArcTan[N[(N[(N[(N[(N[(N[(N[(Pi * Pi), $MachinePrecision] * -2.0), $MachinePrecision] * z0), $MachinePrecision] * z0), $MachinePrecision] - -1.0), $MachinePrecision] / N[(N[Sin[N[(N[(-2.0 * z0), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision] * (-z2)), $MachinePrecision]), $MachinePrecision] * z1), $MachinePrecision]], $MachinePrecision]), N[ArcTan[N[(N[(z1 * N[(N[(N[Power[z0, 2.0], $MachinePrecision] * N[(N[(Pi / z2), $MachinePrecision] - N[(0.3333333333333333 * N[(Pi / z2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(0.5 * N[(1.0 / N[(z2 * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / z0), $MachinePrecision]], $MachinePrecision]]
\begin{array}{l}
\mathbf{if}\;z0 \leq 2 \cdot 10^{-46}:\\
\;\;\;\;-\tan^{-1} \left(\frac{\left(\left(\left(\pi \cdot \pi\right) \cdot -2\right) \cdot z0\right) \cdot z0 - -1}{\sin \left(\left(-2 \cdot z0\right) \cdot \pi\right) \cdot \left(-z2\right)} \cdot z1\right)\\
\mathbf{else}:\\
\;\;\;\;\tan^{-1} \left(\frac{z1 \cdot \left({z0}^{2} \cdot \left(\frac{\pi}{z2} - 0.3333333333333333 \cdot \frac{\pi}{z2}\right) - 0.5 \cdot \frac{1}{z2 \cdot \pi}\right)}{z0}\right)\\
\end{array}
if z0 < 2e-46Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-+.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-pow.f64N/A
lower-PI.f6471.8%
Applied rewrites71.8%
lift-atan.f64N/A
lift-*.f64N/A
lift-neg.f64N/A
distribute-lft-neg-outN/A
atan-negN/A
lower-neg.f64N/A
Applied rewrites71.8%
if 2e-46 < z0 Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-/.f64N/A
Applied rewrites56.2%
Taylor expanded in z1 around 0
lower-*.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower--.f64N/A
lower-/.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-/.f64N/A
lower-PI.f64N/A
Applied rewrites67.5%
(FPCore (z1 z2 z0)
:precision binary64
(if (<= z0 4e-122)
(-
(atan
(*
(/
(- (* (* (* (* PI PI) -2.0) z0) z0) -1.0)
(* (sin (* (* -2.0 z0) PI)) (- z2)))
z1)))
(atan
(/
(/
(+
(* -0.5 (/ z1 PI))
(* (pow z0 2.0) (- (* z1 PI) (* 0.3333333333333333 (* z1 PI)))))
z2)
z0))))double code(double z1, double z2, double z0) {
double tmp;
if (z0 <= 4e-122) {
tmp = -atan((((((((((double) M_PI) * ((double) M_PI)) * -2.0) * z0) * z0) - -1.0) / (sin(((-2.0 * z0) * ((double) M_PI))) * -z2)) * z1));
} else {
tmp = atan(((((-0.5 * (z1 / ((double) M_PI))) + (pow(z0, 2.0) * ((z1 * ((double) M_PI)) - (0.3333333333333333 * (z1 * ((double) M_PI)))))) / z2) / z0));
}
return tmp;
}
public static double code(double z1, double z2, double z0) {
double tmp;
if (z0 <= 4e-122) {
tmp = -Math.atan((((((((Math.PI * Math.PI) * -2.0) * z0) * z0) - -1.0) / (Math.sin(((-2.0 * z0) * Math.PI)) * -z2)) * z1));
} else {
tmp = Math.atan(((((-0.5 * (z1 / Math.PI)) + (Math.pow(z0, 2.0) * ((z1 * Math.PI) - (0.3333333333333333 * (z1 * Math.PI))))) / z2) / z0));
}
return tmp;
}
def code(z1, z2, z0): tmp = 0 if z0 <= 4e-122: tmp = -math.atan((((((((math.pi * math.pi) * -2.0) * z0) * z0) - -1.0) / (math.sin(((-2.0 * z0) * math.pi)) * -z2)) * z1)) else: tmp = math.atan(((((-0.5 * (z1 / math.pi)) + (math.pow(z0, 2.0) * ((z1 * math.pi) - (0.3333333333333333 * (z1 * math.pi))))) / z2) / z0)) return tmp
function code(z1, z2, z0) tmp = 0.0 if (z0 <= 4e-122) tmp = Float64(-atan(Float64(Float64(Float64(Float64(Float64(Float64(Float64(pi * pi) * -2.0) * z0) * z0) - -1.0) / Float64(sin(Float64(Float64(-2.0 * z0) * pi)) * Float64(-z2))) * z1))); else tmp = atan(Float64(Float64(Float64(Float64(-0.5 * Float64(z1 / pi)) + Float64((z0 ^ 2.0) * Float64(Float64(z1 * pi) - Float64(0.3333333333333333 * Float64(z1 * pi))))) / z2) / z0)); end return tmp end
function tmp_2 = code(z1, z2, z0) tmp = 0.0; if (z0 <= 4e-122) tmp = -atan((((((((pi * pi) * -2.0) * z0) * z0) - -1.0) / (sin(((-2.0 * z0) * pi)) * -z2)) * z1)); else tmp = atan(((((-0.5 * (z1 / pi)) + ((z0 ^ 2.0) * ((z1 * pi) - (0.3333333333333333 * (z1 * pi))))) / z2) / z0)); end tmp_2 = tmp; end
code[z1_, z2_, z0_] := If[LessEqual[z0, 4e-122], (-N[ArcTan[N[(N[(N[(N[(N[(N[(N[(Pi * Pi), $MachinePrecision] * -2.0), $MachinePrecision] * z0), $MachinePrecision] * z0), $MachinePrecision] - -1.0), $MachinePrecision] / N[(N[Sin[N[(N[(-2.0 * z0), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision] * (-z2)), $MachinePrecision]), $MachinePrecision] * z1), $MachinePrecision]], $MachinePrecision]), N[ArcTan[N[(N[(N[(N[(-0.5 * N[(z1 / Pi), $MachinePrecision]), $MachinePrecision] + N[(N[Power[z0, 2.0], $MachinePrecision] * N[(N[(z1 * Pi), $MachinePrecision] - N[(0.3333333333333333 * N[(z1 * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / z2), $MachinePrecision] / z0), $MachinePrecision]], $MachinePrecision]]
\begin{array}{l}
\mathbf{if}\;z0 \leq 4 \cdot 10^{-122}:\\
\;\;\;\;-\tan^{-1} \left(\frac{\left(\left(\left(\pi \cdot \pi\right) \cdot -2\right) \cdot z0\right) \cdot z0 - -1}{\sin \left(\left(-2 \cdot z0\right) \cdot \pi\right) \cdot \left(-z2\right)} \cdot z1\right)\\
\mathbf{else}:\\
\;\;\;\;\tan^{-1} \left(\frac{\frac{-0.5 \cdot \frac{z1}{\pi} + {z0}^{2} \cdot \left(z1 \cdot \pi - 0.3333333333333333 \cdot \left(z1 \cdot \pi\right)\right)}{z2}}{z0}\right)\\
\end{array}
if z0 < 4.0000000000000002e-122Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-+.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-pow.f64N/A
lower-PI.f6471.8%
Applied rewrites71.8%
lift-atan.f64N/A
lift-*.f64N/A
lift-neg.f64N/A
distribute-lft-neg-outN/A
atan-negN/A
lower-neg.f64N/A
Applied rewrites71.8%
if 4.0000000000000002e-122 < z0 Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-/.f64N/A
Applied rewrites56.2%
Taylor expanded in z2 around 0
lower-/.f64N/A
Applied rewrites67.4%
(FPCore (z1 z2 z0)
:precision binary64
(if (<= z0 -5.6e+15)
(atan (* z1 (/ (tan (* 0.5 PI)) z2)))
(if (<= z0 1.6e+112)
(-
(atan
(*
(/
(- (* (* (* (* -2.0 z0) z0) PI) PI) -1.0)
(* (* (+ z0 z0) z2) PI))
z1)))
(atan
(/
(+
(* -0.5 (/ z1 (* z2 PI)))
(/ (* (* 0.6666666666666666 (* z0 z0)) (* PI z1)) z2))
z0)))))double code(double z1, double z2, double z0) {
double tmp;
if (z0 <= -5.6e+15) {
tmp = atan((z1 * (tan((0.5 * ((double) M_PI))) / z2)));
} else if (z0 <= 1.6e+112) {
tmp = -atan((((((((-2.0 * z0) * z0) * ((double) M_PI)) * ((double) M_PI)) - -1.0) / (((z0 + z0) * z2) * ((double) M_PI))) * z1));
} else {
tmp = atan((((-0.5 * (z1 / (z2 * ((double) M_PI)))) + (((0.6666666666666666 * (z0 * z0)) * (((double) M_PI) * z1)) / z2)) / z0));
}
return tmp;
}
public static double code(double z1, double z2, double z0) {
double tmp;
if (z0 <= -5.6e+15) {
tmp = Math.atan((z1 * (Math.tan((0.5 * Math.PI)) / z2)));
} else if (z0 <= 1.6e+112) {
tmp = -Math.atan((((((((-2.0 * z0) * z0) * Math.PI) * Math.PI) - -1.0) / (((z0 + z0) * z2) * Math.PI)) * z1));
} else {
tmp = Math.atan((((-0.5 * (z1 / (z2 * Math.PI))) + (((0.6666666666666666 * (z0 * z0)) * (Math.PI * z1)) / z2)) / z0));
}
return tmp;
}
def code(z1, z2, z0): tmp = 0 if z0 <= -5.6e+15: tmp = math.atan((z1 * (math.tan((0.5 * math.pi)) / z2))) elif z0 <= 1.6e+112: tmp = -math.atan((((((((-2.0 * z0) * z0) * math.pi) * math.pi) - -1.0) / (((z0 + z0) * z2) * math.pi)) * z1)) else: tmp = math.atan((((-0.5 * (z1 / (z2 * math.pi))) + (((0.6666666666666666 * (z0 * z0)) * (math.pi * z1)) / z2)) / z0)) return tmp
function code(z1, z2, z0) tmp = 0.0 if (z0 <= -5.6e+15) tmp = atan(Float64(z1 * Float64(tan(Float64(0.5 * pi)) / z2))); elseif (z0 <= 1.6e+112) tmp = Float64(-atan(Float64(Float64(Float64(Float64(Float64(Float64(Float64(-2.0 * z0) * z0) * pi) * pi) - -1.0) / Float64(Float64(Float64(z0 + z0) * z2) * pi)) * z1))); else tmp = atan(Float64(Float64(Float64(-0.5 * Float64(z1 / Float64(z2 * pi))) + Float64(Float64(Float64(0.6666666666666666 * Float64(z0 * z0)) * Float64(pi * z1)) / z2)) / z0)); end return tmp end
function tmp_2 = code(z1, z2, z0) tmp = 0.0; if (z0 <= -5.6e+15) tmp = atan((z1 * (tan((0.5 * pi)) / z2))); elseif (z0 <= 1.6e+112) tmp = -atan((((((((-2.0 * z0) * z0) * pi) * pi) - -1.0) / (((z0 + z0) * z2) * pi)) * z1)); else tmp = atan((((-0.5 * (z1 / (z2 * pi))) + (((0.6666666666666666 * (z0 * z0)) * (pi * z1)) / z2)) / z0)); end tmp_2 = tmp; end
code[z1_, z2_, z0_] := If[LessEqual[z0, -5.6e+15], N[ArcTan[N[(z1 * N[(N[Tan[N[(0.5 * Pi), $MachinePrecision]], $MachinePrecision] / z2), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], If[LessEqual[z0, 1.6e+112], (-N[ArcTan[N[(N[(N[(N[(N[(N[(N[(-2.0 * z0), $MachinePrecision] * z0), $MachinePrecision] * Pi), $MachinePrecision] * Pi), $MachinePrecision] - -1.0), $MachinePrecision] / N[(N[(N[(z0 + z0), $MachinePrecision] * z2), $MachinePrecision] * Pi), $MachinePrecision]), $MachinePrecision] * z1), $MachinePrecision]], $MachinePrecision]), N[ArcTan[N[(N[(N[(-0.5 * N[(z1 / N[(z2 * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(N[(0.6666666666666666 * N[(z0 * z0), $MachinePrecision]), $MachinePrecision] * N[(Pi * z1), $MachinePrecision]), $MachinePrecision] / z2), $MachinePrecision]), $MachinePrecision] / z0), $MachinePrecision]], $MachinePrecision]]]
\begin{array}{l}
\mathbf{if}\;z0 \leq -5.6 \cdot 10^{+15}:\\
\;\;\;\;\tan^{-1} \left(z1 \cdot \frac{\tan \left(0.5 \cdot \pi\right)}{z2}\right)\\
\mathbf{elif}\;z0 \leq 1.6 \cdot 10^{+112}:\\
\;\;\;\;-\tan^{-1} \left(\frac{\left(\left(\left(-2 \cdot z0\right) \cdot z0\right) \cdot \pi\right) \cdot \pi - -1}{\left(\left(z0 + z0\right) \cdot z2\right) \cdot \pi} \cdot z1\right)\\
\mathbf{else}:\\
\;\;\;\;\tan^{-1} \left(\frac{-0.5 \cdot \frac{z1}{z2 \cdot \pi} + \frac{\left(0.6666666666666666 \cdot \left(z0 \cdot z0\right)\right) \cdot \left(\pi \cdot z1\right)}{z2}}{z0}\right)\\
\end{array}
if z0 < -5.6e15Initial program 32.3%
Taylor expanded in z0 around 0
Applied rewrites42.6%
lift-*.f64N/A
lift-/.f64N/A
associate-*l/N/A
associate-/l*N/A
lower-*.f64N/A
lower-/.f6442.6%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6442.6%
Applied rewrites42.6%
if -5.6e15 < z0 < 1.5999999999999999e112Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-+.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-pow.f64N/A
lower-PI.f6471.8%
Applied rewrites71.8%
Taylor expanded in z0 around 0
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f6465.8%
Applied rewrites65.8%
Applied rewrites65.8%
if 1.5999999999999999e112 < z0 Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-/.f64N/A
Applied rewrites56.2%
lift-pow.f64N/A
unpow2N/A
lower-*.f6456.2%
lift--.f64N/A
lift-*.f64N/A
fp-cancel-sub-sign-invN/A
distribute-rgt1-inN/A
metadata-evalN/A
metadata-evalN/A
lower-*.f6456.2%
lift-/.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-/l*N/A
lift-/.f64N/A
lower-*.f6456.3%
Applied rewrites56.3%
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lift-*.f64N/A
lift-/.f64N/A
associate-*r/N/A
associate-*r/N/A
lower-/.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-*.f6463.2%
Applied rewrites63.2%
(FPCore (z1 z2 z0)
:precision binary64
(if (<= z0 1.75e+20)
(-
(atan
(*
(/
(- (* (* (* (* PI PI) -2.0) z0) z0) -1.0)
(* (sin (* (* -2.0 z0) PI)) (- z2)))
z1)))
(atan
(/
(+
(* -0.5 (/ z1 (* z2 PI)))
(/ (* (* 0.6666666666666666 (* z0 z0)) (* PI z1)) z2))
z0))))double code(double z1, double z2, double z0) {
double tmp;
if (z0 <= 1.75e+20) {
tmp = -atan((((((((((double) M_PI) * ((double) M_PI)) * -2.0) * z0) * z0) - -1.0) / (sin(((-2.0 * z0) * ((double) M_PI))) * -z2)) * z1));
} else {
tmp = atan((((-0.5 * (z1 / (z2 * ((double) M_PI)))) + (((0.6666666666666666 * (z0 * z0)) * (((double) M_PI) * z1)) / z2)) / z0));
}
return tmp;
}
public static double code(double z1, double z2, double z0) {
double tmp;
if (z0 <= 1.75e+20) {
tmp = -Math.atan((((((((Math.PI * Math.PI) * -2.0) * z0) * z0) - -1.0) / (Math.sin(((-2.0 * z0) * Math.PI)) * -z2)) * z1));
} else {
tmp = Math.atan((((-0.5 * (z1 / (z2 * Math.PI))) + (((0.6666666666666666 * (z0 * z0)) * (Math.PI * z1)) / z2)) / z0));
}
return tmp;
}
def code(z1, z2, z0): tmp = 0 if z0 <= 1.75e+20: tmp = -math.atan((((((((math.pi * math.pi) * -2.0) * z0) * z0) - -1.0) / (math.sin(((-2.0 * z0) * math.pi)) * -z2)) * z1)) else: tmp = math.atan((((-0.5 * (z1 / (z2 * math.pi))) + (((0.6666666666666666 * (z0 * z0)) * (math.pi * z1)) / z2)) / z0)) return tmp
function code(z1, z2, z0) tmp = 0.0 if (z0 <= 1.75e+20) tmp = Float64(-atan(Float64(Float64(Float64(Float64(Float64(Float64(Float64(pi * pi) * -2.0) * z0) * z0) - -1.0) / Float64(sin(Float64(Float64(-2.0 * z0) * pi)) * Float64(-z2))) * z1))); else tmp = atan(Float64(Float64(Float64(-0.5 * Float64(z1 / Float64(z2 * pi))) + Float64(Float64(Float64(0.6666666666666666 * Float64(z0 * z0)) * Float64(pi * z1)) / z2)) / z0)); end return tmp end
function tmp_2 = code(z1, z2, z0) tmp = 0.0; if (z0 <= 1.75e+20) tmp = -atan((((((((pi * pi) * -2.0) * z0) * z0) - -1.0) / (sin(((-2.0 * z0) * pi)) * -z2)) * z1)); else tmp = atan((((-0.5 * (z1 / (z2 * pi))) + (((0.6666666666666666 * (z0 * z0)) * (pi * z1)) / z2)) / z0)); end tmp_2 = tmp; end
code[z1_, z2_, z0_] := If[LessEqual[z0, 1.75e+20], (-N[ArcTan[N[(N[(N[(N[(N[(N[(N[(Pi * Pi), $MachinePrecision] * -2.0), $MachinePrecision] * z0), $MachinePrecision] * z0), $MachinePrecision] - -1.0), $MachinePrecision] / N[(N[Sin[N[(N[(-2.0 * z0), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision] * (-z2)), $MachinePrecision]), $MachinePrecision] * z1), $MachinePrecision]], $MachinePrecision]), N[ArcTan[N[(N[(N[(-0.5 * N[(z1 / N[(z2 * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(N[(0.6666666666666666 * N[(z0 * z0), $MachinePrecision]), $MachinePrecision] * N[(Pi * z1), $MachinePrecision]), $MachinePrecision] / z2), $MachinePrecision]), $MachinePrecision] / z0), $MachinePrecision]], $MachinePrecision]]
\begin{array}{l}
\mathbf{if}\;z0 \leq 1.75 \cdot 10^{+20}:\\
\;\;\;\;-\tan^{-1} \left(\frac{\left(\left(\left(\pi \cdot \pi\right) \cdot -2\right) \cdot z0\right) \cdot z0 - -1}{\sin \left(\left(-2 \cdot z0\right) \cdot \pi\right) \cdot \left(-z2\right)} \cdot z1\right)\\
\mathbf{else}:\\
\;\;\;\;\tan^{-1} \left(\frac{-0.5 \cdot \frac{z1}{z2 \cdot \pi} + \frac{\left(0.6666666666666666 \cdot \left(z0 \cdot z0\right)\right) \cdot \left(\pi \cdot z1\right)}{z2}}{z0}\right)\\
\end{array}
if z0 < 1.75e20Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-+.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-pow.f64N/A
lower-PI.f6471.8%
Applied rewrites71.8%
lift-atan.f64N/A
lift-*.f64N/A
lift-neg.f64N/A
distribute-lft-neg-outN/A
atan-negN/A
lower-neg.f64N/A
Applied rewrites71.8%
if 1.75e20 < z0 Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-/.f64N/A
Applied rewrites56.2%
lift-pow.f64N/A
unpow2N/A
lower-*.f6456.2%
lift--.f64N/A
lift-*.f64N/A
fp-cancel-sub-sign-invN/A
distribute-rgt1-inN/A
metadata-evalN/A
metadata-evalN/A
lower-*.f6456.2%
lift-/.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-/l*N/A
lift-/.f64N/A
lower-*.f6456.3%
Applied rewrites56.3%
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lift-*.f64N/A
lift-/.f64N/A
associate-*r/N/A
associate-*r/N/A
lower-/.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-*.f6463.2%
Applied rewrites63.2%
(FPCore (z1 z2 z0)
:precision binary64
(if (<= z0 1.75e+20)
(atan
(/
(* z1 (- (* (* (* (* PI PI) -2.0) z0) z0) -1.0))
(* (sin (* (* -2.0 z0) PI)) z2)))
(atan
(/
(+
(* -0.5 (/ z1 (* z2 PI)))
(/ (* (* 0.6666666666666666 (* z0 z0)) (* PI z1)) z2))
z0))))double code(double z1, double z2, double z0) {
double tmp;
if (z0 <= 1.75e+20) {
tmp = atan(((z1 * (((((((double) M_PI) * ((double) M_PI)) * -2.0) * z0) * z0) - -1.0)) / (sin(((-2.0 * z0) * ((double) M_PI))) * z2)));
} else {
tmp = atan((((-0.5 * (z1 / (z2 * ((double) M_PI)))) + (((0.6666666666666666 * (z0 * z0)) * (((double) M_PI) * z1)) / z2)) / z0));
}
return tmp;
}
public static double code(double z1, double z2, double z0) {
double tmp;
if (z0 <= 1.75e+20) {
tmp = Math.atan(((z1 * (((((Math.PI * Math.PI) * -2.0) * z0) * z0) - -1.0)) / (Math.sin(((-2.0 * z0) * Math.PI)) * z2)));
} else {
tmp = Math.atan((((-0.5 * (z1 / (z2 * Math.PI))) + (((0.6666666666666666 * (z0 * z0)) * (Math.PI * z1)) / z2)) / z0));
}
return tmp;
}
def code(z1, z2, z0): tmp = 0 if z0 <= 1.75e+20: tmp = math.atan(((z1 * (((((math.pi * math.pi) * -2.0) * z0) * z0) - -1.0)) / (math.sin(((-2.0 * z0) * math.pi)) * z2))) else: tmp = math.atan((((-0.5 * (z1 / (z2 * math.pi))) + (((0.6666666666666666 * (z0 * z0)) * (math.pi * z1)) / z2)) / z0)) return tmp
function code(z1, z2, z0) tmp = 0.0 if (z0 <= 1.75e+20) tmp = atan(Float64(Float64(z1 * Float64(Float64(Float64(Float64(Float64(pi * pi) * -2.0) * z0) * z0) - -1.0)) / Float64(sin(Float64(Float64(-2.0 * z0) * pi)) * z2))); else tmp = atan(Float64(Float64(Float64(-0.5 * Float64(z1 / Float64(z2 * pi))) + Float64(Float64(Float64(0.6666666666666666 * Float64(z0 * z0)) * Float64(pi * z1)) / z2)) / z0)); end return tmp end
function tmp_2 = code(z1, z2, z0) tmp = 0.0; if (z0 <= 1.75e+20) tmp = atan(((z1 * (((((pi * pi) * -2.0) * z0) * z0) - -1.0)) / (sin(((-2.0 * z0) * pi)) * z2))); else tmp = atan((((-0.5 * (z1 / (z2 * pi))) + (((0.6666666666666666 * (z0 * z0)) * (pi * z1)) / z2)) / z0)); end tmp_2 = tmp; end
code[z1_, z2_, z0_] := If[LessEqual[z0, 1.75e+20], N[ArcTan[N[(N[(z1 * N[(N[(N[(N[(N[(Pi * Pi), $MachinePrecision] * -2.0), $MachinePrecision] * z0), $MachinePrecision] * z0), $MachinePrecision] - -1.0), $MachinePrecision]), $MachinePrecision] / N[(N[Sin[N[(N[(-2.0 * z0), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision] * z2), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[N[(N[(N[(-0.5 * N[(z1 / N[(z2 * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(N[(0.6666666666666666 * N[(z0 * z0), $MachinePrecision]), $MachinePrecision] * N[(Pi * z1), $MachinePrecision]), $MachinePrecision] / z2), $MachinePrecision]), $MachinePrecision] / z0), $MachinePrecision]], $MachinePrecision]]
\begin{array}{l}
\mathbf{if}\;z0 \leq 1.75 \cdot 10^{+20}:\\
\;\;\;\;\tan^{-1} \left(\frac{z1 \cdot \left(\left(\left(\left(\pi \cdot \pi\right) \cdot -2\right) \cdot z0\right) \cdot z0 - -1\right)}{\sin \left(\left(-2 \cdot z0\right) \cdot \pi\right) \cdot z2}\right)\\
\mathbf{else}:\\
\;\;\;\;\tan^{-1} \left(\frac{-0.5 \cdot \frac{z1}{z2 \cdot \pi} + \frac{\left(0.6666666666666666 \cdot \left(z0 \cdot z0\right)\right) \cdot \left(\pi \cdot z1\right)}{z2}}{z0}\right)\\
\end{array}
if z0 < 1.75e20Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-+.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-pow.f64N/A
lower-PI.f6471.8%
Applied rewrites71.8%
lift-*.f64N/A
lift-/.f64N/A
associate-*r/N/A
lift-*.f64N/A
times-fracN/A
lift-neg.f64N/A
lift-neg.f64N/A
frac-2negN/A
Applied rewrites71.8%
if 1.75e20 < z0 Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-/.f64N/A
Applied rewrites56.2%
lift-pow.f64N/A
unpow2N/A
lower-*.f6456.2%
lift--.f64N/A
lift-*.f64N/A
fp-cancel-sub-sign-invN/A
distribute-rgt1-inN/A
metadata-evalN/A
metadata-evalN/A
lower-*.f6456.2%
lift-/.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-/l*N/A
lift-/.f64N/A
lower-*.f6456.3%
Applied rewrites56.3%
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lift-*.f64N/A
lift-/.f64N/A
associate-*r/N/A
associate-*r/N/A
lower-/.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-*.f6463.2%
Applied rewrites63.2%
(FPCore (z1 z2 z0)
:precision binary64
(if (<= z0 8.2e+16)
(atan (* -0.5 (/ (/ (/ z1 z0) PI) z2)))
(atan
(/
(+
(* -0.5 (/ z1 (* z2 PI)))
(/ (* (* 0.6666666666666666 (* z0 z0)) (* PI z1)) z2))
z0))))double code(double z1, double z2, double z0) {
double tmp;
if (z0 <= 8.2e+16) {
tmp = atan((-0.5 * (((z1 / z0) / ((double) M_PI)) / z2)));
} else {
tmp = atan((((-0.5 * (z1 / (z2 * ((double) M_PI)))) + (((0.6666666666666666 * (z0 * z0)) * (((double) M_PI) * z1)) / z2)) / z0));
}
return tmp;
}
public static double code(double z1, double z2, double z0) {
double tmp;
if (z0 <= 8.2e+16) {
tmp = Math.atan((-0.5 * (((z1 / z0) / Math.PI) / z2)));
} else {
tmp = Math.atan((((-0.5 * (z1 / (z2 * Math.PI))) + (((0.6666666666666666 * (z0 * z0)) * (Math.PI * z1)) / z2)) / z0));
}
return tmp;
}
def code(z1, z2, z0): tmp = 0 if z0 <= 8.2e+16: tmp = math.atan((-0.5 * (((z1 / z0) / math.pi) / z2))) else: tmp = math.atan((((-0.5 * (z1 / (z2 * math.pi))) + (((0.6666666666666666 * (z0 * z0)) * (math.pi * z1)) / z2)) / z0)) return tmp
function code(z1, z2, z0) tmp = 0.0 if (z0 <= 8.2e+16) tmp = atan(Float64(-0.5 * Float64(Float64(Float64(z1 / z0) / pi) / z2))); else tmp = atan(Float64(Float64(Float64(-0.5 * Float64(z1 / Float64(z2 * pi))) + Float64(Float64(Float64(0.6666666666666666 * Float64(z0 * z0)) * Float64(pi * z1)) / z2)) / z0)); end return tmp end
function tmp_2 = code(z1, z2, z0) tmp = 0.0; if (z0 <= 8.2e+16) tmp = atan((-0.5 * (((z1 / z0) / pi) / z2))); else tmp = atan((((-0.5 * (z1 / (z2 * pi))) + (((0.6666666666666666 * (z0 * z0)) * (pi * z1)) / z2)) / z0)); end tmp_2 = tmp; end
code[z1_, z2_, z0_] := If[LessEqual[z0, 8.2e+16], N[ArcTan[N[(-0.5 * N[(N[(N[(z1 / z0), $MachinePrecision] / Pi), $MachinePrecision] / z2), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[N[(N[(N[(-0.5 * N[(z1 / N[(z2 * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(N[(0.6666666666666666 * N[(z0 * z0), $MachinePrecision]), $MachinePrecision] * N[(Pi * z1), $MachinePrecision]), $MachinePrecision] / z2), $MachinePrecision]), $MachinePrecision] / z0), $MachinePrecision]], $MachinePrecision]]
\begin{array}{l}
\mathbf{if}\;z0 \leq 8.2 \cdot 10^{+16}:\\
\;\;\;\;\tan^{-1} \left(-0.5 \cdot \frac{\frac{\frac{z1}{z0}}{\pi}}{z2}\right)\\
\mathbf{else}:\\
\;\;\;\;\tan^{-1} \left(\frac{-0.5 \cdot \frac{z1}{z2 \cdot \pi} + \frac{\left(0.6666666666666666 \cdot \left(z0 \cdot z0\right)\right) \cdot \left(\pi \cdot z1\right)}{z2}}{z0}\right)\\
\end{array}
if z0 < 8.2e16Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f6458.9%
Applied rewrites58.9%
lift-/.f64N/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
*-commutativeN/A
associate-/r*N/A
lower-/.f64N/A
lower-/.f64N/A
lower-/.f6459.0%
Applied rewrites59.0%
if 8.2e16 < z0 Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-/.f64N/A
Applied rewrites56.2%
lift-pow.f64N/A
unpow2N/A
lower-*.f6456.2%
lift--.f64N/A
lift-*.f64N/A
fp-cancel-sub-sign-invN/A
distribute-rgt1-inN/A
metadata-evalN/A
metadata-evalN/A
lower-*.f6456.2%
lift-/.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-/l*N/A
lift-/.f64N/A
lower-*.f6456.3%
Applied rewrites56.3%
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lift-*.f64N/A
lift-/.f64N/A
associate-*r/N/A
associate-*r/N/A
lower-/.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-*.f6463.2%
Applied rewrites63.2%
(FPCore (z1 z2 z0) :precision binary64 (if (<= z0 33.0) (atan (* -0.5 (/ (/ (/ z1 z0) PI) z2))) (atan (* 0.6666666666666666 (/ (* z0 (* z1 PI)) z2)))))
double code(double z1, double z2, double z0) {
double tmp;
if (z0 <= 33.0) {
tmp = atan((-0.5 * (((z1 / z0) / ((double) M_PI)) / z2)));
} else {
tmp = atan((0.6666666666666666 * ((z0 * (z1 * ((double) M_PI))) / z2)));
}
return tmp;
}
public static double code(double z1, double z2, double z0) {
double tmp;
if (z0 <= 33.0) {
tmp = Math.atan((-0.5 * (((z1 / z0) / Math.PI) / z2)));
} else {
tmp = Math.atan((0.6666666666666666 * ((z0 * (z1 * Math.PI)) / z2)));
}
return tmp;
}
def code(z1, z2, z0): tmp = 0 if z0 <= 33.0: tmp = math.atan((-0.5 * (((z1 / z0) / math.pi) / z2))) else: tmp = math.atan((0.6666666666666666 * ((z0 * (z1 * math.pi)) / z2))) return tmp
function code(z1, z2, z0) tmp = 0.0 if (z0 <= 33.0) tmp = atan(Float64(-0.5 * Float64(Float64(Float64(z1 / z0) / pi) / z2))); else tmp = atan(Float64(0.6666666666666666 * Float64(Float64(z0 * Float64(z1 * pi)) / z2))); end return tmp end
function tmp_2 = code(z1, z2, z0) tmp = 0.0; if (z0 <= 33.0) tmp = atan((-0.5 * (((z1 / z0) / pi) / z2))); else tmp = atan((0.6666666666666666 * ((z0 * (z1 * pi)) / z2))); end tmp_2 = tmp; end
code[z1_, z2_, z0_] := If[LessEqual[z0, 33.0], N[ArcTan[N[(-0.5 * N[(N[(N[(z1 / z0), $MachinePrecision] / Pi), $MachinePrecision] / z2), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[N[(0.6666666666666666 * N[(N[(z0 * N[(z1 * Pi), $MachinePrecision]), $MachinePrecision] / z2), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
\begin{array}{l}
\mathbf{if}\;z0 \leq 33:\\
\;\;\;\;\tan^{-1} \left(-0.5 \cdot \frac{\frac{\frac{z1}{z0}}{\pi}}{z2}\right)\\
\mathbf{else}:\\
\;\;\;\;\tan^{-1} \left(0.6666666666666666 \cdot \frac{z0 \cdot \left(z1 \cdot \pi\right)}{z2}\right)\\
\end{array}
if z0 < 33Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f6458.9%
Applied rewrites58.9%
lift-/.f64N/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
*-commutativeN/A
associate-/r*N/A
lower-/.f64N/A
lower-/.f64N/A
lower-/.f6459.0%
Applied rewrites59.0%
if 33 < z0 Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-/.f64N/A
Applied rewrites56.2%
lift-pow.f64N/A
unpow2N/A
lower-*.f6456.2%
lift--.f64N/A
lift-*.f64N/A
fp-cancel-sub-sign-invN/A
distribute-rgt1-inN/A
metadata-evalN/A
metadata-evalN/A
lower-*.f6456.2%
lift-/.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-/l*N/A
lift-/.f64N/A
lower-*.f6456.3%
Applied rewrites56.3%
Taylor expanded in z0 around inf
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f6421.8%
Applied rewrites21.8%
(FPCore (z1 z2 z0) :precision binary64 (if (<= z0 33.0) (atan (* (/ -0.5 (* z2 z0)) (/ z1 PI))) (atan (* 0.6666666666666666 (/ (* z0 (* z1 PI)) z2)))))
double code(double z1, double z2, double z0) {
double tmp;
if (z0 <= 33.0) {
tmp = atan(((-0.5 / (z2 * z0)) * (z1 / ((double) M_PI))));
} else {
tmp = atan((0.6666666666666666 * ((z0 * (z1 * ((double) M_PI))) / z2)));
}
return tmp;
}
public static double code(double z1, double z2, double z0) {
double tmp;
if (z0 <= 33.0) {
tmp = Math.atan(((-0.5 / (z2 * z0)) * (z1 / Math.PI)));
} else {
tmp = Math.atan((0.6666666666666666 * ((z0 * (z1 * Math.PI)) / z2)));
}
return tmp;
}
def code(z1, z2, z0): tmp = 0 if z0 <= 33.0: tmp = math.atan(((-0.5 / (z2 * z0)) * (z1 / math.pi))) else: tmp = math.atan((0.6666666666666666 * ((z0 * (z1 * math.pi)) / z2))) return tmp
function code(z1, z2, z0) tmp = 0.0 if (z0 <= 33.0) tmp = atan(Float64(Float64(-0.5 / Float64(z2 * z0)) * Float64(z1 / pi))); else tmp = atan(Float64(0.6666666666666666 * Float64(Float64(z0 * Float64(z1 * pi)) / z2))); end return tmp end
function tmp_2 = code(z1, z2, z0) tmp = 0.0; if (z0 <= 33.0) tmp = atan(((-0.5 / (z2 * z0)) * (z1 / pi))); else tmp = atan((0.6666666666666666 * ((z0 * (z1 * pi)) / z2))); end tmp_2 = tmp; end
code[z1_, z2_, z0_] := If[LessEqual[z0, 33.0], N[ArcTan[N[(N[(-0.5 / N[(z2 * z0), $MachinePrecision]), $MachinePrecision] * N[(z1 / Pi), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[N[(0.6666666666666666 * N[(N[(z0 * N[(z1 * Pi), $MachinePrecision]), $MachinePrecision] / z2), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
\begin{array}{l}
\mathbf{if}\;z0 \leq 33:\\
\;\;\;\;\tan^{-1} \left(\frac{-0.5}{z2 \cdot z0} \cdot \frac{z1}{\pi}\right)\\
\mathbf{else}:\\
\;\;\;\;\tan^{-1} \left(0.6666666666666666 \cdot \frac{z0 \cdot \left(z1 \cdot \pi\right)}{z2}\right)\\
\end{array}
if z0 < 33Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f6458.9%
Applied rewrites58.9%
lift-*.f64N/A
lift-/.f64N/A
associate-*r/N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
times-fracN/A
lower-*.f64N/A
lower-/.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-/.f6458.9%
Applied rewrites58.9%
if 33 < z0 Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-/.f64N/A
Applied rewrites56.2%
lift-pow.f64N/A
unpow2N/A
lower-*.f6456.2%
lift--.f64N/A
lift-*.f64N/A
fp-cancel-sub-sign-invN/A
distribute-rgt1-inN/A
metadata-evalN/A
metadata-evalN/A
lower-*.f6456.2%
lift-/.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-/l*N/A
lift-/.f64N/A
lower-*.f6456.3%
Applied rewrites56.3%
Taylor expanded in z0 around inf
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f6421.8%
Applied rewrites21.8%
(FPCore (z1 z2 z0) :precision binary64 (if (<= z0 33.0) (atan (* -0.5 (/ (/ z1 z0) (* z2 PI)))) (atan (* 0.6666666666666666 (/ (* z0 (* z1 PI)) z2)))))
double code(double z1, double z2, double z0) {
double tmp;
if (z0 <= 33.0) {
tmp = atan((-0.5 * ((z1 / z0) / (z2 * ((double) M_PI)))));
} else {
tmp = atan((0.6666666666666666 * ((z0 * (z1 * ((double) M_PI))) / z2)));
}
return tmp;
}
public static double code(double z1, double z2, double z0) {
double tmp;
if (z0 <= 33.0) {
tmp = Math.atan((-0.5 * ((z1 / z0) / (z2 * Math.PI))));
} else {
tmp = Math.atan((0.6666666666666666 * ((z0 * (z1 * Math.PI)) / z2)));
}
return tmp;
}
def code(z1, z2, z0): tmp = 0 if z0 <= 33.0: tmp = math.atan((-0.5 * ((z1 / z0) / (z2 * math.pi)))) else: tmp = math.atan((0.6666666666666666 * ((z0 * (z1 * math.pi)) / z2))) return tmp
function code(z1, z2, z0) tmp = 0.0 if (z0 <= 33.0) tmp = atan(Float64(-0.5 * Float64(Float64(z1 / z0) / Float64(z2 * pi)))); else tmp = atan(Float64(0.6666666666666666 * Float64(Float64(z0 * Float64(z1 * pi)) / z2))); end return tmp end
function tmp_2 = code(z1, z2, z0) tmp = 0.0; if (z0 <= 33.0) tmp = atan((-0.5 * ((z1 / z0) / (z2 * pi)))); else tmp = atan((0.6666666666666666 * ((z0 * (z1 * pi)) / z2))); end tmp_2 = tmp; end
code[z1_, z2_, z0_] := If[LessEqual[z0, 33.0], N[ArcTan[N[(-0.5 * N[(N[(z1 / z0), $MachinePrecision] / N[(z2 * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[N[(0.6666666666666666 * N[(N[(z0 * N[(z1 * Pi), $MachinePrecision]), $MachinePrecision] / z2), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
\begin{array}{l}
\mathbf{if}\;z0 \leq 33:\\
\;\;\;\;\tan^{-1} \left(-0.5 \cdot \frac{\frac{z1}{z0}}{z2 \cdot \pi}\right)\\
\mathbf{else}:\\
\;\;\;\;\tan^{-1} \left(0.6666666666666666 \cdot \frac{z0 \cdot \left(z1 \cdot \pi\right)}{z2}\right)\\
\end{array}
if z0 < 33Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f6458.9%
Applied rewrites58.9%
lift-/.f64N/A
lift-*.f64N/A
associate-/r*N/A
lower-/.f64N/A
lower-/.f6458.9%
Applied rewrites58.9%
if 33 < z0 Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-/.f64N/A
Applied rewrites56.2%
lift-pow.f64N/A
unpow2N/A
lower-*.f6456.2%
lift--.f64N/A
lift-*.f64N/A
fp-cancel-sub-sign-invN/A
distribute-rgt1-inN/A
metadata-evalN/A
metadata-evalN/A
lower-*.f6456.2%
lift-/.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-/l*N/A
lift-/.f64N/A
lower-*.f6456.3%
Applied rewrites56.3%
Taylor expanded in z0 around inf
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f6421.8%
Applied rewrites21.8%
(FPCore (z1 z2 z0) :precision binary64 (if (<= z0 33.0) (atan (* -0.5 (/ z1 (* (* z2 z0) PI)))) (atan (* 0.6666666666666666 (/ (* z0 (* z1 PI)) z2)))))
double code(double z1, double z2, double z0) {
double tmp;
if (z0 <= 33.0) {
tmp = atan((-0.5 * (z1 / ((z2 * z0) * ((double) M_PI)))));
} else {
tmp = atan((0.6666666666666666 * ((z0 * (z1 * ((double) M_PI))) / z2)));
}
return tmp;
}
public static double code(double z1, double z2, double z0) {
double tmp;
if (z0 <= 33.0) {
tmp = Math.atan((-0.5 * (z1 / ((z2 * z0) * Math.PI))));
} else {
tmp = Math.atan((0.6666666666666666 * ((z0 * (z1 * Math.PI)) / z2)));
}
return tmp;
}
def code(z1, z2, z0): tmp = 0 if z0 <= 33.0: tmp = math.atan((-0.5 * (z1 / ((z2 * z0) * math.pi)))) else: tmp = math.atan((0.6666666666666666 * ((z0 * (z1 * math.pi)) / z2))) return tmp
function code(z1, z2, z0) tmp = 0.0 if (z0 <= 33.0) tmp = atan(Float64(-0.5 * Float64(z1 / Float64(Float64(z2 * z0) * pi)))); else tmp = atan(Float64(0.6666666666666666 * Float64(Float64(z0 * Float64(z1 * pi)) / z2))); end return tmp end
function tmp_2 = code(z1, z2, z0) tmp = 0.0; if (z0 <= 33.0) tmp = atan((-0.5 * (z1 / ((z2 * z0) * pi)))); else tmp = atan((0.6666666666666666 * ((z0 * (z1 * pi)) / z2))); end tmp_2 = tmp; end
code[z1_, z2_, z0_] := If[LessEqual[z0, 33.0], N[ArcTan[N[(-0.5 * N[(z1 / N[(N[(z2 * z0), $MachinePrecision] * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[N[(0.6666666666666666 * N[(N[(z0 * N[(z1 * Pi), $MachinePrecision]), $MachinePrecision] / z2), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
\begin{array}{l}
\mathbf{if}\;z0 \leq 33:\\
\;\;\;\;\tan^{-1} \left(-0.5 \cdot \frac{z1}{\left(z2 \cdot z0\right) \cdot \pi}\right)\\
\mathbf{else}:\\
\;\;\;\;\tan^{-1} \left(0.6666666666666666 \cdot \frac{z0 \cdot \left(z1 \cdot \pi\right)}{z2}\right)\\
\end{array}
if z0 < 33Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f6458.9%
Applied rewrites58.9%
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f6459.0%
Applied rewrites59.0%
if 33 < z0 Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-/.f64N/A
Applied rewrites56.2%
lift-pow.f64N/A
unpow2N/A
lower-*.f6456.2%
lift--.f64N/A
lift-*.f64N/A
fp-cancel-sub-sign-invN/A
distribute-rgt1-inN/A
metadata-evalN/A
metadata-evalN/A
lower-*.f6456.2%
lift-/.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-/l*N/A
lift-/.f64N/A
lower-*.f6456.3%
Applied rewrites56.3%
Taylor expanded in z0 around inf
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f6421.8%
Applied rewrites21.8%
(FPCore (z1 z2 z0) :precision binary64 (if (<= z0 33.0) (atan (* -0.5 (/ z1 (* z0 (* z2 PI))))) (atan (* 0.6666666666666666 (/ (* z0 (* z1 PI)) z2)))))
double code(double z1, double z2, double z0) {
double tmp;
if (z0 <= 33.0) {
tmp = atan((-0.5 * (z1 / (z0 * (z2 * ((double) M_PI))))));
} else {
tmp = atan((0.6666666666666666 * ((z0 * (z1 * ((double) M_PI))) / z2)));
}
return tmp;
}
public static double code(double z1, double z2, double z0) {
double tmp;
if (z0 <= 33.0) {
tmp = Math.atan((-0.5 * (z1 / (z0 * (z2 * Math.PI)))));
} else {
tmp = Math.atan((0.6666666666666666 * ((z0 * (z1 * Math.PI)) / z2)));
}
return tmp;
}
def code(z1, z2, z0): tmp = 0 if z0 <= 33.0: tmp = math.atan((-0.5 * (z1 / (z0 * (z2 * math.pi))))) else: tmp = math.atan((0.6666666666666666 * ((z0 * (z1 * math.pi)) / z2))) return tmp
function code(z1, z2, z0) tmp = 0.0 if (z0 <= 33.0) tmp = atan(Float64(-0.5 * Float64(z1 / Float64(z0 * Float64(z2 * pi))))); else tmp = atan(Float64(0.6666666666666666 * Float64(Float64(z0 * Float64(z1 * pi)) / z2))); end return tmp end
function tmp_2 = code(z1, z2, z0) tmp = 0.0; if (z0 <= 33.0) tmp = atan((-0.5 * (z1 / (z0 * (z2 * pi))))); else tmp = atan((0.6666666666666666 * ((z0 * (z1 * pi)) / z2))); end tmp_2 = tmp; end
code[z1_, z2_, z0_] := If[LessEqual[z0, 33.0], N[ArcTan[N[(-0.5 * N[(z1 / N[(z0 * N[(z2 * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[ArcTan[N[(0.6666666666666666 * N[(N[(z0 * N[(z1 * Pi), $MachinePrecision]), $MachinePrecision] / z2), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]
\begin{array}{l}
\mathbf{if}\;z0 \leq 33:\\
\;\;\;\;\tan^{-1} \left(-0.5 \cdot \frac{z1}{z0 \cdot \left(z2 \cdot \pi\right)}\right)\\
\mathbf{else}:\\
\;\;\;\;\tan^{-1} \left(0.6666666666666666 \cdot \frac{z0 \cdot \left(z1 \cdot \pi\right)}{z2}\right)\\
\end{array}
if z0 < 33Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f6458.9%
Applied rewrites58.9%
if 33 < z0 Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-/.f64N/A
Applied rewrites56.2%
lift-pow.f64N/A
unpow2N/A
lower-*.f6456.2%
lift--.f64N/A
lift-*.f64N/A
fp-cancel-sub-sign-invN/A
distribute-rgt1-inN/A
metadata-evalN/A
metadata-evalN/A
lower-*.f6456.2%
lift-/.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-/l*N/A
lift-/.f64N/A
lower-*.f6456.3%
Applied rewrites56.3%
Taylor expanded in z0 around inf
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f6421.8%
Applied rewrites21.8%
(FPCore (z1 z2 z0) :precision binary64 (atan (* 0.6666666666666666 (/ (* z0 (* z1 PI)) z2))))
double code(double z1, double z2, double z0) {
return atan((0.6666666666666666 * ((z0 * (z1 * ((double) M_PI))) / z2)));
}
public static double code(double z1, double z2, double z0) {
return Math.atan((0.6666666666666666 * ((z0 * (z1 * Math.PI)) / z2)));
}
def code(z1, z2, z0): return math.atan((0.6666666666666666 * ((z0 * (z1 * math.pi)) / z2)))
function code(z1, z2, z0) return atan(Float64(0.6666666666666666 * Float64(Float64(z0 * Float64(z1 * pi)) / z2))) end
function tmp = code(z1, z2, z0) tmp = atan((0.6666666666666666 * ((z0 * (z1 * pi)) / z2))); end
code[z1_, z2_, z0_] := N[ArcTan[N[(0.6666666666666666 * N[(N[(z0 * N[(z1 * Pi), $MachinePrecision]), $MachinePrecision] / z2), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
\tan^{-1} \left(0.6666666666666666 \cdot \frac{z0 \cdot \left(z1 \cdot \pi\right)}{z2}\right)
Initial program 32.3%
lift-*.f64N/A
lift-/.f64N/A
frac-2negN/A
lift-tan.f64N/A
tan-quotN/A
frac-timesN/A
associate-/l*N/A
lower-*.f64N/A
lower-neg.f64N/A
*-commutativeN/A
lower-/.f64N/A
Applied rewrites65.1%
Taylor expanded in z0 around 0
lower-/.f64N/A
Applied rewrites56.2%
lift-pow.f64N/A
unpow2N/A
lower-*.f6456.2%
lift--.f64N/A
lift-*.f64N/A
fp-cancel-sub-sign-invN/A
distribute-rgt1-inN/A
metadata-evalN/A
metadata-evalN/A
lower-*.f6456.2%
lift-/.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-/l*N/A
lift-/.f64N/A
lower-*.f6456.3%
Applied rewrites56.3%
Taylor expanded in z0 around inf
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f6421.8%
Applied rewrites21.8%
herbie shell --seed 2025250
(FPCore (z1 z2 z0)
:name "(atan (* (/ z1 z2) (tan (* PI (+ 1/2 (+ z0 z0))))))"
:precision binary64
(atan (* (/ z1 z2) (tan (* PI (+ 0.5 (+ z0 z0)))))))