raw-angle from scale-rotated-ellipse

Percentage Accurate: 13.5% → 48.1%
Time: 34.8s
Alternatives: 9
Speedup: 49.1×

Specification

?
\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{angle}{180} \cdot \pi\\ t_1 := \cos t\_0\\ t_2 := \sin t\_0\\ t_3 := \frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot t\_2\right) \cdot t\_1}{x-scale}}{y-scale}\\ t_4 := \frac{\frac{{\left(a \cdot t\_1\right)}^{2} + {\left(b \cdot t\_2\right)}^{2}}{y-scale}}{y-scale}\\ t_5 := \frac{\frac{{\left(a \cdot t\_2\right)}^{2} + {\left(b \cdot t\_1\right)}^{2}}{x-scale}}{x-scale}\\ 180 \cdot \frac{\tan^{-1} \left(\frac{\left(t\_4 - t\_5\right) - \sqrt{{\left(t\_5 - t\_4\right)}^{2} + {t\_3}^{2}}}{t\_3}\right)}{\pi} \end{array} \end{array} \]
(FPCore (a b angle x-scale y-scale)
 :precision binary64
 (let* ((t_0 (* (/ angle 180.0) PI))
        (t_1 (cos t_0))
        (t_2 (sin t_0))
        (t_3
         (/
          (/ (* (* (* 2.0 (- (pow b 2.0) (pow a 2.0))) t_2) t_1) x-scale)
          y-scale))
        (t_4
         (/ (/ (+ (pow (* a t_1) 2.0) (pow (* b t_2) 2.0)) y-scale) y-scale))
        (t_5
         (/ (/ (+ (pow (* a t_2) 2.0) (pow (* b t_1) 2.0)) x-scale) x-scale)))
   (*
    180.0
    (/
     (atan
      (/ (- (- t_4 t_5) (sqrt (+ (pow (- t_5 t_4) 2.0) (pow t_3 2.0)))) t_3))
     PI))))
double code(double a, double b, double angle, double x_45_scale, double y_45_scale) {
	double t_0 = (angle / 180.0) * ((double) M_PI);
	double t_1 = cos(t_0);
	double t_2 = sin(t_0);
	double t_3 = ((((2.0 * (pow(b, 2.0) - pow(a, 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale;
	double t_4 = ((pow((a * t_1), 2.0) + pow((b * t_2), 2.0)) / y_45_scale) / y_45_scale;
	double t_5 = ((pow((a * t_2), 2.0) + pow((b * t_1), 2.0)) / x_45_scale) / x_45_scale;
	return 180.0 * (atan((((t_4 - t_5) - sqrt((pow((t_5 - t_4), 2.0) + pow(t_3, 2.0)))) / t_3)) / ((double) M_PI));
}
public static double code(double a, double b, double angle, double x_45_scale, double y_45_scale) {
	double t_0 = (angle / 180.0) * Math.PI;
	double t_1 = Math.cos(t_0);
	double t_2 = Math.sin(t_0);
	double t_3 = ((((2.0 * (Math.pow(b, 2.0) - Math.pow(a, 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale;
	double t_4 = ((Math.pow((a * t_1), 2.0) + Math.pow((b * t_2), 2.0)) / y_45_scale) / y_45_scale;
	double t_5 = ((Math.pow((a * t_2), 2.0) + Math.pow((b * t_1), 2.0)) / x_45_scale) / x_45_scale;
	return 180.0 * (Math.atan((((t_4 - t_5) - Math.sqrt((Math.pow((t_5 - t_4), 2.0) + Math.pow(t_3, 2.0)))) / t_3)) / Math.PI);
}
def code(a, b, angle, x_45_scale, y_45_scale):
	t_0 = (angle / 180.0) * math.pi
	t_1 = math.cos(t_0)
	t_2 = math.sin(t_0)
	t_3 = ((((2.0 * (math.pow(b, 2.0) - math.pow(a, 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale
	t_4 = ((math.pow((a * t_1), 2.0) + math.pow((b * t_2), 2.0)) / y_45_scale) / y_45_scale
	t_5 = ((math.pow((a * t_2), 2.0) + math.pow((b * t_1), 2.0)) / x_45_scale) / x_45_scale
	return 180.0 * (math.atan((((t_4 - t_5) - math.sqrt((math.pow((t_5 - t_4), 2.0) + math.pow(t_3, 2.0)))) / t_3)) / math.pi)
function code(a, b, angle, x_45_scale, y_45_scale)
	t_0 = Float64(Float64(angle / 180.0) * pi)
	t_1 = cos(t_0)
	t_2 = sin(t_0)
	t_3 = Float64(Float64(Float64(Float64(Float64(2.0 * Float64((b ^ 2.0) - (a ^ 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale)
	t_4 = Float64(Float64(Float64((Float64(a * t_1) ^ 2.0) + (Float64(b * t_2) ^ 2.0)) / y_45_scale) / y_45_scale)
	t_5 = Float64(Float64(Float64((Float64(a * t_2) ^ 2.0) + (Float64(b * t_1) ^ 2.0)) / x_45_scale) / x_45_scale)
	return Float64(180.0 * Float64(atan(Float64(Float64(Float64(t_4 - t_5) - sqrt(Float64((Float64(t_5 - t_4) ^ 2.0) + (t_3 ^ 2.0)))) / t_3)) / pi))
end
function tmp = code(a, b, angle, x_45_scale, y_45_scale)
	t_0 = (angle / 180.0) * pi;
	t_1 = cos(t_0);
	t_2 = sin(t_0);
	t_3 = ((((2.0 * ((b ^ 2.0) - (a ^ 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale;
	t_4 = ((((a * t_1) ^ 2.0) + ((b * t_2) ^ 2.0)) / y_45_scale) / y_45_scale;
	t_5 = ((((a * t_2) ^ 2.0) + ((b * t_1) ^ 2.0)) / x_45_scale) / x_45_scale;
	tmp = 180.0 * (atan((((t_4 - t_5) - sqrt((((t_5 - t_4) ^ 2.0) + (t_3 ^ 2.0)))) / t_3)) / pi);
end
code[a_, b_, angle_, x$45$scale_, y$45$scale_] := Block[{t$95$0 = N[(N[(angle / 180.0), $MachinePrecision] * Pi), $MachinePrecision]}, Block[{t$95$1 = N[Cos[t$95$0], $MachinePrecision]}, Block[{t$95$2 = N[Sin[t$95$0], $MachinePrecision]}, Block[{t$95$3 = N[(N[(N[(N[(N[(2.0 * N[(N[Power[b, 2.0], $MachinePrecision] - N[Power[a, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * t$95$2), $MachinePrecision] * t$95$1), $MachinePrecision] / x$45$scale), $MachinePrecision] / y$45$scale), $MachinePrecision]}, Block[{t$95$4 = N[(N[(N[(N[Power[N[(a * t$95$1), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[(b * t$95$2), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / y$45$scale), $MachinePrecision] / y$45$scale), $MachinePrecision]}, Block[{t$95$5 = N[(N[(N[(N[Power[N[(a * t$95$2), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[(b * t$95$1), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / x$45$scale), $MachinePrecision] / x$45$scale), $MachinePrecision]}, N[(180.0 * N[(N[ArcTan[N[(N[(N[(t$95$4 - t$95$5), $MachinePrecision] - N[Sqrt[N[(N[Power[N[(t$95$5 - t$95$4), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[t$95$3, 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / t$95$3), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{angle}{180} \cdot \pi\\
t_1 := \cos t\_0\\
t_2 := \sin t\_0\\
t_3 := \frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot t\_2\right) \cdot t\_1}{x-scale}}{y-scale}\\
t_4 := \frac{\frac{{\left(a \cdot t\_1\right)}^{2} + {\left(b \cdot t\_2\right)}^{2}}{y-scale}}{y-scale}\\
t_5 := \frac{\frac{{\left(a \cdot t\_2\right)}^{2} + {\left(b \cdot t\_1\right)}^{2}}{x-scale}}{x-scale}\\
180 \cdot \frac{\tan^{-1} \left(\frac{\left(t\_4 - t\_5\right) - \sqrt{{\left(t\_5 - t\_4\right)}^{2} + {t\_3}^{2}}}{t\_3}\right)}{\pi}
\end{array}
\end{array}

Local Percentage Accuracy vs ?

The average percentage accuracy by input value. Horizontal axis shows value of an input variable; the variable is choosen in the title. Vertical axis is accuracy; higher is better. Red represent the original program, while blue represents Herbie's suggestion. These can be toggled with buttons below the plot. The line is an average while dots represent individual samples.

Accuracy vs Speed?

Herbie found 9 alternatives:

AlternativeAccuracySpeedup
The accuracy (vertical axis) and speed (horizontal axis) of each alternatives. Up and to the right is better. The red square shows the initial program, and each blue circle shows an alternative.The line shows the best available speed-accuracy tradeoffs.

Initial Program: 13.5% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{angle}{180} \cdot \pi\\ t_1 := \cos t\_0\\ t_2 := \sin t\_0\\ t_3 := \frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot t\_2\right) \cdot t\_1}{x-scale}}{y-scale}\\ t_4 := \frac{\frac{{\left(a \cdot t\_1\right)}^{2} + {\left(b \cdot t\_2\right)}^{2}}{y-scale}}{y-scale}\\ t_5 := \frac{\frac{{\left(a \cdot t\_2\right)}^{2} + {\left(b \cdot t\_1\right)}^{2}}{x-scale}}{x-scale}\\ 180 \cdot \frac{\tan^{-1} \left(\frac{\left(t\_4 - t\_5\right) - \sqrt{{\left(t\_5 - t\_4\right)}^{2} + {t\_3}^{2}}}{t\_3}\right)}{\pi} \end{array} \end{array} \]
(FPCore (a b angle x-scale y-scale)
 :precision binary64
 (let* ((t_0 (* (/ angle 180.0) PI))
        (t_1 (cos t_0))
        (t_2 (sin t_0))
        (t_3
         (/
          (/ (* (* (* 2.0 (- (pow b 2.0) (pow a 2.0))) t_2) t_1) x-scale)
          y-scale))
        (t_4
         (/ (/ (+ (pow (* a t_1) 2.0) (pow (* b t_2) 2.0)) y-scale) y-scale))
        (t_5
         (/ (/ (+ (pow (* a t_2) 2.0) (pow (* b t_1) 2.0)) x-scale) x-scale)))
   (*
    180.0
    (/
     (atan
      (/ (- (- t_4 t_5) (sqrt (+ (pow (- t_5 t_4) 2.0) (pow t_3 2.0)))) t_3))
     PI))))
double code(double a, double b, double angle, double x_45_scale, double y_45_scale) {
	double t_0 = (angle / 180.0) * ((double) M_PI);
	double t_1 = cos(t_0);
	double t_2 = sin(t_0);
	double t_3 = ((((2.0 * (pow(b, 2.0) - pow(a, 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale;
	double t_4 = ((pow((a * t_1), 2.0) + pow((b * t_2), 2.0)) / y_45_scale) / y_45_scale;
	double t_5 = ((pow((a * t_2), 2.0) + pow((b * t_1), 2.0)) / x_45_scale) / x_45_scale;
	return 180.0 * (atan((((t_4 - t_5) - sqrt((pow((t_5 - t_4), 2.0) + pow(t_3, 2.0)))) / t_3)) / ((double) M_PI));
}
public static double code(double a, double b, double angle, double x_45_scale, double y_45_scale) {
	double t_0 = (angle / 180.0) * Math.PI;
	double t_1 = Math.cos(t_0);
	double t_2 = Math.sin(t_0);
	double t_3 = ((((2.0 * (Math.pow(b, 2.0) - Math.pow(a, 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale;
	double t_4 = ((Math.pow((a * t_1), 2.0) + Math.pow((b * t_2), 2.0)) / y_45_scale) / y_45_scale;
	double t_5 = ((Math.pow((a * t_2), 2.0) + Math.pow((b * t_1), 2.0)) / x_45_scale) / x_45_scale;
	return 180.0 * (Math.atan((((t_4 - t_5) - Math.sqrt((Math.pow((t_5 - t_4), 2.0) + Math.pow(t_3, 2.0)))) / t_3)) / Math.PI);
}
def code(a, b, angle, x_45_scale, y_45_scale):
	t_0 = (angle / 180.0) * math.pi
	t_1 = math.cos(t_0)
	t_2 = math.sin(t_0)
	t_3 = ((((2.0 * (math.pow(b, 2.0) - math.pow(a, 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale
	t_4 = ((math.pow((a * t_1), 2.0) + math.pow((b * t_2), 2.0)) / y_45_scale) / y_45_scale
	t_5 = ((math.pow((a * t_2), 2.0) + math.pow((b * t_1), 2.0)) / x_45_scale) / x_45_scale
	return 180.0 * (math.atan((((t_4 - t_5) - math.sqrt((math.pow((t_5 - t_4), 2.0) + math.pow(t_3, 2.0)))) / t_3)) / math.pi)
function code(a, b, angle, x_45_scale, y_45_scale)
	t_0 = Float64(Float64(angle / 180.0) * pi)
	t_1 = cos(t_0)
	t_2 = sin(t_0)
	t_3 = Float64(Float64(Float64(Float64(Float64(2.0 * Float64((b ^ 2.0) - (a ^ 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale)
	t_4 = Float64(Float64(Float64((Float64(a * t_1) ^ 2.0) + (Float64(b * t_2) ^ 2.0)) / y_45_scale) / y_45_scale)
	t_5 = Float64(Float64(Float64((Float64(a * t_2) ^ 2.0) + (Float64(b * t_1) ^ 2.0)) / x_45_scale) / x_45_scale)
	return Float64(180.0 * Float64(atan(Float64(Float64(Float64(t_4 - t_5) - sqrt(Float64((Float64(t_5 - t_4) ^ 2.0) + (t_3 ^ 2.0)))) / t_3)) / pi))
end
function tmp = code(a, b, angle, x_45_scale, y_45_scale)
	t_0 = (angle / 180.0) * pi;
	t_1 = cos(t_0);
	t_2 = sin(t_0);
	t_3 = ((((2.0 * ((b ^ 2.0) - (a ^ 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale;
	t_4 = ((((a * t_1) ^ 2.0) + ((b * t_2) ^ 2.0)) / y_45_scale) / y_45_scale;
	t_5 = ((((a * t_2) ^ 2.0) + ((b * t_1) ^ 2.0)) / x_45_scale) / x_45_scale;
	tmp = 180.0 * (atan((((t_4 - t_5) - sqrt((((t_5 - t_4) ^ 2.0) + (t_3 ^ 2.0)))) / t_3)) / pi);
end
code[a_, b_, angle_, x$45$scale_, y$45$scale_] := Block[{t$95$0 = N[(N[(angle / 180.0), $MachinePrecision] * Pi), $MachinePrecision]}, Block[{t$95$1 = N[Cos[t$95$0], $MachinePrecision]}, Block[{t$95$2 = N[Sin[t$95$0], $MachinePrecision]}, Block[{t$95$3 = N[(N[(N[(N[(N[(2.0 * N[(N[Power[b, 2.0], $MachinePrecision] - N[Power[a, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * t$95$2), $MachinePrecision] * t$95$1), $MachinePrecision] / x$45$scale), $MachinePrecision] / y$45$scale), $MachinePrecision]}, Block[{t$95$4 = N[(N[(N[(N[Power[N[(a * t$95$1), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[(b * t$95$2), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / y$45$scale), $MachinePrecision] / y$45$scale), $MachinePrecision]}, Block[{t$95$5 = N[(N[(N[(N[Power[N[(a * t$95$2), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[(b * t$95$1), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / x$45$scale), $MachinePrecision] / x$45$scale), $MachinePrecision]}, N[(180.0 * N[(N[ArcTan[N[(N[(N[(t$95$4 - t$95$5), $MachinePrecision] - N[Sqrt[N[(N[Power[N[(t$95$5 - t$95$4), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[t$95$3, 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / t$95$3), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{angle}{180} \cdot \pi\\
t_1 := \cos t\_0\\
t_2 := \sin t\_0\\
t_3 := \frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot t\_2\right) \cdot t\_1}{x-scale}}{y-scale}\\
t_4 := \frac{\frac{{\left(a \cdot t\_1\right)}^{2} + {\left(b \cdot t\_2\right)}^{2}}{y-scale}}{y-scale}\\
t_5 := \frac{\frac{{\left(a \cdot t\_2\right)}^{2} + {\left(b \cdot t\_1\right)}^{2}}{x-scale}}{x-scale}\\
180 \cdot \frac{\tan^{-1} \left(\frac{\left(t\_4 - t\_5\right) - \sqrt{{\left(t\_5 - t\_4\right)}^{2} + {t\_3}^{2}}}{t\_3}\right)}{\pi}
\end{array}
\end{array}

Alternative 1: 48.1% accurate, 3.6× speedup?

\[\begin{array}{l} a_m = \left|a\right| \\ \begin{array}{l} t_0 := 0.005555555555555556 \cdot \left(angle \cdot \pi\right)\\ t_1 := \sin t\_0\\ t_2 := \cos t\_0\\ t_3 := x-scale \cdot \left(t\_2 \cdot t\_1\right)\\ \mathbf{if}\;a\_m \leq 2.6 \cdot 10^{-84}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(-0.5 \cdot \frac{y-scale \cdot \left(\sqrt{{t\_2}^{4}} + {t\_2}^{2}\right)}{t\_3}\right)}{\pi}\\ \mathbf{else}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(0.5 \cdot \frac{y-scale \cdot \left(\sqrt{{t\_1}^{4}} + {t\_1}^{2}\right)}{t\_3}\right)}{\pi}\\ \end{array} \end{array} \]
a_m = (fabs.f64 a)
(FPCore (a_m b angle x-scale y-scale)
 :precision binary64
 (let* ((t_0 (* 0.005555555555555556 (* angle PI)))
        (t_1 (sin t_0))
        (t_2 (cos t_0))
        (t_3 (* x-scale (* t_2 t_1))))
   (if (<= a_m 2.6e-84)
     (*
      180.0
      (/
       (atan
        (* -0.5 (/ (* y-scale (+ (sqrt (pow t_2 4.0)) (pow t_2 2.0))) t_3)))
       PI))
     (*
      180.0
      (/
       (atan
        (* 0.5 (/ (* y-scale (+ (sqrt (pow t_1 4.0)) (pow t_1 2.0))) t_3)))
       PI)))))
a_m = fabs(a);
double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
	double t_0 = 0.005555555555555556 * (angle * ((double) M_PI));
	double t_1 = sin(t_0);
	double t_2 = cos(t_0);
	double t_3 = x_45_scale * (t_2 * t_1);
	double tmp;
	if (a_m <= 2.6e-84) {
		tmp = 180.0 * (atan((-0.5 * ((y_45_scale * (sqrt(pow(t_2, 4.0)) + pow(t_2, 2.0))) / t_3))) / ((double) M_PI));
	} else {
		tmp = 180.0 * (atan((0.5 * ((y_45_scale * (sqrt(pow(t_1, 4.0)) + pow(t_1, 2.0))) / t_3))) / ((double) M_PI));
	}
	return tmp;
}
a_m = Math.abs(a);
public static double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
	double t_0 = 0.005555555555555556 * (angle * Math.PI);
	double t_1 = Math.sin(t_0);
	double t_2 = Math.cos(t_0);
	double t_3 = x_45_scale * (t_2 * t_1);
	double tmp;
	if (a_m <= 2.6e-84) {
		tmp = 180.0 * (Math.atan((-0.5 * ((y_45_scale * (Math.sqrt(Math.pow(t_2, 4.0)) + Math.pow(t_2, 2.0))) / t_3))) / Math.PI);
	} else {
		tmp = 180.0 * (Math.atan((0.5 * ((y_45_scale * (Math.sqrt(Math.pow(t_1, 4.0)) + Math.pow(t_1, 2.0))) / t_3))) / Math.PI);
	}
	return tmp;
}
a_m = math.fabs(a)
def code(a_m, b, angle, x_45_scale, y_45_scale):
	t_0 = 0.005555555555555556 * (angle * math.pi)
	t_1 = math.sin(t_0)
	t_2 = math.cos(t_0)
	t_3 = x_45_scale * (t_2 * t_1)
	tmp = 0
	if a_m <= 2.6e-84:
		tmp = 180.0 * (math.atan((-0.5 * ((y_45_scale * (math.sqrt(math.pow(t_2, 4.0)) + math.pow(t_2, 2.0))) / t_3))) / math.pi)
	else:
		tmp = 180.0 * (math.atan((0.5 * ((y_45_scale * (math.sqrt(math.pow(t_1, 4.0)) + math.pow(t_1, 2.0))) / t_3))) / math.pi)
	return tmp
a_m = abs(a)
function code(a_m, b, angle, x_45_scale, y_45_scale)
	t_0 = Float64(0.005555555555555556 * Float64(angle * pi))
	t_1 = sin(t_0)
	t_2 = cos(t_0)
	t_3 = Float64(x_45_scale * Float64(t_2 * t_1))
	tmp = 0.0
	if (a_m <= 2.6e-84)
		tmp = Float64(180.0 * Float64(atan(Float64(-0.5 * Float64(Float64(y_45_scale * Float64(sqrt((t_2 ^ 4.0)) + (t_2 ^ 2.0))) / t_3))) / pi));
	else
		tmp = Float64(180.0 * Float64(atan(Float64(0.5 * Float64(Float64(y_45_scale * Float64(sqrt((t_1 ^ 4.0)) + (t_1 ^ 2.0))) / t_3))) / pi));
	end
	return tmp
end
a_m = abs(a);
function tmp_2 = code(a_m, b, angle, x_45_scale, y_45_scale)
	t_0 = 0.005555555555555556 * (angle * pi);
	t_1 = sin(t_0);
	t_2 = cos(t_0);
	t_3 = x_45_scale * (t_2 * t_1);
	tmp = 0.0;
	if (a_m <= 2.6e-84)
		tmp = 180.0 * (atan((-0.5 * ((y_45_scale * (sqrt((t_2 ^ 4.0)) + (t_2 ^ 2.0))) / t_3))) / pi);
	else
		tmp = 180.0 * (atan((0.5 * ((y_45_scale * (sqrt((t_1 ^ 4.0)) + (t_1 ^ 2.0))) / t_3))) / pi);
	end
	tmp_2 = tmp;
end
a_m = N[Abs[a], $MachinePrecision]
code[a$95$m_, b_, angle_, x$45$scale_, y$45$scale_] := Block[{t$95$0 = N[(0.005555555555555556 * N[(angle * Pi), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[Sin[t$95$0], $MachinePrecision]}, Block[{t$95$2 = N[Cos[t$95$0], $MachinePrecision]}, Block[{t$95$3 = N[(x$45$scale * N[(t$95$2 * t$95$1), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[a$95$m, 2.6e-84], N[(180.0 * N[(N[ArcTan[N[(-0.5 * N[(N[(y$45$scale * N[(N[Sqrt[N[Power[t$95$2, 4.0], $MachinePrecision]], $MachinePrecision] + N[Power[t$95$2, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$3), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(0.5 * N[(N[(y$45$scale * N[(N[Sqrt[N[Power[t$95$1, 4.0], $MachinePrecision]], $MachinePrecision] + N[Power[t$95$1, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$3), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]]]
\begin{array}{l}
a_m = \left|a\right|

\\
\begin{array}{l}
t_0 := 0.005555555555555556 \cdot \left(angle \cdot \pi\right)\\
t_1 := \sin t\_0\\
t_2 := \cos t\_0\\
t_3 := x-scale \cdot \left(t\_2 \cdot t\_1\right)\\
\mathbf{if}\;a\_m \leq 2.6 \cdot 10^{-84}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(-0.5 \cdot \frac{y-scale \cdot \left(\sqrt{{t\_2}^{4}} + {t\_2}^{2}\right)}{t\_3}\right)}{\pi}\\

\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(0.5 \cdot \frac{y-scale \cdot \left(\sqrt{{t\_1}^{4}} + {t\_1}^{2}\right)}{t\_3}\right)}{\pi}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if a < 2.6e-84

    1. Initial program 13.5%

      \[180 \cdot \frac{\tan^{-1} \left(\frac{\left(\frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale} - \frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale}\right) - \sqrt{{\left(\frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale} - \frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale}\right)}^{2} + {\left(\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}\right)}^{2}}}{\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}}\right)}{\pi} \]
    2. Taylor expanded in x-scale around 0

      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{-1}{2} \cdot \frac{y-scale \cdot \left(\sqrt{{\left({a}^{2} \cdot {\sin \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)}^{2} + {b}^{2} \cdot {\cos \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)}^{2}\right)}^{2}} + \left({a}^{2} \cdot {\sin \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)}^{2} + {b}^{2} \cdot {\cos \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)}^{2}\right)\right)}{x-scale \cdot \left(\cos \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right) \cdot \left(\sin \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right) \cdot \left({b}^{2} - {a}^{2}\right)\right)\right)}\right)}}{\pi} \]
    3. Applied rewrites24.2%

      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-0.5 \cdot \frac{y-scale \cdot \left(\sqrt{{\left(\mathsf{fma}\left({a}^{2}, {\sin \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right)}^{2}, {b}^{2} \cdot {\cos \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right)}^{2}\right)\right)}^{2}} + \mathsf{fma}\left({a}^{2}, {\sin \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right)}^{2}, {b}^{2} \cdot {\cos \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right)}^{2}\right)\right)}{x-scale \cdot \left(\cos \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right) \cdot \left(\sin \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right) \cdot \left({b}^{2} - {a}^{2}\right)\right)\right)}\right)}}{\pi} \]
    4. Taylor expanded in b around inf

      \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-1}{2} \cdot \frac{y-scale \cdot \left(\sqrt{{\cos \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)}^{4}} + {\cos \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)}^{2}\right)}{\color{blue}{x-scale \cdot \left(\cos \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right) \cdot \sin \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)\right)}}\right)}{\pi} \]
    5. Step-by-step derivation
      1. lower-/.f64N/A

        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-1}{2} \cdot \frac{y-scale \cdot \left(\sqrt{{\cos \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)}^{4}} + {\cos \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)}^{2}\right)}{x-scale \cdot \color{blue}{\left(\cos \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right) \cdot \sin \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)\right)}}\right)}{\pi} \]
    6. Applied rewrites43.4%

      \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-0.5 \cdot \frac{y-scale \cdot \left(\sqrt{{\cos \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right)}^{4}} + {\cos \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right)}^{2}\right)}{\color{blue}{x-scale \cdot \left(\cos \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right) \cdot \sin \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right)\right)}}\right)}{\pi} \]

    if 2.6e-84 < a

    1. Initial program 13.5%

      \[180 \cdot \frac{\tan^{-1} \left(\frac{\left(\frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale} - \frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale}\right) - \sqrt{{\left(\frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale} - \frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale}\right)}^{2} + {\left(\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}\right)}^{2}}}{\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}}\right)}{\pi} \]
    2. Taylor expanded in x-scale around 0

      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{-1}{2} \cdot \frac{y-scale \cdot \left(\sqrt{{\left({a}^{2} \cdot {\sin \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)}^{2} + {b}^{2} \cdot {\cos \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)}^{2}\right)}^{2}} + \left({a}^{2} \cdot {\sin \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)}^{2} + {b}^{2} \cdot {\cos \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)}^{2}\right)\right)}{x-scale \cdot \left(\cos \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right) \cdot \left(\sin \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right) \cdot \left({b}^{2} - {a}^{2}\right)\right)\right)}\right)}}{\pi} \]
    3. Applied rewrites24.2%

      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-0.5 \cdot \frac{y-scale \cdot \left(\sqrt{{\left(\mathsf{fma}\left({a}^{2}, {\sin \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right)}^{2}, {b}^{2} \cdot {\cos \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right)}^{2}\right)\right)}^{2}} + \mathsf{fma}\left({a}^{2}, {\sin \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right)}^{2}, {b}^{2} \cdot {\cos \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right)}^{2}\right)\right)}{x-scale \cdot \left(\cos \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right) \cdot \left(\sin \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right) \cdot \left({b}^{2} - {a}^{2}\right)\right)\right)}\right)}}{\pi} \]
    4. Taylor expanded in a around inf

      \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{2} \cdot \color{blue}{\frac{y-scale \cdot \left(\sqrt{{\sin \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)}^{4}} + {\sin \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)}^{2}\right)}{x-scale \cdot \left(\cos \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right) \cdot \sin \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)\right)}}\right)}{\pi} \]
    5. Step-by-step derivation
      1. lower-*.f64N/A

        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{2} \cdot \frac{y-scale \cdot \left(\sqrt{{\sin \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)}^{4}} + {\sin \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)}^{2}\right)}{\color{blue}{x-scale \cdot \left(\cos \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right) \cdot \sin \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)\right)}}\right)}{\pi} \]
    6. Applied rewrites37.7%

      \[\leadsto 180 \cdot \frac{\tan^{-1} \left(0.5 \cdot \color{blue}{\frac{y-scale \cdot \left(\sqrt{{\sin \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right)}^{4}} + {\sin \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right)}^{2}\right)}{x-scale \cdot \left(\cos \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right) \cdot \sin \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right)\right)}}\right)}{\pi} \]
  3. Recombined 2 regimes into one program.
  4. Add Preprocessing

Alternative 2: 45.3% accurate, 3.6× speedup?

\[\begin{array}{l} a_m = \left|a\right| \\ \begin{array}{l} t_0 := 0.005555555555555556 \cdot \left(angle \cdot \pi\right)\\ t_1 := \sin t\_0\\ \mathbf{if}\;a\_m \leq 2.6 \cdot 10^{-84}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{-180 \cdot \frac{y-scale}{x-scale}}{\pi \cdot angle}\right)}{\pi}\\ \mathbf{else}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(0.5 \cdot \frac{y-scale \cdot \left(\sqrt{{t\_1}^{4}} + {t\_1}^{2}\right)}{x-scale \cdot \left(\cos t\_0 \cdot t\_1\right)}\right)}{\pi}\\ \end{array} \end{array} \]
a_m = (fabs.f64 a)
(FPCore (a_m b angle x-scale y-scale)
 :precision binary64
 (let* ((t_0 (* 0.005555555555555556 (* angle PI))) (t_1 (sin t_0)))
   (if (<= a_m 2.6e-84)
     (* 180.0 (/ (atan (/ (* -180.0 (/ y-scale x-scale)) (* PI angle))) PI))
     (*
      180.0
      (/
       (atan
        (*
         0.5
         (/
          (* y-scale (+ (sqrt (pow t_1 4.0)) (pow t_1 2.0)))
          (* x-scale (* (cos t_0) t_1)))))
       PI)))))
a_m = fabs(a);
double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
	double t_0 = 0.005555555555555556 * (angle * ((double) M_PI));
	double t_1 = sin(t_0);
	double tmp;
	if (a_m <= 2.6e-84) {
		tmp = 180.0 * (atan(((-180.0 * (y_45_scale / x_45_scale)) / (((double) M_PI) * angle))) / ((double) M_PI));
	} else {
		tmp = 180.0 * (atan((0.5 * ((y_45_scale * (sqrt(pow(t_1, 4.0)) + pow(t_1, 2.0))) / (x_45_scale * (cos(t_0) * t_1))))) / ((double) M_PI));
	}
	return tmp;
}
a_m = Math.abs(a);
public static double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
	double t_0 = 0.005555555555555556 * (angle * Math.PI);
	double t_1 = Math.sin(t_0);
	double tmp;
	if (a_m <= 2.6e-84) {
		tmp = 180.0 * (Math.atan(((-180.0 * (y_45_scale / x_45_scale)) / (Math.PI * angle))) / Math.PI);
	} else {
		tmp = 180.0 * (Math.atan((0.5 * ((y_45_scale * (Math.sqrt(Math.pow(t_1, 4.0)) + Math.pow(t_1, 2.0))) / (x_45_scale * (Math.cos(t_0) * t_1))))) / Math.PI);
	}
	return tmp;
}
a_m = math.fabs(a)
def code(a_m, b, angle, x_45_scale, y_45_scale):
	t_0 = 0.005555555555555556 * (angle * math.pi)
	t_1 = math.sin(t_0)
	tmp = 0
	if a_m <= 2.6e-84:
		tmp = 180.0 * (math.atan(((-180.0 * (y_45_scale / x_45_scale)) / (math.pi * angle))) / math.pi)
	else:
		tmp = 180.0 * (math.atan((0.5 * ((y_45_scale * (math.sqrt(math.pow(t_1, 4.0)) + math.pow(t_1, 2.0))) / (x_45_scale * (math.cos(t_0) * t_1))))) / math.pi)
	return tmp
a_m = abs(a)
function code(a_m, b, angle, x_45_scale, y_45_scale)
	t_0 = Float64(0.005555555555555556 * Float64(angle * pi))
	t_1 = sin(t_0)
	tmp = 0.0
	if (a_m <= 2.6e-84)
		tmp = Float64(180.0 * Float64(atan(Float64(Float64(-180.0 * Float64(y_45_scale / x_45_scale)) / Float64(pi * angle))) / pi));
	else
		tmp = Float64(180.0 * Float64(atan(Float64(0.5 * Float64(Float64(y_45_scale * Float64(sqrt((t_1 ^ 4.0)) + (t_1 ^ 2.0))) / Float64(x_45_scale * Float64(cos(t_0) * t_1))))) / pi));
	end
	return tmp
end
a_m = abs(a);
function tmp_2 = code(a_m, b, angle, x_45_scale, y_45_scale)
	t_0 = 0.005555555555555556 * (angle * pi);
	t_1 = sin(t_0);
	tmp = 0.0;
	if (a_m <= 2.6e-84)
		tmp = 180.0 * (atan(((-180.0 * (y_45_scale / x_45_scale)) / (pi * angle))) / pi);
	else
		tmp = 180.0 * (atan((0.5 * ((y_45_scale * (sqrt((t_1 ^ 4.0)) + (t_1 ^ 2.0))) / (x_45_scale * (cos(t_0) * t_1))))) / pi);
	end
	tmp_2 = tmp;
end
a_m = N[Abs[a], $MachinePrecision]
code[a$95$m_, b_, angle_, x$45$scale_, y$45$scale_] := Block[{t$95$0 = N[(0.005555555555555556 * N[(angle * Pi), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[Sin[t$95$0], $MachinePrecision]}, If[LessEqual[a$95$m, 2.6e-84], N[(180.0 * N[(N[ArcTan[N[(N[(-180.0 * N[(y$45$scale / x$45$scale), $MachinePrecision]), $MachinePrecision] / N[(Pi * angle), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(0.5 * N[(N[(y$45$scale * N[(N[Sqrt[N[Power[t$95$1, 4.0], $MachinePrecision]], $MachinePrecision] + N[Power[t$95$1, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(x$45$scale * N[(N[Cos[t$95$0], $MachinePrecision] * t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
a_m = \left|a\right|

\\
\begin{array}{l}
t_0 := 0.005555555555555556 \cdot \left(angle \cdot \pi\right)\\
t_1 := \sin t\_0\\
\mathbf{if}\;a\_m \leq 2.6 \cdot 10^{-84}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{-180 \cdot \frac{y-scale}{x-scale}}{\pi \cdot angle}\right)}{\pi}\\

\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(0.5 \cdot \frac{y-scale \cdot \left(\sqrt{{t\_1}^{4}} + {t\_1}^{2}\right)}{x-scale \cdot \left(\cos t\_0 \cdot t\_1\right)}\right)}{\pi}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if a < 2.6e-84

    1. Initial program 13.5%

      \[180 \cdot \frac{\tan^{-1} \left(\frac{\left(\frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale} - \frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale}\right) - \sqrt{{\left(\frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale} - \frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale}\right)}^{2} + {\left(\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}\right)}^{2}}}{\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}}\right)}{\pi} \]
    2. Taylor expanded in angle around 0

      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\mathsf{PI}\left(\right) \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}}{\pi} \]
    3. Step-by-step derivation
      1. Applied rewrites11.8%

        \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}}{\pi} \]
      2. Taylor expanded in b around inf

        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \color{blue}{\frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{angle \cdot \mathsf{PI}\left(\right)}}\right)}{\pi} \]
      3. Step-by-step derivation
        1. lower-*.f64N/A

          \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{\color{blue}{angle \cdot \mathsf{PI}\left(\right)}}\right)}{\pi} \]
        2. lower-/.f64N/A

          \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{angle \cdot \color{blue}{\mathsf{PI}\left(\right)}}\right)}{\pi} \]
      4. Applied rewrites40.2%

        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \color{blue}{\frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{angle \cdot \pi}}\right)}{\pi} \]
      5. Step-by-step derivation
        1. lift-*.f64N/A

          \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{\color{blue}{angle \cdot \pi}}\right)}{\pi} \]
        2. lift-/.f64N/A

          \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{angle \cdot \color{blue}{\pi}}\right)}{\pi} \]
        3. associate-*r/N/A

          \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-90 \cdot \left(x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \color{blue}{\pi}}\right)}{\pi} \]
        4. lower-/.f64N/A

          \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-90 \cdot \left(x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \color{blue}{\pi}}\right)}{\pi} \]
      6. Applied rewrites40.2%

        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{\left(\mathsf{fma}\left(\sqrt{{x-scale}^{-4}}, y-scale, \frac{y-scale}{x-scale \cdot x-scale}\right) \cdot x-scale\right) \cdot -90}{\pi \cdot \color{blue}{angle}}\right)}{\pi} \]
      7. Taylor expanded in x-scale around 0

        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-180 \cdot \frac{y-scale}{x-scale}}{\pi \cdot angle}\right)}{\pi} \]
      8. Step-by-step derivation
        1. lower-*.f64N/A

          \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-180 \cdot \frac{y-scale}{x-scale}}{\pi \cdot angle}\right)}{\pi} \]
        2. lower-/.f6438.7

          \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-180 \cdot \frac{y-scale}{x-scale}}{\pi \cdot angle}\right)}{\pi} \]
      9. Applied rewrites38.7%

        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-180 \cdot \frac{y-scale}{x-scale}}{\pi \cdot angle}\right)}{\pi} \]

      if 2.6e-84 < a

      1. Initial program 13.5%

        \[180 \cdot \frac{\tan^{-1} \left(\frac{\left(\frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale} - \frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale}\right) - \sqrt{{\left(\frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale} - \frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale}\right)}^{2} + {\left(\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}\right)}^{2}}}{\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}}\right)}{\pi} \]
      2. Taylor expanded in x-scale around 0

        \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{-1}{2} \cdot \frac{y-scale \cdot \left(\sqrt{{\left({a}^{2} \cdot {\sin \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)}^{2} + {b}^{2} \cdot {\cos \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)}^{2}\right)}^{2}} + \left({a}^{2} \cdot {\sin \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)}^{2} + {b}^{2} \cdot {\cos \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)}^{2}\right)\right)}{x-scale \cdot \left(\cos \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right) \cdot \left(\sin \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right) \cdot \left({b}^{2} - {a}^{2}\right)\right)\right)}\right)}}{\pi} \]
      3. Applied rewrites24.2%

        \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-0.5 \cdot \frac{y-scale \cdot \left(\sqrt{{\left(\mathsf{fma}\left({a}^{2}, {\sin \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right)}^{2}, {b}^{2} \cdot {\cos \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right)}^{2}\right)\right)}^{2}} + \mathsf{fma}\left({a}^{2}, {\sin \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right)}^{2}, {b}^{2} \cdot {\cos \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right)}^{2}\right)\right)}{x-scale \cdot \left(\cos \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right) \cdot \left(\sin \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right) \cdot \left({b}^{2} - {a}^{2}\right)\right)\right)}\right)}}{\pi} \]
      4. Taylor expanded in a around inf

        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{2} \cdot \color{blue}{\frac{y-scale \cdot \left(\sqrt{{\sin \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)}^{4}} + {\sin \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)}^{2}\right)}{x-scale \cdot \left(\cos \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right) \cdot \sin \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)\right)}}\right)}{\pi} \]
      5. Step-by-step derivation
        1. lower-*.f64N/A

          \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{2} \cdot \frac{y-scale \cdot \left(\sqrt{{\sin \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)}^{4}} + {\sin \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)}^{2}\right)}{\color{blue}{x-scale \cdot \left(\cos \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right) \cdot \sin \left(\frac{1}{180} \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)\right)}}\right)}{\pi} \]
      6. Applied rewrites37.7%

        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(0.5 \cdot \color{blue}{\frac{y-scale \cdot \left(\sqrt{{\sin \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right)}^{4}} + {\sin \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right)}^{2}\right)}{x-scale \cdot \left(\cos \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right) \cdot \sin \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right)\right)}}\right)}{\pi} \]
    4. Recombined 2 regimes into one program.
    5. Add Preprocessing

    Alternative 3: 40.7% accurate, 0.9× speedup?

    \[\begin{array}{l} a_m = \left|a\right| \\ \begin{array}{l} t_0 := \frac{angle}{180} \cdot \pi\\ t_1 := \cos t\_0\\ t_2 := \sin t\_0\\ t_3 := \frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a\_m}^{2}\right)\right) \cdot t\_2\right) \cdot t\_1}{x-scale}}{y-scale}\\ t_4 := \frac{\frac{{\left(a\_m \cdot t\_1\right)}^{2} + {\left(b \cdot t\_2\right)}^{2}}{y-scale}}{y-scale}\\ t_5 := \frac{\frac{{\left(a\_m \cdot t\_2\right)}^{2} + {\left(b \cdot t\_1\right)}^{2}}{x-scale}}{x-scale}\\ \mathbf{if}\;180 \cdot \frac{\tan^{-1} \left(\frac{\left(t\_4 - t\_5\right) - \sqrt{{\left(t\_5 - t\_4\right)}^{2} + {t\_3}^{2}}}{t\_3}\right)}{\pi} \leq -90:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{\frac{\left(\left(-b\right) \cdot b\right) \cdot \frac{y-scale}{x-scale}}{\left(\pi \cdot \left(b - a\_m\right)\right) \cdot \left(b + a\_m\right)}}{angle}\right)}{\pi}\\ \mathbf{else}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \frac{2}{{x-scale}^{2}}\right)}{angle \cdot \pi}\right)}{\pi}\\ \end{array} \end{array} \]
    a_m = (fabs.f64 a)
    (FPCore (a_m b angle x-scale y-scale)
     :precision binary64
     (let* ((t_0 (* (/ angle 180.0) PI))
            (t_1 (cos t_0))
            (t_2 (sin t_0))
            (t_3
             (/
              (/ (* (* (* 2.0 (- (pow b 2.0) (pow a_m 2.0))) t_2) t_1) x-scale)
              y-scale))
            (t_4
             (/ (/ (+ (pow (* a_m t_1) 2.0) (pow (* b t_2) 2.0)) y-scale) y-scale))
            (t_5
             (/
              (/ (+ (pow (* a_m t_2) 2.0) (pow (* b t_1) 2.0)) x-scale)
              x-scale)))
       (if (<=
            (*
             180.0
             (/
              (atan
               (/
                (- (- t_4 t_5) (sqrt (+ (pow (- t_5 t_4) 2.0) (pow t_3 2.0))))
                t_3))
              PI))
            -90.0)
         (*
          180.0
          (/
           (atan
            (*
             90.0
             (/
              (/
               (* (* (- b) b) (/ y-scale x-scale))
               (* (* PI (- b a_m)) (+ b a_m)))
              angle)))
           PI))
         (*
          180.0
          (/
           (atan
            (*
             -90.0
             (/ (* x-scale (* y-scale (/ 2.0 (pow x-scale 2.0)))) (* angle PI))))
           PI)))))
    a_m = fabs(a);
    double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
    	double t_0 = (angle / 180.0) * ((double) M_PI);
    	double t_1 = cos(t_0);
    	double t_2 = sin(t_0);
    	double t_3 = ((((2.0 * (pow(b, 2.0) - pow(a_m, 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale;
    	double t_4 = ((pow((a_m * t_1), 2.0) + pow((b * t_2), 2.0)) / y_45_scale) / y_45_scale;
    	double t_5 = ((pow((a_m * t_2), 2.0) + pow((b * t_1), 2.0)) / x_45_scale) / x_45_scale;
    	double tmp;
    	if ((180.0 * (atan((((t_4 - t_5) - sqrt((pow((t_5 - t_4), 2.0) + pow(t_3, 2.0)))) / t_3)) / ((double) M_PI))) <= -90.0) {
    		tmp = 180.0 * (atan((90.0 * ((((-b * b) * (y_45_scale / x_45_scale)) / ((((double) M_PI) * (b - a_m)) * (b + a_m))) / angle))) / ((double) M_PI));
    	} else {
    		tmp = 180.0 * (atan((-90.0 * ((x_45_scale * (y_45_scale * (2.0 / pow(x_45_scale, 2.0)))) / (angle * ((double) M_PI))))) / ((double) M_PI));
    	}
    	return tmp;
    }
    
    a_m = Math.abs(a);
    public static double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
    	double t_0 = (angle / 180.0) * Math.PI;
    	double t_1 = Math.cos(t_0);
    	double t_2 = Math.sin(t_0);
    	double t_3 = ((((2.0 * (Math.pow(b, 2.0) - Math.pow(a_m, 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale;
    	double t_4 = ((Math.pow((a_m * t_1), 2.0) + Math.pow((b * t_2), 2.0)) / y_45_scale) / y_45_scale;
    	double t_5 = ((Math.pow((a_m * t_2), 2.0) + Math.pow((b * t_1), 2.0)) / x_45_scale) / x_45_scale;
    	double tmp;
    	if ((180.0 * (Math.atan((((t_4 - t_5) - Math.sqrt((Math.pow((t_5 - t_4), 2.0) + Math.pow(t_3, 2.0)))) / t_3)) / Math.PI)) <= -90.0) {
    		tmp = 180.0 * (Math.atan((90.0 * ((((-b * b) * (y_45_scale / x_45_scale)) / ((Math.PI * (b - a_m)) * (b + a_m))) / angle))) / Math.PI);
    	} else {
    		tmp = 180.0 * (Math.atan((-90.0 * ((x_45_scale * (y_45_scale * (2.0 / Math.pow(x_45_scale, 2.0)))) / (angle * Math.PI)))) / Math.PI);
    	}
    	return tmp;
    }
    
    a_m = math.fabs(a)
    def code(a_m, b, angle, x_45_scale, y_45_scale):
    	t_0 = (angle / 180.0) * math.pi
    	t_1 = math.cos(t_0)
    	t_2 = math.sin(t_0)
    	t_3 = ((((2.0 * (math.pow(b, 2.0) - math.pow(a_m, 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale
    	t_4 = ((math.pow((a_m * t_1), 2.0) + math.pow((b * t_2), 2.0)) / y_45_scale) / y_45_scale
    	t_5 = ((math.pow((a_m * t_2), 2.0) + math.pow((b * t_1), 2.0)) / x_45_scale) / x_45_scale
    	tmp = 0
    	if (180.0 * (math.atan((((t_4 - t_5) - math.sqrt((math.pow((t_5 - t_4), 2.0) + math.pow(t_3, 2.0)))) / t_3)) / math.pi)) <= -90.0:
    		tmp = 180.0 * (math.atan((90.0 * ((((-b * b) * (y_45_scale / x_45_scale)) / ((math.pi * (b - a_m)) * (b + a_m))) / angle))) / math.pi)
    	else:
    		tmp = 180.0 * (math.atan((-90.0 * ((x_45_scale * (y_45_scale * (2.0 / math.pow(x_45_scale, 2.0)))) / (angle * math.pi)))) / math.pi)
    	return tmp
    
    a_m = abs(a)
    function code(a_m, b, angle, x_45_scale, y_45_scale)
    	t_0 = Float64(Float64(angle / 180.0) * pi)
    	t_1 = cos(t_0)
    	t_2 = sin(t_0)
    	t_3 = Float64(Float64(Float64(Float64(Float64(2.0 * Float64((b ^ 2.0) - (a_m ^ 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale)
    	t_4 = Float64(Float64(Float64((Float64(a_m * t_1) ^ 2.0) + (Float64(b * t_2) ^ 2.0)) / y_45_scale) / y_45_scale)
    	t_5 = Float64(Float64(Float64((Float64(a_m * t_2) ^ 2.0) + (Float64(b * t_1) ^ 2.0)) / x_45_scale) / x_45_scale)
    	tmp = 0.0
    	if (Float64(180.0 * Float64(atan(Float64(Float64(Float64(t_4 - t_5) - sqrt(Float64((Float64(t_5 - t_4) ^ 2.0) + (t_3 ^ 2.0)))) / t_3)) / pi)) <= -90.0)
    		tmp = Float64(180.0 * Float64(atan(Float64(90.0 * Float64(Float64(Float64(Float64(Float64(-b) * b) * Float64(y_45_scale / x_45_scale)) / Float64(Float64(pi * Float64(b - a_m)) * Float64(b + a_m))) / angle))) / pi));
    	else
    		tmp = Float64(180.0 * Float64(atan(Float64(-90.0 * Float64(Float64(x_45_scale * Float64(y_45_scale * Float64(2.0 / (x_45_scale ^ 2.0)))) / Float64(angle * pi)))) / pi));
    	end
    	return tmp
    end
    
    a_m = abs(a);
    function tmp_2 = code(a_m, b, angle, x_45_scale, y_45_scale)
    	t_0 = (angle / 180.0) * pi;
    	t_1 = cos(t_0);
    	t_2 = sin(t_0);
    	t_3 = ((((2.0 * ((b ^ 2.0) - (a_m ^ 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale;
    	t_4 = ((((a_m * t_1) ^ 2.0) + ((b * t_2) ^ 2.0)) / y_45_scale) / y_45_scale;
    	t_5 = ((((a_m * t_2) ^ 2.0) + ((b * t_1) ^ 2.0)) / x_45_scale) / x_45_scale;
    	tmp = 0.0;
    	if ((180.0 * (atan((((t_4 - t_5) - sqrt((((t_5 - t_4) ^ 2.0) + (t_3 ^ 2.0)))) / t_3)) / pi)) <= -90.0)
    		tmp = 180.0 * (atan((90.0 * ((((-b * b) * (y_45_scale / x_45_scale)) / ((pi * (b - a_m)) * (b + a_m))) / angle))) / pi);
    	else
    		tmp = 180.0 * (atan((-90.0 * ((x_45_scale * (y_45_scale * (2.0 / (x_45_scale ^ 2.0)))) / (angle * pi)))) / pi);
    	end
    	tmp_2 = tmp;
    end
    
    a_m = N[Abs[a], $MachinePrecision]
    code[a$95$m_, b_, angle_, x$45$scale_, y$45$scale_] := Block[{t$95$0 = N[(N[(angle / 180.0), $MachinePrecision] * Pi), $MachinePrecision]}, Block[{t$95$1 = N[Cos[t$95$0], $MachinePrecision]}, Block[{t$95$2 = N[Sin[t$95$0], $MachinePrecision]}, Block[{t$95$3 = N[(N[(N[(N[(N[(2.0 * N[(N[Power[b, 2.0], $MachinePrecision] - N[Power[a$95$m, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * t$95$2), $MachinePrecision] * t$95$1), $MachinePrecision] / x$45$scale), $MachinePrecision] / y$45$scale), $MachinePrecision]}, Block[{t$95$4 = N[(N[(N[(N[Power[N[(a$95$m * t$95$1), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[(b * t$95$2), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / y$45$scale), $MachinePrecision] / y$45$scale), $MachinePrecision]}, Block[{t$95$5 = N[(N[(N[(N[Power[N[(a$95$m * t$95$2), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[(b * t$95$1), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / x$45$scale), $MachinePrecision] / x$45$scale), $MachinePrecision]}, If[LessEqual[N[(180.0 * N[(N[ArcTan[N[(N[(N[(t$95$4 - t$95$5), $MachinePrecision] - N[Sqrt[N[(N[Power[N[(t$95$5 - t$95$4), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[t$95$3, 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / t$95$3), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], -90.0], N[(180.0 * N[(N[ArcTan[N[(90.0 * N[(N[(N[(N[((-b) * b), $MachinePrecision] * N[(y$45$scale / x$45$scale), $MachinePrecision]), $MachinePrecision] / N[(N[(Pi * N[(b - a$95$m), $MachinePrecision]), $MachinePrecision] * N[(b + a$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / angle), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(-90.0 * N[(N[(x$45$scale * N[(y$45$scale * N[(2.0 / N[Power[x$45$scale, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(angle * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]]]]]
    
    \begin{array}{l}
    a_m = \left|a\right|
    
    \\
    \begin{array}{l}
    t_0 := \frac{angle}{180} \cdot \pi\\
    t_1 := \cos t\_0\\
    t_2 := \sin t\_0\\
    t_3 := \frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a\_m}^{2}\right)\right) \cdot t\_2\right) \cdot t\_1}{x-scale}}{y-scale}\\
    t_4 := \frac{\frac{{\left(a\_m \cdot t\_1\right)}^{2} + {\left(b \cdot t\_2\right)}^{2}}{y-scale}}{y-scale}\\
    t_5 := \frac{\frac{{\left(a\_m \cdot t\_2\right)}^{2} + {\left(b \cdot t\_1\right)}^{2}}{x-scale}}{x-scale}\\
    \mathbf{if}\;180 \cdot \frac{\tan^{-1} \left(\frac{\left(t\_4 - t\_5\right) - \sqrt{{\left(t\_5 - t\_4\right)}^{2} + {t\_3}^{2}}}{t\_3}\right)}{\pi} \leq -90:\\
    \;\;\;\;180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{\frac{\left(\left(-b\right) \cdot b\right) \cdot \frac{y-scale}{x-scale}}{\left(\pi \cdot \left(b - a\_m\right)\right) \cdot \left(b + a\_m\right)}}{angle}\right)}{\pi}\\
    
    \mathbf{else}:\\
    \;\;\;\;180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \frac{2}{{x-scale}^{2}}\right)}{angle \cdot \pi}\right)}{\pi}\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 2 regimes
    2. if (*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) y-scale) y-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) x-scale) x-scale)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) y-scale) y-scale)) #s(literal 2 binary64)) (pow.f64 (/.f64 (/.f64 (*.f64 (*.f64 (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) x-scale) y-scale) #s(literal 2 binary64))))) (/.f64 (/.f64 (*.f64 (*.f64 (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) x-scale) y-scale))) (PI.f64))) < -90

      1. Initial program 13.5%

        \[180 \cdot \frac{\tan^{-1} \left(\frac{\left(\frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale} - \frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale}\right) - \sqrt{{\left(\frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale} - \frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale}\right)}^{2} + {\left(\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}\right)}^{2}}}{\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}}\right)}{\pi} \]
      2. Taylor expanded in angle around 0

        \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\mathsf{PI}\left(\right) \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}}{\pi} \]
      3. Step-by-step derivation
        1. Applied rewrites11.8%

          \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}}{\pi} \]
        2. Step-by-step derivation
          1. lift--.f64N/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
          2. lift-+.f64N/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
          3. lift-/.f64N/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
          4. add-to-fractionN/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \frac{\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} \cdot {x-scale}^{2} + {b}^{2}}{{x-scale}^{2}}\right)\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
          5. sub-to-fractionN/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \frac{\frac{{a}^{2}}{{y-scale}^{2}} \cdot {x-scale}^{2} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} \cdot {x-scale}^{2} + {b}^{2}\right)}{{x-scale}^{2}}\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
          6. lower-/.f64N/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \frac{\frac{{a}^{2}}{{y-scale}^{2}} \cdot {x-scale}^{2} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} \cdot {x-scale}^{2} + {b}^{2}\right)}{{x-scale}^{2}}\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
        3. Applied rewrites12.2%

          \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \frac{\left(a \cdot \frac{a}{y-scale \cdot y-scale}\right) \cdot \left(x-scale \cdot x-scale\right) - \mathsf{fma}\left(\left|b \cdot \frac{b}{x-scale \cdot x-scale} - a \cdot \frac{a}{y-scale \cdot y-scale}\right| \cdot x-scale, x-scale, b \cdot b\right)}{x-scale \cdot x-scale}\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
        4. Taylor expanded in b around inf

          \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{\color{blue}{angle} \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
        5. Step-by-step derivation
          1. lower-*.f64N/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
          2. lower-/.f64N/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
          3. lower-*.f64N/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
          4. lower-pow.f6423.0

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
        6. Applied rewrites23.0%

          \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{\color{blue}{angle} \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
        7. Step-by-step derivation
          1. lift-/.f64N/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{\color{blue}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}}\right)}{\pi} \]
          2. lift-*.f64N/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{angle \cdot \color{blue}{\left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}}\right)}{\pi} \]
          3. *-commutativeN/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{\left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \color{blue}{angle}}\right)}{\pi} \]
          4. associate-/r*N/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{\frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{\pi \cdot \left({b}^{2} - {a}^{2}\right)}}{\color{blue}{angle}}\right)}{\pi} \]
          5. lower-/.f64N/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{\frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{\pi \cdot \left({b}^{2} - {a}^{2}\right)}}{\color{blue}{angle}}\right)}{\pi} \]
        8. Applied rewrites25.8%

          \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{\frac{\left(\left(-b\right) \cdot b\right) \cdot \frac{y-scale}{x-scale}}{\left(\pi \cdot \left(b - a\right)\right) \cdot \left(b + a\right)}}{\color{blue}{angle}}\right)}{\pi} \]

        if -90 < (*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) y-scale) y-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) x-scale) x-scale)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) y-scale) y-scale)) #s(literal 2 binary64)) (pow.f64 (/.f64 (/.f64 (*.f64 (*.f64 (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) x-scale) y-scale) #s(literal 2 binary64))))) (/.f64 (/.f64 (*.f64 (*.f64 (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) x-scale) y-scale))) (PI.f64)))

        1. Initial program 13.5%

          \[180 \cdot \frac{\tan^{-1} \left(\frac{\left(\frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale} - \frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale}\right) - \sqrt{{\left(\frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale} - \frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale}\right)}^{2} + {\left(\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}\right)}^{2}}}{\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}}\right)}{\pi} \]
        2. Taylor expanded in angle around 0

          \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\mathsf{PI}\left(\right) \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}}{\pi} \]
        3. Step-by-step derivation
          1. Applied rewrites11.8%

            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}}{\pi} \]
          2. Taylor expanded in b around inf

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \color{blue}{\frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{angle \cdot \mathsf{PI}\left(\right)}}\right)}{\pi} \]
          3. Step-by-step derivation
            1. lower-*.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{\color{blue}{angle \cdot \mathsf{PI}\left(\right)}}\right)}{\pi} \]
            2. lower-/.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{angle \cdot \color{blue}{\mathsf{PI}\left(\right)}}\right)}{\pi} \]
          4. Applied rewrites40.2%

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \color{blue}{\frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{angle \cdot \pi}}\right)}{\pi} \]
          5. Taylor expanded in x-scale around 0

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \frac{2}{{x-scale}^{2}}\right)}{angle \cdot \pi}\right)}{\pi} \]
          6. Step-by-step derivation
            1. lower-/.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \frac{2}{{x-scale}^{2}}\right)}{angle \cdot \pi}\right)}{\pi} \]
            2. lower-pow.f6440.2

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \frac{2}{{x-scale}^{2}}\right)}{angle \cdot \pi}\right)}{\pi} \]
          7. Applied rewrites40.2%

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \frac{2}{{x-scale}^{2}}\right)}{angle \cdot \pi}\right)}{\pi} \]
        4. Recombined 2 regimes into one program.
        5. Add Preprocessing

        Alternative 4: 39.6% accurate, 0.9× speedup?

        \[\begin{array}{l} a_m = \left|a\right| \\ \begin{array}{l} t_0 := \frac{angle}{180} \cdot \pi\\ t_1 := \cos t\_0\\ t_2 := \sin t\_0\\ t_3 := \frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a\_m}^{2}\right)\right) \cdot t\_2\right) \cdot t\_1}{x-scale}}{y-scale}\\ t_4 := \frac{\frac{{\left(a\_m \cdot t\_1\right)}^{2} + {\left(b \cdot t\_2\right)}^{2}}{y-scale}}{y-scale}\\ t_5 := \frac{\frac{{\left(a\_m \cdot t\_2\right)}^{2} + {\left(b \cdot t\_1\right)}^{2}}{x-scale}}{x-scale}\\ \mathbf{if}\;180 \cdot \frac{\tan^{-1} \left(\frac{\left(t\_4 - t\_5\right) - \sqrt{{\left(t\_5 - t\_4\right)}^{2} + {t\_3}^{2}}}{t\_3}\right)}{\pi} \leq 100:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{\frac{\left(\left(-b\right) \cdot b\right) \cdot \frac{y-scale}{x-scale}}{angle}}{\left(\pi \cdot \left(b - a\_m\right)\right) \cdot \left(b + a\_m\right)}\right)}{\pi}\\ \mathbf{else}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{-180 \cdot \frac{y-scale}{x-scale}}{\pi \cdot angle}\right)}{\pi}\\ \end{array} \end{array} \]
        a_m = (fabs.f64 a)
        (FPCore (a_m b angle x-scale y-scale)
         :precision binary64
         (let* ((t_0 (* (/ angle 180.0) PI))
                (t_1 (cos t_0))
                (t_2 (sin t_0))
                (t_3
                 (/
                  (/ (* (* (* 2.0 (- (pow b 2.0) (pow a_m 2.0))) t_2) t_1) x-scale)
                  y-scale))
                (t_4
                 (/ (/ (+ (pow (* a_m t_1) 2.0) (pow (* b t_2) 2.0)) y-scale) y-scale))
                (t_5
                 (/
                  (/ (+ (pow (* a_m t_2) 2.0) (pow (* b t_1) 2.0)) x-scale)
                  x-scale)))
           (if (<=
                (*
                 180.0
                 (/
                  (atan
                   (/
                    (- (- t_4 t_5) (sqrt (+ (pow (- t_5 t_4) 2.0) (pow t_3 2.0))))
                    t_3))
                  PI))
                100.0)
             (*
              180.0
              (/
               (atan
                (*
                 90.0
                 (/
                  (/ (* (* (- b) b) (/ y-scale x-scale)) angle)
                  (* (* PI (- b a_m)) (+ b a_m)))))
               PI))
             (* 180.0 (/ (atan (/ (* -180.0 (/ y-scale x-scale)) (* PI angle))) PI)))))
        a_m = fabs(a);
        double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
        	double t_0 = (angle / 180.0) * ((double) M_PI);
        	double t_1 = cos(t_0);
        	double t_2 = sin(t_0);
        	double t_3 = ((((2.0 * (pow(b, 2.0) - pow(a_m, 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale;
        	double t_4 = ((pow((a_m * t_1), 2.0) + pow((b * t_2), 2.0)) / y_45_scale) / y_45_scale;
        	double t_5 = ((pow((a_m * t_2), 2.0) + pow((b * t_1), 2.0)) / x_45_scale) / x_45_scale;
        	double tmp;
        	if ((180.0 * (atan((((t_4 - t_5) - sqrt((pow((t_5 - t_4), 2.0) + pow(t_3, 2.0)))) / t_3)) / ((double) M_PI))) <= 100.0) {
        		tmp = 180.0 * (atan((90.0 * ((((-b * b) * (y_45_scale / x_45_scale)) / angle) / ((((double) M_PI) * (b - a_m)) * (b + a_m))))) / ((double) M_PI));
        	} else {
        		tmp = 180.0 * (atan(((-180.0 * (y_45_scale / x_45_scale)) / (((double) M_PI) * angle))) / ((double) M_PI));
        	}
        	return tmp;
        }
        
        a_m = Math.abs(a);
        public static double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
        	double t_0 = (angle / 180.0) * Math.PI;
        	double t_1 = Math.cos(t_0);
        	double t_2 = Math.sin(t_0);
        	double t_3 = ((((2.0 * (Math.pow(b, 2.0) - Math.pow(a_m, 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale;
        	double t_4 = ((Math.pow((a_m * t_1), 2.0) + Math.pow((b * t_2), 2.0)) / y_45_scale) / y_45_scale;
        	double t_5 = ((Math.pow((a_m * t_2), 2.0) + Math.pow((b * t_1), 2.0)) / x_45_scale) / x_45_scale;
        	double tmp;
        	if ((180.0 * (Math.atan((((t_4 - t_5) - Math.sqrt((Math.pow((t_5 - t_4), 2.0) + Math.pow(t_3, 2.0)))) / t_3)) / Math.PI)) <= 100.0) {
        		tmp = 180.0 * (Math.atan((90.0 * ((((-b * b) * (y_45_scale / x_45_scale)) / angle) / ((Math.PI * (b - a_m)) * (b + a_m))))) / Math.PI);
        	} else {
        		tmp = 180.0 * (Math.atan(((-180.0 * (y_45_scale / x_45_scale)) / (Math.PI * angle))) / Math.PI);
        	}
        	return tmp;
        }
        
        a_m = math.fabs(a)
        def code(a_m, b, angle, x_45_scale, y_45_scale):
        	t_0 = (angle / 180.0) * math.pi
        	t_1 = math.cos(t_0)
        	t_2 = math.sin(t_0)
        	t_3 = ((((2.0 * (math.pow(b, 2.0) - math.pow(a_m, 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale
        	t_4 = ((math.pow((a_m * t_1), 2.0) + math.pow((b * t_2), 2.0)) / y_45_scale) / y_45_scale
        	t_5 = ((math.pow((a_m * t_2), 2.0) + math.pow((b * t_1), 2.0)) / x_45_scale) / x_45_scale
        	tmp = 0
        	if (180.0 * (math.atan((((t_4 - t_5) - math.sqrt((math.pow((t_5 - t_4), 2.0) + math.pow(t_3, 2.0)))) / t_3)) / math.pi)) <= 100.0:
        		tmp = 180.0 * (math.atan((90.0 * ((((-b * b) * (y_45_scale / x_45_scale)) / angle) / ((math.pi * (b - a_m)) * (b + a_m))))) / math.pi)
        	else:
        		tmp = 180.0 * (math.atan(((-180.0 * (y_45_scale / x_45_scale)) / (math.pi * angle))) / math.pi)
        	return tmp
        
        a_m = abs(a)
        function code(a_m, b, angle, x_45_scale, y_45_scale)
        	t_0 = Float64(Float64(angle / 180.0) * pi)
        	t_1 = cos(t_0)
        	t_2 = sin(t_0)
        	t_3 = Float64(Float64(Float64(Float64(Float64(2.0 * Float64((b ^ 2.0) - (a_m ^ 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale)
        	t_4 = Float64(Float64(Float64((Float64(a_m * t_1) ^ 2.0) + (Float64(b * t_2) ^ 2.0)) / y_45_scale) / y_45_scale)
        	t_5 = Float64(Float64(Float64((Float64(a_m * t_2) ^ 2.0) + (Float64(b * t_1) ^ 2.0)) / x_45_scale) / x_45_scale)
        	tmp = 0.0
        	if (Float64(180.0 * Float64(atan(Float64(Float64(Float64(t_4 - t_5) - sqrt(Float64((Float64(t_5 - t_4) ^ 2.0) + (t_3 ^ 2.0)))) / t_3)) / pi)) <= 100.0)
        		tmp = Float64(180.0 * Float64(atan(Float64(90.0 * Float64(Float64(Float64(Float64(Float64(-b) * b) * Float64(y_45_scale / x_45_scale)) / angle) / Float64(Float64(pi * Float64(b - a_m)) * Float64(b + a_m))))) / pi));
        	else
        		tmp = Float64(180.0 * Float64(atan(Float64(Float64(-180.0 * Float64(y_45_scale / x_45_scale)) / Float64(pi * angle))) / pi));
        	end
        	return tmp
        end
        
        a_m = abs(a);
        function tmp_2 = code(a_m, b, angle, x_45_scale, y_45_scale)
        	t_0 = (angle / 180.0) * pi;
        	t_1 = cos(t_0);
        	t_2 = sin(t_0);
        	t_3 = ((((2.0 * ((b ^ 2.0) - (a_m ^ 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale;
        	t_4 = ((((a_m * t_1) ^ 2.0) + ((b * t_2) ^ 2.0)) / y_45_scale) / y_45_scale;
        	t_5 = ((((a_m * t_2) ^ 2.0) + ((b * t_1) ^ 2.0)) / x_45_scale) / x_45_scale;
        	tmp = 0.0;
        	if ((180.0 * (atan((((t_4 - t_5) - sqrt((((t_5 - t_4) ^ 2.0) + (t_3 ^ 2.0)))) / t_3)) / pi)) <= 100.0)
        		tmp = 180.0 * (atan((90.0 * ((((-b * b) * (y_45_scale / x_45_scale)) / angle) / ((pi * (b - a_m)) * (b + a_m))))) / pi);
        	else
        		tmp = 180.0 * (atan(((-180.0 * (y_45_scale / x_45_scale)) / (pi * angle))) / pi);
        	end
        	tmp_2 = tmp;
        end
        
        a_m = N[Abs[a], $MachinePrecision]
        code[a$95$m_, b_, angle_, x$45$scale_, y$45$scale_] := Block[{t$95$0 = N[(N[(angle / 180.0), $MachinePrecision] * Pi), $MachinePrecision]}, Block[{t$95$1 = N[Cos[t$95$0], $MachinePrecision]}, Block[{t$95$2 = N[Sin[t$95$0], $MachinePrecision]}, Block[{t$95$3 = N[(N[(N[(N[(N[(2.0 * N[(N[Power[b, 2.0], $MachinePrecision] - N[Power[a$95$m, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * t$95$2), $MachinePrecision] * t$95$1), $MachinePrecision] / x$45$scale), $MachinePrecision] / y$45$scale), $MachinePrecision]}, Block[{t$95$4 = N[(N[(N[(N[Power[N[(a$95$m * t$95$1), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[(b * t$95$2), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / y$45$scale), $MachinePrecision] / y$45$scale), $MachinePrecision]}, Block[{t$95$5 = N[(N[(N[(N[Power[N[(a$95$m * t$95$2), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[(b * t$95$1), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / x$45$scale), $MachinePrecision] / x$45$scale), $MachinePrecision]}, If[LessEqual[N[(180.0 * N[(N[ArcTan[N[(N[(N[(t$95$4 - t$95$5), $MachinePrecision] - N[Sqrt[N[(N[Power[N[(t$95$5 - t$95$4), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[t$95$3, 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / t$95$3), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], 100.0], N[(180.0 * N[(N[ArcTan[N[(90.0 * N[(N[(N[(N[((-b) * b), $MachinePrecision] * N[(y$45$scale / x$45$scale), $MachinePrecision]), $MachinePrecision] / angle), $MachinePrecision] / N[(N[(Pi * N[(b - a$95$m), $MachinePrecision]), $MachinePrecision] * N[(b + a$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(N[(-180.0 * N[(y$45$scale / x$45$scale), $MachinePrecision]), $MachinePrecision] / N[(Pi * angle), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]]]]]
        
        \begin{array}{l}
        a_m = \left|a\right|
        
        \\
        \begin{array}{l}
        t_0 := \frac{angle}{180} \cdot \pi\\
        t_1 := \cos t\_0\\
        t_2 := \sin t\_0\\
        t_3 := \frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a\_m}^{2}\right)\right) \cdot t\_2\right) \cdot t\_1}{x-scale}}{y-scale}\\
        t_4 := \frac{\frac{{\left(a\_m \cdot t\_1\right)}^{2} + {\left(b \cdot t\_2\right)}^{2}}{y-scale}}{y-scale}\\
        t_5 := \frac{\frac{{\left(a\_m \cdot t\_2\right)}^{2} + {\left(b \cdot t\_1\right)}^{2}}{x-scale}}{x-scale}\\
        \mathbf{if}\;180 \cdot \frac{\tan^{-1} \left(\frac{\left(t\_4 - t\_5\right) - \sqrt{{\left(t\_5 - t\_4\right)}^{2} + {t\_3}^{2}}}{t\_3}\right)}{\pi} \leq 100:\\
        \;\;\;\;180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{\frac{\left(\left(-b\right) \cdot b\right) \cdot \frac{y-scale}{x-scale}}{angle}}{\left(\pi \cdot \left(b - a\_m\right)\right) \cdot \left(b + a\_m\right)}\right)}{\pi}\\
        
        \mathbf{else}:\\
        \;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{-180 \cdot \frac{y-scale}{x-scale}}{\pi \cdot angle}\right)}{\pi}\\
        
        
        \end{array}
        \end{array}
        
        Derivation
        1. Split input into 2 regimes
        2. if (*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) y-scale) y-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) x-scale) x-scale)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) y-scale) y-scale)) #s(literal 2 binary64)) (pow.f64 (/.f64 (/.f64 (*.f64 (*.f64 (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) x-scale) y-scale) #s(literal 2 binary64))))) (/.f64 (/.f64 (*.f64 (*.f64 (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) x-scale) y-scale))) (PI.f64))) < 100

          1. Initial program 13.5%

            \[180 \cdot \frac{\tan^{-1} \left(\frac{\left(\frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale} - \frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale}\right) - \sqrt{{\left(\frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale} - \frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale}\right)}^{2} + {\left(\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}\right)}^{2}}}{\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}}\right)}{\pi} \]
          2. Taylor expanded in angle around 0

            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\mathsf{PI}\left(\right) \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}}{\pi} \]
          3. Step-by-step derivation
            1. Applied rewrites11.8%

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}}{\pi} \]
            2. Step-by-step derivation
              1. lift--.f64N/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
              2. lift-+.f64N/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
              3. lift-/.f64N/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
              4. add-to-fractionN/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \frac{\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} \cdot {x-scale}^{2} + {b}^{2}}{{x-scale}^{2}}\right)\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
              5. sub-to-fractionN/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \frac{\frac{{a}^{2}}{{y-scale}^{2}} \cdot {x-scale}^{2} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} \cdot {x-scale}^{2} + {b}^{2}\right)}{{x-scale}^{2}}\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
              6. lower-/.f64N/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \frac{\frac{{a}^{2}}{{y-scale}^{2}} \cdot {x-scale}^{2} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} \cdot {x-scale}^{2} + {b}^{2}\right)}{{x-scale}^{2}}\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
            3. Applied rewrites12.2%

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \frac{\left(a \cdot \frac{a}{y-scale \cdot y-scale}\right) \cdot \left(x-scale \cdot x-scale\right) - \mathsf{fma}\left(\left|b \cdot \frac{b}{x-scale \cdot x-scale} - a \cdot \frac{a}{y-scale \cdot y-scale}\right| \cdot x-scale, x-scale, b \cdot b\right)}{x-scale \cdot x-scale}\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
            4. Taylor expanded in b around inf

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{\color{blue}{angle} \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
            5. Step-by-step derivation
              1. lower-*.f64N/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
              2. lower-/.f64N/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
              3. lower-*.f64N/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
              4. lower-pow.f6423.0

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
            6. Applied rewrites23.0%

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{\color{blue}{angle} \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
            7. Step-by-step derivation
              1. lift-/.f64N/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{\color{blue}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}}\right)}{\pi} \]
              2. lift-*.f64N/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{angle \cdot \color{blue}{\left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}}\right)}{\pi} \]
              3. associate-/r*N/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{\frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{angle}}{\color{blue}{\pi \cdot \left({b}^{2} - {a}^{2}\right)}}\right)}{\pi} \]
              4. lower-/.f64N/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{\frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{angle}}{\color{blue}{\pi \cdot \left({b}^{2} - {a}^{2}\right)}}\right)}{\pi} \]
            8. Applied rewrites25.4%

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{\frac{\left(\left(-b\right) \cdot b\right) \cdot \frac{y-scale}{x-scale}}{angle}}{\color{blue}{\left(\pi \cdot \left(b - a\right)\right) \cdot \left(b + a\right)}}\right)}{\pi} \]

            if 100 < (*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) y-scale) y-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) x-scale) x-scale)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) y-scale) y-scale)) #s(literal 2 binary64)) (pow.f64 (/.f64 (/.f64 (*.f64 (*.f64 (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) x-scale) y-scale) #s(literal 2 binary64))))) (/.f64 (/.f64 (*.f64 (*.f64 (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) x-scale) y-scale))) (PI.f64)))

            1. Initial program 13.5%

              \[180 \cdot \frac{\tan^{-1} \left(\frac{\left(\frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale} - \frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale}\right) - \sqrt{{\left(\frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale} - \frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale}\right)}^{2} + {\left(\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}\right)}^{2}}}{\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}}\right)}{\pi} \]
            2. Taylor expanded in angle around 0

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\mathsf{PI}\left(\right) \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}}{\pi} \]
            3. Step-by-step derivation
              1. Applied rewrites11.8%

                \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}}{\pi} \]
              2. Taylor expanded in b around inf

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \color{blue}{\frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{angle \cdot \mathsf{PI}\left(\right)}}\right)}{\pi} \]
              3. Step-by-step derivation
                1. lower-*.f64N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{\color{blue}{angle \cdot \mathsf{PI}\left(\right)}}\right)}{\pi} \]
                2. lower-/.f64N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{angle \cdot \color{blue}{\mathsf{PI}\left(\right)}}\right)}{\pi} \]
              4. Applied rewrites40.2%

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \color{blue}{\frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{angle \cdot \pi}}\right)}{\pi} \]
              5. Step-by-step derivation
                1. lift-*.f64N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{\color{blue}{angle \cdot \pi}}\right)}{\pi} \]
                2. lift-/.f64N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{angle \cdot \color{blue}{\pi}}\right)}{\pi} \]
                3. associate-*r/N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-90 \cdot \left(x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \color{blue}{\pi}}\right)}{\pi} \]
                4. lower-/.f64N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-90 \cdot \left(x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \color{blue}{\pi}}\right)}{\pi} \]
              6. Applied rewrites40.2%

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{\left(\mathsf{fma}\left(\sqrt{{x-scale}^{-4}}, y-scale, \frac{y-scale}{x-scale \cdot x-scale}\right) \cdot x-scale\right) \cdot -90}{\pi \cdot \color{blue}{angle}}\right)}{\pi} \]
              7. Taylor expanded in x-scale around 0

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-180 \cdot \frac{y-scale}{x-scale}}{\pi \cdot angle}\right)}{\pi} \]
              8. Step-by-step derivation
                1. lower-*.f64N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-180 \cdot \frac{y-scale}{x-scale}}{\pi \cdot angle}\right)}{\pi} \]
                2. lower-/.f6438.7

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-180 \cdot \frac{y-scale}{x-scale}}{\pi \cdot angle}\right)}{\pi} \]
              9. Applied rewrites38.7%

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-180 \cdot \frac{y-scale}{x-scale}}{\pi \cdot angle}\right)}{\pi} \]
            4. Recombined 2 regimes into one program.
            5. Add Preprocessing

            Alternative 5: 39.5% accurate, 0.9× speedup?

            \[\begin{array}{l} a_m = \left|a\right| \\ \begin{array}{l} t_0 := \frac{angle}{180} \cdot \pi\\ t_1 := \cos t\_0\\ t_2 := \sin t\_0\\ t_3 := \frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a\_m}^{2}\right)\right) \cdot t\_2\right) \cdot t\_1}{x-scale}}{y-scale}\\ t_4 := \frac{\frac{{\left(a\_m \cdot t\_1\right)}^{2} + {\left(b \cdot t\_2\right)}^{2}}{y-scale}}{y-scale}\\ t_5 := \frac{\frac{{\left(a\_m \cdot t\_2\right)}^{2} + {\left(b \cdot t\_1\right)}^{2}}{x-scale}}{x-scale}\\ \mathbf{if}\;180 \cdot \frac{\tan^{-1} \left(\frac{\left(t\_4 - t\_5\right) - \sqrt{{\left(t\_5 - t\_4\right)}^{2} + {t\_3}^{2}}}{t\_3}\right)}{\pi} \leq 100:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{\frac{\left(\left(-b\right) \cdot b\right) \cdot \frac{y-scale}{x-scale}}{\left(\pi \cdot \left(b - a\_m\right)\right) \cdot \left(b + a\_m\right)}}{angle}\right)}{\pi}\\ \mathbf{else}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{-180 \cdot \frac{y-scale}{x-scale}}{\pi \cdot angle}\right)}{\pi}\\ \end{array} \end{array} \]
            a_m = (fabs.f64 a)
            (FPCore (a_m b angle x-scale y-scale)
             :precision binary64
             (let* ((t_0 (* (/ angle 180.0) PI))
                    (t_1 (cos t_0))
                    (t_2 (sin t_0))
                    (t_3
                     (/
                      (/ (* (* (* 2.0 (- (pow b 2.0) (pow a_m 2.0))) t_2) t_1) x-scale)
                      y-scale))
                    (t_4
                     (/ (/ (+ (pow (* a_m t_1) 2.0) (pow (* b t_2) 2.0)) y-scale) y-scale))
                    (t_5
                     (/
                      (/ (+ (pow (* a_m t_2) 2.0) (pow (* b t_1) 2.0)) x-scale)
                      x-scale)))
               (if (<=
                    (*
                     180.0
                     (/
                      (atan
                       (/
                        (- (- t_4 t_5) (sqrt (+ (pow (- t_5 t_4) 2.0) (pow t_3 2.0))))
                        t_3))
                      PI))
                    100.0)
                 (*
                  180.0
                  (/
                   (atan
                    (*
                     90.0
                     (/
                      (/
                       (* (* (- b) b) (/ y-scale x-scale))
                       (* (* PI (- b a_m)) (+ b a_m)))
                      angle)))
                   PI))
                 (* 180.0 (/ (atan (/ (* -180.0 (/ y-scale x-scale)) (* PI angle))) PI)))))
            a_m = fabs(a);
            double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
            	double t_0 = (angle / 180.0) * ((double) M_PI);
            	double t_1 = cos(t_0);
            	double t_2 = sin(t_0);
            	double t_3 = ((((2.0 * (pow(b, 2.0) - pow(a_m, 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale;
            	double t_4 = ((pow((a_m * t_1), 2.0) + pow((b * t_2), 2.0)) / y_45_scale) / y_45_scale;
            	double t_5 = ((pow((a_m * t_2), 2.0) + pow((b * t_1), 2.0)) / x_45_scale) / x_45_scale;
            	double tmp;
            	if ((180.0 * (atan((((t_4 - t_5) - sqrt((pow((t_5 - t_4), 2.0) + pow(t_3, 2.0)))) / t_3)) / ((double) M_PI))) <= 100.0) {
            		tmp = 180.0 * (atan((90.0 * ((((-b * b) * (y_45_scale / x_45_scale)) / ((((double) M_PI) * (b - a_m)) * (b + a_m))) / angle))) / ((double) M_PI));
            	} else {
            		tmp = 180.0 * (atan(((-180.0 * (y_45_scale / x_45_scale)) / (((double) M_PI) * angle))) / ((double) M_PI));
            	}
            	return tmp;
            }
            
            a_m = Math.abs(a);
            public static double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
            	double t_0 = (angle / 180.0) * Math.PI;
            	double t_1 = Math.cos(t_0);
            	double t_2 = Math.sin(t_0);
            	double t_3 = ((((2.0 * (Math.pow(b, 2.0) - Math.pow(a_m, 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale;
            	double t_4 = ((Math.pow((a_m * t_1), 2.0) + Math.pow((b * t_2), 2.0)) / y_45_scale) / y_45_scale;
            	double t_5 = ((Math.pow((a_m * t_2), 2.0) + Math.pow((b * t_1), 2.0)) / x_45_scale) / x_45_scale;
            	double tmp;
            	if ((180.0 * (Math.atan((((t_4 - t_5) - Math.sqrt((Math.pow((t_5 - t_4), 2.0) + Math.pow(t_3, 2.0)))) / t_3)) / Math.PI)) <= 100.0) {
            		tmp = 180.0 * (Math.atan((90.0 * ((((-b * b) * (y_45_scale / x_45_scale)) / ((Math.PI * (b - a_m)) * (b + a_m))) / angle))) / Math.PI);
            	} else {
            		tmp = 180.0 * (Math.atan(((-180.0 * (y_45_scale / x_45_scale)) / (Math.PI * angle))) / Math.PI);
            	}
            	return tmp;
            }
            
            a_m = math.fabs(a)
            def code(a_m, b, angle, x_45_scale, y_45_scale):
            	t_0 = (angle / 180.0) * math.pi
            	t_1 = math.cos(t_0)
            	t_2 = math.sin(t_0)
            	t_3 = ((((2.0 * (math.pow(b, 2.0) - math.pow(a_m, 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale
            	t_4 = ((math.pow((a_m * t_1), 2.0) + math.pow((b * t_2), 2.0)) / y_45_scale) / y_45_scale
            	t_5 = ((math.pow((a_m * t_2), 2.0) + math.pow((b * t_1), 2.0)) / x_45_scale) / x_45_scale
            	tmp = 0
            	if (180.0 * (math.atan((((t_4 - t_5) - math.sqrt((math.pow((t_5 - t_4), 2.0) + math.pow(t_3, 2.0)))) / t_3)) / math.pi)) <= 100.0:
            		tmp = 180.0 * (math.atan((90.0 * ((((-b * b) * (y_45_scale / x_45_scale)) / ((math.pi * (b - a_m)) * (b + a_m))) / angle))) / math.pi)
            	else:
            		tmp = 180.0 * (math.atan(((-180.0 * (y_45_scale / x_45_scale)) / (math.pi * angle))) / math.pi)
            	return tmp
            
            a_m = abs(a)
            function code(a_m, b, angle, x_45_scale, y_45_scale)
            	t_0 = Float64(Float64(angle / 180.0) * pi)
            	t_1 = cos(t_0)
            	t_2 = sin(t_0)
            	t_3 = Float64(Float64(Float64(Float64(Float64(2.0 * Float64((b ^ 2.0) - (a_m ^ 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale)
            	t_4 = Float64(Float64(Float64((Float64(a_m * t_1) ^ 2.0) + (Float64(b * t_2) ^ 2.0)) / y_45_scale) / y_45_scale)
            	t_5 = Float64(Float64(Float64((Float64(a_m * t_2) ^ 2.0) + (Float64(b * t_1) ^ 2.0)) / x_45_scale) / x_45_scale)
            	tmp = 0.0
            	if (Float64(180.0 * Float64(atan(Float64(Float64(Float64(t_4 - t_5) - sqrt(Float64((Float64(t_5 - t_4) ^ 2.0) + (t_3 ^ 2.0)))) / t_3)) / pi)) <= 100.0)
            		tmp = Float64(180.0 * Float64(atan(Float64(90.0 * Float64(Float64(Float64(Float64(Float64(-b) * b) * Float64(y_45_scale / x_45_scale)) / Float64(Float64(pi * Float64(b - a_m)) * Float64(b + a_m))) / angle))) / pi));
            	else
            		tmp = Float64(180.0 * Float64(atan(Float64(Float64(-180.0 * Float64(y_45_scale / x_45_scale)) / Float64(pi * angle))) / pi));
            	end
            	return tmp
            end
            
            a_m = abs(a);
            function tmp_2 = code(a_m, b, angle, x_45_scale, y_45_scale)
            	t_0 = (angle / 180.0) * pi;
            	t_1 = cos(t_0);
            	t_2 = sin(t_0);
            	t_3 = ((((2.0 * ((b ^ 2.0) - (a_m ^ 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale;
            	t_4 = ((((a_m * t_1) ^ 2.0) + ((b * t_2) ^ 2.0)) / y_45_scale) / y_45_scale;
            	t_5 = ((((a_m * t_2) ^ 2.0) + ((b * t_1) ^ 2.0)) / x_45_scale) / x_45_scale;
            	tmp = 0.0;
            	if ((180.0 * (atan((((t_4 - t_5) - sqrt((((t_5 - t_4) ^ 2.0) + (t_3 ^ 2.0)))) / t_3)) / pi)) <= 100.0)
            		tmp = 180.0 * (atan((90.0 * ((((-b * b) * (y_45_scale / x_45_scale)) / ((pi * (b - a_m)) * (b + a_m))) / angle))) / pi);
            	else
            		tmp = 180.0 * (atan(((-180.0 * (y_45_scale / x_45_scale)) / (pi * angle))) / pi);
            	end
            	tmp_2 = tmp;
            end
            
            a_m = N[Abs[a], $MachinePrecision]
            code[a$95$m_, b_, angle_, x$45$scale_, y$45$scale_] := Block[{t$95$0 = N[(N[(angle / 180.0), $MachinePrecision] * Pi), $MachinePrecision]}, Block[{t$95$1 = N[Cos[t$95$0], $MachinePrecision]}, Block[{t$95$2 = N[Sin[t$95$0], $MachinePrecision]}, Block[{t$95$3 = N[(N[(N[(N[(N[(2.0 * N[(N[Power[b, 2.0], $MachinePrecision] - N[Power[a$95$m, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * t$95$2), $MachinePrecision] * t$95$1), $MachinePrecision] / x$45$scale), $MachinePrecision] / y$45$scale), $MachinePrecision]}, Block[{t$95$4 = N[(N[(N[(N[Power[N[(a$95$m * t$95$1), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[(b * t$95$2), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / y$45$scale), $MachinePrecision] / y$45$scale), $MachinePrecision]}, Block[{t$95$5 = N[(N[(N[(N[Power[N[(a$95$m * t$95$2), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[(b * t$95$1), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / x$45$scale), $MachinePrecision] / x$45$scale), $MachinePrecision]}, If[LessEqual[N[(180.0 * N[(N[ArcTan[N[(N[(N[(t$95$4 - t$95$5), $MachinePrecision] - N[Sqrt[N[(N[Power[N[(t$95$5 - t$95$4), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[t$95$3, 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / t$95$3), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], 100.0], N[(180.0 * N[(N[ArcTan[N[(90.0 * N[(N[(N[(N[((-b) * b), $MachinePrecision] * N[(y$45$scale / x$45$scale), $MachinePrecision]), $MachinePrecision] / N[(N[(Pi * N[(b - a$95$m), $MachinePrecision]), $MachinePrecision] * N[(b + a$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / angle), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(N[(-180.0 * N[(y$45$scale / x$45$scale), $MachinePrecision]), $MachinePrecision] / N[(Pi * angle), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]]]]]
            
            \begin{array}{l}
            a_m = \left|a\right|
            
            \\
            \begin{array}{l}
            t_0 := \frac{angle}{180} \cdot \pi\\
            t_1 := \cos t\_0\\
            t_2 := \sin t\_0\\
            t_3 := \frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a\_m}^{2}\right)\right) \cdot t\_2\right) \cdot t\_1}{x-scale}}{y-scale}\\
            t_4 := \frac{\frac{{\left(a\_m \cdot t\_1\right)}^{2} + {\left(b \cdot t\_2\right)}^{2}}{y-scale}}{y-scale}\\
            t_5 := \frac{\frac{{\left(a\_m \cdot t\_2\right)}^{2} + {\left(b \cdot t\_1\right)}^{2}}{x-scale}}{x-scale}\\
            \mathbf{if}\;180 \cdot \frac{\tan^{-1} \left(\frac{\left(t\_4 - t\_5\right) - \sqrt{{\left(t\_5 - t\_4\right)}^{2} + {t\_3}^{2}}}{t\_3}\right)}{\pi} \leq 100:\\
            \;\;\;\;180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{\frac{\left(\left(-b\right) \cdot b\right) \cdot \frac{y-scale}{x-scale}}{\left(\pi \cdot \left(b - a\_m\right)\right) \cdot \left(b + a\_m\right)}}{angle}\right)}{\pi}\\
            
            \mathbf{else}:\\
            \;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{-180 \cdot \frac{y-scale}{x-scale}}{\pi \cdot angle}\right)}{\pi}\\
            
            
            \end{array}
            \end{array}
            
            Derivation
            1. Split input into 2 regimes
            2. if (*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) y-scale) y-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) x-scale) x-scale)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) y-scale) y-scale)) #s(literal 2 binary64)) (pow.f64 (/.f64 (/.f64 (*.f64 (*.f64 (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) x-scale) y-scale) #s(literal 2 binary64))))) (/.f64 (/.f64 (*.f64 (*.f64 (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) x-scale) y-scale))) (PI.f64))) < 100

              1. Initial program 13.5%

                \[180 \cdot \frac{\tan^{-1} \left(\frac{\left(\frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale} - \frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale}\right) - \sqrt{{\left(\frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale} - \frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale}\right)}^{2} + {\left(\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}\right)}^{2}}}{\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}}\right)}{\pi} \]
              2. Taylor expanded in angle around 0

                \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\mathsf{PI}\left(\right) \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}}{\pi} \]
              3. Step-by-step derivation
                1. Applied rewrites11.8%

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}}{\pi} \]
                2. Step-by-step derivation
                  1. lift--.f64N/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
                  2. lift-+.f64N/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
                  3. lift-/.f64N/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
                  4. add-to-fractionN/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \frac{\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} \cdot {x-scale}^{2} + {b}^{2}}{{x-scale}^{2}}\right)\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
                  5. sub-to-fractionN/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \frac{\frac{{a}^{2}}{{y-scale}^{2}} \cdot {x-scale}^{2} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} \cdot {x-scale}^{2} + {b}^{2}\right)}{{x-scale}^{2}}\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
                  6. lower-/.f64N/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \frac{\frac{{a}^{2}}{{y-scale}^{2}} \cdot {x-scale}^{2} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} \cdot {x-scale}^{2} + {b}^{2}\right)}{{x-scale}^{2}}\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
                3. Applied rewrites12.2%

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \frac{\left(a \cdot \frac{a}{y-scale \cdot y-scale}\right) \cdot \left(x-scale \cdot x-scale\right) - \mathsf{fma}\left(\left|b \cdot \frac{b}{x-scale \cdot x-scale} - a \cdot \frac{a}{y-scale \cdot y-scale}\right| \cdot x-scale, x-scale, b \cdot b\right)}{x-scale \cdot x-scale}\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
                4. Taylor expanded in b around inf

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{\color{blue}{angle} \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
                5. Step-by-step derivation
                  1. lower-*.f64N/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
                  2. lower-/.f64N/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
                  3. lower-*.f64N/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
                  4. lower-pow.f6423.0

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
                6. Applied rewrites23.0%

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{\color{blue}{angle} \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
                7. Step-by-step derivation
                  1. lift-/.f64N/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{\color{blue}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}}\right)}{\pi} \]
                  2. lift-*.f64N/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{angle \cdot \color{blue}{\left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}}\right)}{\pi} \]
                  3. *-commutativeN/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{\left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \color{blue}{angle}}\right)}{\pi} \]
                  4. associate-/r*N/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{\frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{\pi \cdot \left({b}^{2} - {a}^{2}\right)}}{\color{blue}{angle}}\right)}{\pi} \]
                  5. lower-/.f64N/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{\frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{\pi \cdot \left({b}^{2} - {a}^{2}\right)}}{\color{blue}{angle}}\right)}{\pi} \]
                8. Applied rewrites25.8%

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{\frac{\left(\left(-b\right) \cdot b\right) \cdot \frac{y-scale}{x-scale}}{\left(\pi \cdot \left(b - a\right)\right) \cdot \left(b + a\right)}}{\color{blue}{angle}}\right)}{\pi} \]

                if 100 < (*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) y-scale) y-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) x-scale) x-scale)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) y-scale) y-scale)) #s(literal 2 binary64)) (pow.f64 (/.f64 (/.f64 (*.f64 (*.f64 (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) x-scale) y-scale) #s(literal 2 binary64))))) (/.f64 (/.f64 (*.f64 (*.f64 (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) x-scale) y-scale))) (PI.f64)))

                1. Initial program 13.5%

                  \[180 \cdot \frac{\tan^{-1} \left(\frac{\left(\frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale} - \frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale}\right) - \sqrt{{\left(\frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale} - \frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale}\right)}^{2} + {\left(\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}\right)}^{2}}}{\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}}\right)}{\pi} \]
                2. Taylor expanded in angle around 0

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\mathsf{PI}\left(\right) \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}}{\pi} \]
                3. Step-by-step derivation
                  1. Applied rewrites11.8%

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}}{\pi} \]
                  2. Taylor expanded in b around inf

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \color{blue}{\frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{angle \cdot \mathsf{PI}\left(\right)}}\right)}{\pi} \]
                  3. Step-by-step derivation
                    1. lower-*.f64N/A

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{\color{blue}{angle \cdot \mathsf{PI}\left(\right)}}\right)}{\pi} \]
                    2. lower-/.f64N/A

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{angle \cdot \color{blue}{\mathsf{PI}\left(\right)}}\right)}{\pi} \]
                  4. Applied rewrites40.2%

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \color{blue}{\frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{angle \cdot \pi}}\right)}{\pi} \]
                  5. Step-by-step derivation
                    1. lift-*.f64N/A

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{\color{blue}{angle \cdot \pi}}\right)}{\pi} \]
                    2. lift-/.f64N/A

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{angle \cdot \color{blue}{\pi}}\right)}{\pi} \]
                    3. associate-*r/N/A

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-90 \cdot \left(x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \color{blue}{\pi}}\right)}{\pi} \]
                    4. lower-/.f64N/A

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-90 \cdot \left(x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \color{blue}{\pi}}\right)}{\pi} \]
                  6. Applied rewrites40.2%

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{\left(\mathsf{fma}\left(\sqrt{{x-scale}^{-4}}, y-scale, \frac{y-scale}{x-scale \cdot x-scale}\right) \cdot x-scale\right) \cdot -90}{\pi \cdot \color{blue}{angle}}\right)}{\pi} \]
                  7. Taylor expanded in x-scale around 0

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-180 \cdot \frac{y-scale}{x-scale}}{\pi \cdot angle}\right)}{\pi} \]
                  8. Step-by-step derivation
                    1. lower-*.f64N/A

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-180 \cdot \frac{y-scale}{x-scale}}{\pi \cdot angle}\right)}{\pi} \]
                    2. lower-/.f6438.7

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-180 \cdot \frac{y-scale}{x-scale}}{\pi \cdot angle}\right)}{\pi} \]
                  9. Applied rewrites38.7%

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-180 \cdot \frac{y-scale}{x-scale}}{\pi \cdot angle}\right)}{\pi} \]
                4. Recombined 2 regimes into one program.
                5. Add Preprocessing

                Alternative 6: 38.8% accurate, 0.9× speedup?

                \[\begin{array}{l} a_m = \left|a\right| \\ \begin{array}{l} t_0 := \frac{angle}{180} \cdot \pi\\ t_1 := \cos t\_0\\ t_2 := \sin t\_0\\ t_3 := \frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a\_m}^{2}\right)\right) \cdot t\_2\right) \cdot t\_1}{x-scale}}{y-scale}\\ t_4 := \frac{\frac{{\left(a\_m \cdot t\_1\right)}^{2} + {\left(b \cdot t\_2\right)}^{2}}{y-scale}}{y-scale}\\ t_5 := \frac{\frac{{\left(a\_m \cdot t\_2\right)}^{2} + {\left(b \cdot t\_1\right)}^{2}}{x-scale}}{x-scale}\\ \mathbf{if}\;180 \cdot \frac{\tan^{-1} \left(\frac{\left(t\_4 - t\_5\right) - \sqrt{{\left(t\_5 - t\_4\right)}^{2} + {t\_3}^{2}}}{t\_3}\right)}{\pi} \leq 100:\\ \;\;\;\;\frac{\tan^{-1} \left(\frac{\left(\left(-b\right) \cdot b\right) \cdot \frac{y-scale}{x-scale}}{\left(\left(b - a\_m\right) \cdot \left(b + a\_m\right)\right) \cdot \left(\pi \cdot angle\right)} \cdot 90\right)}{\pi} \cdot 180\\ \mathbf{else}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{-180 \cdot \frac{y-scale}{x-scale}}{\pi \cdot angle}\right)}{\pi}\\ \end{array} \end{array} \]
                a_m = (fabs.f64 a)
                (FPCore (a_m b angle x-scale y-scale)
                 :precision binary64
                 (let* ((t_0 (* (/ angle 180.0) PI))
                        (t_1 (cos t_0))
                        (t_2 (sin t_0))
                        (t_3
                         (/
                          (/ (* (* (* 2.0 (- (pow b 2.0) (pow a_m 2.0))) t_2) t_1) x-scale)
                          y-scale))
                        (t_4
                         (/ (/ (+ (pow (* a_m t_1) 2.0) (pow (* b t_2) 2.0)) y-scale) y-scale))
                        (t_5
                         (/
                          (/ (+ (pow (* a_m t_2) 2.0) (pow (* b t_1) 2.0)) x-scale)
                          x-scale)))
                   (if (<=
                        (*
                         180.0
                         (/
                          (atan
                           (/
                            (- (- t_4 t_5) (sqrt (+ (pow (- t_5 t_4) 2.0) (pow t_3 2.0))))
                            t_3))
                          PI))
                        100.0)
                     (*
                      (/
                       (atan
                        (*
                         (/
                          (* (* (- b) b) (/ y-scale x-scale))
                          (* (* (- b a_m) (+ b a_m)) (* PI angle)))
                         90.0))
                       PI)
                      180.0)
                     (* 180.0 (/ (atan (/ (* -180.0 (/ y-scale x-scale)) (* PI angle))) PI)))))
                a_m = fabs(a);
                double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
                	double t_0 = (angle / 180.0) * ((double) M_PI);
                	double t_1 = cos(t_0);
                	double t_2 = sin(t_0);
                	double t_3 = ((((2.0 * (pow(b, 2.0) - pow(a_m, 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale;
                	double t_4 = ((pow((a_m * t_1), 2.0) + pow((b * t_2), 2.0)) / y_45_scale) / y_45_scale;
                	double t_5 = ((pow((a_m * t_2), 2.0) + pow((b * t_1), 2.0)) / x_45_scale) / x_45_scale;
                	double tmp;
                	if ((180.0 * (atan((((t_4 - t_5) - sqrt((pow((t_5 - t_4), 2.0) + pow(t_3, 2.0)))) / t_3)) / ((double) M_PI))) <= 100.0) {
                		tmp = (atan(((((-b * b) * (y_45_scale / x_45_scale)) / (((b - a_m) * (b + a_m)) * (((double) M_PI) * angle))) * 90.0)) / ((double) M_PI)) * 180.0;
                	} else {
                		tmp = 180.0 * (atan(((-180.0 * (y_45_scale / x_45_scale)) / (((double) M_PI) * angle))) / ((double) M_PI));
                	}
                	return tmp;
                }
                
                a_m = Math.abs(a);
                public static double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
                	double t_0 = (angle / 180.0) * Math.PI;
                	double t_1 = Math.cos(t_0);
                	double t_2 = Math.sin(t_0);
                	double t_3 = ((((2.0 * (Math.pow(b, 2.0) - Math.pow(a_m, 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale;
                	double t_4 = ((Math.pow((a_m * t_1), 2.0) + Math.pow((b * t_2), 2.0)) / y_45_scale) / y_45_scale;
                	double t_5 = ((Math.pow((a_m * t_2), 2.0) + Math.pow((b * t_1), 2.0)) / x_45_scale) / x_45_scale;
                	double tmp;
                	if ((180.0 * (Math.atan((((t_4 - t_5) - Math.sqrt((Math.pow((t_5 - t_4), 2.0) + Math.pow(t_3, 2.0)))) / t_3)) / Math.PI)) <= 100.0) {
                		tmp = (Math.atan(((((-b * b) * (y_45_scale / x_45_scale)) / (((b - a_m) * (b + a_m)) * (Math.PI * angle))) * 90.0)) / Math.PI) * 180.0;
                	} else {
                		tmp = 180.0 * (Math.atan(((-180.0 * (y_45_scale / x_45_scale)) / (Math.PI * angle))) / Math.PI);
                	}
                	return tmp;
                }
                
                a_m = math.fabs(a)
                def code(a_m, b, angle, x_45_scale, y_45_scale):
                	t_0 = (angle / 180.0) * math.pi
                	t_1 = math.cos(t_0)
                	t_2 = math.sin(t_0)
                	t_3 = ((((2.0 * (math.pow(b, 2.0) - math.pow(a_m, 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale
                	t_4 = ((math.pow((a_m * t_1), 2.0) + math.pow((b * t_2), 2.0)) / y_45_scale) / y_45_scale
                	t_5 = ((math.pow((a_m * t_2), 2.0) + math.pow((b * t_1), 2.0)) / x_45_scale) / x_45_scale
                	tmp = 0
                	if (180.0 * (math.atan((((t_4 - t_5) - math.sqrt((math.pow((t_5 - t_4), 2.0) + math.pow(t_3, 2.0)))) / t_3)) / math.pi)) <= 100.0:
                		tmp = (math.atan(((((-b * b) * (y_45_scale / x_45_scale)) / (((b - a_m) * (b + a_m)) * (math.pi * angle))) * 90.0)) / math.pi) * 180.0
                	else:
                		tmp = 180.0 * (math.atan(((-180.0 * (y_45_scale / x_45_scale)) / (math.pi * angle))) / math.pi)
                	return tmp
                
                a_m = abs(a)
                function code(a_m, b, angle, x_45_scale, y_45_scale)
                	t_0 = Float64(Float64(angle / 180.0) * pi)
                	t_1 = cos(t_0)
                	t_2 = sin(t_0)
                	t_3 = Float64(Float64(Float64(Float64(Float64(2.0 * Float64((b ^ 2.0) - (a_m ^ 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale)
                	t_4 = Float64(Float64(Float64((Float64(a_m * t_1) ^ 2.0) + (Float64(b * t_2) ^ 2.0)) / y_45_scale) / y_45_scale)
                	t_5 = Float64(Float64(Float64((Float64(a_m * t_2) ^ 2.0) + (Float64(b * t_1) ^ 2.0)) / x_45_scale) / x_45_scale)
                	tmp = 0.0
                	if (Float64(180.0 * Float64(atan(Float64(Float64(Float64(t_4 - t_5) - sqrt(Float64((Float64(t_5 - t_4) ^ 2.0) + (t_3 ^ 2.0)))) / t_3)) / pi)) <= 100.0)
                		tmp = Float64(Float64(atan(Float64(Float64(Float64(Float64(Float64(-b) * b) * Float64(y_45_scale / x_45_scale)) / Float64(Float64(Float64(b - a_m) * Float64(b + a_m)) * Float64(pi * angle))) * 90.0)) / pi) * 180.0);
                	else
                		tmp = Float64(180.0 * Float64(atan(Float64(Float64(-180.0 * Float64(y_45_scale / x_45_scale)) / Float64(pi * angle))) / pi));
                	end
                	return tmp
                end
                
                a_m = abs(a);
                function tmp_2 = code(a_m, b, angle, x_45_scale, y_45_scale)
                	t_0 = (angle / 180.0) * pi;
                	t_1 = cos(t_0);
                	t_2 = sin(t_0);
                	t_3 = ((((2.0 * ((b ^ 2.0) - (a_m ^ 2.0))) * t_2) * t_1) / x_45_scale) / y_45_scale;
                	t_4 = ((((a_m * t_1) ^ 2.0) + ((b * t_2) ^ 2.0)) / y_45_scale) / y_45_scale;
                	t_5 = ((((a_m * t_2) ^ 2.0) + ((b * t_1) ^ 2.0)) / x_45_scale) / x_45_scale;
                	tmp = 0.0;
                	if ((180.0 * (atan((((t_4 - t_5) - sqrt((((t_5 - t_4) ^ 2.0) + (t_3 ^ 2.0)))) / t_3)) / pi)) <= 100.0)
                		tmp = (atan(((((-b * b) * (y_45_scale / x_45_scale)) / (((b - a_m) * (b + a_m)) * (pi * angle))) * 90.0)) / pi) * 180.0;
                	else
                		tmp = 180.0 * (atan(((-180.0 * (y_45_scale / x_45_scale)) / (pi * angle))) / pi);
                	end
                	tmp_2 = tmp;
                end
                
                a_m = N[Abs[a], $MachinePrecision]
                code[a$95$m_, b_, angle_, x$45$scale_, y$45$scale_] := Block[{t$95$0 = N[(N[(angle / 180.0), $MachinePrecision] * Pi), $MachinePrecision]}, Block[{t$95$1 = N[Cos[t$95$0], $MachinePrecision]}, Block[{t$95$2 = N[Sin[t$95$0], $MachinePrecision]}, Block[{t$95$3 = N[(N[(N[(N[(N[(2.0 * N[(N[Power[b, 2.0], $MachinePrecision] - N[Power[a$95$m, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * t$95$2), $MachinePrecision] * t$95$1), $MachinePrecision] / x$45$scale), $MachinePrecision] / y$45$scale), $MachinePrecision]}, Block[{t$95$4 = N[(N[(N[(N[Power[N[(a$95$m * t$95$1), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[(b * t$95$2), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / y$45$scale), $MachinePrecision] / y$45$scale), $MachinePrecision]}, Block[{t$95$5 = N[(N[(N[(N[Power[N[(a$95$m * t$95$2), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[(b * t$95$1), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / x$45$scale), $MachinePrecision] / x$45$scale), $MachinePrecision]}, If[LessEqual[N[(180.0 * N[(N[ArcTan[N[(N[(N[(t$95$4 - t$95$5), $MachinePrecision] - N[Sqrt[N[(N[Power[N[(t$95$5 - t$95$4), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[t$95$3, 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / t$95$3), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], 100.0], N[(N[(N[ArcTan[N[(N[(N[(N[((-b) * b), $MachinePrecision] * N[(y$45$scale / x$45$scale), $MachinePrecision]), $MachinePrecision] / N[(N[(N[(b - a$95$m), $MachinePrecision] * N[(b + a$95$m), $MachinePrecision]), $MachinePrecision] * N[(Pi * angle), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * 90.0), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision] * 180.0), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(N[(-180.0 * N[(y$45$scale / x$45$scale), $MachinePrecision]), $MachinePrecision] / N[(Pi * angle), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]]]]]
                
                \begin{array}{l}
                a_m = \left|a\right|
                
                \\
                \begin{array}{l}
                t_0 := \frac{angle}{180} \cdot \pi\\
                t_1 := \cos t\_0\\
                t_2 := \sin t\_0\\
                t_3 := \frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a\_m}^{2}\right)\right) \cdot t\_2\right) \cdot t\_1}{x-scale}}{y-scale}\\
                t_4 := \frac{\frac{{\left(a\_m \cdot t\_1\right)}^{2} + {\left(b \cdot t\_2\right)}^{2}}{y-scale}}{y-scale}\\
                t_5 := \frac{\frac{{\left(a\_m \cdot t\_2\right)}^{2} + {\left(b \cdot t\_1\right)}^{2}}{x-scale}}{x-scale}\\
                \mathbf{if}\;180 \cdot \frac{\tan^{-1} \left(\frac{\left(t\_4 - t\_5\right) - \sqrt{{\left(t\_5 - t\_4\right)}^{2} + {t\_3}^{2}}}{t\_3}\right)}{\pi} \leq 100:\\
                \;\;\;\;\frac{\tan^{-1} \left(\frac{\left(\left(-b\right) \cdot b\right) \cdot \frac{y-scale}{x-scale}}{\left(\left(b - a\_m\right) \cdot \left(b + a\_m\right)\right) \cdot \left(\pi \cdot angle\right)} \cdot 90\right)}{\pi} \cdot 180\\
                
                \mathbf{else}:\\
                \;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{-180 \cdot \frac{y-scale}{x-scale}}{\pi \cdot angle}\right)}{\pi}\\
                
                
                \end{array}
                \end{array}
                
                Derivation
                1. Split input into 2 regimes
                2. if (*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) y-scale) y-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) x-scale) x-scale)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) y-scale) y-scale)) #s(literal 2 binary64)) (pow.f64 (/.f64 (/.f64 (*.f64 (*.f64 (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) x-scale) y-scale) #s(literal 2 binary64))))) (/.f64 (/.f64 (*.f64 (*.f64 (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) x-scale) y-scale))) (PI.f64))) < 100

                  1. Initial program 13.5%

                    \[180 \cdot \frac{\tan^{-1} \left(\frac{\left(\frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale} - \frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale}\right) - \sqrt{{\left(\frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale} - \frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale}\right)}^{2} + {\left(\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}\right)}^{2}}}{\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}}\right)}{\pi} \]
                  2. Taylor expanded in angle around 0

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\mathsf{PI}\left(\right) \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}}{\pi} \]
                  3. Step-by-step derivation
                    1. Applied rewrites11.8%

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}}{\pi} \]
                    2. Step-by-step derivation
                      1. lift--.f64N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
                      2. lift-+.f64N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
                      3. lift-/.f64N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
                      4. add-to-fractionN/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \frac{\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} \cdot {x-scale}^{2} + {b}^{2}}{{x-scale}^{2}}\right)\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
                      5. sub-to-fractionN/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \frac{\frac{{a}^{2}}{{y-scale}^{2}} \cdot {x-scale}^{2} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} \cdot {x-scale}^{2} + {b}^{2}\right)}{{x-scale}^{2}}\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
                      6. lower-/.f64N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \frac{\frac{{a}^{2}}{{y-scale}^{2}} \cdot {x-scale}^{2} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} \cdot {x-scale}^{2} + {b}^{2}\right)}{{x-scale}^{2}}\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
                    3. Applied rewrites12.2%

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \frac{\left(a \cdot \frac{a}{y-scale \cdot y-scale}\right) \cdot \left(x-scale \cdot x-scale\right) - \mathsf{fma}\left(\left|b \cdot \frac{b}{x-scale \cdot x-scale} - a \cdot \frac{a}{y-scale \cdot y-scale}\right| \cdot x-scale, x-scale, b \cdot b\right)}{x-scale \cdot x-scale}\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
                    4. Taylor expanded in b around inf

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{\color{blue}{angle} \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
                    5. Step-by-step derivation
                      1. lower-*.f64N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
                      2. lower-/.f64N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
                      3. lower-*.f64N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
                      4. lower-pow.f6423.0

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
                    6. Applied rewrites23.0%

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \left(90 \cdot \frac{-1 \cdot \frac{{b}^{2} \cdot y-scale}{x-scale}}{\color{blue}{angle} \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}{\pi} \]
                    7. Applied rewrites23.4%

                      \[\leadsto \color{blue}{\frac{\tan^{-1} \left(\frac{\left(\left(-b\right) \cdot b\right) \cdot \frac{y-scale}{x-scale}}{\left(\left(b - a\right) \cdot \left(b + a\right)\right) \cdot \left(\pi \cdot angle\right)} \cdot 90\right)}{\pi} \cdot 180} \]

                    if 100 < (*.f64 #s(literal 180 binary64) (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) y-scale) y-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) x-scale) x-scale)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64)) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) #s(literal 2 binary64))) y-scale) y-scale)) #s(literal 2 binary64)) (pow.f64 (/.f64 (/.f64 (*.f64 (*.f64 (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) x-scale) y-scale) #s(literal 2 binary64))))) (/.f64 (/.f64 (*.f64 (*.f64 (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) (sin.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) (cos.f64 (*.f64 (/.f64 angle #s(literal 180 binary64)) (PI.f64)))) x-scale) y-scale))) (PI.f64)))

                    1. Initial program 13.5%

                      \[180 \cdot \frac{\tan^{-1} \left(\frac{\left(\frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale} - \frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale}\right) - \sqrt{{\left(\frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale} - \frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale}\right)}^{2} + {\left(\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}\right)}^{2}}}{\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}}\right)}{\pi} \]
                    2. Taylor expanded in angle around 0

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\mathsf{PI}\left(\right) \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}}{\pi} \]
                    3. Step-by-step derivation
                      1. Applied rewrites11.8%

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}}{\pi} \]
                      2. Taylor expanded in b around inf

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \color{blue}{\frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{angle \cdot \mathsf{PI}\left(\right)}}\right)}{\pi} \]
                      3. Step-by-step derivation
                        1. lower-*.f64N/A

                          \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{\color{blue}{angle \cdot \mathsf{PI}\left(\right)}}\right)}{\pi} \]
                        2. lower-/.f64N/A

                          \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{angle \cdot \color{blue}{\mathsf{PI}\left(\right)}}\right)}{\pi} \]
                      4. Applied rewrites40.2%

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \color{blue}{\frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{angle \cdot \pi}}\right)}{\pi} \]
                      5. Step-by-step derivation
                        1. lift-*.f64N/A

                          \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{\color{blue}{angle \cdot \pi}}\right)}{\pi} \]
                        2. lift-/.f64N/A

                          \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{angle \cdot \color{blue}{\pi}}\right)}{\pi} \]
                        3. associate-*r/N/A

                          \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-90 \cdot \left(x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \color{blue}{\pi}}\right)}{\pi} \]
                        4. lower-/.f64N/A

                          \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-90 \cdot \left(x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \color{blue}{\pi}}\right)}{\pi} \]
                      6. Applied rewrites40.2%

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{\left(\mathsf{fma}\left(\sqrt{{x-scale}^{-4}}, y-scale, \frac{y-scale}{x-scale \cdot x-scale}\right) \cdot x-scale\right) \cdot -90}{\pi \cdot \color{blue}{angle}}\right)}{\pi} \]
                      7. Taylor expanded in x-scale around 0

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-180 \cdot \frac{y-scale}{x-scale}}{\pi \cdot angle}\right)}{\pi} \]
                      8. Step-by-step derivation
                        1. lower-*.f64N/A

                          \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-180 \cdot \frac{y-scale}{x-scale}}{\pi \cdot angle}\right)}{\pi} \]
                        2. lower-/.f6438.7

                          \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-180 \cdot \frac{y-scale}{x-scale}}{\pi \cdot angle}\right)}{\pi} \]
                      9. Applied rewrites38.7%

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-180 \cdot \frac{y-scale}{x-scale}}{\pi \cdot angle}\right)}{\pi} \]
                    4. Recombined 2 regimes into one program.
                    5. Add Preprocessing

                    Alternative 7: 38.7% accurate, 24.9× speedup?

                    \[\begin{array}{l} a_m = \left|a\right| \\ \begin{array}{l} \mathbf{if}\;b \leq 10^{-170}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} 0}{\pi}\\ \mathbf{else}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(-180 \cdot \frac{y-scale}{angle \cdot \left(x-scale \cdot \pi\right)}\right)}{\pi}\\ \end{array} \end{array} \]
                    a_m = (fabs.f64 a)
                    (FPCore (a_m b angle x-scale y-scale)
                     :precision binary64
                     (if (<= b 1e-170)
                       (* 180.0 (/ (atan 0.0) PI))
                       (* 180.0 (/ (atan (* -180.0 (/ y-scale (* angle (* x-scale PI))))) PI))))
                    a_m = fabs(a);
                    double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
                    	double tmp;
                    	if (b <= 1e-170) {
                    		tmp = 180.0 * (atan(0.0) / ((double) M_PI));
                    	} else {
                    		tmp = 180.0 * (atan((-180.0 * (y_45_scale / (angle * (x_45_scale * ((double) M_PI)))))) / ((double) M_PI));
                    	}
                    	return tmp;
                    }
                    
                    a_m = Math.abs(a);
                    public static double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
                    	double tmp;
                    	if (b <= 1e-170) {
                    		tmp = 180.0 * (Math.atan(0.0) / Math.PI);
                    	} else {
                    		tmp = 180.0 * (Math.atan((-180.0 * (y_45_scale / (angle * (x_45_scale * Math.PI))))) / Math.PI);
                    	}
                    	return tmp;
                    }
                    
                    a_m = math.fabs(a)
                    def code(a_m, b, angle, x_45_scale, y_45_scale):
                    	tmp = 0
                    	if b <= 1e-170:
                    		tmp = 180.0 * (math.atan(0.0) / math.pi)
                    	else:
                    		tmp = 180.0 * (math.atan((-180.0 * (y_45_scale / (angle * (x_45_scale * math.pi))))) / math.pi)
                    	return tmp
                    
                    a_m = abs(a)
                    function code(a_m, b, angle, x_45_scale, y_45_scale)
                    	tmp = 0.0
                    	if (b <= 1e-170)
                    		tmp = Float64(180.0 * Float64(atan(0.0) / pi));
                    	else
                    		tmp = Float64(180.0 * Float64(atan(Float64(-180.0 * Float64(y_45_scale / Float64(angle * Float64(x_45_scale * pi))))) / pi));
                    	end
                    	return tmp
                    end
                    
                    a_m = abs(a);
                    function tmp_2 = code(a_m, b, angle, x_45_scale, y_45_scale)
                    	tmp = 0.0;
                    	if (b <= 1e-170)
                    		tmp = 180.0 * (atan(0.0) / pi);
                    	else
                    		tmp = 180.0 * (atan((-180.0 * (y_45_scale / (angle * (x_45_scale * pi))))) / pi);
                    	end
                    	tmp_2 = tmp;
                    end
                    
                    a_m = N[Abs[a], $MachinePrecision]
                    code[a$95$m_, b_, angle_, x$45$scale_, y$45$scale_] := If[LessEqual[b, 1e-170], N[(180.0 * N[(N[ArcTan[0.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(-180.0 * N[(y$45$scale / N[(angle * N[(x$45$scale * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]
                    
                    \begin{array}{l}
                    a_m = \left|a\right|
                    
                    \\
                    \begin{array}{l}
                    \mathbf{if}\;b \leq 10^{-170}:\\
                    \;\;\;\;180 \cdot \frac{\tan^{-1} 0}{\pi}\\
                    
                    \mathbf{else}:\\
                    \;\;\;\;180 \cdot \frac{\tan^{-1} \left(-180 \cdot \frac{y-scale}{angle \cdot \left(x-scale \cdot \pi\right)}\right)}{\pi}\\
                    
                    
                    \end{array}
                    \end{array}
                    
                    Derivation
                    1. Split input into 2 regimes
                    2. if b < 9.99999999999999983e-171

                      1. Initial program 13.5%

                        \[180 \cdot \frac{\tan^{-1} \left(\frac{\left(\frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale} - \frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale}\right) - \sqrt{{\left(\frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale} - \frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale}\right)}^{2} + {\left(\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}\right)}^{2}}}{\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}}\right)}{\pi} \]
                      2. Taylor expanded in angle around 0

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\mathsf{PI}\left(\right) \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}}{\pi} \]
                      3. Step-by-step derivation
                        1. Applied rewrites11.8%

                          \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}}{\pi} \]
                        2. Taylor expanded in a around inf

                          \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \color{blue}{\frac{x-scale \cdot \left(y-scale \cdot \left(\frac{1}{{y-scale}^{2}} - \sqrt{\frac{1}{{y-scale}^{4}}}\right)\right)}{angle \cdot \mathsf{PI}\left(\right)}}\right)}{\pi} \]
                        3. Step-by-step derivation
                          1. lower-*.f64N/A

                            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{1}{{y-scale}^{2}} - \sqrt{\frac{1}{{y-scale}^{4}}}\right)\right)}{\color{blue}{angle \cdot \mathsf{PI}\left(\right)}}\right)}{\pi} \]
                          2. lower-/.f64N/A

                            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{1}{{y-scale}^{2}} - \sqrt{\frac{1}{{y-scale}^{4}}}\right)\right)}{angle \cdot \color{blue}{\mathsf{PI}\left(\right)}}\right)}{\pi} \]
                        4. Applied rewrites7.3%

                          \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \color{blue}{\frac{x-scale \cdot \left(y-scale \cdot \left(\frac{1}{{y-scale}^{2}} - \sqrt{\frac{1}{{y-scale}^{4}}}\right)\right)}{angle \cdot \pi}}\right)}{\pi} \]
                        5. Taylor expanded in y-scale around 0

                          \[\leadsto 180 \cdot \frac{\tan^{-1} 0}{\pi} \]
                        6. Step-by-step derivation
                          1. Applied rewrites19.1%

                            \[\leadsto 180 \cdot \frac{\tan^{-1} 0}{\pi} \]

                          if 9.99999999999999983e-171 < b

                          1. Initial program 13.5%

                            \[180 \cdot \frac{\tan^{-1} \left(\frac{\left(\frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale} - \frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale}\right) - \sqrt{{\left(\frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale} - \frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale}\right)}^{2} + {\left(\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}\right)}^{2}}}{\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}}\right)}{\pi} \]
                          2. Taylor expanded in angle around 0

                            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\mathsf{PI}\left(\right) \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}}{\pi} \]
                          3. Step-by-step derivation
                            1. Applied rewrites11.8%

                              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}}{\pi} \]
                            2. Taylor expanded in b around inf

                              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \color{blue}{\frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{angle \cdot \mathsf{PI}\left(\right)}}\right)}{\pi} \]
                            3. Step-by-step derivation
                              1. lower-*.f64N/A

                                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{\color{blue}{angle \cdot \mathsf{PI}\left(\right)}}\right)}{\pi} \]
                              2. lower-/.f64N/A

                                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{angle \cdot \color{blue}{\mathsf{PI}\left(\right)}}\right)}{\pi} \]
                            4. Applied rewrites40.2%

                              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \color{blue}{\frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{angle \cdot \pi}}\right)}{\pi} \]
                            5. Taylor expanded in x-scale around 0

                              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-180 \cdot \frac{y-scale}{\color{blue}{angle \cdot \left(x-scale \cdot \mathsf{PI}\left(\right)\right)}}\right)}{\pi} \]
                            6. Step-by-step derivation
                              1. lower-*.f64N/A

                                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-180 \cdot \frac{y-scale}{angle \cdot \color{blue}{\left(x-scale \cdot \mathsf{PI}\left(\right)\right)}}\right)}{\pi} \]
                              2. lower-/.f64N/A

                                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-180 \cdot \frac{y-scale}{angle \cdot \left(x-scale \cdot \color{blue}{\mathsf{PI}\left(\right)}\right)}\right)}{\pi} \]
                              3. lower-*.f64N/A

                                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-180 \cdot \frac{y-scale}{angle \cdot \left(x-scale \cdot \mathsf{PI}\left(\right)\right)}\right)}{\pi} \]
                              4. lower-*.f64N/A

                                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-180 \cdot \frac{y-scale}{angle \cdot \left(x-scale \cdot \mathsf{PI}\left(\right)\right)}\right)}{\pi} \]
                              5. lower-PI.f6437.4

                                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-180 \cdot \frac{y-scale}{angle \cdot \left(x-scale \cdot \pi\right)}\right)}{\pi} \]
                            7. Applied rewrites37.4%

                              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-180 \cdot \frac{y-scale}{\color{blue}{angle \cdot \left(x-scale \cdot \pi\right)}}\right)}{\pi} \]
                          4. Recombined 2 regimes into one program.
                          5. Add Preprocessing

                          Alternative 8: 28.8% accurate, 27.8× speedup?

                          \[\begin{array}{l} a_m = \left|a\right| \\ 180 \cdot \frac{\tan^{-1} \left(\frac{-180 \cdot \frac{y-scale}{x-scale}}{\pi \cdot angle}\right)}{\pi} \end{array} \]
                          a_m = (fabs.f64 a)
                          (FPCore (a_m b angle x-scale y-scale)
                           :precision binary64
                           (* 180.0 (/ (atan (/ (* -180.0 (/ y-scale x-scale)) (* PI angle))) PI)))
                          a_m = fabs(a);
                          double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
                          	return 180.0 * (atan(((-180.0 * (y_45_scale / x_45_scale)) / (((double) M_PI) * angle))) / ((double) M_PI));
                          }
                          
                          a_m = Math.abs(a);
                          public static double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
                          	return 180.0 * (Math.atan(((-180.0 * (y_45_scale / x_45_scale)) / (Math.PI * angle))) / Math.PI);
                          }
                          
                          a_m = math.fabs(a)
                          def code(a_m, b, angle, x_45_scale, y_45_scale):
                          	return 180.0 * (math.atan(((-180.0 * (y_45_scale / x_45_scale)) / (math.pi * angle))) / math.pi)
                          
                          a_m = abs(a)
                          function code(a_m, b, angle, x_45_scale, y_45_scale)
                          	return Float64(180.0 * Float64(atan(Float64(Float64(-180.0 * Float64(y_45_scale / x_45_scale)) / Float64(pi * angle))) / pi))
                          end
                          
                          a_m = abs(a);
                          function tmp = code(a_m, b, angle, x_45_scale, y_45_scale)
                          	tmp = 180.0 * (atan(((-180.0 * (y_45_scale / x_45_scale)) / (pi * angle))) / pi);
                          end
                          
                          a_m = N[Abs[a], $MachinePrecision]
                          code[a$95$m_, b_, angle_, x$45$scale_, y$45$scale_] := N[(180.0 * N[(N[ArcTan[N[(N[(-180.0 * N[(y$45$scale / x$45$scale), $MachinePrecision]), $MachinePrecision] / N[(Pi * angle), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]
                          
                          \begin{array}{l}
                          a_m = \left|a\right|
                          
                          \\
                          180 \cdot \frac{\tan^{-1} \left(\frac{-180 \cdot \frac{y-scale}{x-scale}}{\pi \cdot angle}\right)}{\pi}
                          \end{array}
                          
                          Derivation
                          1. Initial program 13.5%

                            \[180 \cdot \frac{\tan^{-1} \left(\frac{\left(\frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale} - \frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale}\right) - \sqrt{{\left(\frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale} - \frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale}\right)}^{2} + {\left(\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}\right)}^{2}}}{\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}}\right)}{\pi} \]
                          2. Taylor expanded in angle around 0

                            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\mathsf{PI}\left(\right) \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}}{\pi} \]
                          3. Step-by-step derivation
                            1. Applied rewrites11.8%

                              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}}{\pi} \]
                            2. Taylor expanded in b around inf

                              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \color{blue}{\frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{angle \cdot \mathsf{PI}\left(\right)}}\right)}{\pi} \]
                            3. Step-by-step derivation
                              1. lower-*.f64N/A

                                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{\color{blue}{angle \cdot \mathsf{PI}\left(\right)}}\right)}{\pi} \]
                              2. lower-/.f64N/A

                                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{angle \cdot \color{blue}{\mathsf{PI}\left(\right)}}\right)}{\pi} \]
                            4. Applied rewrites40.2%

                              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \color{blue}{\frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{angle \cdot \pi}}\right)}{\pi} \]
                            5. Step-by-step derivation
                              1. lift-*.f64N/A

                                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{\color{blue}{angle \cdot \pi}}\right)}{\pi} \]
                              2. lift-/.f64N/A

                                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)}{angle \cdot \color{blue}{\pi}}\right)}{\pi} \]
                              3. associate-*r/N/A

                                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-90 \cdot \left(x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \color{blue}{\pi}}\right)}{\pi} \]
                              4. lower-/.f64N/A

                                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-90 \cdot \left(x-scale \cdot \left(y-scale \cdot \left(\sqrt{\frac{1}{{x-scale}^{4}}} + \frac{1}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \color{blue}{\pi}}\right)}{\pi} \]
                            6. Applied rewrites40.2%

                              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{\left(\mathsf{fma}\left(\sqrt{{x-scale}^{-4}}, y-scale, \frac{y-scale}{x-scale \cdot x-scale}\right) \cdot x-scale\right) \cdot -90}{\pi \cdot \color{blue}{angle}}\right)}{\pi} \]
                            7. Taylor expanded in x-scale around 0

                              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-180 \cdot \frac{y-scale}{x-scale}}{\pi \cdot angle}\right)}{\pi} \]
                            8. Step-by-step derivation
                              1. lower-*.f64N/A

                                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-180 \cdot \frac{y-scale}{x-scale}}{\pi \cdot angle}\right)}{\pi} \]
                              2. lower-/.f6438.7

                                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-180 \cdot \frac{y-scale}{x-scale}}{\pi \cdot angle}\right)}{\pi} \]
                            9. Applied rewrites38.7%

                              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{-180 \cdot \frac{y-scale}{x-scale}}{\pi \cdot angle}\right)}{\pi} \]
                            10. Add Preprocessing

                            Alternative 9: 19.1% accurate, 49.1× speedup?

                            \[\begin{array}{l} a_m = \left|a\right| \\ 180 \cdot \frac{\tan^{-1} 0}{\pi} \end{array} \]
                            a_m = (fabs.f64 a)
                            (FPCore (a_m b angle x-scale y-scale)
                             :precision binary64
                             (* 180.0 (/ (atan 0.0) PI)))
                            a_m = fabs(a);
                            double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
                            	return 180.0 * (atan(0.0) / ((double) M_PI));
                            }
                            
                            a_m = Math.abs(a);
                            public static double code(double a_m, double b, double angle, double x_45_scale, double y_45_scale) {
                            	return 180.0 * (Math.atan(0.0) / Math.PI);
                            }
                            
                            a_m = math.fabs(a)
                            def code(a_m, b, angle, x_45_scale, y_45_scale):
                            	return 180.0 * (math.atan(0.0) / math.pi)
                            
                            a_m = abs(a)
                            function code(a_m, b, angle, x_45_scale, y_45_scale)
                            	return Float64(180.0 * Float64(atan(0.0) / pi))
                            end
                            
                            a_m = abs(a);
                            function tmp = code(a_m, b, angle, x_45_scale, y_45_scale)
                            	tmp = 180.0 * (atan(0.0) / pi);
                            end
                            
                            a_m = N[Abs[a], $MachinePrecision]
                            code[a$95$m_, b_, angle_, x$45$scale_, y$45$scale_] := N[(180.0 * N[(N[ArcTan[0.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]
                            
                            \begin{array}{l}
                            a_m = \left|a\right|
                            
                            \\
                            180 \cdot \frac{\tan^{-1} 0}{\pi}
                            \end{array}
                            
                            Derivation
                            1. Initial program 13.5%

                              \[180 \cdot \frac{\tan^{-1} \left(\frac{\left(\frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale} - \frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale}\right) - \sqrt{{\left(\frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale} - \frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale}\right)}^{2} + {\left(\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}\right)}^{2}}}{\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}}\right)}{\pi} \]
                            2. Taylor expanded in angle around 0

                              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\mathsf{PI}\left(\right) \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}}{\pi} \]
                            3. Step-by-step derivation
                              1. Applied rewrites11.8%

                                \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{{a}^{2}}{{y-scale}^{2}} - \left(\sqrt{{\left(\frac{{b}^{2}}{{x-scale}^{2}} - \frac{{a}^{2}}{{y-scale}^{2}}\right)}^{2}} + \frac{{b}^{2}}{{x-scale}^{2}}\right)\right)\right)}{angle \cdot \left(\pi \cdot \left({b}^{2} - {a}^{2}\right)\right)}\right)}}{\pi} \]
                              2. Taylor expanded in a around inf

                                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \color{blue}{\frac{x-scale \cdot \left(y-scale \cdot \left(\frac{1}{{y-scale}^{2}} - \sqrt{\frac{1}{{y-scale}^{4}}}\right)\right)}{angle \cdot \mathsf{PI}\left(\right)}}\right)}{\pi} \]
                              3. Step-by-step derivation
                                1. lower-*.f64N/A

                                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{1}{{y-scale}^{2}} - \sqrt{\frac{1}{{y-scale}^{4}}}\right)\right)}{\color{blue}{angle \cdot \mathsf{PI}\left(\right)}}\right)}{\pi} \]
                                2. lower-/.f64N/A

                                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \frac{x-scale \cdot \left(y-scale \cdot \left(\frac{1}{{y-scale}^{2}} - \sqrt{\frac{1}{{y-scale}^{4}}}\right)\right)}{angle \cdot \color{blue}{\mathsf{PI}\left(\right)}}\right)}{\pi} \]
                              4. Applied rewrites7.3%

                                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-90 \cdot \color{blue}{\frac{x-scale \cdot \left(y-scale \cdot \left(\frac{1}{{y-scale}^{2}} - \sqrt{\frac{1}{{y-scale}^{4}}}\right)\right)}{angle \cdot \pi}}\right)}{\pi} \]
                              5. Taylor expanded in y-scale around 0

                                \[\leadsto 180 \cdot \frac{\tan^{-1} 0}{\pi} \]
                              6. Step-by-step derivation
                                1. Applied rewrites19.1%

                                  \[\leadsto 180 \cdot \frac{\tan^{-1} 0}{\pi} \]
                                2. Add Preprocessing

                                Reproduce

                                ?
                                herbie shell --seed 2025150 
                                (FPCore (a b angle x-scale y-scale)
                                  :name "raw-angle from scale-rotated-ellipse"
                                  :precision binary64
                                  (* 180.0 (/ (atan (/ (- (- (/ (/ (+ (pow (* a (cos (* (/ angle 180.0) PI))) 2.0) (pow (* b (sin (* (/ angle 180.0) PI))) 2.0)) y-scale) y-scale) (/ (/ (+ (pow (* a (sin (* (/ angle 180.0) PI))) 2.0) (pow (* b (cos (* (/ angle 180.0) PI))) 2.0)) x-scale) x-scale)) (sqrt (+ (pow (- (/ (/ (+ (pow (* a (sin (* (/ angle 180.0) PI))) 2.0) (pow (* b (cos (* (/ angle 180.0) PI))) 2.0)) x-scale) x-scale) (/ (/ (+ (pow (* a (cos (* (/ angle 180.0) PI))) 2.0) (pow (* b (sin (* (/ angle 180.0) PI))) 2.0)) y-scale) y-scale)) 2.0) (pow (/ (/ (* (* (* 2.0 (- (pow b 2.0) (pow a 2.0))) (sin (* (/ angle 180.0) PI))) (cos (* (/ angle 180.0) PI))) x-scale) y-scale) 2.0)))) (/ (/ (* (* (* 2.0 (- (pow b 2.0) (pow a 2.0))) (sin (* (/ angle 180.0) PI))) (cos (* (/ angle 180.0) PI))) x-scale) y-scale))) PI)))