
(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 24 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) (+ (sqrt (+ (pow (- A C) 2.0) (pow B 2.0))) (- A C)))))
(if (or (<= t_0 -0.5) (not (<= t_0 0.0)))
(/ (* 180.0 (atan (/ (- (- C A) (hypot (- A C) B)) B))) PI)
(/
(*
180.0
(atan (/ 1.0 (* A (- (* (/ 1.0 B) 2.0) (* 2.0 (/ C (* B A))))))))
PI))))
double code(double A, double B, double C) {
double t_0 = (-1.0 / B) * (sqrt((pow((A - C), 2.0) + pow(B, 2.0))) + (A - C));
double tmp;
if ((t_0 <= -0.5) || !(t_0 <= 0.0)) {
tmp = (180.0 * atan((((C - A) - hypot((A - C), B)) / B))) / ((double) M_PI);
} else {
tmp = (180.0 * atan((1.0 / (A * (((1.0 / B) * 2.0) - (2.0 * (C / (B * A)))))))) / ((double) M_PI);
}
return tmp;
}
public static double code(double A, double B, double C) {
double t_0 = (-1.0 / B) * (Math.sqrt((Math.pow((A - C), 2.0) + Math.pow(B, 2.0))) + (A - C));
double tmp;
if ((t_0 <= -0.5) || !(t_0 <= 0.0)) {
tmp = (180.0 * Math.atan((((C - A) - Math.hypot((A - C), B)) / B))) / Math.PI;
} else {
tmp = (180.0 * Math.atan((1.0 / (A * (((1.0 / B) * 2.0) - (2.0 * (C / (B * A)))))))) / Math.PI;
}
return tmp;
}
def code(A, B, C): t_0 = (-1.0 / B) * (math.sqrt((math.pow((A - C), 2.0) + math.pow(B, 2.0))) + (A - C)) tmp = 0 if (t_0 <= -0.5) or not (t_0 <= 0.0): tmp = (180.0 * math.atan((((C - A) - math.hypot((A - C), B)) / B))) / math.pi else: tmp = (180.0 * math.atan((1.0 / (A * (((1.0 / B) * 2.0) - (2.0 * (C / (B * A)))))))) / math.pi return tmp
function code(A, B, C) t_0 = Float64(Float64(-1.0 / B) * Float64(sqrt(Float64((Float64(A - C) ^ 2.0) + (B ^ 2.0))) + Float64(A - C))) tmp = 0.0 if ((t_0 <= -0.5) || !(t_0 <= 0.0)) tmp = Float64(Float64(180.0 * atan(Float64(Float64(Float64(C - A) - hypot(Float64(A - C), B)) / B))) / pi); else tmp = Float64(Float64(180.0 * atan(Float64(1.0 / Float64(A * Float64(Float64(Float64(1.0 / B) * 2.0) - Float64(2.0 * Float64(C / Float64(B * A)))))))) / pi); end return tmp end
function tmp_2 = code(A, B, C) t_0 = (-1.0 / B) * (sqrt((((A - C) ^ 2.0) + (B ^ 2.0))) + (A - C)); tmp = 0.0; if ((t_0 <= -0.5) || ~((t_0 <= 0.0))) tmp = (180.0 * atan((((C - A) - hypot((A - C), B)) / B))) / pi; else tmp = (180.0 * atan((1.0 / (A * (((1.0 / B) * 2.0) - (2.0 * (C / (B * A)))))))) / pi; end tmp_2 = tmp; end
code[A_, B_, C_] := Block[{t$95$0 = N[(N[(-1.0 / B), $MachinePrecision] * N[(N[Sqrt[N[(N[Power[N[(A - C), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[B, 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision] + N[(A - C), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[Or[LessEqual[t$95$0, -0.5], N[Not[LessEqual[t$95$0, 0.0]], $MachinePrecision]], N[(N[(180.0 * N[ArcTan[N[(N[(N[(C - A), $MachinePrecision] - N[Sqrt[N[(A - C), $MachinePrecision] ^ 2 + B ^ 2], $MachinePrecision]), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], N[(N[(180.0 * N[ArcTan[N[(1.0 / N[(A * N[(N[(N[(1.0 / B), $MachinePrecision] * 2.0), $MachinePrecision] - N[(2.0 * N[(C / N[(B * A), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{-1}{B} \cdot \left(\sqrt{{\left(A - C\right)}^{2} + {B}^{2}} + \left(A - C\right)\right)\\
\mathbf{if}\;t\_0 \leq -0.5 \lor \neg \left(t\_0 \leq 0\right):\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{\left(C - A\right) - \mathsf{hypot}\left(A - C, B\right)}{B}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{1}{A \cdot \left(\frac{1}{B} \cdot 2 - 2 \cdot \frac{C}{B \cdot A}\right)}\right)}{\pi}\\
\end{array}
\end{array}
if (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64)))))) < -0.5 or -0.0 < (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64)))))) Initial program 61.9%
associate-*r/61.9%
associate-*l/61.9%
*-un-lft-identity61.9%
unpow261.9%
unpow261.9%
hypot-define87.2%
Applied egg-rr87.2%
if -0.5 < (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64)))))) < -0.0Initial program 16.0%
associate-*r/16.0%
associate-*l/16.0%
*-un-lft-identity16.0%
unpow216.0%
unpow216.0%
hypot-define16.0%
Applied egg-rr16.0%
clear-num16.0%
inv-pow16.0%
Applied egg-rr16.0%
unpow-116.0%
associate--l-10.4%
Simplified10.4%
Taylor expanded in A around -inf 76.9%
Final simplification85.8%
(FPCore (A B C)
:precision binary64
(if (<= A -9.5e+141)
(/
(* 180.0 (atan (/ 1.0 (* A (- (* (/ 1.0 B) 2.0) (* 2.0 (/ C (* B A))))))))
PI)
(if (<= A 5.7e-35)
(/ (* 180.0 (atan (/ (- C (hypot B C)) B))) PI)
(/ (* 180.0 (atan (/ (+ A (hypot B A)) (- B)))) PI))))
double code(double A, double B, double C) {
double tmp;
if (A <= -9.5e+141) {
tmp = (180.0 * atan((1.0 / (A * (((1.0 / B) * 2.0) - (2.0 * (C / (B * A)))))))) / ((double) M_PI);
} else if (A <= 5.7e-35) {
tmp = (180.0 * atan(((C - hypot(B, C)) / B))) / ((double) M_PI);
} else {
tmp = (180.0 * atan(((A + hypot(B, A)) / -B))) / ((double) M_PI);
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (A <= -9.5e+141) {
tmp = (180.0 * Math.atan((1.0 / (A * (((1.0 / B) * 2.0) - (2.0 * (C / (B * A)))))))) / Math.PI;
} else if (A <= 5.7e-35) {
tmp = (180.0 * Math.atan(((C - Math.hypot(B, C)) / B))) / Math.PI;
} else {
tmp = (180.0 * Math.atan(((A + Math.hypot(B, A)) / -B))) / Math.PI;
}
return tmp;
}
def code(A, B, C): tmp = 0 if A <= -9.5e+141: tmp = (180.0 * math.atan((1.0 / (A * (((1.0 / B) * 2.0) - (2.0 * (C / (B * A)))))))) / math.pi elif A <= 5.7e-35: tmp = (180.0 * math.atan(((C - math.hypot(B, C)) / B))) / math.pi else: tmp = (180.0 * math.atan(((A + math.hypot(B, A)) / -B))) / math.pi return tmp
function code(A, B, C) tmp = 0.0 if (A <= -9.5e+141) tmp = Float64(Float64(180.0 * atan(Float64(1.0 / Float64(A * Float64(Float64(Float64(1.0 / B) * 2.0) - Float64(2.0 * Float64(C / Float64(B * A)))))))) / pi); elseif (A <= 5.7e-35) tmp = Float64(Float64(180.0 * atan(Float64(Float64(C - hypot(B, C)) / B))) / pi); else tmp = Float64(Float64(180.0 * atan(Float64(Float64(A + hypot(B, A)) / Float64(-B)))) / pi); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (A <= -9.5e+141) tmp = (180.0 * atan((1.0 / (A * (((1.0 / B) * 2.0) - (2.0 * (C / (B * A)))))))) / pi; elseif (A <= 5.7e-35) tmp = (180.0 * atan(((C - hypot(B, C)) / B))) / pi; else tmp = (180.0 * atan(((A + hypot(B, A)) / -B))) / pi; end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[A, -9.5e+141], N[(N[(180.0 * N[ArcTan[N[(1.0 / N[(A * N[(N[(N[(1.0 / B), $MachinePrecision] * 2.0), $MachinePrecision] - N[(2.0 * N[(C / N[(B * A), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], If[LessEqual[A, 5.7e-35], N[(N[(180.0 * N[ArcTan[N[(N[(C - N[Sqrt[B ^ 2 + C ^ 2], $MachinePrecision]), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], N[(N[(180.0 * N[ArcTan[N[(N[(A + N[Sqrt[B ^ 2 + A ^ 2], $MachinePrecision]), $MachinePrecision] / (-B)), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;A \leq -9.5 \cdot 10^{+141}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{1}{A \cdot \left(\frac{1}{B} \cdot 2 - 2 \cdot \frac{C}{B \cdot A}\right)}\right)}{\pi}\\
\mathbf{elif}\;A \leq 5.7 \cdot 10^{-35}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{C - \mathsf{hypot}\left(B, C\right)}{B}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{A + \mathsf{hypot}\left(B, A\right)}{-B}\right)}{\pi}\\
\end{array}
\end{array}
if A < -9.49999999999999974e141Initial program 13.1%
associate-*r/13.1%
associate-*l/13.1%
*-un-lft-identity13.1%
unpow213.1%
unpow213.1%
hypot-define43.2%
Applied egg-rr43.2%
clear-num43.2%
inv-pow43.2%
Applied egg-rr43.2%
unpow-143.2%
associate--l-14.8%
Simplified14.8%
Taylor expanded in A around -inf 89.0%
if -9.49999999999999974e141 < A < 5.7000000000000002e-35Initial program 56.0%
associate-*r/56.1%
associate-*l/56.1%
*-un-lft-identity56.1%
unpow256.1%
unpow256.1%
hypot-define78.3%
Applied egg-rr78.3%
Taylor expanded in A around 0 53.1%
unpow253.1%
unpow253.1%
hypot-define75.4%
Simplified75.4%
if 5.7000000000000002e-35 < A Initial program 77.4%
associate-*r/77.4%
associate-*l/77.4%
*-un-lft-identity77.4%
unpow277.4%
unpow277.4%
hypot-define93.9%
Applied egg-rr93.9%
Taylor expanded in C around 0 73.8%
associate-*r/73.8%
mul-1-neg73.8%
+-commutative73.8%
unpow273.8%
unpow273.8%
hypot-undefine84.4%
distribute-neg-frac84.4%
distribute-neg-frac284.4%
Simplified84.4%
Final simplification79.5%
(FPCore (A B C)
:precision binary64
(if (<= A -9.5e+141)
(/
(* 180.0 (atan (/ 1.0 (* A (- (* (/ 1.0 B) 2.0) (* 2.0 (/ C (* B A))))))))
PI)
(if (<= A 3.3e-36)
(/ (* 180.0 (atan (/ (- C (hypot B C)) B))) PI)
(* 180.0 (/ (atan (/ (+ A (hypot B A)) (- B))) PI)))))
double code(double A, double B, double C) {
double tmp;
if (A <= -9.5e+141) {
tmp = (180.0 * atan((1.0 / (A * (((1.0 / B) * 2.0) - (2.0 * (C / (B * A)))))))) / ((double) M_PI);
} else if (A <= 3.3e-36) {
tmp = (180.0 * atan(((C - hypot(B, C)) / B))) / ((double) M_PI);
} else {
tmp = 180.0 * (atan(((A + hypot(B, A)) / -B)) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (A <= -9.5e+141) {
tmp = (180.0 * Math.atan((1.0 / (A * (((1.0 / B) * 2.0) - (2.0 * (C / (B * A)))))))) / Math.PI;
} else if (A <= 3.3e-36) {
tmp = (180.0 * Math.atan(((C - Math.hypot(B, C)) / B))) / Math.PI;
} else {
tmp = 180.0 * (Math.atan(((A + Math.hypot(B, A)) / -B)) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if A <= -9.5e+141: tmp = (180.0 * math.atan((1.0 / (A * (((1.0 / B) * 2.0) - (2.0 * (C / (B * A)))))))) / math.pi elif A <= 3.3e-36: tmp = (180.0 * math.atan(((C - math.hypot(B, C)) / B))) / math.pi else: tmp = 180.0 * (math.atan(((A + math.hypot(B, A)) / -B)) / math.pi) return tmp
function code(A, B, C) tmp = 0.0 if (A <= -9.5e+141) tmp = Float64(Float64(180.0 * atan(Float64(1.0 / Float64(A * Float64(Float64(Float64(1.0 / B) * 2.0) - Float64(2.0 * Float64(C / Float64(B * A)))))))) / pi); elseif (A <= 3.3e-36) tmp = Float64(Float64(180.0 * atan(Float64(Float64(C - hypot(B, C)) / B))) / pi); else tmp = Float64(180.0 * Float64(atan(Float64(Float64(A + hypot(B, A)) / Float64(-B))) / pi)); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (A <= -9.5e+141) tmp = (180.0 * atan((1.0 / (A * (((1.0 / B) * 2.0) - (2.0 * (C / (B * A)))))))) / pi; elseif (A <= 3.3e-36) tmp = (180.0 * atan(((C - hypot(B, C)) / B))) / pi; else tmp = 180.0 * (atan(((A + hypot(B, A)) / -B)) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[A, -9.5e+141], N[(N[(180.0 * N[ArcTan[N[(1.0 / N[(A * N[(N[(N[(1.0 / B), $MachinePrecision] * 2.0), $MachinePrecision] - N[(2.0 * N[(C / N[(B * A), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], If[LessEqual[A, 3.3e-36], N[(N[(180.0 * N[ArcTan[N[(N[(C - N[Sqrt[B ^ 2 + C ^ 2], $MachinePrecision]), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(N[(A + N[Sqrt[B ^ 2 + A ^ 2], $MachinePrecision]), $MachinePrecision] / (-B)), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;A \leq -9.5 \cdot 10^{+141}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{1}{A \cdot \left(\frac{1}{B} \cdot 2 - 2 \cdot \frac{C}{B \cdot A}\right)}\right)}{\pi}\\
\mathbf{elif}\;A \leq 3.3 \cdot 10^{-36}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{C - \mathsf{hypot}\left(B, C\right)}{B}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{A + \mathsf{hypot}\left(B, A\right)}{-B}\right)}{\pi}\\
\end{array}
\end{array}
if A < -9.49999999999999974e141Initial program 13.1%
associate-*r/13.1%
associate-*l/13.1%
*-un-lft-identity13.1%
unpow213.1%
unpow213.1%
hypot-define43.2%
Applied egg-rr43.2%
clear-num43.2%
inv-pow43.2%
Applied egg-rr43.2%
unpow-143.2%
associate--l-14.8%
Simplified14.8%
Taylor expanded in A around -inf 89.0%
if -9.49999999999999974e141 < A < 3.29999999999999991e-36Initial program 56.0%
associate-*r/56.1%
associate-*l/56.1%
*-un-lft-identity56.1%
unpow256.1%
unpow256.1%
hypot-define78.3%
Applied egg-rr78.3%
Taylor expanded in A around 0 53.1%
unpow253.1%
unpow253.1%
hypot-define75.4%
Simplified75.4%
if 3.29999999999999991e-36 < A Initial program 77.4%
Taylor expanded in C around 0 73.8%
mul-1-neg73.8%
distribute-neg-frac273.8%
+-commutative73.8%
unpow273.8%
unpow273.8%
hypot-define84.4%
Simplified84.4%
Final simplification79.5%
(FPCore (A B C)
:precision binary64
(if (<= A -9.5e+141)
(/
(* 180.0 (atan (/ 1.0 (* A (- (* (/ 1.0 B) 2.0) (* 2.0 (/ C (* B A))))))))
PI)
(if (<= A 1.55e-31)
(/ (* 180.0 (atan (/ (- C (hypot B C)) B))) PI)
(if (<= A 4.2e+67)
(* 180.0 (/ (atan (- 1.0 (/ (- A C) B))) PI))
(* 180.0 (/ (atan (- -1.0 (/ A B))) PI))))))
double code(double A, double B, double C) {
double tmp;
if (A <= -9.5e+141) {
tmp = (180.0 * atan((1.0 / (A * (((1.0 / B) * 2.0) - (2.0 * (C / (B * A)))))))) / ((double) M_PI);
} else if (A <= 1.55e-31) {
tmp = (180.0 * atan(((C - hypot(B, C)) / B))) / ((double) M_PI);
} else if (A <= 4.2e+67) {
tmp = 180.0 * (atan((1.0 - ((A - C) / B))) / ((double) M_PI));
} else {
tmp = 180.0 * (atan((-1.0 - (A / B))) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (A <= -9.5e+141) {
tmp = (180.0 * Math.atan((1.0 / (A * (((1.0 / B) * 2.0) - (2.0 * (C / (B * A)))))))) / Math.PI;
} else if (A <= 1.55e-31) {
tmp = (180.0 * Math.atan(((C - Math.hypot(B, C)) / B))) / Math.PI;
} else if (A <= 4.2e+67) {
tmp = 180.0 * (Math.atan((1.0 - ((A - C) / B))) / Math.PI);
} else {
tmp = 180.0 * (Math.atan((-1.0 - (A / B))) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if A <= -9.5e+141: tmp = (180.0 * math.atan((1.0 / (A * (((1.0 / B) * 2.0) - (2.0 * (C / (B * A)))))))) / math.pi elif A <= 1.55e-31: tmp = (180.0 * math.atan(((C - math.hypot(B, C)) / B))) / math.pi elif A <= 4.2e+67: tmp = 180.0 * (math.atan((1.0 - ((A - C) / B))) / math.pi) else: tmp = 180.0 * (math.atan((-1.0 - (A / B))) / math.pi) return tmp
function code(A, B, C) tmp = 0.0 if (A <= -9.5e+141) tmp = Float64(Float64(180.0 * atan(Float64(1.0 / Float64(A * Float64(Float64(Float64(1.0 / B) * 2.0) - Float64(2.0 * Float64(C / Float64(B * A)))))))) / pi); elseif (A <= 1.55e-31) tmp = Float64(Float64(180.0 * atan(Float64(Float64(C - hypot(B, C)) / B))) / pi); elseif (A <= 4.2e+67) tmp = Float64(180.0 * Float64(atan(Float64(1.0 - Float64(Float64(A - C) / B))) / pi)); else tmp = Float64(180.0 * Float64(atan(Float64(-1.0 - Float64(A / B))) / pi)); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (A <= -9.5e+141) tmp = (180.0 * atan((1.0 / (A * (((1.0 / B) * 2.0) - (2.0 * (C / (B * A)))))))) / pi; elseif (A <= 1.55e-31) tmp = (180.0 * atan(((C - hypot(B, C)) / B))) / pi; elseif (A <= 4.2e+67) tmp = 180.0 * (atan((1.0 - ((A - C) / B))) / pi); else tmp = 180.0 * (atan((-1.0 - (A / B))) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[A, -9.5e+141], N[(N[(180.0 * N[ArcTan[N[(1.0 / N[(A * N[(N[(N[(1.0 / B), $MachinePrecision] * 2.0), $MachinePrecision] - N[(2.0 * N[(C / N[(B * A), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], If[LessEqual[A, 1.55e-31], N[(N[(180.0 * N[ArcTan[N[(N[(C - N[Sqrt[B ^ 2 + C ^ 2], $MachinePrecision]), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], If[LessEqual[A, 4.2e+67], N[(180.0 * N[(N[ArcTan[N[(1.0 - N[(N[(A - C), $MachinePrecision] / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(-1.0 - N[(A / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;A \leq -9.5 \cdot 10^{+141}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{1}{A \cdot \left(\frac{1}{B} \cdot 2 - 2 \cdot \frac{C}{B \cdot A}\right)}\right)}{\pi}\\
\mathbf{elif}\;A \leq 1.55 \cdot 10^{-31}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{C - \mathsf{hypot}\left(B, C\right)}{B}\right)}{\pi}\\
\mathbf{elif}\;A \leq 4.2 \cdot 10^{+67}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 - \frac{A - C}{B}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(-1 - \frac{A}{B}\right)}{\pi}\\
\end{array}
\end{array}
if A < -9.49999999999999974e141Initial program 13.1%
associate-*r/13.1%
associate-*l/13.1%
*-un-lft-identity13.1%
unpow213.1%
unpow213.1%
hypot-define43.2%
Applied egg-rr43.2%
clear-num43.2%
inv-pow43.2%
Applied egg-rr43.2%
unpow-143.2%
associate--l-14.8%
Simplified14.8%
Taylor expanded in A around -inf 89.0%
if -9.49999999999999974e141 < A < 1.55e-31Initial program 55.7%
associate-*r/55.7%
associate-*l/55.7%
*-un-lft-identity55.7%
unpow255.7%
unpow255.7%
hypot-define77.8%
Applied egg-rr77.8%
Taylor expanded in A around 0 52.8%
unpow252.8%
unpow252.8%
hypot-define74.9%
Simplified74.9%
if 1.55e-31 < A < 4.2000000000000003e67Initial program 75.1%
Taylor expanded in B around -inf 90.8%
associate--l+90.8%
div-sub90.8%
Simplified90.8%
if 4.2000000000000003e67 < A Initial program 80.3%
Taylor expanded in B around inf 87.7%
Taylor expanded in C around 0 87.9%
neg-mul-187.9%
distribute-neg-in87.9%
metadata-eval87.9%
unsub-neg87.9%
Simplified87.9%
Final simplification80.3%
(FPCore (A B C)
:precision binary64
(if (<= A -2e+142)
(/
(* 180.0 (atan (/ 1.0 (* A (- (* (/ 1.0 B) 2.0) (* 2.0 (/ C (* B A))))))))
PI)
(if (<= A 1.55e-31)
(* 180.0 (/ (atan (/ (- C (hypot B C)) B)) PI))
(if (<= A 4.4e+67)
(* 180.0 (/ (atan (- 1.0 (/ (- A C) B))) PI))
(* 180.0 (/ (atan (- -1.0 (/ A B))) PI))))))
double code(double A, double B, double C) {
double tmp;
if (A <= -2e+142) {
tmp = (180.0 * atan((1.0 / (A * (((1.0 / B) * 2.0) - (2.0 * (C / (B * A)))))))) / ((double) M_PI);
} else if (A <= 1.55e-31) {
tmp = 180.0 * (atan(((C - hypot(B, C)) / B)) / ((double) M_PI));
} else if (A <= 4.4e+67) {
tmp = 180.0 * (atan((1.0 - ((A - C) / B))) / ((double) M_PI));
} else {
tmp = 180.0 * (atan((-1.0 - (A / B))) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (A <= -2e+142) {
tmp = (180.0 * Math.atan((1.0 / (A * (((1.0 / B) * 2.0) - (2.0 * (C / (B * A)))))))) / Math.PI;
} else if (A <= 1.55e-31) {
tmp = 180.0 * (Math.atan(((C - Math.hypot(B, C)) / B)) / Math.PI);
} else if (A <= 4.4e+67) {
tmp = 180.0 * (Math.atan((1.0 - ((A - C) / B))) / Math.PI);
} else {
tmp = 180.0 * (Math.atan((-1.0 - (A / B))) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if A <= -2e+142: tmp = (180.0 * math.atan((1.0 / (A * (((1.0 / B) * 2.0) - (2.0 * (C / (B * A)))))))) / math.pi elif A <= 1.55e-31: tmp = 180.0 * (math.atan(((C - math.hypot(B, C)) / B)) / math.pi) elif A <= 4.4e+67: tmp = 180.0 * (math.atan((1.0 - ((A - C) / B))) / math.pi) else: tmp = 180.0 * (math.atan((-1.0 - (A / B))) / math.pi) return tmp
function code(A, B, C) tmp = 0.0 if (A <= -2e+142) tmp = Float64(Float64(180.0 * atan(Float64(1.0 / Float64(A * Float64(Float64(Float64(1.0 / B) * 2.0) - Float64(2.0 * Float64(C / Float64(B * A)))))))) / pi); elseif (A <= 1.55e-31) tmp = Float64(180.0 * Float64(atan(Float64(Float64(C - hypot(B, C)) / B)) / pi)); elseif (A <= 4.4e+67) tmp = Float64(180.0 * Float64(atan(Float64(1.0 - Float64(Float64(A - C) / B))) / pi)); else tmp = Float64(180.0 * Float64(atan(Float64(-1.0 - Float64(A / B))) / pi)); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (A <= -2e+142) tmp = (180.0 * atan((1.0 / (A * (((1.0 / B) * 2.0) - (2.0 * (C / (B * A)))))))) / pi; elseif (A <= 1.55e-31) tmp = 180.0 * (atan(((C - hypot(B, C)) / B)) / pi); elseif (A <= 4.4e+67) tmp = 180.0 * (atan((1.0 - ((A - C) / B))) / pi); else tmp = 180.0 * (atan((-1.0 - (A / B))) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[A, -2e+142], N[(N[(180.0 * N[ArcTan[N[(1.0 / N[(A * N[(N[(N[(1.0 / B), $MachinePrecision] * 2.0), $MachinePrecision] - N[(2.0 * N[(C / N[(B * A), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], If[LessEqual[A, 1.55e-31], N[(180.0 * N[(N[ArcTan[N[(N[(C - N[Sqrt[B ^ 2 + C ^ 2], $MachinePrecision]), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[A, 4.4e+67], N[(180.0 * N[(N[ArcTan[N[(1.0 - N[(N[(A - C), $MachinePrecision] / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(-1.0 - N[(A / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;A \leq -2 \cdot 10^{+142}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{1}{A \cdot \left(\frac{1}{B} \cdot 2 - 2 \cdot \frac{C}{B \cdot A}\right)}\right)}{\pi}\\
\mathbf{elif}\;A \leq 1.55 \cdot 10^{-31}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{C - \mathsf{hypot}\left(B, C\right)}{B}\right)}{\pi}\\
\mathbf{elif}\;A \leq 4.4 \cdot 10^{+67}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 - \frac{A - C}{B}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(-1 - \frac{A}{B}\right)}{\pi}\\
\end{array}
\end{array}
if A < -2.0000000000000001e142Initial program 13.1%
associate-*r/13.1%
associate-*l/13.1%
*-un-lft-identity13.1%
unpow213.1%
unpow213.1%
hypot-define43.2%
Applied egg-rr43.2%
clear-num43.2%
inv-pow43.2%
Applied egg-rr43.2%
unpow-143.2%
associate--l-14.8%
Simplified14.8%
Taylor expanded in A around -inf 89.0%
if -2.0000000000000001e142 < A < 1.55e-31Initial program 55.7%
Taylor expanded in A around 0 52.8%
unpow252.8%
unpow252.8%
hypot-define74.9%
Simplified74.9%
if 1.55e-31 < A < 4.4e67Initial program 75.1%
Taylor expanded in B around -inf 90.8%
associate--l+90.8%
div-sub90.8%
Simplified90.8%
if 4.4e67 < A Initial program 80.3%
Taylor expanded in B around inf 87.7%
Taylor expanded in C around 0 87.9%
neg-mul-187.9%
distribute-neg-in87.9%
metadata-eval87.9%
unsub-neg87.9%
Simplified87.9%
Final simplification80.3%
(FPCore (A B C)
:precision binary64
(if (<= A -2e+142)
(/
(* 180.0 (atan (/ 1.0 (* A (- (* (/ 1.0 B) 2.0) (* 2.0 (/ C (* B A))))))))
PI)
(* 180.0 (/ (atan (/ (- (- C A) (hypot B (- A C))) B)) PI))))
double code(double A, double B, double C) {
double tmp;
if (A <= -2e+142) {
tmp = (180.0 * atan((1.0 / (A * (((1.0 / B) * 2.0) - (2.0 * (C / (B * A)))))))) / ((double) M_PI);
} else {
tmp = 180.0 * (atan((((C - A) - hypot(B, (A - C))) / B)) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (A <= -2e+142) {
tmp = (180.0 * Math.atan((1.0 / (A * (((1.0 / B) * 2.0) - (2.0 * (C / (B * A)))))))) / Math.PI;
} else {
tmp = 180.0 * (Math.atan((((C - A) - Math.hypot(B, (A - C))) / B)) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if A <= -2e+142: tmp = (180.0 * math.atan((1.0 / (A * (((1.0 / B) * 2.0) - (2.0 * (C / (B * A)))))))) / math.pi else: tmp = 180.0 * (math.atan((((C - A) - math.hypot(B, (A - C))) / B)) / math.pi) return tmp
function code(A, B, C) tmp = 0.0 if (A <= -2e+142) tmp = Float64(Float64(180.0 * atan(Float64(1.0 / Float64(A * Float64(Float64(Float64(1.0 / B) * 2.0) - Float64(2.0 * Float64(C / Float64(B * A)))))))) / pi); else tmp = Float64(180.0 * Float64(atan(Float64(Float64(Float64(C - A) - hypot(B, Float64(A - C))) / B)) / pi)); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (A <= -2e+142) tmp = (180.0 * atan((1.0 / (A * (((1.0 / B) * 2.0) - (2.0 * (C / (B * A)))))))) / pi; else tmp = 180.0 * (atan((((C - A) - hypot(B, (A - C))) / B)) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[A, -2e+142], N[(N[(180.0 * N[ArcTan[N[(1.0 / N[(A * N[(N[(N[(1.0 / B), $MachinePrecision] * 2.0), $MachinePrecision] - N[(2.0 * N[(C / N[(B * A), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $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]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;A \leq -2 \cdot 10^{+142}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{1}{A \cdot \left(\frac{1}{B} \cdot 2 - 2 \cdot \frac{C}{B \cdot A}\right)}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{\left(C - A\right) - \mathsf{hypot}\left(B, A - C\right)}{B}\right)}{\pi}\\
\end{array}
\end{array}
if A < -2.0000000000000001e142Initial program 13.1%
associate-*r/13.1%
associate-*l/13.1%
*-un-lft-identity13.1%
unpow213.1%
unpow213.1%
hypot-define43.2%
Applied egg-rr43.2%
clear-num43.2%
inv-pow43.2%
Applied egg-rr43.2%
unpow-143.2%
associate--l-14.8%
Simplified14.8%
Taylor expanded in A around -inf 89.0%
if -2.0000000000000001e142 < A Initial program 62.3%
associate-*l/62.3%
*-lft-identity62.3%
+-commutative62.3%
unpow262.3%
unpow262.3%
hypot-define82.8%
Simplified82.8%
Final simplification83.7%
(FPCore (A B C)
:precision binary64
(if (<= A -9.5e+141)
(/
(* 180.0 (atan (/ 1.0 (* A (- (* (/ 1.0 B) 2.0) (* 2.0 (/ C (* B A))))))))
PI)
(* 180.0 (/ (atan (/ (- C (+ A (hypot B (- A C)))) B)) PI))))
double code(double A, double B, double C) {
double tmp;
if (A <= -9.5e+141) {
tmp = (180.0 * atan((1.0 / (A * (((1.0 / B) * 2.0) - (2.0 * (C / (B * A)))))))) / ((double) M_PI);
} else {
tmp = 180.0 * (atan(((C - (A + hypot(B, (A - C)))) / B)) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (A <= -9.5e+141) {
tmp = (180.0 * Math.atan((1.0 / (A * (((1.0 / B) * 2.0) - (2.0 * (C / (B * A)))))))) / Math.PI;
} else {
tmp = 180.0 * (Math.atan(((C - (A + Math.hypot(B, (A - C)))) / B)) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if A <= -9.5e+141: tmp = (180.0 * math.atan((1.0 / (A * (((1.0 / B) * 2.0) - (2.0 * (C / (B * A)))))))) / math.pi else: tmp = 180.0 * (math.atan(((C - (A + math.hypot(B, (A - C)))) / B)) / math.pi) return tmp
function code(A, B, C) tmp = 0.0 if (A <= -9.5e+141) tmp = Float64(Float64(180.0 * atan(Float64(1.0 / Float64(A * Float64(Float64(Float64(1.0 / B) * 2.0) - Float64(2.0 * Float64(C / Float64(B * A)))))))) / pi); else tmp = Float64(180.0 * Float64(atan(Float64(Float64(C - Float64(A + hypot(B, Float64(A - C)))) / B)) / pi)); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (A <= -9.5e+141) tmp = (180.0 * atan((1.0 / (A * (((1.0 / B) * 2.0) - (2.0 * (C / (B * A)))))))) / pi; else tmp = 180.0 * (atan(((C - (A + hypot(B, (A - C)))) / B)) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[A, -9.5e+141], N[(N[(180.0 * N[ArcTan[N[(1.0 / N[(A * N[(N[(N[(1.0 / B), $MachinePrecision] * 2.0), $MachinePrecision] - N[(2.0 * N[(C / N[(B * A), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(N[(C - N[(A + N[Sqrt[B ^ 2 + N[(A - C), $MachinePrecision] ^ 2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;A \leq -9.5 \cdot 10^{+141}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{1}{A \cdot \left(\frac{1}{B} \cdot 2 - 2 \cdot \frac{C}{B \cdot A}\right)}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{C - \left(A + \mathsf{hypot}\left(B, A - C\right)\right)}{B}\right)}{\pi}\\
\end{array}
\end{array}
if A < -9.49999999999999974e141Initial program 13.1%
associate-*r/13.1%
associate-*l/13.1%
*-un-lft-identity13.1%
unpow213.1%
unpow213.1%
hypot-define43.2%
Applied egg-rr43.2%
clear-num43.2%
inv-pow43.2%
Applied egg-rr43.2%
unpow-143.2%
associate--l-14.8%
Simplified14.8%
Taylor expanded in A around -inf 89.0%
if -9.49999999999999974e141 < A Initial program 62.3%
Simplified82.3%
Final simplification83.3%
(FPCore (A B C)
:precision binary64
(if (<= C -2e+48)
(* 180.0 (/ (atan (- 1.0 (/ (- A C) B))) PI))
(if (<= C -2e-222)
(* 180.0 (/ (atan (+ (/ C B) (- -1.0 (/ A B)))) PI))
(if (<= C 4e-170)
(* 180.0 (/ (atan (- 1.0 (/ A B))) PI))
(if (<= C 2.7e-63)
(/ (* 180.0 (atan (/ (+ B A) (- B)))) PI)
(* 180.0 (/ (atan (/ (* B -0.5) C)) PI)))))))
double code(double A, double B, double C) {
double tmp;
if (C <= -2e+48) {
tmp = 180.0 * (atan((1.0 - ((A - C) / B))) / ((double) M_PI));
} else if (C <= -2e-222) {
tmp = 180.0 * (atan(((C / B) + (-1.0 - (A / B)))) / ((double) M_PI));
} else if (C <= 4e-170) {
tmp = 180.0 * (atan((1.0 - (A / B))) / ((double) M_PI));
} else if (C <= 2.7e-63) {
tmp = (180.0 * atan(((B + A) / -B))) / ((double) M_PI);
} else {
tmp = 180.0 * (atan(((B * -0.5) / C)) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (C <= -2e+48) {
tmp = 180.0 * (Math.atan((1.0 - ((A - C) / B))) / Math.PI);
} else if (C <= -2e-222) {
tmp = 180.0 * (Math.atan(((C / B) + (-1.0 - (A / B)))) / Math.PI);
} else if (C <= 4e-170) {
tmp = 180.0 * (Math.atan((1.0 - (A / B))) / Math.PI);
} else if (C <= 2.7e-63) {
tmp = (180.0 * Math.atan(((B + A) / -B))) / Math.PI;
} else {
tmp = 180.0 * (Math.atan(((B * -0.5) / C)) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if C <= -2e+48: tmp = 180.0 * (math.atan((1.0 - ((A - C) / B))) / math.pi) elif C <= -2e-222: tmp = 180.0 * (math.atan(((C / B) + (-1.0 - (A / B)))) / math.pi) elif C <= 4e-170: tmp = 180.0 * (math.atan((1.0 - (A / B))) / math.pi) elif C <= 2.7e-63: tmp = (180.0 * math.atan(((B + A) / -B))) / math.pi else: tmp = 180.0 * (math.atan(((B * -0.5) / C)) / math.pi) return tmp
function code(A, B, C) tmp = 0.0 if (C <= -2e+48) tmp = Float64(180.0 * Float64(atan(Float64(1.0 - Float64(Float64(A - C) / B))) / pi)); elseif (C <= -2e-222) tmp = Float64(180.0 * Float64(atan(Float64(Float64(C / B) + Float64(-1.0 - Float64(A / B)))) / pi)); elseif (C <= 4e-170) tmp = Float64(180.0 * Float64(atan(Float64(1.0 - Float64(A / B))) / pi)); elseif (C <= 2.7e-63) tmp = Float64(Float64(180.0 * atan(Float64(Float64(B + A) / Float64(-B)))) / pi); else tmp = Float64(180.0 * Float64(atan(Float64(Float64(B * -0.5) / C)) / pi)); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (C <= -2e+48) tmp = 180.0 * (atan((1.0 - ((A - C) / B))) / pi); elseif (C <= -2e-222) tmp = 180.0 * (atan(((C / B) + (-1.0 - (A / B)))) / pi); elseif (C <= 4e-170) tmp = 180.0 * (atan((1.0 - (A / B))) / pi); elseif (C <= 2.7e-63) tmp = (180.0 * atan(((B + A) / -B))) / pi; else tmp = 180.0 * (atan(((B * -0.5) / C)) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[C, -2e+48], N[(180.0 * N[(N[ArcTan[N[(1.0 - N[(N[(A - C), $MachinePrecision] / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[C, -2e-222], N[(180.0 * N[(N[ArcTan[N[(N[(C / B), $MachinePrecision] + N[(-1.0 - N[(A / B), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[C, 4e-170], N[(180.0 * N[(N[ArcTan[N[(1.0 - N[(A / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[C, 2.7e-63], N[(N[(180.0 * N[ArcTan[N[(N[(B + A), $MachinePrecision] / (-B)), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(N[(B * -0.5), $MachinePrecision] / C), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;C \leq -2 \cdot 10^{+48}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 - \frac{A - C}{B}\right)}{\pi}\\
\mathbf{elif}\;C \leq -2 \cdot 10^{-222}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{C}{B} + \left(-1 - \frac{A}{B}\right)\right)}{\pi}\\
\mathbf{elif}\;C \leq 4 \cdot 10^{-170}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 - \frac{A}{B}\right)}{\pi}\\
\mathbf{elif}\;C \leq 2.7 \cdot 10^{-63}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{B + A}{-B}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{B \cdot -0.5}{C}\right)}{\pi}\\
\end{array}
\end{array}
if C < -2.00000000000000009e48Initial program 75.6%
Taylor expanded in B around -inf 77.2%
associate--l+77.2%
div-sub82.4%
Simplified82.4%
if -2.00000000000000009e48 < C < -2.0000000000000001e-222Initial program 73.2%
Taylor expanded in B around inf 74.2%
if -2.0000000000000001e-222 < C < 3.99999999999999993e-170Initial program 60.8%
Taylor expanded in C around 0 60.9%
mul-1-neg60.9%
distribute-neg-frac260.9%
+-commutative60.9%
unpow260.9%
unpow260.9%
hypot-define79.6%
Simplified79.6%
Taylor expanded in B around -inf 58.2%
mul-1-neg58.2%
sub-neg58.2%
Simplified58.2%
if 3.99999999999999993e-170 < C < 2.7000000000000002e-63Initial program 61.0%
associate-*r/61.0%
associate-*l/61.0%
*-un-lft-identity61.0%
unpow261.0%
unpow261.0%
hypot-define79.9%
Applied egg-rr79.9%
Taylor expanded in C around 0 61.2%
associate-*r/61.2%
mul-1-neg61.2%
+-commutative61.2%
unpow261.2%
unpow261.2%
hypot-undefine80.1%
distribute-neg-frac80.1%
distribute-neg-frac280.1%
Simplified80.1%
Taylor expanded in A around 0 69.3%
if 2.7000000000000002e-63 < C Initial program 21.6%
Taylor expanded in C around inf 65.6%
Taylor expanded in A around inf 65.6%
Simplified65.6%
Final simplification69.5%
(FPCore (A B C)
:precision binary64
(if (<= C -10.0)
(* 180.0 (/ (atan (- 1.0 (/ (- A C) B))) PI))
(if (<= C -1.1e-225)
(/ (* 180.0 (atan (+ -1.0 (/ (- C A) B)))) PI)
(if (<= C 4.2e-166)
(* 180.0 (/ (atan (- 1.0 (/ A B))) PI))
(if (<= C 3.6e-62)
(/ (* 180.0 (atan (/ (+ B A) (- B)))) PI)
(* 180.0 (/ (atan (/ (* B -0.5) C)) PI)))))))
double code(double A, double B, double C) {
double tmp;
if (C <= -10.0) {
tmp = 180.0 * (atan((1.0 - ((A - C) / B))) / ((double) M_PI));
} else if (C <= -1.1e-225) {
tmp = (180.0 * atan((-1.0 + ((C - A) / B)))) / ((double) M_PI);
} else if (C <= 4.2e-166) {
tmp = 180.0 * (atan((1.0 - (A / B))) / ((double) M_PI));
} else if (C <= 3.6e-62) {
tmp = (180.0 * atan(((B + A) / -B))) / ((double) M_PI);
} else {
tmp = 180.0 * (atan(((B * -0.5) / C)) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (C <= -10.0) {
tmp = 180.0 * (Math.atan((1.0 - ((A - C) / B))) / Math.PI);
} else if (C <= -1.1e-225) {
tmp = (180.0 * Math.atan((-1.0 + ((C - A) / B)))) / Math.PI;
} else if (C <= 4.2e-166) {
tmp = 180.0 * (Math.atan((1.0 - (A / B))) / Math.PI);
} else if (C <= 3.6e-62) {
tmp = (180.0 * Math.atan(((B + A) / -B))) / Math.PI;
} else {
tmp = 180.0 * (Math.atan(((B * -0.5) / C)) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if C <= -10.0: tmp = 180.0 * (math.atan((1.0 - ((A - C) / B))) / math.pi) elif C <= -1.1e-225: tmp = (180.0 * math.atan((-1.0 + ((C - A) / B)))) / math.pi elif C <= 4.2e-166: tmp = 180.0 * (math.atan((1.0 - (A / B))) / math.pi) elif C <= 3.6e-62: tmp = (180.0 * math.atan(((B + A) / -B))) / math.pi else: tmp = 180.0 * (math.atan(((B * -0.5) / C)) / math.pi) return tmp
function code(A, B, C) tmp = 0.0 if (C <= -10.0) tmp = Float64(180.0 * Float64(atan(Float64(1.0 - Float64(Float64(A - C) / B))) / pi)); elseif (C <= -1.1e-225) tmp = Float64(Float64(180.0 * atan(Float64(-1.0 + Float64(Float64(C - A) / B)))) / pi); elseif (C <= 4.2e-166) tmp = Float64(180.0 * Float64(atan(Float64(1.0 - Float64(A / B))) / pi)); elseif (C <= 3.6e-62) tmp = Float64(Float64(180.0 * atan(Float64(Float64(B + A) / Float64(-B)))) / pi); else tmp = Float64(180.0 * Float64(atan(Float64(Float64(B * -0.5) / C)) / pi)); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (C <= -10.0) tmp = 180.0 * (atan((1.0 - ((A - C) / B))) / pi); elseif (C <= -1.1e-225) tmp = (180.0 * atan((-1.0 + ((C - A) / B)))) / pi; elseif (C <= 4.2e-166) tmp = 180.0 * (atan((1.0 - (A / B))) / pi); elseif (C <= 3.6e-62) tmp = (180.0 * atan(((B + A) / -B))) / pi; else tmp = 180.0 * (atan(((B * -0.5) / C)) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[C, -10.0], N[(180.0 * N[(N[ArcTan[N[(1.0 - N[(N[(A - C), $MachinePrecision] / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[C, -1.1e-225], N[(N[(180.0 * N[ArcTan[N[(-1.0 + N[(N[(C - A), $MachinePrecision] / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], If[LessEqual[C, 4.2e-166], N[(180.0 * N[(N[ArcTan[N[(1.0 - N[(A / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[C, 3.6e-62], N[(N[(180.0 * N[ArcTan[N[(N[(B + A), $MachinePrecision] / (-B)), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(N[(B * -0.5), $MachinePrecision] / C), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;C \leq -10:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 - \frac{A - C}{B}\right)}{\pi}\\
\mathbf{elif}\;C \leq -1.1 \cdot 10^{-225}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(-1 + \frac{C - A}{B}\right)}{\pi}\\
\mathbf{elif}\;C \leq 4.2 \cdot 10^{-166}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 - \frac{A}{B}\right)}{\pi}\\
\mathbf{elif}\;C \leq 3.6 \cdot 10^{-62}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{B + A}{-B}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{B \cdot -0.5}{C}\right)}{\pi}\\
\end{array}
\end{array}
if C < -10Initial program 78.3%
Taylor expanded in B around -inf 79.4%
associate--l+79.4%
div-sub84.1%
Simplified84.1%
if -10 < C < -1.1e-225Initial program 68.5%
associate-*r/68.6%
associate-*l/68.6%
*-un-lft-identity68.6%
unpow268.6%
unpow268.6%
hypot-define86.2%
Applied egg-rr86.2%
Taylor expanded in B around inf 70.1%
sub-neg70.1%
+-commutative70.1%
distribute-neg-in70.1%
metadata-eval70.1%
mul-1-neg70.1%
associate-+l+70.1%
+-commutative70.1%
mul-1-neg70.1%
sub-neg70.1%
div-sub70.1%
Simplified70.1%
if -1.1e-225 < C < 4.1999999999999999e-166Initial program 60.8%
Taylor expanded in C around 0 60.9%
mul-1-neg60.9%
distribute-neg-frac260.9%
+-commutative60.9%
unpow260.9%
unpow260.9%
hypot-define79.6%
Simplified79.6%
Taylor expanded in B around -inf 58.2%
mul-1-neg58.2%
sub-neg58.2%
Simplified58.2%
if 4.1999999999999999e-166 < C < 3.6e-62Initial program 61.0%
associate-*r/61.0%
associate-*l/61.0%
*-un-lft-identity61.0%
unpow261.0%
unpow261.0%
hypot-define79.9%
Applied egg-rr79.9%
Taylor expanded in C around 0 61.2%
associate-*r/61.2%
mul-1-neg61.2%
+-commutative61.2%
unpow261.2%
unpow261.2%
hypot-undefine80.1%
distribute-neg-frac80.1%
distribute-neg-frac280.1%
Simplified80.1%
Taylor expanded in A around 0 69.3%
if 3.6e-62 < C Initial program 21.6%
Taylor expanded in C around inf 65.6%
Taylor expanded in A around inf 65.6%
Simplified65.6%
Final simplification69.5%
(FPCore (A B C)
:precision binary64
(if (<= C -3e-113)
(* 180.0 (/ (atan (- 1.0 (/ (- A C) B))) PI))
(if (<= C -4.8e-225)
(* 180.0 (/ (atan (- -1.0 (/ A B))) PI))
(if (<= C 7e-158)
(* 180.0 (/ (atan (- 1.0 (/ A B))) PI))
(if (<= C 7e-66)
(/ (* 180.0 (atan (/ (+ B A) (- B)))) PI)
(* 180.0 (/ (atan (/ (* B -0.5) C)) PI)))))))
double code(double A, double B, double C) {
double tmp;
if (C <= -3e-113) {
tmp = 180.0 * (atan((1.0 - ((A - C) / B))) / ((double) M_PI));
} else if (C <= -4.8e-225) {
tmp = 180.0 * (atan((-1.0 - (A / B))) / ((double) M_PI));
} else if (C <= 7e-158) {
tmp = 180.0 * (atan((1.0 - (A / B))) / ((double) M_PI));
} else if (C <= 7e-66) {
tmp = (180.0 * atan(((B + A) / -B))) / ((double) M_PI);
} else {
tmp = 180.0 * (atan(((B * -0.5) / C)) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (C <= -3e-113) {
tmp = 180.0 * (Math.atan((1.0 - ((A - C) / B))) / Math.PI);
} else if (C <= -4.8e-225) {
tmp = 180.0 * (Math.atan((-1.0 - (A / B))) / Math.PI);
} else if (C <= 7e-158) {
tmp = 180.0 * (Math.atan((1.0 - (A / B))) / Math.PI);
} else if (C <= 7e-66) {
tmp = (180.0 * Math.atan(((B + A) / -B))) / Math.PI;
} else {
tmp = 180.0 * (Math.atan(((B * -0.5) / C)) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if C <= -3e-113: tmp = 180.0 * (math.atan((1.0 - ((A - C) / B))) / math.pi) elif C <= -4.8e-225: tmp = 180.0 * (math.atan((-1.0 - (A / B))) / math.pi) elif C <= 7e-158: tmp = 180.0 * (math.atan((1.0 - (A / B))) / math.pi) elif C <= 7e-66: tmp = (180.0 * math.atan(((B + A) / -B))) / math.pi else: tmp = 180.0 * (math.atan(((B * -0.5) / C)) / math.pi) return tmp
function code(A, B, C) tmp = 0.0 if (C <= -3e-113) tmp = Float64(180.0 * Float64(atan(Float64(1.0 - Float64(Float64(A - C) / B))) / pi)); elseif (C <= -4.8e-225) tmp = Float64(180.0 * Float64(atan(Float64(-1.0 - Float64(A / B))) / pi)); elseif (C <= 7e-158) tmp = Float64(180.0 * Float64(atan(Float64(1.0 - Float64(A / B))) / pi)); elseif (C <= 7e-66) tmp = Float64(Float64(180.0 * atan(Float64(Float64(B + A) / Float64(-B)))) / pi); else tmp = Float64(180.0 * Float64(atan(Float64(Float64(B * -0.5) / C)) / pi)); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (C <= -3e-113) tmp = 180.0 * (atan((1.0 - ((A - C) / B))) / pi); elseif (C <= -4.8e-225) tmp = 180.0 * (atan((-1.0 - (A / B))) / pi); elseif (C <= 7e-158) tmp = 180.0 * (atan((1.0 - (A / B))) / pi); elseif (C <= 7e-66) tmp = (180.0 * atan(((B + A) / -B))) / pi; else tmp = 180.0 * (atan(((B * -0.5) / C)) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[C, -3e-113], N[(180.0 * N[(N[ArcTan[N[(1.0 - N[(N[(A - C), $MachinePrecision] / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[C, -4.8e-225], N[(180.0 * N[(N[ArcTan[N[(-1.0 - N[(A / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[C, 7e-158], N[(180.0 * N[(N[ArcTan[N[(1.0 - N[(A / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[C, 7e-66], N[(N[(180.0 * N[ArcTan[N[(N[(B + A), $MachinePrecision] / (-B)), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(N[(B * -0.5), $MachinePrecision] / C), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;C \leq -3 \cdot 10^{-113}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 - \frac{A - C}{B}\right)}{\pi}\\
\mathbf{elif}\;C \leq -4.8 \cdot 10^{-225}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(-1 - \frac{A}{B}\right)}{\pi}\\
\mathbf{elif}\;C \leq 7 \cdot 10^{-158}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 - \frac{A}{B}\right)}{\pi}\\
\mathbf{elif}\;C \leq 7 \cdot 10^{-66}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{B + A}{-B}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{B \cdot -0.5}{C}\right)}{\pi}\\
\end{array}
\end{array}
if C < -3.0000000000000001e-113Initial program 75.3%
Taylor expanded in B around -inf 74.8%
associate--l+74.8%
div-sub78.4%
Simplified78.4%
if -3.0000000000000001e-113 < C < -4.79999999999999992e-225Initial program 71.1%
Taylor expanded in B around inf 78.4%
Taylor expanded in C around 0 76.8%
neg-mul-176.8%
distribute-neg-in76.8%
metadata-eval76.8%
unsub-neg76.8%
Simplified76.8%
if -4.79999999999999992e-225 < C < 7.00000000000000025e-158Initial program 60.8%
Taylor expanded in C around 0 60.9%
mul-1-neg60.9%
distribute-neg-frac260.9%
+-commutative60.9%
unpow260.9%
unpow260.9%
hypot-define79.6%
Simplified79.6%
Taylor expanded in B around -inf 58.2%
mul-1-neg58.2%
sub-neg58.2%
Simplified58.2%
if 7.00000000000000025e-158 < C < 7.0000000000000001e-66Initial program 61.0%
associate-*r/61.0%
associate-*l/61.0%
*-un-lft-identity61.0%
unpow261.0%
unpow261.0%
hypot-define79.9%
Applied egg-rr79.9%
Taylor expanded in C around 0 61.2%
associate-*r/61.2%
mul-1-neg61.2%
+-commutative61.2%
unpow261.2%
unpow261.2%
hypot-undefine80.1%
distribute-neg-frac80.1%
distribute-neg-frac280.1%
Simplified80.1%
Taylor expanded in A around 0 69.3%
if 7.0000000000000001e-66 < C Initial program 21.6%
Taylor expanded in C around inf 65.6%
Taylor expanded in A around inf 65.6%
Simplified65.6%
Final simplification69.2%
(FPCore (A B C)
:precision binary64
(if (<= C -2.6e-112)
(/ (* 180.0 (atan (+ 1.0 (/ C B)))) PI)
(if (<= C -4.6e-225)
(* 180.0 (/ (atan (- -1.0 (/ A B))) PI))
(if (<= C 7.2e-165)
(* 180.0 (/ (atan (- 1.0 (/ A B))) PI))
(if (<= C 1.15e-61)
(/ (* 180.0 (atan (/ (+ B A) (- B)))) PI)
(* 180.0 (/ (atan (/ (* B -0.5) C)) PI)))))))
double code(double A, double B, double C) {
double tmp;
if (C <= -2.6e-112) {
tmp = (180.0 * atan((1.0 + (C / B)))) / ((double) M_PI);
} else if (C <= -4.6e-225) {
tmp = 180.0 * (atan((-1.0 - (A / B))) / ((double) M_PI));
} else if (C <= 7.2e-165) {
tmp = 180.0 * (atan((1.0 - (A / B))) / ((double) M_PI));
} else if (C <= 1.15e-61) {
tmp = (180.0 * atan(((B + A) / -B))) / ((double) M_PI);
} else {
tmp = 180.0 * (atan(((B * -0.5) / C)) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (C <= -2.6e-112) {
tmp = (180.0 * Math.atan((1.0 + (C / B)))) / Math.PI;
} else if (C <= -4.6e-225) {
tmp = 180.0 * (Math.atan((-1.0 - (A / B))) / Math.PI);
} else if (C <= 7.2e-165) {
tmp = 180.0 * (Math.atan((1.0 - (A / B))) / Math.PI);
} else if (C <= 1.15e-61) {
tmp = (180.0 * Math.atan(((B + A) / -B))) / Math.PI;
} else {
tmp = 180.0 * (Math.atan(((B * -0.5) / C)) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if C <= -2.6e-112: tmp = (180.0 * math.atan((1.0 + (C / B)))) / math.pi elif C <= -4.6e-225: tmp = 180.0 * (math.atan((-1.0 - (A / B))) / math.pi) elif C <= 7.2e-165: tmp = 180.0 * (math.atan((1.0 - (A / B))) / math.pi) elif C <= 1.15e-61: tmp = (180.0 * math.atan(((B + A) / -B))) / math.pi else: tmp = 180.0 * (math.atan(((B * -0.5) / C)) / math.pi) return tmp
function code(A, B, C) tmp = 0.0 if (C <= -2.6e-112) tmp = Float64(Float64(180.0 * atan(Float64(1.0 + Float64(C / B)))) / pi); elseif (C <= -4.6e-225) tmp = Float64(180.0 * Float64(atan(Float64(-1.0 - Float64(A / B))) / pi)); elseif (C <= 7.2e-165) tmp = Float64(180.0 * Float64(atan(Float64(1.0 - Float64(A / B))) / pi)); elseif (C <= 1.15e-61) tmp = Float64(Float64(180.0 * atan(Float64(Float64(B + A) / Float64(-B)))) / pi); else tmp = Float64(180.0 * Float64(atan(Float64(Float64(B * -0.5) / C)) / pi)); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (C <= -2.6e-112) tmp = (180.0 * atan((1.0 + (C / B)))) / pi; elseif (C <= -4.6e-225) tmp = 180.0 * (atan((-1.0 - (A / B))) / pi); elseif (C <= 7.2e-165) tmp = 180.0 * (atan((1.0 - (A / B))) / pi); elseif (C <= 1.15e-61) tmp = (180.0 * atan(((B + A) / -B))) / pi; else tmp = 180.0 * (atan(((B * -0.5) / C)) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[C, -2.6e-112], N[(N[(180.0 * N[ArcTan[N[(1.0 + N[(C / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], If[LessEqual[C, -4.6e-225], N[(180.0 * N[(N[ArcTan[N[(-1.0 - N[(A / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[C, 7.2e-165], N[(180.0 * N[(N[ArcTan[N[(1.0 - N[(A / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[C, 1.15e-61], N[(N[(180.0 * N[ArcTan[N[(N[(B + A), $MachinePrecision] / (-B)), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(N[(B * -0.5), $MachinePrecision] / C), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;C \leq -2.6 \cdot 10^{-112}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(1 + \frac{C}{B}\right)}{\pi}\\
\mathbf{elif}\;C \leq -4.6 \cdot 10^{-225}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(-1 - \frac{A}{B}\right)}{\pi}\\
\mathbf{elif}\;C \leq 7.2 \cdot 10^{-165}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 - \frac{A}{B}\right)}{\pi}\\
\mathbf{elif}\;C \leq 1.15 \cdot 10^{-61}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{B + A}{-B}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{B \cdot -0.5}{C}\right)}{\pi}\\
\end{array}
\end{array}
if C < -2.59999999999999992e-112Initial program 75.3%
associate-*r/75.3%
associate-*l/75.3%
*-un-lft-identity75.3%
unpow275.3%
unpow275.3%
hypot-define92.3%
Applied egg-rr92.3%
Taylor expanded in A around 0 72.7%
unpow272.7%
unpow272.7%
hypot-define86.4%
Simplified86.4%
Taylor expanded in B around -inf 76.2%
if -2.59999999999999992e-112 < C < -4.5999999999999998e-225Initial program 71.1%
Taylor expanded in B around inf 78.4%
Taylor expanded in C around 0 76.8%
neg-mul-176.8%
distribute-neg-in76.8%
metadata-eval76.8%
unsub-neg76.8%
Simplified76.8%
if -4.5999999999999998e-225 < C < 7.19999999999999969e-165Initial program 60.8%
Taylor expanded in C around 0 60.9%
mul-1-neg60.9%
distribute-neg-frac260.9%
+-commutative60.9%
unpow260.9%
unpow260.9%
hypot-define79.6%
Simplified79.6%
Taylor expanded in B around -inf 58.2%
mul-1-neg58.2%
sub-neg58.2%
Simplified58.2%
if 7.19999999999999969e-165 < C < 1.14999999999999996e-61Initial program 61.0%
associate-*r/61.0%
associate-*l/61.0%
*-un-lft-identity61.0%
unpow261.0%
unpow261.0%
hypot-define79.9%
Applied egg-rr79.9%
Taylor expanded in C around 0 61.2%
associate-*r/61.2%
mul-1-neg61.2%
+-commutative61.2%
unpow261.2%
unpow261.2%
hypot-undefine80.1%
distribute-neg-frac80.1%
distribute-neg-frac280.1%
Simplified80.1%
Taylor expanded in A around 0 69.3%
if 1.14999999999999996e-61 < C Initial program 21.6%
Taylor expanded in C around inf 65.6%
Taylor expanded in A around inf 65.6%
Simplified65.6%
Final simplification68.5%
(FPCore (A B C)
:precision binary64
(let* ((t_0 (* 180.0 (/ (atan (- -1.0 (/ A B))) PI))))
(if (<= C -5.1e-113)
(/ (* 180.0 (atan (+ 1.0 (/ C B)))) PI)
(if (<= C -5e-220)
t_0
(if (<= C 9.2e-163)
(* 180.0 (/ (atan (- 1.0 (/ A B))) PI))
(if (<= C 2.6e-64) t_0 (* 180.0 (/ (atan (/ (* B -0.5) C)) PI))))))))
double code(double A, double B, double C) {
double t_0 = 180.0 * (atan((-1.0 - (A / B))) / ((double) M_PI));
double tmp;
if (C <= -5.1e-113) {
tmp = (180.0 * atan((1.0 + (C / B)))) / ((double) M_PI);
} else if (C <= -5e-220) {
tmp = t_0;
} else if (C <= 9.2e-163) {
tmp = 180.0 * (atan((1.0 - (A / B))) / ((double) M_PI));
} else if (C <= 2.6e-64) {
tmp = t_0;
} else {
tmp = 180.0 * (atan(((B * -0.5) / C)) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double t_0 = 180.0 * (Math.atan((-1.0 - (A / B))) / Math.PI);
double tmp;
if (C <= -5.1e-113) {
tmp = (180.0 * Math.atan((1.0 + (C / B)))) / Math.PI;
} else if (C <= -5e-220) {
tmp = t_0;
} else if (C <= 9.2e-163) {
tmp = 180.0 * (Math.atan((1.0 - (A / B))) / Math.PI);
} else if (C <= 2.6e-64) {
tmp = t_0;
} else {
tmp = 180.0 * (Math.atan(((B * -0.5) / C)) / Math.PI);
}
return tmp;
}
def code(A, B, C): t_0 = 180.0 * (math.atan((-1.0 - (A / B))) / math.pi) tmp = 0 if C <= -5.1e-113: tmp = (180.0 * math.atan((1.0 + (C / B)))) / math.pi elif C <= -5e-220: tmp = t_0 elif C <= 9.2e-163: tmp = 180.0 * (math.atan((1.0 - (A / B))) / math.pi) elif C <= 2.6e-64: tmp = t_0 else: tmp = 180.0 * (math.atan(((B * -0.5) / C)) / math.pi) return tmp
function code(A, B, C) t_0 = Float64(180.0 * Float64(atan(Float64(-1.0 - Float64(A / B))) / pi)) tmp = 0.0 if (C <= -5.1e-113) tmp = Float64(Float64(180.0 * atan(Float64(1.0 + Float64(C / B)))) / pi); elseif (C <= -5e-220) tmp = t_0; elseif (C <= 9.2e-163) tmp = Float64(180.0 * Float64(atan(Float64(1.0 - Float64(A / B))) / pi)); elseif (C <= 2.6e-64) tmp = t_0; else tmp = Float64(180.0 * Float64(atan(Float64(Float64(B * -0.5) / C)) / pi)); end return tmp end
function tmp_2 = code(A, B, C) t_0 = 180.0 * (atan((-1.0 - (A / B))) / pi); tmp = 0.0; if (C <= -5.1e-113) tmp = (180.0 * atan((1.0 + (C / B)))) / pi; elseif (C <= -5e-220) tmp = t_0; elseif (C <= 9.2e-163) tmp = 180.0 * (atan((1.0 - (A / B))) / pi); elseif (C <= 2.6e-64) tmp = t_0; else tmp = 180.0 * (atan(((B * -0.5) / C)) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := Block[{t$95$0 = N[(180.0 * N[(N[ArcTan[N[(-1.0 - N[(A / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[C, -5.1e-113], N[(N[(180.0 * N[ArcTan[N[(1.0 + N[(C / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], If[LessEqual[C, -5e-220], t$95$0, If[LessEqual[C, 9.2e-163], N[(180.0 * N[(N[ArcTan[N[(1.0 - N[(A / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[C, 2.6e-64], t$95$0, N[(180.0 * N[(N[ArcTan[N[(N[(B * -0.5), $MachinePrecision] / C), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := 180 \cdot \frac{\tan^{-1} \left(-1 - \frac{A}{B}\right)}{\pi}\\
\mathbf{if}\;C \leq -5.1 \cdot 10^{-113}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(1 + \frac{C}{B}\right)}{\pi}\\
\mathbf{elif}\;C \leq -5 \cdot 10^{-220}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;C \leq 9.2 \cdot 10^{-163}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 - \frac{A}{B}\right)}{\pi}\\
\mathbf{elif}\;C \leq 2.6 \cdot 10^{-64}:\\
\;\;\;\;t\_0\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{B \cdot -0.5}{C}\right)}{\pi}\\
\end{array}
\end{array}
if C < -5.09999999999999979e-113Initial program 75.3%
associate-*r/75.3%
associate-*l/75.3%
*-un-lft-identity75.3%
unpow275.3%
unpow275.3%
hypot-define92.3%
Applied egg-rr92.3%
Taylor expanded in A around 0 72.7%
unpow272.7%
unpow272.7%
hypot-define86.4%
Simplified86.4%
Taylor expanded in B around -inf 76.2%
if -5.09999999999999979e-113 < C < -5.0000000000000002e-220 or 9.1999999999999997e-163 < C < 2.6e-64Initial program 66.1%
Taylor expanded in B around inf 73.6%
Taylor expanded in C around 0 73.0%
neg-mul-173.0%
distribute-neg-in73.0%
metadata-eval73.0%
unsub-neg73.0%
Simplified73.0%
if -5.0000000000000002e-220 < C < 9.1999999999999997e-163Initial program 60.8%
Taylor expanded in C around 0 60.9%
mul-1-neg60.9%
distribute-neg-frac260.9%
+-commutative60.9%
unpow260.9%
unpow260.9%
hypot-define79.6%
Simplified79.6%
Taylor expanded in B around -inf 58.2%
mul-1-neg58.2%
sub-neg58.2%
Simplified58.2%
if 2.6e-64 < C Initial program 21.6%
Taylor expanded in C around inf 65.6%
Taylor expanded in A around inf 65.6%
Simplified65.6%
(FPCore (A B C)
:precision binary64
(let* ((t_0 (* 180.0 (/ (atan (+ -1.0 (/ C B))) PI))))
(if (<= A -1.2e+98)
(* 180.0 (/ (atan (/ 0.5 (/ A B))) PI))
(if (<= A 1.95e-235)
t_0
(if (<= A 1.62e-186)
(* 180.0 (/ (atan (- 1.0 (/ A B))) PI))
(if (<= A 5.6e-132) t_0 (* 180.0 (/ (atan (- -1.0 (/ A B))) PI))))))))
double code(double A, double B, double C) {
double t_0 = 180.0 * (atan((-1.0 + (C / B))) / ((double) M_PI));
double tmp;
if (A <= -1.2e+98) {
tmp = 180.0 * (atan((0.5 / (A / B))) / ((double) M_PI));
} else if (A <= 1.95e-235) {
tmp = t_0;
} else if (A <= 1.62e-186) {
tmp = 180.0 * (atan((1.0 - (A / B))) / ((double) M_PI));
} else if (A <= 5.6e-132) {
tmp = t_0;
} else {
tmp = 180.0 * (atan((-1.0 - (A / B))) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double t_0 = 180.0 * (Math.atan((-1.0 + (C / B))) / Math.PI);
double tmp;
if (A <= -1.2e+98) {
tmp = 180.0 * (Math.atan((0.5 / (A / B))) / Math.PI);
} else if (A <= 1.95e-235) {
tmp = t_0;
} else if (A <= 1.62e-186) {
tmp = 180.0 * (Math.atan((1.0 - (A / B))) / Math.PI);
} else if (A <= 5.6e-132) {
tmp = t_0;
} else {
tmp = 180.0 * (Math.atan((-1.0 - (A / B))) / Math.PI);
}
return tmp;
}
def code(A, B, C): t_0 = 180.0 * (math.atan((-1.0 + (C / B))) / math.pi) tmp = 0 if A <= -1.2e+98: tmp = 180.0 * (math.atan((0.5 / (A / B))) / math.pi) elif A <= 1.95e-235: tmp = t_0 elif A <= 1.62e-186: tmp = 180.0 * (math.atan((1.0 - (A / B))) / math.pi) elif A <= 5.6e-132: tmp = t_0 else: tmp = 180.0 * (math.atan((-1.0 - (A / B))) / math.pi) return tmp
function code(A, B, C) t_0 = Float64(180.0 * Float64(atan(Float64(-1.0 + Float64(C / B))) / pi)) tmp = 0.0 if (A <= -1.2e+98) tmp = Float64(180.0 * Float64(atan(Float64(0.5 / Float64(A / B))) / pi)); elseif (A <= 1.95e-235) tmp = t_0; elseif (A <= 1.62e-186) tmp = Float64(180.0 * Float64(atan(Float64(1.0 - Float64(A / B))) / pi)); elseif (A <= 5.6e-132) tmp = t_0; else tmp = Float64(180.0 * Float64(atan(Float64(-1.0 - Float64(A / B))) / pi)); end return tmp end
function tmp_2 = code(A, B, C) t_0 = 180.0 * (atan((-1.0 + (C / B))) / pi); tmp = 0.0; if (A <= -1.2e+98) tmp = 180.0 * (atan((0.5 / (A / B))) / pi); elseif (A <= 1.95e-235) tmp = t_0; elseif (A <= 1.62e-186) tmp = 180.0 * (atan((1.0 - (A / B))) / pi); elseif (A <= 5.6e-132) tmp = t_0; else tmp = 180.0 * (atan((-1.0 - (A / B))) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := Block[{t$95$0 = N[(180.0 * N[(N[ArcTan[N[(-1.0 + N[(C / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[A, -1.2e+98], N[(180.0 * N[(N[ArcTan[N[(0.5 / N[(A / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[A, 1.95e-235], t$95$0, If[LessEqual[A, 1.62e-186], N[(180.0 * N[(N[ArcTan[N[(1.0 - N[(A / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[A, 5.6e-132], t$95$0, N[(180.0 * N[(N[ArcTan[N[(-1.0 - N[(A / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := 180 \cdot \frac{\tan^{-1} \left(-1 + \frac{C}{B}\right)}{\pi}\\
\mathbf{if}\;A \leq -1.2 \cdot 10^{+98}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{0.5}{\frac{A}{B}}\right)}{\pi}\\
\mathbf{elif}\;A \leq 1.95 \cdot 10^{-235}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;A \leq 1.62 \cdot 10^{-186}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 - \frac{A}{B}\right)}{\pi}\\
\mathbf{elif}\;A \leq 5.6 \cdot 10^{-132}:\\
\;\;\;\;t\_0\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(-1 - \frac{A}{B}\right)}{\pi}\\
\end{array}
\end{array}
if A < -1.1999999999999999e98Initial program 17.5%
associate-*r/17.5%
associate-*l/17.5%
*-un-lft-identity17.5%
unpow217.5%
unpow217.5%
hypot-define48.0%
Applied egg-rr48.0%
clear-num48.0%
inv-pow48.0%
Applied egg-rr48.0%
unpow-148.0%
associate--l-20.7%
Simplified20.7%
Taylor expanded in A around -inf 79.3%
associate-/l*79.3%
associate-/r*79.3%
metadata-eval79.3%
Applied egg-rr79.3%
if -1.1999999999999999e98 < A < 1.94999999999999985e-235 or 1.62000000000000005e-186 < A < 5.60000000000000005e-132Initial program 55.8%
Taylor expanded in B around inf 51.2%
Taylor expanded in A around 0 52.8%
if 1.94999999999999985e-235 < A < 1.62000000000000005e-186Initial program 47.3%
Taylor expanded in C around 0 41.1%
mul-1-neg41.1%
distribute-neg-frac241.1%
+-commutative41.1%
unpow241.1%
unpow241.1%
hypot-define62.8%
Simplified62.8%
Taylor expanded in B around -inf 55.7%
mul-1-neg55.7%
sub-neg55.7%
Simplified55.7%
if 5.60000000000000005e-132 < A Initial program 73.2%
Taylor expanded in B around inf 71.3%
Taylor expanded in C around 0 68.0%
neg-mul-168.0%
distribute-neg-in68.0%
metadata-eval68.0%
unsub-neg68.0%
Simplified68.0%
Final simplification62.6%
(FPCore (A B C)
:precision binary64
(if (<= B -2450000.0)
(* 180.0 (/ (atan 1.0) PI))
(if (<= B -1.4e-226)
(* 180.0 (/ (atan (* 2.0 (/ C B))) PI))
(if (<= B -4.7e-272)
(* 180.0 (/ (atan (/ 0.0 B)) PI))
(if (<= B 2.1e-18)
(* 180.0 (/ (atan (* (/ A B) -2.0)) PI))
(* 180.0 (/ (atan -1.0) PI)))))))
double code(double A, double B, double C) {
double tmp;
if (B <= -2450000.0) {
tmp = 180.0 * (atan(1.0) / ((double) M_PI));
} else if (B <= -1.4e-226) {
tmp = 180.0 * (atan((2.0 * (C / B))) / ((double) M_PI));
} else if (B <= -4.7e-272) {
tmp = 180.0 * (atan((0.0 / B)) / ((double) M_PI));
} else if (B <= 2.1e-18) {
tmp = 180.0 * (atan(((A / B) * -2.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 <= -2450000.0) {
tmp = 180.0 * (Math.atan(1.0) / Math.PI);
} else if (B <= -1.4e-226) {
tmp = 180.0 * (Math.atan((2.0 * (C / B))) / Math.PI);
} else if (B <= -4.7e-272) {
tmp = 180.0 * (Math.atan((0.0 / B)) / Math.PI);
} else if (B <= 2.1e-18) {
tmp = 180.0 * (Math.atan(((A / B) * -2.0)) / Math.PI);
} else {
tmp = 180.0 * (Math.atan(-1.0) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if B <= -2450000.0: tmp = 180.0 * (math.atan(1.0) / math.pi) elif B <= -1.4e-226: tmp = 180.0 * (math.atan((2.0 * (C / B))) / math.pi) elif B <= -4.7e-272: tmp = 180.0 * (math.atan((0.0 / B)) / math.pi) elif B <= 2.1e-18: tmp = 180.0 * (math.atan(((A / B) * -2.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 <= -2450000.0) tmp = Float64(180.0 * Float64(atan(1.0) / pi)); elseif (B <= -1.4e-226) tmp = Float64(180.0 * Float64(atan(Float64(2.0 * Float64(C / B))) / pi)); elseif (B <= -4.7e-272) tmp = Float64(180.0 * Float64(atan(Float64(0.0 / B)) / pi)); elseif (B <= 2.1e-18) tmp = Float64(180.0 * Float64(atan(Float64(Float64(A / B) * -2.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 <= -2450000.0) tmp = 180.0 * (atan(1.0) / pi); elseif (B <= -1.4e-226) tmp = 180.0 * (atan((2.0 * (C / B))) / pi); elseif (B <= -4.7e-272) tmp = 180.0 * (atan((0.0 / B)) / pi); elseif (B <= 2.1e-18) tmp = 180.0 * (atan(((A / B) * -2.0)) / pi); else tmp = 180.0 * (atan(-1.0) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[B, -2450000.0], N[(180.0 * N[(N[ArcTan[1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -1.4e-226], N[(180.0 * N[(N[ArcTan[N[(2.0 * N[(C / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -4.7e-272], N[(180.0 * N[(N[ArcTan[N[(0.0 / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, 2.1e-18], N[(180.0 * N[(N[ArcTan[N[(N[(A / B), $MachinePrecision] * -2.0), $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 -2450000:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} 1}{\pi}\\
\mathbf{elif}\;B \leq -1.4 \cdot 10^{-226}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(2 \cdot \frac{C}{B}\right)}{\pi}\\
\mathbf{elif}\;B \leq -4.7 \cdot 10^{-272}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{0}{B}\right)}{\pi}\\
\mathbf{elif}\;B \leq 2.1 \cdot 10^{-18}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{A}{B} \cdot -2\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} -1}{\pi}\\
\end{array}
\end{array}
if B < -2.45e6Initial program 46.3%
Taylor expanded in B around -inf 63.5%
if -2.45e6 < B < -1.40000000000000004e-226Initial program 56.1%
Taylor expanded in C around -inf 35.0%
if -1.40000000000000004e-226 < B < -4.6999999999999998e-272Initial program 48.0%
Taylor expanded in C around inf 62.9%
associate-*r/62.9%
distribute-rgt1-in62.9%
metadata-eval62.9%
mul0-lft62.9%
metadata-eval62.9%
Simplified62.9%
if -4.6999999999999998e-272 < B < 2.1e-18Initial program 61.3%
Taylor expanded in A around inf 37.3%
if 2.1e-18 < B Initial program 58.1%
Taylor expanded in B around inf 66.5%
Final simplification51.4%
(FPCore (A B C)
:precision binary64
(if (<= B -2800.0)
(* 180.0 (/ (atan 1.0) PI))
(if (<= B -4.4e-226)
(* 180.0 (/ (atan (/ C B)) PI))
(if (<= B -3.4e-273)
(* 180.0 (/ (atan (/ 0.0 B)) PI))
(if (<= B 9.5e-19)
(* 180.0 (/ (atan (* (/ A B) -2.0)) PI))
(* 180.0 (/ (atan -1.0) PI)))))))
double code(double A, double B, double C) {
double tmp;
if (B <= -2800.0) {
tmp = 180.0 * (atan(1.0) / ((double) M_PI));
} else if (B <= -4.4e-226) {
tmp = 180.0 * (atan((C / B)) / ((double) M_PI));
} else if (B <= -3.4e-273) {
tmp = 180.0 * (atan((0.0 / B)) / ((double) M_PI));
} else if (B <= 9.5e-19) {
tmp = 180.0 * (atan(((A / B) * -2.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 <= -2800.0) {
tmp = 180.0 * (Math.atan(1.0) / Math.PI);
} else if (B <= -4.4e-226) {
tmp = 180.0 * (Math.atan((C / B)) / Math.PI);
} else if (B <= -3.4e-273) {
tmp = 180.0 * (Math.atan((0.0 / B)) / Math.PI);
} else if (B <= 9.5e-19) {
tmp = 180.0 * (Math.atan(((A / B) * -2.0)) / Math.PI);
} else {
tmp = 180.0 * (Math.atan(-1.0) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if B <= -2800.0: tmp = 180.0 * (math.atan(1.0) / math.pi) elif B <= -4.4e-226: tmp = 180.0 * (math.atan((C / B)) / math.pi) elif B <= -3.4e-273: tmp = 180.0 * (math.atan((0.0 / B)) / math.pi) elif B <= 9.5e-19: tmp = 180.0 * (math.atan(((A / B) * -2.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 <= -2800.0) tmp = Float64(180.0 * Float64(atan(1.0) / pi)); elseif (B <= -4.4e-226) tmp = Float64(180.0 * Float64(atan(Float64(C / B)) / pi)); elseif (B <= -3.4e-273) tmp = Float64(180.0 * Float64(atan(Float64(0.0 / B)) / pi)); elseif (B <= 9.5e-19) tmp = Float64(180.0 * Float64(atan(Float64(Float64(A / B) * -2.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 <= -2800.0) tmp = 180.0 * (atan(1.0) / pi); elseif (B <= -4.4e-226) tmp = 180.0 * (atan((C / B)) / pi); elseif (B <= -3.4e-273) tmp = 180.0 * (atan((0.0 / B)) / pi); elseif (B <= 9.5e-19) tmp = 180.0 * (atan(((A / B) * -2.0)) / pi); else tmp = 180.0 * (atan(-1.0) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[B, -2800.0], N[(180.0 * N[(N[ArcTan[1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -4.4e-226], N[(180.0 * N[(N[ArcTan[N[(C / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -3.4e-273], N[(180.0 * N[(N[ArcTan[N[(0.0 / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, 9.5e-19], N[(180.0 * N[(N[ArcTan[N[(N[(A / B), $MachinePrecision] * -2.0), $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 -2800:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} 1}{\pi}\\
\mathbf{elif}\;B \leq -4.4 \cdot 10^{-226}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{C}{B}\right)}{\pi}\\
\mathbf{elif}\;B \leq -3.4 \cdot 10^{-273}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{0}{B}\right)}{\pi}\\
\mathbf{elif}\;B \leq 9.5 \cdot 10^{-19}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{A}{B} \cdot -2\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} -1}{\pi}\\
\end{array}
\end{array}
if B < -2800Initial program 46.3%
Taylor expanded in B around -inf 63.5%
if -2800 < B < -4.4e-226Initial program 56.1%
Taylor expanded in B around inf 45.2%
Taylor expanded in C around inf 34.7%
if -4.4e-226 < B < -3.39999999999999991e-273Initial program 48.0%
Taylor expanded in C around inf 62.9%
associate-*r/62.9%
distribute-rgt1-in62.9%
metadata-eval62.9%
mul0-lft62.9%
metadata-eval62.9%
Simplified62.9%
if -3.39999999999999991e-273 < B < 9.4999999999999995e-19Initial program 61.3%
Taylor expanded in A around inf 37.3%
if 9.4999999999999995e-19 < B Initial program 58.1%
Taylor expanded in B around inf 66.5%
Final simplification51.4%
(FPCore (A B C)
:precision binary64
(if (<= B -230.0)
(* 180.0 (/ (atan 1.0) PI))
(if (<= B -3.5e-219)
(* 180.0 (/ (atan (/ C B)) PI))
(if (<= B -3.4e-273)
(* 180.0 (/ (atan (/ 0.0 B)) PI))
(if (<= B 3.9e-18)
(* 180.0 (/ (atan (/ A (- B))) PI))
(* 180.0 (/ (atan -1.0) PI)))))))
double code(double A, double B, double C) {
double tmp;
if (B <= -230.0) {
tmp = 180.0 * (atan(1.0) / ((double) M_PI));
} else if (B <= -3.5e-219) {
tmp = 180.0 * (atan((C / B)) / ((double) M_PI));
} else if (B <= -3.4e-273) {
tmp = 180.0 * (atan((0.0 / B)) / ((double) M_PI));
} else if (B <= 3.9e-18) {
tmp = 180.0 * (atan((A / -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 <= -230.0) {
tmp = 180.0 * (Math.atan(1.0) / Math.PI);
} else if (B <= -3.5e-219) {
tmp = 180.0 * (Math.atan((C / B)) / Math.PI);
} else if (B <= -3.4e-273) {
tmp = 180.0 * (Math.atan((0.0 / B)) / Math.PI);
} else if (B <= 3.9e-18) {
tmp = 180.0 * (Math.atan((A / -B)) / Math.PI);
} else {
tmp = 180.0 * (Math.atan(-1.0) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if B <= -230.0: tmp = 180.0 * (math.atan(1.0) / math.pi) elif B <= -3.5e-219: tmp = 180.0 * (math.atan((C / B)) / math.pi) elif B <= -3.4e-273: tmp = 180.0 * (math.atan((0.0 / B)) / math.pi) elif B <= 3.9e-18: tmp = 180.0 * (math.atan((A / -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 <= -230.0) tmp = Float64(180.0 * Float64(atan(1.0) / pi)); elseif (B <= -3.5e-219) tmp = Float64(180.0 * Float64(atan(Float64(C / B)) / pi)); elseif (B <= -3.4e-273) tmp = Float64(180.0 * Float64(atan(Float64(0.0 / B)) / pi)); elseif (B <= 3.9e-18) tmp = Float64(180.0 * Float64(atan(Float64(A / Float64(-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 <= -230.0) tmp = 180.0 * (atan(1.0) / pi); elseif (B <= -3.5e-219) tmp = 180.0 * (atan((C / B)) / pi); elseif (B <= -3.4e-273) tmp = 180.0 * (atan((0.0 / B)) / pi); elseif (B <= 3.9e-18) tmp = 180.0 * (atan((A / -B)) / pi); else tmp = 180.0 * (atan(-1.0) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[B, -230.0], N[(180.0 * N[(N[ArcTan[1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -3.5e-219], N[(180.0 * N[(N[ArcTan[N[(C / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -3.4e-273], N[(180.0 * N[(N[ArcTan[N[(0.0 / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, 3.9e-18], N[(180.0 * N[(N[ArcTan[N[(A / (-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 -230:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} 1}{\pi}\\
\mathbf{elif}\;B \leq -3.5 \cdot 10^{-219}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{C}{B}\right)}{\pi}\\
\mathbf{elif}\;B \leq -3.4 \cdot 10^{-273}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{0}{B}\right)}{\pi}\\
\mathbf{elif}\;B \leq 3.9 \cdot 10^{-18}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{A}{-B}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} -1}{\pi}\\
\end{array}
\end{array}
if B < -230Initial program 46.3%
Taylor expanded in B around -inf 63.5%
if -230 < B < -3.50000000000000011e-219Initial program 56.1%
Taylor expanded in B around inf 45.2%
Taylor expanded in C around inf 34.7%
if -3.50000000000000011e-219 < B < -3.39999999999999991e-273Initial program 48.0%
Taylor expanded in C around inf 62.9%
associate-*r/62.9%
distribute-rgt1-in62.9%
metadata-eval62.9%
mul0-lft62.9%
metadata-eval62.9%
Simplified62.9%
if -3.39999999999999991e-273 < B < 3.90000000000000005e-18Initial program 61.3%
Taylor expanded in B around inf 52.3%
Taylor expanded in A around inf 37.3%
associate-*r/37.3%
mul-1-neg37.3%
Simplified37.3%
if 3.90000000000000005e-18 < B Initial program 58.1%
Taylor expanded in B around inf 66.5%
Final simplification51.4%
(FPCore (A B C)
:precision binary64
(let* ((t_0 (* 180.0 (/ (atan (/ C B)) PI))))
(if (<= B -31000.0)
(* 180.0 (/ (atan 1.0) PI))
(if (<= B -9.2e-219)
t_0
(if (<= B 7.5e-166)
(* 180.0 (/ (atan (/ 0.0 B)) PI))
(if (<= B 3.2e-33) t_0 (* 180.0 (/ (atan -1.0) PI))))))))
double code(double A, double B, double C) {
double t_0 = 180.0 * (atan((C / B)) / ((double) M_PI));
double tmp;
if (B <= -31000.0) {
tmp = 180.0 * (atan(1.0) / ((double) M_PI));
} else if (B <= -9.2e-219) {
tmp = t_0;
} else if (B <= 7.5e-166) {
tmp = 180.0 * (atan((0.0 / B)) / ((double) M_PI));
} else if (B <= 3.2e-33) {
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((C / B)) / Math.PI);
double tmp;
if (B <= -31000.0) {
tmp = 180.0 * (Math.atan(1.0) / Math.PI);
} else if (B <= -9.2e-219) {
tmp = t_0;
} else if (B <= 7.5e-166) {
tmp = 180.0 * (Math.atan((0.0 / B)) / Math.PI);
} else if (B <= 3.2e-33) {
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((C / B)) / math.pi) tmp = 0 if B <= -31000.0: tmp = 180.0 * (math.atan(1.0) / math.pi) elif B <= -9.2e-219: tmp = t_0 elif B <= 7.5e-166: tmp = 180.0 * (math.atan((0.0 / B)) / math.pi) elif B <= 3.2e-33: 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(C / B)) / pi)) tmp = 0.0 if (B <= -31000.0) tmp = Float64(180.0 * Float64(atan(1.0) / pi)); elseif (B <= -9.2e-219) tmp = t_0; elseif (B <= 7.5e-166) tmp = Float64(180.0 * Float64(atan(Float64(0.0 / B)) / pi)); elseif (B <= 3.2e-33) 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((C / B)) / pi); tmp = 0.0; if (B <= -31000.0) tmp = 180.0 * (atan(1.0) / pi); elseif (B <= -9.2e-219) tmp = t_0; elseif (B <= 7.5e-166) tmp = 180.0 * (atan((0.0 / B)) / pi); elseif (B <= 3.2e-33) 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[(C / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[B, -31000.0], N[(180.0 * N[(N[ArcTan[1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -9.2e-219], t$95$0, If[LessEqual[B, 7.5e-166], N[(180.0 * N[(N[ArcTan[N[(0.0 / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, 3.2e-33], 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{C}{B}\right)}{\pi}\\
\mathbf{if}\;B \leq -31000:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} 1}{\pi}\\
\mathbf{elif}\;B \leq -9.2 \cdot 10^{-219}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;B \leq 7.5 \cdot 10^{-166}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{0}{B}\right)}{\pi}\\
\mathbf{elif}\;B \leq 3.2 \cdot 10^{-33}:\\
\;\;\;\;t\_0\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} -1}{\pi}\\
\end{array}
\end{array}
if B < -31000Initial program 46.3%
Taylor expanded in B around -inf 63.5%
if -31000 < B < -9.19999999999999954e-219 or 7.49999999999999947e-166 < B < 3.19999999999999977e-33Initial program 59.1%
Taylor expanded in B around inf 49.5%
Taylor expanded in C around inf 35.2%
if -9.19999999999999954e-219 < B < 7.49999999999999947e-166Initial program 54.1%
Taylor expanded in C around inf 39.3%
associate-*r/39.3%
distribute-rgt1-in39.3%
metadata-eval39.3%
mul0-lft39.3%
metadata-eval39.3%
Simplified39.3%
if 3.19999999999999977e-33 < B Initial program 59.6%
Taylor expanded in B around inf 64.1%
(FPCore (A B C)
:precision binary64
(if (<= C -2.4e-219)
(* 180.0 (/ (atan (+ -1.0 (/ C B))) PI))
(if (<= C 6.8e-162)
(* 180.0 (/ (atan (- 1.0 (/ A B))) PI))
(if (<= C 1.15e-61)
(* 180.0 (/ (atan (- -1.0 (/ A B))) PI))
(* 180.0 (/ (atan (/ (* B -0.5) C)) PI))))))
double code(double A, double B, double C) {
double tmp;
if (C <= -2.4e-219) {
tmp = 180.0 * (atan((-1.0 + (C / B))) / ((double) M_PI));
} else if (C <= 6.8e-162) {
tmp = 180.0 * (atan((1.0 - (A / B))) / ((double) M_PI));
} else if (C <= 1.15e-61) {
tmp = 180.0 * (atan((-1.0 - (A / B))) / ((double) M_PI));
} else {
tmp = 180.0 * (atan(((B * -0.5) / C)) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (C <= -2.4e-219) {
tmp = 180.0 * (Math.atan((-1.0 + (C / B))) / Math.PI);
} else if (C <= 6.8e-162) {
tmp = 180.0 * (Math.atan((1.0 - (A / B))) / Math.PI);
} else if (C <= 1.15e-61) {
tmp = 180.0 * (Math.atan((-1.0 - (A / B))) / Math.PI);
} else {
tmp = 180.0 * (Math.atan(((B * -0.5) / C)) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if C <= -2.4e-219: tmp = 180.0 * (math.atan((-1.0 + (C / B))) / math.pi) elif C <= 6.8e-162: tmp = 180.0 * (math.atan((1.0 - (A / B))) / math.pi) elif C <= 1.15e-61: tmp = 180.0 * (math.atan((-1.0 - (A / B))) / math.pi) else: tmp = 180.0 * (math.atan(((B * -0.5) / C)) / math.pi) return tmp
function code(A, B, C) tmp = 0.0 if (C <= -2.4e-219) tmp = Float64(180.0 * Float64(atan(Float64(-1.0 + Float64(C / B))) / pi)); elseif (C <= 6.8e-162) tmp = Float64(180.0 * Float64(atan(Float64(1.0 - Float64(A / B))) / pi)); elseif (C <= 1.15e-61) tmp = Float64(180.0 * Float64(atan(Float64(-1.0 - Float64(A / B))) / pi)); else tmp = Float64(180.0 * Float64(atan(Float64(Float64(B * -0.5) / C)) / pi)); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (C <= -2.4e-219) tmp = 180.0 * (atan((-1.0 + (C / B))) / pi); elseif (C <= 6.8e-162) tmp = 180.0 * (atan((1.0 - (A / B))) / pi); elseif (C <= 1.15e-61) tmp = 180.0 * (atan((-1.0 - (A / B))) / pi); else tmp = 180.0 * (atan(((B * -0.5) / C)) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[C, -2.4e-219], N[(180.0 * N[(N[ArcTan[N[(-1.0 + N[(C / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[C, 6.8e-162], N[(180.0 * N[(N[ArcTan[N[(1.0 - N[(A / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[C, 1.15e-61], N[(180.0 * N[(N[ArcTan[N[(-1.0 - N[(A / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(N[(B * -0.5), $MachinePrecision] / C), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;C \leq -2.4 \cdot 10^{-219}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(-1 + \frac{C}{B}\right)}{\pi}\\
\mathbf{elif}\;C \leq 6.8 \cdot 10^{-162}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 - \frac{A}{B}\right)}{\pi}\\
\mathbf{elif}\;C \leq 1.15 \cdot 10^{-61}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(-1 - \frac{A}{B}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{B \cdot -0.5}{C}\right)}{\pi}\\
\end{array}
\end{array}
if C < -2.40000000000000014e-219Initial program 74.1%
Taylor expanded in B around inf 70.6%
Taylor expanded in A around 0 69.1%
if -2.40000000000000014e-219 < C < 6.8e-162Initial program 62.0%
Taylor expanded in C around 0 62.1%
mul-1-neg62.1%
distribute-neg-frac262.1%
+-commutative62.1%
unpow262.1%
unpow262.1%
hypot-define80.3%
Simplified80.3%
Taylor expanded in B around -inf 57.9%
mul-1-neg57.9%
sub-neg57.9%
Simplified57.9%
if 6.8e-162 < C < 1.14999999999999996e-61Initial program 61.0%
Taylor expanded in B around inf 68.9%
Taylor expanded in C around 0 69.3%
neg-mul-169.3%
distribute-neg-in69.3%
metadata-eval69.3%
unsub-neg69.3%
Simplified69.3%
if 1.14999999999999996e-61 < C Initial program 21.6%
Taylor expanded in C around inf 65.6%
Taylor expanded in A around inf 65.6%
Simplified65.6%
Final simplification65.4%
(FPCore (A B C)
:precision binary64
(if (<= B -4.6e-219)
(* 180.0 (/ (atan (- 1.0 (/ A B))) PI))
(if (<= B -2e-273)
(* 180.0 (/ (atan (/ 0.0 B)) PI))
(if (<= B 6.2e-214)
(* 180.0 (/ (atan (* (/ A B) -2.0)) PI))
(* 180.0 (/ (atan (+ -1.0 (/ C B))) PI))))))
double code(double A, double B, double C) {
double tmp;
if (B <= -4.6e-219) {
tmp = 180.0 * (atan((1.0 - (A / B))) / ((double) M_PI));
} else if (B <= -2e-273) {
tmp = 180.0 * (atan((0.0 / B)) / ((double) M_PI));
} else if (B <= 6.2e-214) {
tmp = 180.0 * (atan(((A / B) * -2.0)) / ((double) M_PI));
} else {
tmp = 180.0 * (atan((-1.0 + (C / B))) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (B <= -4.6e-219) {
tmp = 180.0 * (Math.atan((1.0 - (A / B))) / Math.PI);
} else if (B <= -2e-273) {
tmp = 180.0 * (Math.atan((0.0 / B)) / Math.PI);
} else if (B <= 6.2e-214) {
tmp = 180.0 * (Math.atan(((A / B) * -2.0)) / Math.PI);
} else {
tmp = 180.0 * (Math.atan((-1.0 + (C / B))) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if B <= -4.6e-219: tmp = 180.0 * (math.atan((1.0 - (A / B))) / math.pi) elif B <= -2e-273: tmp = 180.0 * (math.atan((0.0 / B)) / math.pi) elif B <= 6.2e-214: tmp = 180.0 * (math.atan(((A / B) * -2.0)) / math.pi) else: tmp = 180.0 * (math.atan((-1.0 + (C / B))) / math.pi) return tmp
function code(A, B, C) tmp = 0.0 if (B <= -4.6e-219) tmp = Float64(180.0 * Float64(atan(Float64(1.0 - Float64(A / B))) / pi)); elseif (B <= -2e-273) tmp = Float64(180.0 * Float64(atan(Float64(0.0 / B)) / pi)); elseif (B <= 6.2e-214) tmp = Float64(180.0 * Float64(atan(Float64(Float64(A / B) * -2.0)) / pi)); else tmp = Float64(180.0 * Float64(atan(Float64(-1.0 + Float64(C / B))) / pi)); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (B <= -4.6e-219) tmp = 180.0 * (atan((1.0 - (A / B))) / pi); elseif (B <= -2e-273) tmp = 180.0 * (atan((0.0 / B)) / pi); elseif (B <= 6.2e-214) tmp = 180.0 * (atan(((A / B) * -2.0)) / pi); else tmp = 180.0 * (atan((-1.0 + (C / B))) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[B, -4.6e-219], N[(180.0 * N[(N[ArcTan[N[(1.0 - N[(A / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -2e-273], N[(180.0 * N[(N[ArcTan[N[(0.0 / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, 6.2e-214], N[(180.0 * N[(N[ArcTan[N[(N[(A / B), $MachinePrecision] * -2.0), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(-1.0 + N[(C / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;B \leq -4.6 \cdot 10^{-219}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 - \frac{A}{B}\right)}{\pi}\\
\mathbf{elif}\;B \leq -2 \cdot 10^{-273}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{0}{B}\right)}{\pi}\\
\mathbf{elif}\;B \leq 6.2 \cdot 10^{-214}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{A}{B} \cdot -2\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(-1 + \frac{C}{B}\right)}{\pi}\\
\end{array}
\end{array}
if B < -4.59999999999999977e-219Initial program 51.2%
Taylor expanded in C around 0 43.4%
mul-1-neg43.4%
distribute-neg-frac243.4%
+-commutative43.4%
unpow243.4%
unpow243.4%
hypot-define58.3%
Simplified58.3%
Taylor expanded in B around -inf 55.7%
mul-1-neg55.7%
sub-neg55.7%
Simplified55.7%
if -4.59999999999999977e-219 < B < -2e-273Initial program 48.0%
Taylor expanded in C around inf 62.9%
associate-*r/62.9%
distribute-rgt1-in62.9%
metadata-eval62.9%
mul0-lft62.9%
metadata-eval62.9%
Simplified62.9%
if -2e-273 < B < 6.20000000000000008e-214Initial program 61.7%
Taylor expanded in A around inf 49.9%
if 6.20000000000000008e-214 < B Initial program 59.2%
Taylor expanded in B around inf 71.7%
Taylor expanded in A around 0 64.6%
Final simplification59.3%
(FPCore (A B C)
:precision binary64
(if (<= B -600.0)
(* 180.0 (/ (atan 1.0) PI))
(if (<= B -2.25e-226)
(* 180.0 (/ (atan (* 2.0 (/ C B))) PI))
(if (<= B -4.2e-273)
(* 180.0 (/ (atan (/ 0.0 B)) PI))
(* 180.0 (/ (atan (- -1.0 (/ A B))) PI))))))
double code(double A, double B, double C) {
double tmp;
if (B <= -600.0) {
tmp = 180.0 * (atan(1.0) / ((double) M_PI));
} else if (B <= -2.25e-226) {
tmp = 180.0 * (atan((2.0 * (C / B))) / ((double) M_PI));
} else if (B <= -4.2e-273) {
tmp = 180.0 * (atan((0.0 / B)) / ((double) M_PI));
} else {
tmp = 180.0 * (atan((-1.0 - (A / B))) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (B <= -600.0) {
tmp = 180.0 * (Math.atan(1.0) / Math.PI);
} else if (B <= -2.25e-226) {
tmp = 180.0 * (Math.atan((2.0 * (C / B))) / Math.PI);
} else if (B <= -4.2e-273) {
tmp = 180.0 * (Math.atan((0.0 / B)) / Math.PI);
} else {
tmp = 180.0 * (Math.atan((-1.0 - (A / B))) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if B <= -600.0: tmp = 180.0 * (math.atan(1.0) / math.pi) elif B <= -2.25e-226: tmp = 180.0 * (math.atan((2.0 * (C / B))) / math.pi) elif B <= -4.2e-273: tmp = 180.0 * (math.atan((0.0 / B)) / math.pi) else: tmp = 180.0 * (math.atan((-1.0 - (A / B))) / math.pi) return tmp
function code(A, B, C) tmp = 0.0 if (B <= -600.0) tmp = Float64(180.0 * Float64(atan(1.0) / pi)); elseif (B <= -2.25e-226) tmp = Float64(180.0 * Float64(atan(Float64(2.0 * Float64(C / B))) / pi)); elseif (B <= -4.2e-273) tmp = Float64(180.0 * Float64(atan(Float64(0.0 / B)) / pi)); else tmp = Float64(180.0 * Float64(atan(Float64(-1.0 - Float64(A / B))) / pi)); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (B <= -600.0) tmp = 180.0 * (atan(1.0) / pi); elseif (B <= -2.25e-226) tmp = 180.0 * (atan((2.0 * (C / B))) / pi); elseif (B <= -4.2e-273) tmp = 180.0 * (atan((0.0 / B)) / pi); else tmp = 180.0 * (atan((-1.0 - (A / B))) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[B, -600.0], N[(180.0 * N[(N[ArcTan[1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -2.25e-226], N[(180.0 * N[(N[ArcTan[N[(2.0 * N[(C / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -4.2e-273], N[(180.0 * N[(N[ArcTan[N[(0.0 / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(-1.0 - N[(A / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;B \leq -600:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} 1}{\pi}\\
\mathbf{elif}\;B \leq -2.25 \cdot 10^{-226}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(2 \cdot \frac{C}{B}\right)}{\pi}\\
\mathbf{elif}\;B \leq -4.2 \cdot 10^{-273}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{0}{B}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(-1 - \frac{A}{B}\right)}{\pi}\\
\end{array}
\end{array}
if B < -600Initial program 46.3%
Taylor expanded in B around -inf 63.5%
if -600 < B < -2.25000000000000006e-226Initial program 56.1%
Taylor expanded in C around -inf 35.0%
if -2.25000000000000006e-226 < B < -4.2000000000000004e-273Initial program 48.0%
Taylor expanded in C around inf 62.9%
associate-*r/62.9%
distribute-rgt1-in62.9%
metadata-eval62.9%
mul0-lft62.9%
metadata-eval62.9%
Simplified62.9%
if -4.2000000000000004e-273 < B Initial program 59.7%
Taylor expanded in B around inf 67.3%
Taylor expanded in C around 0 57.1%
neg-mul-157.1%
distribute-neg-in57.1%
metadata-eval57.1%
unsub-neg57.1%
Simplified57.1%
(FPCore (A B C)
:precision binary64
(if (<= B -2.7e-219)
(* 180.0 (/ (atan (- 1.0 (/ A B))) PI))
(if (<= B -1.5e-274)
(* 180.0 (/ (atan (/ 0.0 B)) PI))
(* 180.0 (/ (atan (- -1.0 (/ A B))) PI)))))
double code(double A, double B, double C) {
double tmp;
if (B <= -2.7e-219) {
tmp = 180.0 * (atan((1.0 - (A / B))) / ((double) M_PI));
} else if (B <= -1.5e-274) {
tmp = 180.0 * (atan((0.0 / B)) / ((double) M_PI));
} else {
tmp = 180.0 * (atan((-1.0 - (A / B))) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (B <= -2.7e-219) {
tmp = 180.0 * (Math.atan((1.0 - (A / B))) / Math.PI);
} else if (B <= -1.5e-274) {
tmp = 180.0 * (Math.atan((0.0 / B)) / Math.PI);
} else {
tmp = 180.0 * (Math.atan((-1.0 - (A / B))) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if B <= -2.7e-219: tmp = 180.0 * (math.atan((1.0 - (A / B))) / math.pi) elif B <= -1.5e-274: tmp = 180.0 * (math.atan((0.0 / B)) / math.pi) else: tmp = 180.0 * (math.atan((-1.0 - (A / B))) / math.pi) return tmp
function code(A, B, C) tmp = 0.0 if (B <= -2.7e-219) tmp = Float64(180.0 * Float64(atan(Float64(1.0 - Float64(A / B))) / pi)); elseif (B <= -1.5e-274) tmp = Float64(180.0 * Float64(atan(Float64(0.0 / B)) / pi)); else tmp = Float64(180.0 * Float64(atan(Float64(-1.0 - Float64(A / B))) / pi)); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (B <= -2.7e-219) tmp = 180.0 * (atan((1.0 - (A / B))) / pi); elseif (B <= -1.5e-274) tmp = 180.0 * (atan((0.0 / B)) / pi); else tmp = 180.0 * (atan((-1.0 - (A / B))) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[B, -2.7e-219], N[(180.0 * N[(N[ArcTan[N[(1.0 - N[(A / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -1.5e-274], N[(180.0 * N[(N[ArcTan[N[(0.0 / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(-1.0 - N[(A / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;B \leq -2.7 \cdot 10^{-219}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 - \frac{A}{B}\right)}{\pi}\\
\mathbf{elif}\;B \leq -1.5 \cdot 10^{-274}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{0}{B}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(-1 - \frac{A}{B}\right)}{\pi}\\
\end{array}
\end{array}
if B < -2.7e-219Initial program 51.2%
Taylor expanded in C around 0 43.4%
mul-1-neg43.4%
distribute-neg-frac243.4%
+-commutative43.4%
unpow243.4%
unpow243.4%
hypot-define58.3%
Simplified58.3%
Taylor expanded in B around -inf 55.7%
mul-1-neg55.7%
sub-neg55.7%
Simplified55.7%
if -2.7e-219 < B < -1.49999999999999989e-274Initial program 48.0%
Taylor expanded in C around inf 62.9%
associate-*r/62.9%
distribute-rgt1-in62.9%
metadata-eval62.9%
mul0-lft62.9%
metadata-eval62.9%
Simplified62.9%
if -1.49999999999999989e-274 < B Initial program 59.7%
Taylor expanded in B around inf 67.3%
Taylor expanded in C around 0 57.1%
neg-mul-157.1%
distribute-neg-in57.1%
metadata-eval57.1%
unsub-neg57.1%
Simplified57.1%
(FPCore (A B C)
:precision binary64
(if (<= B -4.2e-162)
(* 180.0 (/ (atan 1.0) PI))
(if (<= B 4.6e-166)
(* 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 <= -4.2e-162) {
tmp = 180.0 * (atan(1.0) / ((double) M_PI));
} else if (B <= 4.6e-166) {
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 <= -4.2e-162) {
tmp = 180.0 * (Math.atan(1.0) / Math.PI);
} else if (B <= 4.6e-166) {
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 <= -4.2e-162: tmp = 180.0 * (math.atan(1.0) / math.pi) elif B <= 4.6e-166: 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 <= -4.2e-162) tmp = Float64(180.0 * Float64(atan(1.0) / pi)); elseif (B <= 4.6e-166) 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 <= -4.2e-162) tmp = 180.0 * (atan(1.0) / pi); elseif (B <= 4.6e-166) 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, -4.2e-162], N[(180.0 * N[(N[ArcTan[1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, 4.6e-166], 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 -4.2 \cdot 10^{-162}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} 1}{\pi}\\
\mathbf{elif}\;B \leq 4.6 \cdot 10^{-166}:\\
\;\;\;\;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 < -4.2e-162Initial program 50.0%
Taylor expanded in B around -inf 45.3%
if -4.2e-162 < B < 4.59999999999999997e-166Initial program 55.3%
Taylor expanded in C around inf 36.6%
associate-*r/36.6%
distribute-rgt1-in36.6%
metadata-eval36.6%
mul0-lft36.6%
metadata-eval36.6%
Simplified36.6%
if 4.59999999999999997e-166 < B Initial program 61.1%
Taylor expanded in B around inf 52.7%
(FPCore (A B C) :precision binary64 (if (<= B -2e-311) (* 180.0 (/ (atan 1.0) PI)) (* 180.0 (/ (atan -1.0) PI))))
double code(double A, double B, double C) {
double tmp;
if (B <= -2e-311) {
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 <= -2e-311) {
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 <= -2e-311: 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 <= -2e-311) 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 <= -2e-311) 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, -2e-311], 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 -2 \cdot 10^{-311}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} 1}{\pi}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} -1}{\pi}\\
\end{array}
\end{array}
if B < -1.9999999999999e-311Initial program 52.0%
Taylor expanded in B around -inf 37.2%
if -1.9999999999999e-311 < B Initial program 59.0%
Taylor expanded in B around inf 42.3%
(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 55.6%
Taylor expanded in B around inf 22.7%
herbie shell --seed 2024085
(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)))