
(FPCore (a b angle x-scale y-scale)
:precision binary64
(let* ((t_0 (* (/ angle 180.0) PI))
(t_1 (cos t_0))
(t_2 (sin t_0))
(t_3
(/
(/ (* (* (* 2.0 (- (pow b 2.0) (pow a 2.0))) t_2) t_1) x-scale)
y-scale))
(t_4
(/ (/ (+ (pow (* a t_1) 2.0) (pow (* b t_2) 2.0)) y-scale) y-scale))
(t_5
(/ (/ (+ (pow (* a t_2) 2.0) (pow (* b t_1) 2.0)) x-scale) x-scale)))
(*
180.0
(/
(atan
(/ (- (- t_4 t_5) (sqrt (+ (pow (- t_5 t_4) 2.0) (pow t_3 2.0)))) t_3))
PI))))
double code(double a, double b, double angle, double x_45_scale, double y_45_scale) {
double t_0 = (angle / 180.0) * ((double) M_PI);
double t_1 = cos(t_0);
double t_2 = sin(t_0);
double t_3 = ((((2.0 * (pow(b, 2.0) - pow(a, 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale;
double t_4 = ((pow((a * t_1), 2.0) + pow((b * t_2), 2.0)) / y_45_scale) / y_45_scale;
double t_5 = ((pow((a * t_2), 2.0) + pow((b * t_1), 2.0)) / x_45_scale) / x_45_scale;
return 180.0 * (atan((((t_4 - t_5) - sqrt((pow((t_5 - t_4), 2.0) + pow(t_3, 2.0)))) / t_3)) / ((double) M_PI));
}
public static double code(double a, double b, double angle, double x_45_scale, double y_45_scale) {
double t_0 = (angle / 180.0) * Math.PI;
double t_1 = Math.cos(t_0);
double t_2 = Math.sin(t_0);
double t_3 = ((((2.0 * (Math.pow(b, 2.0) - Math.pow(a, 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale;
double t_4 = ((Math.pow((a * t_1), 2.0) + Math.pow((b * t_2), 2.0)) / y_45_scale) / y_45_scale;
double t_5 = ((Math.pow((a * t_2), 2.0) + Math.pow((b * t_1), 2.0)) / x_45_scale) / x_45_scale;
return 180.0 * (Math.atan((((t_4 - t_5) - Math.sqrt((Math.pow((t_5 - t_4), 2.0) + Math.pow(t_3, 2.0)))) / t_3)) / Math.PI);
}
def code(a, b, angle, x_45_scale, y_45_scale): t_0 = (angle / 180.0) * math.pi t_1 = math.cos(t_0) t_2 = math.sin(t_0) t_3 = ((((2.0 * (math.pow(b, 2.0) - math.pow(a, 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale t_4 = ((math.pow((a * t_1), 2.0) + math.pow((b * t_2), 2.0)) / y_45_scale) / y_45_scale t_5 = ((math.pow((a * t_2), 2.0) + math.pow((b * t_1), 2.0)) / x_45_scale) / x_45_scale return 180.0 * (math.atan((((t_4 - t_5) - math.sqrt((math.pow((t_5 - t_4), 2.0) + math.pow(t_3, 2.0)))) / t_3)) / math.pi)
function code(a, b, angle, x_45_scale, y_45_scale) t_0 = Float64(Float64(angle / 180.0) * pi) t_1 = cos(t_0) t_2 = sin(t_0) t_3 = Float64(Float64(Float64(Float64(Float64(2.0 * Float64((b ^ 2.0) - (a ^ 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale) t_4 = Float64(Float64(Float64((Float64(a * t_1) ^ 2.0) + (Float64(b * t_2) ^ 2.0)) / y_45_scale) / y_45_scale) t_5 = Float64(Float64(Float64((Float64(a * t_2) ^ 2.0) + (Float64(b * t_1) ^ 2.0)) / x_45_scale) / x_45_scale) return Float64(180.0 * Float64(atan(Float64(Float64(Float64(t_4 - t_5) - sqrt(Float64((Float64(t_5 - t_4) ^ 2.0) + (t_3 ^ 2.0)))) / t_3)) / pi)) end
function tmp = code(a, b, angle, x_45_scale, y_45_scale) t_0 = (angle / 180.0) * pi; t_1 = cos(t_0); t_2 = sin(t_0); t_3 = ((((2.0 * ((b ^ 2.0) - (a ^ 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale; t_4 = ((((a * t_1) ^ 2.0) + ((b * t_2) ^ 2.0)) / y_45_scale) / y_45_scale; t_5 = ((((a * t_2) ^ 2.0) + ((b * t_1) ^ 2.0)) / x_45_scale) / x_45_scale; tmp = 180.0 * (atan((((t_4 - t_5) - sqrt((((t_5 - t_4) ^ 2.0) + (t_3 ^ 2.0)))) / t_3)) / pi); end
code[a_, b_, angle_, x$45$scale_, y$45$scale_] := Block[{t$95$0 = N[(N[(angle / 180.0), $MachinePrecision] * Pi), $MachinePrecision]}, Block[{t$95$1 = N[Cos[t$95$0], $MachinePrecision]}, Block[{t$95$2 = N[Sin[t$95$0], $MachinePrecision]}, Block[{t$95$3 = N[(N[(N[(N[(N[(2.0 * N[(N[Power[b, 2.0], $MachinePrecision] - N[Power[a, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * t$95$2), $MachinePrecision] * t$95$1), $MachinePrecision] / x$45$scale), $MachinePrecision] / y$45$scale), $MachinePrecision]}, Block[{t$95$4 = N[(N[(N[(N[Power[N[(a * t$95$1), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[(b * t$95$2), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / y$45$scale), $MachinePrecision] / y$45$scale), $MachinePrecision]}, Block[{t$95$5 = N[(N[(N[(N[Power[N[(a * t$95$2), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[(b * t$95$1), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / x$45$scale), $MachinePrecision] / x$45$scale), $MachinePrecision]}, N[(180.0 * N[(N[ArcTan[N[(N[(N[(t$95$4 - t$95$5), $MachinePrecision] - N[Sqrt[N[(N[Power[N[(t$95$5 - t$95$4), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[t$95$3, 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / t$95$3), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{angle}{180} \cdot \pi\\
t_1 := \cos t\_0\\
t_2 := \sin t\_0\\
t_3 := \frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot t\_2\right) \cdot t\_1}{x-scale}}{y-scale}\\
t_4 := \frac{\frac{{\left(a \cdot t\_1\right)}^{2} + {\left(b \cdot t\_2\right)}^{2}}{y-scale}}{y-scale}\\
t_5 := \frac{\frac{{\left(a \cdot t\_2\right)}^{2} + {\left(b \cdot t\_1\right)}^{2}}{x-scale}}{x-scale}\\
180 \cdot \frac{\tan^{-1} \left(\frac{\left(t\_4 - t\_5\right) - \sqrt{{\left(t\_5 - t\_4\right)}^{2} + {t\_3}^{2}}}{t\_3}\right)}{\pi}
\end{array}
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 14 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (a b angle x-scale y-scale)
:precision binary64
(let* ((t_0 (* (/ angle 180.0) PI))
(t_1 (cos t_0))
(t_2 (sin t_0))
(t_3
(/
(/ (* (* (* 2.0 (- (pow b 2.0) (pow a 2.0))) t_2) t_1) x-scale)
y-scale))
(t_4
(/ (/ (+ (pow (* a t_1) 2.0) (pow (* b t_2) 2.0)) y-scale) y-scale))
(t_5
(/ (/ (+ (pow (* a t_2) 2.0) (pow (* b t_1) 2.0)) x-scale) x-scale)))
(*
180.0
(/
(atan
(/ (- (- t_4 t_5) (sqrt (+ (pow (- t_5 t_4) 2.0) (pow t_3 2.0)))) t_3))
PI))))
double code(double a, double b, double angle, double x_45_scale, double y_45_scale) {
double t_0 = (angle / 180.0) * ((double) M_PI);
double t_1 = cos(t_0);
double t_2 = sin(t_0);
double t_3 = ((((2.0 * (pow(b, 2.0) - pow(a, 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale;
double t_4 = ((pow((a * t_1), 2.0) + pow((b * t_2), 2.0)) / y_45_scale) / y_45_scale;
double t_5 = ((pow((a * t_2), 2.0) + pow((b * t_1), 2.0)) / x_45_scale) / x_45_scale;
return 180.0 * (atan((((t_4 - t_5) - sqrt((pow((t_5 - t_4), 2.0) + pow(t_3, 2.0)))) / t_3)) / ((double) M_PI));
}
public static double code(double a, double b, double angle, double x_45_scale, double y_45_scale) {
double t_0 = (angle / 180.0) * Math.PI;
double t_1 = Math.cos(t_0);
double t_2 = Math.sin(t_0);
double t_3 = ((((2.0 * (Math.pow(b, 2.0) - Math.pow(a, 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale;
double t_4 = ((Math.pow((a * t_1), 2.0) + Math.pow((b * t_2), 2.0)) / y_45_scale) / y_45_scale;
double t_5 = ((Math.pow((a * t_2), 2.0) + Math.pow((b * t_1), 2.0)) / x_45_scale) / x_45_scale;
return 180.0 * (Math.atan((((t_4 - t_5) - Math.sqrt((Math.pow((t_5 - t_4), 2.0) + Math.pow(t_3, 2.0)))) / t_3)) / Math.PI);
}
def code(a, b, angle, x_45_scale, y_45_scale): t_0 = (angle / 180.0) * math.pi t_1 = math.cos(t_0) t_2 = math.sin(t_0) t_3 = ((((2.0 * (math.pow(b, 2.0) - math.pow(a, 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale t_4 = ((math.pow((a * t_1), 2.0) + math.pow((b * t_2), 2.0)) / y_45_scale) / y_45_scale t_5 = ((math.pow((a * t_2), 2.0) + math.pow((b * t_1), 2.0)) / x_45_scale) / x_45_scale return 180.0 * (math.atan((((t_4 - t_5) - math.sqrt((math.pow((t_5 - t_4), 2.0) + math.pow(t_3, 2.0)))) / t_3)) / math.pi)
function code(a, b, angle, x_45_scale, y_45_scale) t_0 = Float64(Float64(angle / 180.0) * pi) t_1 = cos(t_0) t_2 = sin(t_0) t_3 = Float64(Float64(Float64(Float64(Float64(2.0 * Float64((b ^ 2.0) - (a ^ 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale) t_4 = Float64(Float64(Float64((Float64(a * t_1) ^ 2.0) + (Float64(b * t_2) ^ 2.0)) / y_45_scale) / y_45_scale) t_5 = Float64(Float64(Float64((Float64(a * t_2) ^ 2.0) + (Float64(b * t_1) ^ 2.0)) / x_45_scale) / x_45_scale) return Float64(180.0 * Float64(atan(Float64(Float64(Float64(t_4 - t_5) - sqrt(Float64((Float64(t_5 - t_4) ^ 2.0) + (t_3 ^ 2.0)))) / t_3)) / pi)) end
function tmp = code(a, b, angle, x_45_scale, y_45_scale) t_0 = (angle / 180.0) * pi; t_1 = cos(t_0); t_2 = sin(t_0); t_3 = ((((2.0 * ((b ^ 2.0) - (a ^ 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale; t_4 = ((((a * t_1) ^ 2.0) + ((b * t_2) ^ 2.0)) / y_45_scale) / y_45_scale; t_5 = ((((a * t_2) ^ 2.0) + ((b * t_1) ^ 2.0)) / x_45_scale) / x_45_scale; tmp = 180.0 * (atan((((t_4 - t_5) - sqrt((((t_5 - t_4) ^ 2.0) + (t_3 ^ 2.0)))) / t_3)) / pi); end
code[a_, b_, angle_, x$45$scale_, y$45$scale_] := Block[{t$95$0 = N[(N[(angle / 180.0), $MachinePrecision] * Pi), $MachinePrecision]}, Block[{t$95$1 = N[Cos[t$95$0], $MachinePrecision]}, Block[{t$95$2 = N[Sin[t$95$0], $MachinePrecision]}, Block[{t$95$3 = N[(N[(N[(N[(N[(2.0 * N[(N[Power[b, 2.0], $MachinePrecision] - N[Power[a, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * t$95$2), $MachinePrecision] * t$95$1), $MachinePrecision] / x$45$scale), $MachinePrecision] / y$45$scale), $MachinePrecision]}, Block[{t$95$4 = N[(N[(N[(N[Power[N[(a * t$95$1), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[(b * t$95$2), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / y$45$scale), $MachinePrecision] / y$45$scale), $MachinePrecision]}, Block[{t$95$5 = N[(N[(N[(N[Power[N[(a * t$95$2), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[(b * t$95$1), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / x$45$scale), $MachinePrecision] / x$45$scale), $MachinePrecision]}, N[(180.0 * N[(N[ArcTan[N[(N[(N[(t$95$4 - t$95$5), $MachinePrecision] - N[Sqrt[N[(N[Power[N[(t$95$5 - t$95$4), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[t$95$3, 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / t$95$3), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{angle}{180} \cdot \pi\\
t_1 := \cos t\_0\\
t_2 := \sin t\_0\\
t_3 := \frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot t\_2\right) \cdot t\_1}{x-scale}}{y-scale}\\
t_4 := \frac{\frac{{\left(a \cdot t\_1\right)}^{2} + {\left(b \cdot t\_2\right)}^{2}}{y-scale}}{y-scale}\\
t_5 := \frac{\frac{{\left(a \cdot t\_2\right)}^{2} + {\left(b \cdot t\_1\right)}^{2}}{x-scale}}{x-scale}\\
180 \cdot \frac{\tan^{-1} \left(\frac{\left(t\_4 - t\_5\right) - \sqrt{{\left(t\_5 - t\_4\right)}^{2} + {t\_3}^{2}}}{t\_3}\right)}{\pi}
\end{array}
\end{array}
a_m = (fabs.f64 a)
(FPCore (a_m b angle x-scale y-scale)
:precision binary64
(let* ((t_0 (* 0.005555555555555556 (* angle PI)))
(t_1 (cos t_0))
(t_2 (pow (cbrt (sqrt PI)) 3.0))
(t_3 (sin t_0)))
(if (<= a_m 1.3e-84)
(/ (* 180.0 (atan (/ (* y-scale t_1) (* t_3 (- 0.0 x-scale))))) PI)
(if (<= a_m 6e-6)
(/
(*
180.0
(atan
(/
(*
-0.5
(*
y-scale
(*
2.0
(+
(* (pow t_1 2.0) (* b b))
(*
(pow (sin (* 0.005555555555555556 (* angle (* t_2 t_2)))) 2.0)
(* a_m a_m))))))
(* x-scale (* t_1 (* t_3 (- (* b b) (* a_m a_m))))))))
PI)
(/
(*
180.0
(atan
(/
(* y-scale t_3)
(*
x-scale
(cos
(* (sqrt PI) (* (sqrt PI) (* 0.005555555555555556 angle))))))))
PI)))))a_m = fabs(a);
double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
double t_0 = 0.005555555555555556 * (angle * ((double) M_PI));
double t_1 = cos(t_0);
double t_2 = pow(cbrt(sqrt(((double) M_PI))), 3.0);
double t_3 = sin(t_0);
double tmp;
if (a_m <= 1.3e-84) {
tmp = (180.0 * atan(((y_45_scale * t_1) / (t_3 * (0.0 - x_45_scale))))) / ((double) M_PI);
} else if (a_m <= 6e-6) {
tmp = (180.0 * atan(((-0.5 * (y_45_scale * (2.0 * ((pow(t_1, 2.0) * (b * b)) + (pow(sin((0.005555555555555556 * (angle * (t_2 * t_2)))), 2.0) * (a_m * a_m)))))) / (x_45_scale * (t_1 * (t_3 * ((b * b) - (a_m * a_m)))))))) / ((double) M_PI);
} else {
tmp = (180.0 * atan(((y_45_scale * t_3) / (x_45_scale * cos((sqrt(((double) M_PI)) * (sqrt(((double) M_PI)) * (0.005555555555555556 * angle)))))))) / ((double) M_PI);
}
return tmp;
}
a_m = Math.abs(a);
public static double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
double t_0 = 0.005555555555555556 * (angle * Math.PI);
double t_1 = Math.cos(t_0);
double t_2 = Math.pow(Math.cbrt(Math.sqrt(Math.PI)), 3.0);
double t_3 = Math.sin(t_0);
double tmp;
if (a_m <= 1.3e-84) {
tmp = (180.0 * Math.atan(((y_45_scale * t_1) / (t_3 * (0.0 - x_45_scale))))) / Math.PI;
} else if (a_m <= 6e-6) {
tmp = (180.0 * Math.atan(((-0.5 * (y_45_scale * (2.0 * ((Math.pow(t_1, 2.0) * (b * b)) + (Math.pow(Math.sin((0.005555555555555556 * (angle * (t_2 * t_2)))), 2.0) * (a_m * a_m)))))) / (x_45_scale * (t_1 * (t_3 * ((b * b) - (a_m * a_m)))))))) / Math.PI;
} else {
tmp = (180.0 * Math.atan(((y_45_scale * t_3) / (x_45_scale * Math.cos((Math.sqrt(Math.PI) * (Math.sqrt(Math.PI) * (0.005555555555555556 * angle)))))))) / Math.PI;
}
return tmp;
}
a_m = abs(a) function code(a_m, b, angle, x_45_scale, y_45_scale) t_0 = Float64(0.005555555555555556 * Float64(angle * pi)) t_1 = cos(t_0) t_2 = cbrt(sqrt(pi)) ^ 3.0 t_3 = sin(t_0) tmp = 0.0 if (a_m <= 1.3e-84) tmp = Float64(Float64(180.0 * atan(Float64(Float64(y_45_scale * t_1) / Float64(t_3 * Float64(0.0 - x_45_scale))))) / pi); elseif (a_m <= 6e-6) tmp = Float64(Float64(180.0 * atan(Float64(Float64(-0.5 * Float64(y_45_scale * Float64(2.0 * Float64(Float64((t_1 ^ 2.0) * Float64(b * b)) + Float64((sin(Float64(0.005555555555555556 * Float64(angle * Float64(t_2 * t_2)))) ^ 2.0) * Float64(a_m * a_m)))))) / Float64(x_45_scale * Float64(t_1 * Float64(t_3 * Float64(Float64(b * b) - Float64(a_m * a_m)))))))) / pi); else tmp = Float64(Float64(180.0 * atan(Float64(Float64(y_45_scale * t_3) / Float64(x_45_scale * cos(Float64(sqrt(pi) * Float64(sqrt(pi) * Float64(0.005555555555555556 * angle)))))))) / pi); end return tmp end
a_m = N[Abs[a], $MachinePrecision]
code[a$95$m_, b_, angle_, x$45$scale_, y$45$scale_] := Block[{t$95$0 = N[(0.005555555555555556 * N[(angle * Pi), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[Cos[t$95$0], $MachinePrecision]}, Block[{t$95$2 = N[Power[N[Power[N[Sqrt[Pi], $MachinePrecision], 1/3], $MachinePrecision], 3.0], $MachinePrecision]}, Block[{t$95$3 = N[Sin[t$95$0], $MachinePrecision]}, If[LessEqual[a$95$m, 1.3e-84], N[(N[(180.0 * N[ArcTan[N[(N[(y$45$scale * t$95$1), $MachinePrecision] / N[(t$95$3 * N[(0.0 - x$45$scale), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], If[LessEqual[a$95$m, 6e-6], N[(N[(180.0 * N[ArcTan[N[(N[(-0.5 * N[(y$45$scale * N[(2.0 * N[(N[(N[Power[t$95$1, 2.0], $MachinePrecision] * N[(b * b), $MachinePrecision]), $MachinePrecision] + N[(N[Power[N[Sin[N[(0.005555555555555556 * N[(angle * N[(t$95$2 * t$95$2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], 2.0], $MachinePrecision] * N[(a$95$m * a$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(x$45$scale * N[(t$95$1 * N[(t$95$3 * N[(N[(b * b), $MachinePrecision] - N[(a$95$m * a$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], N[(N[(180.0 * N[ArcTan[N[(N[(y$45$scale * t$95$3), $MachinePrecision] / N[(x$45$scale * N[Cos[N[(N[Sqrt[Pi], $MachinePrecision] * N[(N[Sqrt[Pi], $MachinePrecision] * N[(0.005555555555555556 * angle), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision]]]]]]]
\begin{array}{l}
a_m = \left|a\right|
\\
\begin{array}{l}
t_0 := 0.005555555555555556 \cdot \left(angle \cdot \pi\right)\\
t_1 := \cos t\_0\\
t_2 := {\left(\sqrt[3]{\sqrt{\pi}}\right)}^{3}\\
t_3 := \sin t\_0\\
\mathbf{if}\;a\_m \leq 1.3 \cdot 10^{-84}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{y-scale \cdot t\_1}{t\_3 \cdot \left(0 - x-scale\right)}\right)}{\pi}\\
\mathbf{elif}\;a\_m \leq 6 \cdot 10^{-6}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{-0.5 \cdot \left(y-scale \cdot \left(2 \cdot \left({t\_1}^{2} \cdot \left(b \cdot b\right) + {\sin \left(0.005555555555555556 \cdot \left(angle \cdot \left(t\_2 \cdot t\_2\right)\right)\right)}^{2} \cdot \left(a\_m \cdot a\_m\right)\right)\right)\right)}{x-scale \cdot \left(t\_1 \cdot \left(t\_3 \cdot \left(b \cdot b - a\_m \cdot a\_m\right)\right)\right)}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{y-scale \cdot t\_3}{x-scale \cdot \cos \left(\sqrt{\pi} \cdot \left(\sqrt{\pi} \cdot \left(0.005555555555555556 \cdot angle\right)\right)\right)}\right)}{\pi}\\
\end{array}
\end{array}
if a < 1.3e-84Initial program 17.7%
Simplified15.5%
Taylor expanded in x-scale around 0
associate-*r/N/A
/-lowering-/.f64N/A
Simplified32.6%
add-cbrt-cubeN/A
cbrt-lowering-cbrt.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
PI-lowering-PI.f6433.6%
Applied egg-rr33.6%
Taylor expanded in b around inf
associate-*r/N/A
/-lowering-/.f64N/A
mul-1-negN/A
neg-lowering-neg.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6446.2%
Simplified46.2%
if 1.3e-84 < a < 6.0000000000000002e-6Initial program 32.0%
Simplified32.2%
Taylor expanded in x-scale around 0
associate-*r/N/A
/-lowering-/.f64N/A
Simplified62.1%
add-cube-cbrtN/A
pow3N/A
add-sqr-sqrtN/A
cbrt-prodN/A
unpow-prod-downN/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
cbrt-lowering-cbrt.f64N/A
sqrt-lowering-sqrt.f64N/A
PI-lowering-PI.f64N/A
pow-lowering-pow.f64N/A
cbrt-lowering-cbrt.f64N/A
sqrt-lowering-sqrt.f64N/A
PI-lowering-PI.f6462.2%
Applied egg-rr62.2%
if 6.0000000000000002e-6 < a Initial program 8.0%
Simplified4.2%
Taylor expanded in x-scale around 0
associate-*r/N/A
/-lowering-/.f64N/A
Simplified26.3%
Taylor expanded in b around 0
/-lowering-/.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6462.9%
Simplified62.9%
associate-*r*N/A
add-sqr-sqrtN/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
PI-lowering-PI.f64N/A
sqrt-lowering-sqrt.f64N/A
PI-lowering-PI.f6464.6%
Applied egg-rr64.6%
Final simplification51.1%
a_m = (fabs.f64 a)
(FPCore (a_m b angle x-scale y-scale)
:precision binary64
(let* ((t_0 (* 0.005555555555555556 (* angle PI)))
(t_1 (cos t_0))
(t_2 (sin t_0)))
(if (<= a_m 4e-84)
(/ (* 180.0 (atan (/ (* y-scale t_1) (* t_2 (- 0.0 x-scale))))) PI)
(if (<= a_m 6e-6)
(/
(*
180.0
(atan
(/
(*
-0.5
(*
y-scale
(*
2.0
(+ (* (pow t_1 2.0) (* b b)) (* (* a_m a_m) (pow t_2 2.0))))))
(* x-scale (* t_1 (* t_2 (- (* b b) (* a_m a_m))))))))
PI)
(/
(*
180.0
(atan
(/
(* y-scale t_2)
(*
x-scale
(cos
(* (sqrt PI) (* (sqrt PI) (* 0.005555555555555556 angle))))))))
PI)))))a_m = fabs(a);
double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
double t_0 = 0.005555555555555556 * (angle * ((double) M_PI));
double t_1 = cos(t_0);
double t_2 = sin(t_0);
double tmp;
if (a_m <= 4e-84) {
tmp = (180.0 * atan(((y_45_scale * t_1) / (t_2 * (0.0 - x_45_scale))))) / ((double) M_PI);
} else if (a_m <= 6e-6) {
tmp = (180.0 * atan(((-0.5 * (y_45_scale * (2.0 * ((pow(t_1, 2.0) * (b * b)) + ((a_m * a_m) * pow(t_2, 2.0)))))) / (x_45_scale * (t_1 * (t_2 * ((b * b) - (a_m * a_m)))))))) / ((double) M_PI);
} else {
tmp = (180.0 * atan(((y_45_scale * t_2) / (x_45_scale * cos((sqrt(((double) M_PI)) * (sqrt(((double) M_PI)) * (0.005555555555555556 * angle)))))))) / ((double) M_PI);
}
return tmp;
}
a_m = Math.abs(a);
public static double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
double t_0 = 0.005555555555555556 * (angle * Math.PI);
double t_1 = Math.cos(t_0);
double t_2 = Math.sin(t_0);
double tmp;
if (a_m <= 4e-84) {
tmp = (180.0 * Math.atan(((y_45_scale * t_1) / (t_2 * (0.0 - x_45_scale))))) / Math.PI;
} else if (a_m <= 6e-6) {
tmp = (180.0 * Math.atan(((-0.5 * (y_45_scale * (2.0 * ((Math.pow(t_1, 2.0) * (b * b)) + ((a_m * a_m) * Math.pow(t_2, 2.0)))))) / (x_45_scale * (t_1 * (t_2 * ((b * b) - (a_m * a_m)))))))) / Math.PI;
} else {
tmp = (180.0 * Math.atan(((y_45_scale * t_2) / (x_45_scale * Math.cos((Math.sqrt(Math.PI) * (Math.sqrt(Math.PI) * (0.005555555555555556 * angle)))))))) / Math.PI;
}
return tmp;
}
a_m = math.fabs(a) def code(a_m, b, angle, x_45_scale, y_45_scale): t_0 = 0.005555555555555556 * (angle * math.pi) t_1 = math.cos(t_0) t_2 = math.sin(t_0) tmp = 0 if a_m <= 4e-84: tmp = (180.0 * math.atan(((y_45_scale * t_1) / (t_2 * (0.0 - x_45_scale))))) / math.pi elif a_m <= 6e-6: tmp = (180.0 * math.atan(((-0.5 * (y_45_scale * (2.0 * ((math.pow(t_1, 2.0) * (b * b)) + ((a_m * a_m) * math.pow(t_2, 2.0)))))) / (x_45_scale * (t_1 * (t_2 * ((b * b) - (a_m * a_m)))))))) / math.pi else: tmp = (180.0 * math.atan(((y_45_scale * t_2) / (x_45_scale * math.cos((math.sqrt(math.pi) * (math.sqrt(math.pi) * (0.005555555555555556 * angle)))))))) / math.pi return tmp
a_m = abs(a) function code(a_m, b, angle, x_45_scale, y_45_scale) t_0 = Float64(0.005555555555555556 * Float64(angle * pi)) t_1 = cos(t_0) t_2 = sin(t_0) tmp = 0.0 if (a_m <= 4e-84) tmp = Float64(Float64(180.0 * atan(Float64(Float64(y_45_scale * t_1) / Float64(t_2 * Float64(0.0 - x_45_scale))))) / pi); elseif (a_m <= 6e-6) tmp = Float64(Float64(180.0 * atan(Float64(Float64(-0.5 * Float64(y_45_scale * Float64(2.0 * Float64(Float64((t_1 ^ 2.0) * Float64(b * b)) + Float64(Float64(a_m * a_m) * (t_2 ^ 2.0)))))) / Float64(x_45_scale * Float64(t_1 * Float64(t_2 * Float64(Float64(b * b) - Float64(a_m * a_m)))))))) / pi); else tmp = Float64(Float64(180.0 * atan(Float64(Float64(y_45_scale * t_2) / Float64(x_45_scale * cos(Float64(sqrt(pi) * Float64(sqrt(pi) * Float64(0.005555555555555556 * angle)))))))) / pi); end return tmp end
a_m = abs(a); function tmp_2 = code(a_m, b, angle, x_45_scale, y_45_scale) t_0 = 0.005555555555555556 * (angle * pi); t_1 = cos(t_0); t_2 = sin(t_0); tmp = 0.0; if (a_m <= 4e-84) tmp = (180.0 * atan(((y_45_scale * t_1) / (t_2 * (0.0 - x_45_scale))))) / pi; elseif (a_m <= 6e-6) tmp = (180.0 * atan(((-0.5 * (y_45_scale * (2.0 * (((t_1 ^ 2.0) * (b * b)) + ((a_m * a_m) * (t_2 ^ 2.0)))))) / (x_45_scale * (t_1 * (t_2 * ((b * b) - (a_m * a_m)))))))) / pi; else tmp = (180.0 * atan(((y_45_scale * t_2) / (x_45_scale * cos((sqrt(pi) * (sqrt(pi) * (0.005555555555555556 * angle)))))))) / pi; end tmp_2 = tmp; end
a_m = N[Abs[a], $MachinePrecision]
code[a$95$m_, b_, angle_, x$45$scale_, y$45$scale_] := Block[{t$95$0 = N[(0.005555555555555556 * N[(angle * Pi), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[Cos[t$95$0], $MachinePrecision]}, Block[{t$95$2 = N[Sin[t$95$0], $MachinePrecision]}, If[LessEqual[a$95$m, 4e-84], N[(N[(180.0 * N[ArcTan[N[(N[(y$45$scale * t$95$1), $MachinePrecision] / N[(t$95$2 * N[(0.0 - x$45$scale), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], If[LessEqual[a$95$m, 6e-6], N[(N[(180.0 * N[ArcTan[N[(N[(-0.5 * N[(y$45$scale * N[(2.0 * N[(N[(N[Power[t$95$1, 2.0], $MachinePrecision] * N[(b * b), $MachinePrecision]), $MachinePrecision] + N[(N[(a$95$m * a$95$m), $MachinePrecision] * N[Power[t$95$2, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(x$45$scale * N[(t$95$1 * N[(t$95$2 * N[(N[(b * b), $MachinePrecision] - N[(a$95$m * a$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], N[(N[(180.0 * N[ArcTan[N[(N[(y$45$scale * t$95$2), $MachinePrecision] / N[(x$45$scale * N[Cos[N[(N[Sqrt[Pi], $MachinePrecision] * N[(N[Sqrt[Pi], $MachinePrecision] * N[(0.005555555555555556 * angle), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision]]]]]]
\begin{array}{l}
a_m = \left|a\right|
\\
\begin{array}{l}
t_0 := 0.005555555555555556 \cdot \left(angle \cdot \pi\right)\\
t_1 := \cos t\_0\\
t_2 := \sin t\_0\\
\mathbf{if}\;a\_m \leq 4 \cdot 10^{-84}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{y-scale \cdot t\_1}{t\_2 \cdot \left(0 - x-scale\right)}\right)}{\pi}\\
\mathbf{elif}\;a\_m \leq 6 \cdot 10^{-6}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{-0.5 \cdot \left(y-scale \cdot \left(2 \cdot \left({t\_1}^{2} \cdot \left(b \cdot b\right) + \left(a\_m \cdot a\_m\right) \cdot {t\_2}^{2}\right)\right)\right)}{x-scale \cdot \left(t\_1 \cdot \left(t\_2 \cdot \left(b \cdot b - a\_m \cdot a\_m\right)\right)\right)}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{y-scale \cdot t\_2}{x-scale \cdot \cos \left(\sqrt{\pi} \cdot \left(\sqrt{\pi} \cdot \left(0.005555555555555556 \cdot angle\right)\right)\right)}\right)}{\pi}\\
\end{array}
\end{array}
if a < 4.0000000000000001e-84Initial program 17.7%
Simplified15.5%
Taylor expanded in x-scale around 0
associate-*r/N/A
/-lowering-/.f64N/A
Simplified32.6%
add-cbrt-cubeN/A
cbrt-lowering-cbrt.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
PI-lowering-PI.f6433.6%
Applied egg-rr33.6%
Taylor expanded in b around inf
associate-*r/N/A
/-lowering-/.f64N/A
mul-1-negN/A
neg-lowering-neg.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6446.2%
Simplified46.2%
if 4.0000000000000001e-84 < a < 6.0000000000000002e-6Initial program 32.0%
Simplified32.2%
Taylor expanded in x-scale around 0
associate-*r/N/A
/-lowering-/.f64N/A
Simplified62.1%
if 6.0000000000000002e-6 < a Initial program 8.0%
Simplified4.2%
Taylor expanded in x-scale around 0
associate-*r/N/A
/-lowering-/.f64N/A
Simplified26.3%
Taylor expanded in b around 0
/-lowering-/.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6462.9%
Simplified62.9%
associate-*r*N/A
add-sqr-sqrtN/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
PI-lowering-PI.f64N/A
sqrt-lowering-sqrt.f64N/A
PI-lowering-PI.f6464.6%
Applied egg-rr64.6%
Final simplification51.1%
a_m = (fabs.f64 a)
(FPCore (a_m b angle x-scale y-scale)
:precision binary64
(let* ((t_0 (* 0.005555555555555556 (* angle PI)))
(t_1 (cos t_0))
(t_2 (sin t_0)))
(if (<= a_m 3.4e-84)
(/ (* 180.0 (atan (/ (* y-scale t_1) (* t_2 (- 0.0 x-scale))))) PI)
(if (<= a_m 6.8e-6)
(*
180.0
(/
(atan
(/
(*
-0.5
(*
y-scale
(*
2.0
(+ (* (pow t_1 2.0) (* b b)) (* (* a_m a_m) (pow t_2 2.0))))))
(* x-scale (* t_1 (* t_2 (- (* b b) (* a_m a_m)))))))
PI))
(/
(*
180.0
(atan
(/
(* y-scale t_2)
(*
x-scale
(cos
(* (sqrt PI) (* (sqrt PI) (* 0.005555555555555556 angle))))))))
PI)))))a_m = fabs(a);
double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
double t_0 = 0.005555555555555556 * (angle * ((double) M_PI));
double t_1 = cos(t_0);
double t_2 = sin(t_0);
double tmp;
if (a_m <= 3.4e-84) {
tmp = (180.0 * atan(((y_45_scale * t_1) / (t_2 * (0.0 - x_45_scale))))) / ((double) M_PI);
} else if (a_m <= 6.8e-6) {
tmp = 180.0 * (atan(((-0.5 * (y_45_scale * (2.0 * ((pow(t_1, 2.0) * (b * b)) + ((a_m * a_m) * pow(t_2, 2.0)))))) / (x_45_scale * (t_1 * (t_2 * ((b * b) - (a_m * a_m))))))) / ((double) M_PI));
} else {
tmp = (180.0 * atan(((y_45_scale * t_2) / (x_45_scale * cos((sqrt(((double) M_PI)) * (sqrt(((double) M_PI)) * (0.005555555555555556 * angle)))))))) / ((double) M_PI);
}
return tmp;
}
a_m = Math.abs(a);
public static double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
double t_0 = 0.005555555555555556 * (angle * Math.PI);
double t_1 = Math.cos(t_0);
double t_2 = Math.sin(t_0);
double tmp;
if (a_m <= 3.4e-84) {
tmp = (180.0 * Math.atan(((y_45_scale * t_1) / (t_2 * (0.0 - x_45_scale))))) / Math.PI;
} else if (a_m <= 6.8e-6) {
tmp = 180.0 * (Math.atan(((-0.5 * (y_45_scale * (2.0 * ((Math.pow(t_1, 2.0) * (b * b)) + ((a_m * a_m) * Math.pow(t_2, 2.0)))))) / (x_45_scale * (t_1 * (t_2 * ((b * b) - (a_m * a_m))))))) / Math.PI);
} else {
tmp = (180.0 * Math.atan(((y_45_scale * t_2) / (x_45_scale * Math.cos((Math.sqrt(Math.PI) * (Math.sqrt(Math.PI) * (0.005555555555555556 * angle)))))))) / Math.PI;
}
return tmp;
}
a_m = math.fabs(a) def code(a_m, b, angle, x_45_scale, y_45_scale): t_0 = 0.005555555555555556 * (angle * math.pi) t_1 = math.cos(t_0) t_2 = math.sin(t_0) tmp = 0 if a_m <= 3.4e-84: tmp = (180.0 * math.atan(((y_45_scale * t_1) / (t_2 * (0.0 - x_45_scale))))) / math.pi elif a_m <= 6.8e-6: tmp = 180.0 * (math.atan(((-0.5 * (y_45_scale * (2.0 * ((math.pow(t_1, 2.0) * (b * b)) + ((a_m * a_m) * math.pow(t_2, 2.0)))))) / (x_45_scale * (t_1 * (t_2 * ((b * b) - (a_m * a_m))))))) / math.pi) else: tmp = (180.0 * math.atan(((y_45_scale * t_2) / (x_45_scale * math.cos((math.sqrt(math.pi) * (math.sqrt(math.pi) * (0.005555555555555556 * angle)))))))) / math.pi return tmp
a_m = abs(a) function code(a_m, b, angle, x_45_scale, y_45_scale) t_0 = Float64(0.005555555555555556 * Float64(angle * pi)) t_1 = cos(t_0) t_2 = sin(t_0) tmp = 0.0 if (a_m <= 3.4e-84) tmp = Float64(Float64(180.0 * atan(Float64(Float64(y_45_scale * t_1) / Float64(t_2 * Float64(0.0 - x_45_scale))))) / pi); elseif (a_m <= 6.8e-6) tmp = Float64(180.0 * Float64(atan(Float64(Float64(-0.5 * Float64(y_45_scale * Float64(2.0 * Float64(Float64((t_1 ^ 2.0) * Float64(b * b)) + Float64(Float64(a_m * a_m) * (t_2 ^ 2.0)))))) / Float64(x_45_scale * Float64(t_1 * Float64(t_2 * Float64(Float64(b * b) - Float64(a_m * a_m))))))) / pi)); else tmp = Float64(Float64(180.0 * atan(Float64(Float64(y_45_scale * t_2) / Float64(x_45_scale * cos(Float64(sqrt(pi) * Float64(sqrt(pi) * Float64(0.005555555555555556 * angle)))))))) / pi); end return tmp end
a_m = abs(a); function tmp_2 = code(a_m, b, angle, x_45_scale, y_45_scale) t_0 = 0.005555555555555556 * (angle * pi); t_1 = cos(t_0); t_2 = sin(t_0); tmp = 0.0; if (a_m <= 3.4e-84) tmp = (180.0 * atan(((y_45_scale * t_1) / (t_2 * (0.0 - x_45_scale))))) / pi; elseif (a_m <= 6.8e-6) tmp = 180.0 * (atan(((-0.5 * (y_45_scale * (2.0 * (((t_1 ^ 2.0) * (b * b)) + ((a_m * a_m) * (t_2 ^ 2.0)))))) / (x_45_scale * (t_1 * (t_2 * ((b * b) - (a_m * a_m))))))) / pi); else tmp = (180.0 * atan(((y_45_scale * t_2) / (x_45_scale * cos((sqrt(pi) * (sqrt(pi) * (0.005555555555555556 * angle)))))))) / pi; end tmp_2 = tmp; end
a_m = N[Abs[a], $MachinePrecision]
code[a$95$m_, b_, angle_, x$45$scale_, y$45$scale_] := Block[{t$95$0 = N[(0.005555555555555556 * N[(angle * Pi), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[Cos[t$95$0], $MachinePrecision]}, Block[{t$95$2 = N[Sin[t$95$0], $MachinePrecision]}, If[LessEqual[a$95$m, 3.4e-84], N[(N[(180.0 * N[ArcTan[N[(N[(y$45$scale * t$95$1), $MachinePrecision] / N[(t$95$2 * N[(0.0 - x$45$scale), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], If[LessEqual[a$95$m, 6.8e-6], N[(180.0 * N[(N[ArcTan[N[(N[(-0.5 * N[(y$45$scale * N[(2.0 * N[(N[(N[Power[t$95$1, 2.0], $MachinePrecision] * N[(b * b), $MachinePrecision]), $MachinePrecision] + N[(N[(a$95$m * a$95$m), $MachinePrecision] * N[Power[t$95$2, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(x$45$scale * N[(t$95$1 * N[(t$95$2 * N[(N[(b * b), $MachinePrecision] - N[(a$95$m * a$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(N[(180.0 * N[ArcTan[N[(N[(y$45$scale * t$95$2), $MachinePrecision] / N[(x$45$scale * N[Cos[N[(N[Sqrt[Pi], $MachinePrecision] * N[(N[Sqrt[Pi], $MachinePrecision] * N[(0.005555555555555556 * angle), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision]]]]]]
\begin{array}{l}
a_m = \left|a\right|
\\
\begin{array}{l}
t_0 := 0.005555555555555556 \cdot \left(angle \cdot \pi\right)\\
t_1 := \cos t\_0\\
t_2 := \sin t\_0\\
\mathbf{if}\;a\_m \leq 3.4 \cdot 10^{-84}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{y-scale \cdot t\_1}{t\_2 \cdot \left(0 - x-scale\right)}\right)}{\pi}\\
\mathbf{elif}\;a\_m \leq 6.8 \cdot 10^{-6}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{-0.5 \cdot \left(y-scale \cdot \left(2 \cdot \left({t\_1}^{2} \cdot \left(b \cdot b\right) + \left(a\_m \cdot a\_m\right) \cdot {t\_2}^{2}\right)\right)\right)}{x-scale \cdot \left(t\_1 \cdot \left(t\_2 \cdot \left(b \cdot b - a\_m \cdot a\_m\right)\right)\right)}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{y-scale \cdot t\_2}{x-scale \cdot \cos \left(\sqrt{\pi} \cdot \left(\sqrt{\pi} \cdot \left(0.005555555555555556 \cdot angle\right)\right)\right)}\right)}{\pi}\\
\end{array}
\end{array}
if a < 3.40000000000000021e-84Initial program 17.7%
Simplified15.5%
Taylor expanded in x-scale around 0
associate-*r/N/A
/-lowering-/.f64N/A
Simplified32.6%
add-cbrt-cubeN/A
cbrt-lowering-cbrt.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
PI-lowering-PI.f6433.6%
Applied egg-rr33.6%
Taylor expanded in b around inf
associate-*r/N/A
/-lowering-/.f64N/A
mul-1-negN/A
neg-lowering-neg.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6446.2%
Simplified46.2%
if 3.40000000000000021e-84 < a < 6.80000000000000012e-6Initial program 32.0%
Taylor expanded in x-scale around 0
associate-*r/N/A
/-lowering-/.f64N/A
Simplified62.1%
if 6.80000000000000012e-6 < a Initial program 8.0%
Simplified4.2%
Taylor expanded in x-scale around 0
associate-*r/N/A
/-lowering-/.f64N/A
Simplified26.3%
Taylor expanded in b around 0
/-lowering-/.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6462.9%
Simplified62.9%
associate-*r*N/A
add-sqr-sqrtN/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
PI-lowering-PI.f64N/A
sqrt-lowering-sqrt.f64N/A
PI-lowering-PI.f6464.6%
Applied egg-rr64.6%
Final simplification51.1%
a_m = (fabs.f64 a)
(FPCore (a_m b angle x-scale y-scale)
:precision binary64
(let* ((t_0 (* 0.005555555555555556 (* angle PI)))
(t_1 (cos t_0))
(t_2 (sin t_0)))
(if (<= a_m 1.15e-84)
(/ (* 180.0 (atan (/ (* y-scale t_1) (* t_2 (- 0.0 x-scale))))) PI)
(if (<= a_m 5.8e-6)
(/
(*
180.0
(atan
(/
(*
-0.5
(* y-scale (* 2.0 (+ (* b b) (* (* a_m a_m) (pow t_2 2.0))))))
(* x-scale (* t_1 (* t_2 (- (* b b) (* a_m a_m))))))))
PI)
(/
(*
180.0
(atan
(/
(* y-scale t_2)
(*
x-scale
(cos
(* (sqrt PI) (* (sqrt PI) (* 0.005555555555555556 angle))))))))
PI)))))a_m = fabs(a);
double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
double t_0 = 0.005555555555555556 * (angle * ((double) M_PI));
double t_1 = cos(t_0);
double t_2 = sin(t_0);
double tmp;
if (a_m <= 1.15e-84) {
tmp = (180.0 * atan(((y_45_scale * t_1) / (t_2 * (0.0 - x_45_scale))))) / ((double) M_PI);
} else if (a_m <= 5.8e-6) {
tmp = (180.0 * atan(((-0.5 * (y_45_scale * (2.0 * ((b * b) + ((a_m * a_m) * pow(t_2, 2.0)))))) / (x_45_scale * (t_1 * (t_2 * ((b * b) - (a_m * a_m)))))))) / ((double) M_PI);
} else {
tmp = (180.0 * atan(((y_45_scale * t_2) / (x_45_scale * cos((sqrt(((double) M_PI)) * (sqrt(((double) M_PI)) * (0.005555555555555556 * angle)))))))) / ((double) M_PI);
}
return tmp;
}
a_m = Math.abs(a);
public static double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
double t_0 = 0.005555555555555556 * (angle * Math.PI);
double t_1 = Math.cos(t_0);
double t_2 = Math.sin(t_0);
double tmp;
if (a_m <= 1.15e-84) {
tmp = (180.0 * Math.atan(((y_45_scale * t_1) / (t_2 * (0.0 - x_45_scale))))) / Math.PI;
} else if (a_m <= 5.8e-6) {
tmp = (180.0 * Math.atan(((-0.5 * (y_45_scale * (2.0 * ((b * b) + ((a_m * a_m) * Math.pow(t_2, 2.0)))))) / (x_45_scale * (t_1 * (t_2 * ((b * b) - (a_m * a_m)))))))) / Math.PI;
} else {
tmp = (180.0 * Math.atan(((y_45_scale * t_2) / (x_45_scale * Math.cos((Math.sqrt(Math.PI) * (Math.sqrt(Math.PI) * (0.005555555555555556 * angle)))))))) / Math.PI;
}
return tmp;
}
a_m = math.fabs(a) def code(a_m, b, angle, x_45_scale, y_45_scale): t_0 = 0.005555555555555556 * (angle * math.pi) t_1 = math.cos(t_0) t_2 = math.sin(t_0) tmp = 0 if a_m <= 1.15e-84: tmp = (180.0 * math.atan(((y_45_scale * t_1) / (t_2 * (0.0 - x_45_scale))))) / math.pi elif a_m <= 5.8e-6: tmp = (180.0 * math.atan(((-0.5 * (y_45_scale * (2.0 * ((b * b) + ((a_m * a_m) * math.pow(t_2, 2.0)))))) / (x_45_scale * (t_1 * (t_2 * ((b * b) - (a_m * a_m)))))))) / math.pi else: tmp = (180.0 * math.atan(((y_45_scale * t_2) / (x_45_scale * math.cos((math.sqrt(math.pi) * (math.sqrt(math.pi) * (0.005555555555555556 * angle)))))))) / math.pi return tmp
a_m = abs(a) function code(a_m, b, angle, x_45_scale, y_45_scale) t_0 = Float64(0.005555555555555556 * Float64(angle * pi)) t_1 = cos(t_0) t_2 = sin(t_0) tmp = 0.0 if (a_m <= 1.15e-84) tmp = Float64(Float64(180.0 * atan(Float64(Float64(y_45_scale * t_1) / Float64(t_2 * Float64(0.0 - x_45_scale))))) / pi); elseif (a_m <= 5.8e-6) tmp = Float64(Float64(180.0 * atan(Float64(Float64(-0.5 * Float64(y_45_scale * Float64(2.0 * Float64(Float64(b * b) + Float64(Float64(a_m * a_m) * (t_2 ^ 2.0)))))) / Float64(x_45_scale * Float64(t_1 * Float64(t_2 * Float64(Float64(b * b) - Float64(a_m * a_m)))))))) / pi); else tmp = Float64(Float64(180.0 * atan(Float64(Float64(y_45_scale * t_2) / Float64(x_45_scale * cos(Float64(sqrt(pi) * Float64(sqrt(pi) * Float64(0.005555555555555556 * angle)))))))) / pi); end return tmp end
a_m = abs(a); function tmp_2 = code(a_m, b, angle, x_45_scale, y_45_scale) t_0 = 0.005555555555555556 * (angle * pi); t_1 = cos(t_0); t_2 = sin(t_0); tmp = 0.0; if (a_m <= 1.15e-84) tmp = (180.0 * atan(((y_45_scale * t_1) / (t_2 * (0.0 - x_45_scale))))) / pi; elseif (a_m <= 5.8e-6) tmp = (180.0 * atan(((-0.5 * (y_45_scale * (2.0 * ((b * b) + ((a_m * a_m) * (t_2 ^ 2.0)))))) / (x_45_scale * (t_1 * (t_2 * ((b * b) - (a_m * a_m)))))))) / pi; else tmp = (180.0 * atan(((y_45_scale * t_2) / (x_45_scale * cos((sqrt(pi) * (sqrt(pi) * (0.005555555555555556 * angle)))))))) / pi; end tmp_2 = tmp; end
a_m = N[Abs[a], $MachinePrecision]
code[a$95$m_, b_, angle_, x$45$scale_, y$45$scale_] := Block[{t$95$0 = N[(0.005555555555555556 * N[(angle * Pi), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[Cos[t$95$0], $MachinePrecision]}, Block[{t$95$2 = N[Sin[t$95$0], $MachinePrecision]}, If[LessEqual[a$95$m, 1.15e-84], N[(N[(180.0 * N[ArcTan[N[(N[(y$45$scale * t$95$1), $MachinePrecision] / N[(t$95$2 * N[(0.0 - x$45$scale), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], If[LessEqual[a$95$m, 5.8e-6], N[(N[(180.0 * N[ArcTan[N[(N[(-0.5 * N[(y$45$scale * N[(2.0 * N[(N[(b * b), $MachinePrecision] + N[(N[(a$95$m * a$95$m), $MachinePrecision] * N[Power[t$95$2, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(x$45$scale * N[(t$95$1 * N[(t$95$2 * N[(N[(b * b), $MachinePrecision] - N[(a$95$m * a$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], N[(N[(180.0 * N[ArcTan[N[(N[(y$45$scale * t$95$2), $MachinePrecision] / N[(x$45$scale * N[Cos[N[(N[Sqrt[Pi], $MachinePrecision] * N[(N[Sqrt[Pi], $MachinePrecision] * N[(0.005555555555555556 * angle), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision]]]]]]
\begin{array}{l}
a_m = \left|a\right|
\\
\begin{array}{l}
t_0 := 0.005555555555555556 \cdot \left(angle \cdot \pi\right)\\
t_1 := \cos t\_0\\
t_2 := \sin t\_0\\
\mathbf{if}\;a\_m \leq 1.15 \cdot 10^{-84}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{y-scale \cdot t\_1}{t\_2 \cdot \left(0 - x-scale\right)}\right)}{\pi}\\
\mathbf{elif}\;a\_m \leq 5.8 \cdot 10^{-6}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{-0.5 \cdot \left(y-scale \cdot \left(2 \cdot \left(b \cdot b + \left(a\_m \cdot a\_m\right) \cdot {t\_2}^{2}\right)\right)\right)}{x-scale \cdot \left(t\_1 \cdot \left(t\_2 \cdot \left(b \cdot b - a\_m \cdot a\_m\right)\right)\right)}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{y-scale \cdot t\_2}{x-scale \cdot \cos \left(\sqrt{\pi} \cdot \left(\sqrt{\pi} \cdot \left(0.005555555555555556 \cdot angle\right)\right)\right)}\right)}{\pi}\\
\end{array}
\end{array}
if a < 1.1499999999999999e-84Initial program 17.7%
Simplified15.5%
Taylor expanded in x-scale around 0
associate-*r/N/A
/-lowering-/.f64N/A
Simplified32.6%
add-cbrt-cubeN/A
cbrt-lowering-cbrt.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
PI-lowering-PI.f6433.6%
Applied egg-rr33.6%
Taylor expanded in b around inf
associate-*r/N/A
/-lowering-/.f64N/A
mul-1-negN/A
neg-lowering-neg.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6446.2%
Simplified46.2%
if 1.1499999999999999e-84 < a < 5.8000000000000004e-6Initial program 32.0%
Simplified32.2%
Taylor expanded in x-scale around 0
associate-*r/N/A
/-lowering-/.f64N/A
Simplified62.1%
Taylor expanded in angle around 0
Simplified61.9%
if 5.8000000000000004e-6 < a Initial program 8.0%
Simplified4.2%
Taylor expanded in x-scale around 0
associate-*r/N/A
/-lowering-/.f64N/A
Simplified26.3%
Taylor expanded in b around 0
/-lowering-/.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6462.9%
Simplified62.9%
associate-*r*N/A
add-sqr-sqrtN/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
PI-lowering-PI.f64N/A
sqrt-lowering-sqrt.f64N/A
PI-lowering-PI.f6464.6%
Applied egg-rr64.6%
Final simplification51.1%
a_m = (fabs.f64 a)
(FPCore (a_m b angle x-scale y-scale)
:precision binary64
(let* ((t_0 (* 0.005555555555555556 (* angle PI))) (t_1 (sin t_0)))
(if (<= a_m 3.6e-128)
(/ (* 180.0 (atan (/ (* y-scale (cos t_0)) (* t_1 (- 0.0 x-scale))))) PI)
(/
(*
180.0
(atan
(/
(* y-scale t_1)
(*
x-scale
(cos (* (sqrt PI) (* (sqrt PI) (* 0.005555555555555556 angle))))))))
PI))))a_m = fabs(a);
double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
double t_0 = 0.005555555555555556 * (angle * ((double) M_PI));
double t_1 = sin(t_0);
double tmp;
if (a_m <= 3.6e-128) {
tmp = (180.0 * atan(((y_45_scale * cos(t_0)) / (t_1 * (0.0 - x_45_scale))))) / ((double) M_PI);
} else {
tmp = (180.0 * atan(((y_45_scale * t_1) / (x_45_scale * cos((sqrt(((double) M_PI)) * (sqrt(((double) M_PI)) * (0.005555555555555556 * angle)))))))) / ((double) M_PI);
}
return tmp;
}
a_m = Math.abs(a);
public static double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
double t_0 = 0.005555555555555556 * (angle * Math.PI);
double t_1 = Math.sin(t_0);
double tmp;
if (a_m <= 3.6e-128) {
tmp = (180.0 * Math.atan(((y_45_scale * Math.cos(t_0)) / (t_1 * (0.0 - x_45_scale))))) / Math.PI;
} else {
tmp = (180.0 * Math.atan(((y_45_scale * t_1) / (x_45_scale * Math.cos((Math.sqrt(Math.PI) * (Math.sqrt(Math.PI) * (0.005555555555555556 * angle)))))))) / Math.PI;
}
return tmp;
}
a_m = math.fabs(a) def code(a_m, b, angle, x_45_scale, y_45_scale): t_0 = 0.005555555555555556 * (angle * math.pi) t_1 = math.sin(t_0) tmp = 0 if a_m <= 3.6e-128: tmp = (180.0 * math.atan(((y_45_scale * math.cos(t_0)) / (t_1 * (0.0 - x_45_scale))))) / math.pi else: tmp = (180.0 * math.atan(((y_45_scale * t_1) / (x_45_scale * math.cos((math.sqrt(math.pi) * (math.sqrt(math.pi) * (0.005555555555555556 * angle)))))))) / math.pi return tmp
a_m = abs(a) function code(a_m, b, angle, x_45_scale, y_45_scale) t_0 = Float64(0.005555555555555556 * Float64(angle * pi)) t_1 = sin(t_0) tmp = 0.0 if (a_m <= 3.6e-128) tmp = Float64(Float64(180.0 * atan(Float64(Float64(y_45_scale * cos(t_0)) / Float64(t_1 * Float64(0.0 - x_45_scale))))) / pi); else tmp = Float64(Float64(180.0 * atan(Float64(Float64(y_45_scale * t_1) / Float64(x_45_scale * cos(Float64(sqrt(pi) * Float64(sqrt(pi) * Float64(0.005555555555555556 * angle)))))))) / pi); end return tmp end
a_m = abs(a); function tmp_2 = code(a_m, b, angle, x_45_scale, y_45_scale) t_0 = 0.005555555555555556 * (angle * pi); t_1 = sin(t_0); tmp = 0.0; if (a_m <= 3.6e-128) tmp = (180.0 * atan(((y_45_scale * cos(t_0)) / (t_1 * (0.0 - x_45_scale))))) / pi; else tmp = (180.0 * atan(((y_45_scale * t_1) / (x_45_scale * cos((sqrt(pi) * (sqrt(pi) * (0.005555555555555556 * angle)))))))) / pi; end tmp_2 = tmp; end
a_m = N[Abs[a], $MachinePrecision]
code[a$95$m_, b_, angle_, x$45$scale_, y$45$scale_] := Block[{t$95$0 = N[(0.005555555555555556 * N[(angle * Pi), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[Sin[t$95$0], $MachinePrecision]}, If[LessEqual[a$95$m, 3.6e-128], N[(N[(180.0 * N[ArcTan[N[(N[(y$45$scale * N[Cos[t$95$0], $MachinePrecision]), $MachinePrecision] / N[(t$95$1 * N[(0.0 - x$45$scale), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], N[(N[(180.0 * N[ArcTan[N[(N[(y$45$scale * t$95$1), $MachinePrecision] / N[(x$45$scale * N[Cos[N[(N[Sqrt[Pi], $MachinePrecision] * N[(N[Sqrt[Pi], $MachinePrecision] * N[(0.005555555555555556 * angle), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision]]]]
\begin{array}{l}
a_m = \left|a\right|
\\
\begin{array}{l}
t_0 := 0.005555555555555556 \cdot \left(angle \cdot \pi\right)\\
t_1 := \sin t\_0\\
\mathbf{if}\;a\_m \leq 3.6 \cdot 10^{-128}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{y-scale \cdot \cos t\_0}{t\_1 \cdot \left(0 - x-scale\right)}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{y-scale \cdot t\_1}{x-scale \cdot \cos \left(\sqrt{\pi} \cdot \left(\sqrt{\pi} \cdot \left(0.005555555555555556 \cdot angle\right)\right)\right)}\right)}{\pi}\\
\end{array}
\end{array}
if a < 3.60000000000000025e-128Initial program 17.0%
Simplified15.2%
Taylor expanded in x-scale around 0
associate-*r/N/A
/-lowering-/.f64N/A
Simplified33.2%
add-cbrt-cubeN/A
cbrt-lowering-cbrt.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
PI-lowering-PI.f6433.7%
Applied egg-rr33.7%
Taylor expanded in b around inf
associate-*r/N/A
/-lowering-/.f64N/A
mul-1-negN/A
neg-lowering-neg.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6447.5%
Simplified47.5%
if 3.60000000000000025e-128 < a Initial program 16.5%
Simplified13.0%
Taylor expanded in x-scale around 0
associate-*r/N/A
/-lowering-/.f64N/A
Simplified34.1%
Taylor expanded in b around 0
/-lowering-/.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6458.4%
Simplified58.4%
associate-*r*N/A
add-sqr-sqrtN/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
PI-lowering-PI.f64N/A
sqrt-lowering-sqrt.f64N/A
PI-lowering-PI.f6459.8%
Applied egg-rr59.8%
Final simplification51.4%
a_m = (fabs.f64 a)
(FPCore (a_m b angle x-scale y-scale)
:precision binary64
(let* ((t_0 (* 0.005555555555555556 (* angle PI))))
(if (<= a_m 1e-85)
(/
(* 180.0 (atan (/ (* y-scale (cos t_0)) (* (sin t_0) (- 0.0 x-scale)))))
PI)
(* (atan (* (/ y-scale x-scale) (tan t_0))) (/ 180.0 PI)))))a_m = fabs(a);
double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
double t_0 = 0.005555555555555556 * (angle * ((double) M_PI));
double tmp;
if (a_m <= 1e-85) {
tmp = (180.0 * atan(((y_45_scale * cos(t_0)) / (sin(t_0) * (0.0 - x_45_scale))))) / ((double) M_PI);
} else {
tmp = atan(((y_45_scale / x_45_scale) * tan(t_0))) * (180.0 / ((double) M_PI));
}
return tmp;
}
a_m = Math.abs(a);
public static double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
double t_0 = 0.005555555555555556 * (angle * Math.PI);
double tmp;
if (a_m <= 1e-85) {
tmp = (180.0 * Math.atan(((y_45_scale * Math.cos(t_0)) / (Math.sin(t_0) * (0.0 - x_45_scale))))) / Math.PI;
} else {
tmp = Math.atan(((y_45_scale / x_45_scale) * Math.tan(t_0))) * (180.0 / Math.PI);
}
return tmp;
}
a_m = math.fabs(a) def code(a_m, b, angle, x_45_scale, y_45_scale): t_0 = 0.005555555555555556 * (angle * math.pi) tmp = 0 if a_m <= 1e-85: tmp = (180.0 * math.atan(((y_45_scale * math.cos(t_0)) / (math.sin(t_0) * (0.0 - x_45_scale))))) / math.pi else: tmp = math.atan(((y_45_scale / x_45_scale) * math.tan(t_0))) * (180.0 / math.pi) return tmp
a_m = abs(a) function code(a_m, b, angle, x_45_scale, y_45_scale) t_0 = Float64(0.005555555555555556 * Float64(angle * pi)) tmp = 0.0 if (a_m <= 1e-85) tmp = Float64(Float64(180.0 * atan(Float64(Float64(y_45_scale * cos(t_0)) / Float64(sin(t_0) * Float64(0.0 - x_45_scale))))) / pi); else tmp = Float64(atan(Float64(Float64(y_45_scale / x_45_scale) * tan(t_0))) * Float64(180.0 / pi)); end return tmp end
a_m = abs(a); function tmp_2 = code(a_m, b, angle, x_45_scale, y_45_scale) t_0 = 0.005555555555555556 * (angle * pi); tmp = 0.0; if (a_m <= 1e-85) tmp = (180.0 * atan(((y_45_scale * cos(t_0)) / (sin(t_0) * (0.0 - x_45_scale))))) / pi; else tmp = atan(((y_45_scale / x_45_scale) * tan(t_0))) * (180.0 / pi); end tmp_2 = tmp; end
a_m = N[Abs[a], $MachinePrecision]
code[a$95$m_, b_, angle_, x$45$scale_, y$45$scale_] := Block[{t$95$0 = N[(0.005555555555555556 * N[(angle * Pi), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[a$95$m, 1e-85], N[(N[(180.0 * N[ArcTan[N[(N[(y$45$scale * N[Cos[t$95$0], $MachinePrecision]), $MachinePrecision] / N[(N[Sin[t$95$0], $MachinePrecision] * N[(0.0 - x$45$scale), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], N[(N[ArcTan[N[(N[(y$45$scale / x$45$scale), $MachinePrecision] * N[Tan[t$95$0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * N[(180.0 / Pi), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
a_m = \left|a\right|
\\
\begin{array}{l}
t_0 := 0.005555555555555556 \cdot \left(angle \cdot \pi\right)\\
\mathbf{if}\;a\_m \leq 10^{-85}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{y-scale \cdot \cos t\_0}{\sin t\_0 \cdot \left(0 - x-scale\right)}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;\tan^{-1} \left(\frac{y-scale}{x-scale} \cdot \tan t\_0\right) \cdot \frac{180}{\pi}\\
\end{array}
\end{array}
if a < 9.9999999999999998e-86Initial program 17.7%
Simplified15.5%
Taylor expanded in x-scale around 0
associate-*r/N/A
/-lowering-/.f64N/A
Simplified32.6%
add-cbrt-cubeN/A
cbrt-lowering-cbrt.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
PI-lowering-PI.f6433.6%
Applied egg-rr33.6%
Taylor expanded in b around inf
associate-*r/N/A
/-lowering-/.f64N/A
mul-1-negN/A
neg-lowering-neg.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6446.2%
Simplified46.2%
if 9.9999999999999998e-86 < a Initial program 14.4%
Simplified11.7%
Taylor expanded in x-scale around 0
associate-*r/N/A
/-lowering-/.f64N/A
Simplified35.9%
Taylor expanded in b around 0
/-lowering-/.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6458.7%
Simplified58.7%
*-commutativeN/A
associate-/l*N/A
*-lowering-*.f64N/A
Applied egg-rr60.0%
Final simplification50.0%
a_m = (fabs.f64 a)
(FPCore (a_m b angle x-scale y-scale)
:precision binary64
(let* ((t_0 (* 0.005555555555555556 (* angle PI))))
(if (<= a_m 7.4e-87)
(/ (* 180.0 (atan (/ (- 0.0 (/ y-scale x-scale)) (sin t_0)))) PI)
(* (atan (* (/ y-scale x-scale) (tan t_0))) (/ 180.0 PI)))))a_m = fabs(a);
double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
double t_0 = 0.005555555555555556 * (angle * ((double) M_PI));
double tmp;
if (a_m <= 7.4e-87) {
tmp = (180.0 * atan(((0.0 - (y_45_scale / x_45_scale)) / sin(t_0)))) / ((double) M_PI);
} else {
tmp = atan(((y_45_scale / x_45_scale) * tan(t_0))) * (180.0 / ((double) M_PI));
}
return tmp;
}
a_m = Math.abs(a);
public static double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
double t_0 = 0.005555555555555556 * (angle * Math.PI);
double tmp;
if (a_m <= 7.4e-87) {
tmp = (180.0 * Math.atan(((0.0 - (y_45_scale / x_45_scale)) / Math.sin(t_0)))) / Math.PI;
} else {
tmp = Math.atan(((y_45_scale / x_45_scale) * Math.tan(t_0))) * (180.0 / Math.PI);
}
return tmp;
}
a_m = math.fabs(a) def code(a_m, b, angle, x_45_scale, y_45_scale): t_0 = 0.005555555555555556 * (angle * math.pi) tmp = 0 if a_m <= 7.4e-87: tmp = (180.0 * math.atan(((0.0 - (y_45_scale / x_45_scale)) / math.sin(t_0)))) / math.pi else: tmp = math.atan(((y_45_scale / x_45_scale) * math.tan(t_0))) * (180.0 / math.pi) return tmp
a_m = abs(a) function code(a_m, b, angle, x_45_scale, y_45_scale) t_0 = Float64(0.005555555555555556 * Float64(angle * pi)) tmp = 0.0 if (a_m <= 7.4e-87) tmp = Float64(Float64(180.0 * atan(Float64(Float64(0.0 - Float64(y_45_scale / x_45_scale)) / sin(t_0)))) / pi); else tmp = Float64(atan(Float64(Float64(y_45_scale / x_45_scale) * tan(t_0))) * Float64(180.0 / pi)); end return tmp end
a_m = abs(a); function tmp_2 = code(a_m, b, angle, x_45_scale, y_45_scale) t_0 = 0.005555555555555556 * (angle * pi); tmp = 0.0; if (a_m <= 7.4e-87) tmp = (180.0 * atan(((0.0 - (y_45_scale / x_45_scale)) / sin(t_0)))) / pi; else tmp = atan(((y_45_scale / x_45_scale) * tan(t_0))) * (180.0 / pi); end tmp_2 = tmp; end
a_m = N[Abs[a], $MachinePrecision]
code[a$95$m_, b_, angle_, x$45$scale_, y$45$scale_] := Block[{t$95$0 = N[(0.005555555555555556 * N[(angle * Pi), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[a$95$m, 7.4e-87], N[(N[(180.0 * N[ArcTan[N[(N[(0.0 - N[(y$45$scale / x$45$scale), $MachinePrecision]), $MachinePrecision] / N[Sin[t$95$0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], N[(N[ArcTan[N[(N[(y$45$scale / x$45$scale), $MachinePrecision] * N[Tan[t$95$0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * N[(180.0 / Pi), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
a_m = \left|a\right|
\\
\begin{array}{l}
t_0 := 0.005555555555555556 \cdot \left(angle \cdot \pi\right)\\
\mathbf{if}\;a\_m \leq 7.4 \cdot 10^{-87}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{0 - \frac{y-scale}{x-scale}}{\sin t\_0}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;\tan^{-1} \left(\frac{y-scale}{x-scale} \cdot \tan t\_0\right) \cdot \frac{180}{\pi}\\
\end{array}
\end{array}
if a < 7.4000000000000004e-87Initial program 17.7%
Simplified15.5%
Taylor expanded in x-scale around 0
associate-*r/N/A
/-lowering-/.f64N/A
Simplified32.6%
Taylor expanded in angle around 0
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6429.3%
Simplified29.3%
Taylor expanded in angle around 0
Simplified28.8%
Taylor expanded in b around inf
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6445.5%
Simplified45.5%
if 7.4000000000000004e-87 < a Initial program 14.4%
Simplified11.7%
Taylor expanded in x-scale around 0
associate-*r/N/A
/-lowering-/.f64N/A
Simplified35.9%
Taylor expanded in b around 0
/-lowering-/.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6458.7%
Simplified58.7%
*-commutativeN/A
associate-/l*N/A
*-lowering-*.f64N/A
Applied egg-rr60.0%
Final simplification49.5%
a_m = (fabs.f64 a)
(FPCore (a_m b angle x-scale y-scale)
:precision binary64
(if (<= a_m 3.9e-87)
(/ (* 180.0 (atan (/ (* y-scale -180.0) (* angle (* PI x-scale))))) PI)
(*
(atan (* (/ y-scale x-scale) (tan (* 0.005555555555555556 (* angle PI)))))
(/ 180.0 PI))))a_m = fabs(a);
double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
double tmp;
if (a_m <= 3.9e-87) {
tmp = (180.0 * atan(((y_45_scale * -180.0) / (angle * (((double) M_PI) * x_45_scale))))) / ((double) M_PI);
} else {
tmp = atan(((y_45_scale / x_45_scale) * tan((0.005555555555555556 * (angle * ((double) M_PI)))))) * (180.0 / ((double) M_PI));
}
return tmp;
}
a_m = Math.abs(a);
public static double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
double tmp;
if (a_m <= 3.9e-87) {
tmp = (180.0 * Math.atan(((y_45_scale * -180.0) / (angle * (Math.PI * x_45_scale))))) / Math.PI;
} else {
tmp = Math.atan(((y_45_scale / x_45_scale) * Math.tan((0.005555555555555556 * (angle * Math.PI))))) * (180.0 / Math.PI);
}
return tmp;
}
a_m = math.fabs(a) def code(a_m, b, angle, x_45_scale, y_45_scale): tmp = 0 if a_m <= 3.9e-87: tmp = (180.0 * math.atan(((y_45_scale * -180.0) / (angle * (math.pi * x_45_scale))))) / math.pi else: tmp = math.atan(((y_45_scale / x_45_scale) * math.tan((0.005555555555555556 * (angle * math.pi))))) * (180.0 / math.pi) return tmp
a_m = abs(a) function code(a_m, b, angle, x_45_scale, y_45_scale) tmp = 0.0 if (a_m <= 3.9e-87) tmp = Float64(Float64(180.0 * atan(Float64(Float64(y_45_scale * -180.0) / Float64(angle * Float64(pi * x_45_scale))))) / pi); else tmp = Float64(atan(Float64(Float64(y_45_scale / x_45_scale) * tan(Float64(0.005555555555555556 * Float64(angle * pi))))) * Float64(180.0 / pi)); end return tmp end
a_m = abs(a); function tmp_2 = code(a_m, b, angle, x_45_scale, y_45_scale) tmp = 0.0; if (a_m <= 3.9e-87) tmp = (180.0 * atan(((y_45_scale * -180.0) / (angle * (pi * x_45_scale))))) / pi; else tmp = atan(((y_45_scale / x_45_scale) * tan((0.005555555555555556 * (angle * pi))))) * (180.0 / pi); end tmp_2 = tmp; end
a_m = N[Abs[a], $MachinePrecision] code[a$95$m_, b_, angle_, x$45$scale_, y$45$scale_] := If[LessEqual[a$95$m, 3.9e-87], N[(N[(180.0 * N[ArcTan[N[(N[(y$45$scale * -180.0), $MachinePrecision] / N[(angle * N[(Pi * x$45$scale), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], N[(N[ArcTan[N[(N[(y$45$scale / x$45$scale), $MachinePrecision] * N[Tan[N[(0.005555555555555556 * N[(angle * Pi), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * N[(180.0 / Pi), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
a_m = \left|a\right|
\\
\begin{array}{l}
\mathbf{if}\;a\_m \leq 3.9 \cdot 10^{-87}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{y-scale \cdot -180}{angle \cdot \left(\pi \cdot x-scale\right)}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;\tan^{-1} \left(\frac{y-scale}{x-scale} \cdot \tan \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right)\right) \cdot \frac{180}{\pi}\\
\end{array}
\end{array}
if a < 3.8999999999999998e-87Initial program 17.7%
Simplified15.5%
Taylor expanded in b around inf
Simplified18.3%
Taylor expanded in angle around 0
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6442.0%
Simplified42.0%
if 3.8999999999999998e-87 < a Initial program 14.4%
Simplified11.7%
Taylor expanded in x-scale around 0
associate-*r/N/A
/-lowering-/.f64N/A
Simplified35.9%
Taylor expanded in b around 0
/-lowering-/.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6458.7%
Simplified58.7%
*-commutativeN/A
associate-/l*N/A
*-lowering-*.f64N/A
Applied egg-rr60.0%
Final simplification47.0%
a_m = (fabs.f64 a)
(FPCore (a_m b angle x-scale y-scale)
:precision binary64
(if (<= a_m 1.6e-86)
(/ (* 180.0 (atan (/ (* y-scale -180.0) (* angle (* PI x-scale))))) PI)
(*
(/ 180.0 PI)
(atan (* y-scale (/ (tan (/ (* angle PI) 180.0)) x-scale))))))a_m = fabs(a);
double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
double tmp;
if (a_m <= 1.6e-86) {
tmp = (180.0 * atan(((y_45_scale * -180.0) / (angle * (((double) M_PI) * x_45_scale))))) / ((double) M_PI);
} else {
tmp = (180.0 / ((double) M_PI)) * atan((y_45_scale * (tan(((angle * ((double) M_PI)) / 180.0)) / x_45_scale)));
}
return tmp;
}
a_m = Math.abs(a);
public static double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
double tmp;
if (a_m <= 1.6e-86) {
tmp = (180.0 * Math.atan(((y_45_scale * -180.0) / (angle * (Math.PI * x_45_scale))))) / Math.PI;
} else {
tmp = (180.0 / Math.PI) * Math.atan((y_45_scale * (Math.tan(((angle * Math.PI) / 180.0)) / x_45_scale)));
}
return tmp;
}
a_m = math.fabs(a) def code(a_m, b, angle, x_45_scale, y_45_scale): tmp = 0 if a_m <= 1.6e-86: tmp = (180.0 * math.atan(((y_45_scale * -180.0) / (angle * (math.pi * x_45_scale))))) / math.pi else: tmp = (180.0 / math.pi) * math.atan((y_45_scale * (math.tan(((angle * math.pi) / 180.0)) / x_45_scale))) return tmp
a_m = abs(a) function code(a_m, b, angle, x_45_scale, y_45_scale) tmp = 0.0 if (a_m <= 1.6e-86) tmp = Float64(Float64(180.0 * atan(Float64(Float64(y_45_scale * -180.0) / Float64(angle * Float64(pi * x_45_scale))))) / pi); else tmp = Float64(Float64(180.0 / pi) * atan(Float64(y_45_scale * Float64(tan(Float64(Float64(angle * pi) / 180.0)) / x_45_scale)))); end return tmp end
a_m = abs(a); function tmp_2 = code(a_m, b, angle, x_45_scale, y_45_scale) tmp = 0.0; if (a_m <= 1.6e-86) tmp = (180.0 * atan(((y_45_scale * -180.0) / (angle * (pi * x_45_scale))))) / pi; else tmp = (180.0 / pi) * atan((y_45_scale * (tan(((angle * pi) / 180.0)) / x_45_scale))); end tmp_2 = tmp; end
a_m = N[Abs[a], $MachinePrecision] code[a$95$m_, b_, angle_, x$45$scale_, y$45$scale_] := If[LessEqual[a$95$m, 1.6e-86], N[(N[(180.0 * N[ArcTan[N[(N[(y$45$scale * -180.0), $MachinePrecision] / N[(angle * N[(Pi * x$45$scale), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(y$45$scale * N[(N[Tan[N[(N[(angle * Pi), $MachinePrecision] / 180.0), $MachinePrecision]], $MachinePrecision] / x$45$scale), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
a_m = \left|a\right|
\\
\begin{array}{l}
\mathbf{if}\;a\_m \leq 1.6 \cdot 10^{-86}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{y-scale \cdot -180}{angle \cdot \left(\pi \cdot x-scale\right)}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;\frac{180}{\pi} \cdot \tan^{-1} \left(y-scale \cdot \frac{\tan \left(\frac{angle \cdot \pi}{180}\right)}{x-scale}\right)\\
\end{array}
\end{array}
if a < 1.60000000000000003e-86Initial program 17.7%
Simplified15.5%
Taylor expanded in b around inf
Simplified18.3%
Taylor expanded in angle around 0
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6442.0%
Simplified42.0%
if 1.60000000000000003e-86 < a Initial program 14.4%
Simplified11.7%
Taylor expanded in x-scale around 0
associate-*r/N/A
/-lowering-/.f64N/A
Simplified35.9%
Taylor expanded in b around 0
/-lowering-/.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6458.7%
Simplified58.7%
associate-*r*N/A
add-sqr-sqrtN/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
PI-lowering-PI.f64N/A
sqrt-lowering-sqrt.f64N/A
PI-lowering-PI.f6460.0%
Applied egg-rr60.0%
*-commutativeN/A
associate-/l*N/A
*-lowering-*.f64N/A
Applied egg-rr58.7%
Final simplification46.7%
a_m = (fabs.f64 a)
(FPCore (a_m b angle x-scale y-scale)
:precision binary64
(if (<= a_m 3.4e-18)
(/ (* 180.0 (atan (/ (* y-scale -180.0) (* angle (* PI x-scale))))) PI)
(/
(*
180.0
(atan (* 0.005555555555555556 (* angle (/ (* y-scale PI) x-scale)))))
PI)))a_m = fabs(a);
double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
double tmp;
if (a_m <= 3.4e-18) {
tmp = (180.0 * atan(((y_45_scale * -180.0) / (angle * (((double) M_PI) * x_45_scale))))) / ((double) M_PI);
} else {
tmp = (180.0 * atan((0.005555555555555556 * (angle * ((y_45_scale * ((double) M_PI)) / x_45_scale))))) / ((double) M_PI);
}
return tmp;
}
a_m = Math.abs(a);
public static double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
double tmp;
if (a_m <= 3.4e-18) {
tmp = (180.0 * Math.atan(((y_45_scale * -180.0) / (angle * (Math.PI * x_45_scale))))) / Math.PI;
} else {
tmp = (180.0 * Math.atan((0.005555555555555556 * (angle * ((y_45_scale * Math.PI) / x_45_scale))))) / Math.PI;
}
return tmp;
}
a_m = math.fabs(a) def code(a_m, b, angle, x_45_scale, y_45_scale): tmp = 0 if a_m <= 3.4e-18: tmp = (180.0 * math.atan(((y_45_scale * -180.0) / (angle * (math.pi * x_45_scale))))) / math.pi else: tmp = (180.0 * math.atan((0.005555555555555556 * (angle * ((y_45_scale * math.pi) / x_45_scale))))) / math.pi return tmp
a_m = abs(a) function code(a_m, b, angle, x_45_scale, y_45_scale) tmp = 0.0 if (a_m <= 3.4e-18) tmp = Float64(Float64(180.0 * atan(Float64(Float64(y_45_scale * -180.0) / Float64(angle * Float64(pi * x_45_scale))))) / pi); else tmp = Float64(Float64(180.0 * atan(Float64(0.005555555555555556 * Float64(angle * Float64(Float64(y_45_scale * pi) / x_45_scale))))) / pi); end return tmp end
a_m = abs(a); function tmp_2 = code(a_m, b, angle, x_45_scale, y_45_scale) tmp = 0.0; if (a_m <= 3.4e-18) tmp = (180.0 * atan(((y_45_scale * -180.0) / (angle * (pi * x_45_scale))))) / pi; else tmp = (180.0 * atan((0.005555555555555556 * (angle * ((y_45_scale * pi) / x_45_scale))))) / pi; end tmp_2 = tmp; end
a_m = N[Abs[a], $MachinePrecision] code[a$95$m_, b_, angle_, x$45$scale_, y$45$scale_] := If[LessEqual[a$95$m, 3.4e-18], N[(N[(180.0 * N[ArcTan[N[(N[(y$45$scale * -180.0), $MachinePrecision] / N[(angle * N[(Pi * x$45$scale), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], N[(N[(180.0 * N[ArcTan[N[(0.005555555555555556 * N[(angle * N[(N[(y$45$scale * Pi), $MachinePrecision] / x$45$scale), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision]]
\begin{array}{l}
a_m = \left|a\right|
\\
\begin{array}{l}
\mathbf{if}\;a\_m \leq 3.4 \cdot 10^{-18}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{y-scale \cdot -180}{angle \cdot \left(\pi \cdot x-scale\right)}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(0.005555555555555556 \cdot \left(angle \cdot \frac{y-scale \cdot \pi}{x-scale}\right)\right)}{\pi}\\
\end{array}
\end{array}
if a < 3.40000000000000001e-18Initial program 19.2%
Simplified17.2%
Taylor expanded in b around inf
Simplified17.4%
Taylor expanded in angle around 0
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6442.2%
Simplified42.2%
if 3.40000000000000001e-18 < a Initial program 7.8%
Simplified4.2%
Taylor expanded in x-scale around 0
associate-*r/N/A
/-lowering-/.f64N/A
Simplified25.7%
Taylor expanded in b around 0
/-lowering-/.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6460.9%
Simplified60.9%
associate-*r*N/A
add-sqr-sqrtN/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
PI-lowering-PI.f64N/A
sqrt-lowering-sqrt.f64N/A
PI-lowering-PI.f6462.6%
Applied egg-rr62.6%
Taylor expanded in angle around 0
*-lowering-*.f64N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
PI-lowering-PI.f6462.5%
Simplified62.5%
Final simplification46.5%
a_m = (fabs.f64 a)
(FPCore (a_m b angle x-scale y-scale)
:precision binary64
(if (<= a_m 2.5e-18)
(* 180.0 (/ (atan (/ (* y-scale -180.0) (* angle (* PI x-scale)))) PI))
(/
(*
180.0
(atan (* 0.005555555555555556 (* angle (/ (* y-scale PI) x-scale)))))
PI)))a_m = fabs(a);
double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
double tmp;
if (a_m <= 2.5e-18) {
tmp = 180.0 * (atan(((y_45_scale * -180.0) / (angle * (((double) M_PI) * x_45_scale)))) / ((double) M_PI));
} else {
tmp = (180.0 * atan((0.005555555555555556 * (angle * ((y_45_scale * ((double) M_PI)) / x_45_scale))))) / ((double) M_PI);
}
return tmp;
}
a_m = Math.abs(a);
public static double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
double tmp;
if (a_m <= 2.5e-18) {
tmp = 180.0 * (Math.atan(((y_45_scale * -180.0) / (angle * (Math.PI * x_45_scale)))) / Math.PI);
} else {
tmp = (180.0 * Math.atan((0.005555555555555556 * (angle * ((y_45_scale * Math.PI) / x_45_scale))))) / Math.PI;
}
return tmp;
}
a_m = math.fabs(a) def code(a_m, b, angle, x_45_scale, y_45_scale): tmp = 0 if a_m <= 2.5e-18: tmp = 180.0 * (math.atan(((y_45_scale * -180.0) / (angle * (math.pi * x_45_scale)))) / math.pi) else: tmp = (180.0 * math.atan((0.005555555555555556 * (angle * ((y_45_scale * math.pi) / x_45_scale))))) / math.pi return tmp
a_m = abs(a) function code(a_m, b, angle, x_45_scale, y_45_scale) tmp = 0.0 if (a_m <= 2.5e-18) tmp = Float64(180.0 * Float64(atan(Float64(Float64(y_45_scale * -180.0) / Float64(angle * Float64(pi * x_45_scale)))) / pi)); else tmp = Float64(Float64(180.0 * atan(Float64(0.005555555555555556 * Float64(angle * Float64(Float64(y_45_scale * pi) / x_45_scale))))) / pi); end return tmp end
a_m = abs(a); function tmp_2 = code(a_m, b, angle, x_45_scale, y_45_scale) tmp = 0.0; if (a_m <= 2.5e-18) tmp = 180.0 * (atan(((y_45_scale * -180.0) / (angle * (pi * x_45_scale)))) / pi); else tmp = (180.0 * atan((0.005555555555555556 * (angle * ((y_45_scale * pi) / x_45_scale))))) / pi; end tmp_2 = tmp; end
a_m = N[Abs[a], $MachinePrecision] code[a$95$m_, b_, angle_, x$45$scale_, y$45$scale_] := If[LessEqual[a$95$m, 2.5e-18], N[(180.0 * N[(N[ArcTan[N[(N[(y$45$scale * -180.0), $MachinePrecision] / N[(angle * N[(Pi * x$45$scale), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(N[(180.0 * N[ArcTan[N[(0.005555555555555556 * N[(angle * N[(N[(y$45$scale * Pi), $MachinePrecision] / x$45$scale), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision]]
\begin{array}{l}
a_m = \left|a\right|
\\
\begin{array}{l}
\mathbf{if}\;a\_m \leq 2.5 \cdot 10^{-18}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{y-scale \cdot -180}{angle \cdot \left(\pi \cdot x-scale\right)}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(0.005555555555555556 \cdot \left(angle \cdot \frac{y-scale \cdot \pi}{x-scale}\right)\right)}{\pi}\\
\end{array}
\end{array}
if a < 2.50000000000000018e-18Initial program 19.2%
Taylor expanded in angle around 0
associate-*r/N/A
/-lowering-/.f64N/A
Simplified14.0%
Taylor expanded in a around 0
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6442.1%
Simplified42.1%
if 2.50000000000000018e-18 < a Initial program 7.8%
Simplified4.2%
Taylor expanded in x-scale around 0
associate-*r/N/A
/-lowering-/.f64N/A
Simplified25.7%
Taylor expanded in b around 0
/-lowering-/.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6460.9%
Simplified60.9%
associate-*r*N/A
add-sqr-sqrtN/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
PI-lowering-PI.f64N/A
sqrt-lowering-sqrt.f64N/A
PI-lowering-PI.f6462.6%
Applied egg-rr62.6%
Taylor expanded in angle around 0
*-lowering-*.f64N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
PI-lowering-PI.f6462.5%
Simplified62.5%
Final simplification46.4%
a_m = (fabs.f64 a) (FPCore (a_m b angle x-scale y-scale) :precision binary64 (* 180.0 (/ (atan (/ (* y-scale -180.0) (* angle (* PI x-scale)))) PI)))
a_m = fabs(a);
double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
return 180.0 * (atan(((y_45_scale * -180.0) / (angle * (((double) M_PI) * x_45_scale)))) / ((double) M_PI));
}
a_m = Math.abs(a);
public static double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
return 180.0 * (Math.atan(((y_45_scale * -180.0) / (angle * (Math.PI * x_45_scale)))) / Math.PI);
}
a_m = math.fabs(a) def code(a_m, b, angle, x_45_scale, y_45_scale): return 180.0 * (math.atan(((y_45_scale * -180.0) / (angle * (math.pi * x_45_scale)))) / math.pi)
a_m = abs(a) function code(a_m, b, angle, x_45_scale, y_45_scale) return Float64(180.0 * Float64(atan(Float64(Float64(y_45_scale * -180.0) / Float64(angle * Float64(pi * x_45_scale)))) / pi)) end
a_m = abs(a); function tmp = code(a_m, b, angle, x_45_scale, y_45_scale) tmp = 180.0 * (atan(((y_45_scale * -180.0) / (angle * (pi * x_45_scale)))) / pi); end
a_m = N[Abs[a], $MachinePrecision] code[a$95$m_, b_, angle_, x$45$scale_, y$45$scale_] := N[(180.0 * N[(N[ArcTan[N[(N[(y$45$scale * -180.0), $MachinePrecision] / N[(angle * N[(Pi * x$45$scale), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
a_m = \left|a\right|
\\
180 \cdot \frac{\tan^{-1} \left(\frac{y-scale \cdot -180}{angle \cdot \left(\pi \cdot x-scale\right)}\right)}{\pi}
\end{array}
Initial program 16.8%
Taylor expanded in angle around 0
associate-*r/N/A
/-lowering-/.f64N/A
Simplified12.4%
Taylor expanded in a around 0
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6437.4%
Simplified37.4%
Final simplification37.4%
a_m = (fabs.f64 a) (FPCore (a_m b angle x-scale y-scale) :precision binary64 (* 180.0 (/ (atan (* (/ x-scale angle) (/ -180.0 (* y-scale PI)))) PI)))
a_m = fabs(a);
double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
return 180.0 * (atan(((x_45_scale / angle) * (-180.0 / (y_45_scale * ((double) M_PI))))) / ((double) M_PI));
}
a_m = Math.abs(a);
public static double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
return 180.0 * (Math.atan(((x_45_scale / angle) * (-180.0 / (y_45_scale * Math.PI)))) / Math.PI);
}
a_m = math.fabs(a) def code(a_m, b, angle, x_45_scale, y_45_scale): return 180.0 * (math.atan(((x_45_scale / angle) * (-180.0 / (y_45_scale * math.pi)))) / math.pi)
a_m = abs(a) function code(a_m, b, angle, x_45_scale, y_45_scale) return Float64(180.0 * Float64(atan(Float64(Float64(x_45_scale / angle) * Float64(-180.0 / Float64(y_45_scale * pi)))) / pi)) end
a_m = abs(a); function tmp = code(a_m, b, angle, x_45_scale, y_45_scale) tmp = 180.0 * (atan(((x_45_scale / angle) * (-180.0 / (y_45_scale * pi)))) / pi); end
a_m = N[Abs[a], $MachinePrecision] code[a$95$m_, b_, angle_, x$45$scale_, y$45$scale_] := N[(180.0 * N[(N[ArcTan[N[(N[(x$45$scale / angle), $MachinePrecision] * N[(-180.0 / N[(y$45$scale * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
a_m = \left|a\right|
\\
180 \cdot \frac{\tan^{-1} \left(\frac{x-scale}{angle} \cdot \frac{-180}{y-scale \cdot \pi}\right)}{\pi}
\end{array}
Initial program 16.8%
Taylor expanded in angle around 0
associate-*r/N/A
/-lowering-/.f64N/A
Simplified12.4%
Taylor expanded in a around inf
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6411.4%
Simplified11.4%
*-commutativeN/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6411.5%
Applied egg-rr11.5%
a_m = (fabs.f64 a) (FPCore (a_m b angle x-scale y-scale) :precision binary64 (* 180.0 (/ (atan (* x-scale (/ -180.0 (* angle (* y-scale PI))))) PI)))
a_m = fabs(a);
double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
return 180.0 * (atan((x_45_scale * (-180.0 / (angle * (y_45_scale * ((double) M_PI)))))) / ((double) M_PI));
}
a_m = Math.abs(a);
public static double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
return 180.0 * (Math.atan((x_45_scale * (-180.0 / (angle * (y_45_scale * Math.PI))))) / Math.PI);
}
a_m = math.fabs(a) def code(a_m, b, angle, x_45_scale, y_45_scale): return 180.0 * (math.atan((x_45_scale * (-180.0 / (angle * (y_45_scale * math.pi))))) / math.pi)
a_m = abs(a) function code(a_m, b, angle, x_45_scale, y_45_scale) return Float64(180.0 * Float64(atan(Float64(x_45_scale * Float64(-180.0 / Float64(angle * Float64(y_45_scale * pi))))) / pi)) end
a_m = abs(a); function tmp = code(a_m, b, angle, x_45_scale, y_45_scale) tmp = 180.0 * (atan((x_45_scale * (-180.0 / (angle * (y_45_scale * pi))))) / pi); end
a_m = N[Abs[a], $MachinePrecision] code[a$95$m_, b_, angle_, x$45$scale_, y$45$scale_] := N[(180.0 * N[(N[ArcTan[N[(x$45$scale * N[(-180.0 / N[(angle * N[(y$45$scale * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
a_m = \left|a\right|
\\
180 \cdot \frac{\tan^{-1} \left(x-scale \cdot \frac{-180}{angle \cdot \left(y-scale \cdot \pi\right)}\right)}{\pi}
\end{array}
Initial program 16.8%
Taylor expanded in angle around 0
associate-*r/N/A
/-lowering-/.f64N/A
Simplified12.4%
Taylor expanded in a around inf
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6411.4%
Simplified11.4%
*-commutativeN/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6411.4%
Applied egg-rr11.4%
herbie shell --seed 2024164
(FPCore (a b angle x-scale y-scale)
:name "raw-angle from scale-rotated-ellipse"
:precision binary64
(* 180.0 (/ (atan (/ (- (- (/ (/ (+ (pow (* a (cos (* (/ angle 180.0) PI))) 2.0) (pow (* b (sin (* (/ angle 180.0) PI))) 2.0)) y-scale) y-scale) (/ (/ (+ (pow (* a (sin (* (/ angle 180.0) PI))) 2.0) (pow (* b (cos (* (/ angle 180.0) PI))) 2.0)) x-scale) x-scale)) (sqrt (+ (pow (- (/ (/ (+ (pow (* a (sin (* (/ angle 180.0) PI))) 2.0) (pow (* b (cos (* (/ angle 180.0) PI))) 2.0)) x-scale) x-scale) (/ (/ (+ (pow (* a (cos (* (/ angle 180.0) PI))) 2.0) (pow (* b (sin (* (/ angle 180.0) PI))) 2.0)) y-scale) y-scale)) 2.0) (pow (/ (/ (* (* (* 2.0 (- (pow b 2.0) (pow a 2.0))) (sin (* (/ angle 180.0) PI))) (cos (* (/ angle 180.0) PI))) x-scale) y-scale) 2.0)))) (/ (/ (* (* (* 2.0 (- (pow b 2.0) (pow a 2.0))) (sin (* (/ angle 180.0) PI))) (cos (* (/ angle 180.0) PI))) x-scale) y-scale))) PI)))