
(FPCore (a b angle x-scale y-scale)
:precision binary64
(let* ((t_0 (* (/ angle 180.0) PI))
(t_1 (sin t_0))
(t_2 (cos t_0))
(t_3
(/ (/ (+ (pow (* a t_2) 2.0) (pow (* b t_1) 2.0)) y-scale) y-scale))
(t_4
(/ (/ (+ (pow (* a t_1) 2.0) (pow (* b t_2) 2.0)) x-scale) x-scale))
(t_5 (* (* b a) (* b (- a))))
(t_6 (/ (* 4.0 t_5) (pow (* x-scale y-scale) 2.0))))
(/
(-
(sqrt
(*
(* (* 2.0 t_6) t_5)
(+
(+ t_4 t_3)
(sqrt
(+
(pow (- t_4 t_3) 2.0)
(pow
(/
(/ (* (* (* 2.0 (- (pow b 2.0) (pow a 2.0))) t_1) t_2) x-scale)
y-scale)
2.0)))))))
t_6)))
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 = sin(t_0);
double t_2 = cos(t_0);
double t_3 = ((pow((a * t_2), 2.0) + pow((b * t_1), 2.0)) / y_45_scale) / y_45_scale;
double t_4 = ((pow((a * t_1), 2.0) + pow((b * t_2), 2.0)) / x_45_scale) / x_45_scale;
double t_5 = (b * a) * (b * -a);
double t_6 = (4.0 * t_5) / pow((x_45_scale * y_45_scale), 2.0);
return -sqrt((((2.0 * t_6) * t_5) * ((t_4 + t_3) + sqrt((pow((t_4 - t_3), 2.0) + pow((((((2.0 * (pow(b, 2.0) - pow(a, 2.0))) * t_1) * t_2) / x_45_scale) / y_45_scale), 2.0)))))) / t_6;
}
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.sin(t_0);
double t_2 = Math.cos(t_0);
double t_3 = ((Math.pow((a * t_2), 2.0) + Math.pow((b * t_1), 2.0)) / y_45_scale) / y_45_scale;
double t_4 = ((Math.pow((a * t_1), 2.0) + Math.pow((b * t_2), 2.0)) / x_45_scale) / x_45_scale;
double t_5 = (b * a) * (b * -a);
double t_6 = (4.0 * t_5) / Math.pow((x_45_scale * y_45_scale), 2.0);
return -Math.sqrt((((2.0 * t_6) * t_5) * ((t_4 + t_3) + Math.sqrt((Math.pow((t_4 - t_3), 2.0) + Math.pow((((((2.0 * (Math.pow(b, 2.0) - Math.pow(a, 2.0))) * t_1) * t_2) / x_45_scale) / y_45_scale), 2.0)))))) / t_6;
}
def code(a, b, angle, x_45_scale, y_45_scale): t_0 = (angle / 180.0) * math.pi t_1 = math.sin(t_0) t_2 = math.cos(t_0) t_3 = ((math.pow((a * t_2), 2.0) + math.pow((b * t_1), 2.0)) / y_45_scale) / y_45_scale t_4 = ((math.pow((a * t_1), 2.0) + math.pow((b * t_2), 2.0)) / x_45_scale) / x_45_scale t_5 = (b * a) * (b * -a) t_6 = (4.0 * t_5) / math.pow((x_45_scale * y_45_scale), 2.0) return -math.sqrt((((2.0 * t_6) * t_5) * ((t_4 + t_3) + math.sqrt((math.pow((t_4 - t_3), 2.0) + math.pow((((((2.0 * (math.pow(b, 2.0) - math.pow(a, 2.0))) * t_1) * t_2) / x_45_scale) / y_45_scale), 2.0)))))) / t_6
function code(a, b, angle, x_45_scale, y_45_scale) t_0 = Float64(Float64(angle / 180.0) * pi) t_1 = sin(t_0) t_2 = cos(t_0) t_3 = Float64(Float64(Float64((Float64(a * t_2) ^ 2.0) + (Float64(b * t_1) ^ 2.0)) / y_45_scale) / y_45_scale) t_4 = Float64(Float64(Float64((Float64(a * t_1) ^ 2.0) + (Float64(b * t_2) ^ 2.0)) / x_45_scale) / x_45_scale) t_5 = Float64(Float64(b * a) * Float64(b * Float64(-a))) t_6 = Float64(Float64(4.0 * t_5) / (Float64(x_45_scale * y_45_scale) ^ 2.0)) return Float64(Float64(-sqrt(Float64(Float64(Float64(2.0 * t_6) * t_5) * Float64(Float64(t_4 + t_3) + sqrt(Float64((Float64(t_4 - t_3) ^ 2.0) + (Float64(Float64(Float64(Float64(Float64(2.0 * Float64((b ^ 2.0) - (a ^ 2.0))) * t_1) * t_2) / x_45_scale) / y_45_scale) ^ 2.0))))))) / t_6) end
function tmp = code(a, b, angle, x_45_scale, y_45_scale) t_0 = (angle / 180.0) * pi; t_1 = sin(t_0); t_2 = cos(t_0); t_3 = ((((a * t_2) ^ 2.0) + ((b * t_1) ^ 2.0)) / y_45_scale) / y_45_scale; t_4 = ((((a * t_1) ^ 2.0) + ((b * t_2) ^ 2.0)) / x_45_scale) / x_45_scale; t_5 = (b * a) * (b * -a); t_6 = (4.0 * t_5) / ((x_45_scale * y_45_scale) ^ 2.0); tmp = -sqrt((((2.0 * t_6) * t_5) * ((t_4 + t_3) + sqrt((((t_4 - t_3) ^ 2.0) + ((((((2.0 * ((b ^ 2.0) - (a ^ 2.0))) * t_1) * t_2) / x_45_scale) / y_45_scale) ^ 2.0)))))) / t_6; 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[Sin[t$95$0], $MachinePrecision]}, Block[{t$95$2 = N[Cos[t$95$0], $MachinePrecision]}, Block[{t$95$3 = 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] / y$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] / x$45$scale), $MachinePrecision] / x$45$scale), $MachinePrecision]}, Block[{t$95$5 = N[(N[(b * a), $MachinePrecision] * N[(b * (-a)), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$6 = N[(N[(4.0 * t$95$5), $MachinePrecision] / N[Power[N[(x$45$scale * y$45$scale), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]}, N[((-N[Sqrt[N[(N[(N[(2.0 * t$95$6), $MachinePrecision] * t$95$5), $MachinePrecision] * N[(N[(t$95$4 + t$95$3), $MachinePrecision] + N[Sqrt[N[(N[Power[N[(t$95$4 - t$95$3), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[(N[(N[(N[(N[(2.0 * N[(N[Power[b, 2.0], $MachinePrecision] - N[Power[a, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * t$95$1), $MachinePrecision] * t$95$2), $MachinePrecision] / x$45$scale), $MachinePrecision] / y$45$scale), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]) / t$95$6), $MachinePrecision]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{angle}{180} \cdot \pi\\
t_1 := \sin t\_0\\
t_2 := \cos t\_0\\
t_3 := \frac{\frac{{\left(a \cdot t\_2\right)}^{2} + {\left(b \cdot t\_1\right)}^{2}}{y-scale}}{y-scale}\\
t_4 := \frac{\frac{{\left(a \cdot t\_1\right)}^{2} + {\left(b \cdot t\_2\right)}^{2}}{x-scale}}{x-scale}\\
t_5 := \left(b \cdot a\right) \cdot \left(b \cdot \left(-a\right)\right)\\
t_6 := \frac{4 \cdot t\_5}{{\left(x-scale \cdot y-scale\right)}^{2}}\\
\frac{-\sqrt{\left(\left(2 \cdot t\_6\right) \cdot t\_5\right) \cdot \left(\left(t\_4 + t\_3\right) + \sqrt{{\left(t\_4 - t\_3\right)}^{2} + {\left(\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot t\_1\right) \cdot t\_2}{x-scale}}{y-scale}\right)}^{2}}\right)}}{t\_6}
\end{array}
\end{array}
Herbie found 17 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (a b angle x-scale y-scale)
:precision binary64
(let* ((t_0 (* (/ angle 180.0) PI))
(t_1 (sin t_0))
(t_2 (cos t_0))
(t_3
(/ (/ (+ (pow (* a t_2) 2.0) (pow (* b t_1) 2.0)) y-scale) y-scale))
(t_4
(/ (/ (+ (pow (* a t_1) 2.0) (pow (* b t_2) 2.0)) x-scale) x-scale))
(t_5 (* (* b a) (* b (- a))))
(t_6 (/ (* 4.0 t_5) (pow (* x-scale y-scale) 2.0))))
(/
(-
(sqrt
(*
(* (* 2.0 t_6) t_5)
(+
(+ t_4 t_3)
(sqrt
(+
(pow (- t_4 t_3) 2.0)
(pow
(/
(/ (* (* (* 2.0 (- (pow b 2.0) (pow a 2.0))) t_1) t_2) x-scale)
y-scale)
2.0)))))))
t_6)))
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 = sin(t_0);
double t_2 = cos(t_0);
double t_3 = ((pow((a * t_2), 2.0) + pow((b * t_1), 2.0)) / y_45_scale) / y_45_scale;
double t_4 = ((pow((a * t_1), 2.0) + pow((b * t_2), 2.0)) / x_45_scale) / x_45_scale;
double t_5 = (b * a) * (b * -a);
double t_6 = (4.0 * t_5) / pow((x_45_scale * y_45_scale), 2.0);
return -sqrt((((2.0 * t_6) * t_5) * ((t_4 + t_3) + sqrt((pow((t_4 - t_3), 2.0) + pow((((((2.0 * (pow(b, 2.0) - pow(a, 2.0))) * t_1) * t_2) / x_45_scale) / y_45_scale), 2.0)))))) / t_6;
}
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.sin(t_0);
double t_2 = Math.cos(t_0);
double t_3 = ((Math.pow((a * t_2), 2.0) + Math.pow((b * t_1), 2.0)) / y_45_scale) / y_45_scale;
double t_4 = ((Math.pow((a * t_1), 2.0) + Math.pow((b * t_2), 2.0)) / x_45_scale) / x_45_scale;
double t_5 = (b * a) * (b * -a);
double t_6 = (4.0 * t_5) / Math.pow((x_45_scale * y_45_scale), 2.0);
return -Math.sqrt((((2.0 * t_6) * t_5) * ((t_4 + t_3) + Math.sqrt((Math.pow((t_4 - t_3), 2.0) + Math.pow((((((2.0 * (Math.pow(b, 2.0) - Math.pow(a, 2.0))) * t_1) * t_2) / x_45_scale) / y_45_scale), 2.0)))))) / t_6;
}
def code(a, b, angle, x_45_scale, y_45_scale): t_0 = (angle / 180.0) * math.pi t_1 = math.sin(t_0) t_2 = math.cos(t_0) t_3 = ((math.pow((a * t_2), 2.0) + math.pow((b * t_1), 2.0)) / y_45_scale) / y_45_scale t_4 = ((math.pow((a * t_1), 2.0) + math.pow((b * t_2), 2.0)) / x_45_scale) / x_45_scale t_5 = (b * a) * (b * -a) t_6 = (4.0 * t_5) / math.pow((x_45_scale * y_45_scale), 2.0) return -math.sqrt((((2.0 * t_6) * t_5) * ((t_4 + t_3) + math.sqrt((math.pow((t_4 - t_3), 2.0) + math.pow((((((2.0 * (math.pow(b, 2.0) - math.pow(a, 2.0))) * t_1) * t_2) / x_45_scale) / y_45_scale), 2.0)))))) / t_6
function code(a, b, angle, x_45_scale, y_45_scale) t_0 = Float64(Float64(angle / 180.0) * pi) t_1 = sin(t_0) t_2 = cos(t_0) t_3 = Float64(Float64(Float64((Float64(a * t_2) ^ 2.0) + (Float64(b * t_1) ^ 2.0)) / y_45_scale) / y_45_scale) t_4 = Float64(Float64(Float64((Float64(a * t_1) ^ 2.0) + (Float64(b * t_2) ^ 2.0)) / x_45_scale) / x_45_scale) t_5 = Float64(Float64(b * a) * Float64(b * Float64(-a))) t_6 = Float64(Float64(4.0 * t_5) / (Float64(x_45_scale * y_45_scale) ^ 2.0)) return Float64(Float64(-sqrt(Float64(Float64(Float64(2.0 * t_6) * t_5) * Float64(Float64(t_4 + t_3) + sqrt(Float64((Float64(t_4 - t_3) ^ 2.0) + (Float64(Float64(Float64(Float64(Float64(2.0 * Float64((b ^ 2.0) - (a ^ 2.0))) * t_1) * t_2) / x_45_scale) / y_45_scale) ^ 2.0))))))) / t_6) end
function tmp = code(a, b, angle, x_45_scale, y_45_scale) t_0 = (angle / 180.0) * pi; t_1 = sin(t_0); t_2 = cos(t_0); t_3 = ((((a * t_2) ^ 2.0) + ((b * t_1) ^ 2.0)) / y_45_scale) / y_45_scale; t_4 = ((((a * t_1) ^ 2.0) + ((b * t_2) ^ 2.0)) / x_45_scale) / x_45_scale; t_5 = (b * a) * (b * -a); t_6 = (4.0 * t_5) / ((x_45_scale * y_45_scale) ^ 2.0); tmp = -sqrt((((2.0 * t_6) * t_5) * ((t_4 + t_3) + sqrt((((t_4 - t_3) ^ 2.0) + ((((((2.0 * ((b ^ 2.0) - (a ^ 2.0))) * t_1) * t_2) / x_45_scale) / y_45_scale) ^ 2.0)))))) / t_6; 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[Sin[t$95$0], $MachinePrecision]}, Block[{t$95$2 = N[Cos[t$95$0], $MachinePrecision]}, Block[{t$95$3 = 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] / y$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] / x$45$scale), $MachinePrecision] / x$45$scale), $MachinePrecision]}, Block[{t$95$5 = N[(N[(b * a), $MachinePrecision] * N[(b * (-a)), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$6 = N[(N[(4.0 * t$95$5), $MachinePrecision] / N[Power[N[(x$45$scale * y$45$scale), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]}, N[((-N[Sqrt[N[(N[(N[(2.0 * t$95$6), $MachinePrecision] * t$95$5), $MachinePrecision] * N[(N[(t$95$4 + t$95$3), $MachinePrecision] + N[Sqrt[N[(N[Power[N[(t$95$4 - t$95$3), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[(N[(N[(N[(N[(2.0 * N[(N[Power[b, 2.0], $MachinePrecision] - N[Power[a, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * t$95$1), $MachinePrecision] * t$95$2), $MachinePrecision] / x$45$scale), $MachinePrecision] / y$45$scale), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]) / t$95$6), $MachinePrecision]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{angle}{180} \cdot \pi\\
t_1 := \sin t\_0\\
t_2 := \cos t\_0\\
t_3 := \frac{\frac{{\left(a \cdot t\_2\right)}^{2} + {\left(b \cdot t\_1\right)}^{2}}{y-scale}}{y-scale}\\
t_4 := \frac{\frac{{\left(a \cdot t\_1\right)}^{2} + {\left(b \cdot t\_2\right)}^{2}}{x-scale}}{x-scale}\\
t_5 := \left(b \cdot a\right) \cdot \left(b \cdot \left(-a\right)\right)\\
t_6 := \frac{4 \cdot t\_5}{{\left(x-scale \cdot y-scale\right)}^{2}}\\
\frac{-\sqrt{\left(\left(2 \cdot t\_6\right) \cdot t\_5\right) \cdot \left(\left(t\_4 + t\_3\right) + \sqrt{{\left(t\_4 - t\_3\right)}^{2} + {\left(\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot t\_1\right) \cdot t\_2}{x-scale}}{y-scale}\right)}^{2}}\right)}}{t\_6}
\end{array}
\end{array}
x-scale_m = (fabs.f64 x-scale)
(FPCore (a b angle x-scale_m y-scale)
:precision binary64
(let* ((t_0 (* (- a) b))
(t_1 (* (* a b) 4.0))
(t_2 (* (/ t_1 (* y-scale x-scale_m)) (/ t_0 (* y-scale x-scale_m))))
(t_3
(*
0.5
(sin
(+ (- (* (* (+ PI PI) 0.005555555555555556) angle)) (/ PI 2.0)))))
(t_4 (- 0.5 t_3))
(t_5 (+ 0.5 t_3))
(t_6 (* (/ angle 180.0) PI))
(t_7 (cos t_6))
(t_8 (sin t_6))
(t_9 (cos (* (* 2.0 PI) (* 0.005555555555555556 angle))))
(t_10
(/
(fma (* (- 0.5 (* t_9 0.5)) b) b (* (* (fma t_9 0.5 0.5) a) a))
(* y-scale y-scale))))
(if (<= x-scale_m 1e+85)
(/
(-
(sqrt
(*
(* (* 2.0 t_2) (* (* b a) (* b (- a))))
(+
(+
(/
(/ (+ (pow (* a t_8) 2.0) (pow (* b t_7) 2.0)) x-scale_m)
x-scale_m)
(/ (/ (+ (pow (* a t_7) 2.0) (pow (* b t_8) 2.0)) y-scale) y-scale))
(hypot
(/
(*
(* (+ b a) (- b a))
(sin (* 2.0 (* PI (* 0.005555555555555556 angle)))))
(* y-scale x-scale_m))
(-
(/ (fma t_4 (* b b) (* t_5 (* a a))) (* y-scale y-scale))
(/ (fma t_4 (* a a) (* t_5 (* b b))) (* x-scale_m x-scale_m))))))))
t_2)
(/
(-
(/
(/
(sqrt (* 8.0 (* (pow (* a b) 4.0) (+ (fabs t_10) t_10))))
(fabs y-scale))
x-scale_m))
(* (/ t_0 (* (* (* y-scale x-scale_m) x-scale_m) y-scale)) t_1)))))x-scale_m = fabs(x_45_scale);
double code(double a, double b, double angle, double x_45_scale_m, double y_45_scale) {
double t_0 = -a * b;
double t_1 = (a * b) * 4.0;
double t_2 = (t_1 / (y_45_scale * x_45_scale_m)) * (t_0 / (y_45_scale * x_45_scale_m));
double t_3 = 0.5 * sin((-(((((double) M_PI) + ((double) M_PI)) * 0.005555555555555556) * angle) + (((double) M_PI) / 2.0)));
double t_4 = 0.5 - t_3;
double t_5 = 0.5 + t_3;
double t_6 = (angle / 180.0) * ((double) M_PI);
double t_7 = cos(t_6);
double t_8 = sin(t_6);
double t_9 = cos(((2.0 * ((double) M_PI)) * (0.005555555555555556 * angle)));
double t_10 = fma(((0.5 - (t_9 * 0.5)) * b), b, ((fma(t_9, 0.5, 0.5) * a) * a)) / (y_45_scale * y_45_scale);
double tmp;
if (x_45_scale_m <= 1e+85) {
tmp = -sqrt((((2.0 * t_2) * ((b * a) * (b * -a))) * (((((pow((a * t_8), 2.0) + pow((b * t_7), 2.0)) / x_45_scale_m) / x_45_scale_m) + (((pow((a * t_7), 2.0) + pow((b * t_8), 2.0)) / y_45_scale) / y_45_scale)) + hypot(((((b + a) * (b - a)) * sin((2.0 * (((double) M_PI) * (0.005555555555555556 * angle))))) / (y_45_scale * x_45_scale_m)), ((fma(t_4, (b * b), (t_5 * (a * a))) / (y_45_scale * y_45_scale)) - (fma(t_4, (a * a), (t_5 * (b * b))) / (x_45_scale_m * x_45_scale_m))))))) / t_2;
} else {
tmp = -((sqrt((8.0 * (pow((a * b), 4.0) * (fabs(t_10) + t_10)))) / fabs(y_45_scale)) / x_45_scale_m) / ((t_0 / (((y_45_scale * x_45_scale_m) * x_45_scale_m) * y_45_scale)) * t_1);
}
return tmp;
}
x-scale_m = abs(x_45_scale) function code(a, b, angle, x_45_scale_m, y_45_scale) t_0 = Float64(Float64(-a) * b) t_1 = Float64(Float64(a * b) * 4.0) t_2 = Float64(Float64(t_1 / Float64(y_45_scale * x_45_scale_m)) * Float64(t_0 / Float64(y_45_scale * x_45_scale_m))) t_3 = Float64(0.5 * sin(Float64(Float64(-Float64(Float64(Float64(pi + pi) * 0.005555555555555556) * angle)) + Float64(pi / 2.0)))) t_4 = Float64(0.5 - t_3) t_5 = Float64(0.5 + t_3) t_6 = Float64(Float64(angle / 180.0) * pi) t_7 = cos(t_6) t_8 = sin(t_6) t_9 = cos(Float64(Float64(2.0 * pi) * Float64(0.005555555555555556 * angle))) t_10 = Float64(fma(Float64(Float64(0.5 - Float64(t_9 * 0.5)) * b), b, Float64(Float64(fma(t_9, 0.5, 0.5) * a) * a)) / Float64(y_45_scale * y_45_scale)) tmp = 0.0 if (x_45_scale_m <= 1e+85) tmp = Float64(Float64(-sqrt(Float64(Float64(Float64(2.0 * t_2) * Float64(Float64(b * a) * Float64(b * Float64(-a)))) * Float64(Float64(Float64(Float64(Float64((Float64(a * t_8) ^ 2.0) + (Float64(b * t_7) ^ 2.0)) / x_45_scale_m) / x_45_scale_m) + Float64(Float64(Float64((Float64(a * t_7) ^ 2.0) + (Float64(b * t_8) ^ 2.0)) / y_45_scale) / y_45_scale)) + hypot(Float64(Float64(Float64(Float64(b + a) * Float64(b - a)) * sin(Float64(2.0 * Float64(pi * Float64(0.005555555555555556 * angle))))) / Float64(y_45_scale * x_45_scale_m)), Float64(Float64(fma(t_4, Float64(b * b), Float64(t_5 * Float64(a * a))) / Float64(y_45_scale * y_45_scale)) - Float64(fma(t_4, Float64(a * a), Float64(t_5 * Float64(b * b))) / Float64(x_45_scale_m * x_45_scale_m)))))))) / t_2); else tmp = Float64(Float64(-Float64(Float64(sqrt(Float64(8.0 * Float64((Float64(a * b) ^ 4.0) * Float64(abs(t_10) + t_10)))) / abs(y_45_scale)) / x_45_scale_m)) / Float64(Float64(t_0 / Float64(Float64(Float64(y_45_scale * x_45_scale_m) * x_45_scale_m) * y_45_scale)) * t_1)); end return tmp end
x-scale_m = N[Abs[x$45$scale], $MachinePrecision]
code[a_, b_, angle_, x$45$scale$95$m_, y$45$scale_] := Block[{t$95$0 = N[((-a) * b), $MachinePrecision]}, Block[{t$95$1 = N[(N[(a * b), $MachinePrecision] * 4.0), $MachinePrecision]}, Block[{t$95$2 = N[(N[(t$95$1 / N[(y$45$scale * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision] * N[(t$95$0 / N[(y$45$scale * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(0.5 * N[Sin[N[((-N[(N[(N[(Pi + Pi), $MachinePrecision] * 0.005555555555555556), $MachinePrecision] * angle), $MachinePrecision]) + N[(Pi / 2.0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[(0.5 - t$95$3), $MachinePrecision]}, Block[{t$95$5 = N[(0.5 + t$95$3), $MachinePrecision]}, Block[{t$95$6 = N[(N[(angle / 180.0), $MachinePrecision] * Pi), $MachinePrecision]}, Block[{t$95$7 = N[Cos[t$95$6], $MachinePrecision]}, Block[{t$95$8 = N[Sin[t$95$6], $MachinePrecision]}, Block[{t$95$9 = N[Cos[N[(N[(2.0 * Pi), $MachinePrecision] * N[(0.005555555555555556 * angle), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$10 = N[(N[(N[(N[(0.5 - N[(t$95$9 * 0.5), $MachinePrecision]), $MachinePrecision] * b), $MachinePrecision] * b + N[(N[(N[(t$95$9 * 0.5 + 0.5), $MachinePrecision] * a), $MachinePrecision] * a), $MachinePrecision]), $MachinePrecision] / N[(y$45$scale * y$45$scale), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x$45$scale$95$m, 1e+85], N[((-N[Sqrt[N[(N[(N[(2.0 * t$95$2), $MachinePrecision] * N[(N[(b * a), $MachinePrecision] * N[(b * (-a)), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(N[(N[(N[(N[Power[N[(a * t$95$8), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[(b * t$95$7), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / x$45$scale$95$m), $MachinePrecision] / x$45$scale$95$m), $MachinePrecision] + N[(N[(N[(N[Power[N[(a * t$95$7), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[(b * t$95$8), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / y$45$scale), $MachinePrecision] / y$45$scale), $MachinePrecision]), $MachinePrecision] + N[Sqrt[N[(N[(N[(N[(b + a), $MachinePrecision] * N[(b - a), $MachinePrecision]), $MachinePrecision] * N[Sin[N[(2.0 * N[(Pi * N[(0.005555555555555556 * angle), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / N[(y$45$scale * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision] ^ 2 + N[(N[(N[(t$95$4 * N[(b * b), $MachinePrecision] + N[(t$95$5 * N[(a * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(y$45$scale * y$45$scale), $MachinePrecision]), $MachinePrecision] - N[(N[(t$95$4 * N[(a * a), $MachinePrecision] + N[(t$95$5 * N[(b * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(x$45$scale$95$m * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] ^ 2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]) / t$95$2), $MachinePrecision], N[((-N[(N[(N[Sqrt[N[(8.0 * N[(N[Power[N[(a * b), $MachinePrecision], 4.0], $MachinePrecision] * N[(N[Abs[t$95$10], $MachinePrecision] + t$95$10), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / N[Abs[y$45$scale], $MachinePrecision]), $MachinePrecision] / x$45$scale$95$m), $MachinePrecision]) / N[(N[(t$95$0 / N[(N[(N[(y$45$scale * x$45$scale$95$m), $MachinePrecision] * x$45$scale$95$m), $MachinePrecision] * y$45$scale), $MachinePrecision]), $MachinePrecision] * t$95$1), $MachinePrecision]), $MachinePrecision]]]]]]]]]]]]]
\begin{array}{l}
x-scale_m = \left|x-scale\right|
\\
\begin{array}{l}
t_0 := \left(-a\right) \cdot b\\
t_1 := \left(a \cdot b\right) \cdot 4\\
t_2 := \frac{t\_1}{y-scale \cdot x-scale\_m} \cdot \frac{t\_0}{y-scale \cdot x-scale\_m}\\
t_3 := 0.5 \cdot \sin \left(\left(-\left(\left(\pi + \pi\right) \cdot 0.005555555555555556\right) \cdot angle\right) + \frac{\pi}{2}\right)\\
t_4 := 0.5 - t\_3\\
t_5 := 0.5 + t\_3\\
t_6 := \frac{angle}{180} \cdot \pi\\
t_7 := \cos t\_6\\
t_8 := \sin t\_6\\
t_9 := \cos \left(\left(2 \cdot \pi\right) \cdot \left(0.005555555555555556 \cdot angle\right)\right)\\
t_10 := \frac{\mathsf{fma}\left(\left(0.5 - t\_9 \cdot 0.5\right) \cdot b, b, \left(\mathsf{fma}\left(t\_9, 0.5, 0.5\right) \cdot a\right) \cdot a\right)}{y-scale \cdot y-scale}\\
\mathbf{if}\;x-scale\_m \leq 10^{+85}:\\
\;\;\;\;\frac{-\sqrt{\left(\left(2 \cdot t\_2\right) \cdot \left(\left(b \cdot a\right) \cdot \left(b \cdot \left(-a\right)\right)\right)\right) \cdot \left(\left(\frac{\frac{{\left(a \cdot t\_8\right)}^{2} + {\left(b \cdot t\_7\right)}^{2}}{x-scale\_m}}{x-scale\_m} + \frac{\frac{{\left(a \cdot t\_7\right)}^{2} + {\left(b \cdot t\_8\right)}^{2}}{y-scale}}{y-scale}\right) + \mathsf{hypot}\left(\frac{\left(\left(b + a\right) \cdot \left(b - a\right)\right) \cdot \sin \left(2 \cdot \left(\pi \cdot \left(0.005555555555555556 \cdot angle\right)\right)\right)}{y-scale \cdot x-scale\_m}, \frac{\mathsf{fma}\left(t\_4, b \cdot b, t\_5 \cdot \left(a \cdot a\right)\right)}{y-scale \cdot y-scale} - \frac{\mathsf{fma}\left(t\_4, a \cdot a, t\_5 \cdot \left(b \cdot b\right)\right)}{x-scale\_m \cdot x-scale\_m}\right)\right)}}{t\_2}\\
\mathbf{else}:\\
\;\;\;\;\frac{-\frac{\frac{\sqrt{8 \cdot \left({\left(a \cdot b\right)}^{4} \cdot \left(\left|t\_10\right| + t\_10\right)\right)}}{\left|y-scale\right|}}{x-scale\_m}}{\frac{t\_0}{\left(\left(y-scale \cdot x-scale\_m\right) \cdot x-scale\_m\right) \cdot y-scale} \cdot t\_1}\\
\end{array}
\end{array}
if x-scale < 1e85Initial program 2.5%
Applied rewrites6.0%
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
*-commutativeN/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-pow.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
pow2N/A
times-fracN/A
lower-*.f64N/A
Applied rewrites7.3%
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
*-commutativeN/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-pow.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
pow2N/A
times-fracN/A
lower-*.f64N/A
Applied rewrites10.8%
lift-cos.f64N/A
cos-neg-revN/A
sin-+PI/2-revN/A
lower-sin.f64N/A
lower-+.f64N/A
lower-neg.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-*.f64N/A
count-2-revN/A
lower-+.f64N/A
lift-PI.f64N/A
lower-/.f6410.8
Applied rewrites10.8%
lift-cos.f64N/A
cos-neg-revN/A
sin-+PI/2-revN/A
lower-sin.f64N/A
lower-+.f64N/A
lower-neg.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-*.f64N/A
count-2-revN/A
lower-+.f64N/A
lift-PI.f64N/A
lower-/.f6410.8
Applied rewrites10.8%
lift-cos.f64N/A
cos-neg-revN/A
sin-+PI/2-revN/A
lower-sin.f64N/A
lower-+.f64N/A
lower-neg.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-*.f64N/A
count-2-revN/A
lower-+.f64N/A
lift-PI.f64N/A
lower-/.f6410.8
Applied rewrites10.8%
lift-cos.f64N/A
cos-neg-revN/A
sin-+PI/2-revN/A
lower-sin.f64N/A
lower-+.f64N/A
lower-neg.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-*.f64N/A
count-2-revN/A
lower-+.f64N/A
lift-PI.f64N/A
lower-/.f6410.8
Applied rewrites10.8%
if 1e85 < x-scale Initial program 2.5%
Taylor expanded in x-scale around inf
Applied rewrites1.2%
Applied rewrites8.1%
x-scale_m = (fabs.f64 x-scale)
(FPCore (a b angle x-scale_m y-scale)
:precision binary64
(let* ((t_0 (cos (* (* 2.0 PI) (* 0.005555555555555556 angle))))
(t_1 (* (* a b) 4.0))
(t_2 (* (/ angle 180.0) PI))
(t_3
(/
(fma (* (- 0.5 (* t_0 0.5)) b) b (* (* (fma t_0 0.5 0.5) a) a))
(* y-scale y-scale)))
(t_4 (* 2.0 (* PI (* 0.005555555555555556 angle))))
(t_5 (cos t_2))
(t_6 (sin t_2))
(t_7 (* 0.5 (cos t_4)))
(t_8 (- 0.5 t_7))
(t_9 (* (- a) b))
(t_10 (* (/ t_1 (* y-scale x-scale_m)) (/ t_9 (* y-scale x-scale_m))))
(t_11 (+ 0.5 t_7)))
(if (<= x-scale_m 1e+85)
(/
(-
(sqrt
(*
(* (* 2.0 t_10) (* (* b a) (* b (- a))))
(+
(+
(/
(/ (+ (pow (* a t_6) 2.0) (pow (* b t_5) 2.0)) x-scale_m)
x-scale_m)
(/ (/ (+ (pow (* a t_5) 2.0) (pow (* b t_6) 2.0)) y-scale) y-scale))
(hypot
(/ (* (* (+ b a) (- b a)) (sin t_4)) (* y-scale x-scale_m))
(-
(/ (fma t_8 (* b b) (* t_11 (* a a))) (* y-scale y-scale))
(/
(fma t_8 (* a a) (* t_11 (* b b)))
(* x-scale_m x-scale_m))))))))
t_10)
(/
(-
(/
(/
(sqrt (* 8.0 (* (pow (* a b) 4.0) (+ (fabs t_3) t_3))))
(fabs y-scale))
x-scale_m))
(* (/ t_9 (* (* (* y-scale x-scale_m) x-scale_m) y-scale)) t_1)))))x-scale_m = fabs(x_45_scale);
double code(double a, double b, double angle, double x_45_scale_m, double y_45_scale) {
double t_0 = cos(((2.0 * ((double) M_PI)) * (0.005555555555555556 * angle)));
double t_1 = (a * b) * 4.0;
double t_2 = (angle / 180.0) * ((double) M_PI);
double t_3 = fma(((0.5 - (t_0 * 0.5)) * b), b, ((fma(t_0, 0.5, 0.5) * a) * a)) / (y_45_scale * y_45_scale);
double t_4 = 2.0 * (((double) M_PI) * (0.005555555555555556 * angle));
double t_5 = cos(t_2);
double t_6 = sin(t_2);
double t_7 = 0.5 * cos(t_4);
double t_8 = 0.5 - t_7;
double t_9 = -a * b;
double t_10 = (t_1 / (y_45_scale * x_45_scale_m)) * (t_9 / (y_45_scale * x_45_scale_m));
double t_11 = 0.5 + t_7;
double tmp;
if (x_45_scale_m <= 1e+85) {
tmp = -sqrt((((2.0 * t_10) * ((b * a) * (b * -a))) * (((((pow((a * t_6), 2.0) + pow((b * t_5), 2.0)) / x_45_scale_m) / x_45_scale_m) + (((pow((a * t_5), 2.0) + pow((b * t_6), 2.0)) / y_45_scale) / y_45_scale)) + hypot(((((b + a) * (b - a)) * sin(t_4)) / (y_45_scale * x_45_scale_m)), ((fma(t_8, (b * b), (t_11 * (a * a))) / (y_45_scale * y_45_scale)) - (fma(t_8, (a * a), (t_11 * (b * b))) / (x_45_scale_m * x_45_scale_m))))))) / t_10;
} else {
tmp = -((sqrt((8.0 * (pow((a * b), 4.0) * (fabs(t_3) + t_3)))) / fabs(y_45_scale)) / x_45_scale_m) / ((t_9 / (((y_45_scale * x_45_scale_m) * x_45_scale_m) * y_45_scale)) * t_1);
}
return tmp;
}
x-scale_m = abs(x_45_scale) function code(a, b, angle, x_45_scale_m, y_45_scale) t_0 = cos(Float64(Float64(2.0 * pi) * Float64(0.005555555555555556 * angle))) t_1 = Float64(Float64(a * b) * 4.0) t_2 = Float64(Float64(angle / 180.0) * pi) t_3 = Float64(fma(Float64(Float64(0.5 - Float64(t_0 * 0.5)) * b), b, Float64(Float64(fma(t_0, 0.5, 0.5) * a) * a)) / Float64(y_45_scale * y_45_scale)) t_4 = Float64(2.0 * Float64(pi * Float64(0.005555555555555556 * angle))) t_5 = cos(t_2) t_6 = sin(t_2) t_7 = Float64(0.5 * cos(t_4)) t_8 = Float64(0.5 - t_7) t_9 = Float64(Float64(-a) * b) t_10 = Float64(Float64(t_1 / Float64(y_45_scale * x_45_scale_m)) * Float64(t_9 / Float64(y_45_scale * x_45_scale_m))) t_11 = Float64(0.5 + t_7) tmp = 0.0 if (x_45_scale_m <= 1e+85) tmp = Float64(Float64(-sqrt(Float64(Float64(Float64(2.0 * t_10) * Float64(Float64(b * a) * Float64(b * Float64(-a)))) * Float64(Float64(Float64(Float64(Float64((Float64(a * t_6) ^ 2.0) + (Float64(b * t_5) ^ 2.0)) / x_45_scale_m) / x_45_scale_m) + Float64(Float64(Float64((Float64(a * t_5) ^ 2.0) + (Float64(b * t_6) ^ 2.0)) / y_45_scale) / y_45_scale)) + hypot(Float64(Float64(Float64(Float64(b + a) * Float64(b - a)) * sin(t_4)) / Float64(y_45_scale * x_45_scale_m)), Float64(Float64(fma(t_8, Float64(b * b), Float64(t_11 * Float64(a * a))) / Float64(y_45_scale * y_45_scale)) - Float64(fma(t_8, Float64(a * a), Float64(t_11 * Float64(b * b))) / Float64(x_45_scale_m * x_45_scale_m)))))))) / t_10); else tmp = Float64(Float64(-Float64(Float64(sqrt(Float64(8.0 * Float64((Float64(a * b) ^ 4.0) * Float64(abs(t_3) + t_3)))) / abs(y_45_scale)) / x_45_scale_m)) / Float64(Float64(t_9 / Float64(Float64(Float64(y_45_scale * x_45_scale_m) * x_45_scale_m) * y_45_scale)) * t_1)); end return tmp end
x-scale_m = N[Abs[x$45$scale], $MachinePrecision]
code[a_, b_, angle_, x$45$scale$95$m_, y$45$scale_] := Block[{t$95$0 = N[Cos[N[(N[(2.0 * Pi), $MachinePrecision] * N[(0.005555555555555556 * angle), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$1 = N[(N[(a * b), $MachinePrecision] * 4.0), $MachinePrecision]}, Block[{t$95$2 = N[(N[(angle / 180.0), $MachinePrecision] * Pi), $MachinePrecision]}, Block[{t$95$3 = N[(N[(N[(N[(0.5 - N[(t$95$0 * 0.5), $MachinePrecision]), $MachinePrecision] * b), $MachinePrecision] * b + N[(N[(N[(t$95$0 * 0.5 + 0.5), $MachinePrecision] * a), $MachinePrecision] * a), $MachinePrecision]), $MachinePrecision] / N[(y$45$scale * y$45$scale), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[(2.0 * N[(Pi * N[(0.005555555555555556 * angle), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$5 = N[Cos[t$95$2], $MachinePrecision]}, Block[{t$95$6 = N[Sin[t$95$2], $MachinePrecision]}, Block[{t$95$7 = N[(0.5 * N[Cos[t$95$4], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$8 = N[(0.5 - t$95$7), $MachinePrecision]}, Block[{t$95$9 = N[((-a) * b), $MachinePrecision]}, Block[{t$95$10 = N[(N[(t$95$1 / N[(y$45$scale * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision] * N[(t$95$9 / N[(y$45$scale * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$11 = N[(0.5 + t$95$7), $MachinePrecision]}, If[LessEqual[x$45$scale$95$m, 1e+85], N[((-N[Sqrt[N[(N[(N[(2.0 * t$95$10), $MachinePrecision] * N[(N[(b * a), $MachinePrecision] * N[(b * (-a)), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(N[(N[(N[(N[Power[N[(a * t$95$6), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[(b * t$95$5), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / x$45$scale$95$m), $MachinePrecision] / x$45$scale$95$m), $MachinePrecision] + N[(N[(N[(N[Power[N[(a * t$95$5), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[(b * t$95$6), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / y$45$scale), $MachinePrecision] / y$45$scale), $MachinePrecision]), $MachinePrecision] + N[Sqrt[N[(N[(N[(N[(b + a), $MachinePrecision] * N[(b - a), $MachinePrecision]), $MachinePrecision] * N[Sin[t$95$4], $MachinePrecision]), $MachinePrecision] / N[(y$45$scale * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision] ^ 2 + N[(N[(N[(t$95$8 * N[(b * b), $MachinePrecision] + N[(t$95$11 * N[(a * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(y$45$scale * y$45$scale), $MachinePrecision]), $MachinePrecision] - N[(N[(t$95$8 * N[(a * a), $MachinePrecision] + N[(t$95$11 * N[(b * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(x$45$scale$95$m * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] ^ 2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]) / t$95$10), $MachinePrecision], N[((-N[(N[(N[Sqrt[N[(8.0 * N[(N[Power[N[(a * b), $MachinePrecision], 4.0], $MachinePrecision] * N[(N[Abs[t$95$3], $MachinePrecision] + t$95$3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / N[Abs[y$45$scale], $MachinePrecision]), $MachinePrecision] / x$45$scale$95$m), $MachinePrecision]) / N[(N[(t$95$9 / N[(N[(N[(y$45$scale * x$45$scale$95$m), $MachinePrecision] * x$45$scale$95$m), $MachinePrecision] * y$45$scale), $MachinePrecision]), $MachinePrecision] * t$95$1), $MachinePrecision]), $MachinePrecision]]]]]]]]]]]]]]
\begin{array}{l}
x-scale_m = \left|x-scale\right|
\\
\begin{array}{l}
t_0 := \cos \left(\left(2 \cdot \pi\right) \cdot \left(0.005555555555555556 \cdot angle\right)\right)\\
t_1 := \left(a \cdot b\right) \cdot 4\\
t_2 := \frac{angle}{180} \cdot \pi\\
t_3 := \frac{\mathsf{fma}\left(\left(0.5 - t\_0 \cdot 0.5\right) \cdot b, b, \left(\mathsf{fma}\left(t\_0, 0.5, 0.5\right) \cdot a\right) \cdot a\right)}{y-scale \cdot y-scale}\\
t_4 := 2 \cdot \left(\pi \cdot \left(0.005555555555555556 \cdot angle\right)\right)\\
t_5 := \cos t\_2\\
t_6 := \sin t\_2\\
t_7 := 0.5 \cdot \cos t\_4\\
t_8 := 0.5 - t\_7\\
t_9 := \left(-a\right) \cdot b\\
t_10 := \frac{t\_1}{y-scale \cdot x-scale\_m} \cdot \frac{t\_9}{y-scale \cdot x-scale\_m}\\
t_11 := 0.5 + t\_7\\
\mathbf{if}\;x-scale\_m \leq 10^{+85}:\\
\;\;\;\;\frac{-\sqrt{\left(\left(2 \cdot t\_10\right) \cdot \left(\left(b \cdot a\right) \cdot \left(b \cdot \left(-a\right)\right)\right)\right) \cdot \left(\left(\frac{\frac{{\left(a \cdot t\_6\right)}^{2} + {\left(b \cdot t\_5\right)}^{2}}{x-scale\_m}}{x-scale\_m} + \frac{\frac{{\left(a \cdot t\_5\right)}^{2} + {\left(b \cdot t\_6\right)}^{2}}{y-scale}}{y-scale}\right) + \mathsf{hypot}\left(\frac{\left(\left(b + a\right) \cdot \left(b - a\right)\right) \cdot \sin t\_4}{y-scale \cdot x-scale\_m}, \frac{\mathsf{fma}\left(t\_8, b \cdot b, t\_11 \cdot \left(a \cdot a\right)\right)}{y-scale \cdot y-scale} - \frac{\mathsf{fma}\left(t\_8, a \cdot a, t\_11 \cdot \left(b \cdot b\right)\right)}{x-scale\_m \cdot x-scale\_m}\right)\right)}}{t\_10}\\
\mathbf{else}:\\
\;\;\;\;\frac{-\frac{\frac{\sqrt{8 \cdot \left({\left(a \cdot b\right)}^{4} \cdot \left(\left|t\_3\right| + t\_3\right)\right)}}{\left|y-scale\right|}}{x-scale\_m}}{\frac{t\_9}{\left(\left(y-scale \cdot x-scale\_m\right) \cdot x-scale\_m\right) \cdot y-scale} \cdot t\_1}\\
\end{array}
\end{array}
if x-scale < 1e85Initial program 2.5%
Applied rewrites6.0%
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
*-commutativeN/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-pow.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
pow2N/A
times-fracN/A
lower-*.f64N/A
Applied rewrites7.3%
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
*-commutativeN/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-pow.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
pow2N/A
times-fracN/A
lower-*.f64N/A
Applied rewrites10.8%
if 1e85 < x-scale Initial program 2.5%
Taylor expanded in x-scale around inf
Applied rewrites1.2%
Applied rewrites8.1%
x-scale_m = (fabs.f64 x-scale)
(FPCore (a b angle x-scale_m y-scale)
:precision binary64
(let* ((t_0 (* (* a b) 4.0))
(t_1 (* (/ angle 180.0) PI))
(t_2 (sin t_1))
(t_3 (cos t_1))
(t_4 (cos (* (* 2.0 PI) (* 0.005555555555555556 angle))))
(t_5 (* (- a) b))
(t_6 (* (/ t_0 (* y-scale x-scale_m)) (/ t_5 (* y-scale x-scale_m))))
(t_7
(/
(fma (* (- 0.5 (* t_4 0.5)) b) b (* (* (fma t_4 0.5 0.5) a) a))
(* y-scale y-scale))))
(if (<= x-scale_m 1e+85)
(/
(-
(sqrt
(*
(* (* 2.0 t_6) (* (* b a) (* b (- a))))
(+
(+
(/
(/ (+ (pow (* a t_2) 2.0) (pow (* b t_3) 2.0)) x-scale_m)
x-scale_m)
(/ (/ (+ (pow (* a t_3) 2.0) (pow (* b t_2) 2.0)) y-scale) y-scale))
(hypot
(/
(*
(* (+ b a) (- b a))
(sin (* 2.0 (* PI (* 0.005555555555555556 angle)))))
(* y-scale x-scale_m))
(-
(/
(fma (- 0.5 0.5) (* b b) (* (+ 0.5 0.5) (* a a)))
(* y-scale y-scale))
(/
(fma (- 0.5 0.5) (* a a) (* (+ 0.5 0.5) (* b b)))
(* x-scale_m x-scale_m))))))))
t_6)
(/
(-
(/
(/
(sqrt (* 8.0 (* (pow (* a b) 4.0) (+ (fabs t_7) t_7))))
(fabs y-scale))
x-scale_m))
(* (/ t_5 (* (* (* y-scale x-scale_m) x-scale_m) y-scale)) t_0)))))x-scale_m = fabs(x_45_scale);
double code(double a, double b, double angle, double x_45_scale_m, double y_45_scale) {
double t_0 = (a * b) * 4.0;
double t_1 = (angle / 180.0) * ((double) M_PI);
double t_2 = sin(t_1);
double t_3 = cos(t_1);
double t_4 = cos(((2.0 * ((double) M_PI)) * (0.005555555555555556 * angle)));
double t_5 = -a * b;
double t_6 = (t_0 / (y_45_scale * x_45_scale_m)) * (t_5 / (y_45_scale * x_45_scale_m));
double t_7 = fma(((0.5 - (t_4 * 0.5)) * b), b, ((fma(t_4, 0.5, 0.5) * a) * a)) / (y_45_scale * y_45_scale);
double tmp;
if (x_45_scale_m <= 1e+85) {
tmp = -sqrt((((2.0 * t_6) * ((b * a) * (b * -a))) * (((((pow((a * t_2), 2.0) + pow((b * t_3), 2.0)) / x_45_scale_m) / x_45_scale_m) + (((pow((a * t_3), 2.0) + pow((b * t_2), 2.0)) / y_45_scale) / y_45_scale)) + hypot(((((b + a) * (b - a)) * sin((2.0 * (((double) M_PI) * (0.005555555555555556 * angle))))) / (y_45_scale * x_45_scale_m)), ((fma((0.5 - 0.5), (b * b), ((0.5 + 0.5) * (a * a))) / (y_45_scale * y_45_scale)) - (fma((0.5 - 0.5), (a * a), ((0.5 + 0.5) * (b * b))) / (x_45_scale_m * x_45_scale_m))))))) / t_6;
} else {
tmp = -((sqrt((8.0 * (pow((a * b), 4.0) * (fabs(t_7) + t_7)))) / fabs(y_45_scale)) / x_45_scale_m) / ((t_5 / (((y_45_scale * x_45_scale_m) * x_45_scale_m) * y_45_scale)) * t_0);
}
return tmp;
}
x-scale_m = abs(x_45_scale) function code(a, b, angle, x_45_scale_m, y_45_scale) t_0 = Float64(Float64(a * b) * 4.0) t_1 = Float64(Float64(angle / 180.0) * pi) t_2 = sin(t_1) t_3 = cos(t_1) t_4 = cos(Float64(Float64(2.0 * pi) * Float64(0.005555555555555556 * angle))) t_5 = Float64(Float64(-a) * b) t_6 = Float64(Float64(t_0 / Float64(y_45_scale * x_45_scale_m)) * Float64(t_5 / Float64(y_45_scale * x_45_scale_m))) t_7 = Float64(fma(Float64(Float64(0.5 - Float64(t_4 * 0.5)) * b), b, Float64(Float64(fma(t_4, 0.5, 0.5) * a) * a)) / Float64(y_45_scale * y_45_scale)) tmp = 0.0 if (x_45_scale_m <= 1e+85) tmp = Float64(Float64(-sqrt(Float64(Float64(Float64(2.0 * t_6) * Float64(Float64(b * a) * Float64(b * Float64(-a)))) * Float64(Float64(Float64(Float64(Float64((Float64(a * t_2) ^ 2.0) + (Float64(b * t_3) ^ 2.0)) / x_45_scale_m) / x_45_scale_m) + Float64(Float64(Float64((Float64(a * t_3) ^ 2.0) + (Float64(b * t_2) ^ 2.0)) / y_45_scale) / y_45_scale)) + hypot(Float64(Float64(Float64(Float64(b + a) * Float64(b - a)) * sin(Float64(2.0 * Float64(pi * Float64(0.005555555555555556 * angle))))) / Float64(y_45_scale * x_45_scale_m)), Float64(Float64(fma(Float64(0.5 - 0.5), Float64(b * b), Float64(Float64(0.5 + 0.5) * Float64(a * a))) / Float64(y_45_scale * y_45_scale)) - Float64(fma(Float64(0.5 - 0.5), Float64(a * a), Float64(Float64(0.5 + 0.5) * Float64(b * b))) / Float64(x_45_scale_m * x_45_scale_m)))))))) / t_6); else tmp = Float64(Float64(-Float64(Float64(sqrt(Float64(8.0 * Float64((Float64(a * b) ^ 4.0) * Float64(abs(t_7) + t_7)))) / abs(y_45_scale)) / x_45_scale_m)) / Float64(Float64(t_5 / Float64(Float64(Float64(y_45_scale * x_45_scale_m) * x_45_scale_m) * y_45_scale)) * t_0)); end return tmp end
x-scale_m = N[Abs[x$45$scale], $MachinePrecision]
code[a_, b_, angle_, x$45$scale$95$m_, y$45$scale_] := Block[{t$95$0 = N[(N[(a * b), $MachinePrecision] * 4.0), $MachinePrecision]}, Block[{t$95$1 = N[(N[(angle / 180.0), $MachinePrecision] * Pi), $MachinePrecision]}, Block[{t$95$2 = N[Sin[t$95$1], $MachinePrecision]}, Block[{t$95$3 = N[Cos[t$95$1], $MachinePrecision]}, Block[{t$95$4 = N[Cos[N[(N[(2.0 * Pi), $MachinePrecision] * N[(0.005555555555555556 * angle), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$5 = N[((-a) * b), $MachinePrecision]}, Block[{t$95$6 = N[(N[(t$95$0 / N[(y$45$scale * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision] * N[(t$95$5 / N[(y$45$scale * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$7 = N[(N[(N[(N[(0.5 - N[(t$95$4 * 0.5), $MachinePrecision]), $MachinePrecision] * b), $MachinePrecision] * b + N[(N[(N[(t$95$4 * 0.5 + 0.5), $MachinePrecision] * a), $MachinePrecision] * a), $MachinePrecision]), $MachinePrecision] / N[(y$45$scale * y$45$scale), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x$45$scale$95$m, 1e+85], N[((-N[Sqrt[N[(N[(N[(2.0 * t$95$6), $MachinePrecision] * N[(N[(b * a), $MachinePrecision] * N[(b * (-a)), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(N[(N[(N[(N[Power[N[(a * t$95$2), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[(b * t$95$3), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / x$45$scale$95$m), $MachinePrecision] / x$45$scale$95$m), $MachinePrecision] + N[(N[(N[(N[Power[N[(a * t$95$3), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[(b * t$95$2), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / y$45$scale), $MachinePrecision] / y$45$scale), $MachinePrecision]), $MachinePrecision] + N[Sqrt[N[(N[(N[(N[(b + a), $MachinePrecision] * N[(b - a), $MachinePrecision]), $MachinePrecision] * N[Sin[N[(2.0 * N[(Pi * N[(0.005555555555555556 * angle), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / N[(y$45$scale * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision] ^ 2 + N[(N[(N[(N[(0.5 - 0.5), $MachinePrecision] * N[(b * b), $MachinePrecision] + N[(N[(0.5 + 0.5), $MachinePrecision] * N[(a * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(y$45$scale * y$45$scale), $MachinePrecision]), $MachinePrecision] - N[(N[(N[(0.5 - 0.5), $MachinePrecision] * N[(a * a), $MachinePrecision] + N[(N[(0.5 + 0.5), $MachinePrecision] * N[(b * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(x$45$scale$95$m * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] ^ 2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]) / t$95$6), $MachinePrecision], N[((-N[(N[(N[Sqrt[N[(8.0 * N[(N[Power[N[(a * b), $MachinePrecision], 4.0], $MachinePrecision] * N[(N[Abs[t$95$7], $MachinePrecision] + t$95$7), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / N[Abs[y$45$scale], $MachinePrecision]), $MachinePrecision] / x$45$scale$95$m), $MachinePrecision]) / N[(N[(t$95$5 / N[(N[(N[(y$45$scale * x$45$scale$95$m), $MachinePrecision] * x$45$scale$95$m), $MachinePrecision] * y$45$scale), $MachinePrecision]), $MachinePrecision] * t$95$0), $MachinePrecision]), $MachinePrecision]]]]]]]]]]
\begin{array}{l}
x-scale_m = \left|x-scale\right|
\\
\begin{array}{l}
t_0 := \left(a \cdot b\right) \cdot 4\\
t_1 := \frac{angle}{180} \cdot \pi\\
t_2 := \sin t\_1\\
t_3 := \cos t\_1\\
t_4 := \cos \left(\left(2 \cdot \pi\right) \cdot \left(0.005555555555555556 \cdot angle\right)\right)\\
t_5 := \left(-a\right) \cdot b\\
t_6 := \frac{t\_0}{y-scale \cdot x-scale\_m} \cdot \frac{t\_5}{y-scale \cdot x-scale\_m}\\
t_7 := \frac{\mathsf{fma}\left(\left(0.5 - t\_4 \cdot 0.5\right) \cdot b, b, \left(\mathsf{fma}\left(t\_4, 0.5, 0.5\right) \cdot a\right) \cdot a\right)}{y-scale \cdot y-scale}\\
\mathbf{if}\;x-scale\_m \leq 10^{+85}:\\
\;\;\;\;\frac{-\sqrt{\left(\left(2 \cdot t\_6\right) \cdot \left(\left(b \cdot a\right) \cdot \left(b \cdot \left(-a\right)\right)\right)\right) \cdot \left(\left(\frac{\frac{{\left(a \cdot t\_2\right)}^{2} + {\left(b \cdot t\_3\right)}^{2}}{x-scale\_m}}{x-scale\_m} + \frac{\frac{{\left(a \cdot t\_3\right)}^{2} + {\left(b \cdot t\_2\right)}^{2}}{y-scale}}{y-scale}\right) + \mathsf{hypot}\left(\frac{\left(\left(b + a\right) \cdot \left(b - a\right)\right) \cdot \sin \left(2 \cdot \left(\pi \cdot \left(0.005555555555555556 \cdot angle\right)\right)\right)}{y-scale \cdot x-scale\_m}, \frac{\mathsf{fma}\left(0.5 - 0.5, b \cdot b, \left(0.5 + 0.5\right) \cdot \left(a \cdot a\right)\right)}{y-scale \cdot y-scale} - \frac{\mathsf{fma}\left(0.5 - 0.5, a \cdot a, \left(0.5 + 0.5\right) \cdot \left(b \cdot b\right)\right)}{x-scale\_m \cdot x-scale\_m}\right)\right)}}{t\_6}\\
\mathbf{else}:\\
\;\;\;\;\frac{-\frac{\frac{\sqrt{8 \cdot \left({\left(a \cdot b\right)}^{4} \cdot \left(\left|t\_7\right| + t\_7\right)\right)}}{\left|y-scale\right|}}{x-scale\_m}}{\frac{t\_5}{\left(\left(y-scale \cdot x-scale\_m\right) \cdot x-scale\_m\right) \cdot y-scale} \cdot t\_0}\\
\end{array}
\end{array}
if x-scale < 1e85Initial program 2.5%
Applied rewrites6.0%
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
*-commutativeN/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-pow.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
pow2N/A
times-fracN/A
lower-*.f64N/A
Applied rewrites7.3%
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
*-commutativeN/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-pow.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
pow2N/A
times-fracN/A
lower-*.f64N/A
Applied rewrites10.8%
Taylor expanded in angle around 0
Applied rewrites10.7%
Taylor expanded in angle around 0
Applied rewrites10.7%
Taylor expanded in angle around 0
Applied rewrites10.7%
Taylor expanded in angle around 0
Applied rewrites10.7%
if 1e85 < x-scale Initial program 2.5%
Taylor expanded in x-scale around inf
Applied rewrites1.2%
Applied rewrites8.1%
x-scale_m = (fabs.f64 x-scale)
(FPCore (a b angle x-scale_m y-scale)
:precision binary64
(let* ((t_0 (* (* a b) 4.0))
(t_1 (* (/ angle 180.0) PI))
(t_2 (* (- a) b))
(t_3 (* (/ t_0 (* y-scale x-scale_m)) (/ t_2 (* y-scale x-scale_m))))
(t_4 (cos (* (* 2.0 PI) (* 0.005555555555555556 angle))))
(t_5
(/
(fma (* (- 0.5 (* t_4 0.5)) b) b (* (* (fma t_4 0.5 0.5) a) a))
(* y-scale y-scale))))
(if (<= x-scale_m 1e+32)
(/
(-
(sqrt
(*
(* (* 2.0 t_3) (* (* b a) (* b (- a))))
(+
(+
(/
(/
(+ (pow (* a (sin t_1)) 2.0) (pow (* b (cos t_1)) 2.0))
x-scale_m)
x-scale_m)
(/ (/ (pow a 2.0) y-scale) y-scale))
(hypot
(/
(*
(* (+ b a) (- b a))
(sin (* 2.0 (* PI (* 0.005555555555555556 angle)))))
(* y-scale x-scale_m))
(-
(/
(fma (- 0.5 0.5) (* b b) (* (+ 0.5 0.5) (* a a)))
(* y-scale y-scale))
(/
(fma (- 0.5 0.5) (* a a) (* (+ 0.5 0.5) (* b b)))
(* x-scale_m x-scale_m))))))))
t_3)
(/
(-
(/
(/
(sqrt (* 8.0 (* (pow (* a b) 4.0) (+ (fabs t_5) t_5))))
(fabs y-scale))
x-scale_m))
(* (/ t_2 (* (* (* y-scale x-scale_m) x-scale_m) y-scale)) t_0)))))x-scale_m = fabs(x_45_scale);
double code(double a, double b, double angle, double x_45_scale_m, double y_45_scale) {
double t_0 = (a * b) * 4.0;
double t_1 = (angle / 180.0) * ((double) M_PI);
double t_2 = -a * b;
double t_3 = (t_0 / (y_45_scale * x_45_scale_m)) * (t_2 / (y_45_scale * x_45_scale_m));
double t_4 = cos(((2.0 * ((double) M_PI)) * (0.005555555555555556 * angle)));
double t_5 = fma(((0.5 - (t_4 * 0.5)) * b), b, ((fma(t_4, 0.5, 0.5) * a) * a)) / (y_45_scale * y_45_scale);
double tmp;
if (x_45_scale_m <= 1e+32) {
tmp = -sqrt((((2.0 * t_3) * ((b * a) * (b * -a))) * (((((pow((a * sin(t_1)), 2.0) + pow((b * cos(t_1)), 2.0)) / x_45_scale_m) / x_45_scale_m) + ((pow(a, 2.0) / y_45_scale) / y_45_scale)) + hypot(((((b + a) * (b - a)) * sin((2.0 * (((double) M_PI) * (0.005555555555555556 * angle))))) / (y_45_scale * x_45_scale_m)), ((fma((0.5 - 0.5), (b * b), ((0.5 + 0.5) * (a * a))) / (y_45_scale * y_45_scale)) - (fma((0.5 - 0.5), (a * a), ((0.5 + 0.5) * (b * b))) / (x_45_scale_m * x_45_scale_m))))))) / t_3;
} else {
tmp = -((sqrt((8.0 * (pow((a * b), 4.0) * (fabs(t_5) + t_5)))) / fabs(y_45_scale)) / x_45_scale_m) / ((t_2 / (((y_45_scale * x_45_scale_m) * x_45_scale_m) * y_45_scale)) * t_0);
}
return tmp;
}
x-scale_m = abs(x_45_scale) function code(a, b, angle, x_45_scale_m, y_45_scale) t_0 = Float64(Float64(a * b) * 4.0) t_1 = Float64(Float64(angle / 180.0) * pi) t_2 = Float64(Float64(-a) * b) t_3 = Float64(Float64(t_0 / Float64(y_45_scale * x_45_scale_m)) * Float64(t_2 / Float64(y_45_scale * x_45_scale_m))) t_4 = cos(Float64(Float64(2.0 * pi) * Float64(0.005555555555555556 * angle))) t_5 = Float64(fma(Float64(Float64(0.5 - Float64(t_4 * 0.5)) * b), b, Float64(Float64(fma(t_4, 0.5, 0.5) * a) * a)) / Float64(y_45_scale * y_45_scale)) tmp = 0.0 if (x_45_scale_m <= 1e+32) tmp = Float64(Float64(-sqrt(Float64(Float64(Float64(2.0 * t_3) * Float64(Float64(b * a) * Float64(b * Float64(-a)))) * Float64(Float64(Float64(Float64(Float64((Float64(a * sin(t_1)) ^ 2.0) + (Float64(b * cos(t_1)) ^ 2.0)) / x_45_scale_m) / x_45_scale_m) + Float64(Float64((a ^ 2.0) / y_45_scale) / y_45_scale)) + hypot(Float64(Float64(Float64(Float64(b + a) * Float64(b - a)) * sin(Float64(2.0 * Float64(pi * Float64(0.005555555555555556 * angle))))) / Float64(y_45_scale * x_45_scale_m)), Float64(Float64(fma(Float64(0.5 - 0.5), Float64(b * b), Float64(Float64(0.5 + 0.5) * Float64(a * a))) / Float64(y_45_scale * y_45_scale)) - Float64(fma(Float64(0.5 - 0.5), Float64(a * a), Float64(Float64(0.5 + 0.5) * Float64(b * b))) / Float64(x_45_scale_m * x_45_scale_m)))))))) / t_3); else tmp = Float64(Float64(-Float64(Float64(sqrt(Float64(8.0 * Float64((Float64(a * b) ^ 4.0) * Float64(abs(t_5) + t_5)))) / abs(y_45_scale)) / x_45_scale_m)) / Float64(Float64(t_2 / Float64(Float64(Float64(y_45_scale * x_45_scale_m) * x_45_scale_m) * y_45_scale)) * t_0)); end return tmp end
x-scale_m = N[Abs[x$45$scale], $MachinePrecision]
code[a_, b_, angle_, x$45$scale$95$m_, y$45$scale_] := Block[{t$95$0 = N[(N[(a * b), $MachinePrecision] * 4.0), $MachinePrecision]}, Block[{t$95$1 = N[(N[(angle / 180.0), $MachinePrecision] * Pi), $MachinePrecision]}, Block[{t$95$2 = N[((-a) * b), $MachinePrecision]}, Block[{t$95$3 = N[(N[(t$95$0 / N[(y$45$scale * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision] * N[(t$95$2 / N[(y$45$scale * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[Cos[N[(N[(2.0 * Pi), $MachinePrecision] * N[(0.005555555555555556 * angle), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$5 = N[(N[(N[(N[(0.5 - N[(t$95$4 * 0.5), $MachinePrecision]), $MachinePrecision] * b), $MachinePrecision] * b + N[(N[(N[(t$95$4 * 0.5 + 0.5), $MachinePrecision] * a), $MachinePrecision] * a), $MachinePrecision]), $MachinePrecision] / N[(y$45$scale * y$45$scale), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x$45$scale$95$m, 1e+32], N[((-N[Sqrt[N[(N[(N[(2.0 * t$95$3), $MachinePrecision] * N[(N[(b * a), $MachinePrecision] * N[(b * (-a)), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(N[(N[(N[(N[Power[N[(a * N[Sin[t$95$1], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[(b * N[Cos[t$95$1], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / x$45$scale$95$m), $MachinePrecision] / x$45$scale$95$m), $MachinePrecision] + N[(N[(N[Power[a, 2.0], $MachinePrecision] / y$45$scale), $MachinePrecision] / y$45$scale), $MachinePrecision]), $MachinePrecision] + N[Sqrt[N[(N[(N[(N[(b + a), $MachinePrecision] * N[(b - a), $MachinePrecision]), $MachinePrecision] * N[Sin[N[(2.0 * N[(Pi * N[(0.005555555555555556 * angle), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / N[(y$45$scale * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision] ^ 2 + N[(N[(N[(N[(0.5 - 0.5), $MachinePrecision] * N[(b * b), $MachinePrecision] + N[(N[(0.5 + 0.5), $MachinePrecision] * N[(a * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(y$45$scale * y$45$scale), $MachinePrecision]), $MachinePrecision] - N[(N[(N[(0.5 - 0.5), $MachinePrecision] * N[(a * a), $MachinePrecision] + N[(N[(0.5 + 0.5), $MachinePrecision] * N[(b * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(x$45$scale$95$m * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] ^ 2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]) / t$95$3), $MachinePrecision], N[((-N[(N[(N[Sqrt[N[(8.0 * N[(N[Power[N[(a * b), $MachinePrecision], 4.0], $MachinePrecision] * N[(N[Abs[t$95$5], $MachinePrecision] + t$95$5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / N[Abs[y$45$scale], $MachinePrecision]), $MachinePrecision] / x$45$scale$95$m), $MachinePrecision]) / N[(N[(t$95$2 / N[(N[(N[(y$45$scale * x$45$scale$95$m), $MachinePrecision] * x$45$scale$95$m), $MachinePrecision] * y$45$scale), $MachinePrecision]), $MachinePrecision] * t$95$0), $MachinePrecision]), $MachinePrecision]]]]]]]]
\begin{array}{l}
x-scale_m = \left|x-scale\right|
\\
\begin{array}{l}
t_0 := \left(a \cdot b\right) \cdot 4\\
t_1 := \frac{angle}{180} \cdot \pi\\
t_2 := \left(-a\right) \cdot b\\
t_3 := \frac{t\_0}{y-scale \cdot x-scale\_m} \cdot \frac{t\_2}{y-scale \cdot x-scale\_m}\\
t_4 := \cos \left(\left(2 \cdot \pi\right) \cdot \left(0.005555555555555556 \cdot angle\right)\right)\\
t_5 := \frac{\mathsf{fma}\left(\left(0.5 - t\_4 \cdot 0.5\right) \cdot b, b, \left(\mathsf{fma}\left(t\_4, 0.5, 0.5\right) \cdot a\right) \cdot a\right)}{y-scale \cdot y-scale}\\
\mathbf{if}\;x-scale\_m \leq 10^{+32}:\\
\;\;\;\;\frac{-\sqrt{\left(\left(2 \cdot t\_3\right) \cdot \left(\left(b \cdot a\right) \cdot \left(b \cdot \left(-a\right)\right)\right)\right) \cdot \left(\left(\frac{\frac{{\left(a \cdot \sin t\_1\right)}^{2} + {\left(b \cdot \cos t\_1\right)}^{2}}{x-scale\_m}}{x-scale\_m} + \frac{\frac{{a}^{2}}{y-scale}}{y-scale}\right) + \mathsf{hypot}\left(\frac{\left(\left(b + a\right) \cdot \left(b - a\right)\right) \cdot \sin \left(2 \cdot \left(\pi \cdot \left(0.005555555555555556 \cdot angle\right)\right)\right)}{y-scale \cdot x-scale\_m}, \frac{\mathsf{fma}\left(0.5 - 0.5, b \cdot b, \left(0.5 + 0.5\right) \cdot \left(a \cdot a\right)\right)}{y-scale \cdot y-scale} - \frac{\mathsf{fma}\left(0.5 - 0.5, a \cdot a, \left(0.5 + 0.5\right) \cdot \left(b \cdot b\right)\right)}{x-scale\_m \cdot x-scale\_m}\right)\right)}}{t\_3}\\
\mathbf{else}:\\
\;\;\;\;\frac{-\frac{\frac{\sqrt{8 \cdot \left({\left(a \cdot b\right)}^{4} \cdot \left(\left|t\_5\right| + t\_5\right)\right)}}{\left|y-scale\right|}}{x-scale\_m}}{\frac{t\_2}{\left(\left(y-scale \cdot x-scale\_m\right) \cdot x-scale\_m\right) \cdot y-scale} \cdot t\_0}\\
\end{array}
\end{array}
if x-scale < 1.00000000000000005e32Initial program 2.5%
Applied rewrites6.0%
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
*-commutativeN/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-pow.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
pow2N/A
times-fracN/A
lower-*.f64N/A
Applied rewrites7.3%
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
*-commutativeN/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-pow.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
pow2N/A
times-fracN/A
lower-*.f64N/A
Applied rewrites10.8%
Taylor expanded in angle around 0
Applied rewrites10.7%
Taylor expanded in angle around 0
Applied rewrites10.7%
Taylor expanded in angle around 0
Applied rewrites10.7%
Taylor expanded in angle around 0
Applied rewrites10.7%
Taylor expanded in angle around 0
lower-/.f64N/A
lower-pow.f6410.7
Applied rewrites10.7%
if 1.00000000000000005e32 < x-scale Initial program 2.5%
Taylor expanded in x-scale around inf
Applied rewrites1.2%
Applied rewrites8.1%
x-scale_m = (fabs.f64 x-scale)
(FPCore (a b angle x-scale_m y-scale)
:precision binary64
(let* ((t_0 (cos (* (* 2.0 PI) (* 0.005555555555555556 angle))))
(t_1 (/ 1.0 (* x-scale_m x-scale_m)))
(t_2
(/
(fma (* (- 0.5 (* t_0 0.5)) b) b (* (* (fma t_0 0.5 0.5) a) a))
(* y-scale y-scale)))
(t_3 (* (* (* x-scale_m y-scale) x-scale_m) y-scale)))
(if (<= x-scale_m 1.3e+111)
(*
(* b (/ (/ (* t_3 (* (* a a) (sqrt (* (/ (+ t_1 t_1) t_3) 8.0)))) a) a))
0.25)
(/
(-
(/
(/
(sqrt (* 8.0 (* (pow (* a b) 4.0) (+ (fabs t_2) t_2))))
(fabs y-scale))
x-scale_m))
(*
(/ (* (- a) b) (* (* (* y-scale x-scale_m) x-scale_m) y-scale))
(* (* a b) 4.0))))))x-scale_m = fabs(x_45_scale);
double code(double a, double b, double angle, double x_45_scale_m, double y_45_scale) {
double t_0 = cos(((2.0 * ((double) M_PI)) * (0.005555555555555556 * angle)));
double t_1 = 1.0 / (x_45_scale_m * x_45_scale_m);
double t_2 = fma(((0.5 - (t_0 * 0.5)) * b), b, ((fma(t_0, 0.5, 0.5) * a) * a)) / (y_45_scale * y_45_scale);
double t_3 = ((x_45_scale_m * y_45_scale) * x_45_scale_m) * y_45_scale;
double tmp;
if (x_45_scale_m <= 1.3e+111) {
tmp = (b * (((t_3 * ((a * a) * sqrt((((t_1 + t_1) / t_3) * 8.0)))) / a) / a)) * 0.25;
} else {
tmp = -((sqrt((8.0 * (pow((a * b), 4.0) * (fabs(t_2) + t_2)))) / fabs(y_45_scale)) / x_45_scale_m) / (((-a * b) / (((y_45_scale * x_45_scale_m) * x_45_scale_m) * y_45_scale)) * ((a * b) * 4.0));
}
return tmp;
}
x-scale_m = abs(x_45_scale) function code(a, b, angle, x_45_scale_m, y_45_scale) t_0 = cos(Float64(Float64(2.0 * pi) * Float64(0.005555555555555556 * angle))) t_1 = Float64(1.0 / Float64(x_45_scale_m * x_45_scale_m)) t_2 = Float64(fma(Float64(Float64(0.5 - Float64(t_0 * 0.5)) * b), b, Float64(Float64(fma(t_0, 0.5, 0.5) * a) * a)) / Float64(y_45_scale * y_45_scale)) t_3 = Float64(Float64(Float64(x_45_scale_m * y_45_scale) * x_45_scale_m) * y_45_scale) tmp = 0.0 if (x_45_scale_m <= 1.3e+111) tmp = Float64(Float64(b * Float64(Float64(Float64(t_3 * Float64(Float64(a * a) * sqrt(Float64(Float64(Float64(t_1 + t_1) / t_3) * 8.0)))) / a) / a)) * 0.25); else tmp = Float64(Float64(-Float64(Float64(sqrt(Float64(8.0 * Float64((Float64(a * b) ^ 4.0) * Float64(abs(t_2) + t_2)))) / abs(y_45_scale)) / x_45_scale_m)) / Float64(Float64(Float64(Float64(-a) * b) / Float64(Float64(Float64(y_45_scale * x_45_scale_m) * x_45_scale_m) * y_45_scale)) * Float64(Float64(a * b) * 4.0))); end return tmp end
x-scale_m = N[Abs[x$45$scale], $MachinePrecision]
code[a_, b_, angle_, x$45$scale$95$m_, y$45$scale_] := Block[{t$95$0 = N[Cos[N[(N[(2.0 * Pi), $MachinePrecision] * N[(0.005555555555555556 * angle), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$1 = N[(1.0 / N[(x$45$scale$95$m * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(N[(N[(0.5 - N[(t$95$0 * 0.5), $MachinePrecision]), $MachinePrecision] * b), $MachinePrecision] * b + N[(N[(N[(t$95$0 * 0.5 + 0.5), $MachinePrecision] * a), $MachinePrecision] * a), $MachinePrecision]), $MachinePrecision] / N[(y$45$scale * y$45$scale), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(N[(x$45$scale$95$m * y$45$scale), $MachinePrecision] * x$45$scale$95$m), $MachinePrecision] * y$45$scale), $MachinePrecision]}, If[LessEqual[x$45$scale$95$m, 1.3e+111], N[(N[(b * N[(N[(N[(t$95$3 * N[(N[(a * a), $MachinePrecision] * N[Sqrt[N[(N[(N[(t$95$1 + t$95$1), $MachinePrecision] / t$95$3), $MachinePrecision] * 8.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / a), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision] * 0.25), $MachinePrecision], N[((-N[(N[(N[Sqrt[N[(8.0 * N[(N[Power[N[(a * b), $MachinePrecision], 4.0], $MachinePrecision] * N[(N[Abs[t$95$2], $MachinePrecision] + t$95$2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / N[Abs[y$45$scale], $MachinePrecision]), $MachinePrecision] / x$45$scale$95$m), $MachinePrecision]) / N[(N[(N[((-a) * b), $MachinePrecision] / N[(N[(N[(y$45$scale * x$45$scale$95$m), $MachinePrecision] * x$45$scale$95$m), $MachinePrecision] * y$45$scale), $MachinePrecision]), $MachinePrecision] * N[(N[(a * b), $MachinePrecision] * 4.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]
\begin{array}{l}
x-scale_m = \left|x-scale\right|
\\
\begin{array}{l}
t_0 := \cos \left(\left(2 \cdot \pi\right) \cdot \left(0.005555555555555556 \cdot angle\right)\right)\\
t_1 := \frac{1}{x-scale\_m \cdot x-scale\_m}\\
t_2 := \frac{\mathsf{fma}\left(\left(0.5 - t\_0 \cdot 0.5\right) \cdot b, b, \left(\mathsf{fma}\left(t\_0, 0.5, 0.5\right) \cdot a\right) \cdot a\right)}{y-scale \cdot y-scale}\\
t_3 := \left(\left(x-scale\_m \cdot y-scale\right) \cdot x-scale\_m\right) \cdot y-scale\\
\mathbf{if}\;x-scale\_m \leq 1.3 \cdot 10^{+111}:\\
\;\;\;\;\left(b \cdot \frac{\frac{t\_3 \cdot \left(\left(a \cdot a\right) \cdot \sqrt{\frac{t\_1 + t\_1}{t\_3} \cdot 8}\right)}{a}}{a}\right) \cdot 0.25\\
\mathbf{else}:\\
\;\;\;\;\frac{-\frac{\frac{\sqrt{8 \cdot \left({\left(a \cdot b\right)}^{4} \cdot \left(\left|t\_2\right| + t\_2\right)\right)}}{\left|y-scale\right|}}{x-scale\_m}}{\frac{\left(-a\right) \cdot b}{\left(\left(y-scale \cdot x-scale\_m\right) \cdot x-scale\_m\right) \cdot y-scale} \cdot \left(\left(a \cdot b\right) \cdot 4\right)}\\
\end{array}
\end{array}
if x-scale < 1.2999999999999999e111Initial program 2.5%
Taylor expanded in b around inf
Applied rewrites0.9%
Applied rewrites2.0%
Taylor expanded in angle around 0
lower-+.f64N/A
lower-sqrt.f64N/A
lower-/.f64N/A
lower-pow.f64N/A
lower-/.f64N/A
lower-pow.f641.7
Applied rewrites1.7%
Applied rewrites4.6%
if 1.2999999999999999e111 < x-scale Initial program 2.5%
Taylor expanded in x-scale around inf
Applied rewrites1.2%
Applied rewrites8.1%
x-scale_m = (fabs.f64 x-scale)
(FPCore (a b angle x-scale_m y-scale)
:precision binary64
(let* ((t_0 (* (* (* y-scale x-scale_m) x-scale_m) y-scale))
(t_1 (/ b (* x-scale_m x-scale_m)))
(t_2 (/ a (* y-scale y-scale)))
(t_3 (cos (* (* 2.0 PI) (* 0.005555555555555556 angle))))
(t_4
(/
(fma (* (- 0.5 (* t_3 0.5)) b) b (* (* (fma t_3 0.5 0.5) a) a))
(* y-scale y-scale)))
(t_5 (* (- a) b)))
(if (<= b 2.9e-32)
(*
(/
(-
(/
(/
(sqrt (* 8.0 (* (pow (* a b) 4.0) (+ (fabs t_4) t_4))))
(fabs y-scale))
x-scale_m))
(* (* (* a b) 4.0) t_5))
t_0)
(if (<= b 1e+154)
(*
0.25
(/
(*
(pow y-scale 2.0)
(sqrt
(*
8.0
(/
(*
(pow b 4.0)
(+
(sqrt
(*
(pow b 4.0)
(pow
(+ 0.5 (* 0.5 (cos (* 0.011111111111111112 (* angle PI)))))
2.0)))
(*
(pow b 2.0)
(pow (cos (* 0.005555555555555556 (* angle PI))) 2.0))))
(pow y-scale 2.0)))))
(pow b 2.0)))
(*
(/
(/
(-
(sqrt
(*
(fma b t_1 (fma a t_2 (fabs (- (* a t_2) (* b t_1)))))
(*
(*
(*
(*
(*
(- a)
(/ b (* (* (* x-scale_m y-scale) x-scale_m) y-scale)))
(* b a))
4.0)
2.0)
(* (* (* b a) b) (- a))))))
(* (* b a) 4.0))
t_5)
t_0)))))x-scale_m = fabs(x_45_scale);
double code(double a, double b, double angle, double x_45_scale_m, double y_45_scale) {
double t_0 = ((y_45_scale * x_45_scale_m) * x_45_scale_m) * y_45_scale;
double t_1 = b / (x_45_scale_m * x_45_scale_m);
double t_2 = a / (y_45_scale * y_45_scale);
double t_3 = cos(((2.0 * ((double) M_PI)) * (0.005555555555555556 * angle)));
double t_4 = fma(((0.5 - (t_3 * 0.5)) * b), b, ((fma(t_3, 0.5, 0.5) * a) * a)) / (y_45_scale * y_45_scale);
double t_5 = -a * b;
double tmp;
if (b <= 2.9e-32) {
tmp = (-((sqrt((8.0 * (pow((a * b), 4.0) * (fabs(t_4) + t_4)))) / fabs(y_45_scale)) / x_45_scale_m) / (((a * b) * 4.0) * t_5)) * t_0;
} else if (b <= 1e+154) {
tmp = 0.25 * ((pow(y_45_scale, 2.0) * sqrt((8.0 * ((pow(b, 4.0) * (sqrt((pow(b, 4.0) * pow((0.5 + (0.5 * cos((0.011111111111111112 * (angle * ((double) M_PI)))))), 2.0))) + (pow(b, 2.0) * pow(cos((0.005555555555555556 * (angle * ((double) M_PI)))), 2.0)))) / pow(y_45_scale, 2.0))))) / pow(b, 2.0));
} else {
tmp = ((-sqrt((fma(b, t_1, fma(a, t_2, fabs(((a * t_2) - (b * t_1))))) * (((((-a * (b / (((x_45_scale_m * y_45_scale) * x_45_scale_m) * y_45_scale))) * (b * a)) * 4.0) * 2.0) * (((b * a) * b) * -a)))) / ((b * a) * 4.0)) / t_5) * t_0;
}
return tmp;
}
x-scale_m = abs(x_45_scale) function code(a, b, angle, x_45_scale_m, y_45_scale) t_0 = Float64(Float64(Float64(y_45_scale * x_45_scale_m) * x_45_scale_m) * y_45_scale) t_1 = Float64(b / Float64(x_45_scale_m * x_45_scale_m)) t_2 = Float64(a / Float64(y_45_scale * y_45_scale)) t_3 = cos(Float64(Float64(2.0 * pi) * Float64(0.005555555555555556 * angle))) t_4 = Float64(fma(Float64(Float64(0.5 - Float64(t_3 * 0.5)) * b), b, Float64(Float64(fma(t_3, 0.5, 0.5) * a) * a)) / Float64(y_45_scale * y_45_scale)) t_5 = Float64(Float64(-a) * b) tmp = 0.0 if (b <= 2.9e-32) tmp = Float64(Float64(Float64(-Float64(Float64(sqrt(Float64(8.0 * Float64((Float64(a * b) ^ 4.0) * Float64(abs(t_4) + t_4)))) / abs(y_45_scale)) / x_45_scale_m)) / Float64(Float64(Float64(a * b) * 4.0) * t_5)) * t_0); elseif (b <= 1e+154) tmp = Float64(0.25 * Float64(Float64((y_45_scale ^ 2.0) * sqrt(Float64(8.0 * Float64(Float64((b ^ 4.0) * Float64(sqrt(Float64((b ^ 4.0) * (Float64(0.5 + Float64(0.5 * cos(Float64(0.011111111111111112 * Float64(angle * pi))))) ^ 2.0))) + Float64((b ^ 2.0) * (cos(Float64(0.005555555555555556 * Float64(angle * pi))) ^ 2.0)))) / (y_45_scale ^ 2.0))))) / (b ^ 2.0))); else tmp = Float64(Float64(Float64(Float64(-sqrt(Float64(fma(b, t_1, fma(a, t_2, abs(Float64(Float64(a * t_2) - Float64(b * t_1))))) * Float64(Float64(Float64(Float64(Float64(Float64(-a) * Float64(b / Float64(Float64(Float64(x_45_scale_m * y_45_scale) * x_45_scale_m) * y_45_scale))) * Float64(b * a)) * 4.0) * 2.0) * Float64(Float64(Float64(b * a) * b) * Float64(-a)))))) / Float64(Float64(b * a) * 4.0)) / t_5) * t_0); end return tmp end
x-scale_m = N[Abs[x$45$scale], $MachinePrecision]
code[a_, b_, angle_, x$45$scale$95$m_, y$45$scale_] := Block[{t$95$0 = N[(N[(N[(y$45$scale * x$45$scale$95$m), $MachinePrecision] * x$45$scale$95$m), $MachinePrecision] * y$45$scale), $MachinePrecision]}, Block[{t$95$1 = N[(b / N[(x$45$scale$95$m * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(a / N[(y$45$scale * y$45$scale), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[Cos[N[(N[(2.0 * Pi), $MachinePrecision] * N[(0.005555555555555556 * angle), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$4 = N[(N[(N[(N[(0.5 - N[(t$95$3 * 0.5), $MachinePrecision]), $MachinePrecision] * b), $MachinePrecision] * b + N[(N[(N[(t$95$3 * 0.5 + 0.5), $MachinePrecision] * a), $MachinePrecision] * a), $MachinePrecision]), $MachinePrecision] / N[(y$45$scale * y$45$scale), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$5 = N[((-a) * b), $MachinePrecision]}, If[LessEqual[b, 2.9e-32], N[(N[((-N[(N[(N[Sqrt[N[(8.0 * N[(N[Power[N[(a * b), $MachinePrecision], 4.0], $MachinePrecision] * N[(N[Abs[t$95$4], $MachinePrecision] + t$95$4), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / N[Abs[y$45$scale], $MachinePrecision]), $MachinePrecision] / x$45$scale$95$m), $MachinePrecision]) / N[(N[(N[(a * b), $MachinePrecision] * 4.0), $MachinePrecision] * t$95$5), $MachinePrecision]), $MachinePrecision] * t$95$0), $MachinePrecision], If[LessEqual[b, 1e+154], N[(0.25 * N[(N[(N[Power[y$45$scale, 2.0], $MachinePrecision] * N[Sqrt[N[(8.0 * N[(N[(N[Power[b, 4.0], $MachinePrecision] * N[(N[Sqrt[N[(N[Power[b, 4.0], $MachinePrecision] * N[Power[N[(0.5 + N[(0.5 * N[Cos[N[(0.011111111111111112 * N[(angle * Pi), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision] + N[(N[Power[b, 2.0], $MachinePrecision] * N[Power[N[Cos[N[(0.005555555555555556 * N[(angle * Pi), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Power[y$45$scale, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / N[Power[b, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[((-N[Sqrt[N[(N[(b * t$95$1 + N[(a * t$95$2 + N[Abs[N[(N[(a * t$95$2), $MachinePrecision] - N[(b * t$95$1), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(N[(N[(N[((-a) * N[(b / N[(N[(N[(x$45$scale$95$m * y$45$scale), $MachinePrecision] * x$45$scale$95$m), $MachinePrecision] * y$45$scale), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(b * a), $MachinePrecision]), $MachinePrecision] * 4.0), $MachinePrecision] * 2.0), $MachinePrecision] * N[(N[(N[(b * a), $MachinePrecision] * b), $MachinePrecision] * (-a)), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]) / N[(N[(b * a), $MachinePrecision] * 4.0), $MachinePrecision]), $MachinePrecision] / t$95$5), $MachinePrecision] * t$95$0), $MachinePrecision]]]]]]]]]
\begin{array}{l}
x-scale_m = \left|x-scale\right|
\\
\begin{array}{l}
t_0 := \left(\left(y-scale \cdot x-scale\_m\right) \cdot x-scale\_m\right) \cdot y-scale\\
t_1 := \frac{b}{x-scale\_m \cdot x-scale\_m}\\
t_2 := \frac{a}{y-scale \cdot y-scale}\\
t_3 := \cos \left(\left(2 \cdot \pi\right) \cdot \left(0.005555555555555556 \cdot angle\right)\right)\\
t_4 := \frac{\mathsf{fma}\left(\left(0.5 - t\_3 \cdot 0.5\right) \cdot b, b, \left(\mathsf{fma}\left(t\_3, 0.5, 0.5\right) \cdot a\right) \cdot a\right)}{y-scale \cdot y-scale}\\
t_5 := \left(-a\right) \cdot b\\
\mathbf{if}\;b \leq 2.9 \cdot 10^{-32}:\\
\;\;\;\;\frac{-\frac{\frac{\sqrt{8 \cdot \left({\left(a \cdot b\right)}^{4} \cdot \left(\left|t\_4\right| + t\_4\right)\right)}}{\left|y-scale\right|}}{x-scale\_m}}{\left(\left(a \cdot b\right) \cdot 4\right) \cdot t\_5} \cdot t\_0\\
\mathbf{elif}\;b \leq 10^{+154}:\\
\;\;\;\;0.25 \cdot \frac{{y-scale}^{2} \cdot \sqrt{8 \cdot \frac{{b}^{4} \cdot \left(\sqrt{{b}^{4} \cdot {\left(0.5 + 0.5 \cdot \cos \left(0.011111111111111112 \cdot \left(angle \cdot \pi\right)\right)\right)}^{2}} + {b}^{2} \cdot {\cos \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right)}^{2}\right)}{{y-scale}^{2}}}}{{b}^{2}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{-\sqrt{\mathsf{fma}\left(b, t\_1, \mathsf{fma}\left(a, t\_2, \left|a \cdot t\_2 - b \cdot t\_1\right|\right)\right) \cdot \left(\left(\left(\left(\left(\left(-a\right) \cdot \frac{b}{\left(\left(x-scale\_m \cdot y-scale\right) \cdot x-scale\_m\right) \cdot y-scale}\right) \cdot \left(b \cdot a\right)\right) \cdot 4\right) \cdot 2\right) \cdot \left(\left(\left(b \cdot a\right) \cdot b\right) \cdot \left(-a\right)\right)\right)}}{\left(b \cdot a\right) \cdot 4}}{t\_5} \cdot t\_0\\
\end{array}
\end{array}
if b < 2.89999999999999996e-32Initial program 2.5%
Taylor expanded in x-scale around inf
Applied rewrites1.2%
Applied rewrites6.0%
if 2.89999999999999996e-32 < b < 1.00000000000000004e154Initial program 2.5%
Applied rewrites6.0%
Taylor expanded in a around 0
Applied rewrites1.2%
Taylor expanded in x-scale around 0
Applied rewrites4.3%
if 1.00000000000000004e154 < b Initial program 2.5%
Taylor expanded in angle around 0
Applied rewrites4.4%
Applied rewrites4.1%
Applied rewrites8.0%
x-scale_m = (fabs.f64 x-scale)
(FPCore (a b angle x-scale_m y-scale)
:precision binary64
(let* ((t_0 (/ (pow a 2.0) (pow y-scale 2.0)))
(t_1 (* (- a) b))
(t_2
(*
(/ (* (* a b) 4.0) (* y-scale x-scale_m))
(/ t_1 (* y-scale x-scale_m))))
(t_3 (/ b (* x-scale_m x-scale_m)))
(t_4 (/ (pow b 2.0) (pow x-scale_m 2.0)))
(t_5 (/ a (* y-scale y-scale))))
(if (<= b 9.2e-34)
(/
(-
(sqrt
(*
(* (* 2.0 t_2) (* (* b a) (* b (- a))))
(+ (sqrt (pow (- t_4 t_0) 2.0)) (+ t_0 t_4)))))
t_2)
(if (<= b 1e+154)
(*
0.25
(/
(*
(pow y-scale 2.0)
(sqrt
(*
8.0
(/
(*
(pow b 4.0)
(+
(sqrt
(*
(pow b 4.0)
(pow
(+ 0.5 (* 0.5 (cos (* 0.011111111111111112 (* angle PI)))))
2.0)))
(*
(pow b 2.0)
(pow (cos (* 0.005555555555555556 (* angle PI))) 2.0))))
(pow y-scale 2.0)))))
(pow b 2.0)))
(*
(/
(/
(-
(sqrt
(*
(fma b t_3 (fma a t_5 (fabs (- (* a t_5) (* b t_3)))))
(*
(*
(*
(*
(*
(- a)
(/ b (* (* (* x-scale_m y-scale) x-scale_m) y-scale)))
(* b a))
4.0)
2.0)
(* (* (* b a) b) (- a))))))
(* (* b a) 4.0))
t_1)
(* (* (* y-scale x-scale_m) x-scale_m) y-scale))))))x-scale_m = fabs(x_45_scale);
double code(double a, double b, double angle, double x_45_scale_m, double y_45_scale) {
double t_0 = pow(a, 2.0) / pow(y_45_scale, 2.0);
double t_1 = -a * b;
double t_2 = (((a * b) * 4.0) / (y_45_scale * x_45_scale_m)) * (t_1 / (y_45_scale * x_45_scale_m));
double t_3 = b / (x_45_scale_m * x_45_scale_m);
double t_4 = pow(b, 2.0) / pow(x_45_scale_m, 2.0);
double t_5 = a / (y_45_scale * y_45_scale);
double tmp;
if (b <= 9.2e-34) {
tmp = -sqrt((((2.0 * t_2) * ((b * a) * (b * -a))) * (sqrt(pow((t_4 - t_0), 2.0)) + (t_0 + t_4)))) / t_2;
} else if (b <= 1e+154) {
tmp = 0.25 * ((pow(y_45_scale, 2.0) * sqrt((8.0 * ((pow(b, 4.0) * (sqrt((pow(b, 4.0) * pow((0.5 + (0.5 * cos((0.011111111111111112 * (angle * ((double) M_PI)))))), 2.0))) + (pow(b, 2.0) * pow(cos((0.005555555555555556 * (angle * ((double) M_PI)))), 2.0)))) / pow(y_45_scale, 2.0))))) / pow(b, 2.0));
} else {
tmp = ((-sqrt((fma(b, t_3, fma(a, t_5, fabs(((a * t_5) - (b * t_3))))) * (((((-a * (b / (((x_45_scale_m * y_45_scale) * x_45_scale_m) * y_45_scale))) * (b * a)) * 4.0) * 2.0) * (((b * a) * b) * -a)))) / ((b * a) * 4.0)) / t_1) * (((y_45_scale * x_45_scale_m) * x_45_scale_m) * y_45_scale);
}
return tmp;
}
x-scale_m = abs(x_45_scale) function code(a, b, angle, x_45_scale_m, y_45_scale) t_0 = Float64((a ^ 2.0) / (y_45_scale ^ 2.0)) t_1 = Float64(Float64(-a) * b) t_2 = Float64(Float64(Float64(Float64(a * b) * 4.0) / Float64(y_45_scale * x_45_scale_m)) * Float64(t_1 / Float64(y_45_scale * x_45_scale_m))) t_3 = Float64(b / Float64(x_45_scale_m * x_45_scale_m)) t_4 = Float64((b ^ 2.0) / (x_45_scale_m ^ 2.0)) t_5 = Float64(a / Float64(y_45_scale * y_45_scale)) tmp = 0.0 if (b <= 9.2e-34) tmp = Float64(Float64(-sqrt(Float64(Float64(Float64(2.0 * t_2) * Float64(Float64(b * a) * Float64(b * Float64(-a)))) * Float64(sqrt((Float64(t_4 - t_0) ^ 2.0)) + Float64(t_0 + t_4))))) / t_2); elseif (b <= 1e+154) tmp = Float64(0.25 * Float64(Float64((y_45_scale ^ 2.0) * sqrt(Float64(8.0 * Float64(Float64((b ^ 4.0) * Float64(sqrt(Float64((b ^ 4.0) * (Float64(0.5 + Float64(0.5 * cos(Float64(0.011111111111111112 * Float64(angle * pi))))) ^ 2.0))) + Float64((b ^ 2.0) * (cos(Float64(0.005555555555555556 * Float64(angle * pi))) ^ 2.0)))) / (y_45_scale ^ 2.0))))) / (b ^ 2.0))); else tmp = Float64(Float64(Float64(Float64(-sqrt(Float64(fma(b, t_3, fma(a, t_5, abs(Float64(Float64(a * t_5) - Float64(b * t_3))))) * Float64(Float64(Float64(Float64(Float64(Float64(-a) * Float64(b / Float64(Float64(Float64(x_45_scale_m * y_45_scale) * x_45_scale_m) * y_45_scale))) * Float64(b * a)) * 4.0) * 2.0) * Float64(Float64(Float64(b * a) * b) * Float64(-a)))))) / Float64(Float64(b * a) * 4.0)) / t_1) * Float64(Float64(Float64(y_45_scale * x_45_scale_m) * x_45_scale_m) * y_45_scale)); end return tmp end
x-scale_m = N[Abs[x$45$scale], $MachinePrecision]
code[a_, b_, angle_, x$45$scale$95$m_, y$45$scale_] := Block[{t$95$0 = N[(N[Power[a, 2.0], $MachinePrecision] / N[Power[y$45$scale, 2.0], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[((-a) * b), $MachinePrecision]}, Block[{t$95$2 = N[(N[(N[(N[(a * b), $MachinePrecision] * 4.0), $MachinePrecision] / N[(y$45$scale * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision] * N[(t$95$1 / N[(y$45$scale * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(b / N[(x$45$scale$95$m * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[(N[Power[b, 2.0], $MachinePrecision] / N[Power[x$45$scale$95$m, 2.0], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$5 = N[(a / N[(y$45$scale * y$45$scale), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[b, 9.2e-34], N[((-N[Sqrt[N[(N[(N[(2.0 * t$95$2), $MachinePrecision] * N[(N[(b * a), $MachinePrecision] * N[(b * (-a)), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[Sqrt[N[Power[N[(t$95$4 - t$95$0), $MachinePrecision], 2.0], $MachinePrecision]], $MachinePrecision] + N[(t$95$0 + t$95$4), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]) / t$95$2), $MachinePrecision], If[LessEqual[b, 1e+154], N[(0.25 * N[(N[(N[Power[y$45$scale, 2.0], $MachinePrecision] * N[Sqrt[N[(8.0 * N[(N[(N[Power[b, 4.0], $MachinePrecision] * N[(N[Sqrt[N[(N[Power[b, 4.0], $MachinePrecision] * N[Power[N[(0.5 + N[(0.5 * N[Cos[N[(0.011111111111111112 * N[(angle * Pi), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision] + N[(N[Power[b, 2.0], $MachinePrecision] * N[Power[N[Cos[N[(0.005555555555555556 * N[(angle * Pi), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Power[y$45$scale, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / N[Power[b, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[((-N[Sqrt[N[(N[(b * t$95$3 + N[(a * t$95$5 + N[Abs[N[(N[(a * t$95$5), $MachinePrecision] - N[(b * t$95$3), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(N[(N[(N[((-a) * N[(b / N[(N[(N[(x$45$scale$95$m * y$45$scale), $MachinePrecision] * x$45$scale$95$m), $MachinePrecision] * y$45$scale), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(b * a), $MachinePrecision]), $MachinePrecision] * 4.0), $MachinePrecision] * 2.0), $MachinePrecision] * N[(N[(N[(b * a), $MachinePrecision] * b), $MachinePrecision] * (-a)), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]) / N[(N[(b * a), $MachinePrecision] * 4.0), $MachinePrecision]), $MachinePrecision] / t$95$1), $MachinePrecision] * N[(N[(N[(y$45$scale * x$45$scale$95$m), $MachinePrecision] * x$45$scale$95$m), $MachinePrecision] * y$45$scale), $MachinePrecision]), $MachinePrecision]]]]]]]]]
\begin{array}{l}
x-scale_m = \left|x-scale\right|
\\
\begin{array}{l}
t_0 := \frac{{a}^{2}}{{y-scale}^{2}}\\
t_1 := \left(-a\right) \cdot b\\
t_2 := \frac{\left(a \cdot b\right) \cdot 4}{y-scale \cdot x-scale\_m} \cdot \frac{t\_1}{y-scale \cdot x-scale\_m}\\
t_3 := \frac{b}{x-scale\_m \cdot x-scale\_m}\\
t_4 := \frac{{b}^{2}}{{x-scale\_m}^{2}}\\
t_5 := \frac{a}{y-scale \cdot y-scale}\\
\mathbf{if}\;b \leq 9.2 \cdot 10^{-34}:\\
\;\;\;\;\frac{-\sqrt{\left(\left(2 \cdot t\_2\right) \cdot \left(\left(b \cdot a\right) \cdot \left(b \cdot \left(-a\right)\right)\right)\right) \cdot \left(\sqrt{{\left(t\_4 - t\_0\right)}^{2}} + \left(t\_0 + t\_4\right)\right)}}{t\_2}\\
\mathbf{elif}\;b \leq 10^{+154}:\\
\;\;\;\;0.25 \cdot \frac{{y-scale}^{2} \cdot \sqrt{8 \cdot \frac{{b}^{4} \cdot \left(\sqrt{{b}^{4} \cdot {\left(0.5 + 0.5 \cdot \cos \left(0.011111111111111112 \cdot \left(angle \cdot \pi\right)\right)\right)}^{2}} + {b}^{2} \cdot {\cos \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right)}^{2}\right)}{{y-scale}^{2}}}}{{b}^{2}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{-\sqrt{\mathsf{fma}\left(b, t\_3, \mathsf{fma}\left(a, t\_5, \left|a \cdot t\_5 - b \cdot t\_3\right|\right)\right) \cdot \left(\left(\left(\left(\left(\left(-a\right) \cdot \frac{b}{\left(\left(x-scale\_m \cdot y-scale\right) \cdot x-scale\_m\right) \cdot y-scale}\right) \cdot \left(b \cdot a\right)\right) \cdot 4\right) \cdot 2\right) \cdot \left(\left(\left(b \cdot a\right) \cdot b\right) \cdot \left(-a\right)\right)\right)}}{\left(b \cdot a\right) \cdot 4}}{t\_1} \cdot \left(\left(\left(y-scale \cdot x-scale\_m\right) \cdot x-scale\_m\right) \cdot y-scale\right)\\
\end{array}
\end{array}
if b < 9.20000000000000045e-34Initial program 2.5%
Taylor expanded in angle around 0
Applied rewrites4.4%
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
*-commutativeN/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-pow.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
pow2N/A
times-fracN/A
lower-*.f64N/A
Applied rewrites5.4%
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
*-commutativeN/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-pow.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
pow2N/A
times-fracN/A
lower-*.f64N/A
Applied rewrites7.8%
if 9.20000000000000045e-34 < b < 1.00000000000000004e154Initial program 2.5%
Applied rewrites6.0%
Taylor expanded in a around 0
Applied rewrites1.2%
Taylor expanded in x-scale around 0
Applied rewrites4.3%
if 1.00000000000000004e154 < b Initial program 2.5%
Taylor expanded in angle around 0
Applied rewrites4.4%
Applied rewrites4.1%
Applied rewrites8.0%
x-scale_m = (fabs.f64 x-scale)
(FPCore (a b angle x-scale_m y-scale)
:precision binary64
(let* ((t_0 (/ b (* x-scale_m x-scale_m)))
(t_1 (/ a (* y-scale y-scale)))
(t_2 (/ 1.0 (* x-scale_m x-scale_m)))
(t_3 (* (* (* x-scale_m y-scale) x-scale_m) y-scale)))
(if (<= b 9.5e-34)
(*
(* b (/ (/ (* t_3 (* (* a a) (sqrt (* (/ (+ t_2 t_2) t_3) 8.0)))) a) a))
0.25)
(if (<= b 1e+154)
(*
0.25
(/
(*
(pow y-scale 2.0)
(sqrt
(*
8.0
(/
(*
(pow b 4.0)
(+
(sqrt
(*
(pow b 4.0)
(pow
(+ 0.5 (* 0.5 (cos (* 0.011111111111111112 (* angle PI)))))
2.0)))
(*
(pow b 2.0)
(pow (cos (* 0.005555555555555556 (* angle PI))) 2.0))))
(pow y-scale 2.0)))))
(pow b 2.0)))
(*
(/
(/
(-
(sqrt
(*
(fma b t_0 (fma a t_1 (fabs (- (* a t_1) (* b t_0)))))
(*
(* (* (* (* (- a) (/ b t_3)) (* b a)) 4.0) 2.0)
(* (* (* b a) b) (- a))))))
(* (* b a) 4.0))
(* (- a) b))
(* (* (* y-scale x-scale_m) x-scale_m) y-scale))))))x-scale_m = fabs(x_45_scale);
double code(double a, double b, double angle, double x_45_scale_m, double y_45_scale) {
double t_0 = b / (x_45_scale_m * x_45_scale_m);
double t_1 = a / (y_45_scale * y_45_scale);
double t_2 = 1.0 / (x_45_scale_m * x_45_scale_m);
double t_3 = ((x_45_scale_m * y_45_scale) * x_45_scale_m) * y_45_scale;
double tmp;
if (b <= 9.5e-34) {
tmp = (b * (((t_3 * ((a * a) * sqrt((((t_2 + t_2) / t_3) * 8.0)))) / a) / a)) * 0.25;
} else if (b <= 1e+154) {
tmp = 0.25 * ((pow(y_45_scale, 2.0) * sqrt((8.0 * ((pow(b, 4.0) * (sqrt((pow(b, 4.0) * pow((0.5 + (0.5 * cos((0.011111111111111112 * (angle * ((double) M_PI)))))), 2.0))) + (pow(b, 2.0) * pow(cos((0.005555555555555556 * (angle * ((double) M_PI)))), 2.0)))) / pow(y_45_scale, 2.0))))) / pow(b, 2.0));
} else {
tmp = ((-sqrt((fma(b, t_0, fma(a, t_1, fabs(((a * t_1) - (b * t_0))))) * (((((-a * (b / t_3)) * (b * a)) * 4.0) * 2.0) * (((b * a) * b) * -a)))) / ((b * a) * 4.0)) / (-a * b)) * (((y_45_scale * x_45_scale_m) * x_45_scale_m) * y_45_scale);
}
return tmp;
}
x-scale_m = abs(x_45_scale) function code(a, b, angle, x_45_scale_m, y_45_scale) t_0 = Float64(b / Float64(x_45_scale_m * x_45_scale_m)) t_1 = Float64(a / Float64(y_45_scale * y_45_scale)) t_2 = Float64(1.0 / Float64(x_45_scale_m * x_45_scale_m)) t_3 = Float64(Float64(Float64(x_45_scale_m * y_45_scale) * x_45_scale_m) * y_45_scale) tmp = 0.0 if (b <= 9.5e-34) tmp = Float64(Float64(b * Float64(Float64(Float64(t_3 * Float64(Float64(a * a) * sqrt(Float64(Float64(Float64(t_2 + t_2) / t_3) * 8.0)))) / a) / a)) * 0.25); elseif (b <= 1e+154) tmp = Float64(0.25 * Float64(Float64((y_45_scale ^ 2.0) * sqrt(Float64(8.0 * Float64(Float64((b ^ 4.0) * Float64(sqrt(Float64((b ^ 4.0) * (Float64(0.5 + Float64(0.5 * cos(Float64(0.011111111111111112 * Float64(angle * pi))))) ^ 2.0))) + Float64((b ^ 2.0) * (cos(Float64(0.005555555555555556 * Float64(angle * pi))) ^ 2.0)))) / (y_45_scale ^ 2.0))))) / (b ^ 2.0))); else tmp = Float64(Float64(Float64(Float64(-sqrt(Float64(fma(b, t_0, fma(a, t_1, abs(Float64(Float64(a * t_1) - Float64(b * t_0))))) * Float64(Float64(Float64(Float64(Float64(Float64(-a) * Float64(b / t_3)) * Float64(b * a)) * 4.0) * 2.0) * Float64(Float64(Float64(b * a) * b) * Float64(-a)))))) / Float64(Float64(b * a) * 4.0)) / Float64(Float64(-a) * b)) * Float64(Float64(Float64(y_45_scale * x_45_scale_m) * x_45_scale_m) * y_45_scale)); end return tmp end
x-scale_m = N[Abs[x$45$scale], $MachinePrecision]
code[a_, b_, angle_, x$45$scale$95$m_, y$45$scale_] := Block[{t$95$0 = N[(b / N[(x$45$scale$95$m * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(a / N[(y$45$scale * y$45$scale), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(1.0 / N[(x$45$scale$95$m * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(N[(x$45$scale$95$m * y$45$scale), $MachinePrecision] * x$45$scale$95$m), $MachinePrecision] * y$45$scale), $MachinePrecision]}, If[LessEqual[b, 9.5e-34], N[(N[(b * N[(N[(N[(t$95$3 * N[(N[(a * a), $MachinePrecision] * N[Sqrt[N[(N[(N[(t$95$2 + t$95$2), $MachinePrecision] / t$95$3), $MachinePrecision] * 8.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / a), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision] * 0.25), $MachinePrecision], If[LessEqual[b, 1e+154], N[(0.25 * N[(N[(N[Power[y$45$scale, 2.0], $MachinePrecision] * N[Sqrt[N[(8.0 * N[(N[(N[Power[b, 4.0], $MachinePrecision] * N[(N[Sqrt[N[(N[Power[b, 4.0], $MachinePrecision] * N[Power[N[(0.5 + N[(0.5 * N[Cos[N[(0.011111111111111112 * N[(angle * Pi), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision] + N[(N[Power[b, 2.0], $MachinePrecision] * N[Power[N[Cos[N[(0.005555555555555556 * N[(angle * Pi), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Power[y$45$scale, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / N[Power[b, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[((-N[Sqrt[N[(N[(b * t$95$0 + N[(a * t$95$1 + N[Abs[N[(N[(a * t$95$1), $MachinePrecision] - N[(b * t$95$0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(N[(N[(N[((-a) * N[(b / t$95$3), $MachinePrecision]), $MachinePrecision] * N[(b * a), $MachinePrecision]), $MachinePrecision] * 4.0), $MachinePrecision] * 2.0), $MachinePrecision] * N[(N[(N[(b * a), $MachinePrecision] * b), $MachinePrecision] * (-a)), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]) / N[(N[(b * a), $MachinePrecision] * 4.0), $MachinePrecision]), $MachinePrecision] / N[((-a) * b), $MachinePrecision]), $MachinePrecision] * N[(N[(N[(y$45$scale * x$45$scale$95$m), $MachinePrecision] * x$45$scale$95$m), $MachinePrecision] * y$45$scale), $MachinePrecision]), $MachinePrecision]]]]]]]
\begin{array}{l}
x-scale_m = \left|x-scale\right|
\\
\begin{array}{l}
t_0 := \frac{b}{x-scale\_m \cdot x-scale\_m}\\
t_1 := \frac{a}{y-scale \cdot y-scale}\\
t_2 := \frac{1}{x-scale\_m \cdot x-scale\_m}\\
t_3 := \left(\left(x-scale\_m \cdot y-scale\right) \cdot x-scale\_m\right) \cdot y-scale\\
\mathbf{if}\;b \leq 9.5 \cdot 10^{-34}:\\
\;\;\;\;\left(b \cdot \frac{\frac{t\_3 \cdot \left(\left(a \cdot a\right) \cdot \sqrt{\frac{t\_2 + t\_2}{t\_3} \cdot 8}\right)}{a}}{a}\right) \cdot 0.25\\
\mathbf{elif}\;b \leq 10^{+154}:\\
\;\;\;\;0.25 \cdot \frac{{y-scale}^{2} \cdot \sqrt{8 \cdot \frac{{b}^{4} \cdot \left(\sqrt{{b}^{4} \cdot {\left(0.5 + 0.5 \cdot \cos \left(0.011111111111111112 \cdot \left(angle \cdot \pi\right)\right)\right)}^{2}} + {b}^{2} \cdot {\cos \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right)}^{2}\right)}{{y-scale}^{2}}}}{{b}^{2}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{-\sqrt{\mathsf{fma}\left(b, t\_0, \mathsf{fma}\left(a, t\_1, \left|a \cdot t\_1 - b \cdot t\_0\right|\right)\right) \cdot \left(\left(\left(\left(\left(\left(-a\right) \cdot \frac{b}{t\_3}\right) \cdot \left(b \cdot a\right)\right) \cdot 4\right) \cdot 2\right) \cdot \left(\left(\left(b \cdot a\right) \cdot b\right) \cdot \left(-a\right)\right)\right)}}{\left(b \cdot a\right) \cdot 4}}{\left(-a\right) \cdot b} \cdot \left(\left(\left(y-scale \cdot x-scale\_m\right) \cdot x-scale\_m\right) \cdot y-scale\right)\\
\end{array}
\end{array}
if b < 9.49999999999999985e-34Initial program 2.5%
Taylor expanded in b around inf
Applied rewrites0.9%
Applied rewrites2.0%
Taylor expanded in angle around 0
lower-+.f64N/A
lower-sqrt.f64N/A
lower-/.f64N/A
lower-pow.f64N/A
lower-/.f64N/A
lower-pow.f641.7
Applied rewrites1.7%
Applied rewrites4.6%
if 9.49999999999999985e-34 < b < 1.00000000000000004e154Initial program 2.5%
Applied rewrites6.0%
Taylor expanded in a around 0
Applied rewrites1.2%
Taylor expanded in x-scale around 0
Applied rewrites4.3%
if 1.00000000000000004e154 < b Initial program 2.5%
Taylor expanded in angle around 0
Applied rewrites4.4%
Applied rewrites4.1%
Applied rewrites8.0%
x-scale_m = (fabs.f64 x-scale)
(FPCore (a b angle x-scale_m y-scale)
:precision binary64
(let* ((t_0 (/ b (* x-scale_m x-scale_m)))
(t_1 (/ a (* y-scale y-scale)))
(t_2 (* (* (* x-scale_m y-scale) x-scale_m) y-scale))
(t_3 (/ 1.0 (* x-scale_m x-scale_m))))
(if (<= a 8.5e-36)
(*
(/
(-
(*
(sqrt
(*
(* (* (* (* (- a) (/ b t_2)) (* b a)) 4.0) 2.0)
(* (* (* b a) b) (- a))))
(sqrt (fma b t_0 (fma a t_1 (fabs (- (* a t_1) (* b t_0))))))))
(* (* (* a b) 4.0) (* (- a) b)))
(* (* (* y-scale x-scale_m) x-scale_m) y-scale))
(*
(* b (/ (/ (* t_2 (* (* a a) (sqrt (* (/ (+ t_3 t_3) t_2) 8.0)))) a) a))
0.25))))x-scale_m = fabs(x_45_scale);
double code(double a, double b, double angle, double x_45_scale_m, double y_45_scale) {
double t_0 = b / (x_45_scale_m * x_45_scale_m);
double t_1 = a / (y_45_scale * y_45_scale);
double t_2 = ((x_45_scale_m * y_45_scale) * x_45_scale_m) * y_45_scale;
double t_3 = 1.0 / (x_45_scale_m * x_45_scale_m);
double tmp;
if (a <= 8.5e-36) {
tmp = (-(sqrt((((((-a * (b / t_2)) * (b * a)) * 4.0) * 2.0) * (((b * a) * b) * -a))) * sqrt(fma(b, t_0, fma(a, t_1, fabs(((a * t_1) - (b * t_0))))))) / (((a * b) * 4.0) * (-a * b))) * (((y_45_scale * x_45_scale_m) * x_45_scale_m) * y_45_scale);
} else {
tmp = (b * (((t_2 * ((a * a) * sqrt((((t_3 + t_3) / t_2) * 8.0)))) / a) / a)) * 0.25;
}
return tmp;
}
x-scale_m = abs(x_45_scale) function code(a, b, angle, x_45_scale_m, y_45_scale) t_0 = Float64(b / Float64(x_45_scale_m * x_45_scale_m)) t_1 = Float64(a / Float64(y_45_scale * y_45_scale)) t_2 = Float64(Float64(Float64(x_45_scale_m * y_45_scale) * x_45_scale_m) * y_45_scale) t_3 = Float64(1.0 / Float64(x_45_scale_m * x_45_scale_m)) tmp = 0.0 if (a <= 8.5e-36) tmp = Float64(Float64(Float64(-Float64(sqrt(Float64(Float64(Float64(Float64(Float64(Float64(-a) * Float64(b / t_2)) * Float64(b * a)) * 4.0) * 2.0) * Float64(Float64(Float64(b * a) * b) * Float64(-a)))) * sqrt(fma(b, t_0, fma(a, t_1, abs(Float64(Float64(a * t_1) - Float64(b * t_0)))))))) / Float64(Float64(Float64(a * b) * 4.0) * Float64(Float64(-a) * b))) * Float64(Float64(Float64(y_45_scale * x_45_scale_m) * x_45_scale_m) * y_45_scale)); else tmp = Float64(Float64(b * Float64(Float64(Float64(t_2 * Float64(Float64(a * a) * sqrt(Float64(Float64(Float64(t_3 + t_3) / t_2) * 8.0)))) / a) / a)) * 0.25); end return tmp end
x-scale_m = N[Abs[x$45$scale], $MachinePrecision]
code[a_, b_, angle_, x$45$scale$95$m_, y$45$scale_] := Block[{t$95$0 = N[(b / N[(x$45$scale$95$m * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(a / N[(y$45$scale * y$45$scale), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(N[(x$45$scale$95$m * y$45$scale), $MachinePrecision] * x$45$scale$95$m), $MachinePrecision] * y$45$scale), $MachinePrecision]}, Block[{t$95$3 = N[(1.0 / N[(x$45$scale$95$m * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[a, 8.5e-36], N[(N[((-N[(N[Sqrt[N[(N[(N[(N[(N[((-a) * N[(b / t$95$2), $MachinePrecision]), $MachinePrecision] * N[(b * a), $MachinePrecision]), $MachinePrecision] * 4.0), $MachinePrecision] * 2.0), $MachinePrecision] * N[(N[(N[(b * a), $MachinePrecision] * b), $MachinePrecision] * (-a)), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * N[Sqrt[N[(b * t$95$0 + N[(a * t$95$1 + N[Abs[N[(N[(a * t$95$1), $MachinePrecision] - N[(b * t$95$0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]) / N[(N[(N[(a * b), $MachinePrecision] * 4.0), $MachinePrecision] * N[((-a) * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(N[(y$45$scale * x$45$scale$95$m), $MachinePrecision] * x$45$scale$95$m), $MachinePrecision] * y$45$scale), $MachinePrecision]), $MachinePrecision], N[(N[(b * N[(N[(N[(t$95$2 * N[(N[(a * a), $MachinePrecision] * N[Sqrt[N[(N[(N[(t$95$3 + t$95$3), $MachinePrecision] / t$95$2), $MachinePrecision] * 8.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / a), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision] * 0.25), $MachinePrecision]]]]]]
\begin{array}{l}
x-scale_m = \left|x-scale\right|
\\
\begin{array}{l}
t_0 := \frac{b}{x-scale\_m \cdot x-scale\_m}\\
t_1 := \frac{a}{y-scale \cdot y-scale}\\
t_2 := \left(\left(x-scale\_m \cdot y-scale\right) \cdot x-scale\_m\right) \cdot y-scale\\
t_3 := \frac{1}{x-scale\_m \cdot x-scale\_m}\\
\mathbf{if}\;a \leq 8.5 \cdot 10^{-36}:\\
\;\;\;\;\frac{-\sqrt{\left(\left(\left(\left(\left(-a\right) \cdot \frac{b}{t\_2}\right) \cdot \left(b \cdot a\right)\right) \cdot 4\right) \cdot 2\right) \cdot \left(\left(\left(b \cdot a\right) \cdot b\right) \cdot \left(-a\right)\right)} \cdot \sqrt{\mathsf{fma}\left(b, t\_0, \mathsf{fma}\left(a, t\_1, \left|a \cdot t\_1 - b \cdot t\_0\right|\right)\right)}}{\left(\left(a \cdot b\right) \cdot 4\right) \cdot \left(\left(-a\right) \cdot b\right)} \cdot \left(\left(\left(y-scale \cdot x-scale\_m\right) \cdot x-scale\_m\right) \cdot y-scale\right)\\
\mathbf{else}:\\
\;\;\;\;\left(b \cdot \frac{\frac{t\_2 \cdot \left(\left(a \cdot a\right) \cdot \sqrt{\frac{t\_3 + t\_3}{t\_2} \cdot 8}\right)}{a}}{a}\right) \cdot 0.25\\
\end{array}
\end{array}
if a < 8.5000000000000007e-36Initial program 2.5%
Taylor expanded in angle around 0
Applied rewrites4.4%
Applied rewrites4.1%
Applied rewrites4.9%
if 8.5000000000000007e-36 < a Initial program 2.5%
Taylor expanded in b around inf
Applied rewrites0.9%
Applied rewrites2.0%
Taylor expanded in angle around 0
lower-+.f64N/A
lower-sqrt.f64N/A
lower-/.f64N/A
lower-pow.f64N/A
lower-/.f64N/A
lower-pow.f641.7
Applied rewrites1.7%
Applied rewrites4.6%
x-scale_m = (fabs.f64 x-scale)
(FPCore (a b angle x-scale_m y-scale)
:precision binary64
(let* ((t_0 (/ b (* x-scale_m x-scale_m)))
(t_1 (* (* (* x-scale_m y-scale) x-scale_m) y-scale))
(t_2 (/ a (* y-scale y-scale)))
(t_3 (/ 1.0 (* x-scale_m x-scale_m))))
(if (<= a 3e-32)
(*
(/
(/
(-
(sqrt
(*
(fma b t_0 (fma a t_2 (fabs (- (* a t_2) (* b t_0)))))
(*
(* (* (* (* (- a) (/ b t_1)) (* b a)) 4.0) 2.0)
(* (* (* b a) b) (- a))))))
(* (* b a) 4.0))
(* (- a) b))
(* (* (* y-scale x-scale_m) x-scale_m) y-scale))
(*
(* b (/ (/ (* t_1 (* (* a a) (sqrt (* (/ (+ t_3 t_3) t_1) 8.0)))) a) a))
0.25))))x-scale_m = fabs(x_45_scale);
double code(double a, double b, double angle, double x_45_scale_m, double y_45_scale) {
double t_0 = b / (x_45_scale_m * x_45_scale_m);
double t_1 = ((x_45_scale_m * y_45_scale) * x_45_scale_m) * y_45_scale;
double t_2 = a / (y_45_scale * y_45_scale);
double t_3 = 1.0 / (x_45_scale_m * x_45_scale_m);
double tmp;
if (a <= 3e-32) {
tmp = ((-sqrt((fma(b, t_0, fma(a, t_2, fabs(((a * t_2) - (b * t_0))))) * (((((-a * (b / t_1)) * (b * a)) * 4.0) * 2.0) * (((b * a) * b) * -a)))) / ((b * a) * 4.0)) / (-a * b)) * (((y_45_scale * x_45_scale_m) * x_45_scale_m) * y_45_scale);
} else {
tmp = (b * (((t_1 * ((a * a) * sqrt((((t_3 + t_3) / t_1) * 8.0)))) / a) / a)) * 0.25;
}
return tmp;
}
x-scale_m = abs(x_45_scale) function code(a, b, angle, x_45_scale_m, y_45_scale) t_0 = Float64(b / Float64(x_45_scale_m * x_45_scale_m)) t_1 = Float64(Float64(Float64(x_45_scale_m * y_45_scale) * x_45_scale_m) * y_45_scale) t_2 = Float64(a / Float64(y_45_scale * y_45_scale)) t_3 = Float64(1.0 / Float64(x_45_scale_m * x_45_scale_m)) tmp = 0.0 if (a <= 3e-32) tmp = Float64(Float64(Float64(Float64(-sqrt(Float64(fma(b, t_0, fma(a, t_2, abs(Float64(Float64(a * t_2) - Float64(b * t_0))))) * Float64(Float64(Float64(Float64(Float64(Float64(-a) * Float64(b / t_1)) * Float64(b * a)) * 4.0) * 2.0) * Float64(Float64(Float64(b * a) * b) * Float64(-a)))))) / Float64(Float64(b * a) * 4.0)) / Float64(Float64(-a) * b)) * Float64(Float64(Float64(y_45_scale * x_45_scale_m) * x_45_scale_m) * y_45_scale)); else tmp = Float64(Float64(b * Float64(Float64(Float64(t_1 * Float64(Float64(a * a) * sqrt(Float64(Float64(Float64(t_3 + t_3) / t_1) * 8.0)))) / a) / a)) * 0.25); end return tmp end
x-scale_m = N[Abs[x$45$scale], $MachinePrecision]
code[a_, b_, angle_, x$45$scale$95$m_, y$45$scale_] := Block[{t$95$0 = N[(b / N[(x$45$scale$95$m * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(N[(x$45$scale$95$m * y$45$scale), $MachinePrecision] * x$45$scale$95$m), $MachinePrecision] * y$45$scale), $MachinePrecision]}, Block[{t$95$2 = N[(a / N[(y$45$scale * y$45$scale), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(1.0 / N[(x$45$scale$95$m * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[a, 3e-32], N[(N[(N[((-N[Sqrt[N[(N[(b * t$95$0 + N[(a * t$95$2 + N[Abs[N[(N[(a * t$95$2), $MachinePrecision] - N[(b * t$95$0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(N[(N[(N[((-a) * N[(b / t$95$1), $MachinePrecision]), $MachinePrecision] * N[(b * a), $MachinePrecision]), $MachinePrecision] * 4.0), $MachinePrecision] * 2.0), $MachinePrecision] * N[(N[(N[(b * a), $MachinePrecision] * b), $MachinePrecision] * (-a)), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]) / N[(N[(b * a), $MachinePrecision] * 4.0), $MachinePrecision]), $MachinePrecision] / N[((-a) * b), $MachinePrecision]), $MachinePrecision] * N[(N[(N[(y$45$scale * x$45$scale$95$m), $MachinePrecision] * x$45$scale$95$m), $MachinePrecision] * y$45$scale), $MachinePrecision]), $MachinePrecision], N[(N[(b * N[(N[(N[(t$95$1 * N[(N[(a * a), $MachinePrecision] * N[Sqrt[N[(N[(N[(t$95$3 + t$95$3), $MachinePrecision] / t$95$1), $MachinePrecision] * 8.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / a), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision] * 0.25), $MachinePrecision]]]]]]
\begin{array}{l}
x-scale_m = \left|x-scale\right|
\\
\begin{array}{l}
t_0 := \frac{b}{x-scale\_m \cdot x-scale\_m}\\
t_1 := \left(\left(x-scale\_m \cdot y-scale\right) \cdot x-scale\_m\right) \cdot y-scale\\
t_2 := \frac{a}{y-scale \cdot y-scale}\\
t_3 := \frac{1}{x-scale\_m \cdot x-scale\_m}\\
\mathbf{if}\;a \leq 3 \cdot 10^{-32}:\\
\;\;\;\;\frac{\frac{-\sqrt{\mathsf{fma}\left(b, t\_0, \mathsf{fma}\left(a, t\_2, \left|a \cdot t\_2 - b \cdot t\_0\right|\right)\right) \cdot \left(\left(\left(\left(\left(\left(-a\right) \cdot \frac{b}{t\_1}\right) \cdot \left(b \cdot a\right)\right) \cdot 4\right) \cdot 2\right) \cdot \left(\left(\left(b \cdot a\right) \cdot b\right) \cdot \left(-a\right)\right)\right)}}{\left(b \cdot a\right) \cdot 4}}{\left(-a\right) \cdot b} \cdot \left(\left(\left(y-scale \cdot x-scale\_m\right) \cdot x-scale\_m\right) \cdot y-scale\right)\\
\mathbf{else}:\\
\;\;\;\;\left(b \cdot \frac{\frac{t\_1 \cdot \left(\left(a \cdot a\right) \cdot \sqrt{\frac{t\_3 + t\_3}{t\_1} \cdot 8}\right)}{a}}{a}\right) \cdot 0.25\\
\end{array}
\end{array}
if a < 3e-32Initial program 2.5%
Taylor expanded in angle around 0
Applied rewrites4.4%
Applied rewrites4.1%
Applied rewrites8.0%
if 3e-32 < a Initial program 2.5%
Taylor expanded in b around inf
Applied rewrites0.9%
Applied rewrites2.0%
Taylor expanded in angle around 0
lower-+.f64N/A
lower-sqrt.f64N/A
lower-/.f64N/A
lower-pow.f64N/A
lower-/.f64N/A
lower-pow.f641.7
Applied rewrites1.7%
Applied rewrites4.6%
x-scale_m = (fabs.f64 x-scale)
(FPCore (a b angle x-scale_m y-scale)
:precision binary64
(let* ((t_0 (/ b (* x-scale_m x-scale_m)))
(t_1 (* (* (* x-scale_m y-scale) x-scale_m) y-scale))
(t_2 (/ a (* y-scale y-scale)))
(t_3 (/ 1.0 (* x-scale_m x-scale_m))))
(if (<= a 2.8e-196)
(*
(/
(-
(sqrt
(*
(*
(fma b t_0 (fma a t_2 (fabs (- (* a t_2) (* b t_0)))))
(* (* (* (* (- a) (/ b t_1)) (* b a)) 4.0) 2.0))
(* (* (* b a) b) (- a)))))
(* (* (* a b) 4.0) (* (- a) b)))
(* (* (* y-scale x-scale_m) x-scale_m) y-scale))
(*
(* b (/ (/ (* t_1 (* (* a a) (sqrt (* (/ (+ t_3 t_3) t_1) 8.0)))) a) a))
0.25))))x-scale_m = fabs(x_45_scale);
double code(double a, double b, double angle, double x_45_scale_m, double y_45_scale) {
double t_0 = b / (x_45_scale_m * x_45_scale_m);
double t_1 = ((x_45_scale_m * y_45_scale) * x_45_scale_m) * y_45_scale;
double t_2 = a / (y_45_scale * y_45_scale);
double t_3 = 1.0 / (x_45_scale_m * x_45_scale_m);
double tmp;
if (a <= 2.8e-196) {
tmp = (-sqrt(((fma(b, t_0, fma(a, t_2, fabs(((a * t_2) - (b * t_0))))) * ((((-a * (b / t_1)) * (b * a)) * 4.0) * 2.0)) * (((b * a) * b) * -a))) / (((a * b) * 4.0) * (-a * b))) * (((y_45_scale * x_45_scale_m) * x_45_scale_m) * y_45_scale);
} else {
tmp = (b * (((t_1 * ((a * a) * sqrt((((t_3 + t_3) / t_1) * 8.0)))) / a) / a)) * 0.25;
}
return tmp;
}
x-scale_m = abs(x_45_scale) function code(a, b, angle, x_45_scale_m, y_45_scale) t_0 = Float64(b / Float64(x_45_scale_m * x_45_scale_m)) t_1 = Float64(Float64(Float64(x_45_scale_m * y_45_scale) * x_45_scale_m) * y_45_scale) t_2 = Float64(a / Float64(y_45_scale * y_45_scale)) t_3 = Float64(1.0 / Float64(x_45_scale_m * x_45_scale_m)) tmp = 0.0 if (a <= 2.8e-196) tmp = Float64(Float64(Float64(-sqrt(Float64(Float64(fma(b, t_0, fma(a, t_2, abs(Float64(Float64(a * t_2) - Float64(b * t_0))))) * Float64(Float64(Float64(Float64(Float64(-a) * Float64(b / t_1)) * Float64(b * a)) * 4.0) * 2.0)) * Float64(Float64(Float64(b * a) * b) * Float64(-a))))) / Float64(Float64(Float64(a * b) * 4.0) * Float64(Float64(-a) * b))) * Float64(Float64(Float64(y_45_scale * x_45_scale_m) * x_45_scale_m) * y_45_scale)); else tmp = Float64(Float64(b * Float64(Float64(Float64(t_1 * Float64(Float64(a * a) * sqrt(Float64(Float64(Float64(t_3 + t_3) / t_1) * 8.0)))) / a) / a)) * 0.25); end return tmp end
x-scale_m = N[Abs[x$45$scale], $MachinePrecision]
code[a_, b_, angle_, x$45$scale$95$m_, y$45$scale_] := Block[{t$95$0 = N[(b / N[(x$45$scale$95$m * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(N[(x$45$scale$95$m * y$45$scale), $MachinePrecision] * x$45$scale$95$m), $MachinePrecision] * y$45$scale), $MachinePrecision]}, Block[{t$95$2 = N[(a / N[(y$45$scale * y$45$scale), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(1.0 / N[(x$45$scale$95$m * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[a, 2.8e-196], N[(N[((-N[Sqrt[N[(N[(N[(b * t$95$0 + N[(a * t$95$2 + N[Abs[N[(N[(a * t$95$2), $MachinePrecision] - N[(b * t$95$0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(N[(N[((-a) * N[(b / t$95$1), $MachinePrecision]), $MachinePrecision] * N[(b * a), $MachinePrecision]), $MachinePrecision] * 4.0), $MachinePrecision] * 2.0), $MachinePrecision]), $MachinePrecision] * N[(N[(N[(b * a), $MachinePrecision] * b), $MachinePrecision] * (-a)), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]) / N[(N[(N[(a * b), $MachinePrecision] * 4.0), $MachinePrecision] * N[((-a) * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(N[(y$45$scale * x$45$scale$95$m), $MachinePrecision] * x$45$scale$95$m), $MachinePrecision] * y$45$scale), $MachinePrecision]), $MachinePrecision], N[(N[(b * N[(N[(N[(t$95$1 * N[(N[(a * a), $MachinePrecision] * N[Sqrt[N[(N[(N[(t$95$3 + t$95$3), $MachinePrecision] / t$95$1), $MachinePrecision] * 8.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / a), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision] * 0.25), $MachinePrecision]]]]]]
\begin{array}{l}
x-scale_m = \left|x-scale\right|
\\
\begin{array}{l}
t_0 := \frac{b}{x-scale\_m \cdot x-scale\_m}\\
t_1 := \left(\left(x-scale\_m \cdot y-scale\right) \cdot x-scale\_m\right) \cdot y-scale\\
t_2 := \frac{a}{y-scale \cdot y-scale}\\
t_3 := \frac{1}{x-scale\_m \cdot x-scale\_m}\\
\mathbf{if}\;a \leq 2.8 \cdot 10^{-196}:\\
\;\;\;\;\frac{-\sqrt{\left(\mathsf{fma}\left(b, t\_0, \mathsf{fma}\left(a, t\_2, \left|a \cdot t\_2 - b \cdot t\_0\right|\right)\right) \cdot \left(\left(\left(\left(\left(-a\right) \cdot \frac{b}{t\_1}\right) \cdot \left(b \cdot a\right)\right) \cdot 4\right) \cdot 2\right)\right) \cdot \left(\left(\left(b \cdot a\right) \cdot b\right) \cdot \left(-a\right)\right)}}{\left(\left(a \cdot b\right) \cdot 4\right) \cdot \left(\left(-a\right) \cdot b\right)} \cdot \left(\left(\left(y-scale \cdot x-scale\_m\right) \cdot x-scale\_m\right) \cdot y-scale\right)\\
\mathbf{else}:\\
\;\;\;\;\left(b \cdot \frac{\frac{t\_1 \cdot \left(\left(a \cdot a\right) \cdot \sqrt{\frac{t\_3 + t\_3}{t\_1} \cdot 8}\right)}{a}}{a}\right) \cdot 0.25\\
\end{array}
\end{array}
if a < 2.7999999999999998e-196Initial program 2.5%
Taylor expanded in angle around 0
Applied rewrites4.4%
Applied rewrites4.1%
Applied rewrites5.0%
if 2.7999999999999998e-196 < a Initial program 2.5%
Taylor expanded in b around inf
Applied rewrites0.9%
Applied rewrites2.0%
Taylor expanded in angle around 0
lower-+.f64N/A
lower-sqrt.f64N/A
lower-/.f64N/A
lower-pow.f64N/A
lower-/.f64N/A
lower-pow.f641.7
Applied rewrites1.7%
Applied rewrites4.6%
x-scale_m = (fabs.f64 x-scale)
(FPCore (a b angle x-scale_m y-scale)
:precision binary64
(let* ((t_0 (/ b (* x-scale_m x-scale_m)))
(t_1 (* (* x-scale_m y-scale) x-scale_m))
(t_2 (* t_1 y-scale))
(t_3 (/ a (* y-scale y-scale)))
(t_4 (/ 1.0 (* x-scale_m x-scale_m))))
(if (<= a 8.5e-36)
(*
(*
(/
(-
(sqrt
(*
(fma b t_0 (fma a t_3 (fabs (- (* a t_3) (* b t_0)))))
(*
(* (* (* (* (- a) (/ b t_2)) (* b a)) 4.0) 2.0)
(* (* (* b a) b) (- a))))))
(* (* b a) (* 4.0 (* (- a) b))))
t_1)
y-scale)
(*
(* b (/ (/ (* t_2 (* (* a a) (sqrt (* (/ (+ t_4 t_4) t_2) 8.0)))) a) a))
0.25))))x-scale_m = fabs(x_45_scale);
double code(double a, double b, double angle, double x_45_scale_m, double y_45_scale) {
double t_0 = b / (x_45_scale_m * x_45_scale_m);
double t_1 = (x_45_scale_m * y_45_scale) * x_45_scale_m;
double t_2 = t_1 * y_45_scale;
double t_3 = a / (y_45_scale * y_45_scale);
double t_4 = 1.0 / (x_45_scale_m * x_45_scale_m);
double tmp;
if (a <= 8.5e-36) {
tmp = ((-sqrt((fma(b, t_0, fma(a, t_3, fabs(((a * t_3) - (b * t_0))))) * (((((-a * (b / t_2)) * (b * a)) * 4.0) * 2.0) * (((b * a) * b) * -a)))) / ((b * a) * (4.0 * (-a * b)))) * t_1) * y_45_scale;
} else {
tmp = (b * (((t_2 * ((a * a) * sqrt((((t_4 + t_4) / t_2) * 8.0)))) / a) / a)) * 0.25;
}
return tmp;
}
x-scale_m = abs(x_45_scale) function code(a, b, angle, x_45_scale_m, y_45_scale) t_0 = Float64(b / Float64(x_45_scale_m * x_45_scale_m)) t_1 = Float64(Float64(x_45_scale_m * y_45_scale) * x_45_scale_m) t_2 = Float64(t_1 * y_45_scale) t_3 = Float64(a / Float64(y_45_scale * y_45_scale)) t_4 = Float64(1.0 / Float64(x_45_scale_m * x_45_scale_m)) tmp = 0.0 if (a <= 8.5e-36) tmp = Float64(Float64(Float64(Float64(-sqrt(Float64(fma(b, t_0, fma(a, t_3, abs(Float64(Float64(a * t_3) - Float64(b * t_0))))) * Float64(Float64(Float64(Float64(Float64(Float64(-a) * Float64(b / t_2)) * Float64(b * a)) * 4.0) * 2.0) * Float64(Float64(Float64(b * a) * b) * Float64(-a)))))) / Float64(Float64(b * a) * Float64(4.0 * Float64(Float64(-a) * b)))) * t_1) * y_45_scale); else tmp = Float64(Float64(b * Float64(Float64(Float64(t_2 * Float64(Float64(a * a) * sqrt(Float64(Float64(Float64(t_4 + t_4) / t_2) * 8.0)))) / a) / a)) * 0.25); end return tmp end
x-scale_m = N[Abs[x$45$scale], $MachinePrecision]
code[a_, b_, angle_, x$45$scale$95$m_, y$45$scale_] := Block[{t$95$0 = N[(b / N[(x$45$scale$95$m * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(x$45$scale$95$m * y$45$scale), $MachinePrecision] * x$45$scale$95$m), $MachinePrecision]}, Block[{t$95$2 = N[(t$95$1 * y$45$scale), $MachinePrecision]}, Block[{t$95$3 = N[(a / N[(y$45$scale * y$45$scale), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[(1.0 / N[(x$45$scale$95$m * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[a, 8.5e-36], N[(N[(N[((-N[Sqrt[N[(N[(b * t$95$0 + N[(a * t$95$3 + N[Abs[N[(N[(a * t$95$3), $MachinePrecision] - N[(b * t$95$0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(N[(N[(N[((-a) * N[(b / t$95$2), $MachinePrecision]), $MachinePrecision] * N[(b * a), $MachinePrecision]), $MachinePrecision] * 4.0), $MachinePrecision] * 2.0), $MachinePrecision] * N[(N[(N[(b * a), $MachinePrecision] * b), $MachinePrecision] * (-a)), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]) / N[(N[(b * a), $MachinePrecision] * N[(4.0 * N[((-a) * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * t$95$1), $MachinePrecision] * y$45$scale), $MachinePrecision], N[(N[(b * N[(N[(N[(t$95$2 * N[(N[(a * a), $MachinePrecision] * N[Sqrt[N[(N[(N[(t$95$4 + t$95$4), $MachinePrecision] / t$95$2), $MachinePrecision] * 8.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / a), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision] * 0.25), $MachinePrecision]]]]]]]
\begin{array}{l}
x-scale_m = \left|x-scale\right|
\\
\begin{array}{l}
t_0 := \frac{b}{x-scale\_m \cdot x-scale\_m}\\
t_1 := \left(x-scale\_m \cdot y-scale\right) \cdot x-scale\_m\\
t_2 := t\_1 \cdot y-scale\\
t_3 := \frac{a}{y-scale \cdot y-scale}\\
t_4 := \frac{1}{x-scale\_m \cdot x-scale\_m}\\
\mathbf{if}\;a \leq 8.5 \cdot 10^{-36}:\\
\;\;\;\;\left(\frac{-\sqrt{\mathsf{fma}\left(b, t\_0, \mathsf{fma}\left(a, t\_3, \left|a \cdot t\_3 - b \cdot t\_0\right|\right)\right) \cdot \left(\left(\left(\left(\left(\left(-a\right) \cdot \frac{b}{t\_2}\right) \cdot \left(b \cdot a\right)\right) \cdot 4\right) \cdot 2\right) \cdot \left(\left(\left(b \cdot a\right) \cdot b\right) \cdot \left(-a\right)\right)\right)}}{\left(b \cdot a\right) \cdot \left(4 \cdot \left(\left(-a\right) \cdot b\right)\right)} \cdot t\_1\right) \cdot y-scale\\
\mathbf{else}:\\
\;\;\;\;\left(b \cdot \frac{\frac{t\_2 \cdot \left(\left(a \cdot a\right) \cdot \sqrt{\frac{t\_4 + t\_4}{t\_2} \cdot 8}\right)}{a}}{a}\right) \cdot 0.25\\
\end{array}
\end{array}
if a < 8.5000000000000007e-36Initial program 2.5%
Taylor expanded in angle around 0
Applied rewrites4.4%
Applied rewrites4.1%
Applied rewrites4.8%
if 8.5000000000000007e-36 < a Initial program 2.5%
Taylor expanded in b around inf
Applied rewrites0.9%
Applied rewrites2.0%
Taylor expanded in angle around 0
lower-+.f64N/A
lower-sqrt.f64N/A
lower-/.f64N/A
lower-pow.f64N/A
lower-/.f64N/A
lower-pow.f641.7
Applied rewrites1.7%
Applied rewrites4.6%
x-scale_m = (fabs.f64 x-scale)
(FPCore (a b angle x-scale_m y-scale)
:precision binary64
(let* ((t_0 (/ 1.0 (* x-scale_m x-scale_m)))
(t_1 (* (* (* x-scale_m y-scale) x-scale_m) y-scale)))
(if (<= x-scale_m 9.5e+111)
(*
(* b (/ (/ (* t_1 (* (* a a) (sqrt (* (/ (+ t_0 t_0) t_1) 8.0)))) a) a))
0.25)
(*
-0.25
(/
(*
b
(*
x-scale_m
(*
(pow y-scale 2.0)
(*
angle
(/
(sqrt
(*
8.0
(*
(fma
(/ (sqrt (* (* PI PI) (* PI PI))) (* y-scale y-scale))
3.08641975308642e-5
(/ (* 3.08641975308642e-5 (* PI PI)) (* y-scale y-scale)))
(* (* (* a a) a) a))))
(fabs y-scale))))))
(pow a 2.0))))))x-scale_m = fabs(x_45_scale);
double code(double a, double b, double angle, double x_45_scale_m, double y_45_scale) {
double t_0 = 1.0 / (x_45_scale_m * x_45_scale_m);
double t_1 = ((x_45_scale_m * y_45_scale) * x_45_scale_m) * y_45_scale;
double tmp;
if (x_45_scale_m <= 9.5e+111) {
tmp = (b * (((t_1 * ((a * a) * sqrt((((t_0 + t_0) / t_1) * 8.0)))) / a) / a)) * 0.25;
} else {
tmp = -0.25 * ((b * (x_45_scale_m * (pow(y_45_scale, 2.0) * (angle * (sqrt((8.0 * (fma((sqrt(((((double) M_PI) * ((double) M_PI)) * (((double) M_PI) * ((double) M_PI)))) / (y_45_scale * y_45_scale)), 3.08641975308642e-5, ((3.08641975308642e-5 * (((double) M_PI) * ((double) M_PI))) / (y_45_scale * y_45_scale))) * (((a * a) * a) * a)))) / fabs(y_45_scale)))))) / pow(a, 2.0));
}
return tmp;
}
x-scale_m = abs(x_45_scale) function code(a, b, angle, x_45_scale_m, y_45_scale) t_0 = Float64(1.0 / Float64(x_45_scale_m * x_45_scale_m)) t_1 = Float64(Float64(Float64(x_45_scale_m * y_45_scale) * x_45_scale_m) * y_45_scale) tmp = 0.0 if (x_45_scale_m <= 9.5e+111) tmp = Float64(Float64(b * Float64(Float64(Float64(t_1 * Float64(Float64(a * a) * sqrt(Float64(Float64(Float64(t_0 + t_0) / t_1) * 8.0)))) / a) / a)) * 0.25); else tmp = Float64(-0.25 * Float64(Float64(b * Float64(x_45_scale_m * Float64((y_45_scale ^ 2.0) * Float64(angle * Float64(sqrt(Float64(8.0 * Float64(fma(Float64(sqrt(Float64(Float64(pi * pi) * Float64(pi * pi))) / Float64(y_45_scale * y_45_scale)), 3.08641975308642e-5, Float64(Float64(3.08641975308642e-5 * Float64(pi * pi)) / Float64(y_45_scale * y_45_scale))) * Float64(Float64(Float64(a * a) * a) * a)))) / abs(y_45_scale)))))) / (a ^ 2.0))); end return tmp end
x-scale_m = N[Abs[x$45$scale], $MachinePrecision]
code[a_, b_, angle_, x$45$scale$95$m_, y$45$scale_] := Block[{t$95$0 = N[(1.0 / N[(x$45$scale$95$m * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(N[(x$45$scale$95$m * y$45$scale), $MachinePrecision] * x$45$scale$95$m), $MachinePrecision] * y$45$scale), $MachinePrecision]}, If[LessEqual[x$45$scale$95$m, 9.5e+111], N[(N[(b * N[(N[(N[(t$95$1 * N[(N[(a * a), $MachinePrecision] * N[Sqrt[N[(N[(N[(t$95$0 + t$95$0), $MachinePrecision] / t$95$1), $MachinePrecision] * 8.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / a), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision] * 0.25), $MachinePrecision], N[(-0.25 * N[(N[(b * N[(x$45$scale$95$m * N[(N[Power[y$45$scale, 2.0], $MachinePrecision] * N[(angle * N[(N[Sqrt[N[(8.0 * N[(N[(N[(N[Sqrt[N[(N[(Pi * Pi), $MachinePrecision] * N[(Pi * Pi), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / N[(y$45$scale * y$45$scale), $MachinePrecision]), $MachinePrecision] * 3.08641975308642e-5 + N[(N[(3.08641975308642e-5 * N[(Pi * Pi), $MachinePrecision]), $MachinePrecision] / N[(y$45$scale * y$45$scale), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(N[(a * a), $MachinePrecision] * a), $MachinePrecision] * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / N[Abs[y$45$scale], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Power[a, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
x-scale_m = \left|x-scale\right|
\\
\begin{array}{l}
t_0 := \frac{1}{x-scale\_m \cdot x-scale\_m}\\
t_1 := \left(\left(x-scale\_m \cdot y-scale\right) \cdot x-scale\_m\right) \cdot y-scale\\
\mathbf{if}\;x-scale\_m \leq 9.5 \cdot 10^{+111}:\\
\;\;\;\;\left(b \cdot \frac{\frac{t\_1 \cdot \left(\left(a \cdot a\right) \cdot \sqrt{\frac{t\_0 + t\_0}{t\_1} \cdot 8}\right)}{a}}{a}\right) \cdot 0.25\\
\mathbf{else}:\\
\;\;\;\;-0.25 \cdot \frac{b \cdot \left(x-scale\_m \cdot \left({y-scale}^{2} \cdot \left(angle \cdot \frac{\sqrt{8 \cdot \left(\mathsf{fma}\left(\frac{\sqrt{\left(\pi \cdot \pi\right) \cdot \left(\pi \cdot \pi\right)}}{y-scale \cdot y-scale}, 3.08641975308642 \cdot 10^{-5}, \frac{3.08641975308642 \cdot 10^{-5} \cdot \left(\pi \cdot \pi\right)}{y-scale \cdot y-scale}\right) \cdot \left(\left(\left(a \cdot a\right) \cdot a\right) \cdot a\right)\right)}}{\left|y-scale\right|}\right)\right)\right)}{{a}^{2}}\\
\end{array}
\end{array}
if x-scale < 9.50000000000000019e111Initial program 2.5%
Taylor expanded in b around inf
Applied rewrites0.9%
Applied rewrites2.0%
Taylor expanded in angle around 0
lower-+.f64N/A
lower-sqrt.f64N/A
lower-/.f64N/A
lower-pow.f64N/A
lower-/.f64N/A
lower-pow.f641.7
Applied rewrites1.7%
Applied rewrites4.6%
if 9.50000000000000019e111 < x-scale Initial program 2.5%
Taylor expanded in b around inf
Applied rewrites0.9%
Taylor expanded in x-scale around -inf
Applied rewrites1.7%
Taylor expanded in angle around 0
lower-*.f64N/A
lower-sqrt.f64N/A
lower-*.f64N/A
Applied rewrites2.1%
Applied rewrites2.3%
x-scale_m = (fabs.f64 x-scale)
(FPCore (a b angle x-scale_m y-scale)
:precision binary64
(let* ((t_0 (/ 1.0 (* x-scale_m x-scale_m)))
(t_1 (* (* (* x-scale_m y-scale) x-scale_m) y-scale)))
(if (<= x-scale_m 6.2e+131)
(*
(* b (/ (/ (* t_1 (* (* a a) (sqrt (* (/ (+ t_0 t_0) t_1) 8.0)))) a) a))
0.25)
(*
-0.25
(*
b
(/
(*
(* x-scale_m (* y-scale y-scale))
(*
(*
(*
(* a a)
(sqrt
(/
(fma
(/ (sqrt (* (* PI PI) (* PI PI))) (* y-scale y-scale))
3.08641975308642e-5
(/ (* 3.08641975308642e-5 (* PI PI)) (* y-scale y-scale)))
(* y-scale y-scale))))
(sqrt 8.0))
angle))
(* a a)))))))x-scale_m = fabs(x_45_scale);
double code(double a, double b, double angle, double x_45_scale_m, double y_45_scale) {
double t_0 = 1.0 / (x_45_scale_m * x_45_scale_m);
double t_1 = ((x_45_scale_m * y_45_scale) * x_45_scale_m) * y_45_scale;
double tmp;
if (x_45_scale_m <= 6.2e+131) {
tmp = (b * (((t_1 * ((a * a) * sqrt((((t_0 + t_0) / t_1) * 8.0)))) / a) / a)) * 0.25;
} else {
tmp = -0.25 * (b * (((x_45_scale_m * (y_45_scale * y_45_scale)) * ((((a * a) * sqrt((fma((sqrt(((((double) M_PI) * ((double) M_PI)) * (((double) M_PI) * ((double) M_PI)))) / (y_45_scale * y_45_scale)), 3.08641975308642e-5, ((3.08641975308642e-5 * (((double) M_PI) * ((double) M_PI))) / (y_45_scale * y_45_scale))) / (y_45_scale * y_45_scale)))) * sqrt(8.0)) * angle)) / (a * a)));
}
return tmp;
}
x-scale_m = abs(x_45_scale) function code(a, b, angle, x_45_scale_m, y_45_scale) t_0 = Float64(1.0 / Float64(x_45_scale_m * x_45_scale_m)) t_1 = Float64(Float64(Float64(x_45_scale_m * y_45_scale) * x_45_scale_m) * y_45_scale) tmp = 0.0 if (x_45_scale_m <= 6.2e+131) tmp = Float64(Float64(b * Float64(Float64(Float64(t_1 * Float64(Float64(a * a) * sqrt(Float64(Float64(Float64(t_0 + t_0) / t_1) * 8.0)))) / a) / a)) * 0.25); else tmp = Float64(-0.25 * Float64(b * Float64(Float64(Float64(x_45_scale_m * Float64(y_45_scale * y_45_scale)) * Float64(Float64(Float64(Float64(a * a) * sqrt(Float64(fma(Float64(sqrt(Float64(Float64(pi * pi) * Float64(pi * pi))) / Float64(y_45_scale * y_45_scale)), 3.08641975308642e-5, Float64(Float64(3.08641975308642e-5 * Float64(pi * pi)) / Float64(y_45_scale * y_45_scale))) / Float64(y_45_scale * y_45_scale)))) * sqrt(8.0)) * angle)) / Float64(a * a)))); end return tmp end
x-scale_m = N[Abs[x$45$scale], $MachinePrecision]
code[a_, b_, angle_, x$45$scale$95$m_, y$45$scale_] := Block[{t$95$0 = N[(1.0 / N[(x$45$scale$95$m * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(N[(x$45$scale$95$m * y$45$scale), $MachinePrecision] * x$45$scale$95$m), $MachinePrecision] * y$45$scale), $MachinePrecision]}, If[LessEqual[x$45$scale$95$m, 6.2e+131], N[(N[(b * N[(N[(N[(t$95$1 * N[(N[(a * a), $MachinePrecision] * N[Sqrt[N[(N[(N[(t$95$0 + t$95$0), $MachinePrecision] / t$95$1), $MachinePrecision] * 8.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / a), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision] * 0.25), $MachinePrecision], N[(-0.25 * N[(b * N[(N[(N[(x$45$scale$95$m * N[(y$45$scale * y$45$scale), $MachinePrecision]), $MachinePrecision] * N[(N[(N[(N[(a * a), $MachinePrecision] * N[Sqrt[N[(N[(N[(N[Sqrt[N[(N[(Pi * Pi), $MachinePrecision] * N[(Pi * Pi), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / N[(y$45$scale * y$45$scale), $MachinePrecision]), $MachinePrecision] * 3.08641975308642e-5 + N[(N[(3.08641975308642e-5 * N[(Pi * Pi), $MachinePrecision]), $MachinePrecision] / N[(y$45$scale * y$45$scale), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(y$45$scale * y$45$scale), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] * N[Sqrt[8.0], $MachinePrecision]), $MachinePrecision] * angle), $MachinePrecision]), $MachinePrecision] / N[(a * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
x-scale_m = \left|x-scale\right|
\\
\begin{array}{l}
t_0 := \frac{1}{x-scale\_m \cdot x-scale\_m}\\
t_1 := \left(\left(x-scale\_m \cdot y-scale\right) \cdot x-scale\_m\right) \cdot y-scale\\
\mathbf{if}\;x-scale\_m \leq 6.2 \cdot 10^{+131}:\\
\;\;\;\;\left(b \cdot \frac{\frac{t\_1 \cdot \left(\left(a \cdot a\right) \cdot \sqrt{\frac{t\_0 + t\_0}{t\_1} \cdot 8}\right)}{a}}{a}\right) \cdot 0.25\\
\mathbf{else}:\\
\;\;\;\;-0.25 \cdot \left(b \cdot \frac{\left(x-scale\_m \cdot \left(y-scale \cdot y-scale\right)\right) \cdot \left(\left(\left(\left(a \cdot a\right) \cdot \sqrt{\frac{\mathsf{fma}\left(\frac{\sqrt{\left(\pi \cdot \pi\right) \cdot \left(\pi \cdot \pi\right)}}{y-scale \cdot y-scale}, 3.08641975308642 \cdot 10^{-5}, \frac{3.08641975308642 \cdot 10^{-5} \cdot \left(\pi \cdot \pi\right)}{y-scale \cdot y-scale}\right)}{y-scale \cdot y-scale}}\right) \cdot \sqrt{8}\right) \cdot angle\right)}{a \cdot a}\right)\\
\end{array}
\end{array}
if x-scale < 6.20000000000000032e131Initial program 2.5%
Taylor expanded in b around inf
Applied rewrites0.9%
Applied rewrites2.0%
Taylor expanded in angle around 0
lower-+.f64N/A
lower-sqrt.f64N/A
lower-/.f64N/A
lower-pow.f64N/A
lower-/.f64N/A
lower-pow.f641.7
Applied rewrites1.7%
Applied rewrites4.6%
if 6.20000000000000032e131 < x-scale Initial program 2.5%
Taylor expanded in b around inf
Applied rewrites0.9%
Taylor expanded in x-scale around -inf
Applied rewrites1.7%
Taylor expanded in angle around 0
lower-*.f64N/A
lower-sqrt.f64N/A
lower-*.f64N/A
Applied rewrites2.1%
Applied rewrites1.8%
x-scale_m = (fabs.f64 x-scale)
(FPCore (a b angle x-scale_m y-scale)
:precision binary64
(let* ((t_0 (/ 1.0 (* x-scale_m x-scale_m)))
(t_1 (* (* (* x-scale_m y-scale) x-scale_m) y-scale)))
(*
(* b (/ (/ (* t_1 (* (* a a) (sqrt (* (/ (+ t_0 t_0) t_1) 8.0)))) a) a))
0.25)))x-scale_m = fabs(x_45_scale);
double code(double a, double b, double angle, double x_45_scale_m, double y_45_scale) {
double t_0 = 1.0 / (x_45_scale_m * x_45_scale_m);
double t_1 = ((x_45_scale_m * y_45_scale) * x_45_scale_m) * y_45_scale;
return (b * (((t_1 * ((a * a) * sqrt((((t_0 + t_0) / t_1) * 8.0)))) / a) / a)) * 0.25;
}
x-scale_m = private
module fmin_fmax_functions
implicit none
private
public fmax
public fmin
interface fmax
module procedure fmax88
module procedure fmax44
module procedure fmax84
module procedure fmax48
end interface
interface fmin
module procedure fmin88
module procedure fmin44
module procedure fmin84
module procedure fmin48
end interface
contains
real(8) function fmax88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(4) function fmax44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(8) function fmax84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmax48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
end function
real(8) function fmin88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(4) function fmin44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(8) function fmin84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmin48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
end function
end module
real(8) function code(a, b, angle, x_45scale_m, y_45scale)
use fmin_fmax_functions
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: angle
real(8), intent (in) :: x_45scale_m
real(8), intent (in) :: y_45scale
real(8) :: t_0
real(8) :: t_1
t_0 = 1.0d0 / (x_45scale_m * x_45scale_m)
t_1 = ((x_45scale_m * y_45scale) * x_45scale_m) * y_45scale
code = (b * (((t_1 * ((a * a) * sqrt((((t_0 + t_0) / t_1) * 8.0d0)))) / a) / a)) * 0.25d0
end function
x-scale_m = Math.abs(x_45_scale);
public static double code(double a, double b, double angle, double x_45_scale_m, double y_45_scale) {
double t_0 = 1.0 / (x_45_scale_m * x_45_scale_m);
double t_1 = ((x_45_scale_m * y_45_scale) * x_45_scale_m) * y_45_scale;
return (b * (((t_1 * ((a * a) * Math.sqrt((((t_0 + t_0) / t_1) * 8.0)))) / a) / a)) * 0.25;
}
x-scale_m = math.fabs(x_45_scale) def code(a, b, angle, x_45_scale_m, y_45_scale): t_0 = 1.0 / (x_45_scale_m * x_45_scale_m) t_1 = ((x_45_scale_m * y_45_scale) * x_45_scale_m) * y_45_scale return (b * (((t_1 * ((a * a) * math.sqrt((((t_0 + t_0) / t_1) * 8.0)))) / a) / a)) * 0.25
x-scale_m = abs(x_45_scale) function code(a, b, angle, x_45_scale_m, y_45_scale) t_0 = Float64(1.0 / Float64(x_45_scale_m * x_45_scale_m)) t_1 = Float64(Float64(Float64(x_45_scale_m * y_45_scale) * x_45_scale_m) * y_45_scale) return Float64(Float64(b * Float64(Float64(Float64(t_1 * Float64(Float64(a * a) * sqrt(Float64(Float64(Float64(t_0 + t_0) / t_1) * 8.0)))) / a) / a)) * 0.25) end
x-scale_m = abs(x_45_scale); function tmp = code(a, b, angle, x_45_scale_m, y_45_scale) t_0 = 1.0 / (x_45_scale_m * x_45_scale_m); t_1 = ((x_45_scale_m * y_45_scale) * x_45_scale_m) * y_45_scale; tmp = (b * (((t_1 * ((a * a) * sqrt((((t_0 + t_0) / t_1) * 8.0)))) / a) / a)) * 0.25; end
x-scale_m = N[Abs[x$45$scale], $MachinePrecision]
code[a_, b_, angle_, x$45$scale$95$m_, y$45$scale_] := Block[{t$95$0 = N[(1.0 / N[(x$45$scale$95$m * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(N[(x$45$scale$95$m * y$45$scale), $MachinePrecision] * x$45$scale$95$m), $MachinePrecision] * y$45$scale), $MachinePrecision]}, N[(N[(b * N[(N[(N[(t$95$1 * N[(N[(a * a), $MachinePrecision] * N[Sqrt[N[(N[(N[(t$95$0 + t$95$0), $MachinePrecision] / t$95$1), $MachinePrecision] * 8.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / a), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision] * 0.25), $MachinePrecision]]]
\begin{array}{l}
x-scale_m = \left|x-scale\right|
\\
\begin{array}{l}
t_0 := \frac{1}{x-scale\_m \cdot x-scale\_m}\\
t_1 := \left(\left(x-scale\_m \cdot y-scale\right) \cdot x-scale\_m\right) \cdot y-scale\\
\left(b \cdot \frac{\frac{t\_1 \cdot \left(\left(a \cdot a\right) \cdot \sqrt{\frac{t\_0 + t\_0}{t\_1} \cdot 8}\right)}{a}}{a}\right) \cdot 0.25
\end{array}
\end{array}
Initial program 2.5%
Taylor expanded in b around inf
Applied rewrites0.9%
Applied rewrites2.0%
Taylor expanded in angle around 0
lower-+.f64N/A
lower-sqrt.f64N/A
lower-/.f64N/A
lower-pow.f64N/A
lower-/.f64N/A
lower-pow.f641.7
Applied rewrites1.7%
Applied rewrites4.6%
x-scale_m = (fabs.f64 x-scale)
(FPCore (a b angle x-scale_m y-scale)
:precision binary64
(let* ((t_0 (/ 1.0 (* x-scale_m x-scale_m)))
(t_1 (* (* (* x-scale_m y-scale) x-scale_m) y-scale)))
(*
(* b (* (/ t_1 a) (/ (* (* a a) (sqrt (* (/ (+ t_0 t_0) t_1) 8.0))) a)))
0.25)))x-scale_m = fabs(x_45_scale);
double code(double a, double b, double angle, double x_45_scale_m, double y_45_scale) {
double t_0 = 1.0 / (x_45_scale_m * x_45_scale_m);
double t_1 = ((x_45_scale_m * y_45_scale) * x_45_scale_m) * y_45_scale;
return (b * ((t_1 / a) * (((a * a) * sqrt((((t_0 + t_0) / t_1) * 8.0))) / a))) * 0.25;
}
x-scale_m = private
module fmin_fmax_functions
implicit none
private
public fmax
public fmin
interface fmax
module procedure fmax88
module procedure fmax44
module procedure fmax84
module procedure fmax48
end interface
interface fmin
module procedure fmin88
module procedure fmin44
module procedure fmin84
module procedure fmin48
end interface
contains
real(8) function fmax88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(4) function fmax44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(8) function fmax84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmax48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
end function
real(8) function fmin88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(4) function fmin44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(8) function fmin84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmin48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
end function
end module
real(8) function code(a, b, angle, x_45scale_m, y_45scale)
use fmin_fmax_functions
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: angle
real(8), intent (in) :: x_45scale_m
real(8), intent (in) :: y_45scale
real(8) :: t_0
real(8) :: t_1
t_0 = 1.0d0 / (x_45scale_m * x_45scale_m)
t_1 = ((x_45scale_m * y_45scale) * x_45scale_m) * y_45scale
code = (b * ((t_1 / a) * (((a * a) * sqrt((((t_0 + t_0) / t_1) * 8.0d0))) / a))) * 0.25d0
end function
x-scale_m = Math.abs(x_45_scale);
public static double code(double a, double b, double angle, double x_45_scale_m, double y_45_scale) {
double t_0 = 1.0 / (x_45_scale_m * x_45_scale_m);
double t_1 = ((x_45_scale_m * y_45_scale) * x_45_scale_m) * y_45_scale;
return (b * ((t_1 / a) * (((a * a) * Math.sqrt((((t_0 + t_0) / t_1) * 8.0))) / a))) * 0.25;
}
x-scale_m = math.fabs(x_45_scale) def code(a, b, angle, x_45_scale_m, y_45_scale): t_0 = 1.0 / (x_45_scale_m * x_45_scale_m) t_1 = ((x_45_scale_m * y_45_scale) * x_45_scale_m) * y_45_scale return (b * ((t_1 / a) * (((a * a) * math.sqrt((((t_0 + t_0) / t_1) * 8.0))) / a))) * 0.25
x-scale_m = abs(x_45_scale) function code(a, b, angle, x_45_scale_m, y_45_scale) t_0 = Float64(1.0 / Float64(x_45_scale_m * x_45_scale_m)) t_1 = Float64(Float64(Float64(x_45_scale_m * y_45_scale) * x_45_scale_m) * y_45_scale) return Float64(Float64(b * Float64(Float64(t_1 / a) * Float64(Float64(Float64(a * a) * sqrt(Float64(Float64(Float64(t_0 + t_0) / t_1) * 8.0))) / a))) * 0.25) end
x-scale_m = abs(x_45_scale); function tmp = code(a, b, angle, x_45_scale_m, y_45_scale) t_0 = 1.0 / (x_45_scale_m * x_45_scale_m); t_1 = ((x_45_scale_m * y_45_scale) * x_45_scale_m) * y_45_scale; tmp = (b * ((t_1 / a) * (((a * a) * sqrt((((t_0 + t_0) / t_1) * 8.0))) / a))) * 0.25; end
x-scale_m = N[Abs[x$45$scale], $MachinePrecision]
code[a_, b_, angle_, x$45$scale$95$m_, y$45$scale_] := Block[{t$95$0 = N[(1.0 / N[(x$45$scale$95$m * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(N[(x$45$scale$95$m * y$45$scale), $MachinePrecision] * x$45$scale$95$m), $MachinePrecision] * y$45$scale), $MachinePrecision]}, N[(N[(b * N[(N[(t$95$1 / a), $MachinePrecision] * N[(N[(N[(a * a), $MachinePrecision] * N[Sqrt[N[(N[(N[(t$95$0 + t$95$0), $MachinePrecision] / t$95$1), $MachinePrecision] * 8.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * 0.25), $MachinePrecision]]]
\begin{array}{l}
x-scale_m = \left|x-scale\right|
\\
\begin{array}{l}
t_0 := \frac{1}{x-scale\_m \cdot x-scale\_m}\\
t_1 := \left(\left(x-scale\_m \cdot y-scale\right) \cdot x-scale\_m\right) \cdot y-scale\\
\left(b \cdot \left(\frac{t\_1}{a} \cdot \frac{\left(a \cdot a\right) \cdot \sqrt{\frac{t\_0 + t\_0}{t\_1} \cdot 8}}{a}\right)\right) \cdot 0.25
\end{array}
\end{array}
Initial program 2.5%
Taylor expanded in b around inf
Applied rewrites0.9%
Applied rewrites2.0%
Taylor expanded in angle around 0
lower-+.f64N/A
lower-sqrt.f64N/A
lower-/.f64N/A
lower-pow.f64N/A
lower-/.f64N/A
lower-pow.f641.7
Applied rewrites1.7%
Applied rewrites4.0%
x-scale_m = (fabs.f64 x-scale)
(FPCore (a b angle x-scale_m y-scale)
:precision binary64
(let* ((t_0 (/ 1.0 (* x-scale_m x-scale_m)))
(t_1 (* (* x-scale_m y-scale) x-scale_m)))
(*
(*
b
(/
(*
t_1
(* y-scale (* (* a a) (sqrt (* (/ (+ t_0 t_0) (* t_1 y-scale)) 8.0)))))
(* a a)))
0.25)))x-scale_m = fabs(x_45_scale);
double code(double a, double b, double angle, double x_45_scale_m, double y_45_scale) {
double t_0 = 1.0 / (x_45_scale_m * x_45_scale_m);
double t_1 = (x_45_scale_m * y_45_scale) * x_45_scale_m;
return (b * ((t_1 * (y_45_scale * ((a * a) * sqrt((((t_0 + t_0) / (t_1 * y_45_scale)) * 8.0))))) / (a * a))) * 0.25;
}
x-scale_m = private
module fmin_fmax_functions
implicit none
private
public fmax
public fmin
interface fmax
module procedure fmax88
module procedure fmax44
module procedure fmax84
module procedure fmax48
end interface
interface fmin
module procedure fmin88
module procedure fmin44
module procedure fmin84
module procedure fmin48
end interface
contains
real(8) function fmax88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(4) function fmax44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, max(x, y), y /= y), x /= x)
end function
real(8) function fmax84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmax48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
end function
real(8) function fmin88(x, y) result (res)
real(8), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(4) function fmin44(x, y) result (res)
real(4), intent (in) :: x
real(4), intent (in) :: y
res = merge(y, merge(x, min(x, y), y /= y), x /= x)
end function
real(8) function fmin84(x, y) result(res)
real(8), intent (in) :: x
real(4), intent (in) :: y
res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
end function
real(8) function fmin48(x, y) result(res)
real(4), intent (in) :: x
real(8), intent (in) :: y
res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
end function
end module
real(8) function code(a, b, angle, x_45scale_m, y_45scale)
use fmin_fmax_functions
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: angle
real(8), intent (in) :: x_45scale_m
real(8), intent (in) :: y_45scale
real(8) :: t_0
real(8) :: t_1
t_0 = 1.0d0 / (x_45scale_m * x_45scale_m)
t_1 = (x_45scale_m * y_45scale) * x_45scale_m
code = (b * ((t_1 * (y_45scale * ((a * a) * sqrt((((t_0 + t_0) / (t_1 * y_45scale)) * 8.0d0))))) / (a * a))) * 0.25d0
end function
x-scale_m = Math.abs(x_45_scale);
public static double code(double a, double b, double angle, double x_45_scale_m, double y_45_scale) {
double t_0 = 1.0 / (x_45_scale_m * x_45_scale_m);
double t_1 = (x_45_scale_m * y_45_scale) * x_45_scale_m;
return (b * ((t_1 * (y_45_scale * ((a * a) * Math.sqrt((((t_0 + t_0) / (t_1 * y_45_scale)) * 8.0))))) / (a * a))) * 0.25;
}
x-scale_m = math.fabs(x_45_scale) def code(a, b, angle, x_45_scale_m, y_45_scale): t_0 = 1.0 / (x_45_scale_m * x_45_scale_m) t_1 = (x_45_scale_m * y_45_scale) * x_45_scale_m return (b * ((t_1 * (y_45_scale * ((a * a) * math.sqrt((((t_0 + t_0) / (t_1 * y_45_scale)) * 8.0))))) / (a * a))) * 0.25
x-scale_m = abs(x_45_scale) function code(a, b, angle, x_45_scale_m, y_45_scale) t_0 = Float64(1.0 / Float64(x_45_scale_m * x_45_scale_m)) t_1 = Float64(Float64(x_45_scale_m * y_45_scale) * x_45_scale_m) return Float64(Float64(b * Float64(Float64(t_1 * Float64(y_45_scale * Float64(Float64(a * a) * sqrt(Float64(Float64(Float64(t_0 + t_0) / Float64(t_1 * y_45_scale)) * 8.0))))) / Float64(a * a))) * 0.25) end
x-scale_m = abs(x_45_scale); function tmp = code(a, b, angle, x_45_scale_m, y_45_scale) t_0 = 1.0 / (x_45_scale_m * x_45_scale_m); t_1 = (x_45_scale_m * y_45_scale) * x_45_scale_m; tmp = (b * ((t_1 * (y_45_scale * ((a * a) * sqrt((((t_0 + t_0) / (t_1 * y_45_scale)) * 8.0))))) / (a * a))) * 0.25; end
x-scale_m = N[Abs[x$45$scale], $MachinePrecision]
code[a_, b_, angle_, x$45$scale$95$m_, y$45$scale_] := Block[{t$95$0 = N[(1.0 / N[(x$45$scale$95$m * x$45$scale$95$m), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(x$45$scale$95$m * y$45$scale), $MachinePrecision] * x$45$scale$95$m), $MachinePrecision]}, N[(N[(b * N[(N[(t$95$1 * N[(y$45$scale * N[(N[(a * a), $MachinePrecision] * N[Sqrt[N[(N[(N[(t$95$0 + t$95$0), $MachinePrecision] / N[(t$95$1 * y$45$scale), $MachinePrecision]), $MachinePrecision] * 8.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(a * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * 0.25), $MachinePrecision]]]
\begin{array}{l}
x-scale_m = \left|x-scale\right|
\\
\begin{array}{l}
t_0 := \frac{1}{x-scale\_m \cdot x-scale\_m}\\
t_1 := \left(x-scale\_m \cdot y-scale\right) \cdot x-scale\_m\\
\left(b \cdot \frac{t\_1 \cdot \left(y-scale \cdot \left(\left(a \cdot a\right) \cdot \sqrt{\frac{t\_0 + t\_0}{t\_1 \cdot y-scale} \cdot 8}\right)\right)}{a \cdot a}\right) \cdot 0.25
\end{array}
\end{array}
Initial program 2.5%
Taylor expanded in b around inf
Applied rewrites0.9%
Applied rewrites2.0%
Taylor expanded in angle around 0
lower-+.f64N/A
lower-sqrt.f64N/A
lower-/.f64N/A
lower-pow.f64N/A
lower-/.f64N/A
lower-pow.f641.7
Applied rewrites1.7%
Applied rewrites2.6%
herbie shell --seed 2025150
(FPCore (a b angle x-scale y-scale)
:name "a from scale-rotated-ellipse"
:precision binary64
(/ (- (sqrt (* (* (* 2.0 (/ (* 4.0 (* (* b a) (* b (- a)))) (pow (* x-scale y-scale) 2.0))) (* (* b a) (* b (- a)))) (+ (+ (/ (/ (+ (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)) (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))))))) (/ (* 4.0 (* (* b a) (* b (- a)))) (pow (* x-scale y-scale) 2.0))))