
(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:
Herbie found 26 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(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}
(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 (or (<= t_0 -2e-29) (not (<= t_0 0.0)))
(* 180.0 (/ (atan (/ (- (- C A) (hypot B (- A C))) B)) PI))
(/ (* 180.0 (atan (/ 1.0 (+ (* 2.0 (/ A B)) (* -2.0 (/ C 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 <= -2e-29) || !(t_0 <= 0.0)) {
tmp = 180.0 * (atan((((C - A) - hypot(B, (A - C))) / B)) / ((double) M_PI));
} else {
tmp = (180.0 * atan((1.0 / ((2.0 * (A / B)) + (-2.0 * (C / 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 <= -2e-29) || !(t_0 <= 0.0)) {
tmp = 180.0 * (Math.atan((((C - A) - Math.hypot(B, (A - C))) / B)) / Math.PI);
} else {
tmp = (180.0 * Math.atan((1.0 / ((2.0 * (A / B)) + (-2.0 * (C / 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 <= -2e-29) or not (t_0 <= 0.0): tmp = 180.0 * (math.atan((((C - A) - math.hypot(B, (A - C))) / B)) / math.pi) else: tmp = (180.0 * math.atan((1.0 / ((2.0 * (A / B)) + (-2.0 * (C / 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 <= -2e-29) || !(t_0 <= 0.0)) tmp = Float64(180.0 * Float64(atan(Float64(Float64(Float64(C - A) - hypot(B, Float64(A - C))) / B)) / pi)); else tmp = Float64(Float64(180.0 * atan(Float64(1.0 / Float64(Float64(2.0 * Float64(A / B)) + Float64(-2.0 * Float64(C / 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 <= -2e-29) || ~((t_0 <= 0.0))) tmp = 180.0 * (atan((((C - A) - hypot(B, (A - C))) / B)) / pi); else tmp = (180.0 * atan((1.0 / ((2.0 * (A / B)) + (-2.0 * (C / 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[Or[LessEqual[t$95$0, -2e-29], N[Not[LessEqual[t$95$0, 0.0]], $MachinePrecision]], N[(180.0 * N[(N[ArcTan[N[(N[(N[(C - A), $MachinePrecision] - N[Sqrt[B ^ 2 + N[(A - C), $MachinePrecision] ^ 2], $MachinePrecision]), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(N[(180.0 * N[ArcTan[N[(1.0 / N[(N[(2.0 * N[(A / B), $MachinePrecision]), $MachinePrecision] + N[(-2.0 * N[(C / B), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $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 -2 \cdot 10^{-29} \lor \neg \left(t_0 \leq 0\right):\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{\left(C - A\right) - \mathsf{hypot}\left(B, A - C\right)}{B}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{1}{2 \cdot \frac{A}{B} + -2 \cdot \frac{C}{B}}\right)}{\pi}\\
\end{array}
\end{array}
if (*.f64 (/.f64 1 B) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (pow.f64 B 2))))) < -1.99999999999999989e-29 or 0.0 < (*.f64 (/.f64 1 B) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (pow.f64 B 2))))) Initial program 58.4%
associate-*l/58.4%
*-lft-identity58.4%
+-commutative58.4%
unpow258.4%
unpow258.4%
hypot-def90.5%
Simplified90.5%
if -1.99999999999999989e-29 < (*.f64 (/.f64 1 B) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) 2) (pow.f64 B 2))))) < 0.0Initial program 23.5%
associate-*r/23.5%
unpow223.5%
Simplified23.5%
*-commutative23.5%
associate--l-13.2%
+-commutative13.2%
unpow213.2%
hypot-udef13.2%
div-inv13.2%
clear-num13.2%
Applied egg-rr13.2%
Taylor expanded in A around -inf 97.3%
Final simplification91.3%
(FPCore (A B C)
:precision binary64
(if (<= A -1.32e+36)
(/ (* 180.0 (atan (/ 1.0 (+ (* 2.0 (/ A B)) (* -2.0 (/ C B)))))) PI)
(if (<= A 1.55e+60)
(* (/ 180.0 PI) (atan (/ (- C (hypot B C)) B)))
(* 180.0 (/ (atan (/ (- (- A) (hypot A B)) B)) PI)))))
double code(double A, double B, double C) {
double tmp;
if (A <= -1.32e+36) {
tmp = (180.0 * atan((1.0 / ((2.0 * (A / B)) + (-2.0 * (C / B)))))) / ((double) M_PI);
} else if (A <= 1.55e+60) {
tmp = (180.0 / ((double) M_PI)) * atan(((C - hypot(B, C)) / B));
} else {
tmp = 180.0 * (atan(((-A - hypot(A, B)) / B)) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (A <= -1.32e+36) {
tmp = (180.0 * Math.atan((1.0 / ((2.0 * (A / B)) + (-2.0 * (C / B)))))) / Math.PI;
} else if (A <= 1.55e+60) {
tmp = (180.0 / Math.PI) * Math.atan(((C - Math.hypot(B, C)) / B));
} else {
tmp = 180.0 * (Math.atan(((-A - Math.hypot(A, B)) / B)) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if A <= -1.32e+36: tmp = (180.0 * math.atan((1.0 / ((2.0 * (A / B)) + (-2.0 * (C / B)))))) / math.pi elif A <= 1.55e+60: tmp = (180.0 / math.pi) * math.atan(((C - math.hypot(B, C)) / B)) else: tmp = 180.0 * (math.atan(((-A - math.hypot(A, B)) / B)) / math.pi) return tmp
function code(A, B, C) tmp = 0.0 if (A <= -1.32e+36) tmp = Float64(Float64(180.0 * atan(Float64(1.0 / Float64(Float64(2.0 * Float64(A / B)) + Float64(-2.0 * Float64(C / B)))))) / pi); elseif (A <= 1.55e+60) tmp = Float64(Float64(180.0 / pi) * atan(Float64(Float64(C - hypot(B, C)) / B))); else tmp = Float64(180.0 * Float64(atan(Float64(Float64(Float64(-A) - hypot(A, B)) / B)) / pi)); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (A <= -1.32e+36) tmp = (180.0 * atan((1.0 / ((2.0 * (A / B)) + (-2.0 * (C / B)))))) / pi; elseif (A <= 1.55e+60) tmp = (180.0 / pi) * atan(((C - hypot(B, C)) / B)); else tmp = 180.0 * (atan(((-A - hypot(A, B)) / B)) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[A, -1.32e+36], N[(N[(180.0 * N[ArcTan[N[(1.0 / N[(N[(2.0 * N[(A / B), $MachinePrecision]), $MachinePrecision] + N[(-2.0 * N[(C / B), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], If[LessEqual[A, 1.55e+60], N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(N[(C - N[Sqrt[B ^ 2 + C ^ 2], $MachinePrecision]), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(N[((-A) - N[Sqrt[A ^ 2 + B ^ 2], $MachinePrecision]), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;A \leq -1.32 \cdot 10^{+36}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{1}{2 \cdot \frac{A}{B} + -2 \cdot \frac{C}{B}}\right)}{\pi}\\
\mathbf{elif}\;A \leq 1.55 \cdot 10^{+60}:\\
\;\;\;\;\frac{180}{\pi} \cdot \tan^{-1} \left(\frac{C - \mathsf{hypot}\left(B, C\right)}{B}\right)\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{\left(-A\right) - \mathsf{hypot}\left(A, B\right)}{B}\right)}{\pi}\\
\end{array}
\end{array}
if A < -1.3200000000000001e36Initial program 18.3%
associate-*r/18.3%
unpow218.3%
Simplified18.3%
*-commutative18.3%
associate--l-11.8%
+-commutative11.8%
unpow211.8%
hypot-udef36.0%
div-inv36.0%
clear-num36.0%
Applied egg-rr36.0%
Taylor expanded in A around -inf 79.5%
if -1.3200000000000001e36 < A < 1.55e60Initial program 58.2%
associate-*r/58.2%
associate-*l/58.2%
associate-*l/58.2%
*-lft-identity58.2%
sub-neg58.2%
associate-+l-58.1%
sub-neg58.1%
remove-double-neg58.1%
+-commutative58.1%
unpow258.1%
unpow258.1%
hypot-def82.7%
Simplified82.7%
Taylor expanded in A around 0 56.4%
unpow256.4%
unpow256.4%
hypot-def81.0%
Simplified81.0%
if 1.55e60 < A Initial program 77.5%
associate-*l/77.5%
*-lft-identity77.5%
+-commutative77.5%
unpow277.5%
unpow277.5%
hypot-def100.0%
Simplified100.0%
Taylor expanded in C around 0 77.5%
mul-1-neg77.5%
+-commutative77.5%
unpow277.5%
unpow277.5%
hypot-def92.4%
Simplified92.4%
Final simplification82.9%
(FPCore (A B C)
:precision binary64
(if (<= C -1.42e-67)
(* (/ 180.0 PI) (atan (/ (- C (+ A (hypot A B))) B)))
(if (<= C 2.55e+42)
(* 180.0 (/ (atan (/ (- (- A) (hypot A B)) B)) PI))
(/ (* 180.0 (atan (/ 1.0 (+ (* 2.0 (/ A B)) (* -2.0 (/ C B)))))) PI))))
double code(double A, double B, double C) {
double tmp;
if (C <= -1.42e-67) {
tmp = (180.0 / ((double) M_PI)) * atan(((C - (A + hypot(A, B))) / B));
} else if (C <= 2.55e+42) {
tmp = 180.0 * (atan(((-A - hypot(A, B)) / B)) / ((double) M_PI));
} else {
tmp = (180.0 * atan((1.0 / ((2.0 * (A / B)) + (-2.0 * (C / B)))))) / ((double) M_PI);
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (C <= -1.42e-67) {
tmp = (180.0 / Math.PI) * Math.atan(((C - (A + Math.hypot(A, B))) / B));
} else if (C <= 2.55e+42) {
tmp = 180.0 * (Math.atan(((-A - Math.hypot(A, B)) / B)) / Math.PI);
} else {
tmp = (180.0 * Math.atan((1.0 / ((2.0 * (A / B)) + (-2.0 * (C / B)))))) / Math.PI;
}
return tmp;
}
def code(A, B, C): tmp = 0 if C <= -1.42e-67: tmp = (180.0 / math.pi) * math.atan(((C - (A + math.hypot(A, B))) / B)) elif C <= 2.55e+42: tmp = 180.0 * (math.atan(((-A - math.hypot(A, B)) / B)) / math.pi) else: tmp = (180.0 * math.atan((1.0 / ((2.0 * (A / B)) + (-2.0 * (C / B)))))) / math.pi return tmp
function code(A, B, C) tmp = 0.0 if (C <= -1.42e-67) tmp = Float64(Float64(180.0 / pi) * atan(Float64(Float64(C - Float64(A + hypot(A, B))) / B))); elseif (C <= 2.55e+42) tmp = Float64(180.0 * Float64(atan(Float64(Float64(Float64(-A) - hypot(A, B)) / B)) / pi)); else tmp = Float64(Float64(180.0 * atan(Float64(1.0 / Float64(Float64(2.0 * Float64(A / B)) + Float64(-2.0 * Float64(C / B)))))) / pi); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (C <= -1.42e-67) tmp = (180.0 / pi) * atan(((C - (A + hypot(A, B))) / B)); elseif (C <= 2.55e+42) tmp = 180.0 * (atan(((-A - hypot(A, B)) / B)) / pi); else tmp = (180.0 * atan((1.0 / ((2.0 * (A / B)) + (-2.0 * (C / B)))))) / pi; end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[C, -1.42e-67], N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(N[(C - N[(A + N[Sqrt[A ^ 2 + B ^ 2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], If[LessEqual[C, 2.55e+42], N[(180.0 * N[(N[ArcTan[N[(N[((-A) - N[Sqrt[A ^ 2 + B ^ 2], $MachinePrecision]), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(N[(180.0 * N[ArcTan[N[(1.0 / N[(N[(2.0 * N[(A / B), $MachinePrecision]), $MachinePrecision] + N[(-2.0 * N[(C / B), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;C \leq -1.42 \cdot 10^{-67}:\\
\;\;\;\;\frac{180}{\pi} \cdot \tan^{-1} \left(\frac{C - \left(A + \mathsf{hypot}\left(A, B\right)\right)}{B}\right)\\
\mathbf{elif}\;C \leq 2.55 \cdot 10^{+42}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{\left(-A\right) - \mathsf{hypot}\left(A, B\right)}{B}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{1}{2 \cdot \frac{A}{B} + -2 \cdot \frac{C}{B}}\right)}{\pi}\\
\end{array}
\end{array}
if C < -1.42000000000000004e-67Initial program 77.4%
associate-*r/77.4%
associate-*l/77.4%
associate-*l/77.4%
*-lft-identity77.4%
sub-neg77.4%
associate-+l-77.3%
sub-neg77.3%
remove-double-neg77.3%
+-commutative77.3%
unpow277.3%
unpow277.3%
hypot-def93.5%
Simplified93.5%
Taylor expanded in C around 0 76.9%
+-commutative76.9%
unpow276.9%
unpow276.9%
hypot-def93.1%
Simplified93.1%
if -1.42000000000000004e-67 < C < 2.55e42Initial program 57.0%
associate-*l/57.0%
*-lft-identity57.0%
+-commutative57.0%
unpow257.0%
unpow257.0%
hypot-def83.3%
Simplified83.3%
Taylor expanded in C around 0 54.9%
mul-1-neg54.9%
+-commutative54.9%
unpow254.9%
unpow254.9%
hypot-def81.2%
Simplified81.2%
if 2.55e42 < C Initial program 18.9%
associate-*r/18.9%
unpow218.9%
Simplified18.9%
*-commutative18.9%
associate--l-16.9%
+-commutative16.9%
unpow216.9%
hypot-udef57.6%
div-inv57.6%
clear-num57.6%
Applied egg-rr57.6%
Taylor expanded in A around -inf 77.3%
Final simplification83.8%
(FPCore (A B C)
:precision binary64
(if (<= A -3.6e+35)
(/ (* 180.0 (atan (/ 1.0 (+ (* 2.0 (/ A B)) (* -2.0 (/ C B)))))) PI)
(if (<= A 3.9e+90)
(* (/ 180.0 PI) (atan (/ (- C (hypot B C)) B)))
(* 180.0 (/ (atan (/ (- (+ B C) A) B)) PI)))))
double code(double A, double B, double C) {
double tmp;
if (A <= -3.6e+35) {
tmp = (180.0 * atan((1.0 / ((2.0 * (A / B)) + (-2.0 * (C / B)))))) / ((double) M_PI);
} else if (A <= 3.9e+90) {
tmp = (180.0 / ((double) M_PI)) * atan(((C - hypot(B, C)) / B));
} else {
tmp = 180.0 * (atan((((B + C) - A) / B)) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (A <= -3.6e+35) {
tmp = (180.0 * Math.atan((1.0 / ((2.0 * (A / B)) + (-2.0 * (C / B)))))) / Math.PI;
} else if (A <= 3.9e+90) {
tmp = (180.0 / Math.PI) * Math.atan(((C - Math.hypot(B, C)) / B));
} else {
tmp = 180.0 * (Math.atan((((B + C) - A) / B)) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if A <= -3.6e+35: tmp = (180.0 * math.atan((1.0 / ((2.0 * (A / B)) + (-2.0 * (C / B)))))) / math.pi elif A <= 3.9e+90: tmp = (180.0 / math.pi) * math.atan(((C - math.hypot(B, C)) / B)) else: tmp = 180.0 * (math.atan((((B + C) - A) / B)) / math.pi) return tmp
function code(A, B, C) tmp = 0.0 if (A <= -3.6e+35) tmp = Float64(Float64(180.0 * atan(Float64(1.0 / Float64(Float64(2.0 * Float64(A / B)) + Float64(-2.0 * Float64(C / B)))))) / pi); elseif (A <= 3.9e+90) tmp = Float64(Float64(180.0 / pi) * atan(Float64(Float64(C - hypot(B, C)) / B))); else tmp = Float64(180.0 * Float64(atan(Float64(Float64(Float64(B + C) - A) / B)) / pi)); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (A <= -3.6e+35) tmp = (180.0 * atan((1.0 / ((2.0 * (A / B)) + (-2.0 * (C / B)))))) / pi; elseif (A <= 3.9e+90) tmp = (180.0 / pi) * atan(((C - hypot(B, C)) / B)); else tmp = 180.0 * (atan((((B + C) - A) / B)) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[A, -3.6e+35], N[(N[(180.0 * N[ArcTan[N[(1.0 / N[(N[(2.0 * N[(A / B), $MachinePrecision]), $MachinePrecision] + N[(-2.0 * N[(C / B), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], If[LessEqual[A, 3.9e+90], N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(N[(C - N[Sqrt[B ^ 2 + C ^ 2], $MachinePrecision]), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(N[(N[(B + C), $MachinePrecision] - A), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;A \leq -3.6 \cdot 10^{+35}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{1}{2 \cdot \frac{A}{B} + -2 \cdot \frac{C}{B}}\right)}{\pi}\\
\mathbf{elif}\;A \leq 3.9 \cdot 10^{+90}:\\
\;\;\;\;\frac{180}{\pi} \cdot \tan^{-1} \left(\frac{C - \mathsf{hypot}\left(B, C\right)}{B}\right)\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{\left(B + C\right) - A}{B}\right)}{\pi}\\
\end{array}
\end{array}
if A < -3.6e35Initial program 18.3%
associate-*r/18.3%
unpow218.3%
Simplified18.3%
*-commutative18.3%
associate--l-11.8%
+-commutative11.8%
unpow211.8%
hypot-udef36.0%
div-inv36.0%
clear-num36.0%
Applied egg-rr36.0%
Taylor expanded in A around -inf 79.5%
if -3.6e35 < A < 3.9000000000000002e90Initial program 57.7%
associate-*r/57.7%
associate-*l/57.7%
associate-*l/57.7%
*-lft-identity57.7%
sub-neg57.7%
associate-+l-57.7%
sub-neg57.7%
remove-double-neg57.7%
+-commutative57.7%
unpow257.7%
unpow257.7%
hypot-def83.5%
Simplified83.5%
Taylor expanded in A around 0 55.6%
unpow255.6%
unpow255.6%
hypot-def81.5%
Simplified81.5%
if 3.9000000000000002e90 < A Initial program 83.0%
associate-*l/83.0%
*-lft-identity83.0%
+-commutative83.0%
unpow283.0%
unpow283.0%
hypot-def100.0%
Simplified100.0%
Taylor expanded in B around -inf 88.1%
Final simplification82.2%
(FPCore (A B C)
:precision binary64
(if (<= A -3.1e+36)
(/ (* 180.0 (atan (/ 1.0 (+ (* 2.0 (/ A B)) (* -2.0 (/ C B)))))) PI)
(if (<= A 1.05e+58)
(* (/ 180.0 PI) (atan (/ (- C (hypot B C)) B)))
(/ (* -180.0 (atan (/ (+ A (hypot A B)) B))) PI))))
double code(double A, double B, double C) {
double tmp;
if (A <= -3.1e+36) {
tmp = (180.0 * atan((1.0 / ((2.0 * (A / B)) + (-2.0 * (C / B)))))) / ((double) M_PI);
} else if (A <= 1.05e+58) {
tmp = (180.0 / ((double) M_PI)) * atan(((C - hypot(B, C)) / B));
} else {
tmp = (-180.0 * atan(((A + hypot(A, B)) / B))) / ((double) M_PI);
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (A <= -3.1e+36) {
tmp = (180.0 * Math.atan((1.0 / ((2.0 * (A / B)) + (-2.0 * (C / B)))))) / Math.PI;
} else if (A <= 1.05e+58) {
tmp = (180.0 / Math.PI) * Math.atan(((C - Math.hypot(B, C)) / B));
} else {
tmp = (-180.0 * Math.atan(((A + Math.hypot(A, B)) / B))) / Math.PI;
}
return tmp;
}
def code(A, B, C): tmp = 0 if A <= -3.1e+36: tmp = (180.0 * math.atan((1.0 / ((2.0 * (A / B)) + (-2.0 * (C / B)))))) / math.pi elif A <= 1.05e+58: tmp = (180.0 / math.pi) * math.atan(((C - math.hypot(B, C)) / B)) else: tmp = (-180.0 * math.atan(((A + math.hypot(A, B)) / B))) / math.pi return tmp
function code(A, B, C) tmp = 0.0 if (A <= -3.1e+36) tmp = Float64(Float64(180.0 * atan(Float64(1.0 / Float64(Float64(2.0 * Float64(A / B)) + Float64(-2.0 * Float64(C / B)))))) / pi); elseif (A <= 1.05e+58) tmp = Float64(Float64(180.0 / pi) * atan(Float64(Float64(C - hypot(B, C)) / B))); else tmp = Float64(Float64(-180.0 * atan(Float64(Float64(A + hypot(A, B)) / B))) / pi); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (A <= -3.1e+36) tmp = (180.0 * atan((1.0 / ((2.0 * (A / B)) + (-2.0 * (C / B)))))) / pi; elseif (A <= 1.05e+58) tmp = (180.0 / pi) * atan(((C - hypot(B, C)) / B)); else tmp = (-180.0 * atan(((A + hypot(A, B)) / B))) / pi; end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[A, -3.1e+36], N[(N[(180.0 * N[ArcTan[N[(1.0 / N[(N[(2.0 * N[(A / B), $MachinePrecision]), $MachinePrecision] + N[(-2.0 * N[(C / B), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], If[LessEqual[A, 1.05e+58], N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(N[(C - N[Sqrt[B ^ 2 + C ^ 2], $MachinePrecision]), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], N[(N[(-180.0 * N[ArcTan[N[(N[(A + N[Sqrt[A ^ 2 + B ^ 2], $MachinePrecision]), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;A \leq -3.1 \cdot 10^{+36}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{1}{2 \cdot \frac{A}{B} + -2 \cdot \frac{C}{B}}\right)}{\pi}\\
\mathbf{elif}\;A \leq 1.05 \cdot 10^{+58}:\\
\;\;\;\;\frac{180}{\pi} \cdot \tan^{-1} \left(\frac{C - \mathsf{hypot}\left(B, C\right)}{B}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{-180 \cdot \tan^{-1} \left(\frac{A + \mathsf{hypot}\left(A, B\right)}{B}\right)}{\pi}\\
\end{array}
\end{array}
if A < -3.0999999999999999e36Initial program 18.3%
associate-*r/18.3%
unpow218.3%
Simplified18.3%
*-commutative18.3%
associate--l-11.8%
+-commutative11.8%
unpow211.8%
hypot-udef36.0%
div-inv36.0%
clear-num36.0%
Applied egg-rr36.0%
Taylor expanded in A around -inf 79.5%
if -3.0999999999999999e36 < A < 1.05000000000000006e58Initial program 58.2%
associate-*r/58.2%
associate-*l/58.2%
associate-*l/58.2%
*-lft-identity58.2%
sub-neg58.2%
associate-+l-58.1%
sub-neg58.1%
remove-double-neg58.1%
+-commutative58.1%
unpow258.1%
unpow258.1%
hypot-def82.7%
Simplified82.7%
Taylor expanded in A around 0 56.4%
unpow256.4%
unpow256.4%
hypot-def81.0%
Simplified81.0%
if 1.05000000000000006e58 < A Initial program 77.5%
associate-*r/77.5%
unpow277.5%
Simplified77.5%
*-commutative77.5%
associate--l-77.5%
+-commutative77.5%
unpow277.5%
hypot-udef99.9%
div-inv99.9%
clear-num100.0%
Applied egg-rr100.0%
Taylor expanded in C around 0 77.5%
associate-*r/77.5%
mul-1-neg77.5%
+-commutative77.5%
unpow277.5%
unpow277.5%
hypot-def92.3%
Simplified92.3%
expm1-log1p-u52.3%
expm1-udef52.3%
distribute-frac-neg52.3%
atan-neg52.3%
Applied egg-rr52.3%
expm1-def52.3%
expm1-log1p92.3%
distribute-rgt-neg-out92.3%
distribute-lft-neg-in92.3%
metadata-eval92.3%
Simplified92.3%
Final simplification82.9%
(FPCore (A B C)
:precision binary64
(let* ((t_0 (/ 180.0 (/ PI (atan (* -0.5 (/ B C))))))
(t_1 (* (/ 180.0 PI) (atan (/ C B))))
(t_2 (/ (* 180.0 (atan (/ 1.0 (+ (/ (- A C) B) 1.0)))) PI)))
(if (<= B -4.2e-124)
(* (/ 180.0 PI) (atan (/ (- C (- A B)) B)))
(if (<= B -1.65e-197)
t_0
(if (<= B -9.4e-237)
(* 180.0 (/ (atan (* 0.5 (/ B A))) PI))
(if (<= B -7.4e-295)
t_0
(if (<= B 1.05e-307)
t_1
(if (<= B 1.38e-250)
t_2
(if (<= B 1e-187)
t_1
(if (<= B 3.8e-169)
t_2
(if (<= B 6.5e-105)
(*
180.0
(/ (atan (* 0.5 (+ (/ B A) (/ (* B C) (* A A))))) PI))
(* 180.0 (/ (atan (/ (- (- C B) A) B)) PI)))))))))))))
double code(double A, double B, double C) {
double t_0 = 180.0 / (((double) M_PI) / atan((-0.5 * (B / C))));
double t_1 = (180.0 / ((double) M_PI)) * atan((C / B));
double t_2 = (180.0 * atan((1.0 / (((A - C) / B) + 1.0)))) / ((double) M_PI);
double tmp;
if (B <= -4.2e-124) {
tmp = (180.0 / ((double) M_PI)) * atan(((C - (A - B)) / B));
} else if (B <= -1.65e-197) {
tmp = t_0;
} else if (B <= -9.4e-237) {
tmp = 180.0 * (atan((0.5 * (B / A))) / ((double) M_PI));
} else if (B <= -7.4e-295) {
tmp = t_0;
} else if (B <= 1.05e-307) {
tmp = t_1;
} else if (B <= 1.38e-250) {
tmp = t_2;
} else if (B <= 1e-187) {
tmp = t_1;
} else if (B <= 3.8e-169) {
tmp = t_2;
} else if (B <= 6.5e-105) {
tmp = 180.0 * (atan((0.5 * ((B / A) + ((B * C) / (A * A))))) / ((double) M_PI));
} else {
tmp = 180.0 * (atan((((C - B) - A) / B)) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double t_0 = 180.0 / (Math.PI / Math.atan((-0.5 * (B / C))));
double t_1 = (180.0 / Math.PI) * Math.atan((C / B));
double t_2 = (180.0 * Math.atan((1.0 / (((A - C) / B) + 1.0)))) / Math.PI;
double tmp;
if (B <= -4.2e-124) {
tmp = (180.0 / Math.PI) * Math.atan(((C - (A - B)) / B));
} else if (B <= -1.65e-197) {
tmp = t_0;
} else if (B <= -9.4e-237) {
tmp = 180.0 * (Math.atan((0.5 * (B / A))) / Math.PI);
} else if (B <= -7.4e-295) {
tmp = t_0;
} else if (B <= 1.05e-307) {
tmp = t_1;
} else if (B <= 1.38e-250) {
tmp = t_2;
} else if (B <= 1e-187) {
tmp = t_1;
} else if (B <= 3.8e-169) {
tmp = t_2;
} else if (B <= 6.5e-105) {
tmp = 180.0 * (Math.atan((0.5 * ((B / A) + ((B * C) / (A * A))))) / Math.PI);
} else {
tmp = 180.0 * (Math.atan((((C - B) - A) / B)) / Math.PI);
}
return tmp;
}
def code(A, B, C): t_0 = 180.0 / (math.pi / math.atan((-0.5 * (B / C)))) t_1 = (180.0 / math.pi) * math.atan((C / B)) t_2 = (180.0 * math.atan((1.0 / (((A - C) / B) + 1.0)))) / math.pi tmp = 0 if B <= -4.2e-124: tmp = (180.0 / math.pi) * math.atan(((C - (A - B)) / B)) elif B <= -1.65e-197: tmp = t_0 elif B <= -9.4e-237: tmp = 180.0 * (math.atan((0.5 * (B / A))) / math.pi) elif B <= -7.4e-295: tmp = t_0 elif B <= 1.05e-307: tmp = t_1 elif B <= 1.38e-250: tmp = t_2 elif B <= 1e-187: tmp = t_1 elif B <= 3.8e-169: tmp = t_2 elif B <= 6.5e-105: tmp = 180.0 * (math.atan((0.5 * ((B / A) + ((B * C) / (A * A))))) / math.pi) else: tmp = 180.0 * (math.atan((((C - B) - A) / B)) / math.pi) return tmp
function code(A, B, C) t_0 = Float64(180.0 / Float64(pi / atan(Float64(-0.5 * Float64(B / C))))) t_1 = Float64(Float64(180.0 / pi) * atan(Float64(C / B))) t_2 = Float64(Float64(180.0 * atan(Float64(1.0 / Float64(Float64(Float64(A - C) / B) + 1.0)))) / pi) tmp = 0.0 if (B <= -4.2e-124) tmp = Float64(Float64(180.0 / pi) * atan(Float64(Float64(C - Float64(A - B)) / B))); elseif (B <= -1.65e-197) tmp = t_0; elseif (B <= -9.4e-237) tmp = Float64(180.0 * Float64(atan(Float64(0.5 * Float64(B / A))) / pi)); elseif (B <= -7.4e-295) tmp = t_0; elseif (B <= 1.05e-307) tmp = t_1; elseif (B <= 1.38e-250) tmp = t_2; elseif (B <= 1e-187) tmp = t_1; elseif (B <= 3.8e-169) tmp = t_2; elseif (B <= 6.5e-105) tmp = Float64(180.0 * Float64(atan(Float64(0.5 * Float64(Float64(B / A) + Float64(Float64(B * C) / Float64(A * A))))) / pi)); else tmp = Float64(180.0 * Float64(atan(Float64(Float64(Float64(C - B) - A) / B)) / pi)); end return tmp end
function tmp_2 = code(A, B, C) t_0 = 180.0 / (pi / atan((-0.5 * (B / C)))); t_1 = (180.0 / pi) * atan((C / B)); t_2 = (180.0 * atan((1.0 / (((A - C) / B) + 1.0)))) / pi; tmp = 0.0; if (B <= -4.2e-124) tmp = (180.0 / pi) * atan(((C - (A - B)) / B)); elseif (B <= -1.65e-197) tmp = t_0; elseif (B <= -9.4e-237) tmp = 180.0 * (atan((0.5 * (B / A))) / pi); elseif (B <= -7.4e-295) tmp = t_0; elseif (B <= 1.05e-307) tmp = t_1; elseif (B <= 1.38e-250) tmp = t_2; elseif (B <= 1e-187) tmp = t_1; elseif (B <= 3.8e-169) tmp = t_2; elseif (B <= 6.5e-105) tmp = 180.0 * (atan((0.5 * ((B / A) + ((B * C) / (A * A))))) / pi); else tmp = 180.0 * (atan((((C - B) - A) / B)) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := Block[{t$95$0 = N[(180.0 / N[(Pi / N[ArcTan[N[(-0.5 * N[(B / C), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(C / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(180.0 * N[ArcTan[N[(1.0 / N[(N[(N[(A - C), $MachinePrecision] / B), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision]}, If[LessEqual[B, -4.2e-124], N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(N[(C - N[(A - B), $MachinePrecision]), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -1.65e-197], t$95$0, If[LessEqual[B, -9.4e-237], N[(180.0 * N[(N[ArcTan[N[(0.5 * N[(B / A), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -7.4e-295], t$95$0, If[LessEqual[B, 1.05e-307], t$95$1, If[LessEqual[B, 1.38e-250], t$95$2, If[LessEqual[B, 1e-187], t$95$1, If[LessEqual[B, 3.8e-169], t$95$2, If[LessEqual[B, 6.5e-105], N[(180.0 * N[(N[ArcTan[N[(0.5 * N[(N[(B / A), $MachinePrecision] + N[(N[(B * C), $MachinePrecision] / N[(A * A), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(N[(N[(C - B), $MachinePrecision] - A), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{180}{\frac{\pi}{\tan^{-1} \left(-0.5 \cdot \frac{B}{C}\right)}}\\
t_1 := \frac{180}{\pi} \cdot \tan^{-1} \left(\frac{C}{B}\right)\\
t_2 := \frac{180 \cdot \tan^{-1} \left(\frac{1}{\frac{A - C}{B} + 1}\right)}{\pi}\\
\mathbf{if}\;B \leq -4.2 \cdot 10^{-124}:\\
\;\;\;\;\frac{180}{\pi} \cdot \tan^{-1} \left(\frac{C - \left(A - B\right)}{B}\right)\\
\mathbf{elif}\;B \leq -1.65 \cdot 10^{-197}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;B \leq -9.4 \cdot 10^{-237}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(0.5 \cdot \frac{B}{A}\right)}{\pi}\\
\mathbf{elif}\;B \leq -7.4 \cdot 10^{-295}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;B \leq 1.05 \cdot 10^{-307}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;B \leq 1.38 \cdot 10^{-250}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;B \leq 10^{-187}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;B \leq 3.8 \cdot 10^{-169}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;B \leq 6.5 \cdot 10^{-105}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(0.5 \cdot \left(\frac{B}{A} + \frac{B \cdot C}{A \cdot A}\right)\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{\left(C - B\right) - A}{B}\right)}{\pi}\\
\end{array}
\end{array}
if B < -4.2000000000000002e-124Initial program 56.7%
associate-*r/56.7%
associate-*l/56.7%
associate-*l/56.7%
*-lft-identity56.7%
sub-neg56.7%
associate-+l-56.6%
sub-neg56.6%
remove-double-neg56.6%
+-commutative56.6%
unpow256.6%
unpow256.6%
hypot-def81.0%
Simplified81.0%
Taylor expanded in B around -inf 77.2%
neg-mul-177.2%
unsub-neg77.2%
Simplified77.2%
if -4.2000000000000002e-124 < B < -1.6499999999999999e-197 or -9.3999999999999996e-237 < B < -7.3999999999999999e-295Initial program 29.3%
associate-*r/29.3%
unpow229.3%
Simplified29.3%
*-commutative29.3%
associate--l-28.2%
+-commutative28.2%
unpow228.2%
hypot-udef59.8%
div-inv59.8%
clear-num59.8%
Applied egg-rr59.8%
Taylor expanded in A around 0 25.7%
unpow225.7%
unpow225.7%
hypot-def57.4%
Simplified57.4%
Taylor expanded in C around inf 66.1%
*-un-lft-identity66.1%
associate-/l*66.4%
Applied egg-rr66.4%
if -1.6499999999999999e-197 < B < -9.3999999999999996e-237Initial program 72.5%
associate-*l/72.5%
*-lft-identity72.5%
+-commutative72.5%
unpow272.5%
unpow272.5%
hypot-def86.3%
Simplified86.3%
Taylor expanded in A around -inf 72.2%
if -7.3999999999999999e-295 < B < 1.0500000000000001e-307 or 1.38e-250 < B < 1e-187Initial program 80.8%
associate-*r/80.8%
associate-*l/80.8%
associate-*l/80.8%
*-lft-identity80.8%
sub-neg80.8%
associate-+l-80.7%
sub-neg80.7%
remove-double-neg80.7%
+-commutative80.7%
unpow280.7%
unpow280.7%
hypot-def87.2%
Simplified87.2%
Taylor expanded in B around -inf 80.6%
neg-mul-180.6%
unsub-neg80.6%
Simplified80.6%
Taylor expanded in C around inf 80.7%
if 1.0500000000000001e-307 < B < 1.38e-250 or 1e-187 < B < 3.8e-169Initial program 40.2%
associate-*r/40.2%
unpow240.2%
Simplified40.2%
*-commutative40.2%
associate--l-33.5%
+-commutative33.5%
unpow233.5%
hypot-udef63.8%
div-inv63.8%
clear-num63.8%
Applied egg-rr63.8%
Taylor expanded in B around -inf 66.6%
associate-*r/66.6%
neg-mul-166.6%
sub-neg66.6%
+-commutative66.6%
distribute-neg-in66.6%
remove-double-neg66.6%
sub-neg66.6%
Simplified66.6%
if 3.8e-169 < B < 6.50000000000000006e-105Initial program 33.5%
associate-*l/33.5%
*-lft-identity33.5%
+-commutative33.5%
unpow233.5%
unpow233.5%
hypot-def87.4%
Simplified87.4%
Taylor expanded in A around -inf 67.5%
distribute-lft-out67.5%
*-commutative67.5%
unpow267.5%
Simplified67.5%
if 6.50000000000000006e-105 < B Initial program 57.4%
associate-*l/57.4%
*-lft-identity57.4%
+-commutative57.4%
unpow257.4%
unpow257.4%
hypot-def82.9%
Simplified82.9%
Taylor expanded in B around inf 80.1%
neg-mul-180.1%
unsub-neg80.1%
Simplified80.1%
Final simplification76.0%
(FPCore (A B C)
:precision binary64
(let* ((t_0 (/ 180.0 (/ PI (atan (* -0.5 (/ B C))))))
(t_1 (* (/ 180.0 PI) (atan (/ C B))))
(t_2 (/ (* 180.0 (atan (/ 1.0 (+ (/ (- A C) B) 1.0)))) PI)))
(if (<= B -3.8e-124)
(* (/ 180.0 PI) (atan (/ (- C (- A B)) B)))
(if (<= B -6e-192)
t_0
(if (<= B -3.4e-235)
(* 180.0 (/ (atan (* 0.5 (/ B A))) PI))
(if (<= B -3.75e-295)
t_0
(if (<= B 1.4e-307)
t_1
(if (<= B 5.5e-251)
t_2
(if (<= B 1.25e-187)
t_1
(if (<= B 4.5e-171)
t_2
(if (<= B 9e-106)
(/
(* 180.0 (atan (* 0.5 (* (/ B A) (+ (/ C A) 1.0)))))
PI)
(* 180.0 (/ (atan (/ (- (- C B) A) B)) PI)))))))))))))
double code(double A, double B, double C) {
double t_0 = 180.0 / (((double) M_PI) / atan((-0.5 * (B / C))));
double t_1 = (180.0 / ((double) M_PI)) * atan((C / B));
double t_2 = (180.0 * atan((1.0 / (((A - C) / B) + 1.0)))) / ((double) M_PI);
double tmp;
if (B <= -3.8e-124) {
tmp = (180.0 / ((double) M_PI)) * atan(((C - (A - B)) / B));
} else if (B <= -6e-192) {
tmp = t_0;
} else if (B <= -3.4e-235) {
tmp = 180.0 * (atan((0.5 * (B / A))) / ((double) M_PI));
} else if (B <= -3.75e-295) {
tmp = t_0;
} else if (B <= 1.4e-307) {
tmp = t_1;
} else if (B <= 5.5e-251) {
tmp = t_2;
} else if (B <= 1.25e-187) {
tmp = t_1;
} else if (B <= 4.5e-171) {
tmp = t_2;
} else if (B <= 9e-106) {
tmp = (180.0 * atan((0.5 * ((B / A) * ((C / A) + 1.0))))) / ((double) M_PI);
} else {
tmp = 180.0 * (atan((((C - B) - A) / B)) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double t_0 = 180.0 / (Math.PI / Math.atan((-0.5 * (B / C))));
double t_1 = (180.0 / Math.PI) * Math.atan((C / B));
double t_2 = (180.0 * Math.atan((1.0 / (((A - C) / B) + 1.0)))) / Math.PI;
double tmp;
if (B <= -3.8e-124) {
tmp = (180.0 / Math.PI) * Math.atan(((C - (A - B)) / B));
} else if (B <= -6e-192) {
tmp = t_0;
} else if (B <= -3.4e-235) {
tmp = 180.0 * (Math.atan((0.5 * (B / A))) / Math.PI);
} else if (B <= -3.75e-295) {
tmp = t_0;
} else if (B <= 1.4e-307) {
tmp = t_1;
} else if (B <= 5.5e-251) {
tmp = t_2;
} else if (B <= 1.25e-187) {
tmp = t_1;
} else if (B <= 4.5e-171) {
tmp = t_2;
} else if (B <= 9e-106) {
tmp = (180.0 * Math.atan((0.5 * ((B / A) * ((C / A) + 1.0))))) / Math.PI;
} else {
tmp = 180.0 * (Math.atan((((C - B) - A) / B)) / Math.PI);
}
return tmp;
}
def code(A, B, C): t_0 = 180.0 / (math.pi / math.atan((-0.5 * (B / C)))) t_1 = (180.0 / math.pi) * math.atan((C / B)) t_2 = (180.0 * math.atan((1.0 / (((A - C) / B) + 1.0)))) / math.pi tmp = 0 if B <= -3.8e-124: tmp = (180.0 / math.pi) * math.atan(((C - (A - B)) / B)) elif B <= -6e-192: tmp = t_0 elif B <= -3.4e-235: tmp = 180.0 * (math.atan((0.5 * (B / A))) / math.pi) elif B <= -3.75e-295: tmp = t_0 elif B <= 1.4e-307: tmp = t_1 elif B <= 5.5e-251: tmp = t_2 elif B <= 1.25e-187: tmp = t_1 elif B <= 4.5e-171: tmp = t_2 elif B <= 9e-106: tmp = (180.0 * math.atan((0.5 * ((B / A) * ((C / A) + 1.0))))) / math.pi else: tmp = 180.0 * (math.atan((((C - B) - A) / B)) / math.pi) return tmp
function code(A, B, C) t_0 = Float64(180.0 / Float64(pi / atan(Float64(-0.5 * Float64(B / C))))) t_1 = Float64(Float64(180.0 / pi) * atan(Float64(C / B))) t_2 = Float64(Float64(180.0 * atan(Float64(1.0 / Float64(Float64(Float64(A - C) / B) + 1.0)))) / pi) tmp = 0.0 if (B <= -3.8e-124) tmp = Float64(Float64(180.0 / pi) * atan(Float64(Float64(C - Float64(A - B)) / B))); elseif (B <= -6e-192) tmp = t_0; elseif (B <= -3.4e-235) tmp = Float64(180.0 * Float64(atan(Float64(0.5 * Float64(B / A))) / pi)); elseif (B <= -3.75e-295) tmp = t_0; elseif (B <= 1.4e-307) tmp = t_1; elseif (B <= 5.5e-251) tmp = t_2; elseif (B <= 1.25e-187) tmp = t_1; elseif (B <= 4.5e-171) tmp = t_2; elseif (B <= 9e-106) tmp = Float64(Float64(180.0 * atan(Float64(0.5 * Float64(Float64(B / A) * Float64(Float64(C / A) + 1.0))))) / pi); else tmp = Float64(180.0 * Float64(atan(Float64(Float64(Float64(C - B) - A) / B)) / pi)); end return tmp end
function tmp_2 = code(A, B, C) t_0 = 180.0 / (pi / atan((-0.5 * (B / C)))); t_1 = (180.0 / pi) * atan((C / B)); t_2 = (180.0 * atan((1.0 / (((A - C) / B) + 1.0)))) / pi; tmp = 0.0; if (B <= -3.8e-124) tmp = (180.0 / pi) * atan(((C - (A - B)) / B)); elseif (B <= -6e-192) tmp = t_0; elseif (B <= -3.4e-235) tmp = 180.0 * (atan((0.5 * (B / A))) / pi); elseif (B <= -3.75e-295) tmp = t_0; elseif (B <= 1.4e-307) tmp = t_1; elseif (B <= 5.5e-251) tmp = t_2; elseif (B <= 1.25e-187) tmp = t_1; elseif (B <= 4.5e-171) tmp = t_2; elseif (B <= 9e-106) tmp = (180.0 * atan((0.5 * ((B / A) * ((C / A) + 1.0))))) / pi; else tmp = 180.0 * (atan((((C - B) - A) / B)) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := Block[{t$95$0 = N[(180.0 / N[(Pi / N[ArcTan[N[(-0.5 * N[(B / C), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(C / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(180.0 * N[ArcTan[N[(1.0 / N[(N[(N[(A - C), $MachinePrecision] / B), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision]}, If[LessEqual[B, -3.8e-124], N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(N[(C - N[(A - B), $MachinePrecision]), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -6e-192], t$95$0, If[LessEqual[B, -3.4e-235], N[(180.0 * N[(N[ArcTan[N[(0.5 * N[(B / A), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -3.75e-295], t$95$0, If[LessEqual[B, 1.4e-307], t$95$1, If[LessEqual[B, 5.5e-251], t$95$2, If[LessEqual[B, 1.25e-187], t$95$1, If[LessEqual[B, 4.5e-171], t$95$2, If[LessEqual[B, 9e-106], N[(N[(180.0 * N[ArcTan[N[(0.5 * N[(N[(B / A), $MachinePrecision] * N[(N[(C / A), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(N[(N[(C - B), $MachinePrecision] - A), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{180}{\frac{\pi}{\tan^{-1} \left(-0.5 \cdot \frac{B}{C}\right)}}\\
t_1 := \frac{180}{\pi} \cdot \tan^{-1} \left(\frac{C}{B}\right)\\
t_2 := \frac{180 \cdot \tan^{-1} \left(\frac{1}{\frac{A - C}{B} + 1}\right)}{\pi}\\
\mathbf{if}\;B \leq -3.8 \cdot 10^{-124}:\\
\;\;\;\;\frac{180}{\pi} \cdot \tan^{-1} \left(\frac{C - \left(A - B\right)}{B}\right)\\
\mathbf{elif}\;B \leq -6 \cdot 10^{-192}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;B \leq -3.4 \cdot 10^{-235}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(0.5 \cdot \frac{B}{A}\right)}{\pi}\\
\mathbf{elif}\;B \leq -3.75 \cdot 10^{-295}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;B \leq 1.4 \cdot 10^{-307}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;B \leq 5.5 \cdot 10^{-251}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;B \leq 1.25 \cdot 10^{-187}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;B \leq 4.5 \cdot 10^{-171}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;B \leq 9 \cdot 10^{-106}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(0.5 \cdot \left(\frac{B}{A} \cdot \left(\frac{C}{A} + 1\right)\right)\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{\left(C - B\right) - A}{B}\right)}{\pi}\\
\end{array}
\end{array}
if B < -3.80000000000000012e-124Initial program 56.7%
associate-*r/56.7%
associate-*l/56.7%
associate-*l/56.7%
*-lft-identity56.7%
sub-neg56.7%
associate-+l-56.6%
sub-neg56.6%
remove-double-neg56.6%
+-commutative56.6%
unpow256.6%
unpow256.6%
hypot-def81.0%
Simplified81.0%
Taylor expanded in B around -inf 77.2%
neg-mul-177.2%
unsub-neg77.2%
Simplified77.2%
if -3.80000000000000012e-124 < B < -5.9999999999999998e-192 or -3.39999999999999972e-235 < B < -3.7499999999999998e-295Initial program 29.3%
associate-*r/29.3%
unpow229.3%
Simplified29.3%
*-commutative29.3%
associate--l-28.2%
+-commutative28.2%
unpow228.2%
hypot-udef59.8%
div-inv59.8%
clear-num59.8%
Applied egg-rr59.8%
Taylor expanded in A around 0 25.7%
unpow225.7%
unpow225.7%
hypot-def57.4%
Simplified57.4%
Taylor expanded in C around inf 66.1%
*-un-lft-identity66.1%
associate-/l*66.4%
Applied egg-rr66.4%
if -5.9999999999999998e-192 < B < -3.39999999999999972e-235Initial program 72.5%
associate-*l/72.5%
*-lft-identity72.5%
+-commutative72.5%
unpow272.5%
unpow272.5%
hypot-def86.3%
Simplified86.3%
Taylor expanded in A around -inf 72.2%
if -3.7499999999999998e-295 < B < 1.4e-307 or 5.5e-251 < B < 1.2499999999999999e-187Initial program 80.8%
associate-*r/80.8%
associate-*l/80.8%
associate-*l/80.8%
*-lft-identity80.8%
sub-neg80.8%
associate-+l-80.7%
sub-neg80.7%
remove-double-neg80.7%
+-commutative80.7%
unpow280.7%
unpow280.7%
hypot-def87.2%
Simplified87.2%
Taylor expanded in B around -inf 80.6%
neg-mul-180.6%
unsub-neg80.6%
Simplified80.6%
Taylor expanded in C around inf 80.7%
if 1.4e-307 < B < 5.5e-251 or 1.2499999999999999e-187 < B < 4.5000000000000004e-171Initial program 40.2%
associate-*r/40.2%
unpow240.2%
Simplified40.2%
*-commutative40.2%
associate--l-33.5%
+-commutative33.5%
unpow233.5%
hypot-udef63.8%
div-inv63.8%
clear-num63.8%
Applied egg-rr63.8%
Taylor expanded in B around -inf 66.6%
associate-*r/66.6%
neg-mul-166.6%
sub-neg66.6%
+-commutative66.6%
distribute-neg-in66.6%
remove-double-neg66.6%
sub-neg66.6%
Simplified66.6%
if 4.5000000000000004e-171 < B < 8.99999999999999911e-106Initial program 33.5%
associate-*r/33.5%
unpow233.5%
Simplified33.5%
*-commutative33.5%
associate--l-33.9%
+-commutative33.9%
unpow233.9%
hypot-udef55.6%
div-inv55.6%
clear-num55.6%
Applied egg-rr55.6%
Taylor expanded in A around -inf 67.4%
distribute-lft-in67.4%
*-commutative67.4%
unpow267.4%
times-frac67.4%
*-rgt-identity67.4%
distribute-lft-out67.4%
Simplified67.4%
if 8.99999999999999911e-106 < B Initial program 57.4%
associate-*l/57.4%
*-lft-identity57.4%
+-commutative57.4%
unpow257.4%
unpow257.4%
hypot-def82.9%
Simplified82.9%
Taylor expanded in B around inf 80.1%
neg-mul-180.1%
unsub-neg80.1%
Simplified80.1%
Final simplification76.0%
(FPCore (A B C)
:precision binary64
(let* ((t_0 (/ 180.0 (/ PI (atan (* -0.5 (/ B C))))))
(t_1 (* (/ 180.0 PI) (atan (/ C B)))))
(if (<= B -7.6e-125)
(* (/ 180.0 PI) (atan (/ (- C (- A B)) B)))
(if (<= B -6.4e-189)
t_0
(if (<= B -4.5e-239)
(* 180.0 (/ (atan (* 0.5 (/ B A))) PI))
(if (<= B -2.4e-296)
t_0
(if (<= B 1.55e-307)
t_1
(if (<= B 3.8e-251)
(/ (* 180.0 (atan (/ 1.0 (+ (/ (- A C) B) 1.0)))) PI)
(if (<= B 6e-187)
t_1
(if (<= B 4.8e-106)
(*
(/ 180.0 PI)
(atan (/ (- C (+ C (* -0.5 (/ (* B B) A)))) B)))
(* 180.0 (/ (atan (/ (- (- C B) A) B)) PI))))))))))))
double code(double A, double B, double C) {
double t_0 = 180.0 / (((double) M_PI) / atan((-0.5 * (B / C))));
double t_1 = (180.0 / ((double) M_PI)) * atan((C / B));
double tmp;
if (B <= -7.6e-125) {
tmp = (180.0 / ((double) M_PI)) * atan(((C - (A - B)) / B));
} else if (B <= -6.4e-189) {
tmp = t_0;
} else if (B <= -4.5e-239) {
tmp = 180.0 * (atan((0.5 * (B / A))) / ((double) M_PI));
} else if (B <= -2.4e-296) {
tmp = t_0;
} else if (B <= 1.55e-307) {
tmp = t_1;
} else if (B <= 3.8e-251) {
tmp = (180.0 * atan((1.0 / (((A - C) / B) + 1.0)))) / ((double) M_PI);
} else if (B <= 6e-187) {
tmp = t_1;
} else if (B <= 4.8e-106) {
tmp = (180.0 / ((double) M_PI)) * atan(((C - (C + (-0.5 * ((B * B) / A)))) / B));
} else {
tmp = 180.0 * (atan((((C - B) - A) / B)) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double t_0 = 180.0 / (Math.PI / Math.atan((-0.5 * (B / C))));
double t_1 = (180.0 / Math.PI) * Math.atan((C / B));
double tmp;
if (B <= -7.6e-125) {
tmp = (180.0 / Math.PI) * Math.atan(((C - (A - B)) / B));
} else if (B <= -6.4e-189) {
tmp = t_0;
} else if (B <= -4.5e-239) {
tmp = 180.0 * (Math.atan((0.5 * (B / A))) / Math.PI);
} else if (B <= -2.4e-296) {
tmp = t_0;
} else if (B <= 1.55e-307) {
tmp = t_1;
} else if (B <= 3.8e-251) {
tmp = (180.0 * Math.atan((1.0 / (((A - C) / B) + 1.0)))) / Math.PI;
} else if (B <= 6e-187) {
tmp = t_1;
} else if (B <= 4.8e-106) {
tmp = (180.0 / Math.PI) * Math.atan(((C - (C + (-0.5 * ((B * B) / A)))) / B));
} else {
tmp = 180.0 * (Math.atan((((C - B) - A) / B)) / Math.PI);
}
return tmp;
}
def code(A, B, C): t_0 = 180.0 / (math.pi / math.atan((-0.5 * (B / C)))) t_1 = (180.0 / math.pi) * math.atan((C / B)) tmp = 0 if B <= -7.6e-125: tmp = (180.0 / math.pi) * math.atan(((C - (A - B)) / B)) elif B <= -6.4e-189: tmp = t_0 elif B <= -4.5e-239: tmp = 180.0 * (math.atan((0.5 * (B / A))) / math.pi) elif B <= -2.4e-296: tmp = t_0 elif B <= 1.55e-307: tmp = t_1 elif B <= 3.8e-251: tmp = (180.0 * math.atan((1.0 / (((A - C) / B) + 1.0)))) / math.pi elif B <= 6e-187: tmp = t_1 elif B <= 4.8e-106: tmp = (180.0 / math.pi) * math.atan(((C - (C + (-0.5 * ((B * B) / A)))) / B)) else: tmp = 180.0 * (math.atan((((C - B) - A) / B)) / math.pi) return tmp
function code(A, B, C) t_0 = Float64(180.0 / Float64(pi / atan(Float64(-0.5 * Float64(B / C))))) t_1 = Float64(Float64(180.0 / pi) * atan(Float64(C / B))) tmp = 0.0 if (B <= -7.6e-125) tmp = Float64(Float64(180.0 / pi) * atan(Float64(Float64(C - Float64(A - B)) / B))); elseif (B <= -6.4e-189) tmp = t_0; elseif (B <= -4.5e-239) tmp = Float64(180.0 * Float64(atan(Float64(0.5 * Float64(B / A))) / pi)); elseif (B <= -2.4e-296) tmp = t_0; elseif (B <= 1.55e-307) tmp = t_1; elseif (B <= 3.8e-251) tmp = Float64(Float64(180.0 * atan(Float64(1.0 / Float64(Float64(Float64(A - C) / B) + 1.0)))) / pi); elseif (B <= 6e-187) tmp = t_1; elseif (B <= 4.8e-106) tmp = Float64(Float64(180.0 / pi) * atan(Float64(Float64(C - Float64(C + Float64(-0.5 * Float64(Float64(B * B) / A)))) / B))); else tmp = Float64(180.0 * Float64(atan(Float64(Float64(Float64(C - B) - A) / B)) / pi)); end return tmp end
function tmp_2 = code(A, B, C) t_0 = 180.0 / (pi / atan((-0.5 * (B / C)))); t_1 = (180.0 / pi) * atan((C / B)); tmp = 0.0; if (B <= -7.6e-125) tmp = (180.0 / pi) * atan(((C - (A - B)) / B)); elseif (B <= -6.4e-189) tmp = t_0; elseif (B <= -4.5e-239) tmp = 180.0 * (atan((0.5 * (B / A))) / pi); elseif (B <= -2.4e-296) tmp = t_0; elseif (B <= 1.55e-307) tmp = t_1; elseif (B <= 3.8e-251) tmp = (180.0 * atan((1.0 / (((A - C) / B) + 1.0)))) / pi; elseif (B <= 6e-187) tmp = t_1; elseif (B <= 4.8e-106) tmp = (180.0 / pi) * atan(((C - (C + (-0.5 * ((B * B) / A)))) / B)); else tmp = 180.0 * (atan((((C - B) - A) / B)) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := Block[{t$95$0 = N[(180.0 / N[(Pi / N[ArcTan[N[(-0.5 * N[(B / C), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(C / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[B, -7.6e-125], N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(N[(C - N[(A - B), $MachinePrecision]), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -6.4e-189], t$95$0, If[LessEqual[B, -4.5e-239], N[(180.0 * N[(N[ArcTan[N[(0.5 * N[(B / A), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -2.4e-296], t$95$0, If[LessEqual[B, 1.55e-307], t$95$1, If[LessEqual[B, 3.8e-251], N[(N[(180.0 * N[ArcTan[N[(1.0 / N[(N[(N[(A - C), $MachinePrecision] / B), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], If[LessEqual[B, 6e-187], t$95$1, If[LessEqual[B, 4.8e-106], N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(N[(C - N[(C + N[(-0.5 * N[(N[(B * B), $MachinePrecision] / A), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(N[(N[(C - B), $MachinePrecision] - A), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{180}{\frac{\pi}{\tan^{-1} \left(-0.5 \cdot \frac{B}{C}\right)}}\\
t_1 := \frac{180}{\pi} \cdot \tan^{-1} \left(\frac{C}{B}\right)\\
\mathbf{if}\;B \leq -7.6 \cdot 10^{-125}:\\
\;\;\;\;\frac{180}{\pi} \cdot \tan^{-1} \left(\frac{C - \left(A - B\right)}{B}\right)\\
\mathbf{elif}\;B \leq -6.4 \cdot 10^{-189}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;B \leq -4.5 \cdot 10^{-239}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(0.5 \cdot \frac{B}{A}\right)}{\pi}\\
\mathbf{elif}\;B \leq -2.4 \cdot 10^{-296}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;B \leq 1.55 \cdot 10^{-307}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;B \leq 3.8 \cdot 10^{-251}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{1}{\frac{A - C}{B} + 1}\right)}{\pi}\\
\mathbf{elif}\;B \leq 6 \cdot 10^{-187}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;B \leq 4.8 \cdot 10^{-106}:\\
\;\;\;\;\frac{180}{\pi} \cdot \tan^{-1} \left(\frac{C - \left(C + -0.5 \cdot \frac{B \cdot B}{A}\right)}{B}\right)\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{\left(C - B\right) - A}{B}\right)}{\pi}\\
\end{array}
\end{array}
if B < -7.6000000000000002e-125Initial program 56.7%
associate-*r/56.7%
associate-*l/56.7%
associate-*l/56.7%
*-lft-identity56.7%
sub-neg56.7%
associate-+l-56.6%
sub-neg56.6%
remove-double-neg56.6%
+-commutative56.6%
unpow256.6%
unpow256.6%
hypot-def81.0%
Simplified81.0%
Taylor expanded in B around -inf 77.2%
neg-mul-177.2%
unsub-neg77.2%
Simplified77.2%
if -7.6000000000000002e-125 < B < -6.4000000000000001e-189 or -4.50000000000000013e-239 < B < -2.39999999999999996e-296Initial program 29.3%
associate-*r/29.3%
unpow229.3%
Simplified29.3%
*-commutative29.3%
associate--l-28.2%
+-commutative28.2%
unpow228.2%
hypot-udef59.8%
div-inv59.8%
clear-num59.8%
Applied egg-rr59.8%
Taylor expanded in A around 0 25.7%
unpow225.7%
unpow225.7%
hypot-def57.4%
Simplified57.4%
Taylor expanded in C around inf 66.1%
*-un-lft-identity66.1%
associate-/l*66.4%
Applied egg-rr66.4%
if -6.4000000000000001e-189 < B < -4.50000000000000013e-239Initial program 72.5%
associate-*l/72.5%
*-lft-identity72.5%
+-commutative72.5%
unpow272.5%
unpow272.5%
hypot-def86.3%
Simplified86.3%
Taylor expanded in A around -inf 72.2%
if -2.39999999999999996e-296 < B < 1.5499999999999999e-307 or 3.7999999999999997e-251 < B < 6.00000000000000008e-187Initial program 80.8%
associate-*r/80.8%
associate-*l/80.8%
associate-*l/80.8%
*-lft-identity80.8%
sub-neg80.8%
associate-+l-80.7%
sub-neg80.7%
remove-double-neg80.7%
+-commutative80.7%
unpow280.7%
unpow280.7%
hypot-def87.2%
Simplified87.2%
Taylor expanded in B around -inf 80.6%
neg-mul-180.6%
unsub-neg80.6%
Simplified80.6%
Taylor expanded in C around inf 80.7%
if 1.5499999999999999e-307 < B < 3.7999999999999997e-251Initial program 48.1%
associate-*r/48.1%
unpow248.1%
Simplified48.1%
*-commutative48.1%
associate--l-38.3%
+-commutative38.3%
unpow238.3%
hypot-udef73.5%
div-inv73.5%
clear-num73.5%
Applied egg-rr73.5%
Taylor expanded in B around -inf 67.6%
associate-*r/67.6%
neg-mul-167.6%
sub-neg67.6%
+-commutative67.6%
distribute-neg-in67.6%
remove-double-neg67.6%
sub-neg67.6%
Simplified67.6%
if 6.00000000000000008e-187 < B < 4.7999999999999995e-106Initial program 29.7%
associate-*r/29.7%
associate-*l/29.7%
associate-*l/29.7%
*-lft-identity29.7%
sub-neg29.7%
associate-+l-30.0%
sub-neg30.0%
remove-double-neg30.0%
+-commutative30.0%
unpow230.0%
unpow230.0%
hypot-def50.8%
Simplified50.8%
Taylor expanded in A around -inf 65.4%
unpow265.4%
Simplified65.4%
if 4.7999999999999995e-106 < B Initial program 57.4%
associate-*l/57.4%
*-lft-identity57.4%
+-commutative57.4%
unpow257.4%
unpow257.4%
hypot-def82.9%
Simplified82.9%
Taylor expanded in B around inf 80.1%
neg-mul-180.1%
unsub-neg80.1%
Simplified80.1%
Final simplification76.0%
(FPCore (A B C)
:precision binary64
(let* ((t_0 (/ 180.0 (/ PI (atan (* -0.5 (/ B C))))))
(t_1 (* (/ 180.0 PI) (atan (/ C B))))
(t_2 (/ (* 180.0 (atan (/ 1.0 (+ (/ (- A C) B) 1.0)))) PI)))
(if (<= B -1.3e-123)
(* (/ 180.0 PI) (atan (/ (- C (- A B)) B)))
(if (<= B -1.65e-187)
t_0
(if (<= B -5.1e-231)
(* 180.0 (/ (atan (* 0.5 (/ B A))) PI))
(if (<= B -1.55e-294)
t_0
(if (<= B 2.1e-307)
t_1
(if (<= B 5.2e-252)
t_2
(if (<= B 3e-189)
t_1
(if (<= B 9e-104)
t_2
(* 180.0 (/ (atan (/ (- (- C B) A) B)) PI))))))))))))
double code(double A, double B, double C) {
double t_0 = 180.0 / (((double) M_PI) / atan((-0.5 * (B / C))));
double t_1 = (180.0 / ((double) M_PI)) * atan((C / B));
double t_2 = (180.0 * atan((1.0 / (((A - C) / B) + 1.0)))) / ((double) M_PI);
double tmp;
if (B <= -1.3e-123) {
tmp = (180.0 / ((double) M_PI)) * atan(((C - (A - B)) / B));
} else if (B <= -1.65e-187) {
tmp = t_0;
} else if (B <= -5.1e-231) {
tmp = 180.0 * (atan((0.5 * (B / A))) / ((double) M_PI));
} else if (B <= -1.55e-294) {
tmp = t_0;
} else if (B <= 2.1e-307) {
tmp = t_1;
} else if (B <= 5.2e-252) {
tmp = t_2;
} else if (B <= 3e-189) {
tmp = t_1;
} else if (B <= 9e-104) {
tmp = t_2;
} else {
tmp = 180.0 * (atan((((C - B) - A) / B)) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double t_0 = 180.0 / (Math.PI / Math.atan((-0.5 * (B / C))));
double t_1 = (180.0 / Math.PI) * Math.atan((C / B));
double t_2 = (180.0 * Math.atan((1.0 / (((A - C) / B) + 1.0)))) / Math.PI;
double tmp;
if (B <= -1.3e-123) {
tmp = (180.0 / Math.PI) * Math.atan(((C - (A - B)) / B));
} else if (B <= -1.65e-187) {
tmp = t_0;
} else if (B <= -5.1e-231) {
tmp = 180.0 * (Math.atan((0.5 * (B / A))) / Math.PI);
} else if (B <= -1.55e-294) {
tmp = t_0;
} else if (B <= 2.1e-307) {
tmp = t_1;
} else if (B <= 5.2e-252) {
tmp = t_2;
} else if (B <= 3e-189) {
tmp = t_1;
} else if (B <= 9e-104) {
tmp = t_2;
} else {
tmp = 180.0 * (Math.atan((((C - B) - A) / B)) / Math.PI);
}
return tmp;
}
def code(A, B, C): t_0 = 180.0 / (math.pi / math.atan((-0.5 * (B / C)))) t_1 = (180.0 / math.pi) * math.atan((C / B)) t_2 = (180.0 * math.atan((1.0 / (((A - C) / B) + 1.0)))) / math.pi tmp = 0 if B <= -1.3e-123: tmp = (180.0 / math.pi) * math.atan(((C - (A - B)) / B)) elif B <= -1.65e-187: tmp = t_0 elif B <= -5.1e-231: tmp = 180.0 * (math.atan((0.5 * (B / A))) / math.pi) elif B <= -1.55e-294: tmp = t_0 elif B <= 2.1e-307: tmp = t_1 elif B <= 5.2e-252: tmp = t_2 elif B <= 3e-189: tmp = t_1 elif B <= 9e-104: tmp = t_2 else: tmp = 180.0 * (math.atan((((C - B) - A) / B)) / math.pi) return tmp
function code(A, B, C) t_0 = Float64(180.0 / Float64(pi / atan(Float64(-0.5 * Float64(B / C))))) t_1 = Float64(Float64(180.0 / pi) * atan(Float64(C / B))) t_2 = Float64(Float64(180.0 * atan(Float64(1.0 / Float64(Float64(Float64(A - C) / B) + 1.0)))) / pi) tmp = 0.0 if (B <= -1.3e-123) tmp = Float64(Float64(180.0 / pi) * atan(Float64(Float64(C - Float64(A - B)) / B))); elseif (B <= -1.65e-187) tmp = t_0; elseif (B <= -5.1e-231) tmp = Float64(180.0 * Float64(atan(Float64(0.5 * Float64(B / A))) / pi)); elseif (B <= -1.55e-294) tmp = t_0; elseif (B <= 2.1e-307) tmp = t_1; elseif (B <= 5.2e-252) tmp = t_2; elseif (B <= 3e-189) tmp = t_1; elseif (B <= 9e-104) tmp = t_2; else tmp = Float64(180.0 * Float64(atan(Float64(Float64(Float64(C - B) - A) / B)) / pi)); end return tmp end
function tmp_2 = code(A, B, C) t_0 = 180.0 / (pi / atan((-0.5 * (B / C)))); t_1 = (180.0 / pi) * atan((C / B)); t_2 = (180.0 * atan((1.0 / (((A - C) / B) + 1.0)))) / pi; tmp = 0.0; if (B <= -1.3e-123) tmp = (180.0 / pi) * atan(((C - (A - B)) / B)); elseif (B <= -1.65e-187) tmp = t_0; elseif (B <= -5.1e-231) tmp = 180.0 * (atan((0.5 * (B / A))) / pi); elseif (B <= -1.55e-294) tmp = t_0; elseif (B <= 2.1e-307) tmp = t_1; elseif (B <= 5.2e-252) tmp = t_2; elseif (B <= 3e-189) tmp = t_1; elseif (B <= 9e-104) tmp = t_2; else tmp = 180.0 * (atan((((C - B) - A) / B)) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := Block[{t$95$0 = N[(180.0 / N[(Pi / N[ArcTan[N[(-0.5 * N[(B / C), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(C / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(180.0 * N[ArcTan[N[(1.0 / N[(N[(N[(A - C), $MachinePrecision] / B), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision]}, If[LessEqual[B, -1.3e-123], N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(N[(C - N[(A - B), $MachinePrecision]), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -1.65e-187], t$95$0, If[LessEqual[B, -5.1e-231], N[(180.0 * N[(N[ArcTan[N[(0.5 * N[(B / A), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -1.55e-294], t$95$0, If[LessEqual[B, 2.1e-307], t$95$1, If[LessEqual[B, 5.2e-252], t$95$2, If[LessEqual[B, 3e-189], t$95$1, If[LessEqual[B, 9e-104], t$95$2, N[(180.0 * N[(N[ArcTan[N[(N[(N[(C - B), $MachinePrecision] - A), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{180}{\frac{\pi}{\tan^{-1} \left(-0.5 \cdot \frac{B}{C}\right)}}\\
t_1 := \frac{180}{\pi} \cdot \tan^{-1} \left(\frac{C}{B}\right)\\
t_2 := \frac{180 \cdot \tan^{-1} \left(\frac{1}{\frac{A - C}{B} + 1}\right)}{\pi}\\
\mathbf{if}\;B \leq -1.3 \cdot 10^{-123}:\\
\;\;\;\;\frac{180}{\pi} \cdot \tan^{-1} \left(\frac{C - \left(A - B\right)}{B}\right)\\
\mathbf{elif}\;B \leq -1.65 \cdot 10^{-187}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;B \leq -5.1 \cdot 10^{-231}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(0.5 \cdot \frac{B}{A}\right)}{\pi}\\
\mathbf{elif}\;B \leq -1.55 \cdot 10^{-294}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;B \leq 2.1 \cdot 10^{-307}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;B \leq 5.2 \cdot 10^{-252}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;B \leq 3 \cdot 10^{-189}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;B \leq 9 \cdot 10^{-104}:\\
\;\;\;\;t_2\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{\left(C - B\right) - A}{B}\right)}{\pi}\\
\end{array}
\end{array}
if B < -1.29999999999999998e-123Initial program 56.7%
associate-*r/56.7%
associate-*l/56.7%
associate-*l/56.7%
*-lft-identity56.7%
sub-neg56.7%
associate-+l-56.6%
sub-neg56.6%
remove-double-neg56.6%
+-commutative56.6%
unpow256.6%
unpow256.6%
hypot-def81.0%
Simplified81.0%
Taylor expanded in B around -inf 77.2%
neg-mul-177.2%
unsub-neg77.2%
Simplified77.2%
if -1.29999999999999998e-123 < B < -1.65e-187 or -5.1e-231 < B < -1.55000000000000002e-294Initial program 29.3%
associate-*r/29.3%
unpow229.3%
Simplified29.3%
*-commutative29.3%
associate--l-28.2%
+-commutative28.2%
unpow228.2%
hypot-udef59.8%
div-inv59.8%
clear-num59.8%
Applied egg-rr59.8%
Taylor expanded in A around 0 25.7%
unpow225.7%
unpow225.7%
hypot-def57.4%
Simplified57.4%
Taylor expanded in C around inf 66.1%
*-un-lft-identity66.1%
associate-/l*66.4%
Applied egg-rr66.4%
if -1.65e-187 < B < -5.1e-231Initial program 72.5%
associate-*l/72.5%
*-lft-identity72.5%
+-commutative72.5%
unpow272.5%
unpow272.5%
hypot-def86.3%
Simplified86.3%
Taylor expanded in A around -inf 72.2%
if -1.55000000000000002e-294 < B < 2.1000000000000001e-307 or 5.1999999999999998e-252 < B < 3e-189Initial program 80.8%
associate-*r/80.8%
associate-*l/80.8%
associate-*l/80.8%
*-lft-identity80.8%
sub-neg80.8%
associate-+l-80.7%
sub-neg80.7%
remove-double-neg80.7%
+-commutative80.7%
unpow280.7%
unpow280.7%
hypot-def87.2%
Simplified87.2%
Taylor expanded in B around -inf 80.6%
neg-mul-180.6%
unsub-neg80.6%
Simplified80.6%
Taylor expanded in C around inf 80.7%
if 2.1000000000000001e-307 < B < 5.1999999999999998e-252 or 3e-189 < B < 8.9999999999999995e-104Initial program 36.5%
associate-*r/36.5%
unpow236.5%
Simplified36.5%
*-commutative36.5%
associate--l-32.5%
+-commutative32.5%
unpow232.5%
hypot-udef58.7%
div-inv58.7%
clear-num58.7%
Applied egg-rr58.7%
Taylor expanded in B around -inf 62.6%
associate-*r/62.6%
neg-mul-162.6%
sub-neg62.6%
+-commutative62.6%
distribute-neg-in62.6%
remove-double-neg62.6%
sub-neg62.6%
Simplified62.6%
if 8.9999999999999995e-104 < B Initial program 58.0%
associate-*l/58.0%
*-lft-identity58.0%
+-commutative58.0%
unpow258.0%
unpow258.0%
hypot-def83.8%
Simplified83.8%
Taylor expanded in B around inf 81.0%
neg-mul-181.0%
unsub-neg81.0%
Simplified81.0%
Final simplification75.9%
(FPCore (A B C)
:precision binary64
(let* ((t_0 (* 180.0 (/ (atan (/ 0.0 B)) PI)))
(t_1 (* (/ 180.0 PI) (atan (/ C B)))))
(if (<= B -7.6e-44)
(* 180.0 (/ (atan 1.0) PI))
(if (<= B -8.2e-191)
(* 180.0 (/ (atan (* -0.5 (/ B C))) PI))
(if (<= B -1.7e-246)
(* 180.0 (/ (atan (* 0.5 (/ B A))) PI))
(if (<= B -2.4e-294)
(* 180.0 (/ (atan (* B (/ -0.5 C))) PI))
(if (<= B 1.35e-307)
t_1
(if (<= B 9.2e-252)
t_0
(if (<= B 2.2e-187)
t_1
(if (<= B 2.2e-100)
t_0
(if (<= B 335000000000.0)
(* 180.0 (/ (atan (/ (* C 2.0) B)) PI))
(* 180.0 (/ (atan -1.0) PI)))))))))))))
double code(double A, double B, double C) {
double t_0 = 180.0 * (atan((0.0 / B)) / ((double) M_PI));
double t_1 = (180.0 / ((double) M_PI)) * atan((C / B));
double tmp;
if (B <= -7.6e-44) {
tmp = 180.0 * (atan(1.0) / ((double) M_PI));
} else if (B <= -8.2e-191) {
tmp = 180.0 * (atan((-0.5 * (B / C))) / ((double) M_PI));
} else if (B <= -1.7e-246) {
tmp = 180.0 * (atan((0.5 * (B / A))) / ((double) M_PI));
} else if (B <= -2.4e-294) {
tmp = 180.0 * (atan((B * (-0.5 / C))) / ((double) M_PI));
} else if (B <= 1.35e-307) {
tmp = t_1;
} else if (B <= 9.2e-252) {
tmp = t_0;
} else if (B <= 2.2e-187) {
tmp = t_1;
} else if (B <= 2.2e-100) {
tmp = t_0;
} else if (B <= 335000000000.0) {
tmp = 180.0 * (atan(((C * 2.0) / 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 t_0 = 180.0 * (Math.atan((0.0 / B)) / Math.PI);
double t_1 = (180.0 / Math.PI) * Math.atan((C / B));
double tmp;
if (B <= -7.6e-44) {
tmp = 180.0 * (Math.atan(1.0) / Math.PI);
} else if (B <= -8.2e-191) {
tmp = 180.0 * (Math.atan((-0.5 * (B / C))) / Math.PI);
} else if (B <= -1.7e-246) {
tmp = 180.0 * (Math.atan((0.5 * (B / A))) / Math.PI);
} else if (B <= -2.4e-294) {
tmp = 180.0 * (Math.atan((B * (-0.5 / C))) / Math.PI);
} else if (B <= 1.35e-307) {
tmp = t_1;
} else if (B <= 9.2e-252) {
tmp = t_0;
} else if (B <= 2.2e-187) {
tmp = t_1;
} else if (B <= 2.2e-100) {
tmp = t_0;
} else if (B <= 335000000000.0) {
tmp = 180.0 * (Math.atan(((C * 2.0) / B)) / Math.PI);
} else {
tmp = 180.0 * (Math.atan(-1.0) / Math.PI);
}
return tmp;
}
def code(A, B, C): t_0 = 180.0 * (math.atan((0.0 / B)) / math.pi) t_1 = (180.0 / math.pi) * math.atan((C / B)) tmp = 0 if B <= -7.6e-44: tmp = 180.0 * (math.atan(1.0) / math.pi) elif B <= -8.2e-191: tmp = 180.0 * (math.atan((-0.5 * (B / C))) / math.pi) elif B <= -1.7e-246: tmp = 180.0 * (math.atan((0.5 * (B / A))) / math.pi) elif B <= -2.4e-294: tmp = 180.0 * (math.atan((B * (-0.5 / C))) / math.pi) elif B <= 1.35e-307: tmp = t_1 elif B <= 9.2e-252: tmp = t_0 elif B <= 2.2e-187: tmp = t_1 elif B <= 2.2e-100: tmp = t_0 elif B <= 335000000000.0: tmp = 180.0 * (math.atan(((C * 2.0) / B)) / math.pi) else: tmp = 180.0 * (math.atan(-1.0) / math.pi) return tmp
function code(A, B, C) t_0 = Float64(180.0 * Float64(atan(Float64(0.0 / B)) / pi)) t_1 = Float64(Float64(180.0 / pi) * atan(Float64(C / B))) tmp = 0.0 if (B <= -7.6e-44) tmp = Float64(180.0 * Float64(atan(1.0) / pi)); elseif (B <= -8.2e-191) tmp = Float64(180.0 * Float64(atan(Float64(-0.5 * Float64(B / C))) / pi)); elseif (B <= -1.7e-246) tmp = Float64(180.0 * Float64(atan(Float64(0.5 * Float64(B / A))) / pi)); elseif (B <= -2.4e-294) tmp = Float64(180.0 * Float64(atan(Float64(B * Float64(-0.5 / C))) / pi)); elseif (B <= 1.35e-307) tmp = t_1; elseif (B <= 9.2e-252) tmp = t_0; elseif (B <= 2.2e-187) tmp = t_1; elseif (B <= 2.2e-100) tmp = t_0; elseif (B <= 335000000000.0) tmp = Float64(180.0 * Float64(atan(Float64(Float64(C * 2.0) / B)) / pi)); else tmp = Float64(180.0 * Float64(atan(-1.0) / pi)); end return tmp end
function tmp_2 = code(A, B, C) t_0 = 180.0 * (atan((0.0 / B)) / pi); t_1 = (180.0 / pi) * atan((C / B)); tmp = 0.0; if (B <= -7.6e-44) tmp = 180.0 * (atan(1.0) / pi); elseif (B <= -8.2e-191) tmp = 180.0 * (atan((-0.5 * (B / C))) / pi); elseif (B <= -1.7e-246) tmp = 180.0 * (atan((0.5 * (B / A))) / pi); elseif (B <= -2.4e-294) tmp = 180.0 * (atan((B * (-0.5 / C))) / pi); elseif (B <= 1.35e-307) tmp = t_1; elseif (B <= 9.2e-252) tmp = t_0; elseif (B <= 2.2e-187) tmp = t_1; elseif (B <= 2.2e-100) tmp = t_0; elseif (B <= 335000000000.0) tmp = 180.0 * (atan(((C * 2.0) / B)) / pi); else tmp = 180.0 * (atan(-1.0) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := Block[{t$95$0 = N[(180.0 * N[(N[ArcTan[N[(0.0 / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(C / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[B, -7.6e-44], N[(180.0 * N[(N[ArcTan[1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -8.2e-191], N[(180.0 * N[(N[ArcTan[N[(-0.5 * N[(B / C), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -1.7e-246], N[(180.0 * N[(N[ArcTan[N[(0.5 * N[(B / A), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -2.4e-294], N[(180.0 * N[(N[ArcTan[N[(B * N[(-0.5 / C), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, 1.35e-307], t$95$1, If[LessEqual[B, 9.2e-252], t$95$0, If[LessEqual[B, 2.2e-187], t$95$1, If[LessEqual[B, 2.2e-100], t$95$0, If[LessEqual[B, 335000000000.0], N[(180.0 * N[(N[ArcTan[N[(N[(C * 2.0), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[-1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := 180 \cdot \frac{\tan^{-1} \left(\frac{0}{B}\right)}{\pi}\\
t_1 := \frac{180}{\pi} \cdot \tan^{-1} \left(\frac{C}{B}\right)\\
\mathbf{if}\;B \leq -7.6 \cdot 10^{-44}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} 1}{\pi}\\
\mathbf{elif}\;B \leq -8.2 \cdot 10^{-191}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(-0.5 \cdot \frac{B}{C}\right)}{\pi}\\
\mathbf{elif}\;B \leq -1.7 \cdot 10^{-246}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(0.5 \cdot \frac{B}{A}\right)}{\pi}\\
\mathbf{elif}\;B \leq -2.4 \cdot 10^{-294}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(B \cdot \frac{-0.5}{C}\right)}{\pi}\\
\mathbf{elif}\;B \leq 1.35 \cdot 10^{-307}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;B \leq 9.2 \cdot 10^{-252}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;B \leq 2.2 \cdot 10^{-187}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;B \leq 2.2 \cdot 10^{-100}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;B \leq 335000000000:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{C \cdot 2}{B}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} -1}{\pi}\\
\end{array}
\end{array}
if B < -7.6000000000000002e-44Initial program 58.6%
associate-*l/58.6%
*-lft-identity58.6%
+-commutative58.6%
unpow258.6%
unpow258.6%
hypot-def87.3%
Simplified87.3%
Taylor expanded in B around -inf 63.3%
if -7.6000000000000002e-44 < B < -8.2000000000000004e-191Initial program 41.6%
associate-*r/41.6%
unpow241.6%
Simplified41.6%
*-commutative41.6%
associate--l-41.5%
+-commutative41.5%
unpow241.5%
hypot-udef58.3%
div-inv58.3%
clear-num58.3%
Applied egg-rr58.3%
Taylor expanded in A around 0 39.7%
unpow239.7%
unpow239.7%
hypot-def56.5%
Simplified56.5%
Taylor expanded in C around inf 49.7%
Taylor expanded in B around 0 49.8%
if -8.2000000000000004e-191 < B < -1.7000000000000001e-246Initial program 49.9%
associate-*l/49.9%
*-lft-identity49.9%
+-commutative49.9%
unpow249.9%
unpow249.9%
hypot-def85.1%
Simplified85.1%
Taylor expanded in A around -inf 73.8%
if -1.7000000000000001e-246 < B < -2.39999999999999997e-294Initial program 36.3%
associate-*r/36.3%
unpow236.3%
Simplified36.3%
*-commutative36.3%
associate--l-36.3%
+-commutative36.3%
unpow236.3%
hypot-udef68.8%
div-inv68.8%
clear-num68.8%
Applied egg-rr68.8%
Taylor expanded in A around 0 25.3%
unpow225.3%
unpow225.3%
hypot-def58.0%
Simplified58.0%
Taylor expanded in C around inf 78.5%
Taylor expanded in B around 0 78.4%
associate-*r/78.4%
associate-/l*78.4%
associate-/r/78.5%
Simplified78.5%
if -2.39999999999999997e-294 < B < 1.34999999999999993e-307 or 9.1999999999999991e-252 < B < 2.20000000000000008e-187Initial program 80.8%
associate-*r/80.8%
associate-*l/80.8%
associate-*l/80.8%
*-lft-identity80.8%
sub-neg80.8%
associate-+l-80.7%
sub-neg80.7%
remove-double-neg80.7%
+-commutative80.7%
unpow280.7%
unpow280.7%
hypot-def87.2%
Simplified87.2%
Taylor expanded in B around -inf 80.6%
neg-mul-180.6%
unsub-neg80.6%
Simplified80.6%
Taylor expanded in C around inf 80.7%
if 1.34999999999999993e-307 < B < 9.1999999999999991e-252 or 2.20000000000000008e-187 < B < 2.19999999999999989e-100Initial program 36.5%
associate-*l/36.5%
*-lft-identity36.5%
+-commutative36.5%
unpow236.5%
unpow236.5%
hypot-def81.2%
Simplified81.2%
Taylor expanded in C around inf 59.5%
distribute-rgt1-in59.5%
metadata-eval59.5%
mul0-lft59.5%
metadata-eval59.5%
Simplified59.5%
if 2.19999999999999989e-100 < B < 3.35e11Initial program 69.2%
associate-*l/69.2%
*-lft-identity69.2%
+-commutative69.2%
unpow269.2%
unpow269.2%
hypot-def75.9%
Simplified75.9%
Taylor expanded in C around -inf 43.2%
if 3.35e11 < B Initial program 54.1%
associate-*l/54.1%
*-lft-identity54.1%
+-commutative54.1%
unpow254.1%
unpow254.1%
hypot-def86.5%
Simplified86.5%
Taylor expanded in B around inf 71.9%
Final simplification63.4%
(FPCore (A B C)
:precision binary64
(let* ((t_0 (* 180.0 (/ (atan (/ 0.0 B)) PI)))
(t_1 (* (/ 180.0 PI) (atan (/ C B)))))
(if (<= B -2.25e-44)
(* 180.0 (/ (atan 1.0) PI))
(if (<= B -8.2e-193)
(* 180.0 (/ (atan (* -0.5 (/ B C))) PI))
(if (<= B -3.8e-246)
(* 180.0 (/ (atan (* 0.5 (/ B A))) PI))
(if (<= B -1.45e-293)
(* 180.0 (/ (atan (* B (/ -0.5 C))) PI))
(if (<= B 9e-308)
t_1
(if (<= B 9.6e-251)
t_0
(if (<= B 2.3e-186)
t_1
(if (<= B 9.6e-104)
t_0
(if (<= B 61000000000.0)
(* (/ 180.0 PI) (atan (* 2.0 (/ C B))))
(* 180.0 (/ (atan -1.0) PI)))))))))))))
double code(double A, double B, double C) {
double t_0 = 180.0 * (atan((0.0 / B)) / ((double) M_PI));
double t_1 = (180.0 / ((double) M_PI)) * atan((C / B));
double tmp;
if (B <= -2.25e-44) {
tmp = 180.0 * (atan(1.0) / ((double) M_PI));
} else if (B <= -8.2e-193) {
tmp = 180.0 * (atan((-0.5 * (B / C))) / ((double) M_PI));
} else if (B <= -3.8e-246) {
tmp = 180.0 * (atan((0.5 * (B / A))) / ((double) M_PI));
} else if (B <= -1.45e-293) {
tmp = 180.0 * (atan((B * (-0.5 / C))) / ((double) M_PI));
} else if (B <= 9e-308) {
tmp = t_1;
} else if (B <= 9.6e-251) {
tmp = t_0;
} else if (B <= 2.3e-186) {
tmp = t_1;
} else if (B <= 9.6e-104) {
tmp = t_0;
} else if (B <= 61000000000.0) {
tmp = (180.0 / ((double) M_PI)) * atan((2.0 * (C / B)));
} else {
tmp = 180.0 * (atan(-1.0) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double t_0 = 180.0 * (Math.atan((0.0 / B)) / Math.PI);
double t_1 = (180.0 / Math.PI) * Math.atan((C / B));
double tmp;
if (B <= -2.25e-44) {
tmp = 180.0 * (Math.atan(1.0) / Math.PI);
} else if (B <= -8.2e-193) {
tmp = 180.0 * (Math.atan((-0.5 * (B / C))) / Math.PI);
} else if (B <= -3.8e-246) {
tmp = 180.0 * (Math.atan((0.5 * (B / A))) / Math.PI);
} else if (B <= -1.45e-293) {
tmp = 180.0 * (Math.atan((B * (-0.5 / C))) / Math.PI);
} else if (B <= 9e-308) {
tmp = t_1;
} else if (B <= 9.6e-251) {
tmp = t_0;
} else if (B <= 2.3e-186) {
tmp = t_1;
} else if (B <= 9.6e-104) {
tmp = t_0;
} else if (B <= 61000000000.0) {
tmp = (180.0 / Math.PI) * Math.atan((2.0 * (C / B)));
} else {
tmp = 180.0 * (Math.atan(-1.0) / Math.PI);
}
return tmp;
}
def code(A, B, C): t_0 = 180.0 * (math.atan((0.0 / B)) / math.pi) t_1 = (180.0 / math.pi) * math.atan((C / B)) tmp = 0 if B <= -2.25e-44: tmp = 180.0 * (math.atan(1.0) / math.pi) elif B <= -8.2e-193: tmp = 180.0 * (math.atan((-0.5 * (B / C))) / math.pi) elif B <= -3.8e-246: tmp = 180.0 * (math.atan((0.5 * (B / A))) / math.pi) elif B <= -1.45e-293: tmp = 180.0 * (math.atan((B * (-0.5 / C))) / math.pi) elif B <= 9e-308: tmp = t_1 elif B <= 9.6e-251: tmp = t_0 elif B <= 2.3e-186: tmp = t_1 elif B <= 9.6e-104: tmp = t_0 elif B <= 61000000000.0: tmp = (180.0 / math.pi) * math.atan((2.0 * (C / B))) else: tmp = 180.0 * (math.atan(-1.0) / math.pi) return tmp
function code(A, B, C) t_0 = Float64(180.0 * Float64(atan(Float64(0.0 / B)) / pi)) t_1 = Float64(Float64(180.0 / pi) * atan(Float64(C / B))) tmp = 0.0 if (B <= -2.25e-44) tmp = Float64(180.0 * Float64(atan(1.0) / pi)); elseif (B <= -8.2e-193) tmp = Float64(180.0 * Float64(atan(Float64(-0.5 * Float64(B / C))) / pi)); elseif (B <= -3.8e-246) tmp = Float64(180.0 * Float64(atan(Float64(0.5 * Float64(B / A))) / pi)); elseif (B <= -1.45e-293) tmp = Float64(180.0 * Float64(atan(Float64(B * Float64(-0.5 / C))) / pi)); elseif (B <= 9e-308) tmp = t_1; elseif (B <= 9.6e-251) tmp = t_0; elseif (B <= 2.3e-186) tmp = t_1; elseif (B <= 9.6e-104) tmp = t_0; elseif (B <= 61000000000.0) tmp = Float64(Float64(180.0 / pi) * atan(Float64(2.0 * Float64(C / B)))); else tmp = Float64(180.0 * Float64(atan(-1.0) / pi)); end return tmp end
function tmp_2 = code(A, B, C) t_0 = 180.0 * (atan((0.0 / B)) / pi); t_1 = (180.0 / pi) * atan((C / B)); tmp = 0.0; if (B <= -2.25e-44) tmp = 180.0 * (atan(1.0) / pi); elseif (B <= -8.2e-193) tmp = 180.0 * (atan((-0.5 * (B / C))) / pi); elseif (B <= -3.8e-246) tmp = 180.0 * (atan((0.5 * (B / A))) / pi); elseif (B <= -1.45e-293) tmp = 180.0 * (atan((B * (-0.5 / C))) / pi); elseif (B <= 9e-308) tmp = t_1; elseif (B <= 9.6e-251) tmp = t_0; elseif (B <= 2.3e-186) tmp = t_1; elseif (B <= 9.6e-104) tmp = t_0; elseif (B <= 61000000000.0) tmp = (180.0 / pi) * atan((2.0 * (C / B))); else tmp = 180.0 * (atan(-1.0) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := Block[{t$95$0 = N[(180.0 * N[(N[ArcTan[N[(0.0 / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(C / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[B, -2.25e-44], N[(180.0 * N[(N[ArcTan[1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -8.2e-193], N[(180.0 * N[(N[ArcTan[N[(-0.5 * N[(B / C), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -3.8e-246], N[(180.0 * N[(N[ArcTan[N[(0.5 * N[(B / A), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -1.45e-293], N[(180.0 * N[(N[ArcTan[N[(B * N[(-0.5 / C), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, 9e-308], t$95$1, If[LessEqual[B, 9.6e-251], t$95$0, If[LessEqual[B, 2.3e-186], t$95$1, If[LessEqual[B, 9.6e-104], t$95$0, If[LessEqual[B, 61000000000.0], N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(2.0 * N[(C / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[-1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := 180 \cdot \frac{\tan^{-1} \left(\frac{0}{B}\right)}{\pi}\\
t_1 := \frac{180}{\pi} \cdot \tan^{-1} \left(\frac{C}{B}\right)\\
\mathbf{if}\;B \leq -2.25 \cdot 10^{-44}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} 1}{\pi}\\
\mathbf{elif}\;B \leq -8.2 \cdot 10^{-193}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(-0.5 \cdot \frac{B}{C}\right)}{\pi}\\
\mathbf{elif}\;B \leq -3.8 \cdot 10^{-246}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(0.5 \cdot \frac{B}{A}\right)}{\pi}\\
\mathbf{elif}\;B \leq -1.45 \cdot 10^{-293}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(B \cdot \frac{-0.5}{C}\right)}{\pi}\\
\mathbf{elif}\;B \leq 9 \cdot 10^{-308}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;B \leq 9.6 \cdot 10^{-251}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;B \leq 2.3 \cdot 10^{-186}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;B \leq 9.6 \cdot 10^{-104}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;B \leq 61000000000:\\
\;\;\;\;\frac{180}{\pi} \cdot \tan^{-1} \left(2 \cdot \frac{C}{B}\right)\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} -1}{\pi}\\
\end{array}
\end{array}
if B < -2.2499999999999999e-44Initial program 58.6%
associate-*l/58.6%
*-lft-identity58.6%
+-commutative58.6%
unpow258.6%
unpow258.6%
hypot-def87.3%
Simplified87.3%
Taylor expanded in B around -inf 63.3%
if -2.2499999999999999e-44 < B < -8.20000000000000005e-193Initial program 41.6%
associate-*r/41.6%
unpow241.6%
Simplified41.6%
*-commutative41.6%
associate--l-41.5%
+-commutative41.5%
unpow241.5%
hypot-udef58.3%
div-inv58.3%
clear-num58.3%
Applied egg-rr58.3%
Taylor expanded in A around 0 39.7%
unpow239.7%
unpow239.7%
hypot-def56.5%
Simplified56.5%
Taylor expanded in C around inf 49.7%
Taylor expanded in B around 0 49.8%
if -8.20000000000000005e-193 < B < -3.79999999999999976e-246Initial program 49.9%
associate-*l/49.9%
*-lft-identity49.9%
+-commutative49.9%
unpow249.9%
unpow249.9%
hypot-def85.1%
Simplified85.1%
Taylor expanded in A around -inf 73.8%
if -3.79999999999999976e-246 < B < -1.45e-293Initial program 36.3%
associate-*r/36.3%
unpow236.3%
Simplified36.3%
*-commutative36.3%
associate--l-36.3%
+-commutative36.3%
unpow236.3%
hypot-udef68.8%
div-inv68.8%
clear-num68.8%
Applied egg-rr68.8%
Taylor expanded in A around 0 25.3%
unpow225.3%
unpow225.3%
hypot-def58.0%
Simplified58.0%
Taylor expanded in C around inf 78.5%
Taylor expanded in B around 0 78.4%
associate-*r/78.4%
associate-/l*78.4%
associate-/r/78.5%
Simplified78.5%
if -1.45e-293 < B < 9.00000000000000017e-308 or 9.59999999999999984e-251 < B < 2.3000000000000001e-186Initial program 80.8%
associate-*r/80.8%
associate-*l/80.8%
associate-*l/80.8%
*-lft-identity80.8%
sub-neg80.8%
associate-+l-80.7%
sub-neg80.7%
remove-double-neg80.7%
+-commutative80.7%
unpow280.7%
unpow280.7%
hypot-def87.2%
Simplified87.2%
Taylor expanded in B around -inf 80.6%
neg-mul-180.6%
unsub-neg80.6%
Simplified80.6%
Taylor expanded in C around inf 80.7%
if 9.00000000000000017e-308 < B < 9.59999999999999984e-251 or 2.3000000000000001e-186 < B < 9.6000000000000003e-104Initial program 36.5%
associate-*l/36.5%
*-lft-identity36.5%
+-commutative36.5%
unpow236.5%
unpow236.5%
hypot-def81.2%
Simplified81.2%
Taylor expanded in C around inf 59.5%
distribute-rgt1-in59.5%
metadata-eval59.5%
mul0-lft59.5%
metadata-eval59.5%
Simplified59.5%
if 9.6000000000000003e-104 < B < 6.1e10Initial program 69.2%
associate-*r/69.2%
associate-*l/69.3%
associate-*l/69.3%
*-lft-identity69.3%
sub-neg69.3%
associate-+l-69.3%
sub-neg69.3%
remove-double-neg69.3%
+-commutative69.3%
unpow269.3%
unpow269.3%
hypot-def75.9%
Simplified75.9%
Taylor expanded in C around -inf 43.3%
mul-1-neg43.3%
Simplified43.3%
Taylor expanded in C around 0 43.3%
if 6.1e10 < B Initial program 54.1%
associate-*l/54.1%
*-lft-identity54.1%
+-commutative54.1%
unpow254.1%
unpow254.1%
hypot-def86.5%
Simplified86.5%
Taylor expanded in B around inf 71.9%
Final simplification63.4%
(FPCore (A B C)
:precision binary64
(let* ((t_0 (* 180.0 (/ (atan (/ 0.0 B)) PI)))
(t_1 (/ 180.0 (/ PI (atan (* -0.5 (/ B C))))))
(t_2 (* (/ 180.0 PI) (atan (/ C B)))))
(if (<= B -4.2e-125)
(* 180.0 (/ (atan (/ (- (+ B C) A) B)) PI))
(if (<= B -5.5e-194)
t_1
(if (<= B -8.2e-238)
(* 180.0 (/ (atan (* 0.5 (/ B A))) PI))
(if (<= B -6.4e-292)
t_1
(if (<= B 2e-307)
t_2
(if (<= B 4.6e-252)
t_0
(if (<= B 1.05e-186)
t_2
(if (<= B 9e-104)
t_0
(* 180.0 (/ (atan (/ (- (- C B) A) B)) PI))))))))))))
double code(double A, double B, double C) {
double t_0 = 180.0 * (atan((0.0 / B)) / ((double) M_PI));
double t_1 = 180.0 / (((double) M_PI) / atan((-0.5 * (B / C))));
double t_2 = (180.0 / ((double) M_PI)) * atan((C / B));
double tmp;
if (B <= -4.2e-125) {
tmp = 180.0 * (atan((((B + C) - A) / B)) / ((double) M_PI));
} else if (B <= -5.5e-194) {
tmp = t_1;
} else if (B <= -8.2e-238) {
tmp = 180.0 * (atan((0.5 * (B / A))) / ((double) M_PI));
} else if (B <= -6.4e-292) {
tmp = t_1;
} else if (B <= 2e-307) {
tmp = t_2;
} else if (B <= 4.6e-252) {
tmp = t_0;
} else if (B <= 1.05e-186) {
tmp = t_2;
} else if (B <= 9e-104) {
tmp = t_0;
} else {
tmp = 180.0 * (atan((((C - B) - A) / B)) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double t_0 = 180.0 * (Math.atan((0.0 / B)) / Math.PI);
double t_1 = 180.0 / (Math.PI / Math.atan((-0.5 * (B / C))));
double t_2 = (180.0 / Math.PI) * Math.atan((C / B));
double tmp;
if (B <= -4.2e-125) {
tmp = 180.0 * (Math.atan((((B + C) - A) / B)) / Math.PI);
} else if (B <= -5.5e-194) {
tmp = t_1;
} else if (B <= -8.2e-238) {
tmp = 180.0 * (Math.atan((0.5 * (B / A))) / Math.PI);
} else if (B <= -6.4e-292) {
tmp = t_1;
} else if (B <= 2e-307) {
tmp = t_2;
} else if (B <= 4.6e-252) {
tmp = t_0;
} else if (B <= 1.05e-186) {
tmp = t_2;
} else if (B <= 9e-104) {
tmp = t_0;
} else {
tmp = 180.0 * (Math.atan((((C - B) - A) / B)) / Math.PI);
}
return tmp;
}
def code(A, B, C): t_0 = 180.0 * (math.atan((0.0 / B)) / math.pi) t_1 = 180.0 / (math.pi / math.atan((-0.5 * (B / C)))) t_2 = (180.0 / math.pi) * math.atan((C / B)) tmp = 0 if B <= -4.2e-125: tmp = 180.0 * (math.atan((((B + C) - A) / B)) / math.pi) elif B <= -5.5e-194: tmp = t_1 elif B <= -8.2e-238: tmp = 180.0 * (math.atan((0.5 * (B / A))) / math.pi) elif B <= -6.4e-292: tmp = t_1 elif B <= 2e-307: tmp = t_2 elif B <= 4.6e-252: tmp = t_0 elif B <= 1.05e-186: tmp = t_2 elif B <= 9e-104: tmp = t_0 else: tmp = 180.0 * (math.atan((((C - B) - A) / B)) / math.pi) return tmp
function code(A, B, C) t_0 = Float64(180.0 * Float64(atan(Float64(0.0 / B)) / pi)) t_1 = Float64(180.0 / Float64(pi / atan(Float64(-0.5 * Float64(B / C))))) t_2 = Float64(Float64(180.0 / pi) * atan(Float64(C / B))) tmp = 0.0 if (B <= -4.2e-125) tmp = Float64(180.0 * Float64(atan(Float64(Float64(Float64(B + C) - A) / B)) / pi)); elseif (B <= -5.5e-194) tmp = t_1; elseif (B <= -8.2e-238) tmp = Float64(180.0 * Float64(atan(Float64(0.5 * Float64(B / A))) / pi)); elseif (B <= -6.4e-292) tmp = t_1; elseif (B <= 2e-307) tmp = t_2; elseif (B <= 4.6e-252) tmp = t_0; elseif (B <= 1.05e-186) tmp = t_2; elseif (B <= 9e-104) tmp = t_0; else tmp = Float64(180.0 * Float64(atan(Float64(Float64(Float64(C - B) - A) / B)) / pi)); end return tmp end
function tmp_2 = code(A, B, C) t_0 = 180.0 * (atan((0.0 / B)) / pi); t_1 = 180.0 / (pi / atan((-0.5 * (B / C)))); t_2 = (180.0 / pi) * atan((C / B)); tmp = 0.0; if (B <= -4.2e-125) tmp = 180.0 * (atan((((B + C) - A) / B)) / pi); elseif (B <= -5.5e-194) tmp = t_1; elseif (B <= -8.2e-238) tmp = 180.0 * (atan((0.5 * (B / A))) / pi); elseif (B <= -6.4e-292) tmp = t_1; elseif (B <= 2e-307) tmp = t_2; elseif (B <= 4.6e-252) tmp = t_0; elseif (B <= 1.05e-186) tmp = t_2; elseif (B <= 9e-104) tmp = t_0; else tmp = 180.0 * (atan((((C - B) - A) / B)) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := Block[{t$95$0 = N[(180.0 * N[(N[ArcTan[N[(0.0 / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(180.0 / N[(Pi / N[ArcTan[N[(-0.5 * N[(B / C), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(C / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[B, -4.2e-125], N[(180.0 * N[(N[ArcTan[N[(N[(N[(B + C), $MachinePrecision] - A), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -5.5e-194], t$95$1, If[LessEqual[B, -8.2e-238], N[(180.0 * N[(N[ArcTan[N[(0.5 * N[(B / A), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -6.4e-292], t$95$1, If[LessEqual[B, 2e-307], t$95$2, If[LessEqual[B, 4.6e-252], t$95$0, If[LessEqual[B, 1.05e-186], t$95$2, If[LessEqual[B, 9e-104], t$95$0, N[(180.0 * N[(N[ArcTan[N[(N[(N[(C - B), $MachinePrecision] - A), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := 180 \cdot \frac{\tan^{-1} \left(\frac{0}{B}\right)}{\pi}\\
t_1 := \frac{180}{\frac{\pi}{\tan^{-1} \left(-0.5 \cdot \frac{B}{C}\right)}}\\
t_2 := \frac{180}{\pi} \cdot \tan^{-1} \left(\frac{C}{B}\right)\\
\mathbf{if}\;B \leq -4.2 \cdot 10^{-125}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{\left(B + C\right) - A}{B}\right)}{\pi}\\
\mathbf{elif}\;B \leq -5.5 \cdot 10^{-194}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;B \leq -8.2 \cdot 10^{-238}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(0.5 \cdot \frac{B}{A}\right)}{\pi}\\
\mathbf{elif}\;B \leq -6.4 \cdot 10^{-292}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;B \leq 2 \cdot 10^{-307}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;B \leq 4.6 \cdot 10^{-252}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;B \leq 1.05 \cdot 10^{-186}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;B \leq 9 \cdot 10^{-104}:\\
\;\;\;\;t_0\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{\left(C - B\right) - A}{B}\right)}{\pi}\\
\end{array}
\end{array}
if B < -4.2e-125Initial program 56.7%
associate-*l/56.6%
*-lft-identity56.6%
+-commutative56.6%
unpow256.6%
unpow256.6%
hypot-def83.2%
Simplified83.2%
Taylor expanded in B around -inf 77.2%
if -4.2e-125 < B < -5.49999999999999941e-194 or -8.2000000000000002e-238 < B < -6.4000000000000003e-292Initial program 29.3%
associate-*r/29.3%
unpow229.3%
Simplified29.3%
*-commutative29.3%
associate--l-28.2%
+-commutative28.2%
unpow228.2%
hypot-udef59.8%
div-inv59.8%
clear-num59.8%
Applied egg-rr59.8%
Taylor expanded in A around 0 25.7%
unpow225.7%
unpow225.7%
hypot-def57.4%
Simplified57.4%
Taylor expanded in C around inf 66.1%
*-un-lft-identity66.1%
associate-/l*66.4%
Applied egg-rr66.4%
if -5.49999999999999941e-194 < B < -8.2000000000000002e-238Initial program 72.5%
associate-*l/72.5%
*-lft-identity72.5%
+-commutative72.5%
unpow272.5%
unpow272.5%
hypot-def86.3%
Simplified86.3%
Taylor expanded in A around -inf 72.2%
if -6.4000000000000003e-292 < B < 1.99999999999999982e-307 or 4.5999999999999996e-252 < B < 1.0500000000000001e-186Initial program 80.8%
associate-*r/80.8%
associate-*l/80.8%
associate-*l/80.8%
*-lft-identity80.8%
sub-neg80.8%
associate-+l-80.7%
sub-neg80.7%
remove-double-neg80.7%
+-commutative80.7%
unpow280.7%
unpow280.7%
hypot-def87.2%
Simplified87.2%
Taylor expanded in B around -inf 80.6%
neg-mul-180.6%
unsub-neg80.6%
Simplified80.6%
Taylor expanded in C around inf 80.7%
if 1.99999999999999982e-307 < B < 4.5999999999999996e-252 or 1.0500000000000001e-186 < B < 8.9999999999999995e-104Initial program 36.5%
associate-*l/36.5%
*-lft-identity36.5%
+-commutative36.5%
unpow236.5%
unpow236.5%
hypot-def81.2%
Simplified81.2%
Taylor expanded in C around inf 59.5%
distribute-rgt1-in59.5%
metadata-eval59.5%
mul0-lft59.5%
metadata-eval59.5%
Simplified59.5%
if 8.9999999999999995e-104 < B Initial program 58.0%
associate-*l/58.0%
*-lft-identity58.0%
+-commutative58.0%
unpow258.0%
unpow258.0%
hypot-def83.8%
Simplified83.8%
Taylor expanded in B around inf 81.0%
neg-mul-181.0%
unsub-neg81.0%
Simplified81.0%
Final simplification75.5%
(FPCore (A B C)
:precision binary64
(let* ((t_0 (/ 180.0 (/ PI (atan (* -0.5 (/ B C))))))
(t_1 (* (/ 180.0 PI) (atan (/ C B))))
(t_2 (* 180.0 (/ (atan (/ 0.0 B)) PI))))
(if (<= B -3.6e-125)
(* (/ 180.0 PI) (atan (/ (- C (- A B)) B)))
(if (<= B -8.5e-195)
t_0
(if (<= B -4.4e-238)
(* 180.0 (/ (atan (* 0.5 (/ B A))) PI))
(if (<= B -2.75e-294)
t_0
(if (<= B 1.6e-307)
t_1
(if (<= B 6.5e-252)
t_2
(if (<= B 2.6e-187)
t_1
(if (<= B 9.8e-104)
t_2
(* 180.0 (/ (atan (/ (- (- C B) A) B)) PI))))))))))))
double code(double A, double B, double C) {
double t_0 = 180.0 / (((double) M_PI) / atan((-0.5 * (B / C))));
double t_1 = (180.0 / ((double) M_PI)) * atan((C / B));
double t_2 = 180.0 * (atan((0.0 / B)) / ((double) M_PI));
double tmp;
if (B <= -3.6e-125) {
tmp = (180.0 / ((double) M_PI)) * atan(((C - (A - B)) / B));
} else if (B <= -8.5e-195) {
tmp = t_0;
} else if (B <= -4.4e-238) {
tmp = 180.0 * (atan((0.5 * (B / A))) / ((double) M_PI));
} else if (B <= -2.75e-294) {
tmp = t_0;
} else if (B <= 1.6e-307) {
tmp = t_1;
} else if (B <= 6.5e-252) {
tmp = t_2;
} else if (B <= 2.6e-187) {
tmp = t_1;
} else if (B <= 9.8e-104) {
tmp = t_2;
} else {
tmp = 180.0 * (atan((((C - B) - A) / B)) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double t_0 = 180.0 / (Math.PI / Math.atan((-0.5 * (B / C))));
double t_1 = (180.0 / Math.PI) * Math.atan((C / B));
double t_2 = 180.0 * (Math.atan((0.0 / B)) / Math.PI);
double tmp;
if (B <= -3.6e-125) {
tmp = (180.0 / Math.PI) * Math.atan(((C - (A - B)) / B));
} else if (B <= -8.5e-195) {
tmp = t_0;
} else if (B <= -4.4e-238) {
tmp = 180.0 * (Math.atan((0.5 * (B / A))) / Math.PI);
} else if (B <= -2.75e-294) {
tmp = t_0;
} else if (B <= 1.6e-307) {
tmp = t_1;
} else if (B <= 6.5e-252) {
tmp = t_2;
} else if (B <= 2.6e-187) {
tmp = t_1;
} else if (B <= 9.8e-104) {
tmp = t_2;
} else {
tmp = 180.0 * (Math.atan((((C - B) - A) / B)) / Math.PI);
}
return tmp;
}
def code(A, B, C): t_0 = 180.0 / (math.pi / math.atan((-0.5 * (B / C)))) t_1 = (180.0 / math.pi) * math.atan((C / B)) t_2 = 180.0 * (math.atan((0.0 / B)) / math.pi) tmp = 0 if B <= -3.6e-125: tmp = (180.0 / math.pi) * math.atan(((C - (A - B)) / B)) elif B <= -8.5e-195: tmp = t_0 elif B <= -4.4e-238: tmp = 180.0 * (math.atan((0.5 * (B / A))) / math.pi) elif B <= -2.75e-294: tmp = t_0 elif B <= 1.6e-307: tmp = t_1 elif B <= 6.5e-252: tmp = t_2 elif B <= 2.6e-187: tmp = t_1 elif B <= 9.8e-104: tmp = t_2 else: tmp = 180.0 * (math.atan((((C - B) - A) / B)) / math.pi) return tmp
function code(A, B, C) t_0 = Float64(180.0 / Float64(pi / atan(Float64(-0.5 * Float64(B / C))))) t_1 = Float64(Float64(180.0 / pi) * atan(Float64(C / B))) t_2 = Float64(180.0 * Float64(atan(Float64(0.0 / B)) / pi)) tmp = 0.0 if (B <= -3.6e-125) tmp = Float64(Float64(180.0 / pi) * atan(Float64(Float64(C - Float64(A - B)) / B))); elseif (B <= -8.5e-195) tmp = t_0; elseif (B <= -4.4e-238) tmp = Float64(180.0 * Float64(atan(Float64(0.5 * Float64(B / A))) / pi)); elseif (B <= -2.75e-294) tmp = t_0; elseif (B <= 1.6e-307) tmp = t_1; elseif (B <= 6.5e-252) tmp = t_2; elseif (B <= 2.6e-187) tmp = t_1; elseif (B <= 9.8e-104) tmp = t_2; else tmp = Float64(180.0 * Float64(atan(Float64(Float64(Float64(C - B) - A) / B)) / pi)); end return tmp end
function tmp_2 = code(A, B, C) t_0 = 180.0 / (pi / atan((-0.5 * (B / C)))); t_1 = (180.0 / pi) * atan((C / B)); t_2 = 180.0 * (atan((0.0 / B)) / pi); tmp = 0.0; if (B <= -3.6e-125) tmp = (180.0 / pi) * atan(((C - (A - B)) / B)); elseif (B <= -8.5e-195) tmp = t_0; elseif (B <= -4.4e-238) tmp = 180.0 * (atan((0.5 * (B / A))) / pi); elseif (B <= -2.75e-294) tmp = t_0; elseif (B <= 1.6e-307) tmp = t_1; elseif (B <= 6.5e-252) tmp = t_2; elseif (B <= 2.6e-187) tmp = t_1; elseif (B <= 9.8e-104) tmp = t_2; else tmp = 180.0 * (atan((((C - B) - A) / B)) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := Block[{t$95$0 = N[(180.0 / N[(Pi / N[ArcTan[N[(-0.5 * N[(B / C), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(C / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(180.0 * N[(N[ArcTan[N[(0.0 / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[B, -3.6e-125], N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(N[(C - N[(A - B), $MachinePrecision]), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -8.5e-195], t$95$0, If[LessEqual[B, -4.4e-238], N[(180.0 * N[(N[ArcTan[N[(0.5 * N[(B / A), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -2.75e-294], t$95$0, If[LessEqual[B, 1.6e-307], t$95$1, If[LessEqual[B, 6.5e-252], t$95$2, If[LessEqual[B, 2.6e-187], t$95$1, If[LessEqual[B, 9.8e-104], t$95$2, N[(180.0 * N[(N[ArcTan[N[(N[(N[(C - B), $MachinePrecision] - A), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{180}{\frac{\pi}{\tan^{-1} \left(-0.5 \cdot \frac{B}{C}\right)}}\\
t_1 := \frac{180}{\pi} \cdot \tan^{-1} \left(\frac{C}{B}\right)\\
t_2 := 180 \cdot \frac{\tan^{-1} \left(\frac{0}{B}\right)}{\pi}\\
\mathbf{if}\;B \leq -3.6 \cdot 10^{-125}:\\
\;\;\;\;\frac{180}{\pi} \cdot \tan^{-1} \left(\frac{C - \left(A - B\right)}{B}\right)\\
\mathbf{elif}\;B \leq -8.5 \cdot 10^{-195}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;B \leq -4.4 \cdot 10^{-238}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(0.5 \cdot \frac{B}{A}\right)}{\pi}\\
\mathbf{elif}\;B \leq -2.75 \cdot 10^{-294}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;B \leq 1.6 \cdot 10^{-307}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;B \leq 6.5 \cdot 10^{-252}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;B \leq 2.6 \cdot 10^{-187}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;B \leq 9.8 \cdot 10^{-104}:\\
\;\;\;\;t_2\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{\left(C - B\right) - A}{B}\right)}{\pi}\\
\end{array}
\end{array}
if B < -3.6000000000000002e-125Initial program 56.7%
associate-*r/56.7%
associate-*l/56.7%
associate-*l/56.7%
*-lft-identity56.7%
sub-neg56.7%
associate-+l-56.6%
sub-neg56.6%
remove-double-neg56.6%
+-commutative56.6%
unpow256.6%
unpow256.6%
hypot-def81.0%
Simplified81.0%
Taylor expanded in B around -inf 77.2%
neg-mul-177.2%
unsub-neg77.2%
Simplified77.2%
if -3.6000000000000002e-125 < B < -8.50000000000000023e-195 or -4.39999999999999982e-238 < B < -2.75e-294Initial program 29.3%
associate-*r/29.3%
unpow229.3%
Simplified29.3%
*-commutative29.3%
associate--l-28.2%
+-commutative28.2%
unpow228.2%
hypot-udef59.8%
div-inv59.8%
clear-num59.8%
Applied egg-rr59.8%
Taylor expanded in A around 0 25.7%
unpow225.7%
unpow225.7%
hypot-def57.4%
Simplified57.4%
Taylor expanded in C around inf 66.1%
*-un-lft-identity66.1%
associate-/l*66.4%
Applied egg-rr66.4%
if -8.50000000000000023e-195 < B < -4.39999999999999982e-238Initial program 72.5%
associate-*l/72.5%
*-lft-identity72.5%
+-commutative72.5%
unpow272.5%
unpow272.5%
hypot-def86.3%
Simplified86.3%
Taylor expanded in A around -inf 72.2%
if -2.75e-294 < B < 1.60000000000000005e-307 or 6.4999999999999998e-252 < B < 2.5999999999999999e-187Initial program 80.8%
associate-*r/80.8%
associate-*l/80.8%
associate-*l/80.8%
*-lft-identity80.8%
sub-neg80.8%
associate-+l-80.7%
sub-neg80.7%
remove-double-neg80.7%
+-commutative80.7%
unpow280.7%
unpow280.7%
hypot-def87.2%
Simplified87.2%
Taylor expanded in B around -inf 80.6%
neg-mul-180.6%
unsub-neg80.6%
Simplified80.6%
Taylor expanded in C around inf 80.7%
if 1.60000000000000005e-307 < B < 6.4999999999999998e-252 or 2.5999999999999999e-187 < B < 9.8000000000000006e-104Initial program 36.5%
associate-*l/36.5%
*-lft-identity36.5%
+-commutative36.5%
unpow236.5%
unpow236.5%
hypot-def81.2%
Simplified81.2%
Taylor expanded in C around inf 59.5%
distribute-rgt1-in59.5%
metadata-eval59.5%
mul0-lft59.5%
metadata-eval59.5%
Simplified59.5%
if 9.8000000000000006e-104 < B Initial program 58.0%
associate-*l/58.0%
*-lft-identity58.0%
+-commutative58.0%
unpow258.0%
unpow258.0%
hypot-def83.8%
Simplified83.8%
Taylor expanded in B around inf 81.0%
neg-mul-181.0%
unsub-neg81.0%
Simplified81.0%
Final simplification75.5%
(FPCore (A B C)
:precision binary64
(let* ((t_0 (* 180.0 (/ (atan (* -0.5 (/ B C))) PI)))
(t_1 (* (/ 180.0 PI) (atan (/ C B))))
(t_2 (* 180.0 (/ (atan (/ 0.0 B)) PI))))
(if (<= B -9e-47)
(* 180.0 (/ (atan 1.0) PI))
(if (<= B -3.5e-199)
t_0
(if (<= B -3.8e-246)
(* 180.0 (/ (atan (* 0.5 (/ B A))) PI))
(if (<= B -7.6e-295)
t_0
(if (<= B 1.56e-307)
t_1
(if (<= B 1.35e-250)
t_2
(if (<= B 1.6e-189)
t_1
(if (<= B 4.8e-101)
t_2
(if (<= B 3.5e+14)
t_1
(* 180.0 (/ (atan -1.0) PI)))))))))))))
double code(double A, double B, double C) {
double t_0 = 180.0 * (atan((-0.5 * (B / C))) / ((double) M_PI));
double t_1 = (180.0 / ((double) M_PI)) * atan((C / B));
double t_2 = 180.0 * (atan((0.0 / B)) / ((double) M_PI));
double tmp;
if (B <= -9e-47) {
tmp = 180.0 * (atan(1.0) / ((double) M_PI));
} else if (B <= -3.5e-199) {
tmp = t_0;
} else if (B <= -3.8e-246) {
tmp = 180.0 * (atan((0.5 * (B / A))) / ((double) M_PI));
} else if (B <= -7.6e-295) {
tmp = t_0;
} else if (B <= 1.56e-307) {
tmp = t_1;
} else if (B <= 1.35e-250) {
tmp = t_2;
} else if (B <= 1.6e-189) {
tmp = t_1;
} else if (B <= 4.8e-101) {
tmp = t_2;
} else if (B <= 3.5e+14) {
tmp = t_1;
} else {
tmp = 180.0 * (atan(-1.0) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double t_0 = 180.0 * (Math.atan((-0.5 * (B / C))) / Math.PI);
double t_1 = (180.0 / Math.PI) * Math.atan((C / B));
double t_2 = 180.0 * (Math.atan((0.0 / B)) / Math.PI);
double tmp;
if (B <= -9e-47) {
tmp = 180.0 * (Math.atan(1.0) / Math.PI);
} else if (B <= -3.5e-199) {
tmp = t_0;
} else if (B <= -3.8e-246) {
tmp = 180.0 * (Math.atan((0.5 * (B / A))) / Math.PI);
} else if (B <= -7.6e-295) {
tmp = t_0;
} else if (B <= 1.56e-307) {
tmp = t_1;
} else if (B <= 1.35e-250) {
tmp = t_2;
} else if (B <= 1.6e-189) {
tmp = t_1;
} else if (B <= 4.8e-101) {
tmp = t_2;
} else if (B <= 3.5e+14) {
tmp = t_1;
} else {
tmp = 180.0 * (Math.atan(-1.0) / Math.PI);
}
return tmp;
}
def code(A, B, C): t_0 = 180.0 * (math.atan((-0.5 * (B / C))) / math.pi) t_1 = (180.0 / math.pi) * math.atan((C / B)) t_2 = 180.0 * (math.atan((0.0 / B)) / math.pi) tmp = 0 if B <= -9e-47: tmp = 180.0 * (math.atan(1.0) / math.pi) elif B <= -3.5e-199: tmp = t_0 elif B <= -3.8e-246: tmp = 180.0 * (math.atan((0.5 * (B / A))) / math.pi) elif B <= -7.6e-295: tmp = t_0 elif B <= 1.56e-307: tmp = t_1 elif B <= 1.35e-250: tmp = t_2 elif B <= 1.6e-189: tmp = t_1 elif B <= 4.8e-101: tmp = t_2 elif B <= 3.5e+14: tmp = t_1 else: tmp = 180.0 * (math.atan(-1.0) / math.pi) return tmp
function code(A, B, C) t_0 = Float64(180.0 * Float64(atan(Float64(-0.5 * Float64(B / C))) / pi)) t_1 = Float64(Float64(180.0 / pi) * atan(Float64(C / B))) t_2 = Float64(180.0 * Float64(atan(Float64(0.0 / B)) / pi)) tmp = 0.0 if (B <= -9e-47) tmp = Float64(180.0 * Float64(atan(1.0) / pi)); elseif (B <= -3.5e-199) tmp = t_0; elseif (B <= -3.8e-246) tmp = Float64(180.0 * Float64(atan(Float64(0.5 * Float64(B / A))) / pi)); elseif (B <= -7.6e-295) tmp = t_0; elseif (B <= 1.56e-307) tmp = t_1; elseif (B <= 1.35e-250) tmp = t_2; elseif (B <= 1.6e-189) tmp = t_1; elseif (B <= 4.8e-101) tmp = t_2; elseif (B <= 3.5e+14) tmp = t_1; else tmp = Float64(180.0 * Float64(atan(-1.0) / pi)); end return tmp end
function tmp_2 = code(A, B, C) t_0 = 180.0 * (atan((-0.5 * (B / C))) / pi); t_1 = (180.0 / pi) * atan((C / B)); t_2 = 180.0 * (atan((0.0 / B)) / pi); tmp = 0.0; if (B <= -9e-47) tmp = 180.0 * (atan(1.0) / pi); elseif (B <= -3.5e-199) tmp = t_0; elseif (B <= -3.8e-246) tmp = 180.0 * (atan((0.5 * (B / A))) / pi); elseif (B <= -7.6e-295) tmp = t_0; elseif (B <= 1.56e-307) tmp = t_1; elseif (B <= 1.35e-250) tmp = t_2; elseif (B <= 1.6e-189) tmp = t_1; elseif (B <= 4.8e-101) tmp = t_2; elseif (B <= 3.5e+14) tmp = t_1; else tmp = 180.0 * (atan(-1.0) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := Block[{t$95$0 = N[(180.0 * N[(N[ArcTan[N[(-0.5 * N[(B / C), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(C / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(180.0 * N[(N[ArcTan[N[(0.0 / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[B, -9e-47], N[(180.0 * N[(N[ArcTan[1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -3.5e-199], t$95$0, If[LessEqual[B, -3.8e-246], N[(180.0 * N[(N[ArcTan[N[(0.5 * N[(B / A), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -7.6e-295], t$95$0, If[LessEqual[B, 1.56e-307], t$95$1, If[LessEqual[B, 1.35e-250], t$95$2, If[LessEqual[B, 1.6e-189], t$95$1, If[LessEqual[B, 4.8e-101], t$95$2, If[LessEqual[B, 3.5e+14], t$95$1, N[(180.0 * N[(N[ArcTan[-1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := 180 \cdot \frac{\tan^{-1} \left(-0.5 \cdot \frac{B}{C}\right)}{\pi}\\
t_1 := \frac{180}{\pi} \cdot \tan^{-1} \left(\frac{C}{B}\right)\\
t_2 := 180 \cdot \frac{\tan^{-1} \left(\frac{0}{B}\right)}{\pi}\\
\mathbf{if}\;B \leq -9 \cdot 10^{-47}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} 1}{\pi}\\
\mathbf{elif}\;B \leq -3.5 \cdot 10^{-199}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;B \leq -3.8 \cdot 10^{-246}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(0.5 \cdot \frac{B}{A}\right)}{\pi}\\
\mathbf{elif}\;B \leq -7.6 \cdot 10^{-295}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;B \leq 1.56 \cdot 10^{-307}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;B \leq 1.35 \cdot 10^{-250}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;B \leq 1.6 \cdot 10^{-189}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;B \leq 4.8 \cdot 10^{-101}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;B \leq 3.5 \cdot 10^{+14}:\\
\;\;\;\;t_1\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} -1}{\pi}\\
\end{array}
\end{array}
if B < -9e-47Initial program 58.6%
associate-*l/58.6%
*-lft-identity58.6%
+-commutative58.6%
unpow258.6%
unpow258.6%
hypot-def87.3%
Simplified87.3%
Taylor expanded in B around -inf 63.3%
if -9e-47 < B < -3.4999999999999999e-199 or -3.79999999999999976e-246 < B < -7.60000000000000037e-295Initial program 40.5%
associate-*r/40.5%
unpow240.5%
Simplified40.5%
*-commutative40.5%
associate--l-40.4%
+-commutative40.4%
unpow240.4%
hypot-udef60.4%
div-inv60.4%
clear-num60.4%
Applied egg-rr60.4%
Taylor expanded in A around 0 36.8%
unpow236.8%
unpow236.8%
hypot-def56.8%
Simplified56.8%
Taylor expanded in C around inf 55.5%
Taylor expanded in B around 0 55.5%
if -3.4999999999999999e-199 < B < -3.79999999999999976e-246Initial program 49.9%
associate-*l/49.9%
*-lft-identity49.9%
+-commutative49.9%
unpow249.9%
unpow249.9%
hypot-def85.1%
Simplified85.1%
Taylor expanded in A around -inf 73.8%
if -7.60000000000000037e-295 < B < 1.56e-307 or 1.35000000000000001e-250 < B < 1.6e-189 or 4.8e-101 < B < 3.5e14Initial program 73.9%
associate-*r/73.9%
associate-*l/74.0%
associate-*l/74.0%
*-lft-identity74.0%
sub-neg74.0%
associate-+l-73.9%
sub-neg73.9%
remove-double-neg73.9%
+-commutative73.9%
unpow273.9%
unpow273.9%
hypot-def80.4%
Simplified80.4%
Taylor expanded in B around -inf 65.2%
neg-mul-165.2%
unsub-neg65.2%
Simplified65.2%
Taylor expanded in C around inf 58.0%
if 1.56e-307 < B < 1.35000000000000001e-250 or 1.6e-189 < B < 4.8e-101Initial program 36.5%
associate-*l/36.5%
*-lft-identity36.5%
+-commutative36.5%
unpow236.5%
unpow236.5%
hypot-def81.2%
Simplified81.2%
Taylor expanded in C around inf 59.5%
distribute-rgt1-in59.5%
metadata-eval59.5%
mul0-lft59.5%
metadata-eval59.5%
Simplified59.5%
if 3.5e14 < B Initial program 54.1%
associate-*l/54.1%
*-lft-identity54.1%
+-commutative54.1%
unpow254.1%
unpow254.1%
hypot-def86.5%
Simplified86.5%
Taylor expanded in B around inf 71.9%
Final simplification63.4%
(FPCore (A B C)
:precision binary64
(let* ((t_0 (* 180.0 (/ (atan (/ 0.0 B)) PI)))
(t_1 (* (/ 180.0 PI) (atan (/ C B)))))
(if (<= B -3.9e-44)
(* 180.0 (/ (atan 1.0) PI))
(if (<= B -2.8e-194)
(* 180.0 (/ (atan (* -0.5 (/ B C))) PI))
(if (<= B -1.25e-245)
(* 180.0 (/ (atan (* 0.5 (/ B A))) PI))
(if (<= B -6.2e-293)
(* 180.0 (/ (atan (* B (/ -0.5 C))) PI))
(if (<= B 1.72e-307)
t_1
(if (<= B 2.8e-251)
t_0
(if (<= B 3.5e-187)
t_1
(if (<= B 2.9e-100)
t_0
(if (<= B 245000000000.0)
t_1
(* 180.0 (/ (atan -1.0) PI)))))))))))))
double code(double A, double B, double C) {
double t_0 = 180.0 * (atan((0.0 / B)) / ((double) M_PI));
double t_1 = (180.0 / ((double) M_PI)) * atan((C / B));
double tmp;
if (B <= -3.9e-44) {
tmp = 180.0 * (atan(1.0) / ((double) M_PI));
} else if (B <= -2.8e-194) {
tmp = 180.0 * (atan((-0.5 * (B / C))) / ((double) M_PI));
} else if (B <= -1.25e-245) {
tmp = 180.0 * (atan((0.5 * (B / A))) / ((double) M_PI));
} else if (B <= -6.2e-293) {
tmp = 180.0 * (atan((B * (-0.5 / C))) / ((double) M_PI));
} else if (B <= 1.72e-307) {
tmp = t_1;
} else if (B <= 2.8e-251) {
tmp = t_0;
} else if (B <= 3.5e-187) {
tmp = t_1;
} else if (B <= 2.9e-100) {
tmp = t_0;
} else if (B <= 245000000000.0) {
tmp = t_1;
} else {
tmp = 180.0 * (atan(-1.0) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double t_0 = 180.0 * (Math.atan((0.0 / B)) / Math.PI);
double t_1 = (180.0 / Math.PI) * Math.atan((C / B));
double tmp;
if (B <= -3.9e-44) {
tmp = 180.0 * (Math.atan(1.0) / Math.PI);
} else if (B <= -2.8e-194) {
tmp = 180.0 * (Math.atan((-0.5 * (B / C))) / Math.PI);
} else if (B <= -1.25e-245) {
tmp = 180.0 * (Math.atan((0.5 * (B / A))) / Math.PI);
} else if (B <= -6.2e-293) {
tmp = 180.0 * (Math.atan((B * (-0.5 / C))) / Math.PI);
} else if (B <= 1.72e-307) {
tmp = t_1;
} else if (B <= 2.8e-251) {
tmp = t_0;
} else if (B <= 3.5e-187) {
tmp = t_1;
} else if (B <= 2.9e-100) {
tmp = t_0;
} else if (B <= 245000000000.0) {
tmp = t_1;
} else {
tmp = 180.0 * (Math.atan(-1.0) / Math.PI);
}
return tmp;
}
def code(A, B, C): t_0 = 180.0 * (math.atan((0.0 / B)) / math.pi) t_1 = (180.0 / math.pi) * math.atan((C / B)) tmp = 0 if B <= -3.9e-44: tmp = 180.0 * (math.atan(1.0) / math.pi) elif B <= -2.8e-194: tmp = 180.0 * (math.atan((-0.5 * (B / C))) / math.pi) elif B <= -1.25e-245: tmp = 180.0 * (math.atan((0.5 * (B / A))) / math.pi) elif B <= -6.2e-293: tmp = 180.0 * (math.atan((B * (-0.5 / C))) / math.pi) elif B <= 1.72e-307: tmp = t_1 elif B <= 2.8e-251: tmp = t_0 elif B <= 3.5e-187: tmp = t_1 elif B <= 2.9e-100: tmp = t_0 elif B <= 245000000000.0: tmp = t_1 else: tmp = 180.0 * (math.atan(-1.0) / math.pi) return tmp
function code(A, B, C) t_0 = Float64(180.0 * Float64(atan(Float64(0.0 / B)) / pi)) t_1 = Float64(Float64(180.0 / pi) * atan(Float64(C / B))) tmp = 0.0 if (B <= -3.9e-44) tmp = Float64(180.0 * Float64(atan(1.0) / pi)); elseif (B <= -2.8e-194) tmp = Float64(180.0 * Float64(atan(Float64(-0.5 * Float64(B / C))) / pi)); elseif (B <= -1.25e-245) tmp = Float64(180.0 * Float64(atan(Float64(0.5 * Float64(B / A))) / pi)); elseif (B <= -6.2e-293) tmp = Float64(180.0 * Float64(atan(Float64(B * Float64(-0.5 / C))) / pi)); elseif (B <= 1.72e-307) tmp = t_1; elseif (B <= 2.8e-251) tmp = t_0; elseif (B <= 3.5e-187) tmp = t_1; elseif (B <= 2.9e-100) tmp = t_0; elseif (B <= 245000000000.0) tmp = t_1; else tmp = Float64(180.0 * Float64(atan(-1.0) / pi)); end return tmp end
function tmp_2 = code(A, B, C) t_0 = 180.0 * (atan((0.0 / B)) / pi); t_1 = (180.0 / pi) * atan((C / B)); tmp = 0.0; if (B <= -3.9e-44) tmp = 180.0 * (atan(1.0) / pi); elseif (B <= -2.8e-194) tmp = 180.0 * (atan((-0.5 * (B / C))) / pi); elseif (B <= -1.25e-245) tmp = 180.0 * (atan((0.5 * (B / A))) / pi); elseif (B <= -6.2e-293) tmp = 180.0 * (atan((B * (-0.5 / C))) / pi); elseif (B <= 1.72e-307) tmp = t_1; elseif (B <= 2.8e-251) tmp = t_0; elseif (B <= 3.5e-187) tmp = t_1; elseif (B <= 2.9e-100) tmp = t_0; elseif (B <= 245000000000.0) tmp = t_1; else tmp = 180.0 * (atan(-1.0) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := Block[{t$95$0 = N[(180.0 * N[(N[ArcTan[N[(0.0 / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(C / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[B, -3.9e-44], N[(180.0 * N[(N[ArcTan[1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -2.8e-194], N[(180.0 * N[(N[ArcTan[N[(-0.5 * N[(B / C), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -1.25e-245], N[(180.0 * N[(N[ArcTan[N[(0.5 * N[(B / A), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -6.2e-293], N[(180.0 * N[(N[ArcTan[N[(B * N[(-0.5 / C), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, 1.72e-307], t$95$1, If[LessEqual[B, 2.8e-251], t$95$0, If[LessEqual[B, 3.5e-187], t$95$1, If[LessEqual[B, 2.9e-100], t$95$0, If[LessEqual[B, 245000000000.0], t$95$1, N[(180.0 * N[(N[ArcTan[-1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := 180 \cdot \frac{\tan^{-1} \left(\frac{0}{B}\right)}{\pi}\\
t_1 := \frac{180}{\pi} \cdot \tan^{-1} \left(\frac{C}{B}\right)\\
\mathbf{if}\;B \leq -3.9 \cdot 10^{-44}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} 1}{\pi}\\
\mathbf{elif}\;B \leq -2.8 \cdot 10^{-194}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(-0.5 \cdot \frac{B}{C}\right)}{\pi}\\
\mathbf{elif}\;B \leq -1.25 \cdot 10^{-245}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(0.5 \cdot \frac{B}{A}\right)}{\pi}\\
\mathbf{elif}\;B \leq -6.2 \cdot 10^{-293}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(B \cdot \frac{-0.5}{C}\right)}{\pi}\\
\mathbf{elif}\;B \leq 1.72 \cdot 10^{-307}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;B \leq 2.8 \cdot 10^{-251}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;B \leq 3.5 \cdot 10^{-187}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;B \leq 2.9 \cdot 10^{-100}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;B \leq 245000000000:\\
\;\;\;\;t_1\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} -1}{\pi}\\
\end{array}
\end{array}
if B < -3.9000000000000002e-44Initial program 58.6%
associate-*l/58.6%
*-lft-identity58.6%
+-commutative58.6%
unpow258.6%
unpow258.6%
hypot-def87.3%
Simplified87.3%
Taylor expanded in B around -inf 63.3%
if -3.9000000000000002e-44 < B < -2.80000000000000011e-194Initial program 41.6%
associate-*r/41.6%
unpow241.6%
Simplified41.6%
*-commutative41.6%
associate--l-41.5%
+-commutative41.5%
unpow241.5%
hypot-udef58.3%
div-inv58.3%
clear-num58.3%
Applied egg-rr58.3%
Taylor expanded in A around 0 39.7%
unpow239.7%
unpow239.7%
hypot-def56.5%
Simplified56.5%
Taylor expanded in C around inf 49.7%
Taylor expanded in B around 0 49.8%
if -2.80000000000000011e-194 < B < -1.2499999999999999e-245Initial program 49.9%
associate-*l/49.9%
*-lft-identity49.9%
+-commutative49.9%
unpow249.9%
unpow249.9%
hypot-def85.1%
Simplified85.1%
Taylor expanded in A around -inf 73.8%
if -1.2499999999999999e-245 < B < -6.19999999999999965e-293Initial program 36.3%
associate-*r/36.3%
unpow236.3%
Simplified36.3%
*-commutative36.3%
associate--l-36.3%
+-commutative36.3%
unpow236.3%
hypot-udef68.8%
div-inv68.8%
clear-num68.8%
Applied egg-rr68.8%
Taylor expanded in A around 0 25.3%
unpow225.3%
unpow225.3%
hypot-def58.0%
Simplified58.0%
Taylor expanded in C around inf 78.5%
Taylor expanded in B around 0 78.4%
associate-*r/78.4%
associate-/l*78.4%
associate-/r/78.5%
Simplified78.5%
if -6.19999999999999965e-293 < B < 1.72000000000000008e-307 or 2.79999999999999989e-251 < B < 3.49999999999999979e-187 or 2.89999999999999975e-100 < B < 2.45e11Initial program 73.9%
associate-*r/73.9%
associate-*l/74.0%
associate-*l/74.0%
*-lft-identity74.0%
sub-neg74.0%
associate-+l-73.9%
sub-neg73.9%
remove-double-neg73.9%
+-commutative73.9%
unpow273.9%
unpow273.9%
hypot-def80.4%
Simplified80.4%
Taylor expanded in B around -inf 65.2%
neg-mul-165.2%
unsub-neg65.2%
Simplified65.2%
Taylor expanded in C around inf 58.0%
if 1.72000000000000008e-307 < B < 2.79999999999999989e-251 or 3.49999999999999979e-187 < B < 2.89999999999999975e-100Initial program 36.5%
associate-*l/36.5%
*-lft-identity36.5%
+-commutative36.5%
unpow236.5%
unpow236.5%
hypot-def81.2%
Simplified81.2%
Taylor expanded in C around inf 59.5%
distribute-rgt1-in59.5%
metadata-eval59.5%
mul0-lft59.5%
metadata-eval59.5%
Simplified59.5%
if 2.45e11 < B Initial program 54.1%
associate-*l/54.1%
*-lft-identity54.1%
+-commutative54.1%
unpow254.1%
unpow254.1%
hypot-def86.5%
Simplified86.5%
Taylor expanded in B around inf 71.9%
Final simplification63.4%
(FPCore (A B C)
:precision binary64
(let* ((t_0 (* 180.0 (/ (atan (* -0.5 (/ B C))) PI)))
(t_1 (* 180.0 (/ (atan (/ 0.0 B)) PI)))
(t_2 (* (/ 180.0 PI) (atan (/ C B)))))
(if (<= B -1.3e-44)
(* 180.0 (/ (atan 1.0) PI))
(if (<= B -3.2e-296)
t_0
(if (<= B 2.1e-307)
t_2
(if (<= B 2.7e-251)
t_1
(if (<= B 3.7e-187)
t_2
(if (<= B 2.7e-102)
t_1
(if (<= B 8.5e-33)
t_2
(if (<= B 6.5e+23) t_0 (* 180.0 (/ (atan -1.0) PI))))))))))))
double code(double A, double B, double C) {
double t_0 = 180.0 * (atan((-0.5 * (B / C))) / ((double) M_PI));
double t_1 = 180.0 * (atan((0.0 / B)) / ((double) M_PI));
double t_2 = (180.0 / ((double) M_PI)) * atan((C / B));
double tmp;
if (B <= -1.3e-44) {
tmp = 180.0 * (atan(1.0) / ((double) M_PI));
} else if (B <= -3.2e-296) {
tmp = t_0;
} else if (B <= 2.1e-307) {
tmp = t_2;
} else if (B <= 2.7e-251) {
tmp = t_1;
} else if (B <= 3.7e-187) {
tmp = t_2;
} else if (B <= 2.7e-102) {
tmp = t_1;
} else if (B <= 8.5e-33) {
tmp = t_2;
} else if (B <= 6.5e+23) {
tmp = t_0;
} else {
tmp = 180.0 * (atan(-1.0) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double t_0 = 180.0 * (Math.atan((-0.5 * (B / C))) / Math.PI);
double t_1 = 180.0 * (Math.atan((0.0 / B)) / Math.PI);
double t_2 = (180.0 / Math.PI) * Math.atan((C / B));
double tmp;
if (B <= -1.3e-44) {
tmp = 180.0 * (Math.atan(1.0) / Math.PI);
} else if (B <= -3.2e-296) {
tmp = t_0;
} else if (B <= 2.1e-307) {
tmp = t_2;
} else if (B <= 2.7e-251) {
tmp = t_1;
} else if (B <= 3.7e-187) {
tmp = t_2;
} else if (B <= 2.7e-102) {
tmp = t_1;
} else if (B <= 8.5e-33) {
tmp = t_2;
} else if (B <= 6.5e+23) {
tmp = t_0;
} else {
tmp = 180.0 * (Math.atan(-1.0) / Math.PI);
}
return tmp;
}
def code(A, B, C): t_0 = 180.0 * (math.atan((-0.5 * (B / C))) / math.pi) t_1 = 180.0 * (math.atan((0.0 / B)) / math.pi) t_2 = (180.0 / math.pi) * math.atan((C / B)) tmp = 0 if B <= -1.3e-44: tmp = 180.0 * (math.atan(1.0) / math.pi) elif B <= -3.2e-296: tmp = t_0 elif B <= 2.1e-307: tmp = t_2 elif B <= 2.7e-251: tmp = t_1 elif B <= 3.7e-187: tmp = t_2 elif B <= 2.7e-102: tmp = t_1 elif B <= 8.5e-33: tmp = t_2 elif B <= 6.5e+23: tmp = t_0 else: tmp = 180.0 * (math.atan(-1.0) / math.pi) return tmp
function code(A, B, C) t_0 = Float64(180.0 * Float64(atan(Float64(-0.5 * Float64(B / C))) / pi)) t_1 = Float64(180.0 * Float64(atan(Float64(0.0 / B)) / pi)) t_2 = Float64(Float64(180.0 / pi) * atan(Float64(C / B))) tmp = 0.0 if (B <= -1.3e-44) tmp = Float64(180.0 * Float64(atan(1.0) / pi)); elseif (B <= -3.2e-296) tmp = t_0; elseif (B <= 2.1e-307) tmp = t_2; elseif (B <= 2.7e-251) tmp = t_1; elseif (B <= 3.7e-187) tmp = t_2; elseif (B <= 2.7e-102) tmp = t_1; elseif (B <= 8.5e-33) tmp = t_2; elseif (B <= 6.5e+23) tmp = t_0; else tmp = Float64(180.0 * Float64(atan(-1.0) / pi)); end return tmp end
function tmp_2 = code(A, B, C) t_0 = 180.0 * (atan((-0.5 * (B / C))) / pi); t_1 = 180.0 * (atan((0.0 / B)) / pi); t_2 = (180.0 / pi) * atan((C / B)); tmp = 0.0; if (B <= -1.3e-44) tmp = 180.0 * (atan(1.0) / pi); elseif (B <= -3.2e-296) tmp = t_0; elseif (B <= 2.1e-307) tmp = t_2; elseif (B <= 2.7e-251) tmp = t_1; elseif (B <= 3.7e-187) tmp = t_2; elseif (B <= 2.7e-102) tmp = t_1; elseif (B <= 8.5e-33) tmp = t_2; elseif (B <= 6.5e+23) tmp = t_0; else tmp = 180.0 * (atan(-1.0) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := Block[{t$95$0 = N[(180.0 * N[(N[ArcTan[N[(-0.5 * N[(B / C), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(180.0 * N[(N[ArcTan[N[(0.0 / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(C / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[B, -1.3e-44], N[(180.0 * N[(N[ArcTan[1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -3.2e-296], t$95$0, If[LessEqual[B, 2.1e-307], t$95$2, If[LessEqual[B, 2.7e-251], t$95$1, If[LessEqual[B, 3.7e-187], t$95$2, If[LessEqual[B, 2.7e-102], t$95$1, If[LessEqual[B, 8.5e-33], t$95$2, If[LessEqual[B, 6.5e+23], t$95$0, N[(180.0 * N[(N[ArcTan[-1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := 180 \cdot \frac{\tan^{-1} \left(-0.5 \cdot \frac{B}{C}\right)}{\pi}\\
t_1 := 180 \cdot \frac{\tan^{-1} \left(\frac{0}{B}\right)}{\pi}\\
t_2 := \frac{180}{\pi} \cdot \tan^{-1} \left(\frac{C}{B}\right)\\
\mathbf{if}\;B \leq -1.3 \cdot 10^{-44}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} 1}{\pi}\\
\mathbf{elif}\;B \leq -3.2 \cdot 10^{-296}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;B \leq 2.1 \cdot 10^{-307}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;B \leq 2.7 \cdot 10^{-251}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;B \leq 3.7 \cdot 10^{-187}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;B \leq 2.7 \cdot 10^{-102}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;B \leq 8.5 \cdot 10^{-33}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;B \leq 6.5 \cdot 10^{+23}:\\
\;\;\;\;t_0\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} -1}{\pi}\\
\end{array}
\end{array}
if B < -1.2999999999999999e-44Initial program 58.6%
associate-*l/58.6%
*-lft-identity58.6%
+-commutative58.6%
unpow258.6%
unpow258.6%
hypot-def87.3%
Simplified87.3%
Taylor expanded in B around -inf 63.3%
if -1.2999999999999999e-44 < B < -3.20000000000000013e-296 or 8.49999999999999945e-33 < B < 6.4999999999999996e23Initial program 44.8%
associate-*r/44.8%
unpow244.8%
Simplified44.8%
*-commutative44.8%
associate--l-41.5%
+-commutative41.5%
unpow241.5%
hypot-udef58.3%
div-inv58.3%
clear-num58.3%
Applied egg-rr58.3%
Taylor expanded in A around 0 39.9%
unpow239.9%
unpow239.9%
hypot-def56.8%
Simplified56.8%
Taylor expanded in C around inf 47.7%
Taylor expanded in B around 0 47.7%
if -3.20000000000000013e-296 < B < 2.1000000000000001e-307 or 2.7000000000000001e-251 < B < 3.7000000000000001e-187 or 2.7e-102 < B < 8.49999999999999945e-33Initial program 78.6%
associate-*r/78.6%
associate-*l/78.6%
associate-*l/78.6%
*-lft-identity78.6%
sub-neg78.6%
associate-+l-78.6%
sub-neg78.6%
remove-double-neg78.6%
+-commutative78.6%
unpow278.6%
unpow278.6%
hypot-def85.2%
Simplified85.2%
Taylor expanded in B around -inf 74.1%
neg-mul-174.1%
unsub-neg74.1%
Simplified74.1%
Taylor expanded in C around inf 67.4%
if 2.1000000000000001e-307 < B < 2.7000000000000001e-251 or 3.7000000000000001e-187 < B < 2.7e-102Initial program 36.5%
associate-*l/36.5%
*-lft-identity36.5%
+-commutative36.5%
unpow236.5%
unpow236.5%
hypot-def81.2%
Simplified81.2%
Taylor expanded in C around inf 59.5%
distribute-rgt1-in59.5%
metadata-eval59.5%
mul0-lft59.5%
metadata-eval59.5%
Simplified59.5%
if 6.4999999999999996e23 < B Initial program 55.0%
associate-*l/55.0%
*-lft-identity55.0%
+-commutative55.0%
unpow255.0%
unpow255.0%
hypot-def89.0%
Simplified89.0%
Taylor expanded in B around inf 73.7%
Final simplification61.6%
(FPCore (A B C)
:precision binary64
(let* ((t_0 (* 180.0 (/ (atan (/ 0.0 B)) PI)))
(t_1 (* (/ 180.0 PI) (atan (/ C B)))))
(if (<= B -1.52e-46)
(* (/ 180.0 PI) (atan (/ (- B A) B)))
(if (<= B -9.5e-193)
(* 180.0 (/ (atan (* -0.5 (/ B C))) PI))
(if (<= B -1.3e-245)
(/ 180.0 (/ PI (atan (* 0.5 (/ B A)))))
(if (<= B -5.6e-294)
(* 180.0 (/ (atan (* B (/ -0.5 C))) PI))
(if (<= B 1.95e-307)
t_1
(if (<= B 9.5e-251)
t_0
(if (<= B 2e-189)
t_1
(if (<= B 4.8e-106)
t_0
(/ (* -180.0 (atan (/ (+ B A) B))) PI)))))))))))
double code(double A, double B, double C) {
double t_0 = 180.0 * (atan((0.0 / B)) / ((double) M_PI));
double t_1 = (180.0 / ((double) M_PI)) * atan((C / B));
double tmp;
if (B <= -1.52e-46) {
tmp = (180.0 / ((double) M_PI)) * atan(((B - A) / B));
} else if (B <= -9.5e-193) {
tmp = 180.0 * (atan((-0.5 * (B / C))) / ((double) M_PI));
} else if (B <= -1.3e-245) {
tmp = 180.0 / (((double) M_PI) / atan((0.5 * (B / A))));
} else if (B <= -5.6e-294) {
tmp = 180.0 * (atan((B * (-0.5 / C))) / ((double) M_PI));
} else if (B <= 1.95e-307) {
tmp = t_1;
} else if (B <= 9.5e-251) {
tmp = t_0;
} else if (B <= 2e-189) {
tmp = t_1;
} else if (B <= 4.8e-106) {
tmp = t_0;
} else {
tmp = (-180.0 * atan(((B + A) / B))) / ((double) M_PI);
}
return tmp;
}
public static double code(double A, double B, double C) {
double t_0 = 180.0 * (Math.atan((0.0 / B)) / Math.PI);
double t_1 = (180.0 / Math.PI) * Math.atan((C / B));
double tmp;
if (B <= -1.52e-46) {
tmp = (180.0 / Math.PI) * Math.atan(((B - A) / B));
} else if (B <= -9.5e-193) {
tmp = 180.0 * (Math.atan((-0.5 * (B / C))) / Math.PI);
} else if (B <= -1.3e-245) {
tmp = 180.0 / (Math.PI / Math.atan((0.5 * (B / A))));
} else if (B <= -5.6e-294) {
tmp = 180.0 * (Math.atan((B * (-0.5 / C))) / Math.PI);
} else if (B <= 1.95e-307) {
tmp = t_1;
} else if (B <= 9.5e-251) {
tmp = t_0;
} else if (B <= 2e-189) {
tmp = t_1;
} else if (B <= 4.8e-106) {
tmp = t_0;
} else {
tmp = (-180.0 * Math.atan(((B + A) / B))) / Math.PI;
}
return tmp;
}
def code(A, B, C): t_0 = 180.0 * (math.atan((0.0 / B)) / math.pi) t_1 = (180.0 / math.pi) * math.atan((C / B)) tmp = 0 if B <= -1.52e-46: tmp = (180.0 / math.pi) * math.atan(((B - A) / B)) elif B <= -9.5e-193: tmp = 180.0 * (math.atan((-0.5 * (B / C))) / math.pi) elif B <= -1.3e-245: tmp = 180.0 / (math.pi / math.atan((0.5 * (B / A)))) elif B <= -5.6e-294: tmp = 180.0 * (math.atan((B * (-0.5 / C))) / math.pi) elif B <= 1.95e-307: tmp = t_1 elif B <= 9.5e-251: tmp = t_0 elif B <= 2e-189: tmp = t_1 elif B <= 4.8e-106: tmp = t_0 else: tmp = (-180.0 * math.atan(((B + A) / B))) / math.pi return tmp
function code(A, B, C) t_0 = Float64(180.0 * Float64(atan(Float64(0.0 / B)) / pi)) t_1 = Float64(Float64(180.0 / pi) * atan(Float64(C / B))) tmp = 0.0 if (B <= -1.52e-46) tmp = Float64(Float64(180.0 / pi) * atan(Float64(Float64(B - A) / B))); elseif (B <= -9.5e-193) tmp = Float64(180.0 * Float64(atan(Float64(-0.5 * Float64(B / C))) / pi)); elseif (B <= -1.3e-245) tmp = Float64(180.0 / Float64(pi / atan(Float64(0.5 * Float64(B / A))))); elseif (B <= -5.6e-294) tmp = Float64(180.0 * Float64(atan(Float64(B * Float64(-0.5 / C))) / pi)); elseif (B <= 1.95e-307) tmp = t_1; elseif (B <= 9.5e-251) tmp = t_0; elseif (B <= 2e-189) tmp = t_1; elseif (B <= 4.8e-106) tmp = t_0; else tmp = Float64(Float64(-180.0 * atan(Float64(Float64(B + A) / B))) / pi); end return tmp end
function tmp_2 = code(A, B, C) t_0 = 180.0 * (atan((0.0 / B)) / pi); t_1 = (180.0 / pi) * atan((C / B)); tmp = 0.0; if (B <= -1.52e-46) tmp = (180.0 / pi) * atan(((B - A) / B)); elseif (B <= -9.5e-193) tmp = 180.0 * (atan((-0.5 * (B / C))) / pi); elseif (B <= -1.3e-245) tmp = 180.0 / (pi / atan((0.5 * (B / A)))); elseif (B <= -5.6e-294) tmp = 180.0 * (atan((B * (-0.5 / C))) / pi); elseif (B <= 1.95e-307) tmp = t_1; elseif (B <= 9.5e-251) tmp = t_0; elseif (B <= 2e-189) tmp = t_1; elseif (B <= 4.8e-106) tmp = t_0; else tmp = (-180.0 * atan(((B + A) / B))) / pi; end tmp_2 = tmp; end
code[A_, B_, C_] := Block[{t$95$0 = N[(180.0 * N[(N[ArcTan[N[(0.0 / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(C / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[B, -1.52e-46], N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(N[(B - A), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -9.5e-193], N[(180.0 * N[(N[ArcTan[N[(-0.5 * N[(B / C), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -1.3e-245], N[(180.0 / N[(Pi / N[ArcTan[N[(0.5 * N[(B / A), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -5.6e-294], N[(180.0 * N[(N[ArcTan[N[(B * N[(-0.5 / C), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, 1.95e-307], t$95$1, If[LessEqual[B, 9.5e-251], t$95$0, If[LessEqual[B, 2e-189], t$95$1, If[LessEqual[B, 4.8e-106], t$95$0, N[(N[(-180.0 * N[ArcTan[N[(N[(B + A), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision]]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := 180 \cdot \frac{\tan^{-1} \left(\frac{0}{B}\right)}{\pi}\\
t_1 := \frac{180}{\pi} \cdot \tan^{-1} \left(\frac{C}{B}\right)\\
\mathbf{if}\;B \leq -1.52 \cdot 10^{-46}:\\
\;\;\;\;\frac{180}{\pi} \cdot \tan^{-1} \left(\frac{B - A}{B}\right)\\
\mathbf{elif}\;B \leq -9.5 \cdot 10^{-193}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(-0.5 \cdot \frac{B}{C}\right)}{\pi}\\
\mathbf{elif}\;B \leq -1.3 \cdot 10^{-245}:\\
\;\;\;\;\frac{180}{\frac{\pi}{\tan^{-1} \left(0.5 \cdot \frac{B}{A}\right)}}\\
\mathbf{elif}\;B \leq -5.6 \cdot 10^{-294}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(B \cdot \frac{-0.5}{C}\right)}{\pi}\\
\mathbf{elif}\;B \leq 1.95 \cdot 10^{-307}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;B \leq 9.5 \cdot 10^{-251}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;B \leq 2 \cdot 10^{-189}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;B \leq 4.8 \cdot 10^{-106}:\\
\;\;\;\;t_0\\
\mathbf{else}:\\
\;\;\;\;\frac{-180 \cdot \tan^{-1} \left(\frac{B + A}{B}\right)}{\pi}\\
\end{array}
\end{array}
if B < -1.52000000000000006e-46Initial program 58.6%
associate-*r/58.7%
associate-*l/58.6%
associate-*l/58.6%
*-lft-identity58.6%
sub-neg58.6%
associate-+l-58.6%
sub-neg58.6%
remove-double-neg58.6%
+-commutative58.6%
unpow258.6%
unpow258.6%
hypot-def87.1%
Simplified87.1%
Taylor expanded in B around -inf 86.1%
neg-mul-186.1%
unsub-neg86.1%
Simplified86.1%
Taylor expanded in C around 0 77.4%
if -1.52000000000000006e-46 < B < -9.5000000000000003e-193Initial program 41.6%
associate-*r/41.6%
unpow241.6%
Simplified41.6%
*-commutative41.6%
associate--l-41.5%
+-commutative41.5%
unpow241.5%
hypot-udef58.3%
div-inv58.3%
clear-num58.3%
Applied egg-rr58.3%
Taylor expanded in A around 0 39.7%
unpow239.7%
unpow239.7%
hypot-def56.5%
Simplified56.5%
Taylor expanded in C around inf 49.7%
Taylor expanded in B around 0 49.8%
if -9.5000000000000003e-193 < B < -1.30000000000000003e-245Initial program 49.9%
associate-*l/49.9%
*-lft-identity49.9%
+-commutative49.9%
unpow249.9%
unpow249.9%
hypot-def85.1%
Simplified85.1%
Taylor expanded in A around -inf 58.7%
unpow258.7%
Simplified58.7%
Taylor expanded in B around 0 73.8%
associate-*r/73.9%
associate-/l*76.0%
Simplified76.0%
if -1.30000000000000003e-245 < B < -5.59999999999999981e-294Initial program 36.3%
associate-*r/36.3%
unpow236.3%
Simplified36.3%
*-commutative36.3%
associate--l-36.3%
+-commutative36.3%
unpow236.3%
hypot-udef68.8%
div-inv68.8%
clear-num68.8%
Applied egg-rr68.8%
Taylor expanded in A around 0 25.3%
unpow225.3%
unpow225.3%
hypot-def58.0%
Simplified58.0%
Taylor expanded in C around inf 78.5%
Taylor expanded in B around 0 78.4%
associate-*r/78.4%
associate-/l*78.4%
associate-/r/78.5%
Simplified78.5%
if -5.59999999999999981e-294 < B < 1.95e-307 or 9.49999999999999927e-251 < B < 2.00000000000000014e-189Initial program 80.8%
associate-*r/80.8%
associate-*l/80.8%
associate-*l/80.8%
*-lft-identity80.8%
sub-neg80.8%
associate-+l-80.7%
sub-neg80.7%
remove-double-neg80.7%
+-commutative80.7%
unpow280.7%
unpow280.7%
hypot-def87.2%
Simplified87.2%
Taylor expanded in B around -inf 80.6%
neg-mul-180.6%
unsub-neg80.6%
Simplified80.6%
Taylor expanded in C around inf 80.7%
if 1.95e-307 < B < 9.49999999999999927e-251 or 2.00000000000000014e-189 < B < 4.7999999999999995e-106Initial program 37.8%
associate-*l/37.8%
*-lft-identity37.8%
+-commutative37.8%
unpow237.8%
unpow237.8%
hypot-def84.3%
Simplified84.3%
Taylor expanded in C around inf 61.7%
distribute-rgt1-in61.7%
metadata-eval61.7%
mul0-lft61.7%
metadata-eval61.7%
Simplified61.7%
if 4.7999999999999995e-106 < B Initial program 57.4%
associate-*r/57.4%
unpow257.4%
Simplified57.4%
*-commutative57.4%
associate--l-57.4%
+-commutative57.4%
unpow257.4%
hypot-udef82.8%
div-inv82.8%
clear-num82.8%
Applied egg-rr82.8%
Taylor expanded in C around 0 50.8%
associate-*r/50.8%
mul-1-neg50.8%
+-commutative50.8%
unpow250.8%
unpow250.8%
hypot-def72.7%
Simplified72.7%
expm1-log1p-u1.6%
expm1-udef1.6%
distribute-frac-neg1.6%
atan-neg1.6%
Applied egg-rr1.6%
expm1-def1.6%
expm1-log1p72.7%
distribute-rgt-neg-out72.7%
distribute-lft-neg-in72.7%
metadata-eval72.7%
Simplified72.7%
Taylor expanded in A around 0 70.9%
+-commutative70.9%
Simplified70.9%
Final simplification70.0%
(FPCore (A B C)
:precision binary64
(let* ((t_0 (* 180.0 (/ (atan (/ 0.0 B)) PI)))
(t_1 (* (/ 180.0 PI) (atan (/ C B)))))
(if (<= B -2.55e-45)
(* (/ 180.0 PI) (atan (/ (- B A) B)))
(if (<= B -6.4e-196)
(* 180.0 (/ (atan (* -0.5 (/ B C))) PI))
(if (<= B -1.9e-246)
(/ 180.0 (/ PI (atan (* 0.5 (/ B A)))))
(if (<= B -6.6e-294)
(/ (* 180.0 (atan (* B (/ -0.5 C)))) PI)
(if (<= B 1.05e-307)
t_1
(if (<= B 5.2e-252)
t_0
(if (<= B 2.5e-186)
t_1
(if (<= B 4.8e-106)
t_0
(/ (* -180.0 (atan (/ (+ B A) B))) PI)))))))))))
double code(double A, double B, double C) {
double t_0 = 180.0 * (atan((0.0 / B)) / ((double) M_PI));
double t_1 = (180.0 / ((double) M_PI)) * atan((C / B));
double tmp;
if (B <= -2.55e-45) {
tmp = (180.0 / ((double) M_PI)) * atan(((B - A) / B));
} else if (B <= -6.4e-196) {
tmp = 180.0 * (atan((-0.5 * (B / C))) / ((double) M_PI));
} else if (B <= -1.9e-246) {
tmp = 180.0 / (((double) M_PI) / atan((0.5 * (B / A))));
} else if (B <= -6.6e-294) {
tmp = (180.0 * atan((B * (-0.5 / C)))) / ((double) M_PI);
} else if (B <= 1.05e-307) {
tmp = t_1;
} else if (B <= 5.2e-252) {
tmp = t_0;
} else if (B <= 2.5e-186) {
tmp = t_1;
} else if (B <= 4.8e-106) {
tmp = t_0;
} else {
tmp = (-180.0 * atan(((B + A) / B))) / ((double) M_PI);
}
return tmp;
}
public static double code(double A, double B, double C) {
double t_0 = 180.0 * (Math.atan((0.0 / B)) / Math.PI);
double t_1 = (180.0 / Math.PI) * Math.atan((C / B));
double tmp;
if (B <= -2.55e-45) {
tmp = (180.0 / Math.PI) * Math.atan(((B - A) / B));
} else if (B <= -6.4e-196) {
tmp = 180.0 * (Math.atan((-0.5 * (B / C))) / Math.PI);
} else if (B <= -1.9e-246) {
tmp = 180.0 / (Math.PI / Math.atan((0.5 * (B / A))));
} else if (B <= -6.6e-294) {
tmp = (180.0 * Math.atan((B * (-0.5 / C)))) / Math.PI;
} else if (B <= 1.05e-307) {
tmp = t_1;
} else if (B <= 5.2e-252) {
tmp = t_0;
} else if (B <= 2.5e-186) {
tmp = t_1;
} else if (B <= 4.8e-106) {
tmp = t_0;
} else {
tmp = (-180.0 * Math.atan(((B + A) / B))) / Math.PI;
}
return tmp;
}
def code(A, B, C): t_0 = 180.0 * (math.atan((0.0 / B)) / math.pi) t_1 = (180.0 / math.pi) * math.atan((C / B)) tmp = 0 if B <= -2.55e-45: tmp = (180.0 / math.pi) * math.atan(((B - A) / B)) elif B <= -6.4e-196: tmp = 180.0 * (math.atan((-0.5 * (B / C))) / math.pi) elif B <= -1.9e-246: tmp = 180.0 / (math.pi / math.atan((0.5 * (B / A)))) elif B <= -6.6e-294: tmp = (180.0 * math.atan((B * (-0.5 / C)))) / math.pi elif B <= 1.05e-307: tmp = t_1 elif B <= 5.2e-252: tmp = t_0 elif B <= 2.5e-186: tmp = t_1 elif B <= 4.8e-106: tmp = t_0 else: tmp = (-180.0 * math.atan(((B + A) / B))) / math.pi return tmp
function code(A, B, C) t_0 = Float64(180.0 * Float64(atan(Float64(0.0 / B)) / pi)) t_1 = Float64(Float64(180.0 / pi) * atan(Float64(C / B))) tmp = 0.0 if (B <= -2.55e-45) tmp = Float64(Float64(180.0 / pi) * atan(Float64(Float64(B - A) / B))); elseif (B <= -6.4e-196) tmp = Float64(180.0 * Float64(atan(Float64(-0.5 * Float64(B / C))) / pi)); elseif (B <= -1.9e-246) tmp = Float64(180.0 / Float64(pi / atan(Float64(0.5 * Float64(B / A))))); elseif (B <= -6.6e-294) tmp = Float64(Float64(180.0 * atan(Float64(B * Float64(-0.5 / C)))) / pi); elseif (B <= 1.05e-307) tmp = t_1; elseif (B <= 5.2e-252) tmp = t_0; elseif (B <= 2.5e-186) tmp = t_1; elseif (B <= 4.8e-106) tmp = t_0; else tmp = Float64(Float64(-180.0 * atan(Float64(Float64(B + A) / B))) / pi); end return tmp end
function tmp_2 = code(A, B, C) t_0 = 180.0 * (atan((0.0 / B)) / pi); t_1 = (180.0 / pi) * atan((C / B)); tmp = 0.0; if (B <= -2.55e-45) tmp = (180.0 / pi) * atan(((B - A) / B)); elseif (B <= -6.4e-196) tmp = 180.0 * (atan((-0.5 * (B / C))) / pi); elseif (B <= -1.9e-246) tmp = 180.0 / (pi / atan((0.5 * (B / A)))); elseif (B <= -6.6e-294) tmp = (180.0 * atan((B * (-0.5 / C)))) / pi; elseif (B <= 1.05e-307) tmp = t_1; elseif (B <= 5.2e-252) tmp = t_0; elseif (B <= 2.5e-186) tmp = t_1; elseif (B <= 4.8e-106) tmp = t_0; else tmp = (-180.0 * atan(((B + A) / B))) / pi; end tmp_2 = tmp; end
code[A_, B_, C_] := Block[{t$95$0 = N[(180.0 * N[(N[ArcTan[N[(0.0 / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(C / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[B, -2.55e-45], N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(N[(B - A), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -6.4e-196], N[(180.0 * N[(N[ArcTan[N[(-0.5 * N[(B / C), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -1.9e-246], N[(180.0 / N[(Pi / N[ArcTan[N[(0.5 * N[(B / A), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -6.6e-294], N[(N[(180.0 * N[ArcTan[N[(B * N[(-0.5 / C), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], If[LessEqual[B, 1.05e-307], t$95$1, If[LessEqual[B, 5.2e-252], t$95$0, If[LessEqual[B, 2.5e-186], t$95$1, If[LessEqual[B, 4.8e-106], t$95$0, N[(N[(-180.0 * N[ArcTan[N[(N[(B + A), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision]]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := 180 \cdot \frac{\tan^{-1} \left(\frac{0}{B}\right)}{\pi}\\
t_1 := \frac{180}{\pi} \cdot \tan^{-1} \left(\frac{C}{B}\right)\\
\mathbf{if}\;B \leq -2.55 \cdot 10^{-45}:\\
\;\;\;\;\frac{180}{\pi} \cdot \tan^{-1} \left(\frac{B - A}{B}\right)\\
\mathbf{elif}\;B \leq -6.4 \cdot 10^{-196}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(-0.5 \cdot \frac{B}{C}\right)}{\pi}\\
\mathbf{elif}\;B \leq -1.9 \cdot 10^{-246}:\\
\;\;\;\;\frac{180}{\frac{\pi}{\tan^{-1} \left(0.5 \cdot \frac{B}{A}\right)}}\\
\mathbf{elif}\;B \leq -6.6 \cdot 10^{-294}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(B \cdot \frac{-0.5}{C}\right)}{\pi}\\
\mathbf{elif}\;B \leq 1.05 \cdot 10^{-307}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;B \leq 5.2 \cdot 10^{-252}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;B \leq 2.5 \cdot 10^{-186}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;B \leq 4.8 \cdot 10^{-106}:\\
\;\;\;\;t_0\\
\mathbf{else}:\\
\;\;\;\;\frac{-180 \cdot \tan^{-1} \left(\frac{B + A}{B}\right)}{\pi}\\
\end{array}
\end{array}
if B < -2.5499999999999999e-45Initial program 58.6%
associate-*r/58.7%
associate-*l/58.6%
associate-*l/58.6%
*-lft-identity58.6%
sub-neg58.6%
associate-+l-58.6%
sub-neg58.6%
remove-double-neg58.6%
+-commutative58.6%
unpow258.6%
unpow258.6%
hypot-def87.1%
Simplified87.1%
Taylor expanded in B around -inf 86.1%
neg-mul-186.1%
unsub-neg86.1%
Simplified86.1%
Taylor expanded in C around 0 77.4%
if -2.5499999999999999e-45 < B < -6.3999999999999999e-196Initial program 41.6%
associate-*r/41.6%
unpow241.6%
Simplified41.6%
*-commutative41.6%
associate--l-41.5%
+-commutative41.5%
unpow241.5%
hypot-udef58.3%
div-inv58.3%
clear-num58.3%
Applied egg-rr58.3%
Taylor expanded in A around 0 39.7%
unpow239.7%
unpow239.7%
hypot-def56.5%
Simplified56.5%
Taylor expanded in C around inf 49.7%
Taylor expanded in B around 0 49.8%
if -6.3999999999999999e-196 < B < -1.89999999999999988e-246Initial program 49.9%
associate-*l/49.9%
*-lft-identity49.9%
+-commutative49.9%
unpow249.9%
unpow249.9%
hypot-def85.1%
Simplified85.1%
Taylor expanded in A around -inf 58.7%
unpow258.7%
Simplified58.7%
Taylor expanded in B around 0 73.8%
associate-*r/73.9%
associate-/l*76.0%
Simplified76.0%
if -1.89999999999999988e-246 < B < -6.6e-294Initial program 36.3%
associate-*r/36.3%
unpow236.3%
Simplified36.3%
*-commutative36.3%
associate--l-36.3%
+-commutative36.3%
unpow236.3%
hypot-udef68.8%
div-inv68.8%
clear-num68.8%
Applied egg-rr68.8%
Taylor expanded in A around 0 25.3%
unpow225.3%
unpow225.3%
hypot-def58.0%
Simplified58.0%
Taylor expanded in C around inf 78.5%
expm1-log1p-u78.5%
expm1-udef47.2%
Applied egg-rr47.2%
expm1-def78.5%
expm1-log1p78.5%
associate-*r/78.5%
associate-/l*78.5%
associate-/r/78.7%
Simplified78.7%
if -6.6e-294 < B < 1.0500000000000001e-307 or 5.1999999999999998e-252 < B < 2.5e-186Initial program 80.8%
associate-*r/80.8%
associate-*l/80.8%
associate-*l/80.8%
*-lft-identity80.8%
sub-neg80.8%
associate-+l-80.7%
sub-neg80.7%
remove-double-neg80.7%
+-commutative80.7%
unpow280.7%
unpow280.7%
hypot-def87.2%
Simplified87.2%
Taylor expanded in B around -inf 80.6%
neg-mul-180.6%
unsub-neg80.6%
Simplified80.6%
Taylor expanded in C around inf 80.7%
if 1.0500000000000001e-307 < B < 5.1999999999999998e-252 or 2.5e-186 < B < 4.7999999999999995e-106Initial program 37.8%
associate-*l/37.8%
*-lft-identity37.8%
+-commutative37.8%
unpow237.8%
unpow237.8%
hypot-def84.3%
Simplified84.3%
Taylor expanded in C around inf 61.7%
distribute-rgt1-in61.7%
metadata-eval61.7%
mul0-lft61.7%
metadata-eval61.7%
Simplified61.7%
if 4.7999999999999995e-106 < B Initial program 57.4%
associate-*r/57.4%
unpow257.4%
Simplified57.4%
*-commutative57.4%
associate--l-57.4%
+-commutative57.4%
unpow257.4%
hypot-udef82.8%
div-inv82.8%
clear-num82.8%
Applied egg-rr82.8%
Taylor expanded in C around 0 50.8%
associate-*r/50.8%
mul-1-neg50.8%
+-commutative50.8%
unpow250.8%
unpow250.8%
hypot-def72.7%
Simplified72.7%
expm1-log1p-u1.6%
expm1-udef1.6%
distribute-frac-neg1.6%
atan-neg1.6%
Applied egg-rr1.6%
expm1-def1.6%
expm1-log1p72.7%
distribute-rgt-neg-out72.7%
distribute-lft-neg-in72.7%
metadata-eval72.7%
Simplified72.7%
Taylor expanded in A around 0 70.9%
+-commutative70.9%
Simplified70.9%
Final simplification70.0%
(FPCore (A B C)
:precision binary64
(let* ((t_0 (/ 180.0 (/ PI (atan (* -0.5 (/ B C))))))
(t_1 (* (/ 180.0 PI) (atan (/ C B))))
(t_2 (* 180.0 (/ (atan (/ 0.0 B)) PI))))
(if (<= B -2.3e-45)
(* (/ 180.0 PI) (atan (/ (- B A) B)))
(if (<= B -3.6e-199)
t_0
(if (<= B -1.15e-245)
(/ 180.0 (/ PI (atan (* 0.5 (/ B A)))))
(if (<= B -7e-297)
t_0
(if (<= B 1.15e-307)
t_1
(if (<= B 4e-251)
t_2
(if (<= B 1.15e-188)
t_1
(if (<= B 7e-106)
t_2
(/ (* -180.0 (atan (/ (+ B A) B))) PI)))))))))))
double code(double A, double B, double C) {
double t_0 = 180.0 / (((double) M_PI) / atan((-0.5 * (B / C))));
double t_1 = (180.0 / ((double) M_PI)) * atan((C / B));
double t_2 = 180.0 * (atan((0.0 / B)) / ((double) M_PI));
double tmp;
if (B <= -2.3e-45) {
tmp = (180.0 / ((double) M_PI)) * atan(((B - A) / B));
} else if (B <= -3.6e-199) {
tmp = t_0;
} else if (B <= -1.15e-245) {
tmp = 180.0 / (((double) M_PI) / atan((0.5 * (B / A))));
} else if (B <= -7e-297) {
tmp = t_0;
} else if (B <= 1.15e-307) {
tmp = t_1;
} else if (B <= 4e-251) {
tmp = t_2;
} else if (B <= 1.15e-188) {
tmp = t_1;
} else if (B <= 7e-106) {
tmp = t_2;
} else {
tmp = (-180.0 * atan(((B + A) / B))) / ((double) M_PI);
}
return tmp;
}
public static double code(double A, double B, double C) {
double t_0 = 180.0 / (Math.PI / Math.atan((-0.5 * (B / C))));
double t_1 = (180.0 / Math.PI) * Math.atan((C / B));
double t_2 = 180.0 * (Math.atan((0.0 / B)) / Math.PI);
double tmp;
if (B <= -2.3e-45) {
tmp = (180.0 / Math.PI) * Math.atan(((B - A) / B));
} else if (B <= -3.6e-199) {
tmp = t_0;
} else if (B <= -1.15e-245) {
tmp = 180.0 / (Math.PI / Math.atan((0.5 * (B / A))));
} else if (B <= -7e-297) {
tmp = t_0;
} else if (B <= 1.15e-307) {
tmp = t_1;
} else if (B <= 4e-251) {
tmp = t_2;
} else if (B <= 1.15e-188) {
tmp = t_1;
} else if (B <= 7e-106) {
tmp = t_2;
} else {
tmp = (-180.0 * Math.atan(((B + A) / B))) / Math.PI;
}
return tmp;
}
def code(A, B, C): t_0 = 180.0 / (math.pi / math.atan((-0.5 * (B / C)))) t_1 = (180.0 / math.pi) * math.atan((C / B)) t_2 = 180.0 * (math.atan((0.0 / B)) / math.pi) tmp = 0 if B <= -2.3e-45: tmp = (180.0 / math.pi) * math.atan(((B - A) / B)) elif B <= -3.6e-199: tmp = t_0 elif B <= -1.15e-245: tmp = 180.0 / (math.pi / math.atan((0.5 * (B / A)))) elif B <= -7e-297: tmp = t_0 elif B <= 1.15e-307: tmp = t_1 elif B <= 4e-251: tmp = t_2 elif B <= 1.15e-188: tmp = t_1 elif B <= 7e-106: tmp = t_2 else: tmp = (-180.0 * math.atan(((B + A) / B))) / math.pi return tmp
function code(A, B, C) t_0 = Float64(180.0 / Float64(pi / atan(Float64(-0.5 * Float64(B / C))))) t_1 = Float64(Float64(180.0 / pi) * atan(Float64(C / B))) t_2 = Float64(180.0 * Float64(atan(Float64(0.0 / B)) / pi)) tmp = 0.0 if (B <= -2.3e-45) tmp = Float64(Float64(180.0 / pi) * atan(Float64(Float64(B - A) / B))); elseif (B <= -3.6e-199) tmp = t_0; elseif (B <= -1.15e-245) tmp = Float64(180.0 / Float64(pi / atan(Float64(0.5 * Float64(B / A))))); elseif (B <= -7e-297) tmp = t_0; elseif (B <= 1.15e-307) tmp = t_1; elseif (B <= 4e-251) tmp = t_2; elseif (B <= 1.15e-188) tmp = t_1; elseif (B <= 7e-106) tmp = t_2; else tmp = Float64(Float64(-180.0 * atan(Float64(Float64(B + A) / B))) / pi); end return tmp end
function tmp_2 = code(A, B, C) t_0 = 180.0 / (pi / atan((-0.5 * (B / C)))); t_1 = (180.0 / pi) * atan((C / B)); t_2 = 180.0 * (atan((0.0 / B)) / pi); tmp = 0.0; if (B <= -2.3e-45) tmp = (180.0 / pi) * atan(((B - A) / B)); elseif (B <= -3.6e-199) tmp = t_0; elseif (B <= -1.15e-245) tmp = 180.0 / (pi / atan((0.5 * (B / A)))); elseif (B <= -7e-297) tmp = t_0; elseif (B <= 1.15e-307) tmp = t_1; elseif (B <= 4e-251) tmp = t_2; elseif (B <= 1.15e-188) tmp = t_1; elseif (B <= 7e-106) tmp = t_2; else tmp = (-180.0 * atan(((B + A) / B))) / pi; end tmp_2 = tmp; end
code[A_, B_, C_] := Block[{t$95$0 = N[(180.0 / N[(Pi / N[ArcTan[N[(-0.5 * N[(B / C), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(C / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(180.0 * N[(N[ArcTan[N[(0.0 / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[B, -2.3e-45], N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(N[(B - A), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -3.6e-199], t$95$0, If[LessEqual[B, -1.15e-245], N[(180.0 / N[(Pi / N[ArcTan[N[(0.5 * N[(B / A), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -7e-297], t$95$0, If[LessEqual[B, 1.15e-307], t$95$1, If[LessEqual[B, 4e-251], t$95$2, If[LessEqual[B, 1.15e-188], t$95$1, If[LessEqual[B, 7e-106], t$95$2, N[(N[(-180.0 * N[ArcTan[N[(N[(B + A), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision]]]]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{180}{\frac{\pi}{\tan^{-1} \left(-0.5 \cdot \frac{B}{C}\right)}}\\
t_1 := \frac{180}{\pi} \cdot \tan^{-1} \left(\frac{C}{B}\right)\\
t_2 := 180 \cdot \frac{\tan^{-1} \left(\frac{0}{B}\right)}{\pi}\\
\mathbf{if}\;B \leq -2.3 \cdot 10^{-45}:\\
\;\;\;\;\frac{180}{\pi} \cdot \tan^{-1} \left(\frac{B - A}{B}\right)\\
\mathbf{elif}\;B \leq -3.6 \cdot 10^{-199}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;B \leq -1.15 \cdot 10^{-245}:\\
\;\;\;\;\frac{180}{\frac{\pi}{\tan^{-1} \left(0.5 \cdot \frac{B}{A}\right)}}\\
\mathbf{elif}\;B \leq -7 \cdot 10^{-297}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;B \leq 1.15 \cdot 10^{-307}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;B \leq 4 \cdot 10^{-251}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;B \leq 1.15 \cdot 10^{-188}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;B \leq 7 \cdot 10^{-106}:\\
\;\;\;\;t_2\\
\mathbf{else}:\\
\;\;\;\;\frac{-180 \cdot \tan^{-1} \left(\frac{B + A}{B}\right)}{\pi}\\
\end{array}
\end{array}
if B < -2.29999999999999992e-45Initial program 58.6%
associate-*r/58.7%
associate-*l/58.6%
associate-*l/58.6%
*-lft-identity58.6%
sub-neg58.6%
associate-+l-58.6%
sub-neg58.6%
remove-double-neg58.6%
+-commutative58.6%
unpow258.6%
unpow258.6%
hypot-def87.1%
Simplified87.1%
Taylor expanded in B around -inf 86.1%
neg-mul-186.1%
unsub-neg86.1%
Simplified86.1%
Taylor expanded in C around 0 77.4%
if -2.29999999999999992e-45 < B < -3.6000000000000002e-199 or -1.1500000000000001e-245 < B < -6.9999999999999998e-297Initial program 40.5%
associate-*r/40.5%
unpow240.5%
Simplified40.5%
*-commutative40.5%
associate--l-40.4%
+-commutative40.4%
unpow240.4%
hypot-udef60.4%
div-inv60.4%
clear-num60.4%
Applied egg-rr60.4%
Taylor expanded in A around 0 36.8%
unpow236.8%
unpow236.8%
hypot-def56.8%
Simplified56.8%
Taylor expanded in C around inf 55.5%
*-un-lft-identity55.5%
associate-/l*55.7%
Applied egg-rr55.7%
if -3.6000000000000002e-199 < B < -1.1500000000000001e-245Initial program 49.9%
associate-*l/49.9%
*-lft-identity49.9%
+-commutative49.9%
unpow249.9%
unpow249.9%
hypot-def85.1%
Simplified85.1%
Taylor expanded in A around -inf 58.7%
unpow258.7%
Simplified58.7%
Taylor expanded in B around 0 73.8%
associate-*r/73.9%
associate-/l*76.0%
Simplified76.0%
if -6.9999999999999998e-297 < B < 1.1499999999999999e-307 or 4.00000000000000006e-251 < B < 1.15e-188Initial program 80.8%
associate-*r/80.8%
associate-*l/80.8%
associate-*l/80.8%
*-lft-identity80.8%
sub-neg80.8%
associate-+l-80.7%
sub-neg80.7%
remove-double-neg80.7%
+-commutative80.7%
unpow280.7%
unpow280.7%
hypot-def87.2%
Simplified87.2%
Taylor expanded in B around -inf 80.6%
neg-mul-180.6%
unsub-neg80.6%
Simplified80.6%
Taylor expanded in C around inf 80.7%
if 1.1499999999999999e-307 < B < 4.00000000000000006e-251 or 1.15e-188 < B < 7e-106Initial program 37.8%
associate-*l/37.8%
*-lft-identity37.8%
+-commutative37.8%
unpow237.8%
unpow237.8%
hypot-def84.3%
Simplified84.3%
Taylor expanded in C around inf 61.7%
distribute-rgt1-in61.7%
metadata-eval61.7%
mul0-lft61.7%
metadata-eval61.7%
Simplified61.7%
if 7e-106 < B Initial program 57.4%
associate-*r/57.4%
unpow257.4%
Simplified57.4%
*-commutative57.4%
associate--l-57.4%
+-commutative57.4%
unpow257.4%
hypot-udef82.8%
div-inv82.8%
clear-num82.8%
Applied egg-rr82.8%
Taylor expanded in C around 0 50.8%
associate-*r/50.8%
mul-1-neg50.8%
+-commutative50.8%
unpow250.8%
unpow250.8%
hypot-def72.7%
Simplified72.7%
expm1-log1p-u1.6%
expm1-udef1.6%
distribute-frac-neg1.6%
atan-neg1.6%
Applied egg-rr1.6%
expm1-def1.6%
expm1-log1p72.7%
distribute-rgt-neg-out72.7%
distribute-lft-neg-in72.7%
metadata-eval72.7%
Simplified72.7%
Taylor expanded in A around 0 70.9%
+-commutative70.9%
Simplified70.9%
Final simplification70.0%
(FPCore (A B C)
:precision binary64
(let* ((t_0
(/ (* 180.0 (atan (/ 1.0 (+ (* 2.0 (/ A B)) (* -2.0 (/ C B)))))) PI)))
(if (<= B -3.2e-59)
(* (/ 180.0 PI) (atan (/ (- C (- A B)) B)))
(if (<= B -5.6e-297)
t_0
(if (<= B 1.25e-307)
(* (/ 180.0 PI) (atan (/ C B)))
(if (<= B 8.4e-102)
t_0
(* 180.0 (/ (atan (/ (- (- C B) A) B)) PI))))))))
double code(double A, double B, double C) {
double t_0 = (180.0 * atan((1.0 / ((2.0 * (A / B)) + (-2.0 * (C / B)))))) / ((double) M_PI);
double tmp;
if (B <= -3.2e-59) {
tmp = (180.0 / ((double) M_PI)) * atan(((C - (A - B)) / B));
} else if (B <= -5.6e-297) {
tmp = t_0;
} else if (B <= 1.25e-307) {
tmp = (180.0 / ((double) M_PI)) * atan((C / B));
} else if (B <= 8.4e-102) {
tmp = t_0;
} else {
tmp = 180.0 * (atan((((C - B) - A) / B)) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double t_0 = (180.0 * Math.atan((1.0 / ((2.0 * (A / B)) + (-2.0 * (C / B)))))) / Math.PI;
double tmp;
if (B <= -3.2e-59) {
tmp = (180.0 / Math.PI) * Math.atan(((C - (A - B)) / B));
} else if (B <= -5.6e-297) {
tmp = t_0;
} else if (B <= 1.25e-307) {
tmp = (180.0 / Math.PI) * Math.atan((C / B));
} else if (B <= 8.4e-102) {
tmp = t_0;
} else {
tmp = 180.0 * (Math.atan((((C - B) - A) / B)) / Math.PI);
}
return tmp;
}
def code(A, B, C): t_0 = (180.0 * math.atan((1.0 / ((2.0 * (A / B)) + (-2.0 * (C / B)))))) / math.pi tmp = 0 if B <= -3.2e-59: tmp = (180.0 / math.pi) * math.atan(((C - (A - B)) / B)) elif B <= -5.6e-297: tmp = t_0 elif B <= 1.25e-307: tmp = (180.0 / math.pi) * math.atan((C / B)) elif B <= 8.4e-102: tmp = t_0 else: tmp = 180.0 * (math.atan((((C - B) - A) / B)) / math.pi) return tmp
function code(A, B, C) t_0 = Float64(Float64(180.0 * atan(Float64(1.0 / Float64(Float64(2.0 * Float64(A / B)) + Float64(-2.0 * Float64(C / B)))))) / pi) tmp = 0.0 if (B <= -3.2e-59) tmp = Float64(Float64(180.0 / pi) * atan(Float64(Float64(C - Float64(A - B)) / B))); elseif (B <= -5.6e-297) tmp = t_0; elseif (B <= 1.25e-307) tmp = Float64(Float64(180.0 / pi) * atan(Float64(C / B))); elseif (B <= 8.4e-102) tmp = t_0; else tmp = Float64(180.0 * Float64(atan(Float64(Float64(Float64(C - B) - A) / B)) / pi)); end return tmp end
function tmp_2 = code(A, B, C) t_0 = (180.0 * atan((1.0 / ((2.0 * (A / B)) + (-2.0 * (C / B)))))) / pi; tmp = 0.0; if (B <= -3.2e-59) tmp = (180.0 / pi) * atan(((C - (A - B)) / B)); elseif (B <= -5.6e-297) tmp = t_0; elseif (B <= 1.25e-307) tmp = (180.0 / pi) * atan((C / B)); elseif (B <= 8.4e-102) tmp = t_0; else tmp = 180.0 * (atan((((C - B) - A) / B)) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := Block[{t$95$0 = N[(N[(180.0 * N[ArcTan[N[(1.0 / N[(N[(2.0 * N[(A / B), $MachinePrecision]), $MachinePrecision] + N[(-2.0 * N[(C / B), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision]}, If[LessEqual[B, -3.2e-59], N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(N[(C - N[(A - B), $MachinePrecision]), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -5.6e-297], t$95$0, If[LessEqual[B, 1.25e-307], N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(C / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], If[LessEqual[B, 8.4e-102], t$95$0, N[(180.0 * N[(N[ArcTan[N[(N[(N[(C - B), $MachinePrecision] - A), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{180 \cdot \tan^{-1} \left(\frac{1}{2 \cdot \frac{A}{B} + -2 \cdot \frac{C}{B}}\right)}{\pi}\\
\mathbf{if}\;B \leq -3.2 \cdot 10^{-59}:\\
\;\;\;\;\frac{180}{\pi} \cdot \tan^{-1} \left(\frac{C - \left(A - B\right)}{B}\right)\\
\mathbf{elif}\;B \leq -5.6 \cdot 10^{-297}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;B \leq 1.25 \cdot 10^{-307}:\\
\;\;\;\;\frac{180}{\pi} \cdot \tan^{-1} \left(\frac{C}{B}\right)\\
\mathbf{elif}\;B \leq 8.4 \cdot 10^{-102}:\\
\;\;\;\;t_0\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{\left(C - B\right) - A}{B}\right)}{\pi}\\
\end{array}
\end{array}
if B < -3.1999999999999999e-59Initial program 58.3%
associate-*r/58.3%
associate-*l/58.3%
associate-*l/58.3%
*-lft-identity58.3%
sub-neg58.3%
associate-+l-58.2%
sub-neg58.2%
remove-double-neg58.2%
+-commutative58.2%
unpow258.2%
unpow258.2%
hypot-def86.6%
Simplified86.6%
Taylor expanded in B around -inf 84.3%
neg-mul-184.3%
unsub-neg84.3%
Simplified84.3%
if -3.1999999999999999e-59 < B < -5.59999999999999968e-297 or 1.25000000000000003e-307 < B < 8.4e-102Initial program 43.5%
associate-*r/43.5%
unpow243.5%
Simplified43.5%
*-commutative43.5%
associate--l-39.7%
+-commutative39.7%
unpow239.7%
hypot-udef59.8%
div-inv59.8%
clear-num59.8%
Applied egg-rr59.8%
Taylor expanded in A around -inf 62.0%
if -5.59999999999999968e-297 < B < 1.25000000000000003e-307Initial program 100.0%
associate-*r/100.0%
associate-*l/100.0%
associate-*l/100.0%
*-lft-identity100.0%
sub-neg100.0%
associate-+l-100.0%
sub-neg100.0%
remove-double-neg100.0%
+-commutative100.0%
unpow2100.0%
unpow2100.0%
hypot-def100.0%
Simplified100.0%
Taylor expanded in B around -inf 100.0%
neg-mul-1100.0%
unsub-neg100.0%
Simplified100.0%
Taylor expanded in C around inf 100.0%
if 8.4e-102 < B Initial program 58.0%
associate-*l/58.0%
*-lft-identity58.0%
+-commutative58.0%
unpow258.0%
unpow258.0%
hypot-def83.8%
Simplified83.8%
Taylor expanded in B around inf 81.0%
neg-mul-181.0%
unsub-neg81.0%
Simplified81.0%
Final simplification75.8%
(FPCore (A B C)
:precision binary64
(let* ((t_0 (* 180.0 (/ (atan (/ 0.0 B)) PI)))
(t_1 (* (/ 180.0 PI) (atan (/ C B)))))
(if (<= B -1.55e-183)
(* 180.0 (/ (atan 1.0) PI))
(if (<= B -1.08e-296)
t_0
(if (<= B 1.15e-307)
t_1
(if (<= B 3.2e-251)
t_0
(if (<= B 3.7e-187)
t_1
(if (<= B 1.95e-104) t_0 (* 180.0 (/ (atan -1.0) PI))))))))))
double code(double A, double B, double C) {
double t_0 = 180.0 * (atan((0.0 / B)) / ((double) M_PI));
double t_1 = (180.0 / ((double) M_PI)) * atan((C / B));
double tmp;
if (B <= -1.55e-183) {
tmp = 180.0 * (atan(1.0) / ((double) M_PI));
} else if (B <= -1.08e-296) {
tmp = t_0;
} else if (B <= 1.15e-307) {
tmp = t_1;
} else if (B <= 3.2e-251) {
tmp = t_0;
} else if (B <= 3.7e-187) {
tmp = t_1;
} else if (B <= 1.95e-104) {
tmp = t_0;
} else {
tmp = 180.0 * (atan(-1.0) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double t_0 = 180.0 * (Math.atan((0.0 / B)) / Math.PI);
double t_1 = (180.0 / Math.PI) * Math.atan((C / B));
double tmp;
if (B <= -1.55e-183) {
tmp = 180.0 * (Math.atan(1.0) / Math.PI);
} else if (B <= -1.08e-296) {
tmp = t_0;
} else if (B <= 1.15e-307) {
tmp = t_1;
} else if (B <= 3.2e-251) {
tmp = t_0;
} else if (B <= 3.7e-187) {
tmp = t_1;
} else if (B <= 1.95e-104) {
tmp = t_0;
} else {
tmp = 180.0 * (Math.atan(-1.0) / Math.PI);
}
return tmp;
}
def code(A, B, C): t_0 = 180.0 * (math.atan((0.0 / B)) / math.pi) t_1 = (180.0 / math.pi) * math.atan((C / B)) tmp = 0 if B <= -1.55e-183: tmp = 180.0 * (math.atan(1.0) / math.pi) elif B <= -1.08e-296: tmp = t_0 elif B <= 1.15e-307: tmp = t_1 elif B <= 3.2e-251: tmp = t_0 elif B <= 3.7e-187: tmp = t_1 elif B <= 1.95e-104: tmp = t_0 else: tmp = 180.0 * (math.atan(-1.0) / math.pi) return tmp
function code(A, B, C) t_0 = Float64(180.0 * Float64(atan(Float64(0.0 / B)) / pi)) t_1 = Float64(Float64(180.0 / pi) * atan(Float64(C / B))) tmp = 0.0 if (B <= -1.55e-183) tmp = Float64(180.0 * Float64(atan(1.0) / pi)); elseif (B <= -1.08e-296) tmp = t_0; elseif (B <= 1.15e-307) tmp = t_1; elseif (B <= 3.2e-251) tmp = t_0; elseif (B <= 3.7e-187) tmp = t_1; elseif (B <= 1.95e-104) tmp = t_0; else tmp = Float64(180.0 * Float64(atan(-1.0) / pi)); end return tmp end
function tmp_2 = code(A, B, C) t_0 = 180.0 * (atan((0.0 / B)) / pi); t_1 = (180.0 / pi) * atan((C / B)); tmp = 0.0; if (B <= -1.55e-183) tmp = 180.0 * (atan(1.0) / pi); elseif (B <= -1.08e-296) tmp = t_0; elseif (B <= 1.15e-307) tmp = t_1; elseif (B <= 3.2e-251) tmp = t_0; elseif (B <= 3.7e-187) tmp = t_1; elseif (B <= 1.95e-104) tmp = t_0; else tmp = 180.0 * (atan(-1.0) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := Block[{t$95$0 = N[(180.0 * N[(N[ArcTan[N[(0.0 / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(C / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[B, -1.55e-183], N[(180.0 * N[(N[ArcTan[1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -1.08e-296], t$95$0, If[LessEqual[B, 1.15e-307], t$95$1, If[LessEqual[B, 3.2e-251], t$95$0, If[LessEqual[B, 3.7e-187], t$95$1, If[LessEqual[B, 1.95e-104], t$95$0, N[(180.0 * N[(N[ArcTan[-1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := 180 \cdot \frac{\tan^{-1} \left(\frac{0}{B}\right)}{\pi}\\
t_1 := \frac{180}{\pi} \cdot \tan^{-1} \left(\frac{C}{B}\right)\\
\mathbf{if}\;B \leq -1.55 \cdot 10^{-183}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} 1}{\pi}\\
\mathbf{elif}\;B \leq -1.08 \cdot 10^{-296}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;B \leq 1.15 \cdot 10^{-307}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;B \leq 3.2 \cdot 10^{-251}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;B \leq 3.7 \cdot 10^{-187}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;B \leq 1.95 \cdot 10^{-104}:\\
\;\;\;\;t_0\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} -1}{\pi}\\
\end{array}
\end{array}
if B < -1.55e-183Initial program 54.4%
associate-*l/54.4%
*-lft-identity54.4%
+-commutative54.4%
unpow254.4%
unpow254.4%
hypot-def79.9%
Simplified79.9%
Taylor expanded in B around -inf 51.6%
if -1.55e-183 < B < -1.08e-296 or 1.1499999999999999e-307 < B < 3.19999999999999982e-251 or 3.7000000000000001e-187 < B < 1.9500000000000001e-104Initial program 38.2%
associate-*l/38.2%
*-lft-identity38.2%
+-commutative38.2%
unpow238.2%
unpow238.2%
hypot-def80.6%
Simplified80.6%
Taylor expanded in C around inf 58.7%
distribute-rgt1-in58.7%
metadata-eval58.7%
mul0-lft58.7%
metadata-eval58.7%
Simplified58.7%
if -1.08e-296 < B < 1.1499999999999999e-307 or 3.19999999999999982e-251 < B < 3.7000000000000001e-187Initial program 80.8%
associate-*r/80.8%
associate-*l/80.8%
associate-*l/80.8%
*-lft-identity80.8%
sub-neg80.8%
associate-+l-80.7%
sub-neg80.7%
remove-double-neg80.7%
+-commutative80.7%
unpow280.7%
unpow280.7%
hypot-def87.2%
Simplified87.2%
Taylor expanded in B around -inf 80.6%
neg-mul-180.6%
unsub-neg80.6%
Simplified80.6%
Taylor expanded in C around inf 80.7%
if 1.9500000000000001e-104 < B Initial program 57.4%
associate-*l/57.4%
*-lft-identity57.4%
+-commutative57.4%
unpow257.4%
unpow257.4%
hypot-def82.9%
Simplified82.9%
Taylor expanded in B around inf 59.3%
Final simplification57.2%
(FPCore (A B C)
:precision binary64
(let* ((t_0 (/ (* -180.0 (atan (/ (+ B A) B))) PI))
(t_1 (* 180.0 (/ (atan (/ (- (+ B C) A) B)) PI))))
(if (<= C -7.6e+47)
t_1
(if (<= C -1.15e+25)
t_0
(if (<= C -1e-182)
t_1
(if (<= C -1.65e-282)
t_0
(if (<= C 1.38e-73)
(* (/ 180.0 PI) (atan (/ (- B A) B)))
(/ (* 180.0 (atan (* -0.5 (/ B C)))) PI))))))))
double code(double A, double B, double C) {
double t_0 = (-180.0 * atan(((B + A) / B))) / ((double) M_PI);
double t_1 = 180.0 * (atan((((B + C) - A) / B)) / ((double) M_PI));
double tmp;
if (C <= -7.6e+47) {
tmp = t_1;
} else if (C <= -1.15e+25) {
tmp = t_0;
} else if (C <= -1e-182) {
tmp = t_1;
} else if (C <= -1.65e-282) {
tmp = t_0;
} else if (C <= 1.38e-73) {
tmp = (180.0 / ((double) M_PI)) * atan(((B - A) / B));
} else {
tmp = (180.0 * atan((-0.5 * (B / C)))) / ((double) M_PI);
}
return tmp;
}
public static double code(double A, double B, double C) {
double t_0 = (-180.0 * Math.atan(((B + A) / B))) / Math.PI;
double t_1 = 180.0 * (Math.atan((((B + C) - A) / B)) / Math.PI);
double tmp;
if (C <= -7.6e+47) {
tmp = t_1;
} else if (C <= -1.15e+25) {
tmp = t_0;
} else if (C <= -1e-182) {
tmp = t_1;
} else if (C <= -1.65e-282) {
tmp = t_0;
} else if (C <= 1.38e-73) {
tmp = (180.0 / Math.PI) * Math.atan(((B - A) / B));
} else {
tmp = (180.0 * Math.atan((-0.5 * (B / C)))) / Math.PI;
}
return tmp;
}
def code(A, B, C): t_0 = (-180.0 * math.atan(((B + A) / B))) / math.pi t_1 = 180.0 * (math.atan((((B + C) - A) / B)) / math.pi) tmp = 0 if C <= -7.6e+47: tmp = t_1 elif C <= -1.15e+25: tmp = t_0 elif C <= -1e-182: tmp = t_1 elif C <= -1.65e-282: tmp = t_0 elif C <= 1.38e-73: tmp = (180.0 / math.pi) * math.atan(((B - A) / B)) else: tmp = (180.0 * math.atan((-0.5 * (B / C)))) / math.pi return tmp
function code(A, B, C) t_0 = Float64(Float64(-180.0 * atan(Float64(Float64(B + A) / B))) / pi) t_1 = Float64(180.0 * Float64(atan(Float64(Float64(Float64(B + C) - A) / B)) / pi)) tmp = 0.0 if (C <= -7.6e+47) tmp = t_1; elseif (C <= -1.15e+25) tmp = t_0; elseif (C <= -1e-182) tmp = t_1; elseif (C <= -1.65e-282) tmp = t_0; elseif (C <= 1.38e-73) tmp = Float64(Float64(180.0 / pi) * atan(Float64(Float64(B - A) / B))); else tmp = Float64(Float64(180.0 * atan(Float64(-0.5 * Float64(B / C)))) / pi); end return tmp end
function tmp_2 = code(A, B, C) t_0 = (-180.0 * atan(((B + A) / B))) / pi; t_1 = 180.0 * (atan((((B + C) - A) / B)) / pi); tmp = 0.0; if (C <= -7.6e+47) tmp = t_1; elseif (C <= -1.15e+25) tmp = t_0; elseif (C <= -1e-182) tmp = t_1; elseif (C <= -1.65e-282) tmp = t_0; elseif (C <= 1.38e-73) tmp = (180.0 / pi) * atan(((B - A) / B)); else tmp = (180.0 * atan((-0.5 * (B / C)))) / pi; end tmp_2 = tmp; end
code[A_, B_, C_] := Block[{t$95$0 = N[(N[(-180.0 * N[ArcTan[N[(N[(B + A), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision]}, Block[{t$95$1 = N[(180.0 * N[(N[ArcTan[N[(N[(N[(B + C), $MachinePrecision] - A), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[C, -7.6e+47], t$95$1, If[LessEqual[C, -1.15e+25], t$95$0, If[LessEqual[C, -1e-182], t$95$1, If[LessEqual[C, -1.65e-282], t$95$0, If[LessEqual[C, 1.38e-73], N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(N[(B - A), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], N[(N[(180.0 * N[ArcTan[N[(-0.5 * N[(B / C), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision]]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{-180 \cdot \tan^{-1} \left(\frac{B + A}{B}\right)}{\pi}\\
t_1 := 180 \cdot \frac{\tan^{-1} \left(\frac{\left(B + C\right) - A}{B}\right)}{\pi}\\
\mathbf{if}\;C \leq -7.6 \cdot 10^{+47}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;C \leq -1.15 \cdot 10^{+25}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;C \leq -1 \cdot 10^{-182}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;C \leq -1.65 \cdot 10^{-282}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;C \leq 1.38 \cdot 10^{-73}:\\
\;\;\;\;\frac{180}{\pi} \cdot \tan^{-1} \left(\frac{B - A}{B}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(-0.5 \cdot \frac{B}{C}\right)}{\pi}\\
\end{array}
\end{array}
if C < -7.6000000000000007e47 or -1.1499999999999999e25 < C < -1e-182Initial program 79.3%
associate-*l/79.3%
*-lft-identity79.3%
+-commutative79.3%
unpow279.3%
unpow279.3%
hypot-def94.5%
Simplified94.5%
Taylor expanded in B around -inf 79.3%
if -7.6000000000000007e47 < C < -1.1499999999999999e25 or -1e-182 < C < -1.65e-282Initial program 55.8%
associate-*r/55.8%
unpow255.8%
Simplified55.8%
*-commutative55.8%
associate--l-53.3%
+-commutative53.3%
unpow253.3%
hypot-udef82.1%
div-inv82.1%
clear-num82.1%
Applied egg-rr82.1%
Taylor expanded in C around 0 55.8%
associate-*r/55.8%
mul-1-neg55.8%
+-commutative55.8%
unpow255.8%
unpow255.8%
hypot-def89.8%
Simplified89.8%
expm1-log1p-u35.5%
expm1-udef35.5%
distribute-frac-neg35.5%
atan-neg35.5%
Applied egg-rr35.5%
expm1-def35.5%
expm1-log1p89.8%
distribute-rgt-neg-out89.8%
distribute-lft-neg-in89.8%
metadata-eval89.8%
Simplified89.8%
Taylor expanded in A around 0 63.9%
+-commutative63.9%
Simplified63.9%
if -1.65e-282 < C < 1.37999999999999996e-73Initial program 62.0%
associate-*r/62.0%
associate-*l/62.0%
associate-*l/62.0%
*-lft-identity62.0%
sub-neg62.0%
associate-+l-61.8%
sub-neg61.8%
remove-double-neg61.8%
+-commutative61.8%
unpow261.8%
unpow261.8%
hypot-def77.6%
Simplified77.6%
Taylor expanded in B around -inf 57.1%
neg-mul-157.1%
unsub-neg57.1%
Simplified57.1%
Taylor expanded in C around 0 57.2%
if 1.37999999999999996e-73 < C Initial program 22.2%
associate-*r/22.2%
unpow222.2%
Simplified22.2%
*-commutative22.2%
associate--l-20.7%
+-commutative20.7%
unpow220.7%
hypot-udef58.9%
div-inv58.9%
clear-num58.9%
Applied egg-rr58.9%
Taylor expanded in A around 0 24.8%
unpow224.8%
unpow224.8%
hypot-def59.8%
Simplified59.8%
Taylor expanded in C around inf 63.9%
Final simplification67.9%
(FPCore (A B C)
:precision binary64
(if (<= C -1.4e+79)
(* 180.0 (/ (atan (/ (* C 2.0) B)) PI))
(if (<= C 1.5e-72)
(* (/ 180.0 PI) (atan (/ (- B A) B)))
(* 180.0 (/ (atan (* -0.5 (/ B C))) PI)))))
double code(double A, double B, double C) {
double tmp;
if (C <= -1.4e+79) {
tmp = 180.0 * (atan(((C * 2.0) / B)) / ((double) M_PI));
} else if (C <= 1.5e-72) {
tmp = (180.0 / ((double) M_PI)) * atan(((B - A) / B));
} else {
tmp = 180.0 * (atan((-0.5 * (B / C))) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (C <= -1.4e+79) {
tmp = 180.0 * (Math.atan(((C * 2.0) / B)) / Math.PI);
} else if (C <= 1.5e-72) {
tmp = (180.0 / Math.PI) * Math.atan(((B - A) / B));
} else {
tmp = 180.0 * (Math.atan((-0.5 * (B / C))) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if C <= -1.4e+79: tmp = 180.0 * (math.atan(((C * 2.0) / B)) / math.pi) elif C <= 1.5e-72: tmp = (180.0 / math.pi) * math.atan(((B - A) / B)) else: tmp = 180.0 * (math.atan((-0.5 * (B / C))) / math.pi) return tmp
function code(A, B, C) tmp = 0.0 if (C <= -1.4e+79) tmp = Float64(180.0 * Float64(atan(Float64(Float64(C * 2.0) / B)) / pi)); elseif (C <= 1.5e-72) tmp = Float64(Float64(180.0 / pi) * atan(Float64(Float64(B - A) / B))); else tmp = Float64(180.0 * Float64(atan(Float64(-0.5 * Float64(B / C))) / pi)); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (C <= -1.4e+79) tmp = 180.0 * (atan(((C * 2.0) / B)) / pi); elseif (C <= 1.5e-72) tmp = (180.0 / pi) * atan(((B - A) / B)); else tmp = 180.0 * (atan((-0.5 * (B / C))) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[C, -1.4e+79], N[(180.0 * N[(N[ArcTan[N[(N[(C * 2.0), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[C, 1.5e-72], N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(N[(B - A), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(-0.5 * N[(B / C), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;C \leq -1.4 \cdot 10^{+79}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{C \cdot 2}{B}\right)}{\pi}\\
\mathbf{elif}\;C \leq 1.5 \cdot 10^{-72}:\\
\;\;\;\;\frac{180}{\pi} \cdot \tan^{-1} \left(\frac{B - A}{B}\right)\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(-0.5 \cdot \frac{B}{C}\right)}{\pi}\\
\end{array}
\end{array}
if C < -1.4000000000000001e79Initial program 87.7%
associate-*l/87.7%
*-lft-identity87.7%
+-commutative87.7%
unpow287.7%
unpow287.7%
hypot-def97.6%
Simplified97.6%
Taylor expanded in C around -inf 82.2%
if -1.4000000000000001e79 < C < 1.5e-72Initial program 63.7%
associate-*r/63.7%
associate-*l/63.7%
associate-*l/63.7%
*-lft-identity63.7%
sub-neg63.7%
associate-+l-62.1%
sub-neg62.1%
remove-double-neg62.1%
+-commutative62.1%
unpow262.1%
unpow262.1%
hypot-def81.5%
Simplified81.5%
Taylor expanded in B around -inf 55.8%
neg-mul-155.8%
unsub-neg55.8%
Simplified55.8%
Taylor expanded in C around 0 49.9%
if 1.5e-72 < C Initial program 22.2%
associate-*r/22.2%
unpow222.2%
Simplified22.2%
*-commutative22.2%
associate--l-20.7%
+-commutative20.7%
unpow220.7%
hypot-udef58.9%
div-inv58.9%
clear-num58.9%
Applied egg-rr58.9%
Taylor expanded in A around 0 24.8%
unpow224.8%
unpow224.8%
hypot-def59.8%
Simplified59.8%
Taylor expanded in C around inf 63.9%
Taylor expanded in B around 0 63.9%
Final simplification59.7%
(FPCore (A B C)
:precision binary64
(if (<= B -1.45e-183)
(* 180.0 (/ (atan 1.0) PI))
(if (<= B 7e-105)
(* 180.0 (/ (atan (/ 0.0 B)) PI))
(* 180.0 (/ (atan -1.0) PI)))))
double code(double A, double B, double C) {
double tmp;
if (B <= -1.45e-183) {
tmp = 180.0 * (atan(1.0) / ((double) M_PI));
} else if (B <= 7e-105) {
tmp = 180.0 * (atan((0.0 / 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 <= -1.45e-183) {
tmp = 180.0 * (Math.atan(1.0) / Math.PI);
} else if (B <= 7e-105) {
tmp = 180.0 * (Math.atan((0.0 / B)) / Math.PI);
} else {
tmp = 180.0 * (Math.atan(-1.0) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if B <= -1.45e-183: tmp = 180.0 * (math.atan(1.0) / math.pi) elif B <= 7e-105: tmp = 180.0 * (math.atan((0.0 / 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 <= -1.45e-183) tmp = Float64(180.0 * Float64(atan(1.0) / pi)); elseif (B <= 7e-105) tmp = Float64(180.0 * Float64(atan(Float64(0.0 / 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 <= -1.45e-183) tmp = 180.0 * (atan(1.0) / pi); elseif (B <= 7e-105) tmp = 180.0 * (atan((0.0 / B)) / pi); else tmp = 180.0 * (atan(-1.0) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[B, -1.45e-183], N[(180.0 * N[(N[ArcTan[1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, 7e-105], N[(180.0 * N[(N[ArcTan[N[(0.0 / 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.45 \cdot 10^{-183}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} 1}{\pi}\\
\mathbf{elif}\;B \leq 7 \cdot 10^{-105}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{0}{B}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} -1}{\pi}\\
\end{array}
\end{array}
if B < -1.45e-183Initial program 54.4%
associate-*l/54.4%
*-lft-identity54.4%
+-commutative54.4%
unpow254.4%
unpow254.4%
hypot-def79.9%
Simplified79.9%
Taylor expanded in B around -inf 51.6%
if -1.45e-183 < B < 7e-105Initial program 48.3%
associate-*l/48.3%
*-lft-identity48.3%
+-commutative48.3%
unpow248.3%
unpow248.3%
hypot-def83.7%
Simplified83.7%
Taylor expanded in C around inf 48.6%
distribute-rgt1-in48.6%
metadata-eval48.6%
mul0-lft48.6%
metadata-eval48.6%
Simplified48.6%
if 7e-105 < B Initial program 57.4%
associate-*l/57.4%
*-lft-identity57.4%
+-commutative57.4%
unpow257.4%
unpow257.4%
hypot-def82.9%
Simplified82.9%
Taylor expanded in B around inf 59.3%
Final simplification53.4%
(FPCore (A B C) :precision binary64 (if (<= B -1e-310) (* 180.0 (/ (atan 1.0) PI)) (* 180.0 (/ (atan -1.0) PI))))
double code(double A, double B, double C) {
double tmp;
if (B <= -1e-310) {
tmp = 180.0 * (atan(1.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 <= -1e-310) {
tmp = 180.0 * (Math.atan(1.0) / Math.PI);
} else {
tmp = 180.0 * (Math.atan(-1.0) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if B <= -1e-310: tmp = 180.0 * (math.atan(1.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 <= -1e-310) tmp = Float64(180.0 * Float64(atan(1.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 <= -1e-310) tmp = 180.0 * (atan(1.0) / pi); else tmp = 180.0 * (atan(-1.0) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[B, -1e-310], N[(180.0 * N[(N[ArcTan[1.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 \cdot 10^{-310}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} 1}{\pi}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} -1}{\pi}\\
\end{array}
\end{array}
if B < -9.999999999999969e-311Initial program 53.1%
associate-*l/53.1%
*-lft-identity53.1%
+-commutative53.1%
unpow253.1%
unpow253.1%
hypot-def79.9%
Simplified79.9%
Taylor expanded in B around -inf 42.9%
if -9.999999999999969e-311 < B Initial program 54.9%
associate-*l/54.9%
*-lft-identity54.9%
+-commutative54.9%
unpow254.9%
unpow254.9%
hypot-def83.9%
Simplified83.9%
Taylor expanded in B around inf 44.5%
Final simplification43.7%
(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}
Initial program 53.9%
associate-*l/53.9%
*-lft-identity53.9%
+-commutative53.9%
unpow253.9%
unpow253.9%
hypot-def81.8%
Simplified81.8%
Taylor expanded in B around inf 22.2%
Final simplification22.2%
herbie shell --seed 2023257
(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)))