ABCF->ab-angle angle

Percentage Accurate: 54.0% → 88.9%
Time: 13.5s
Alternatives: 15
Speedup: 2.6×

Specification

?
\[\begin{array}{l} \\ 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \end{array} \]
(FPCore (A B C)
 :precision binary64
 (*
  180.0
  (/
   (atan (* (/ 1.0 B) (- (- C A) (sqrt (+ (pow (- A C) 2.0) (pow B 2.0))))))
   PI)))
double code(double A, double B, double C) {
	return 180.0 * (atan(((1.0 / B) * ((C - A) - sqrt((pow((A - C), 2.0) + pow(B, 2.0)))))) / ((double) M_PI));
}
public static double code(double A, double B, double C) {
	return 180.0 * (Math.atan(((1.0 / B) * ((C - A) - Math.sqrt((Math.pow((A - C), 2.0) + Math.pow(B, 2.0)))))) / Math.PI);
}
def code(A, B, C):
	return 180.0 * (math.atan(((1.0 / B) * ((C - A) - math.sqrt((math.pow((A - C), 2.0) + math.pow(B, 2.0)))))) / math.pi)
function code(A, B, C)
	return Float64(180.0 * Float64(atan(Float64(Float64(1.0 / B) * Float64(Float64(C - A) - sqrt(Float64((Float64(A - C) ^ 2.0) + (B ^ 2.0)))))) / pi))
end
function tmp = code(A, B, C)
	tmp = 180.0 * (atan(((1.0 / B) * ((C - A) - sqrt((((A - C) ^ 2.0) + (B ^ 2.0)))))) / pi);
end
code[A_, B_, C_] := N[(180.0 * N[(N[ArcTan[N[(N[(1.0 / B), $MachinePrecision] * N[(N[(C - A), $MachinePrecision] - N[Sqrt[N[(N[Power[N[(A - C), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[B, 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi}
\end{array}

Sampling outcomes in binary64 precision:

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 15 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: 54.0% accurate, 1.0× speedup?

\[\begin{array}{l} \\ 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \end{array} \]
(FPCore (A B C)
 :precision binary64
 (*
  180.0
  (/
   (atan (* (/ 1.0 B) (- (- C A) (sqrt (+ (pow (- A C) 2.0) (pow B 2.0))))))
   PI)))
double code(double A, double B, double C) {
	return 180.0 * (atan(((1.0 / B) * ((C - A) - sqrt((pow((A - C), 2.0) + pow(B, 2.0)))))) / ((double) M_PI));
}
public static double code(double A, double B, double C) {
	return 180.0 * (Math.atan(((1.0 / B) * ((C - A) - Math.sqrt((Math.pow((A - C), 2.0) + Math.pow(B, 2.0)))))) / Math.PI);
}
def code(A, B, C):
	return 180.0 * (math.atan(((1.0 / B) * ((C - A) - math.sqrt((math.pow((A - C), 2.0) + math.pow(B, 2.0)))))) / math.pi)
function code(A, B, C)
	return Float64(180.0 * Float64(atan(Float64(Float64(1.0 / B) * Float64(Float64(C - A) - sqrt(Float64((Float64(A - C) ^ 2.0) + (B ^ 2.0)))))) / pi))
end
function tmp = code(A, B, C)
	tmp = 180.0 * (atan(((1.0 / B) * ((C - A) - sqrt((((A - C) ^ 2.0) + (B ^ 2.0)))))) / pi);
end
code[A_, B_, C_] := N[(180.0 * N[(N[ArcTan[N[(N[(1.0 / B), $MachinePrecision] * N[(N[(C - A), $MachinePrecision] - N[Sqrt[N[(N[Power[N[(A - C), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[B, 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi}
\end{array}

Alternative 1: 88.9% accurate, 0.5× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \mathsf{hypot}\left(C - A, B\right)\right)\right)}{\pi}\\ t_1 := \frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\\ \mathbf{if}\;t\_1 \leq -0.4:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;t\_1 \leq 0:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(B \cdot \frac{0.5}{A - C}\right)}{\pi}\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
(FPCore (A B C)
 :precision binary64
 (let* ((t_0
         (* 180.0 (/ (atan (* (/ 1.0 B) (- (- C A) (hypot (- C A) B)))) PI)))
        (t_1
         (* (/ 1.0 B) (- (- C A) (sqrt (+ (pow (- A C) 2.0) (pow B 2.0)))))))
   (if (<= t_1 -0.4)
     t_0
     (if (<= t_1 0.0) (* 180.0 (/ (atan (* B (/ 0.5 (- A C)))) PI)) t_0))))
double code(double A, double B, double C) {
	double t_0 = 180.0 * (atan(((1.0 / B) * ((C - A) - hypot((C - A), B)))) / ((double) M_PI));
	double t_1 = (1.0 / B) * ((C - A) - sqrt((pow((A - C), 2.0) + pow(B, 2.0))));
	double tmp;
	if (t_1 <= -0.4) {
		tmp = t_0;
	} else if (t_1 <= 0.0) {
		tmp = 180.0 * (atan((B * (0.5 / (A - C)))) / ((double) M_PI));
	} else {
		tmp = t_0;
	}
	return tmp;
}
public static double code(double A, double B, double C) {
	double t_0 = 180.0 * (Math.atan(((1.0 / B) * ((C - A) - Math.hypot((C - A), B)))) / Math.PI);
	double t_1 = (1.0 / B) * ((C - A) - Math.sqrt((Math.pow((A - C), 2.0) + Math.pow(B, 2.0))));
	double tmp;
	if (t_1 <= -0.4) {
		tmp = t_0;
	} else if (t_1 <= 0.0) {
		tmp = 180.0 * (Math.atan((B * (0.5 / (A - C)))) / Math.PI);
	} else {
		tmp = t_0;
	}
	return tmp;
}
def code(A, B, C):
	t_0 = 180.0 * (math.atan(((1.0 / B) * ((C - A) - math.hypot((C - A), B)))) / math.pi)
	t_1 = (1.0 / B) * ((C - A) - math.sqrt((math.pow((A - C), 2.0) + math.pow(B, 2.0))))
	tmp = 0
	if t_1 <= -0.4:
		tmp = t_0
	elif t_1 <= 0.0:
		tmp = 180.0 * (math.atan((B * (0.5 / (A - C)))) / math.pi)
	else:
		tmp = t_0
	return tmp
function code(A, B, C)
	t_0 = Float64(180.0 * Float64(atan(Float64(Float64(1.0 / B) * Float64(Float64(C - A) - hypot(Float64(C - A), B)))) / pi))
	t_1 = Float64(Float64(1.0 / B) * Float64(Float64(C - A) - sqrt(Float64((Float64(A - C) ^ 2.0) + (B ^ 2.0)))))
	tmp = 0.0
	if (t_1 <= -0.4)
		tmp = t_0;
	elseif (t_1 <= 0.0)
		tmp = Float64(180.0 * Float64(atan(Float64(B * Float64(0.5 / Float64(A - C)))) / pi));
	else
		tmp = t_0;
	end
	return tmp
end
function tmp_2 = code(A, B, C)
	t_0 = 180.0 * (atan(((1.0 / B) * ((C - A) - hypot((C - A), B)))) / pi);
	t_1 = (1.0 / B) * ((C - A) - sqrt((((A - C) ^ 2.0) + (B ^ 2.0))));
	tmp = 0.0;
	if (t_1 <= -0.4)
		tmp = t_0;
	elseif (t_1 <= 0.0)
		tmp = 180.0 * (atan((B * (0.5 / (A - C)))) / pi);
	else
		tmp = t_0;
	end
	tmp_2 = tmp;
end
code[A_, B_, C_] := Block[{t$95$0 = N[(180.0 * N[(N[ArcTan[N[(N[(1.0 / B), $MachinePrecision] * N[(N[(C - A), $MachinePrecision] - N[Sqrt[N[(C - A), $MachinePrecision] ^ 2 + B ^ 2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(1.0 / B), $MachinePrecision] * N[(N[(C - A), $MachinePrecision] - N[Sqrt[N[(N[Power[N[(A - C), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[B, 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$1, -0.4], t$95$0, If[LessEqual[t$95$1, 0.0], N[(180.0 * N[(N[ArcTan[N[(B * N[(0.5 / N[(A - C), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], t$95$0]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \mathsf{hypot}\left(C - A, B\right)\right)\right)}{\pi}\\
t_1 := \frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\\
\mathbf{if}\;t\_1 \leq -0.4:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;t\_1 \leq 0:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(B \cdot \frac{0.5}{A - C}\right)}{\pi}\\

\mathbf{else}:\\
\;\;\;\;t\_0\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64)))))) < -0.40000000000000002 or -0.0 < (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64))))))

    1. Initial program 61.2%

      \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. Applied egg-rr87.0%

        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \color{blue}{\mathsf{hypot}\left(C - A, B\right)}\right)\right)}{\pi} \]

      if -0.40000000000000002 < (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64)))))) < -0.0

      1. Initial program 19.8%

        \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
      2. Add Preprocessing
      3. Step-by-step derivation
        1. Applied egg-rr19.8%

          \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \color{blue}{\mathsf{hypot}\left(C - A, B\right)}\right)\right)}{\pi} \]
        2. Taylor expanded in B around 0

          \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{-1}{2} \cdot \frac{B}{C - A}\right)}}{\mathsf{PI}\left(\right)} \]
        3. Step-by-step derivation
          1. associate-*r/N/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{\frac{-1}{2} \cdot B}{C - A}\right)}}{\mathsf{PI}\left(\right)} \]
          2. *-commutativeN/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{\color{blue}{B \cdot \frac{-1}{2}}}{C - A}\right)}{\mathsf{PI}\left(\right)} \]
          3. associate-/l*N/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(B \cdot \frac{\frac{-1}{2}}{C - A}\right)}}{\mathsf{PI}\left(\right)} \]
          4. metadata-evalN/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \frac{\color{blue}{\mathsf{neg}\left(\frac{1}{2}\right)}}{C - A}\right)}{\mathsf{PI}\left(\right)} \]
          5. distribute-neg-fracN/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \color{blue}{\left(\mathsf{neg}\left(\frac{\frac{1}{2}}{C - A}\right)\right)}\right)}{\mathsf{PI}\left(\right)} \]
          6. metadata-evalN/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \left(\mathsf{neg}\left(\frac{\color{blue}{\frac{1}{2} \cdot 1}}{C - A}\right)\right)\right)}{\mathsf{PI}\left(\right)} \]
          7. associate-*r/N/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \left(\mathsf{neg}\left(\color{blue}{\frac{1}{2} \cdot \frac{1}{C - A}}\right)\right)\right)}{\mathsf{PI}\left(\right)} \]
          8. *-lowering-*.f64N/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(B \cdot \left(\mathsf{neg}\left(\frac{1}{2} \cdot \frac{1}{C - A}\right)\right)\right)}}{\mathsf{PI}\left(\right)} \]
          9. associate-*r/N/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \left(\mathsf{neg}\left(\color{blue}{\frac{\frac{1}{2} \cdot 1}{C - A}}\right)\right)\right)}{\mathsf{PI}\left(\right)} \]
          10. metadata-evalN/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \left(\mathsf{neg}\left(\frac{\color{blue}{\frac{1}{2}}}{C - A}\right)\right)\right)}{\mathsf{PI}\left(\right)} \]
          11. distribute-neg-frac2N/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \color{blue}{\frac{\frac{1}{2}}{\mathsf{neg}\left(\left(C - A\right)\right)}}\right)}{\mathsf{PI}\left(\right)} \]
          12. mul-1-negN/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \frac{\frac{1}{2}}{\color{blue}{-1 \cdot \left(C - A\right)}}\right)}{\mathsf{PI}\left(\right)} \]
          13. sub-negN/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \frac{\frac{1}{2}}{-1 \cdot \color{blue}{\left(C + \left(\mathsf{neg}\left(A\right)\right)\right)}}\right)}{\mathsf{PI}\left(\right)} \]
          14. +-commutativeN/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \frac{\frac{1}{2}}{-1 \cdot \color{blue}{\left(\left(\mathsf{neg}\left(A\right)\right) + C\right)}}\right)}{\mathsf{PI}\left(\right)} \]
          15. distribute-lft-inN/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \frac{\frac{1}{2}}{\color{blue}{-1 \cdot \left(\mathsf{neg}\left(A\right)\right) + -1 \cdot C}}\right)}{\mathsf{PI}\left(\right)} \]
          16. mul-1-negN/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \frac{\frac{1}{2}}{\color{blue}{\left(\mathsf{neg}\left(\left(\mathsf{neg}\left(A\right)\right)\right)\right)} + -1 \cdot C}\right)}{\mathsf{PI}\left(\right)} \]
          17. remove-double-negN/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \frac{\frac{1}{2}}{\color{blue}{A} + -1 \cdot C}\right)}{\mathsf{PI}\left(\right)} \]
          18. /-lowering-/.f64N/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \color{blue}{\frac{\frac{1}{2}}{A + -1 \cdot C}}\right)}{\mathsf{PI}\left(\right)} \]
          19. mul-1-negN/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \frac{\frac{1}{2}}{A + \color{blue}{\left(\mathsf{neg}\left(C\right)\right)}}\right)}{\mathsf{PI}\left(\right)} \]
          20. unsub-negN/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \frac{\frac{1}{2}}{\color{blue}{A - C}}\right)}{\mathsf{PI}\left(\right)} \]
          21. --lowering--.f6499.2

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \frac{0.5}{\color{blue}{A - C}}\right)}{\pi} \]
        4. Simplified99.2%

          \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(B \cdot \frac{0.5}{A - C}\right)}}{\pi} \]
      4. Recombined 2 regimes into one program.
      5. Add Preprocessing

      Alternative 2: 79.0% accurate, 0.6× speedup?

      \[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\\ t_1 := \frac{C - A}{B}\\ \mathbf{if}\;t\_0 \leq -0.5:\\ \;\;\;\;\frac{180 \cdot \tan^{-1} \left(t\_1 + -1\right)}{\pi}\\ \mathbf{elif}\;t\_0 \leq 0:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(B \cdot \frac{0.5}{A - C}\right)}{\pi}\\ \mathbf{else}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 + t\_1\right)}{\pi}\\ \end{array} \end{array} \]
      (FPCore (A B C)
       :precision binary64
       (let* ((t_0
               (* (/ 1.0 B) (- (- C A) (sqrt (+ (pow (- A C) 2.0) (pow B 2.0))))))
              (t_1 (/ (- C A) B)))
         (if (<= t_0 -0.5)
           (/ (* 180.0 (atan (+ t_1 -1.0))) PI)
           (if (<= t_0 0.0)
             (* 180.0 (/ (atan (* B (/ 0.5 (- A C)))) PI))
             (* 180.0 (/ (atan (+ 1.0 t_1)) PI))))))
      double code(double A, double B, double C) {
      	double t_0 = (1.0 / B) * ((C - A) - sqrt((pow((A - C), 2.0) + pow(B, 2.0))));
      	double t_1 = (C - A) / B;
      	double tmp;
      	if (t_0 <= -0.5) {
      		tmp = (180.0 * atan((t_1 + -1.0))) / ((double) M_PI);
      	} else if (t_0 <= 0.0) {
      		tmp = 180.0 * (atan((B * (0.5 / (A - C)))) / ((double) M_PI));
      	} else {
      		tmp = 180.0 * (atan((1.0 + t_1)) / ((double) M_PI));
      	}
      	return tmp;
      }
      
      public static double code(double A, double B, double C) {
      	double t_0 = (1.0 / B) * ((C - A) - Math.sqrt((Math.pow((A - C), 2.0) + Math.pow(B, 2.0))));
      	double t_1 = (C - A) / B;
      	double tmp;
      	if (t_0 <= -0.5) {
      		tmp = (180.0 * Math.atan((t_1 + -1.0))) / Math.PI;
      	} else if (t_0 <= 0.0) {
      		tmp = 180.0 * (Math.atan((B * (0.5 / (A - C)))) / Math.PI);
      	} else {
      		tmp = 180.0 * (Math.atan((1.0 + t_1)) / Math.PI);
      	}
      	return tmp;
      }
      
      def code(A, B, C):
      	t_0 = (1.0 / B) * ((C - A) - math.sqrt((math.pow((A - C), 2.0) + math.pow(B, 2.0))))
      	t_1 = (C - A) / B
      	tmp = 0
      	if t_0 <= -0.5:
      		tmp = (180.0 * math.atan((t_1 + -1.0))) / math.pi
      	elif t_0 <= 0.0:
      		tmp = 180.0 * (math.atan((B * (0.5 / (A - C)))) / math.pi)
      	else:
      		tmp = 180.0 * (math.atan((1.0 + t_1)) / math.pi)
      	return tmp
      
      function code(A, B, C)
      	t_0 = Float64(Float64(1.0 / B) * Float64(Float64(C - A) - sqrt(Float64((Float64(A - C) ^ 2.0) + (B ^ 2.0)))))
      	t_1 = Float64(Float64(C - A) / B)
      	tmp = 0.0
      	if (t_0 <= -0.5)
      		tmp = Float64(Float64(180.0 * atan(Float64(t_1 + -1.0))) / pi);
      	elseif (t_0 <= 0.0)
      		tmp = Float64(180.0 * Float64(atan(Float64(B * Float64(0.5 / Float64(A - C)))) / pi));
      	else
      		tmp = Float64(180.0 * Float64(atan(Float64(1.0 + t_1)) / pi));
      	end
      	return tmp
      end
      
      function tmp_2 = code(A, B, C)
      	t_0 = (1.0 / B) * ((C - A) - sqrt((((A - C) ^ 2.0) + (B ^ 2.0))));
      	t_1 = (C - A) / B;
      	tmp = 0.0;
      	if (t_0 <= -0.5)
      		tmp = (180.0 * atan((t_1 + -1.0))) / pi;
      	elseif (t_0 <= 0.0)
      		tmp = 180.0 * (atan((B * (0.5 / (A - C)))) / pi);
      	else
      		tmp = 180.0 * (atan((1.0 + t_1)) / pi);
      	end
      	tmp_2 = tmp;
      end
      
      code[A_, B_, C_] := Block[{t$95$0 = N[(N[(1.0 / B), $MachinePrecision] * N[(N[(C - A), $MachinePrecision] - N[Sqrt[N[(N[Power[N[(A - C), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[B, 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(C - A), $MachinePrecision] / B), $MachinePrecision]}, If[LessEqual[t$95$0, -0.5], N[(N[(180.0 * N[ArcTan[N[(t$95$1 + -1.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], If[LessEqual[t$95$0, 0.0], N[(180.0 * N[(N[ArcTan[N[(B * N[(0.5 / N[(A - C), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(1.0 + t$95$1), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]]
      
      \begin{array}{l}
      
      \\
      \begin{array}{l}
      t_0 := \frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\\
      t_1 := \frac{C - A}{B}\\
      \mathbf{if}\;t\_0 \leq -0.5:\\
      \;\;\;\;\frac{180 \cdot \tan^{-1} \left(t\_1 + -1\right)}{\pi}\\
      
      \mathbf{elif}\;t\_0 \leq 0:\\
      \;\;\;\;180 \cdot \frac{\tan^{-1} \left(B \cdot \frac{0.5}{A - C}\right)}{\pi}\\
      
      \mathbf{else}:\\
      \;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 + t\_1\right)}{\pi}\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 3 regimes
      2. if (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64)))))) < -0.5

        1. Initial program 61.9%

          \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
        2. Add Preprocessing
        3. Taylor expanded in B around inf

          \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C}{B} - \left(1 + \frac{A}{B}\right)\right)}}{\mathsf{PI}\left(\right)} \]
        4. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C}{B} - \color{blue}{\left(\frac{A}{B} + 1\right)}\right)}{\mathsf{PI}\left(\right)} \]
          2. associate--r+N/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\left(\frac{C}{B} - \frac{A}{B}\right) - 1\right)}}{\mathsf{PI}\left(\right)} \]
          3. div-subN/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\color{blue}{\frac{C - A}{B}} - 1\right)}{\mathsf{PI}\left(\right)} \]
          4. sub-negN/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - A}{B} + \left(\mathsf{neg}\left(1\right)\right)\right)}}{\mathsf{PI}\left(\right)} \]
          5. metadata-evalN/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - A}{B} + \color{blue}{-1}\right)}{\mathsf{PI}\left(\right)} \]
          6. +-lowering-+.f64N/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - A}{B} + -1\right)}}{\mathsf{PI}\left(\right)} \]
          7. /-lowering-/.f64N/A

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\color{blue}{\frac{C - A}{B}} + -1\right)}{\mathsf{PI}\left(\right)} \]
          8. --lowering--.f6479.1

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{\color{blue}{C - A}}{B} + -1\right)}{\pi} \]
        5. Simplified79.1%

          \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - A}{B} + -1\right)}}{\pi} \]
        6. Step-by-step derivation
          1. associate-*r/N/A

            \[\leadsto \color{blue}{\frac{180 \cdot \tan^{-1} \left(\frac{C - A}{B} + -1\right)}{\mathsf{PI}\left(\right)}} \]
          2. /-lowering-/.f64N/A

            \[\leadsto \color{blue}{\frac{180 \cdot \tan^{-1} \left(\frac{C - A}{B} + -1\right)}{\mathsf{PI}\left(\right)}} \]
          3. *-lowering-*.f64N/A

            \[\leadsto \frac{\color{blue}{180 \cdot \tan^{-1} \left(\frac{C - A}{B} + -1\right)}}{\mathsf{PI}\left(\right)} \]
          4. atan-lowering-atan.f64N/A

            \[\leadsto \frac{180 \cdot \color{blue}{\tan^{-1} \left(\frac{C - A}{B} + -1\right)}}{\mathsf{PI}\left(\right)} \]
          5. +-lowering-+.f64N/A

            \[\leadsto \frac{180 \cdot \tan^{-1} \color{blue}{\left(\frac{C - A}{B} + -1\right)}}{\mathsf{PI}\left(\right)} \]
          6. /-lowering-/.f64N/A

            \[\leadsto \frac{180 \cdot \tan^{-1} \left(\color{blue}{\frac{C - A}{B}} + -1\right)}{\mathsf{PI}\left(\right)} \]
          7. --lowering--.f64N/A

            \[\leadsto \frac{180 \cdot \tan^{-1} \left(\frac{\color{blue}{C - A}}{B} + -1\right)}{\mathsf{PI}\left(\right)} \]
          8. PI-lowering-PI.f6479.1

            \[\leadsto \frac{180 \cdot \tan^{-1} \left(\frac{C - A}{B} + -1\right)}{\color{blue}{\pi}} \]
        7. Applied egg-rr79.1%

          \[\leadsto \color{blue}{\frac{180 \cdot \tan^{-1} \left(\frac{C - A}{B} + -1\right)}{\pi}} \]

        if -0.5 < (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64)))))) < -0.0

        1. Initial program 21.6%

          \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
        2. Add Preprocessing
        3. Step-by-step derivation
          1. Applied egg-rr21.6%

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \color{blue}{\mathsf{hypot}\left(C - A, B\right)}\right)\right)}{\pi} \]
          2. Taylor expanded in B around 0

            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{-1}{2} \cdot \frac{B}{C - A}\right)}}{\mathsf{PI}\left(\right)} \]
          3. Step-by-step derivation
            1. associate-*r/N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{\frac{-1}{2} \cdot B}{C - A}\right)}}{\mathsf{PI}\left(\right)} \]
            2. *-commutativeN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{\color{blue}{B \cdot \frac{-1}{2}}}{C - A}\right)}{\mathsf{PI}\left(\right)} \]
            3. associate-/l*N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(B \cdot \frac{\frac{-1}{2}}{C - A}\right)}}{\mathsf{PI}\left(\right)} \]
            4. metadata-evalN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \frac{\color{blue}{\mathsf{neg}\left(\frac{1}{2}\right)}}{C - A}\right)}{\mathsf{PI}\left(\right)} \]
            5. distribute-neg-fracN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \color{blue}{\left(\mathsf{neg}\left(\frac{\frac{1}{2}}{C - A}\right)\right)}\right)}{\mathsf{PI}\left(\right)} \]
            6. metadata-evalN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \left(\mathsf{neg}\left(\frac{\color{blue}{\frac{1}{2} \cdot 1}}{C - A}\right)\right)\right)}{\mathsf{PI}\left(\right)} \]
            7. associate-*r/N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \left(\mathsf{neg}\left(\color{blue}{\frac{1}{2} \cdot \frac{1}{C - A}}\right)\right)\right)}{\mathsf{PI}\left(\right)} \]
            8. *-lowering-*.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(B \cdot \left(\mathsf{neg}\left(\frac{1}{2} \cdot \frac{1}{C - A}\right)\right)\right)}}{\mathsf{PI}\left(\right)} \]
            9. associate-*r/N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \left(\mathsf{neg}\left(\color{blue}{\frac{\frac{1}{2} \cdot 1}{C - A}}\right)\right)\right)}{\mathsf{PI}\left(\right)} \]
            10. metadata-evalN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \left(\mathsf{neg}\left(\frac{\color{blue}{\frac{1}{2}}}{C - A}\right)\right)\right)}{\mathsf{PI}\left(\right)} \]
            11. distribute-neg-frac2N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \color{blue}{\frac{\frac{1}{2}}{\mathsf{neg}\left(\left(C - A\right)\right)}}\right)}{\mathsf{PI}\left(\right)} \]
            12. mul-1-negN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \frac{\frac{1}{2}}{\color{blue}{-1 \cdot \left(C - A\right)}}\right)}{\mathsf{PI}\left(\right)} \]
            13. sub-negN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \frac{\frac{1}{2}}{-1 \cdot \color{blue}{\left(C + \left(\mathsf{neg}\left(A\right)\right)\right)}}\right)}{\mathsf{PI}\left(\right)} \]
            14. +-commutativeN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \frac{\frac{1}{2}}{-1 \cdot \color{blue}{\left(\left(\mathsf{neg}\left(A\right)\right) + C\right)}}\right)}{\mathsf{PI}\left(\right)} \]
            15. distribute-lft-inN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \frac{\frac{1}{2}}{\color{blue}{-1 \cdot \left(\mathsf{neg}\left(A\right)\right) + -1 \cdot C}}\right)}{\mathsf{PI}\left(\right)} \]
            16. mul-1-negN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \frac{\frac{1}{2}}{\color{blue}{\left(\mathsf{neg}\left(\left(\mathsf{neg}\left(A\right)\right)\right)\right)} + -1 \cdot C}\right)}{\mathsf{PI}\left(\right)} \]
            17. remove-double-negN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \frac{\frac{1}{2}}{\color{blue}{A} + -1 \cdot C}\right)}{\mathsf{PI}\left(\right)} \]
            18. /-lowering-/.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \color{blue}{\frac{\frac{1}{2}}{A + -1 \cdot C}}\right)}{\mathsf{PI}\left(\right)} \]
            19. mul-1-negN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \frac{\frac{1}{2}}{A + \color{blue}{\left(\mathsf{neg}\left(C\right)\right)}}\right)}{\mathsf{PI}\left(\right)} \]
            20. unsub-negN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \frac{\frac{1}{2}}{\color{blue}{A - C}}\right)}{\mathsf{PI}\left(\right)} \]
            21. --lowering--.f6497.5

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \frac{0.5}{\color{blue}{A - C}}\right)}{\pi} \]
          4. Simplified97.5%

            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(B \cdot \frac{0.5}{A - C}\right)}}{\pi} \]

          if -0.0 < (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64))))))

          1. Initial program 59.9%

            \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
          2. Add Preprocessing
          3. Taylor expanded in B around -inf

            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\left(1 + \frac{C}{B}\right) - \frac{A}{B}\right)}}{\mathsf{PI}\left(\right)} \]
          4. Step-by-step derivation
            1. associate--l+N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(1 + \left(\frac{C}{B} - \frac{A}{B}\right)\right)}}{\mathsf{PI}\left(\right)} \]
            2. div-subN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(1 + \color{blue}{\frac{C - A}{B}}\right)}{\mathsf{PI}\left(\right)} \]
            3. +-lowering-+.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(1 + \frac{C - A}{B}\right)}}{\mathsf{PI}\left(\right)} \]
            4. /-lowering-/.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(1 + \color{blue}{\frac{C - A}{B}}\right)}{\mathsf{PI}\left(\right)} \]
            5. --lowering--.f6476.5

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(1 + \frac{\color{blue}{C - A}}{B}\right)}{\pi} \]
          5. Simplified76.5%

            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(1 + \frac{C - A}{B}\right)}}{\pi} \]
        4. Recombined 3 regimes into one program.
        5. Add Preprocessing

        Alternative 3: 72.6% accurate, 0.6× speedup?

        \[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\\ t_1 := \frac{C - A}{B}\\ \mathbf{if}\;t\_0 \leq -0.5:\\ \;\;\;\;\frac{180 \cdot \tan^{-1} \left(t\_1 + -1\right)}{\pi}\\ \mathbf{elif}\;t\_0 \leq 0:\\ \;\;\;\;\frac{\tan^{-1} \left(\frac{B \cdot 0.5}{A}\right)}{\pi \cdot 0.005555555555555556}\\ \mathbf{else}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 + t\_1\right)}{\pi}\\ \end{array} \end{array} \]
        (FPCore (A B C)
         :precision binary64
         (let* ((t_0
                 (* (/ 1.0 B) (- (- C A) (sqrt (+ (pow (- A C) 2.0) (pow B 2.0))))))
                (t_1 (/ (- C A) B)))
           (if (<= t_0 -0.5)
             (/ (* 180.0 (atan (+ t_1 -1.0))) PI)
             (if (<= t_0 0.0)
               (/ (atan (/ (* B 0.5) A)) (* PI 0.005555555555555556))
               (* 180.0 (/ (atan (+ 1.0 t_1)) PI))))))
        double code(double A, double B, double C) {
        	double t_0 = (1.0 / B) * ((C - A) - sqrt((pow((A - C), 2.0) + pow(B, 2.0))));
        	double t_1 = (C - A) / B;
        	double tmp;
        	if (t_0 <= -0.5) {
        		tmp = (180.0 * atan((t_1 + -1.0))) / ((double) M_PI);
        	} else if (t_0 <= 0.0) {
        		tmp = atan(((B * 0.5) / A)) / (((double) M_PI) * 0.005555555555555556);
        	} else {
        		tmp = 180.0 * (atan((1.0 + t_1)) / ((double) M_PI));
        	}
        	return tmp;
        }
        
        public static double code(double A, double B, double C) {
        	double t_0 = (1.0 / B) * ((C - A) - Math.sqrt((Math.pow((A - C), 2.0) + Math.pow(B, 2.0))));
        	double t_1 = (C - A) / B;
        	double tmp;
        	if (t_0 <= -0.5) {
        		tmp = (180.0 * Math.atan((t_1 + -1.0))) / Math.PI;
        	} else if (t_0 <= 0.0) {
        		tmp = Math.atan(((B * 0.5) / A)) / (Math.PI * 0.005555555555555556);
        	} else {
        		tmp = 180.0 * (Math.atan((1.0 + t_1)) / Math.PI);
        	}
        	return tmp;
        }
        
        def code(A, B, C):
        	t_0 = (1.0 / B) * ((C - A) - math.sqrt((math.pow((A - C), 2.0) + math.pow(B, 2.0))))
        	t_1 = (C - A) / B
        	tmp = 0
        	if t_0 <= -0.5:
        		tmp = (180.0 * math.atan((t_1 + -1.0))) / math.pi
        	elif t_0 <= 0.0:
        		tmp = math.atan(((B * 0.5) / A)) / (math.pi * 0.005555555555555556)
        	else:
        		tmp = 180.0 * (math.atan((1.0 + t_1)) / math.pi)
        	return tmp
        
        function code(A, B, C)
        	t_0 = Float64(Float64(1.0 / B) * Float64(Float64(C - A) - sqrt(Float64((Float64(A - C) ^ 2.0) + (B ^ 2.0)))))
        	t_1 = Float64(Float64(C - A) / B)
        	tmp = 0.0
        	if (t_0 <= -0.5)
        		tmp = Float64(Float64(180.0 * atan(Float64(t_1 + -1.0))) / pi);
        	elseif (t_0 <= 0.0)
        		tmp = Float64(atan(Float64(Float64(B * 0.5) / A)) / Float64(pi * 0.005555555555555556));
        	else
        		tmp = Float64(180.0 * Float64(atan(Float64(1.0 + t_1)) / pi));
        	end
        	return tmp
        end
        
        function tmp_2 = code(A, B, C)
        	t_0 = (1.0 / B) * ((C - A) - sqrt((((A - C) ^ 2.0) + (B ^ 2.0))));
        	t_1 = (C - A) / B;
        	tmp = 0.0;
        	if (t_0 <= -0.5)
        		tmp = (180.0 * atan((t_1 + -1.0))) / pi;
        	elseif (t_0 <= 0.0)
        		tmp = atan(((B * 0.5) / A)) / (pi * 0.005555555555555556);
        	else
        		tmp = 180.0 * (atan((1.0 + t_1)) / pi);
        	end
        	tmp_2 = tmp;
        end
        
        code[A_, B_, C_] := Block[{t$95$0 = N[(N[(1.0 / B), $MachinePrecision] * N[(N[(C - A), $MachinePrecision] - N[Sqrt[N[(N[Power[N[(A - C), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[B, 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(C - A), $MachinePrecision] / B), $MachinePrecision]}, If[LessEqual[t$95$0, -0.5], N[(N[(180.0 * N[ArcTan[N[(t$95$1 + -1.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], If[LessEqual[t$95$0, 0.0], N[(N[ArcTan[N[(N[(B * 0.5), $MachinePrecision] / A), $MachinePrecision]], $MachinePrecision] / N[(Pi * 0.005555555555555556), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(1.0 + t$95$1), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]]
        
        \begin{array}{l}
        
        \\
        \begin{array}{l}
        t_0 := \frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\\
        t_1 := \frac{C - A}{B}\\
        \mathbf{if}\;t\_0 \leq -0.5:\\
        \;\;\;\;\frac{180 \cdot \tan^{-1} \left(t\_1 + -1\right)}{\pi}\\
        
        \mathbf{elif}\;t\_0 \leq 0:\\
        \;\;\;\;\frac{\tan^{-1} \left(\frac{B \cdot 0.5}{A}\right)}{\pi \cdot 0.005555555555555556}\\
        
        \mathbf{else}:\\
        \;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 + t\_1\right)}{\pi}\\
        
        
        \end{array}
        \end{array}
        
        Derivation
        1. Split input into 3 regimes
        2. if (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64)))))) < -0.5

          1. Initial program 61.9%

            \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
          2. Add Preprocessing
          3. Taylor expanded in B around inf

            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C}{B} - \left(1 + \frac{A}{B}\right)\right)}}{\mathsf{PI}\left(\right)} \]
          4. Step-by-step derivation
            1. +-commutativeN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C}{B} - \color{blue}{\left(\frac{A}{B} + 1\right)}\right)}{\mathsf{PI}\left(\right)} \]
            2. associate--r+N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\left(\frac{C}{B} - \frac{A}{B}\right) - 1\right)}}{\mathsf{PI}\left(\right)} \]
            3. div-subN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\color{blue}{\frac{C - A}{B}} - 1\right)}{\mathsf{PI}\left(\right)} \]
            4. sub-negN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - A}{B} + \left(\mathsf{neg}\left(1\right)\right)\right)}}{\mathsf{PI}\left(\right)} \]
            5. metadata-evalN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - A}{B} + \color{blue}{-1}\right)}{\mathsf{PI}\left(\right)} \]
            6. +-lowering-+.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - A}{B} + -1\right)}}{\mathsf{PI}\left(\right)} \]
            7. /-lowering-/.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\color{blue}{\frac{C - A}{B}} + -1\right)}{\mathsf{PI}\left(\right)} \]
            8. --lowering--.f6479.1

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{\color{blue}{C - A}}{B} + -1\right)}{\pi} \]
          5. Simplified79.1%

            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - A}{B} + -1\right)}}{\pi} \]
          6. Step-by-step derivation
            1. associate-*r/N/A

              \[\leadsto \color{blue}{\frac{180 \cdot \tan^{-1} \left(\frac{C - A}{B} + -1\right)}{\mathsf{PI}\left(\right)}} \]
            2. /-lowering-/.f64N/A

              \[\leadsto \color{blue}{\frac{180 \cdot \tan^{-1} \left(\frac{C - A}{B} + -1\right)}{\mathsf{PI}\left(\right)}} \]
            3. *-lowering-*.f64N/A

              \[\leadsto \frac{\color{blue}{180 \cdot \tan^{-1} \left(\frac{C - A}{B} + -1\right)}}{\mathsf{PI}\left(\right)} \]
            4. atan-lowering-atan.f64N/A

              \[\leadsto \frac{180 \cdot \color{blue}{\tan^{-1} \left(\frac{C - A}{B} + -1\right)}}{\mathsf{PI}\left(\right)} \]
            5. +-lowering-+.f64N/A

              \[\leadsto \frac{180 \cdot \tan^{-1} \color{blue}{\left(\frac{C - A}{B} + -1\right)}}{\mathsf{PI}\left(\right)} \]
            6. /-lowering-/.f64N/A

              \[\leadsto \frac{180 \cdot \tan^{-1} \left(\color{blue}{\frac{C - A}{B}} + -1\right)}{\mathsf{PI}\left(\right)} \]
            7. --lowering--.f64N/A

              \[\leadsto \frac{180 \cdot \tan^{-1} \left(\frac{\color{blue}{C - A}}{B} + -1\right)}{\mathsf{PI}\left(\right)} \]
            8. PI-lowering-PI.f6479.1

              \[\leadsto \frac{180 \cdot \tan^{-1} \left(\frac{C - A}{B} + -1\right)}{\color{blue}{\pi}} \]
          7. Applied egg-rr79.1%

            \[\leadsto \color{blue}{\frac{180 \cdot \tan^{-1} \left(\frac{C - A}{B} + -1\right)}{\pi}} \]

          if -0.5 < (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64)))))) < -0.0

          1. Initial program 21.6%

            \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
          2. Add Preprocessing
          3. Taylor expanded in A around -inf

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \color{blue}{\left(\frac{1}{2} \cdot \frac{{B}^{2}}{A}\right)}\right)}{\mathsf{PI}\left(\right)} \]
          4. Step-by-step derivation
            1. associate-*r/N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \color{blue}{\frac{\frac{1}{2} \cdot {B}^{2}}{A}}\right)}{\mathsf{PI}\left(\right)} \]
            2. /-lowering-/.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \color{blue}{\frac{\frac{1}{2} \cdot {B}^{2}}{A}}\right)}{\mathsf{PI}\left(\right)} \]
            3. *-commutativeN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\color{blue}{{B}^{2} \cdot \frac{1}{2}}}{A}\right)}{\mathsf{PI}\left(\right)} \]
            4. *-lowering-*.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\color{blue}{{B}^{2} \cdot \frac{1}{2}}}{A}\right)}{\mathsf{PI}\left(\right)} \]
            5. unpow2N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\color{blue}{\left(B \cdot B\right)} \cdot \frac{1}{2}}{A}\right)}{\mathsf{PI}\left(\right)} \]
            6. *-lowering-*.f6438.9

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\color{blue}{\left(B \cdot B\right)} \cdot 0.5}{A}\right)}{\pi} \]
          5. Simplified38.9%

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \color{blue}{\frac{\left(B \cdot B\right) \cdot 0.5}{A}}\right)}{\pi} \]
          6. Step-by-step derivation
            1. associate-*r/N/A

              \[\leadsto \color{blue}{\frac{180 \cdot \tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right)}{\mathsf{PI}\left(\right)}} \]
            2. *-un-lft-identityN/A

              \[\leadsto \frac{180 \cdot \tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right)}{\color{blue}{1 \cdot \mathsf{PI}\left(\right)}} \]
            3. *-commutativeN/A

              \[\leadsto \frac{180 \cdot \tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right)}{\color{blue}{\mathsf{PI}\left(\right) \cdot 1}} \]
            4. times-fracN/A

              \[\leadsto \color{blue}{\frac{180}{\mathsf{PI}\left(\right)} \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right)}{1}} \]
            5. *-lowering-*.f64N/A

              \[\leadsto \color{blue}{\frac{180}{\mathsf{PI}\left(\right)} \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right)}{1}} \]
            6. /-lowering-/.f64N/A

              \[\leadsto \color{blue}{\frac{180}{\mathsf{PI}\left(\right)}} \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right)}{1} \]
            7. PI-lowering-PI.f64N/A

              \[\leadsto \frac{180}{\color{blue}{\mathsf{PI}\left(\right)}} \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right)}{1} \]
            8. div-invN/A

              \[\leadsto \frac{180}{\mathsf{PI}\left(\right)} \cdot \color{blue}{\left(\tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right) \cdot \frac{1}{1}\right)} \]
            9. metadata-evalN/A

              \[\leadsto \frac{180}{\mathsf{PI}\left(\right)} \cdot \left(\tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right) \cdot \color{blue}{1}\right) \]
            10. *-lowering-*.f64N/A

              \[\leadsto \frac{180}{\mathsf{PI}\left(\right)} \cdot \color{blue}{\left(\tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right) \cdot 1\right)} \]
          7. Applied egg-rr58.9%

            \[\leadsto \color{blue}{\frac{180}{\pi} \cdot \left(\tan^{-1} \left(\frac{B \cdot 0.5}{A}\right) \cdot 1\right)} \]
          8. Step-by-step derivation
            1. *-commutativeN/A

              \[\leadsto \color{blue}{\left(\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right) \cdot 1\right) \cdot \frac{180}{\mathsf{PI}\left(\right)}} \]
            2. clear-numN/A

              \[\leadsto \left(\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right) \cdot 1\right) \cdot \color{blue}{\frac{1}{\frac{\mathsf{PI}\left(\right)}{180}}} \]
            3. un-div-invN/A

              \[\leadsto \color{blue}{\frac{\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right) \cdot 1}{\frac{\mathsf{PI}\left(\right)}{180}}} \]
            4. /-lowering-/.f64N/A

              \[\leadsto \color{blue}{\frac{\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right) \cdot 1}{\frac{\mathsf{PI}\left(\right)}{180}}} \]
            5. *-rgt-identityN/A

              \[\leadsto \frac{\color{blue}{\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right)}}{\frac{\mathsf{PI}\left(\right)}{180}} \]
            6. atan-lowering-atan.f64N/A

              \[\leadsto \frac{\color{blue}{\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right)}}{\frac{\mathsf{PI}\left(\right)}{180}} \]
            7. /-lowering-/.f64N/A

              \[\leadsto \frac{\tan^{-1} \color{blue}{\left(\frac{B \cdot \frac{1}{2}}{A}\right)}}{\frac{\mathsf{PI}\left(\right)}{180}} \]
            8. *-lowering-*.f64N/A

              \[\leadsto \frac{\tan^{-1} \left(\frac{\color{blue}{B \cdot \frac{1}{2}}}{A}\right)}{\frac{\mathsf{PI}\left(\right)}{180}} \]
            9. div-invN/A

              \[\leadsto \frac{\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right)}{\color{blue}{\mathsf{PI}\left(\right) \cdot \frac{1}{180}}} \]
            10. *-lowering-*.f64N/A

              \[\leadsto \frac{\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right)}{\color{blue}{\mathsf{PI}\left(\right) \cdot \frac{1}{180}}} \]
            11. PI-lowering-PI.f64N/A

              \[\leadsto \frac{\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right)}{\color{blue}{\mathsf{PI}\left(\right)} \cdot \frac{1}{180}} \]
            12. metadata-eval59.0

              \[\leadsto \frac{\tan^{-1} \left(\frac{B \cdot 0.5}{A}\right)}{\pi \cdot \color{blue}{0.005555555555555556}} \]
          9. Applied egg-rr59.0%

            \[\leadsto \color{blue}{\frac{\tan^{-1} \left(\frac{B \cdot 0.5}{A}\right)}{\pi \cdot 0.005555555555555556}} \]

          if -0.0 < (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64))))))

          1. Initial program 59.9%

            \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
          2. Add Preprocessing
          3. Taylor expanded in B around -inf

            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\left(1 + \frac{C}{B}\right) - \frac{A}{B}\right)}}{\mathsf{PI}\left(\right)} \]
          4. Step-by-step derivation
            1. associate--l+N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(1 + \left(\frac{C}{B} - \frac{A}{B}\right)\right)}}{\mathsf{PI}\left(\right)} \]
            2. div-subN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(1 + \color{blue}{\frac{C - A}{B}}\right)}{\mathsf{PI}\left(\right)} \]
            3. +-lowering-+.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(1 + \frac{C - A}{B}\right)}}{\mathsf{PI}\left(\right)} \]
            4. /-lowering-/.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(1 + \color{blue}{\frac{C - A}{B}}\right)}{\mathsf{PI}\left(\right)} \]
            5. --lowering--.f6476.5

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(1 + \frac{\color{blue}{C - A}}{B}\right)}{\pi} \]
          5. Simplified76.5%

            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(1 + \frac{C - A}{B}\right)}}{\pi} \]
        3. Recombined 3 regimes into one program.
        4. Add Preprocessing

        Alternative 4: 72.6% accurate, 0.6× speedup?

        \[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\\ t_1 := \frac{C - A}{B}\\ \mathbf{if}\;t\_0 \leq -0.5:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(t\_1 + -1\right)}{\pi}\\ \mathbf{elif}\;t\_0 \leq 0:\\ \;\;\;\;\frac{\tan^{-1} \left(\frac{B \cdot 0.5}{A}\right)}{\pi \cdot 0.005555555555555556}\\ \mathbf{else}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 + t\_1\right)}{\pi}\\ \end{array} \end{array} \]
        (FPCore (A B C)
         :precision binary64
         (let* ((t_0
                 (* (/ 1.0 B) (- (- C A) (sqrt (+ (pow (- A C) 2.0) (pow B 2.0))))))
                (t_1 (/ (- C A) B)))
           (if (<= t_0 -0.5)
             (* 180.0 (/ (atan (+ t_1 -1.0)) PI))
             (if (<= t_0 0.0)
               (/ (atan (/ (* B 0.5) A)) (* PI 0.005555555555555556))
               (* 180.0 (/ (atan (+ 1.0 t_1)) PI))))))
        double code(double A, double B, double C) {
        	double t_0 = (1.0 / B) * ((C - A) - sqrt((pow((A - C), 2.0) + pow(B, 2.0))));
        	double t_1 = (C - A) / B;
        	double tmp;
        	if (t_0 <= -0.5) {
        		tmp = 180.0 * (atan((t_1 + -1.0)) / ((double) M_PI));
        	} else if (t_0 <= 0.0) {
        		tmp = atan(((B * 0.5) / A)) / (((double) M_PI) * 0.005555555555555556);
        	} else {
        		tmp = 180.0 * (atan((1.0 + t_1)) / ((double) M_PI));
        	}
        	return tmp;
        }
        
        public static double code(double A, double B, double C) {
        	double t_0 = (1.0 / B) * ((C - A) - Math.sqrt((Math.pow((A - C), 2.0) + Math.pow(B, 2.0))));
        	double t_1 = (C - A) / B;
        	double tmp;
        	if (t_0 <= -0.5) {
        		tmp = 180.0 * (Math.atan((t_1 + -1.0)) / Math.PI);
        	} else if (t_0 <= 0.0) {
        		tmp = Math.atan(((B * 0.5) / A)) / (Math.PI * 0.005555555555555556);
        	} else {
        		tmp = 180.0 * (Math.atan((1.0 + t_1)) / Math.PI);
        	}
        	return tmp;
        }
        
        def code(A, B, C):
        	t_0 = (1.0 / B) * ((C - A) - math.sqrt((math.pow((A - C), 2.0) + math.pow(B, 2.0))))
        	t_1 = (C - A) / B
        	tmp = 0
        	if t_0 <= -0.5:
        		tmp = 180.0 * (math.atan((t_1 + -1.0)) / math.pi)
        	elif t_0 <= 0.0:
        		tmp = math.atan(((B * 0.5) / A)) / (math.pi * 0.005555555555555556)
        	else:
        		tmp = 180.0 * (math.atan((1.0 + t_1)) / math.pi)
        	return tmp
        
        function code(A, B, C)
        	t_0 = Float64(Float64(1.0 / B) * Float64(Float64(C - A) - sqrt(Float64((Float64(A - C) ^ 2.0) + (B ^ 2.0)))))
        	t_1 = Float64(Float64(C - A) / B)
        	tmp = 0.0
        	if (t_0 <= -0.5)
        		tmp = Float64(180.0 * Float64(atan(Float64(t_1 + -1.0)) / pi));
        	elseif (t_0 <= 0.0)
        		tmp = Float64(atan(Float64(Float64(B * 0.5) / A)) / Float64(pi * 0.005555555555555556));
        	else
        		tmp = Float64(180.0 * Float64(atan(Float64(1.0 + t_1)) / pi));
        	end
        	return tmp
        end
        
        function tmp_2 = code(A, B, C)
        	t_0 = (1.0 / B) * ((C - A) - sqrt((((A - C) ^ 2.0) + (B ^ 2.0))));
        	t_1 = (C - A) / B;
        	tmp = 0.0;
        	if (t_0 <= -0.5)
        		tmp = 180.0 * (atan((t_1 + -1.0)) / pi);
        	elseif (t_0 <= 0.0)
        		tmp = atan(((B * 0.5) / A)) / (pi * 0.005555555555555556);
        	else
        		tmp = 180.0 * (atan((1.0 + t_1)) / pi);
        	end
        	tmp_2 = tmp;
        end
        
        code[A_, B_, C_] := Block[{t$95$0 = N[(N[(1.0 / B), $MachinePrecision] * N[(N[(C - A), $MachinePrecision] - N[Sqrt[N[(N[Power[N[(A - C), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[B, 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(C - A), $MachinePrecision] / B), $MachinePrecision]}, If[LessEqual[t$95$0, -0.5], N[(180.0 * N[(N[ArcTan[N[(t$95$1 + -1.0), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$0, 0.0], N[(N[ArcTan[N[(N[(B * 0.5), $MachinePrecision] / A), $MachinePrecision]], $MachinePrecision] / N[(Pi * 0.005555555555555556), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(1.0 + t$95$1), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]]
        
        \begin{array}{l}
        
        \\
        \begin{array}{l}
        t_0 := \frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\\
        t_1 := \frac{C - A}{B}\\
        \mathbf{if}\;t\_0 \leq -0.5:\\
        \;\;\;\;180 \cdot \frac{\tan^{-1} \left(t\_1 + -1\right)}{\pi}\\
        
        \mathbf{elif}\;t\_0 \leq 0:\\
        \;\;\;\;\frac{\tan^{-1} \left(\frac{B \cdot 0.5}{A}\right)}{\pi \cdot 0.005555555555555556}\\
        
        \mathbf{else}:\\
        \;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 + t\_1\right)}{\pi}\\
        
        
        \end{array}
        \end{array}
        
        Derivation
        1. Split input into 3 regimes
        2. if (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64)))))) < -0.5

          1. Initial program 61.9%

            \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
          2. Add Preprocessing
          3. Taylor expanded in B around inf

            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C}{B} - \left(1 + \frac{A}{B}\right)\right)}}{\mathsf{PI}\left(\right)} \]
          4. Step-by-step derivation
            1. +-commutativeN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C}{B} - \color{blue}{\left(\frac{A}{B} + 1\right)}\right)}{\mathsf{PI}\left(\right)} \]
            2. associate--r+N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\left(\frac{C}{B} - \frac{A}{B}\right) - 1\right)}}{\mathsf{PI}\left(\right)} \]
            3. div-subN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\color{blue}{\frac{C - A}{B}} - 1\right)}{\mathsf{PI}\left(\right)} \]
            4. sub-negN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - A}{B} + \left(\mathsf{neg}\left(1\right)\right)\right)}}{\mathsf{PI}\left(\right)} \]
            5. metadata-evalN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - A}{B} + \color{blue}{-1}\right)}{\mathsf{PI}\left(\right)} \]
            6. +-lowering-+.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - A}{B} + -1\right)}}{\mathsf{PI}\left(\right)} \]
            7. /-lowering-/.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\color{blue}{\frac{C - A}{B}} + -1\right)}{\mathsf{PI}\left(\right)} \]
            8. --lowering--.f6479.1

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{\color{blue}{C - A}}{B} + -1\right)}{\pi} \]
          5. Simplified79.1%

            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - A}{B} + -1\right)}}{\pi} \]

          if -0.5 < (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64)))))) < -0.0

          1. Initial program 21.6%

            \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
          2. Add Preprocessing
          3. Taylor expanded in A around -inf

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \color{blue}{\left(\frac{1}{2} \cdot \frac{{B}^{2}}{A}\right)}\right)}{\mathsf{PI}\left(\right)} \]
          4. Step-by-step derivation
            1. associate-*r/N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \color{blue}{\frac{\frac{1}{2} \cdot {B}^{2}}{A}}\right)}{\mathsf{PI}\left(\right)} \]
            2. /-lowering-/.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \color{blue}{\frac{\frac{1}{2} \cdot {B}^{2}}{A}}\right)}{\mathsf{PI}\left(\right)} \]
            3. *-commutativeN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\color{blue}{{B}^{2} \cdot \frac{1}{2}}}{A}\right)}{\mathsf{PI}\left(\right)} \]
            4. *-lowering-*.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\color{blue}{{B}^{2} \cdot \frac{1}{2}}}{A}\right)}{\mathsf{PI}\left(\right)} \]
            5. unpow2N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\color{blue}{\left(B \cdot B\right)} \cdot \frac{1}{2}}{A}\right)}{\mathsf{PI}\left(\right)} \]
            6. *-lowering-*.f6438.9

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\color{blue}{\left(B \cdot B\right)} \cdot 0.5}{A}\right)}{\pi} \]
          5. Simplified38.9%

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \color{blue}{\frac{\left(B \cdot B\right) \cdot 0.5}{A}}\right)}{\pi} \]
          6. Step-by-step derivation
            1. associate-*r/N/A

              \[\leadsto \color{blue}{\frac{180 \cdot \tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right)}{\mathsf{PI}\left(\right)}} \]
            2. *-un-lft-identityN/A

              \[\leadsto \frac{180 \cdot \tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right)}{\color{blue}{1 \cdot \mathsf{PI}\left(\right)}} \]
            3. *-commutativeN/A

              \[\leadsto \frac{180 \cdot \tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right)}{\color{blue}{\mathsf{PI}\left(\right) \cdot 1}} \]
            4. times-fracN/A

              \[\leadsto \color{blue}{\frac{180}{\mathsf{PI}\left(\right)} \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right)}{1}} \]
            5. *-lowering-*.f64N/A

              \[\leadsto \color{blue}{\frac{180}{\mathsf{PI}\left(\right)} \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right)}{1}} \]
            6. /-lowering-/.f64N/A

              \[\leadsto \color{blue}{\frac{180}{\mathsf{PI}\left(\right)}} \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right)}{1} \]
            7. PI-lowering-PI.f64N/A

              \[\leadsto \frac{180}{\color{blue}{\mathsf{PI}\left(\right)}} \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right)}{1} \]
            8. div-invN/A

              \[\leadsto \frac{180}{\mathsf{PI}\left(\right)} \cdot \color{blue}{\left(\tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right) \cdot \frac{1}{1}\right)} \]
            9. metadata-evalN/A

              \[\leadsto \frac{180}{\mathsf{PI}\left(\right)} \cdot \left(\tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right) \cdot \color{blue}{1}\right) \]
            10. *-lowering-*.f64N/A

              \[\leadsto \frac{180}{\mathsf{PI}\left(\right)} \cdot \color{blue}{\left(\tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right) \cdot 1\right)} \]
          7. Applied egg-rr58.9%

            \[\leadsto \color{blue}{\frac{180}{\pi} \cdot \left(\tan^{-1} \left(\frac{B \cdot 0.5}{A}\right) \cdot 1\right)} \]
          8. Step-by-step derivation
            1. *-commutativeN/A

              \[\leadsto \color{blue}{\left(\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right) \cdot 1\right) \cdot \frac{180}{\mathsf{PI}\left(\right)}} \]
            2. clear-numN/A

              \[\leadsto \left(\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right) \cdot 1\right) \cdot \color{blue}{\frac{1}{\frac{\mathsf{PI}\left(\right)}{180}}} \]
            3. un-div-invN/A

              \[\leadsto \color{blue}{\frac{\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right) \cdot 1}{\frac{\mathsf{PI}\left(\right)}{180}}} \]
            4. /-lowering-/.f64N/A

              \[\leadsto \color{blue}{\frac{\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right) \cdot 1}{\frac{\mathsf{PI}\left(\right)}{180}}} \]
            5. *-rgt-identityN/A

              \[\leadsto \frac{\color{blue}{\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right)}}{\frac{\mathsf{PI}\left(\right)}{180}} \]
            6. atan-lowering-atan.f64N/A

              \[\leadsto \frac{\color{blue}{\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right)}}{\frac{\mathsf{PI}\left(\right)}{180}} \]
            7. /-lowering-/.f64N/A

              \[\leadsto \frac{\tan^{-1} \color{blue}{\left(\frac{B \cdot \frac{1}{2}}{A}\right)}}{\frac{\mathsf{PI}\left(\right)}{180}} \]
            8. *-lowering-*.f64N/A

              \[\leadsto \frac{\tan^{-1} \left(\frac{\color{blue}{B \cdot \frac{1}{2}}}{A}\right)}{\frac{\mathsf{PI}\left(\right)}{180}} \]
            9. div-invN/A

              \[\leadsto \frac{\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right)}{\color{blue}{\mathsf{PI}\left(\right) \cdot \frac{1}{180}}} \]
            10. *-lowering-*.f64N/A

              \[\leadsto \frac{\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right)}{\color{blue}{\mathsf{PI}\left(\right) \cdot \frac{1}{180}}} \]
            11. PI-lowering-PI.f64N/A

              \[\leadsto \frac{\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right)}{\color{blue}{\mathsf{PI}\left(\right)} \cdot \frac{1}{180}} \]
            12. metadata-eval59.0

              \[\leadsto \frac{\tan^{-1} \left(\frac{B \cdot 0.5}{A}\right)}{\pi \cdot \color{blue}{0.005555555555555556}} \]
          9. Applied egg-rr59.0%

            \[\leadsto \color{blue}{\frac{\tan^{-1} \left(\frac{B \cdot 0.5}{A}\right)}{\pi \cdot 0.005555555555555556}} \]

          if -0.0 < (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64))))))

          1. Initial program 59.9%

            \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
          2. Add Preprocessing
          3. Taylor expanded in B around -inf

            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\left(1 + \frac{C}{B}\right) - \frac{A}{B}\right)}}{\mathsf{PI}\left(\right)} \]
          4. Step-by-step derivation
            1. associate--l+N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(1 + \left(\frac{C}{B} - \frac{A}{B}\right)\right)}}{\mathsf{PI}\left(\right)} \]
            2. div-subN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(1 + \color{blue}{\frac{C - A}{B}}\right)}{\mathsf{PI}\left(\right)} \]
            3. +-lowering-+.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(1 + \frac{C - A}{B}\right)}}{\mathsf{PI}\left(\right)} \]
            4. /-lowering-/.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(1 + \color{blue}{\frac{C - A}{B}}\right)}{\mathsf{PI}\left(\right)} \]
            5. --lowering--.f6476.5

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(1 + \frac{\color{blue}{C - A}}{B}\right)}{\pi} \]
          5. Simplified76.5%

            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(1 + \frac{C - A}{B}\right)}}{\pi} \]
        3. Recombined 3 regimes into one program.
        4. Add Preprocessing

        Alternative 5: 67.3% accurate, 0.6× speedup?

        \[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\\ \mathbf{if}\;t\_0 \leq -0.5:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(-1 - \frac{A}{B}\right)}{\pi}\\ \mathbf{elif}\;t\_0 \leq 0:\\ \;\;\;\;\frac{\tan^{-1} \left(\frac{B \cdot 0.5}{A}\right)}{\pi \cdot 0.005555555555555556}\\ \mathbf{else}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 + \frac{C - A}{B}\right)}{\pi}\\ \end{array} \end{array} \]
        (FPCore (A B C)
         :precision binary64
         (let* ((t_0
                 (* (/ 1.0 B) (- (- C A) (sqrt (+ (pow (- A C) 2.0) (pow B 2.0)))))))
           (if (<= t_0 -0.5)
             (* 180.0 (/ (atan (- -1.0 (/ A B))) PI))
             (if (<= t_0 0.0)
               (/ (atan (/ (* B 0.5) A)) (* PI 0.005555555555555556))
               (* 180.0 (/ (atan (+ 1.0 (/ (- C A) B))) PI))))))
        double code(double A, double B, double C) {
        	double t_0 = (1.0 / B) * ((C - A) - sqrt((pow((A - C), 2.0) + pow(B, 2.0))));
        	double tmp;
        	if (t_0 <= -0.5) {
        		tmp = 180.0 * (atan((-1.0 - (A / B))) / ((double) M_PI));
        	} else if (t_0 <= 0.0) {
        		tmp = atan(((B * 0.5) / A)) / (((double) M_PI) * 0.005555555555555556);
        	} else {
        		tmp = 180.0 * (atan((1.0 + ((C - A) / B))) / ((double) M_PI));
        	}
        	return tmp;
        }
        
        public static double code(double A, double B, double C) {
        	double t_0 = (1.0 / B) * ((C - A) - Math.sqrt((Math.pow((A - C), 2.0) + Math.pow(B, 2.0))));
        	double tmp;
        	if (t_0 <= -0.5) {
        		tmp = 180.0 * (Math.atan((-1.0 - (A / B))) / Math.PI);
        	} else if (t_0 <= 0.0) {
        		tmp = Math.atan(((B * 0.5) / A)) / (Math.PI * 0.005555555555555556);
        	} else {
        		tmp = 180.0 * (Math.atan((1.0 + ((C - A) / B))) / Math.PI);
        	}
        	return tmp;
        }
        
        def code(A, B, C):
        	t_0 = (1.0 / B) * ((C - A) - math.sqrt((math.pow((A - C), 2.0) + math.pow(B, 2.0))))
        	tmp = 0
        	if t_0 <= -0.5:
        		tmp = 180.0 * (math.atan((-1.0 - (A / B))) / math.pi)
        	elif t_0 <= 0.0:
        		tmp = math.atan(((B * 0.5) / A)) / (math.pi * 0.005555555555555556)
        	else:
        		tmp = 180.0 * (math.atan((1.0 + ((C - A) / B))) / math.pi)
        	return tmp
        
        function code(A, B, C)
        	t_0 = Float64(Float64(1.0 / B) * Float64(Float64(C - A) - sqrt(Float64((Float64(A - C) ^ 2.0) + (B ^ 2.0)))))
        	tmp = 0.0
        	if (t_0 <= -0.5)
        		tmp = Float64(180.0 * Float64(atan(Float64(-1.0 - Float64(A / B))) / pi));
        	elseif (t_0 <= 0.0)
        		tmp = Float64(atan(Float64(Float64(B * 0.5) / A)) / Float64(pi * 0.005555555555555556));
        	else
        		tmp = Float64(180.0 * Float64(atan(Float64(1.0 + Float64(Float64(C - A) / B))) / pi));
        	end
        	return tmp
        end
        
        function tmp_2 = code(A, B, C)
        	t_0 = (1.0 / B) * ((C - A) - sqrt((((A - C) ^ 2.0) + (B ^ 2.0))));
        	tmp = 0.0;
        	if (t_0 <= -0.5)
        		tmp = 180.0 * (atan((-1.0 - (A / B))) / pi);
        	elseif (t_0 <= 0.0)
        		tmp = atan(((B * 0.5) / A)) / (pi * 0.005555555555555556);
        	else
        		tmp = 180.0 * (atan((1.0 + ((C - A) / B))) / pi);
        	end
        	tmp_2 = tmp;
        end
        
        code[A_, B_, C_] := Block[{t$95$0 = N[(N[(1.0 / B), $MachinePrecision] * N[(N[(C - A), $MachinePrecision] - N[Sqrt[N[(N[Power[N[(A - C), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[B, 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$0, -0.5], N[(180.0 * N[(N[ArcTan[N[(-1.0 - N[(A / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$0, 0.0], N[(N[ArcTan[N[(N[(B * 0.5), $MachinePrecision] / A), $MachinePrecision]], $MachinePrecision] / N[(Pi * 0.005555555555555556), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(1.0 + N[(N[(C - A), $MachinePrecision] / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]
        
        \begin{array}{l}
        
        \\
        \begin{array}{l}
        t_0 := \frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\\
        \mathbf{if}\;t\_0 \leq -0.5:\\
        \;\;\;\;180 \cdot \frac{\tan^{-1} \left(-1 - \frac{A}{B}\right)}{\pi}\\
        
        \mathbf{elif}\;t\_0 \leq 0:\\
        \;\;\;\;\frac{\tan^{-1} \left(\frac{B \cdot 0.5}{A}\right)}{\pi \cdot 0.005555555555555556}\\
        
        \mathbf{else}:\\
        \;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 + \frac{C - A}{B}\right)}{\pi}\\
        
        
        \end{array}
        \end{array}
        
        Derivation
        1. Split input into 3 regimes
        2. if (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64)))))) < -0.5

          1. Initial program 61.9%

            \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
          2. Add Preprocessing
          3. Taylor expanded in B around inf

            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C}{B} - \left(1 + \frac{A}{B}\right)\right)}}{\mathsf{PI}\left(\right)} \]
          4. Step-by-step derivation
            1. +-commutativeN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C}{B} - \color{blue}{\left(\frac{A}{B} + 1\right)}\right)}{\mathsf{PI}\left(\right)} \]
            2. associate--r+N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\left(\frac{C}{B} - \frac{A}{B}\right) - 1\right)}}{\mathsf{PI}\left(\right)} \]
            3. div-subN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\color{blue}{\frac{C - A}{B}} - 1\right)}{\mathsf{PI}\left(\right)} \]
            4. sub-negN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - A}{B} + \left(\mathsf{neg}\left(1\right)\right)\right)}}{\mathsf{PI}\left(\right)} \]
            5. metadata-evalN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - A}{B} + \color{blue}{-1}\right)}{\mathsf{PI}\left(\right)} \]
            6. +-lowering-+.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - A}{B} + -1\right)}}{\mathsf{PI}\left(\right)} \]
            7. /-lowering-/.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\color{blue}{\frac{C - A}{B}} + -1\right)}{\mathsf{PI}\left(\right)} \]
            8. --lowering--.f6479.1

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{\color{blue}{C - A}}{B} + -1\right)}{\pi} \]
          5. Simplified79.1%

            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - A}{B} + -1\right)}}{\pi} \]
          6. Taylor expanded in C around 0

            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 \cdot \left(1 + \frac{A}{B}\right)\right)}}{\mathsf{PI}\left(\right)} \]
          7. Step-by-step derivation
            1. distribute-lft-inN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 \cdot 1 + -1 \cdot \frac{A}{B}\right)}}{\mathsf{PI}\left(\right)} \]
            2. metadata-evalN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\color{blue}{-1} + -1 \cdot \frac{A}{B}\right)}{\mathsf{PI}\left(\right)} \]
            3. mul-1-negN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-1 + \color{blue}{\left(\mathsf{neg}\left(\frac{A}{B}\right)\right)}\right)}{\mathsf{PI}\left(\right)} \]
            4. unsub-negN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 - \frac{A}{B}\right)}}{\mathsf{PI}\left(\right)} \]
            5. --lowering--.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 - \frac{A}{B}\right)}}{\mathsf{PI}\left(\right)} \]
            6. /-lowering-/.f6467.0

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-1 - \color{blue}{\frac{A}{B}}\right)}{\pi} \]
          8. Simplified67.0%

            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 - \frac{A}{B}\right)}}{\pi} \]

          if -0.5 < (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64)))))) < -0.0

          1. Initial program 21.6%

            \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
          2. Add Preprocessing
          3. Taylor expanded in A around -inf

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \color{blue}{\left(\frac{1}{2} \cdot \frac{{B}^{2}}{A}\right)}\right)}{\mathsf{PI}\left(\right)} \]
          4. Step-by-step derivation
            1. associate-*r/N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \color{blue}{\frac{\frac{1}{2} \cdot {B}^{2}}{A}}\right)}{\mathsf{PI}\left(\right)} \]
            2. /-lowering-/.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \color{blue}{\frac{\frac{1}{2} \cdot {B}^{2}}{A}}\right)}{\mathsf{PI}\left(\right)} \]
            3. *-commutativeN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\color{blue}{{B}^{2} \cdot \frac{1}{2}}}{A}\right)}{\mathsf{PI}\left(\right)} \]
            4. *-lowering-*.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\color{blue}{{B}^{2} \cdot \frac{1}{2}}}{A}\right)}{\mathsf{PI}\left(\right)} \]
            5. unpow2N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\color{blue}{\left(B \cdot B\right)} \cdot \frac{1}{2}}{A}\right)}{\mathsf{PI}\left(\right)} \]
            6. *-lowering-*.f6438.9

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\color{blue}{\left(B \cdot B\right)} \cdot 0.5}{A}\right)}{\pi} \]
          5. Simplified38.9%

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \color{blue}{\frac{\left(B \cdot B\right) \cdot 0.5}{A}}\right)}{\pi} \]
          6. Step-by-step derivation
            1. associate-*r/N/A

              \[\leadsto \color{blue}{\frac{180 \cdot \tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right)}{\mathsf{PI}\left(\right)}} \]
            2. *-un-lft-identityN/A

              \[\leadsto \frac{180 \cdot \tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right)}{\color{blue}{1 \cdot \mathsf{PI}\left(\right)}} \]
            3. *-commutativeN/A

              \[\leadsto \frac{180 \cdot \tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right)}{\color{blue}{\mathsf{PI}\left(\right) \cdot 1}} \]
            4. times-fracN/A

              \[\leadsto \color{blue}{\frac{180}{\mathsf{PI}\left(\right)} \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right)}{1}} \]
            5. *-lowering-*.f64N/A

              \[\leadsto \color{blue}{\frac{180}{\mathsf{PI}\left(\right)} \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right)}{1}} \]
            6. /-lowering-/.f64N/A

              \[\leadsto \color{blue}{\frac{180}{\mathsf{PI}\left(\right)}} \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right)}{1} \]
            7. PI-lowering-PI.f64N/A

              \[\leadsto \frac{180}{\color{blue}{\mathsf{PI}\left(\right)}} \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right)}{1} \]
            8. div-invN/A

              \[\leadsto \frac{180}{\mathsf{PI}\left(\right)} \cdot \color{blue}{\left(\tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right) \cdot \frac{1}{1}\right)} \]
            9. metadata-evalN/A

              \[\leadsto \frac{180}{\mathsf{PI}\left(\right)} \cdot \left(\tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right) \cdot \color{blue}{1}\right) \]
            10. *-lowering-*.f64N/A

              \[\leadsto \frac{180}{\mathsf{PI}\left(\right)} \cdot \color{blue}{\left(\tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right) \cdot 1\right)} \]
          7. Applied egg-rr58.9%

            \[\leadsto \color{blue}{\frac{180}{\pi} \cdot \left(\tan^{-1} \left(\frac{B \cdot 0.5}{A}\right) \cdot 1\right)} \]
          8. Step-by-step derivation
            1. *-commutativeN/A

              \[\leadsto \color{blue}{\left(\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right) \cdot 1\right) \cdot \frac{180}{\mathsf{PI}\left(\right)}} \]
            2. clear-numN/A

              \[\leadsto \left(\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right) \cdot 1\right) \cdot \color{blue}{\frac{1}{\frac{\mathsf{PI}\left(\right)}{180}}} \]
            3. un-div-invN/A

              \[\leadsto \color{blue}{\frac{\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right) \cdot 1}{\frac{\mathsf{PI}\left(\right)}{180}}} \]
            4. /-lowering-/.f64N/A

              \[\leadsto \color{blue}{\frac{\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right) \cdot 1}{\frac{\mathsf{PI}\left(\right)}{180}}} \]
            5. *-rgt-identityN/A

              \[\leadsto \frac{\color{blue}{\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right)}}{\frac{\mathsf{PI}\left(\right)}{180}} \]
            6. atan-lowering-atan.f64N/A

              \[\leadsto \frac{\color{blue}{\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right)}}{\frac{\mathsf{PI}\left(\right)}{180}} \]
            7. /-lowering-/.f64N/A

              \[\leadsto \frac{\tan^{-1} \color{blue}{\left(\frac{B \cdot \frac{1}{2}}{A}\right)}}{\frac{\mathsf{PI}\left(\right)}{180}} \]
            8. *-lowering-*.f64N/A

              \[\leadsto \frac{\tan^{-1} \left(\frac{\color{blue}{B \cdot \frac{1}{2}}}{A}\right)}{\frac{\mathsf{PI}\left(\right)}{180}} \]
            9. div-invN/A

              \[\leadsto \frac{\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right)}{\color{blue}{\mathsf{PI}\left(\right) \cdot \frac{1}{180}}} \]
            10. *-lowering-*.f64N/A

              \[\leadsto \frac{\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right)}{\color{blue}{\mathsf{PI}\left(\right) \cdot \frac{1}{180}}} \]
            11. PI-lowering-PI.f64N/A

              \[\leadsto \frac{\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right)}{\color{blue}{\mathsf{PI}\left(\right)} \cdot \frac{1}{180}} \]
            12. metadata-eval59.0

              \[\leadsto \frac{\tan^{-1} \left(\frac{B \cdot 0.5}{A}\right)}{\pi \cdot \color{blue}{0.005555555555555556}} \]
          9. Applied egg-rr59.0%

            \[\leadsto \color{blue}{\frac{\tan^{-1} \left(\frac{B \cdot 0.5}{A}\right)}{\pi \cdot 0.005555555555555556}} \]

          if -0.0 < (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64))))))

          1. Initial program 59.9%

            \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
          2. Add Preprocessing
          3. Taylor expanded in B around -inf

            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\left(1 + \frac{C}{B}\right) - \frac{A}{B}\right)}}{\mathsf{PI}\left(\right)} \]
          4. Step-by-step derivation
            1. associate--l+N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(1 + \left(\frac{C}{B} - \frac{A}{B}\right)\right)}}{\mathsf{PI}\left(\right)} \]
            2. div-subN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(1 + \color{blue}{\frac{C - A}{B}}\right)}{\mathsf{PI}\left(\right)} \]
            3. +-lowering-+.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(1 + \frac{C - A}{B}\right)}}{\mathsf{PI}\left(\right)} \]
            4. /-lowering-/.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(1 + \color{blue}{\frac{C - A}{B}}\right)}{\mathsf{PI}\left(\right)} \]
            5. --lowering--.f6476.5

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(1 + \frac{\color{blue}{C - A}}{B}\right)}{\pi} \]
          5. Simplified76.5%

            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(1 + \frac{C - A}{B}\right)}}{\pi} \]
        3. Recombined 3 regimes into one program.
        4. Add Preprocessing

        Alternative 6: 59.0% accurate, 2.4× speedup?

        \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;A \leq -2.3 \cdot 10^{-101}:\\ \;\;\;\;\frac{\tan^{-1} \left(\frac{B \cdot 0.5}{A}\right)}{\pi \cdot 0.005555555555555556}\\ \mathbf{elif}\;A \leq -8.5 \cdot 10^{-279}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{C - B}{B}\right)}{\pi}\\ \mathbf{elif}\;A \leq 10000:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 + \frac{C}{B}\right)}{\pi}\\ \mathbf{else}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(-1 - \frac{A}{B}\right)}{\pi}\\ \end{array} \end{array} \]
        (FPCore (A B C)
         :precision binary64
         (if (<= A -2.3e-101)
           (/ (atan (/ (* B 0.5) A)) (* PI 0.005555555555555556))
           (if (<= A -8.5e-279)
             (* 180.0 (/ (atan (/ (- C B) B)) PI))
             (if (<= A 10000.0)
               (* 180.0 (/ (atan (+ 1.0 (/ C B))) PI))
               (* 180.0 (/ (atan (- -1.0 (/ A B))) PI))))))
        double code(double A, double B, double C) {
        	double tmp;
        	if (A <= -2.3e-101) {
        		tmp = atan(((B * 0.5) / A)) / (((double) M_PI) * 0.005555555555555556);
        	} else if (A <= -8.5e-279) {
        		tmp = 180.0 * (atan(((C - B) / B)) / ((double) M_PI));
        	} else if (A <= 10000.0) {
        		tmp = 180.0 * (atan((1.0 + (C / B))) / ((double) M_PI));
        	} else {
        		tmp = 180.0 * (atan((-1.0 - (A / B))) / ((double) M_PI));
        	}
        	return tmp;
        }
        
        public static double code(double A, double B, double C) {
        	double tmp;
        	if (A <= -2.3e-101) {
        		tmp = Math.atan(((B * 0.5) / A)) / (Math.PI * 0.005555555555555556);
        	} else if (A <= -8.5e-279) {
        		tmp = 180.0 * (Math.atan(((C - B) / B)) / Math.PI);
        	} else if (A <= 10000.0) {
        		tmp = 180.0 * (Math.atan((1.0 + (C / B))) / Math.PI);
        	} else {
        		tmp = 180.0 * (Math.atan((-1.0 - (A / B))) / Math.PI);
        	}
        	return tmp;
        }
        
        def code(A, B, C):
        	tmp = 0
        	if A <= -2.3e-101:
        		tmp = math.atan(((B * 0.5) / A)) / (math.pi * 0.005555555555555556)
        	elif A <= -8.5e-279:
        		tmp = 180.0 * (math.atan(((C - B) / B)) / math.pi)
        	elif A <= 10000.0:
        		tmp = 180.0 * (math.atan((1.0 + (C / B))) / math.pi)
        	else:
        		tmp = 180.0 * (math.atan((-1.0 - (A / B))) / math.pi)
        	return tmp
        
        function code(A, B, C)
        	tmp = 0.0
        	if (A <= -2.3e-101)
        		tmp = Float64(atan(Float64(Float64(B * 0.5) / A)) / Float64(pi * 0.005555555555555556));
        	elseif (A <= -8.5e-279)
        		tmp = Float64(180.0 * Float64(atan(Float64(Float64(C - B) / B)) / pi));
        	elseif (A <= 10000.0)
        		tmp = Float64(180.0 * Float64(atan(Float64(1.0 + Float64(C / B))) / pi));
        	else
        		tmp = Float64(180.0 * Float64(atan(Float64(-1.0 - Float64(A / B))) / pi));
        	end
        	return tmp
        end
        
        function tmp_2 = code(A, B, C)
        	tmp = 0.0;
        	if (A <= -2.3e-101)
        		tmp = atan(((B * 0.5) / A)) / (pi * 0.005555555555555556);
        	elseif (A <= -8.5e-279)
        		tmp = 180.0 * (atan(((C - B) / B)) / pi);
        	elseif (A <= 10000.0)
        		tmp = 180.0 * (atan((1.0 + (C / B))) / pi);
        	else
        		tmp = 180.0 * (atan((-1.0 - (A / B))) / pi);
        	end
        	tmp_2 = tmp;
        end
        
        code[A_, B_, C_] := If[LessEqual[A, -2.3e-101], N[(N[ArcTan[N[(N[(B * 0.5), $MachinePrecision] / A), $MachinePrecision]], $MachinePrecision] / N[(Pi * 0.005555555555555556), $MachinePrecision]), $MachinePrecision], If[LessEqual[A, -8.5e-279], N[(180.0 * N[(N[ArcTan[N[(N[(C - B), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[A, 10000.0], N[(180.0 * N[(N[ArcTan[N[(1.0 + N[(C / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(-1.0 - N[(A / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]
        
        \begin{array}{l}
        
        \\
        \begin{array}{l}
        \mathbf{if}\;A \leq -2.3 \cdot 10^{-101}:\\
        \;\;\;\;\frac{\tan^{-1} \left(\frac{B \cdot 0.5}{A}\right)}{\pi \cdot 0.005555555555555556}\\
        
        \mathbf{elif}\;A \leq -8.5 \cdot 10^{-279}:\\
        \;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{C - B}{B}\right)}{\pi}\\
        
        \mathbf{elif}\;A \leq 10000:\\
        \;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 + \frac{C}{B}\right)}{\pi}\\
        
        \mathbf{else}:\\
        \;\;\;\;180 \cdot \frac{\tan^{-1} \left(-1 - \frac{A}{B}\right)}{\pi}\\
        
        
        \end{array}
        \end{array}
        
        Derivation
        1. Split input into 4 regimes
        2. if A < -2.2999999999999999e-101

          1. Initial program 26.4%

            \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
          2. Add Preprocessing
          3. Taylor expanded in A around -inf

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \color{blue}{\left(\frac{1}{2} \cdot \frac{{B}^{2}}{A}\right)}\right)}{\mathsf{PI}\left(\right)} \]
          4. Step-by-step derivation
            1. associate-*r/N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \color{blue}{\frac{\frac{1}{2} \cdot {B}^{2}}{A}}\right)}{\mathsf{PI}\left(\right)} \]
            2. /-lowering-/.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \color{blue}{\frac{\frac{1}{2} \cdot {B}^{2}}{A}}\right)}{\mathsf{PI}\left(\right)} \]
            3. *-commutativeN/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\color{blue}{{B}^{2} \cdot \frac{1}{2}}}{A}\right)}{\mathsf{PI}\left(\right)} \]
            4. *-lowering-*.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\color{blue}{{B}^{2} \cdot \frac{1}{2}}}{A}\right)}{\mathsf{PI}\left(\right)} \]
            5. unpow2N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\color{blue}{\left(B \cdot B\right)} \cdot \frac{1}{2}}{A}\right)}{\mathsf{PI}\left(\right)} \]
            6. *-lowering-*.f6450.8

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\color{blue}{\left(B \cdot B\right)} \cdot 0.5}{A}\right)}{\pi} \]
          5. Simplified50.8%

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \color{blue}{\frac{\left(B \cdot B\right) \cdot 0.5}{A}}\right)}{\pi} \]
          6. Step-by-step derivation
            1. associate-*r/N/A

              \[\leadsto \color{blue}{\frac{180 \cdot \tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right)}{\mathsf{PI}\left(\right)}} \]
            2. *-un-lft-identityN/A

              \[\leadsto \frac{180 \cdot \tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right)}{\color{blue}{1 \cdot \mathsf{PI}\left(\right)}} \]
            3. *-commutativeN/A

              \[\leadsto \frac{180 \cdot \tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right)}{\color{blue}{\mathsf{PI}\left(\right) \cdot 1}} \]
            4. times-fracN/A

              \[\leadsto \color{blue}{\frac{180}{\mathsf{PI}\left(\right)} \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right)}{1}} \]
            5. *-lowering-*.f64N/A

              \[\leadsto \color{blue}{\frac{180}{\mathsf{PI}\left(\right)} \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right)}{1}} \]
            6. /-lowering-/.f64N/A

              \[\leadsto \color{blue}{\frac{180}{\mathsf{PI}\left(\right)}} \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right)}{1} \]
            7. PI-lowering-PI.f64N/A

              \[\leadsto \frac{180}{\color{blue}{\mathsf{PI}\left(\right)}} \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right)}{1} \]
            8. div-invN/A

              \[\leadsto \frac{180}{\mathsf{PI}\left(\right)} \cdot \color{blue}{\left(\tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right) \cdot \frac{1}{1}\right)} \]
            9. metadata-evalN/A

              \[\leadsto \frac{180}{\mathsf{PI}\left(\right)} \cdot \left(\tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right) \cdot \color{blue}{1}\right) \]
            10. *-lowering-*.f64N/A

              \[\leadsto \frac{180}{\mathsf{PI}\left(\right)} \cdot \color{blue}{\left(\tan^{-1} \left(\frac{1}{B} \cdot \frac{\left(B \cdot B\right) \cdot \frac{1}{2}}{A}\right) \cdot 1\right)} \]
          7. Applied egg-rr64.3%

            \[\leadsto \color{blue}{\frac{180}{\pi} \cdot \left(\tan^{-1} \left(\frac{B \cdot 0.5}{A}\right) \cdot 1\right)} \]
          8. Step-by-step derivation
            1. *-commutativeN/A

              \[\leadsto \color{blue}{\left(\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right) \cdot 1\right) \cdot \frac{180}{\mathsf{PI}\left(\right)}} \]
            2. clear-numN/A

              \[\leadsto \left(\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right) \cdot 1\right) \cdot \color{blue}{\frac{1}{\frac{\mathsf{PI}\left(\right)}{180}}} \]
            3. un-div-invN/A

              \[\leadsto \color{blue}{\frac{\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right) \cdot 1}{\frac{\mathsf{PI}\left(\right)}{180}}} \]
            4. /-lowering-/.f64N/A

              \[\leadsto \color{blue}{\frac{\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right) \cdot 1}{\frac{\mathsf{PI}\left(\right)}{180}}} \]
            5. *-rgt-identityN/A

              \[\leadsto \frac{\color{blue}{\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right)}}{\frac{\mathsf{PI}\left(\right)}{180}} \]
            6. atan-lowering-atan.f64N/A

              \[\leadsto \frac{\color{blue}{\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right)}}{\frac{\mathsf{PI}\left(\right)}{180}} \]
            7. /-lowering-/.f64N/A

              \[\leadsto \frac{\tan^{-1} \color{blue}{\left(\frac{B \cdot \frac{1}{2}}{A}\right)}}{\frac{\mathsf{PI}\left(\right)}{180}} \]
            8. *-lowering-*.f64N/A

              \[\leadsto \frac{\tan^{-1} \left(\frac{\color{blue}{B \cdot \frac{1}{2}}}{A}\right)}{\frac{\mathsf{PI}\left(\right)}{180}} \]
            9. div-invN/A

              \[\leadsto \frac{\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right)}{\color{blue}{\mathsf{PI}\left(\right) \cdot \frac{1}{180}}} \]
            10. *-lowering-*.f64N/A

              \[\leadsto \frac{\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right)}{\color{blue}{\mathsf{PI}\left(\right) \cdot \frac{1}{180}}} \]
            11. PI-lowering-PI.f64N/A

              \[\leadsto \frac{\tan^{-1} \left(\frac{B \cdot \frac{1}{2}}{A}\right)}{\color{blue}{\mathsf{PI}\left(\right)} \cdot \frac{1}{180}} \]
            12. metadata-eval64.4

              \[\leadsto \frac{\tan^{-1} \left(\frac{B \cdot 0.5}{A}\right)}{\pi \cdot \color{blue}{0.005555555555555556}} \]
          9. Applied egg-rr64.4%

            \[\leadsto \color{blue}{\frac{\tan^{-1} \left(\frac{B \cdot 0.5}{A}\right)}{\pi \cdot 0.005555555555555556}} \]

          if -2.2999999999999999e-101 < A < -8.5000000000000002e-279

          1. Initial program 66.4%

            \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
          2. Add Preprocessing
          3. Taylor expanded in A around 0

            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - \sqrt{{B}^{2} + {C}^{2}}}{B}\right)}}{\mathsf{PI}\left(\right)} \]
          4. Step-by-step derivation
            1. /-lowering-/.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - \sqrt{{B}^{2} + {C}^{2}}}{B}\right)}}{\mathsf{PI}\left(\right)} \]
            2. --lowering--.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{\color{blue}{C - \sqrt{{B}^{2} + {C}^{2}}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
            3. sqrt-lowering-sqrt.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \color{blue}{\sqrt{{B}^{2} + {C}^{2}}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
            4. unpow2N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\color{blue}{B \cdot B} + {C}^{2}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
            5. accelerator-lowering-fma.f64N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\color{blue}{\mathsf{fma}\left(B, B, {C}^{2}\right)}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
            6. unpow2N/A

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\mathsf{fma}\left(B, B, \color{blue}{C \cdot C}\right)}}{B}\right)}{\mathsf{PI}\left(\right)} \]
            7. *-lowering-*.f6466.4

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\mathsf{fma}\left(B, B, \color{blue}{C \cdot C}\right)}}{B}\right)}{\pi} \]
          5. Simplified66.4%

            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - \sqrt{\mathsf{fma}\left(B, B, C \cdot C\right)}}{B}\right)}}{\pi} \]
          6. Taylor expanded in B around inf

            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \color{blue}{B}}{B}\right)}{\mathsf{PI}\left(\right)} \]
          7. Step-by-step derivation
            1. Simplified63.3%

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \color{blue}{B}}{B}\right)}{\pi} \]

            if -8.5000000000000002e-279 < A < 1e4

            1. Initial program 60.2%

              \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
            2. Add Preprocessing
            3. Taylor expanded in A around 0

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - \sqrt{{B}^{2} + {C}^{2}}}{B}\right)}}{\mathsf{PI}\left(\right)} \]
            4. Step-by-step derivation
              1. /-lowering-/.f64N/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - \sqrt{{B}^{2} + {C}^{2}}}{B}\right)}}{\mathsf{PI}\left(\right)} \]
              2. --lowering--.f64N/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{\color{blue}{C - \sqrt{{B}^{2} + {C}^{2}}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
              3. sqrt-lowering-sqrt.f64N/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \color{blue}{\sqrt{{B}^{2} + {C}^{2}}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
              4. unpow2N/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\color{blue}{B \cdot B} + {C}^{2}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
              5. accelerator-lowering-fma.f64N/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\color{blue}{\mathsf{fma}\left(B, B, {C}^{2}\right)}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
              6. unpow2N/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\mathsf{fma}\left(B, B, \color{blue}{C \cdot C}\right)}}{B}\right)}{\mathsf{PI}\left(\right)} \]
              7. *-lowering-*.f6458.9

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\mathsf{fma}\left(B, B, \color{blue}{C \cdot C}\right)}}{B}\right)}{\pi} \]
            5. Simplified58.9%

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - \sqrt{\mathsf{fma}\left(B, B, C \cdot C\right)}}{B}\right)}}{\pi} \]
            6. Taylor expanded in B around -inf

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(1 + \frac{C}{B}\right)}}{\mathsf{PI}\left(\right)} \]
            7. Step-by-step derivation
              1. +-lowering-+.f64N/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(1 + \frac{C}{B}\right)}}{\mathsf{PI}\left(\right)} \]
              2. /-lowering-/.f6458.1

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(1 + \color{blue}{\frac{C}{B}}\right)}{\pi} \]
            8. Simplified58.1%

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(1 + \frac{C}{B}\right)}}{\pi} \]

            if 1e4 < A

            1. Initial program 81.7%

              \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
            2. Add Preprocessing
            3. Taylor expanded in B around inf

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C}{B} - \left(1 + \frac{A}{B}\right)\right)}}{\mathsf{PI}\left(\right)} \]
            4. Step-by-step derivation
              1. +-commutativeN/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C}{B} - \color{blue}{\left(\frac{A}{B} + 1\right)}\right)}{\mathsf{PI}\left(\right)} \]
              2. associate--r+N/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\left(\frac{C}{B} - \frac{A}{B}\right) - 1\right)}}{\mathsf{PI}\left(\right)} \]
              3. div-subN/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\color{blue}{\frac{C - A}{B}} - 1\right)}{\mathsf{PI}\left(\right)} \]
              4. sub-negN/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - A}{B} + \left(\mathsf{neg}\left(1\right)\right)\right)}}{\mathsf{PI}\left(\right)} \]
              5. metadata-evalN/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - A}{B} + \color{blue}{-1}\right)}{\mathsf{PI}\left(\right)} \]
              6. +-lowering-+.f64N/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - A}{B} + -1\right)}}{\mathsf{PI}\left(\right)} \]
              7. /-lowering-/.f64N/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\color{blue}{\frac{C - A}{B}} + -1\right)}{\mathsf{PI}\left(\right)} \]
              8. --lowering--.f6486.0

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{\color{blue}{C - A}}{B} + -1\right)}{\pi} \]
            5. Simplified86.0%

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - A}{B} + -1\right)}}{\pi} \]
            6. Taylor expanded in C around 0

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 \cdot \left(1 + \frac{A}{B}\right)\right)}}{\mathsf{PI}\left(\right)} \]
            7. Step-by-step derivation
              1. distribute-lft-inN/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 \cdot 1 + -1 \cdot \frac{A}{B}\right)}}{\mathsf{PI}\left(\right)} \]
              2. metadata-evalN/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\color{blue}{-1} + -1 \cdot \frac{A}{B}\right)}{\mathsf{PI}\left(\right)} \]
              3. mul-1-negN/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-1 + \color{blue}{\left(\mathsf{neg}\left(\frac{A}{B}\right)\right)}\right)}{\mathsf{PI}\left(\right)} \]
              4. unsub-negN/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 - \frac{A}{B}\right)}}{\mathsf{PI}\left(\right)} \]
              5. --lowering--.f64N/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 - \frac{A}{B}\right)}}{\mathsf{PI}\left(\right)} \]
              6. /-lowering-/.f6484.6

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-1 - \color{blue}{\frac{A}{B}}\right)}{\pi} \]
            8. Simplified84.6%

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 - \frac{A}{B}\right)}}{\pi} \]
          8. Recombined 4 regimes into one program.
          9. Add Preprocessing

          Alternative 7: 58.9% accurate, 2.4× speedup?

          \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;A \leq -2 \cdot 10^{-101}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{B \cdot 0.5}{A}\right)}{\pi}\\ \mathbf{elif}\;A \leq -2 \cdot 10^{-274}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{C - B}{B}\right)}{\pi}\\ \mathbf{elif}\;A \leq 48000:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 + \frac{C}{B}\right)}{\pi}\\ \mathbf{else}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(-1 - \frac{A}{B}\right)}{\pi}\\ \end{array} \end{array} \]
          (FPCore (A B C)
           :precision binary64
           (if (<= A -2e-101)
             (* 180.0 (/ (atan (/ (* B 0.5) A)) PI))
             (if (<= A -2e-274)
               (* 180.0 (/ (atan (/ (- C B) B)) PI))
               (if (<= A 48000.0)
                 (* 180.0 (/ (atan (+ 1.0 (/ C B))) PI))
                 (* 180.0 (/ (atan (- -1.0 (/ A B))) PI))))))
          double code(double A, double B, double C) {
          	double tmp;
          	if (A <= -2e-101) {
          		tmp = 180.0 * (atan(((B * 0.5) / A)) / ((double) M_PI));
          	} else if (A <= -2e-274) {
          		tmp = 180.0 * (atan(((C - B) / B)) / ((double) M_PI));
          	} else if (A <= 48000.0) {
          		tmp = 180.0 * (atan((1.0 + (C / B))) / ((double) M_PI));
          	} else {
          		tmp = 180.0 * (atan((-1.0 - (A / B))) / ((double) M_PI));
          	}
          	return tmp;
          }
          
          public static double code(double A, double B, double C) {
          	double tmp;
          	if (A <= -2e-101) {
          		tmp = 180.0 * (Math.atan(((B * 0.5) / A)) / Math.PI);
          	} else if (A <= -2e-274) {
          		tmp = 180.0 * (Math.atan(((C - B) / B)) / Math.PI);
          	} else if (A <= 48000.0) {
          		tmp = 180.0 * (Math.atan((1.0 + (C / B))) / Math.PI);
          	} else {
          		tmp = 180.0 * (Math.atan((-1.0 - (A / B))) / Math.PI);
          	}
          	return tmp;
          }
          
          def code(A, B, C):
          	tmp = 0
          	if A <= -2e-101:
          		tmp = 180.0 * (math.atan(((B * 0.5) / A)) / math.pi)
          	elif A <= -2e-274:
          		tmp = 180.0 * (math.atan(((C - B) / B)) / math.pi)
          	elif A <= 48000.0:
          		tmp = 180.0 * (math.atan((1.0 + (C / B))) / math.pi)
          	else:
          		tmp = 180.0 * (math.atan((-1.0 - (A / B))) / math.pi)
          	return tmp
          
          function code(A, B, C)
          	tmp = 0.0
          	if (A <= -2e-101)
          		tmp = Float64(180.0 * Float64(atan(Float64(Float64(B * 0.5) / A)) / pi));
          	elseif (A <= -2e-274)
          		tmp = Float64(180.0 * Float64(atan(Float64(Float64(C - B) / B)) / pi));
          	elseif (A <= 48000.0)
          		tmp = Float64(180.0 * Float64(atan(Float64(1.0 + Float64(C / B))) / pi));
          	else
          		tmp = Float64(180.0 * Float64(atan(Float64(-1.0 - Float64(A / B))) / pi));
          	end
          	return tmp
          end
          
          function tmp_2 = code(A, B, C)
          	tmp = 0.0;
          	if (A <= -2e-101)
          		tmp = 180.0 * (atan(((B * 0.5) / A)) / pi);
          	elseif (A <= -2e-274)
          		tmp = 180.0 * (atan(((C - B) / B)) / pi);
          	elseif (A <= 48000.0)
          		tmp = 180.0 * (atan((1.0 + (C / B))) / pi);
          	else
          		tmp = 180.0 * (atan((-1.0 - (A / B))) / pi);
          	end
          	tmp_2 = tmp;
          end
          
          code[A_, B_, C_] := If[LessEqual[A, -2e-101], N[(180.0 * N[(N[ArcTan[N[(N[(B * 0.5), $MachinePrecision] / A), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[A, -2e-274], N[(180.0 * N[(N[ArcTan[N[(N[(C - B), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[A, 48000.0], N[(180.0 * N[(N[ArcTan[N[(1.0 + N[(C / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(-1.0 - N[(A / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]
          
          \begin{array}{l}
          
          \\
          \begin{array}{l}
          \mathbf{if}\;A \leq -2 \cdot 10^{-101}:\\
          \;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{B \cdot 0.5}{A}\right)}{\pi}\\
          
          \mathbf{elif}\;A \leq -2 \cdot 10^{-274}:\\
          \;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{C - B}{B}\right)}{\pi}\\
          
          \mathbf{elif}\;A \leq 48000:\\
          \;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 + \frac{C}{B}\right)}{\pi}\\
          
          \mathbf{else}:\\
          \;\;\;\;180 \cdot \frac{\tan^{-1} \left(-1 - \frac{A}{B}\right)}{\pi}\\
          
          
          \end{array}
          \end{array}
          
          Derivation
          1. Split input into 4 regimes
          2. if A < -2.0000000000000001e-101

            1. Initial program 26.4%

              \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
            2. Add Preprocessing
            3. Taylor expanded in A around -inf

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{1}{2} \cdot \frac{B}{A}\right)}}{\mathsf{PI}\left(\right)} \]
            4. Step-by-step derivation
              1. associate-*r/N/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{\frac{1}{2} \cdot B}{A}\right)}}{\mathsf{PI}\left(\right)} \]
              2. /-lowering-/.f64N/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{\frac{1}{2} \cdot B}{A}\right)}}{\mathsf{PI}\left(\right)} \]
              3. *-commutativeN/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{\color{blue}{B \cdot \frac{1}{2}}}{A}\right)}{\mathsf{PI}\left(\right)} \]
              4. *-lowering-*.f6464.3

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{\color{blue}{B \cdot 0.5}}{A}\right)}{\pi} \]
            5. Simplified64.3%

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{B \cdot 0.5}{A}\right)}}{\pi} \]

            if -2.0000000000000001e-101 < A < -1.99999999999999993e-274

            1. Initial program 66.4%

              \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
            2. Add Preprocessing
            3. Taylor expanded in A around 0

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - \sqrt{{B}^{2} + {C}^{2}}}{B}\right)}}{\mathsf{PI}\left(\right)} \]
            4. Step-by-step derivation
              1. /-lowering-/.f64N/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - \sqrt{{B}^{2} + {C}^{2}}}{B}\right)}}{\mathsf{PI}\left(\right)} \]
              2. --lowering--.f64N/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{\color{blue}{C - \sqrt{{B}^{2} + {C}^{2}}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
              3. sqrt-lowering-sqrt.f64N/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \color{blue}{\sqrt{{B}^{2} + {C}^{2}}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
              4. unpow2N/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\color{blue}{B \cdot B} + {C}^{2}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
              5. accelerator-lowering-fma.f64N/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\color{blue}{\mathsf{fma}\left(B, B, {C}^{2}\right)}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
              6. unpow2N/A

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\mathsf{fma}\left(B, B, \color{blue}{C \cdot C}\right)}}{B}\right)}{\mathsf{PI}\left(\right)} \]
              7. *-lowering-*.f6466.4

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\mathsf{fma}\left(B, B, \color{blue}{C \cdot C}\right)}}{B}\right)}{\pi} \]
            5. Simplified66.4%

              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - \sqrt{\mathsf{fma}\left(B, B, C \cdot C\right)}}{B}\right)}}{\pi} \]
            6. Taylor expanded in B around inf

              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \color{blue}{B}}{B}\right)}{\mathsf{PI}\left(\right)} \]
            7. Step-by-step derivation
              1. Simplified63.3%

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \color{blue}{B}}{B}\right)}{\pi} \]

              if -1.99999999999999993e-274 < A < 48000

              1. Initial program 60.2%

                \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
              2. Add Preprocessing
              3. Taylor expanded in A around 0

                \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - \sqrt{{B}^{2} + {C}^{2}}}{B}\right)}}{\mathsf{PI}\left(\right)} \]
              4. Step-by-step derivation
                1. /-lowering-/.f64N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - \sqrt{{B}^{2} + {C}^{2}}}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                2. --lowering--.f64N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{\color{blue}{C - \sqrt{{B}^{2} + {C}^{2}}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                3. sqrt-lowering-sqrt.f64N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \color{blue}{\sqrt{{B}^{2} + {C}^{2}}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                4. unpow2N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\color{blue}{B \cdot B} + {C}^{2}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                5. accelerator-lowering-fma.f64N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\color{blue}{\mathsf{fma}\left(B, B, {C}^{2}\right)}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                6. unpow2N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\mathsf{fma}\left(B, B, \color{blue}{C \cdot C}\right)}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                7. *-lowering-*.f6458.9

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\mathsf{fma}\left(B, B, \color{blue}{C \cdot C}\right)}}{B}\right)}{\pi} \]
              5. Simplified58.9%

                \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - \sqrt{\mathsf{fma}\left(B, B, C \cdot C\right)}}{B}\right)}}{\pi} \]
              6. Taylor expanded in B around -inf

                \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(1 + \frac{C}{B}\right)}}{\mathsf{PI}\left(\right)} \]
              7. Step-by-step derivation
                1. +-lowering-+.f64N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(1 + \frac{C}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                2. /-lowering-/.f6458.1

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(1 + \color{blue}{\frac{C}{B}}\right)}{\pi} \]
              8. Simplified58.1%

                \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(1 + \frac{C}{B}\right)}}{\pi} \]

              if 48000 < A

              1. Initial program 81.7%

                \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
              2. Add Preprocessing
              3. Taylor expanded in B around inf

                \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C}{B} - \left(1 + \frac{A}{B}\right)\right)}}{\mathsf{PI}\left(\right)} \]
              4. Step-by-step derivation
                1. +-commutativeN/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C}{B} - \color{blue}{\left(\frac{A}{B} + 1\right)}\right)}{\mathsf{PI}\left(\right)} \]
                2. associate--r+N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\left(\frac{C}{B} - \frac{A}{B}\right) - 1\right)}}{\mathsf{PI}\left(\right)} \]
                3. div-subN/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\color{blue}{\frac{C - A}{B}} - 1\right)}{\mathsf{PI}\left(\right)} \]
                4. sub-negN/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - A}{B} + \left(\mathsf{neg}\left(1\right)\right)\right)}}{\mathsf{PI}\left(\right)} \]
                5. metadata-evalN/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - A}{B} + \color{blue}{-1}\right)}{\mathsf{PI}\left(\right)} \]
                6. +-lowering-+.f64N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - A}{B} + -1\right)}}{\mathsf{PI}\left(\right)} \]
                7. /-lowering-/.f64N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\color{blue}{\frac{C - A}{B}} + -1\right)}{\mathsf{PI}\left(\right)} \]
                8. --lowering--.f6486.0

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{\color{blue}{C - A}}{B} + -1\right)}{\pi} \]
              5. Simplified86.0%

                \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - A}{B} + -1\right)}}{\pi} \]
              6. Taylor expanded in C around 0

                \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 \cdot \left(1 + \frac{A}{B}\right)\right)}}{\mathsf{PI}\left(\right)} \]
              7. Step-by-step derivation
                1. distribute-lft-inN/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 \cdot 1 + -1 \cdot \frac{A}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                2. metadata-evalN/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\color{blue}{-1} + -1 \cdot \frac{A}{B}\right)}{\mathsf{PI}\left(\right)} \]
                3. mul-1-negN/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-1 + \color{blue}{\left(\mathsf{neg}\left(\frac{A}{B}\right)\right)}\right)}{\mathsf{PI}\left(\right)} \]
                4. unsub-negN/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 - \frac{A}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                5. --lowering--.f64N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 - \frac{A}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                6. /-lowering-/.f6484.6

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-1 - \color{blue}{\frac{A}{B}}\right)}{\pi} \]
              8. Simplified84.6%

                \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 - \frac{A}{B}\right)}}{\pi} \]
            8. Recombined 4 regimes into one program.
            9. Add Preprocessing

            Alternative 8: 58.9% accurate, 2.4× speedup?

            \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;A \leq -2.3 \cdot 10^{-101}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(B \cdot \frac{0.5}{A}\right)}{\pi}\\ \mathbf{elif}\;A \leq -2 \cdot 10^{-271}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{C - B}{B}\right)}{\pi}\\ \mathbf{elif}\;A \leq 25000:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 + \frac{C}{B}\right)}{\pi}\\ \mathbf{else}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(-1 - \frac{A}{B}\right)}{\pi}\\ \end{array} \end{array} \]
            (FPCore (A B C)
             :precision binary64
             (if (<= A -2.3e-101)
               (* 180.0 (/ (atan (* B (/ 0.5 A))) PI))
               (if (<= A -2e-271)
                 (* 180.0 (/ (atan (/ (- C B) B)) PI))
                 (if (<= A 25000.0)
                   (* 180.0 (/ (atan (+ 1.0 (/ C B))) PI))
                   (* 180.0 (/ (atan (- -1.0 (/ A B))) PI))))))
            double code(double A, double B, double C) {
            	double tmp;
            	if (A <= -2.3e-101) {
            		tmp = 180.0 * (atan((B * (0.5 / A))) / ((double) M_PI));
            	} else if (A <= -2e-271) {
            		tmp = 180.0 * (atan(((C - B) / B)) / ((double) M_PI));
            	} else if (A <= 25000.0) {
            		tmp = 180.0 * (atan((1.0 + (C / B))) / ((double) M_PI));
            	} else {
            		tmp = 180.0 * (atan((-1.0 - (A / B))) / ((double) M_PI));
            	}
            	return tmp;
            }
            
            public static double code(double A, double B, double C) {
            	double tmp;
            	if (A <= -2.3e-101) {
            		tmp = 180.0 * (Math.atan((B * (0.5 / A))) / Math.PI);
            	} else if (A <= -2e-271) {
            		tmp = 180.0 * (Math.atan(((C - B) / B)) / Math.PI);
            	} else if (A <= 25000.0) {
            		tmp = 180.0 * (Math.atan((1.0 + (C / B))) / Math.PI);
            	} else {
            		tmp = 180.0 * (Math.atan((-1.0 - (A / B))) / Math.PI);
            	}
            	return tmp;
            }
            
            def code(A, B, C):
            	tmp = 0
            	if A <= -2.3e-101:
            		tmp = 180.0 * (math.atan((B * (0.5 / A))) / math.pi)
            	elif A <= -2e-271:
            		tmp = 180.0 * (math.atan(((C - B) / B)) / math.pi)
            	elif A <= 25000.0:
            		tmp = 180.0 * (math.atan((1.0 + (C / B))) / math.pi)
            	else:
            		tmp = 180.0 * (math.atan((-1.0 - (A / B))) / math.pi)
            	return tmp
            
            function code(A, B, C)
            	tmp = 0.0
            	if (A <= -2.3e-101)
            		tmp = Float64(180.0 * Float64(atan(Float64(B * Float64(0.5 / A))) / pi));
            	elseif (A <= -2e-271)
            		tmp = Float64(180.0 * Float64(atan(Float64(Float64(C - B) / B)) / pi));
            	elseif (A <= 25000.0)
            		tmp = Float64(180.0 * Float64(atan(Float64(1.0 + Float64(C / B))) / pi));
            	else
            		tmp = Float64(180.0 * Float64(atan(Float64(-1.0 - Float64(A / B))) / pi));
            	end
            	return tmp
            end
            
            function tmp_2 = code(A, B, C)
            	tmp = 0.0;
            	if (A <= -2.3e-101)
            		tmp = 180.0 * (atan((B * (0.5 / A))) / pi);
            	elseif (A <= -2e-271)
            		tmp = 180.0 * (atan(((C - B) / B)) / pi);
            	elseif (A <= 25000.0)
            		tmp = 180.0 * (atan((1.0 + (C / B))) / pi);
            	else
            		tmp = 180.0 * (atan((-1.0 - (A / B))) / pi);
            	end
            	tmp_2 = tmp;
            end
            
            code[A_, B_, C_] := If[LessEqual[A, -2.3e-101], N[(180.0 * N[(N[ArcTan[N[(B * N[(0.5 / A), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[A, -2e-271], N[(180.0 * N[(N[ArcTan[N[(N[(C - B), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[A, 25000.0], N[(180.0 * N[(N[ArcTan[N[(1.0 + N[(C / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(-1.0 - N[(A / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]
            
            \begin{array}{l}
            
            \\
            \begin{array}{l}
            \mathbf{if}\;A \leq -2.3 \cdot 10^{-101}:\\
            \;\;\;\;180 \cdot \frac{\tan^{-1} \left(B \cdot \frac{0.5}{A}\right)}{\pi}\\
            
            \mathbf{elif}\;A \leq -2 \cdot 10^{-271}:\\
            \;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{C - B}{B}\right)}{\pi}\\
            
            \mathbf{elif}\;A \leq 25000:\\
            \;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 + \frac{C}{B}\right)}{\pi}\\
            
            \mathbf{else}:\\
            \;\;\;\;180 \cdot \frac{\tan^{-1} \left(-1 - \frac{A}{B}\right)}{\pi}\\
            
            
            \end{array}
            \end{array}
            
            Derivation
            1. Split input into 4 regimes
            2. if A < -2.2999999999999999e-101

              1. Initial program 26.4%

                \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
              2. Add Preprocessing
              3. Taylor expanded in A around -inf

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \color{blue}{\left(\frac{1}{2} \cdot \frac{{B}^{2}}{A}\right)}\right)}{\mathsf{PI}\left(\right)} \]
              4. Step-by-step derivation
                1. associate-*r/N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \color{blue}{\frac{\frac{1}{2} \cdot {B}^{2}}{A}}\right)}{\mathsf{PI}\left(\right)} \]
                2. /-lowering-/.f64N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \color{blue}{\frac{\frac{1}{2} \cdot {B}^{2}}{A}}\right)}{\mathsf{PI}\left(\right)} \]
                3. *-commutativeN/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\color{blue}{{B}^{2} \cdot \frac{1}{2}}}{A}\right)}{\mathsf{PI}\left(\right)} \]
                4. *-lowering-*.f64N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\color{blue}{{B}^{2} \cdot \frac{1}{2}}}{A}\right)}{\mathsf{PI}\left(\right)} \]
                5. unpow2N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\color{blue}{\left(B \cdot B\right)} \cdot \frac{1}{2}}{A}\right)}{\mathsf{PI}\left(\right)} \]
                6. *-lowering-*.f6450.8

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \frac{\color{blue}{\left(B \cdot B\right)} \cdot 0.5}{A}\right)}{\pi} \]
              5. Simplified50.8%

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \color{blue}{\frac{\left(B \cdot B\right) \cdot 0.5}{A}}\right)}{\pi} \]
              6. Step-by-step derivation
                1. associate-/l*N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \color{blue}{\left(\left(B \cdot B\right) \cdot \frac{\frac{1}{2}}{A}\right)}\right)}{\mathsf{PI}\left(\right)} \]
                2. associate-*r*N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\left(\frac{1}{B} \cdot \left(B \cdot B\right)\right) \cdot \frac{\frac{1}{2}}{A}\right)}}{\mathsf{PI}\left(\right)} \]
                3. inv-powN/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\left(\color{blue}{{B}^{-1}} \cdot \left(B \cdot B\right)\right) \cdot \frac{\frac{1}{2}}{A}\right)}{\mathsf{PI}\left(\right)} \]
                4. pow2N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\left({B}^{-1} \cdot \color{blue}{{B}^{2}}\right) \cdot \frac{\frac{1}{2}}{A}\right)}{\mathsf{PI}\left(\right)} \]
                5. pow-prod-upN/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\color{blue}{{B}^{\left(-1 + 2\right)}} \cdot \frac{\frac{1}{2}}{A}\right)}{\mathsf{PI}\left(\right)} \]
                6. metadata-evalN/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left({B}^{\color{blue}{1}} \cdot \frac{\frac{1}{2}}{A}\right)}{\mathsf{PI}\left(\right)} \]
                7. unpow1N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\color{blue}{B} \cdot \frac{\frac{1}{2}}{A}\right)}{\mathsf{PI}\left(\right)} \]
                8. *-lowering-*.f64N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(B \cdot \frac{\frac{1}{2}}{A}\right)}}{\mathsf{PI}\left(\right)} \]
                9. /-lowering-/.f6464.3

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(B \cdot \color{blue}{\frac{0.5}{A}}\right)}{\pi} \]
              7. Applied egg-rr64.3%

                \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(B \cdot \frac{0.5}{A}\right)}}{\pi} \]

              if -2.2999999999999999e-101 < A < -1.99999999999999993e-271

              1. Initial program 66.4%

                \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
              2. Add Preprocessing
              3. Taylor expanded in A around 0

                \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - \sqrt{{B}^{2} + {C}^{2}}}{B}\right)}}{\mathsf{PI}\left(\right)} \]
              4. Step-by-step derivation
                1. /-lowering-/.f64N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - \sqrt{{B}^{2} + {C}^{2}}}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                2. --lowering--.f64N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{\color{blue}{C - \sqrt{{B}^{2} + {C}^{2}}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                3. sqrt-lowering-sqrt.f64N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \color{blue}{\sqrt{{B}^{2} + {C}^{2}}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                4. unpow2N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\color{blue}{B \cdot B} + {C}^{2}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                5. accelerator-lowering-fma.f64N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\color{blue}{\mathsf{fma}\left(B, B, {C}^{2}\right)}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                6. unpow2N/A

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\mathsf{fma}\left(B, B, \color{blue}{C \cdot C}\right)}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                7. *-lowering-*.f6466.4

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\mathsf{fma}\left(B, B, \color{blue}{C \cdot C}\right)}}{B}\right)}{\pi} \]
              5. Simplified66.4%

                \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - \sqrt{\mathsf{fma}\left(B, B, C \cdot C\right)}}{B}\right)}}{\pi} \]
              6. Taylor expanded in B around inf

                \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \color{blue}{B}}{B}\right)}{\mathsf{PI}\left(\right)} \]
              7. Step-by-step derivation
                1. Simplified63.3%

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \color{blue}{B}}{B}\right)}{\pi} \]

                if -1.99999999999999993e-271 < A < 25000

                1. Initial program 60.2%

                  \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
                2. Add Preprocessing
                3. Taylor expanded in A around 0

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - \sqrt{{B}^{2} + {C}^{2}}}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                4. Step-by-step derivation
                  1. /-lowering-/.f64N/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - \sqrt{{B}^{2} + {C}^{2}}}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                  2. --lowering--.f64N/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{\color{blue}{C - \sqrt{{B}^{2} + {C}^{2}}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                  3. sqrt-lowering-sqrt.f64N/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \color{blue}{\sqrt{{B}^{2} + {C}^{2}}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                  4. unpow2N/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\color{blue}{B \cdot B} + {C}^{2}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                  5. accelerator-lowering-fma.f64N/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\color{blue}{\mathsf{fma}\left(B, B, {C}^{2}\right)}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                  6. unpow2N/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\mathsf{fma}\left(B, B, \color{blue}{C \cdot C}\right)}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                  7. *-lowering-*.f6458.9

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\mathsf{fma}\left(B, B, \color{blue}{C \cdot C}\right)}}{B}\right)}{\pi} \]
                5. Simplified58.9%

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - \sqrt{\mathsf{fma}\left(B, B, C \cdot C\right)}}{B}\right)}}{\pi} \]
                6. Taylor expanded in B around -inf

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(1 + \frac{C}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                7. Step-by-step derivation
                  1. +-lowering-+.f64N/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(1 + \frac{C}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                  2. /-lowering-/.f6458.1

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(1 + \color{blue}{\frac{C}{B}}\right)}{\pi} \]
                8. Simplified58.1%

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(1 + \frac{C}{B}\right)}}{\pi} \]

                if 25000 < A

                1. Initial program 81.7%

                  \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
                2. Add Preprocessing
                3. Taylor expanded in B around inf

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C}{B} - \left(1 + \frac{A}{B}\right)\right)}}{\mathsf{PI}\left(\right)} \]
                4. Step-by-step derivation
                  1. +-commutativeN/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C}{B} - \color{blue}{\left(\frac{A}{B} + 1\right)}\right)}{\mathsf{PI}\left(\right)} \]
                  2. associate--r+N/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\left(\frac{C}{B} - \frac{A}{B}\right) - 1\right)}}{\mathsf{PI}\left(\right)} \]
                  3. div-subN/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\color{blue}{\frac{C - A}{B}} - 1\right)}{\mathsf{PI}\left(\right)} \]
                  4. sub-negN/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - A}{B} + \left(\mathsf{neg}\left(1\right)\right)\right)}}{\mathsf{PI}\left(\right)} \]
                  5. metadata-evalN/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - A}{B} + \color{blue}{-1}\right)}{\mathsf{PI}\left(\right)} \]
                  6. +-lowering-+.f64N/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - A}{B} + -1\right)}}{\mathsf{PI}\left(\right)} \]
                  7. /-lowering-/.f64N/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\color{blue}{\frac{C - A}{B}} + -1\right)}{\mathsf{PI}\left(\right)} \]
                  8. --lowering--.f6486.0

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{\color{blue}{C - A}}{B} + -1\right)}{\pi} \]
                5. Simplified86.0%

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - A}{B} + -1\right)}}{\pi} \]
                6. Taylor expanded in C around 0

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 \cdot \left(1 + \frac{A}{B}\right)\right)}}{\mathsf{PI}\left(\right)} \]
                7. Step-by-step derivation
                  1. distribute-lft-inN/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 \cdot 1 + -1 \cdot \frac{A}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                  2. metadata-evalN/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\color{blue}{-1} + -1 \cdot \frac{A}{B}\right)}{\mathsf{PI}\left(\right)} \]
                  3. mul-1-negN/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-1 + \color{blue}{\left(\mathsf{neg}\left(\frac{A}{B}\right)\right)}\right)}{\mathsf{PI}\left(\right)} \]
                  4. unsub-negN/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 - \frac{A}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                  5. --lowering--.f64N/A

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 - \frac{A}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                  6. /-lowering-/.f6484.6

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-1 - \color{blue}{\frac{A}{B}}\right)}{\pi} \]
                8. Simplified84.6%

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 - \frac{A}{B}\right)}}{\pi} \]
              8. Recombined 4 regimes into one program.
              9. Add Preprocessing

              Alternative 9: 45.3% accurate, 2.4× speedup?

              \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;B \leq -1 \cdot 10^{-72}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} 1}{\pi}\\ \mathbf{elif}\;B \leq -3.1 \cdot 10^{-257}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} 0}{\pi}\\ \mathbf{elif}\;B \leq 4.1 \cdot 10^{-144}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{C}{B}\right)}{\pi}\\ \mathbf{else}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} -1}{\pi}\\ \end{array} \end{array} \]
              (FPCore (A B C)
               :precision binary64
               (if (<= B -1e-72)
                 (* 180.0 (/ (atan 1.0) PI))
                 (if (<= B -3.1e-257)
                   (* 180.0 (/ (atan 0.0) PI))
                   (if (<= B 4.1e-144)
                     (* 180.0 (/ (atan (/ C B)) PI))
                     (* 180.0 (/ (atan -1.0) PI))))))
              double code(double A, double B, double C) {
              	double tmp;
              	if (B <= -1e-72) {
              		tmp = 180.0 * (atan(1.0) / ((double) M_PI));
              	} else if (B <= -3.1e-257) {
              		tmp = 180.0 * (atan(0.0) / ((double) M_PI));
              	} else if (B <= 4.1e-144) {
              		tmp = 180.0 * (atan((C / B)) / ((double) M_PI));
              	} else {
              		tmp = 180.0 * (atan(-1.0) / ((double) M_PI));
              	}
              	return tmp;
              }
              
              public static double code(double A, double B, double C) {
              	double tmp;
              	if (B <= -1e-72) {
              		tmp = 180.0 * (Math.atan(1.0) / Math.PI);
              	} else if (B <= -3.1e-257) {
              		tmp = 180.0 * (Math.atan(0.0) / Math.PI);
              	} else if (B <= 4.1e-144) {
              		tmp = 180.0 * (Math.atan((C / B)) / Math.PI);
              	} else {
              		tmp = 180.0 * (Math.atan(-1.0) / Math.PI);
              	}
              	return tmp;
              }
              
              def code(A, B, C):
              	tmp = 0
              	if B <= -1e-72:
              		tmp = 180.0 * (math.atan(1.0) / math.pi)
              	elif B <= -3.1e-257:
              		tmp = 180.0 * (math.atan(0.0) / math.pi)
              	elif B <= 4.1e-144:
              		tmp = 180.0 * (math.atan((C / B)) / math.pi)
              	else:
              		tmp = 180.0 * (math.atan(-1.0) / math.pi)
              	return tmp
              
              function code(A, B, C)
              	tmp = 0.0
              	if (B <= -1e-72)
              		tmp = Float64(180.0 * Float64(atan(1.0) / pi));
              	elseif (B <= -3.1e-257)
              		tmp = Float64(180.0 * Float64(atan(0.0) / pi));
              	elseif (B <= 4.1e-144)
              		tmp = Float64(180.0 * Float64(atan(Float64(C / B)) / pi));
              	else
              		tmp = Float64(180.0 * Float64(atan(-1.0) / pi));
              	end
              	return tmp
              end
              
              function tmp_2 = code(A, B, C)
              	tmp = 0.0;
              	if (B <= -1e-72)
              		tmp = 180.0 * (atan(1.0) / pi);
              	elseif (B <= -3.1e-257)
              		tmp = 180.0 * (atan(0.0) / pi);
              	elseif (B <= 4.1e-144)
              		tmp = 180.0 * (atan((C / B)) / pi);
              	else
              		tmp = 180.0 * (atan(-1.0) / pi);
              	end
              	tmp_2 = tmp;
              end
              
              code[A_, B_, C_] := If[LessEqual[B, -1e-72], N[(180.0 * N[(N[ArcTan[1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -3.1e-257], N[(180.0 * N[(N[ArcTan[0.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, 4.1e-144], N[(180.0 * N[(N[ArcTan[N[(C / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[-1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]
              
              \begin{array}{l}
              
              \\
              \begin{array}{l}
              \mathbf{if}\;B \leq -1 \cdot 10^{-72}:\\
              \;\;\;\;180 \cdot \frac{\tan^{-1} 1}{\pi}\\
              
              \mathbf{elif}\;B \leq -3.1 \cdot 10^{-257}:\\
              \;\;\;\;180 \cdot \frac{\tan^{-1} 0}{\pi}\\
              
              \mathbf{elif}\;B \leq 4.1 \cdot 10^{-144}:\\
              \;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{C}{B}\right)}{\pi}\\
              
              \mathbf{else}:\\
              \;\;\;\;180 \cdot \frac{\tan^{-1} -1}{\pi}\\
              
              
              \end{array}
              \end{array}
              
              Derivation
              1. Split input into 4 regimes
              2. if B < -9.9999999999999997e-73

                1. Initial program 56.5%

                  \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
                2. Add Preprocessing
                3. Taylor expanded in B around -inf

                  \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{1}}{\mathsf{PI}\left(\right)} \]
                4. Step-by-step derivation
                  1. Simplified59.5%

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

                  if -9.9999999999999997e-73 < B < -3.10000000000000008e-257

                  1. Initial program 38.3%

                    \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
                  2. Add Preprocessing
                  3. Taylor expanded in C around inf

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 \cdot \frac{A + -1 \cdot A}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                  4. Step-by-step derivation
                    1. distribute-rgt1-inN/A

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-1 \cdot \frac{\color{blue}{\left(-1 + 1\right) \cdot A}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                    2. metadata-evalN/A

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-1 \cdot \frac{\color{blue}{0} \cdot A}{B}\right)}{\mathsf{PI}\left(\right)} \]
                    3. mul0-lftN/A

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-1 \cdot \frac{\color{blue}{0}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                    4. div0N/A

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-1 \cdot \color{blue}{0}\right)}{\mathsf{PI}\left(\right)} \]
                    5. metadata-eval37.1

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{0}}{\pi} \]
                  5. Simplified37.1%

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

                  if -3.10000000000000008e-257 < B < 4.1e-144

                  1. Initial program 65.8%

                    \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
                  2. Add Preprocessing
                  3. Taylor expanded in B around inf

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C}{B} - \left(1 + \frac{A}{B}\right)\right)}}{\mathsf{PI}\left(\right)} \]
                  4. Step-by-step derivation
                    1. +-commutativeN/A

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C}{B} - \color{blue}{\left(\frac{A}{B} + 1\right)}\right)}{\mathsf{PI}\left(\right)} \]
                    2. associate--r+N/A

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\left(\frac{C}{B} - \frac{A}{B}\right) - 1\right)}}{\mathsf{PI}\left(\right)} \]
                    3. div-subN/A

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\color{blue}{\frac{C - A}{B}} - 1\right)}{\mathsf{PI}\left(\right)} \]
                    4. sub-negN/A

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - A}{B} + \left(\mathsf{neg}\left(1\right)\right)\right)}}{\mathsf{PI}\left(\right)} \]
                    5. metadata-evalN/A

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - A}{B} + \color{blue}{-1}\right)}{\mathsf{PI}\left(\right)} \]
                    6. +-lowering-+.f64N/A

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - A}{B} + -1\right)}}{\mathsf{PI}\left(\right)} \]
                    7. /-lowering-/.f64N/A

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\color{blue}{\frac{C - A}{B}} + -1\right)}{\mathsf{PI}\left(\right)} \]
                    8. --lowering--.f6456.8

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{\color{blue}{C - A}}{B} + -1\right)}{\pi} \]
                  5. Simplified56.8%

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - A}{B} + -1\right)}}{\pi} \]
                  6. Taylor expanded in C around inf

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                  7. Step-by-step derivation
                    1. /-lowering-/.f6454.2

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C}{B}\right)}}{\pi} \]
                  8. Simplified54.2%

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C}{B}\right)}}{\pi} \]

                  if 4.1e-144 < B

                  1. Initial program 54.2%

                    \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
                  2. Add Preprocessing
                  3. Taylor expanded in B around inf

                    \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{-1}}{\mathsf{PI}\left(\right)} \]
                  4. Step-by-step derivation
                    1. Simplified51.2%

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{-1}}{\pi} \]
                  5. Recombined 4 regimes into one program.
                  6. Add Preprocessing

                  Alternative 10: 55.1% accurate, 2.6× speedup?

                  \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;B \leq 5.5 \cdot 10^{-145}:\\ \;\;\;\;\frac{180 \cdot \tan^{-1} \left(1 + \frac{C}{B}\right)}{\pi}\\ \mathbf{else}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(-1 - \frac{A}{B}\right)}{\pi}\\ \end{array} \end{array} \]
                  (FPCore (A B C)
                   :precision binary64
                   (if (<= B 5.5e-145)
                     (/ (* 180.0 (atan (+ 1.0 (/ C B)))) PI)
                     (* 180.0 (/ (atan (- -1.0 (/ A B))) PI))))
                  double code(double A, double B, double C) {
                  	double tmp;
                  	if (B <= 5.5e-145) {
                  		tmp = (180.0 * atan((1.0 + (C / B)))) / ((double) M_PI);
                  	} else {
                  		tmp = 180.0 * (atan((-1.0 - (A / B))) / ((double) M_PI));
                  	}
                  	return tmp;
                  }
                  
                  public static double code(double A, double B, double C) {
                  	double tmp;
                  	if (B <= 5.5e-145) {
                  		tmp = (180.0 * Math.atan((1.0 + (C / B)))) / Math.PI;
                  	} else {
                  		tmp = 180.0 * (Math.atan((-1.0 - (A / B))) / Math.PI);
                  	}
                  	return tmp;
                  }
                  
                  def code(A, B, C):
                  	tmp = 0
                  	if B <= 5.5e-145:
                  		tmp = (180.0 * math.atan((1.0 + (C / B)))) / math.pi
                  	else:
                  		tmp = 180.0 * (math.atan((-1.0 - (A / B))) / math.pi)
                  	return tmp
                  
                  function code(A, B, C)
                  	tmp = 0.0
                  	if (B <= 5.5e-145)
                  		tmp = Float64(Float64(180.0 * atan(Float64(1.0 + Float64(C / B)))) / pi);
                  	else
                  		tmp = Float64(180.0 * Float64(atan(Float64(-1.0 - Float64(A / B))) / pi));
                  	end
                  	return tmp
                  end
                  
                  function tmp_2 = code(A, B, C)
                  	tmp = 0.0;
                  	if (B <= 5.5e-145)
                  		tmp = (180.0 * atan((1.0 + (C / B)))) / pi;
                  	else
                  		tmp = 180.0 * (atan((-1.0 - (A / B))) / pi);
                  	end
                  	tmp_2 = tmp;
                  end
                  
                  code[A_, B_, C_] := If[LessEqual[B, 5.5e-145], N[(N[(180.0 * N[ArcTan[N[(1.0 + N[(C / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(-1.0 - N[(A / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]
                  
                  \begin{array}{l}
                  
                  \\
                  \begin{array}{l}
                  \mathbf{if}\;B \leq 5.5 \cdot 10^{-145}:\\
                  \;\;\;\;\frac{180 \cdot \tan^{-1} \left(1 + \frac{C}{B}\right)}{\pi}\\
                  
                  \mathbf{else}:\\
                  \;\;\;\;180 \cdot \frac{\tan^{-1} \left(-1 - \frac{A}{B}\right)}{\pi}\\
                  
                  
                  \end{array}
                  \end{array}
                  
                  Derivation
                  1. Split input into 2 regimes
                  2. if B < 5.50000000000000015e-145

                    1. Initial program 54.0%

                      \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
                    2. Add Preprocessing
                    3. Taylor expanded in A around 0

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - \sqrt{{B}^{2} + {C}^{2}}}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                    4. Step-by-step derivation
                      1. /-lowering-/.f64N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - \sqrt{{B}^{2} + {C}^{2}}}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                      2. --lowering--.f64N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{\color{blue}{C - \sqrt{{B}^{2} + {C}^{2}}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                      3. sqrt-lowering-sqrt.f64N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \color{blue}{\sqrt{{B}^{2} + {C}^{2}}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                      4. unpow2N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\color{blue}{B \cdot B} + {C}^{2}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                      5. accelerator-lowering-fma.f64N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\color{blue}{\mathsf{fma}\left(B, B, {C}^{2}\right)}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                      6. unpow2N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\mathsf{fma}\left(B, B, \color{blue}{C \cdot C}\right)}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                      7. *-lowering-*.f6445.9

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\mathsf{fma}\left(B, B, \color{blue}{C \cdot C}\right)}}{B}\right)}{\pi} \]
                    5. Simplified45.9%

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - \sqrt{\mathsf{fma}\left(B, B, C \cdot C\right)}}{B}\right)}}{\pi} \]
                    6. Step-by-step derivation
                      1. associate-*r/N/A

                        \[\leadsto \color{blue}{\frac{180 \cdot \tan^{-1} \left(\frac{C - \sqrt{B \cdot B + C \cdot C}}{B}\right)}{\mathsf{PI}\left(\right)}} \]
                      2. /-lowering-/.f64N/A

                        \[\leadsto \color{blue}{\frac{180 \cdot \tan^{-1} \left(\frac{C - \sqrt{B \cdot B + C \cdot C}}{B}\right)}{\mathsf{PI}\left(\right)}} \]
                      3. *-lowering-*.f64N/A

                        \[\leadsto \frac{\color{blue}{180 \cdot \tan^{-1} \left(\frac{C - \sqrt{B \cdot B + C \cdot C}}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                      4. atan-lowering-atan.f64N/A

                        \[\leadsto \frac{180 \cdot \color{blue}{\tan^{-1} \left(\frac{C - \sqrt{B \cdot B + C \cdot C}}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                      5. /-lowering-/.f64N/A

                        \[\leadsto \frac{180 \cdot \tan^{-1} \color{blue}{\left(\frac{C - \sqrt{B \cdot B + C \cdot C}}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                      6. --lowering--.f64N/A

                        \[\leadsto \frac{180 \cdot \tan^{-1} \left(\frac{\color{blue}{C - \sqrt{B \cdot B + C \cdot C}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                      7. sqrt-lowering-sqrt.f64N/A

                        \[\leadsto \frac{180 \cdot \tan^{-1} \left(\frac{C - \color{blue}{\sqrt{B \cdot B + C \cdot C}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                      8. +-commutativeN/A

                        \[\leadsto \frac{180 \cdot \tan^{-1} \left(\frac{C - \sqrt{\color{blue}{C \cdot C + B \cdot B}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                      9. accelerator-lowering-fma.f64N/A

                        \[\leadsto \frac{180 \cdot \tan^{-1} \left(\frac{C - \sqrt{\color{blue}{\mathsf{fma}\left(C, C, B \cdot B\right)}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                      10. *-lowering-*.f64N/A

                        \[\leadsto \frac{180 \cdot \tan^{-1} \left(\frac{C - \sqrt{\mathsf{fma}\left(C, C, \color{blue}{B \cdot B}\right)}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                      11. PI-lowering-PI.f6445.9

                        \[\leadsto \frac{180 \cdot \tan^{-1} \left(\frac{C - \sqrt{\mathsf{fma}\left(C, C, B \cdot B\right)}}{B}\right)}{\color{blue}{\pi}} \]
                    7. Applied egg-rr45.9%

                      \[\leadsto \color{blue}{\frac{180 \cdot \tan^{-1} \left(\frac{C - \sqrt{\mathsf{fma}\left(C, C, B \cdot B\right)}}{B}\right)}{\pi}} \]
                    8. Taylor expanded in B around -inf

                      \[\leadsto \frac{180 \cdot \tan^{-1} \color{blue}{\left(1 + \frac{C}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                    9. Step-by-step derivation
                      1. +-lowering-+.f64N/A

                        \[\leadsto \frac{180 \cdot \tan^{-1} \color{blue}{\left(1 + \frac{C}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                      2. /-lowering-/.f6450.6

                        \[\leadsto \frac{180 \cdot \tan^{-1} \left(1 + \color{blue}{\frac{C}{B}}\right)}{\pi} \]
                    10. Simplified50.6%

                      \[\leadsto \frac{180 \cdot \tan^{-1} \color{blue}{\left(1 + \frac{C}{B}\right)}}{\pi} \]

                    if 5.50000000000000015e-145 < B

                    1. Initial program 54.2%

                      \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
                    2. Add Preprocessing
                    3. Taylor expanded in B around inf

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C}{B} - \left(1 + \frac{A}{B}\right)\right)}}{\mathsf{PI}\left(\right)} \]
                    4. Step-by-step derivation
                      1. +-commutativeN/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C}{B} - \color{blue}{\left(\frac{A}{B} + 1\right)}\right)}{\mathsf{PI}\left(\right)} \]
                      2. associate--r+N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\left(\frac{C}{B} - \frac{A}{B}\right) - 1\right)}}{\mathsf{PI}\left(\right)} \]
                      3. div-subN/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\color{blue}{\frac{C - A}{B}} - 1\right)}{\mathsf{PI}\left(\right)} \]
                      4. sub-negN/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - A}{B} + \left(\mathsf{neg}\left(1\right)\right)\right)}}{\mathsf{PI}\left(\right)} \]
                      5. metadata-evalN/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - A}{B} + \color{blue}{-1}\right)}{\mathsf{PI}\left(\right)} \]
                      6. +-lowering-+.f64N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - A}{B} + -1\right)}}{\mathsf{PI}\left(\right)} \]
                      7. /-lowering-/.f64N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\color{blue}{\frac{C - A}{B}} + -1\right)}{\mathsf{PI}\left(\right)} \]
                      8. --lowering--.f6471.7

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{\color{blue}{C - A}}{B} + -1\right)}{\pi} \]
                    5. Simplified71.7%

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - A}{B} + -1\right)}}{\pi} \]
                    6. Taylor expanded in C around 0

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 \cdot \left(1 + \frac{A}{B}\right)\right)}}{\mathsf{PI}\left(\right)} \]
                    7. Step-by-step derivation
                      1. distribute-lft-inN/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 \cdot 1 + -1 \cdot \frac{A}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                      2. metadata-evalN/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\color{blue}{-1} + -1 \cdot \frac{A}{B}\right)}{\mathsf{PI}\left(\right)} \]
                      3. mul-1-negN/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-1 + \color{blue}{\left(\mathsf{neg}\left(\frac{A}{B}\right)\right)}\right)}{\mathsf{PI}\left(\right)} \]
                      4. unsub-negN/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 - \frac{A}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                      5. --lowering--.f64N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 - \frac{A}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                      6. /-lowering-/.f6466.0

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-1 - \color{blue}{\frac{A}{B}}\right)}{\pi} \]
                    8. Simplified66.0%

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 - \frac{A}{B}\right)}}{\pi} \]
                  3. Recombined 2 regimes into one program.
                  4. Add Preprocessing

                  Alternative 11: 55.1% accurate, 2.6× speedup?

                  \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;B \leq 7.8 \cdot 10^{-145}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 + \frac{C}{B}\right)}{\pi}\\ \mathbf{else}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(-1 - \frac{A}{B}\right)}{\pi}\\ \end{array} \end{array} \]
                  (FPCore (A B C)
                   :precision binary64
                   (if (<= B 7.8e-145)
                     (* 180.0 (/ (atan (+ 1.0 (/ C B))) PI))
                     (* 180.0 (/ (atan (- -1.0 (/ A B))) PI))))
                  double code(double A, double B, double C) {
                  	double tmp;
                  	if (B <= 7.8e-145) {
                  		tmp = 180.0 * (atan((1.0 + (C / B))) / ((double) M_PI));
                  	} else {
                  		tmp = 180.0 * (atan((-1.0 - (A / B))) / ((double) M_PI));
                  	}
                  	return tmp;
                  }
                  
                  public static double code(double A, double B, double C) {
                  	double tmp;
                  	if (B <= 7.8e-145) {
                  		tmp = 180.0 * (Math.atan((1.0 + (C / B))) / Math.PI);
                  	} else {
                  		tmp = 180.0 * (Math.atan((-1.0 - (A / B))) / Math.PI);
                  	}
                  	return tmp;
                  }
                  
                  def code(A, B, C):
                  	tmp = 0
                  	if B <= 7.8e-145:
                  		tmp = 180.0 * (math.atan((1.0 + (C / B))) / math.pi)
                  	else:
                  		tmp = 180.0 * (math.atan((-1.0 - (A / B))) / math.pi)
                  	return tmp
                  
                  function code(A, B, C)
                  	tmp = 0.0
                  	if (B <= 7.8e-145)
                  		tmp = Float64(180.0 * Float64(atan(Float64(1.0 + Float64(C / B))) / pi));
                  	else
                  		tmp = Float64(180.0 * Float64(atan(Float64(-1.0 - Float64(A / B))) / pi));
                  	end
                  	return tmp
                  end
                  
                  function tmp_2 = code(A, B, C)
                  	tmp = 0.0;
                  	if (B <= 7.8e-145)
                  		tmp = 180.0 * (atan((1.0 + (C / B))) / pi);
                  	else
                  		tmp = 180.0 * (atan((-1.0 - (A / B))) / pi);
                  	end
                  	tmp_2 = tmp;
                  end
                  
                  code[A_, B_, C_] := If[LessEqual[B, 7.8e-145], N[(180.0 * N[(N[ArcTan[N[(1.0 + N[(C / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(-1.0 - N[(A / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]
                  
                  \begin{array}{l}
                  
                  \\
                  \begin{array}{l}
                  \mathbf{if}\;B \leq 7.8 \cdot 10^{-145}:\\
                  \;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 + \frac{C}{B}\right)}{\pi}\\
                  
                  \mathbf{else}:\\
                  \;\;\;\;180 \cdot \frac{\tan^{-1} \left(-1 - \frac{A}{B}\right)}{\pi}\\
                  
                  
                  \end{array}
                  \end{array}
                  
                  Derivation
                  1. Split input into 2 regimes
                  2. if B < 7.80000000000000058e-145

                    1. Initial program 54.0%

                      \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
                    2. Add Preprocessing
                    3. Taylor expanded in A around 0

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - \sqrt{{B}^{2} + {C}^{2}}}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                    4. Step-by-step derivation
                      1. /-lowering-/.f64N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - \sqrt{{B}^{2} + {C}^{2}}}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                      2. --lowering--.f64N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{\color{blue}{C - \sqrt{{B}^{2} + {C}^{2}}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                      3. sqrt-lowering-sqrt.f64N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \color{blue}{\sqrt{{B}^{2} + {C}^{2}}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                      4. unpow2N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\color{blue}{B \cdot B} + {C}^{2}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                      5. accelerator-lowering-fma.f64N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\color{blue}{\mathsf{fma}\left(B, B, {C}^{2}\right)}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                      6. unpow2N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\mathsf{fma}\left(B, B, \color{blue}{C \cdot C}\right)}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                      7. *-lowering-*.f6445.9

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\mathsf{fma}\left(B, B, \color{blue}{C \cdot C}\right)}}{B}\right)}{\pi} \]
                    5. Simplified45.9%

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - \sqrt{\mathsf{fma}\left(B, B, C \cdot C\right)}}{B}\right)}}{\pi} \]
                    6. Taylor expanded in B around -inf

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(1 + \frac{C}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                    7. Step-by-step derivation
                      1. +-lowering-+.f64N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(1 + \frac{C}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                      2. /-lowering-/.f6450.6

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(1 + \color{blue}{\frac{C}{B}}\right)}{\pi} \]
                    8. Simplified50.6%

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(1 + \frac{C}{B}\right)}}{\pi} \]

                    if 7.80000000000000058e-145 < B

                    1. Initial program 54.2%

                      \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
                    2. Add Preprocessing
                    3. Taylor expanded in B around inf

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C}{B} - \left(1 + \frac{A}{B}\right)\right)}}{\mathsf{PI}\left(\right)} \]
                    4. Step-by-step derivation
                      1. +-commutativeN/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C}{B} - \color{blue}{\left(\frac{A}{B} + 1\right)}\right)}{\mathsf{PI}\left(\right)} \]
                      2. associate--r+N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\left(\frac{C}{B} - \frac{A}{B}\right) - 1\right)}}{\mathsf{PI}\left(\right)} \]
                      3. div-subN/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\color{blue}{\frac{C - A}{B}} - 1\right)}{\mathsf{PI}\left(\right)} \]
                      4. sub-negN/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - A}{B} + \left(\mathsf{neg}\left(1\right)\right)\right)}}{\mathsf{PI}\left(\right)} \]
                      5. metadata-evalN/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - A}{B} + \color{blue}{-1}\right)}{\mathsf{PI}\left(\right)} \]
                      6. +-lowering-+.f64N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - A}{B} + -1\right)}}{\mathsf{PI}\left(\right)} \]
                      7. /-lowering-/.f64N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\color{blue}{\frac{C - A}{B}} + -1\right)}{\mathsf{PI}\left(\right)} \]
                      8. --lowering--.f6471.7

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{\color{blue}{C - A}}{B} + -1\right)}{\pi} \]
                    5. Simplified71.7%

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - A}{B} + -1\right)}}{\pi} \]
                    6. Taylor expanded in C around 0

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 \cdot \left(1 + \frac{A}{B}\right)\right)}}{\mathsf{PI}\left(\right)} \]
                    7. Step-by-step derivation
                      1. distribute-lft-inN/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 \cdot 1 + -1 \cdot \frac{A}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                      2. metadata-evalN/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\color{blue}{-1} + -1 \cdot \frac{A}{B}\right)}{\mathsf{PI}\left(\right)} \]
                      3. mul-1-negN/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-1 + \color{blue}{\left(\mathsf{neg}\left(\frac{A}{B}\right)\right)}\right)}{\mathsf{PI}\left(\right)} \]
                      4. unsub-negN/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 - \frac{A}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                      5. --lowering--.f64N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 - \frac{A}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                      6. /-lowering-/.f6466.0

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-1 - \color{blue}{\frac{A}{B}}\right)}{\pi} \]
                    8. Simplified66.0%

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 - \frac{A}{B}\right)}}{\pi} \]
                  3. Recombined 2 regimes into one program.
                  4. Add Preprocessing

                  Alternative 12: 50.7% accurate, 2.6× speedup?

                  \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;B \leq 3.5 \cdot 10^{-140}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 + \frac{C}{B}\right)}{\pi}\\ \mathbf{else}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} -1}{\pi}\\ \end{array} \end{array} \]
                  (FPCore (A B C)
                   :precision binary64
                   (if (<= B 3.5e-140)
                     (* 180.0 (/ (atan (+ 1.0 (/ C B))) PI))
                     (* 180.0 (/ (atan -1.0) PI))))
                  double code(double A, double B, double C) {
                  	double tmp;
                  	if (B <= 3.5e-140) {
                  		tmp = 180.0 * (atan((1.0 + (C / B))) / ((double) M_PI));
                  	} else {
                  		tmp = 180.0 * (atan(-1.0) / ((double) M_PI));
                  	}
                  	return tmp;
                  }
                  
                  public static double code(double A, double B, double C) {
                  	double tmp;
                  	if (B <= 3.5e-140) {
                  		tmp = 180.0 * (Math.atan((1.0 + (C / B))) / Math.PI);
                  	} else {
                  		tmp = 180.0 * (Math.atan(-1.0) / Math.PI);
                  	}
                  	return tmp;
                  }
                  
                  def code(A, B, C):
                  	tmp = 0
                  	if B <= 3.5e-140:
                  		tmp = 180.0 * (math.atan((1.0 + (C / B))) / math.pi)
                  	else:
                  		tmp = 180.0 * (math.atan(-1.0) / math.pi)
                  	return tmp
                  
                  function code(A, B, C)
                  	tmp = 0.0
                  	if (B <= 3.5e-140)
                  		tmp = Float64(180.0 * Float64(atan(Float64(1.0 + Float64(C / B))) / pi));
                  	else
                  		tmp = Float64(180.0 * Float64(atan(-1.0) / pi));
                  	end
                  	return tmp
                  end
                  
                  function tmp_2 = code(A, B, C)
                  	tmp = 0.0;
                  	if (B <= 3.5e-140)
                  		tmp = 180.0 * (atan((1.0 + (C / B))) / pi);
                  	else
                  		tmp = 180.0 * (atan(-1.0) / pi);
                  	end
                  	tmp_2 = tmp;
                  end
                  
                  code[A_, B_, C_] := If[LessEqual[B, 3.5e-140], N[(180.0 * N[(N[ArcTan[N[(1.0 + N[(C / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[-1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]
                  
                  \begin{array}{l}
                  
                  \\
                  \begin{array}{l}
                  \mathbf{if}\;B \leq 3.5 \cdot 10^{-140}:\\
                  \;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 + \frac{C}{B}\right)}{\pi}\\
                  
                  \mathbf{else}:\\
                  \;\;\;\;180 \cdot \frac{\tan^{-1} -1}{\pi}\\
                  
                  
                  \end{array}
                  \end{array}
                  
                  Derivation
                  1. Split input into 2 regimes
                  2. if B < 3.4999999999999998e-140

                    1. Initial program 54.0%

                      \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
                    2. Add Preprocessing
                    3. Taylor expanded in A around 0

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - \sqrt{{B}^{2} + {C}^{2}}}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                    4. Step-by-step derivation
                      1. /-lowering-/.f64N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - \sqrt{{B}^{2} + {C}^{2}}}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                      2. --lowering--.f64N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{\color{blue}{C - \sqrt{{B}^{2} + {C}^{2}}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                      3. sqrt-lowering-sqrt.f64N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \color{blue}{\sqrt{{B}^{2} + {C}^{2}}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                      4. unpow2N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\color{blue}{B \cdot B} + {C}^{2}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                      5. accelerator-lowering-fma.f64N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\color{blue}{\mathsf{fma}\left(B, B, {C}^{2}\right)}}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                      6. unpow2N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\mathsf{fma}\left(B, B, \color{blue}{C \cdot C}\right)}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                      7. *-lowering-*.f6445.9

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(\frac{C - \sqrt{\mathsf{fma}\left(B, B, \color{blue}{C \cdot C}\right)}}{B}\right)}{\pi} \]
                    5. Simplified45.9%

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(\frac{C - \sqrt{\mathsf{fma}\left(B, B, C \cdot C\right)}}{B}\right)}}{\pi} \]
                    6. Taylor expanded in B around -inf

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(1 + \frac{C}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                    7. Step-by-step derivation
                      1. +-lowering-+.f64N/A

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(1 + \frac{C}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                      2. /-lowering-/.f6450.6

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \left(1 + \color{blue}{\frac{C}{B}}\right)}{\pi} \]
                    8. Simplified50.6%

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(1 + \frac{C}{B}\right)}}{\pi} \]

                    if 3.4999999999999998e-140 < B

                    1. Initial program 54.2%

                      \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
                    2. Add Preprocessing
                    3. Taylor expanded in B around inf

                      \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{-1}}{\mathsf{PI}\left(\right)} \]
                    4. Step-by-step derivation
                      1. Simplified51.2%

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{-1}}{\pi} \]
                    5. Recombined 2 regimes into one program.
                    6. Add Preprocessing

                    Alternative 13: 44.7% accurate, 2.8× speedup?

                    \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;B \leq -1.02 \cdot 10^{-72}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} 1}{\pi}\\ \mathbf{elif}\;B \leq 1.06 \cdot 10^{-135}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} 0}{\pi}\\ \mathbf{else}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} -1}{\pi}\\ \end{array} \end{array} \]
                    (FPCore (A B C)
                     :precision binary64
                     (if (<= B -1.02e-72)
                       (* 180.0 (/ (atan 1.0) PI))
                       (if (<= B 1.06e-135)
                         (* 180.0 (/ (atan 0.0) PI))
                         (* 180.0 (/ (atan -1.0) PI)))))
                    double code(double A, double B, double C) {
                    	double tmp;
                    	if (B <= -1.02e-72) {
                    		tmp = 180.0 * (atan(1.0) / ((double) M_PI));
                    	} else if (B <= 1.06e-135) {
                    		tmp = 180.0 * (atan(0.0) / ((double) M_PI));
                    	} else {
                    		tmp = 180.0 * (atan(-1.0) / ((double) M_PI));
                    	}
                    	return tmp;
                    }
                    
                    public static double code(double A, double B, double C) {
                    	double tmp;
                    	if (B <= -1.02e-72) {
                    		tmp = 180.0 * (Math.atan(1.0) / Math.PI);
                    	} else if (B <= 1.06e-135) {
                    		tmp = 180.0 * (Math.atan(0.0) / Math.PI);
                    	} else {
                    		tmp = 180.0 * (Math.atan(-1.0) / Math.PI);
                    	}
                    	return tmp;
                    }
                    
                    def code(A, B, C):
                    	tmp = 0
                    	if B <= -1.02e-72:
                    		tmp = 180.0 * (math.atan(1.0) / math.pi)
                    	elif B <= 1.06e-135:
                    		tmp = 180.0 * (math.atan(0.0) / math.pi)
                    	else:
                    		tmp = 180.0 * (math.atan(-1.0) / math.pi)
                    	return tmp
                    
                    function code(A, B, C)
                    	tmp = 0.0
                    	if (B <= -1.02e-72)
                    		tmp = Float64(180.0 * Float64(atan(1.0) / pi));
                    	elseif (B <= 1.06e-135)
                    		tmp = Float64(180.0 * Float64(atan(0.0) / pi));
                    	else
                    		tmp = Float64(180.0 * Float64(atan(-1.0) / pi));
                    	end
                    	return tmp
                    end
                    
                    function tmp_2 = code(A, B, C)
                    	tmp = 0.0;
                    	if (B <= -1.02e-72)
                    		tmp = 180.0 * (atan(1.0) / pi);
                    	elseif (B <= 1.06e-135)
                    		tmp = 180.0 * (atan(0.0) / pi);
                    	else
                    		tmp = 180.0 * (atan(-1.0) / pi);
                    	end
                    	tmp_2 = tmp;
                    end
                    
                    code[A_, B_, C_] := If[LessEqual[B, -1.02e-72], N[(180.0 * N[(N[ArcTan[1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, 1.06e-135], N[(180.0 * N[(N[ArcTan[0.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[-1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]
                    
                    \begin{array}{l}
                    
                    \\
                    \begin{array}{l}
                    \mathbf{if}\;B \leq -1.02 \cdot 10^{-72}:\\
                    \;\;\;\;180 \cdot \frac{\tan^{-1} 1}{\pi}\\
                    
                    \mathbf{elif}\;B \leq 1.06 \cdot 10^{-135}:\\
                    \;\;\;\;180 \cdot \frac{\tan^{-1} 0}{\pi}\\
                    
                    \mathbf{else}:\\
                    \;\;\;\;180 \cdot \frac{\tan^{-1} -1}{\pi}\\
                    
                    
                    \end{array}
                    \end{array}
                    
                    Derivation
                    1. Split input into 3 regimes
                    2. if B < -1.02e-72

                      1. Initial program 56.5%

                        \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
                      2. Add Preprocessing
                      3. Taylor expanded in B around -inf

                        \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{1}}{\mathsf{PI}\left(\right)} \]
                      4. Step-by-step derivation
                        1. Simplified59.5%

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

                        if -1.02e-72 < B < 1.06000000000000004e-135

                        1. Initial program 50.9%

                          \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
                        2. Add Preprocessing
                        3. Taylor expanded in C around inf

                          \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 \cdot \frac{A + -1 \cdot A}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                        4. Step-by-step derivation
                          1. distribute-rgt1-inN/A

                            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-1 \cdot \frac{\color{blue}{\left(-1 + 1\right) \cdot A}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                          2. metadata-evalN/A

                            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-1 \cdot \frac{\color{blue}{0} \cdot A}{B}\right)}{\mathsf{PI}\left(\right)} \]
                          3. mul0-lftN/A

                            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-1 \cdot \frac{\color{blue}{0}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                          4. div0N/A

                            \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-1 \cdot \color{blue}{0}\right)}{\mathsf{PI}\left(\right)} \]
                          5. metadata-eval31.1

                            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{0}}{\pi} \]
                        5. Simplified31.1%

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

                        if 1.06000000000000004e-135 < B

                        1. Initial program 54.7%

                          \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
                        2. Add Preprocessing
                        3. Taylor expanded in B around inf

                          \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{-1}}{\mathsf{PI}\left(\right)} \]
                        4. Step-by-step derivation
                          1. Simplified51.7%

                            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{-1}}{\pi} \]
                        5. Recombined 3 regimes into one program.
                        6. Add Preprocessing

                        Alternative 14: 29.0% accurate, 2.9× speedup?

                        \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;B \leq 1.15 \cdot 10^{-138}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} 0}{\pi}\\ \mathbf{else}:\\ \;\;\;\;180 \cdot \frac{\tan^{-1} -1}{\pi}\\ \end{array} \end{array} \]
                        (FPCore (A B C)
                         :precision binary64
                         (if (<= B 1.15e-138)
                           (* 180.0 (/ (atan 0.0) PI))
                           (* 180.0 (/ (atan -1.0) PI))))
                        double code(double A, double B, double C) {
                        	double tmp;
                        	if (B <= 1.15e-138) {
                        		tmp = 180.0 * (atan(0.0) / ((double) M_PI));
                        	} else {
                        		tmp = 180.0 * (atan(-1.0) / ((double) M_PI));
                        	}
                        	return tmp;
                        }
                        
                        public static double code(double A, double B, double C) {
                        	double tmp;
                        	if (B <= 1.15e-138) {
                        		tmp = 180.0 * (Math.atan(0.0) / Math.PI);
                        	} else {
                        		tmp = 180.0 * (Math.atan(-1.0) / Math.PI);
                        	}
                        	return tmp;
                        }
                        
                        def code(A, B, C):
                        	tmp = 0
                        	if B <= 1.15e-138:
                        		tmp = 180.0 * (math.atan(0.0) / math.pi)
                        	else:
                        		tmp = 180.0 * (math.atan(-1.0) / math.pi)
                        	return tmp
                        
                        function code(A, B, C)
                        	tmp = 0.0
                        	if (B <= 1.15e-138)
                        		tmp = Float64(180.0 * Float64(atan(0.0) / pi));
                        	else
                        		tmp = Float64(180.0 * Float64(atan(-1.0) / pi));
                        	end
                        	return tmp
                        end
                        
                        function tmp_2 = code(A, B, C)
                        	tmp = 0.0;
                        	if (B <= 1.15e-138)
                        		tmp = 180.0 * (atan(0.0) / pi);
                        	else
                        		tmp = 180.0 * (atan(-1.0) / pi);
                        	end
                        	tmp_2 = tmp;
                        end
                        
                        code[A_, B_, C_] := If[LessEqual[B, 1.15e-138], N[(180.0 * N[(N[ArcTan[0.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[-1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]
                        
                        \begin{array}{l}
                        
                        \\
                        \begin{array}{l}
                        \mathbf{if}\;B \leq 1.15 \cdot 10^{-138}:\\
                        \;\;\;\;180 \cdot \frac{\tan^{-1} 0}{\pi}\\
                        
                        \mathbf{else}:\\
                        \;\;\;\;180 \cdot \frac{\tan^{-1} -1}{\pi}\\
                        
                        
                        \end{array}
                        \end{array}
                        
                        Derivation
                        1. Split input into 2 regimes
                        2. if B < 1.14999999999999995e-138

                          1. Initial program 53.6%

                            \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
                          2. Add Preprocessing
                          3. Taylor expanded in C around inf

                            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{\left(-1 \cdot \frac{A + -1 \cdot A}{B}\right)}}{\mathsf{PI}\left(\right)} \]
                          4. Step-by-step derivation
                            1. distribute-rgt1-inN/A

                              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-1 \cdot \frac{\color{blue}{\left(-1 + 1\right) \cdot A}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                            2. metadata-evalN/A

                              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-1 \cdot \frac{\color{blue}{0} \cdot A}{B}\right)}{\mathsf{PI}\left(\right)} \]
                            3. mul0-lftN/A

                              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-1 \cdot \frac{\color{blue}{0}}{B}\right)}{\mathsf{PI}\left(\right)} \]
                            4. div0N/A

                              \[\leadsto 180 \cdot \frac{\tan^{-1} \left(-1 \cdot \color{blue}{0}\right)}{\mathsf{PI}\left(\right)} \]
                            5. metadata-eval17.3

                              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{0}}{\pi} \]
                          5. Simplified17.3%

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

                          if 1.14999999999999995e-138 < B

                          1. Initial program 54.7%

                            \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
                          2. Add Preprocessing
                          3. Taylor expanded in B around inf

                            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{-1}}{\mathsf{PI}\left(\right)} \]
                          4. Step-by-step derivation
                            1. Simplified51.7%

                              \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{-1}}{\pi} \]
                          5. Recombined 2 regimes into one program.
                          6. Add Preprocessing

                          Alternative 15: 20.4% accurate, 3.1× speedup?

                          \[\begin{array}{l} \\ 180 \cdot \frac{\tan^{-1} -1}{\pi} \end{array} \]
                          (FPCore (A B C) :precision binary64 (* 180.0 (/ (atan -1.0) PI)))
                          double code(double A, double B, double C) {
                          	return 180.0 * (atan(-1.0) / ((double) M_PI));
                          }
                          
                          public static double code(double A, double B, double C) {
                          	return 180.0 * (Math.atan(-1.0) / Math.PI);
                          }
                          
                          def code(A, B, C):
                          	return 180.0 * (math.atan(-1.0) / math.pi)
                          
                          function code(A, B, C)
                          	return Float64(180.0 * Float64(atan(-1.0) / pi))
                          end
                          
                          function tmp = code(A, B, C)
                          	tmp = 180.0 * (atan(-1.0) / pi);
                          end
                          
                          code[A_, B_, C_] := N[(180.0 * N[(N[ArcTan[-1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]
                          
                          \begin{array}{l}
                          
                          \\
                          180 \cdot \frac{\tan^{-1} -1}{\pi}
                          \end{array}
                          
                          Derivation
                          1. Initial program 54.1%

                            \[180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi} \]
                          2. Add Preprocessing
                          3. Taylor expanded in B around inf

                            \[\leadsto 180 \cdot \frac{\tan^{-1} \color{blue}{-1}}{\mathsf{PI}\left(\right)} \]
                          4. Step-by-step derivation
                            1. Simplified23.4%

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

                            Reproduce

                            ?
                            herbie shell --seed 2024204 
                            (FPCore (A B C)
                              :name "ABCF->ab-angle angle"
                              :precision binary64
                              (* 180.0 (/ (atan (* (/ 1.0 B) (- (- C A) (sqrt (+ (pow (- A C) 2.0) (pow B 2.0)))))) PI)))