
(FPCore (A B C) :precision binary64 (* 180.0 (/ (atan (* (/ 1.0 B) (- (- C A) (sqrt (+ (pow (- A C) 2.0) (pow B 2.0)))))) PI)))
double code(double A, double B, double C) {
return 180.0 * (atan(((1.0 / B) * ((C - A) - sqrt((pow((A - C), 2.0) + pow(B, 2.0)))))) / ((double) M_PI));
}
public static double code(double A, double B, double C) {
return 180.0 * (Math.atan(((1.0 / B) * ((C - A) - Math.sqrt((Math.pow((A - C), 2.0) + Math.pow(B, 2.0)))))) / Math.PI);
}
def code(A, B, C): return 180.0 * (math.atan(((1.0 / B) * ((C - A) - math.sqrt((math.pow((A - C), 2.0) + math.pow(B, 2.0)))))) / math.pi)
function code(A, B, C) return Float64(180.0 * Float64(atan(Float64(Float64(1.0 / B) * Float64(Float64(C - A) - sqrt(Float64((Float64(A - C) ^ 2.0) + (B ^ 2.0)))))) / pi)) end
function tmp = code(A, B, C) tmp = 180.0 * (atan(((1.0 / B) * ((C - A) - sqrt((((A - C) ^ 2.0) + (B ^ 2.0)))))) / pi); end
code[A_, B_, C_] := N[(180.0 * N[(N[ArcTan[N[(N[(1.0 / B), $MachinePrecision] * N[(N[(C - A), $MachinePrecision] - N[Sqrt[N[(N[Power[N[(A - C), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[B, 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi}
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 26 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (A B C) :precision binary64 (* 180.0 (/ (atan (* (/ 1.0 B) (- (- C A) (sqrt (+ (pow (- A C) 2.0) (pow B 2.0)))))) PI)))
double code(double A, double B, double C) {
return 180.0 * (atan(((1.0 / B) * ((C - A) - sqrt((pow((A - C), 2.0) + pow(B, 2.0)))))) / ((double) M_PI));
}
public static double code(double A, double B, double C) {
return 180.0 * (Math.atan(((1.0 / B) * ((C - A) - Math.sqrt((Math.pow((A - C), 2.0) + Math.pow(B, 2.0)))))) / Math.PI);
}
def code(A, B, C): return 180.0 * (math.atan(((1.0 / B) * ((C - A) - math.sqrt((math.pow((A - C), 2.0) + math.pow(B, 2.0)))))) / math.pi)
function code(A, B, C) return Float64(180.0 * Float64(atan(Float64(Float64(1.0 / B) * Float64(Float64(C - A) - sqrt(Float64((Float64(A - C) ^ 2.0) + (B ^ 2.0)))))) / pi)) end
function tmp = code(A, B, C) tmp = 180.0 * (atan(((1.0 / B) * ((C - A) - sqrt((((A - C) ^ 2.0) + (B ^ 2.0)))))) / pi); end
code[A_, B_, C_] := N[(180.0 * N[(N[ArcTan[N[(N[(1.0 / B), $MachinePrecision] * N[(N[(C - A), $MachinePrecision] - N[Sqrt[N[(N[Power[N[(A - C), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[B, 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\right)}{\pi}
\end{array}
(FPCore (A B C)
:precision binary64
(let* ((t_0
(* (/ 1.0 B) (- (- C A) (sqrt (+ (pow (- A C) 2.0) (pow B 2.0)))))))
(if (<= t_0 -0.5)
(/ 180.0 (/ PI (atan (/ (- (- C A) (hypot (- A C) B)) B))))
(if (<= t_0 0.0)
(* 180.0 (/ (atan (* -0.5 (/ B C))) PI))
(* 180.0 (/ (atan (/ (- (- C A) (hypot B (- A C))) B)) PI))))))
double code(double A, double B, double C) {
double t_0 = (1.0 / B) * ((C - A) - sqrt((pow((A - C), 2.0) + pow(B, 2.0))));
double tmp;
if (t_0 <= -0.5) {
tmp = 180.0 / (((double) M_PI) / atan((((C - A) - hypot((A - C), B)) / B)));
} else if (t_0 <= 0.0) {
tmp = 180.0 * (atan((-0.5 * (B / C))) / ((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 t_0 = (1.0 / B) * ((C - A) - Math.sqrt((Math.pow((A - C), 2.0) + Math.pow(B, 2.0))));
double tmp;
if (t_0 <= -0.5) {
tmp = 180.0 / (Math.PI / Math.atan((((C - A) - Math.hypot((A - C), B)) / B)));
} else if (t_0 <= 0.0) {
tmp = 180.0 * (Math.atan((-0.5 * (B / C))) / 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): t_0 = (1.0 / B) * ((C - A) - math.sqrt((math.pow((A - C), 2.0) + math.pow(B, 2.0)))) tmp = 0 if t_0 <= -0.5: tmp = 180.0 / (math.pi / math.atan((((C - A) - math.hypot((A - C), B)) / B))) elif t_0 <= 0.0: tmp = 180.0 * (math.atan((-0.5 * (B / C))) / 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) t_0 = Float64(Float64(1.0 / B) * Float64(Float64(C - A) - sqrt(Float64((Float64(A - C) ^ 2.0) + (B ^ 2.0))))) tmp = 0.0 if (t_0 <= -0.5) tmp = Float64(180.0 / Float64(pi / atan(Float64(Float64(Float64(C - A) - hypot(Float64(A - C), B)) / B)))); elseif (t_0 <= 0.0) tmp = Float64(180.0 * Float64(atan(Float64(-0.5 * Float64(B / C))) / 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) t_0 = (1.0 / B) * ((C - A) - sqrt((((A - C) ^ 2.0) + (B ^ 2.0)))); tmp = 0.0; if (t_0 <= -0.5) tmp = 180.0 / (pi / atan((((C - A) - hypot((A - C), B)) / B))); elseif (t_0 <= 0.0) tmp = 180.0 * (atan((-0.5 * (B / C))) / pi); else tmp = 180.0 * (atan((((C - A) - hypot(B, (A - C))) / B)) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := Block[{t$95$0 = N[(N[(1.0 / B), $MachinePrecision] * N[(N[(C - A), $MachinePrecision] - N[Sqrt[N[(N[Power[N[(A - C), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[B, 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$0, -0.5], N[(180.0 / N[(Pi / N[ArcTan[N[(N[(N[(C - A), $MachinePrecision] - N[Sqrt[N[(A - C), $MachinePrecision] ^ 2 + B ^ 2], $MachinePrecision]), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$0, 0.0], N[(180.0 * N[(N[ArcTan[N[(-0.5 * N[(B / C), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $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}
t_0 := \frac{1}{B} \cdot \left(\left(C - A\right) - \sqrt{{\left(A - C\right)}^{2} + {B}^{2}}\right)\\
\mathbf{if}\;t\_0 \leq -0.5:\\
\;\;\;\;\frac{180}{\frac{\pi}{\tan^{-1} \left(\frac{\left(C - A\right) - \mathsf{hypot}\left(A - C, B\right)}{B}\right)}}\\
\mathbf{elif}\;t\_0 \leq 0:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(-0.5 \cdot \frac{B}{C}\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 (*.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.5Initial program 61.8%
Applied egg-rr92.5%
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 14.3%
Taylor expanded in C around inf 37.5%
distribute-rgt1-in37.5%
metadata-eval37.5%
associate-*r/37.5%
Simplified37.5%
Taylor expanded in B around 0 55.1%
if -0.0 < (*.f64 (/.f64 #s(literal 1 binary64) B) (-.f64 (-.f64 C A) (sqrt.f64 (+.f64 (pow.f64 (-.f64 A C) #s(literal 2 binary64)) (pow.f64 B #s(literal 2 binary64)))))) Initial program 56.0%
associate-*l/55.9%
*-lft-identity55.9%
+-commutative55.9%
unpow255.9%
unpow255.9%
hypot-define89.1%
Simplified89.1%
(FPCore (A B C)
:precision binary64
(if (<= C -1.5e-177)
(* 180.0 (/ (atan (/ (- C (+ A (hypot B A))) B)) PI))
(if (<= C 1.15e+72)
(/ (* -180.0 (atan (/ (+ A (hypot A B)) B))) PI)
(/ 180.0 (/ PI (atan (+ (* -0.5 (/ B C)) (/ (- A A) B))))))))
double code(double A, double B, double C) {
double tmp;
if (C <= -1.5e-177) {
tmp = 180.0 * (atan(((C - (A + hypot(B, A))) / B)) / ((double) M_PI));
} else if (C <= 1.15e+72) {
tmp = (-180.0 * atan(((A + hypot(A, B)) / B))) / ((double) M_PI);
} else {
tmp = 180.0 / (((double) M_PI) / atan(((-0.5 * (B / C)) + ((A - A) / B))));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (C <= -1.5e-177) {
tmp = 180.0 * (Math.atan(((C - (A + Math.hypot(B, A))) / B)) / Math.PI);
} else if (C <= 1.15e+72) {
tmp = (-180.0 * Math.atan(((A + Math.hypot(A, B)) / B))) / Math.PI;
} else {
tmp = 180.0 / (Math.PI / Math.atan(((-0.5 * (B / C)) + ((A - A) / B))));
}
return tmp;
}
def code(A, B, C): tmp = 0 if C <= -1.5e-177: tmp = 180.0 * (math.atan(((C - (A + math.hypot(B, A))) / B)) / math.pi) elif C <= 1.15e+72: tmp = (-180.0 * math.atan(((A + math.hypot(A, B)) / B))) / math.pi else: tmp = 180.0 / (math.pi / math.atan(((-0.5 * (B / C)) + ((A - A) / B)))) return tmp
function code(A, B, C) tmp = 0.0 if (C <= -1.5e-177) tmp = Float64(180.0 * Float64(atan(Float64(Float64(C - Float64(A + hypot(B, A))) / B)) / pi)); elseif (C <= 1.15e+72) tmp = Float64(Float64(-180.0 * atan(Float64(Float64(A + hypot(A, B)) / B))) / pi); else tmp = Float64(180.0 / Float64(pi / atan(Float64(Float64(-0.5 * Float64(B / C)) + Float64(Float64(A - A) / B))))); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (C <= -1.5e-177) tmp = 180.0 * (atan(((C - (A + hypot(B, A))) / B)) / pi); elseif (C <= 1.15e+72) tmp = (-180.0 * atan(((A + hypot(A, B)) / B))) / pi; else tmp = 180.0 / (pi / atan(((-0.5 * (B / C)) + ((A - A) / B)))); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[C, -1.5e-177], N[(180.0 * N[(N[ArcTan[N[(N[(C - N[(A + N[Sqrt[B ^ 2 + A ^ 2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[C, 1.15e+72], N[(N[(-180.0 * N[ArcTan[N[(N[(A + N[Sqrt[A ^ 2 + B ^ 2], $MachinePrecision]), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], N[(180.0 / N[(Pi / N[ArcTan[N[(N[(-0.5 * N[(B / C), $MachinePrecision]), $MachinePrecision] + N[(N[(A - A), $MachinePrecision] / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;C \leq -1.5 \cdot 10^{-177}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{C - \left(A + \mathsf{hypot}\left(B, A\right)\right)}{B}\right)}{\pi}\\
\mathbf{elif}\;C \leq 1.15 \cdot 10^{+72}:\\
\;\;\;\;\frac{-180 \cdot \tan^{-1} \left(\frac{A + \mathsf{hypot}\left(A, B\right)}{B}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;\frac{180}{\frac{\pi}{\tan^{-1} \left(-0.5 \cdot \frac{B}{C} + \frac{A - A}{B}\right)}}\\
\end{array}
\end{array}
if C < -1.50000000000000004e-177Initial program 76.7%
Simplified88.7%
Taylor expanded in C around 0 76.3%
+-commutative76.3%
unpow276.3%
unpow276.3%
hypot-define88.0%
Simplified88.0%
if -1.50000000000000004e-177 < C < 1.15e72Initial program 45.1%
Taylor expanded in C around 0 44.7%
associate-*r/44.7%
mul-1-neg44.7%
+-commutative44.7%
unpow244.7%
unpow244.7%
hypot-define75.9%
Simplified75.9%
associate-*r/75.9%
distribute-frac-neg75.9%
atan-neg75.9%
Applied egg-rr75.9%
distribute-rgt-neg-out75.9%
distribute-lft-neg-in75.9%
metadata-eval75.9%
hypot-undefine44.7%
unpow244.7%
unpow244.7%
+-commutative44.7%
unpow244.7%
unpow244.7%
hypot-define75.9%
Simplified75.9%
if 1.15e72 < C Initial program 14.2%
Applied egg-rr56.5%
Taylor expanded in C around inf 76.2%
Final simplification80.8%
(FPCore (A B C)
:precision binary64
(if (<= C -1.5e-54)
(* 180.0 (/ (atan (/ (- C (hypot B C)) B)) PI))
(if (<= C 7e+59)
(/ (* -180.0 (atan (/ (+ A (hypot A B)) B))) PI)
(/ 180.0 (/ PI (atan (+ (* -0.5 (/ B C)) (/ (- A A) B))))))))
double code(double A, double B, double C) {
double tmp;
if (C <= -1.5e-54) {
tmp = 180.0 * (atan(((C - hypot(B, C)) / B)) / ((double) M_PI));
} else if (C <= 7e+59) {
tmp = (-180.0 * atan(((A + hypot(A, B)) / B))) / ((double) M_PI);
} else {
tmp = 180.0 / (((double) M_PI) / atan(((-0.5 * (B / C)) + ((A - A) / B))));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (C <= -1.5e-54) {
tmp = 180.0 * (Math.atan(((C - Math.hypot(B, C)) / B)) / Math.PI);
} else if (C <= 7e+59) {
tmp = (-180.0 * Math.atan(((A + Math.hypot(A, B)) / B))) / Math.PI;
} else {
tmp = 180.0 / (Math.PI / Math.atan(((-0.5 * (B / C)) + ((A - A) / B))));
}
return tmp;
}
def code(A, B, C): tmp = 0 if C <= -1.5e-54: tmp = 180.0 * (math.atan(((C - math.hypot(B, C)) / B)) / math.pi) elif C <= 7e+59: tmp = (-180.0 * math.atan(((A + math.hypot(A, B)) / B))) / math.pi else: tmp = 180.0 / (math.pi / math.atan(((-0.5 * (B / C)) + ((A - A) / B)))) return tmp
function code(A, B, C) tmp = 0.0 if (C <= -1.5e-54) tmp = Float64(180.0 * Float64(atan(Float64(Float64(C - hypot(B, C)) / B)) / pi)); elseif (C <= 7e+59) tmp = Float64(Float64(-180.0 * atan(Float64(Float64(A + hypot(A, B)) / B))) / pi); else tmp = Float64(180.0 / Float64(pi / atan(Float64(Float64(-0.5 * Float64(B / C)) + Float64(Float64(A - A) / B))))); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (C <= -1.5e-54) tmp = 180.0 * (atan(((C - hypot(B, C)) / B)) / pi); elseif (C <= 7e+59) tmp = (-180.0 * atan(((A + hypot(A, B)) / B))) / pi; else tmp = 180.0 / (pi / atan(((-0.5 * (B / C)) + ((A - A) / B)))); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[C, -1.5e-54], 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[C, 7e+59], N[(N[(-180.0 * N[ArcTan[N[(N[(A + N[Sqrt[A ^ 2 + B ^ 2], $MachinePrecision]), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], N[(180.0 / N[(Pi / N[ArcTan[N[(N[(-0.5 * N[(B / C), $MachinePrecision]), $MachinePrecision] + N[(N[(A - A), $MachinePrecision] / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;C \leq -1.5 \cdot 10^{-54}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{C - \mathsf{hypot}\left(B, C\right)}{B}\right)}{\pi}\\
\mathbf{elif}\;C \leq 7 \cdot 10^{+59}:\\
\;\;\;\;\frac{-180 \cdot \tan^{-1} \left(\frac{A + \mathsf{hypot}\left(A, B\right)}{B}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;\frac{180}{\frac{\pi}{\tan^{-1} \left(-0.5 \cdot \frac{B}{C} + \frac{A - A}{B}\right)}}\\
\end{array}
\end{array}
if C < -1.50000000000000005e-54Initial program 82.6%
Taylor expanded in A around 0 82.6%
unpow282.6%
unpow282.6%
hypot-define90.2%
Simplified90.2%
if -1.50000000000000005e-54 < C < 7e59Initial program 46.5%
Taylor expanded in C around 0 45.4%
associate-*r/45.4%
mul-1-neg45.4%
+-commutative45.4%
unpow245.4%
unpow245.4%
hypot-define75.1%
Simplified75.1%
associate-*r/75.1%
distribute-frac-neg75.1%
atan-neg75.1%
Applied egg-rr75.1%
distribute-rgt-neg-out75.1%
distribute-lft-neg-in75.1%
metadata-eval75.1%
hypot-undefine45.4%
unpow245.4%
unpow245.4%
+-commutative45.4%
unpow245.4%
unpow245.4%
hypot-define75.1%
Simplified75.1%
if 7e59 < C Initial program 14.2%
Applied egg-rr56.5%
Taylor expanded in C around inf 76.2%
Final simplification80.2%
(FPCore (A B C)
:precision binary64
(if (<= C -4.9e-54)
(* 180.0 (/ (atan (/ (- C (hypot B C)) B)) PI))
(if (<= C 4.8e+77)
(* -180.0 (/ (atan (/ (+ A (hypot A B)) B)) PI))
(/ 180.0 (/ PI (atan (+ (* -0.5 (/ B C)) (/ (- A A) B))))))))
double code(double A, double B, double C) {
double tmp;
if (C <= -4.9e-54) {
tmp = 180.0 * (atan(((C - hypot(B, C)) / B)) / ((double) M_PI));
} else if (C <= 4.8e+77) {
tmp = -180.0 * (atan(((A + hypot(A, B)) / B)) / ((double) M_PI));
} else {
tmp = 180.0 / (((double) M_PI) / atan(((-0.5 * (B / C)) + ((A - A) / B))));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (C <= -4.9e-54) {
tmp = 180.0 * (Math.atan(((C - Math.hypot(B, C)) / B)) / Math.PI);
} else if (C <= 4.8e+77) {
tmp = -180.0 * (Math.atan(((A + Math.hypot(A, B)) / B)) / Math.PI);
} else {
tmp = 180.0 / (Math.PI / Math.atan(((-0.5 * (B / C)) + ((A - A) / B))));
}
return tmp;
}
def code(A, B, C): tmp = 0 if C <= -4.9e-54: tmp = 180.0 * (math.atan(((C - math.hypot(B, C)) / B)) / math.pi) elif C <= 4.8e+77: tmp = -180.0 * (math.atan(((A + math.hypot(A, B)) / B)) / math.pi) else: tmp = 180.0 / (math.pi / math.atan(((-0.5 * (B / C)) + ((A - A) / B)))) return tmp
function code(A, B, C) tmp = 0.0 if (C <= -4.9e-54) tmp = Float64(180.0 * Float64(atan(Float64(Float64(C - hypot(B, C)) / B)) / pi)); elseif (C <= 4.8e+77) tmp = Float64(-180.0 * Float64(atan(Float64(Float64(A + hypot(A, B)) / B)) / pi)); else tmp = Float64(180.0 / Float64(pi / atan(Float64(Float64(-0.5 * Float64(B / C)) + Float64(Float64(A - A) / B))))); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (C <= -4.9e-54) tmp = 180.0 * (atan(((C - hypot(B, C)) / B)) / pi); elseif (C <= 4.8e+77) tmp = -180.0 * (atan(((A + hypot(A, B)) / B)) / pi); else tmp = 180.0 / (pi / atan(((-0.5 * (B / C)) + ((A - A) / B)))); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[C, -4.9e-54], 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[C, 4.8e+77], N[(-180.0 * N[(N[ArcTan[N[(N[(A + N[Sqrt[A ^ 2 + B ^ 2], $MachinePrecision]), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 / N[(Pi / N[ArcTan[N[(N[(-0.5 * N[(B / C), $MachinePrecision]), $MachinePrecision] + N[(N[(A - A), $MachinePrecision] / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;C \leq -4.9 \cdot 10^{-54}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{C - \mathsf{hypot}\left(B, C\right)}{B}\right)}{\pi}\\
\mathbf{elif}\;C \leq 4.8 \cdot 10^{+77}:\\
\;\;\;\;-180 \cdot \frac{\tan^{-1} \left(\frac{A + \mathsf{hypot}\left(A, B\right)}{B}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;\frac{180}{\frac{\pi}{\tan^{-1} \left(-0.5 \cdot \frac{B}{C} + \frac{A - A}{B}\right)}}\\
\end{array}
\end{array}
if C < -4.90000000000000021e-54Initial program 82.6%
Taylor expanded in A around 0 82.6%
unpow282.6%
unpow282.6%
hypot-define90.2%
Simplified90.2%
if -4.90000000000000021e-54 < C < 4.7999999999999997e77Initial program 46.5%
Taylor expanded in C around 0 45.4%
associate-*r/45.4%
mul-1-neg45.4%
+-commutative45.4%
unpow245.4%
unpow245.4%
hypot-define75.1%
Simplified75.1%
associate-*r/75.1%
distribute-frac-neg75.1%
atan-neg75.1%
Applied egg-rr75.1%
distribute-rgt-neg-out75.1%
distribute-lft-neg-in75.1%
metadata-eval75.1%
hypot-undefine45.4%
unpow245.4%
unpow245.4%
+-commutative45.4%
unpow245.4%
unpow245.4%
hypot-define75.1%
Simplified75.1%
Taylor expanded in A around 0 45.4%
unpow245.4%
unpow245.4%
hypot-undefine75.1%
Simplified75.1%
if 4.7999999999999997e77 < C Initial program 14.2%
Applied egg-rr56.5%
Taylor expanded in C around inf 76.2%
Final simplification80.1%
(FPCore (A B C)
:precision binary64
(if (<= C -1.1e+72)
(/ 180.0 (/ PI (atan (+ -1.0 (/ C B)))))
(if (<= C 9.2e+58)
(* -180.0 (/ (atan (/ (+ A (hypot A B)) B)) PI))
(/ 180.0 (/ PI (atan (+ (* -0.5 (/ B C)) (/ (- A A) B))))))))
double code(double A, double B, double C) {
double tmp;
if (C <= -1.1e+72) {
tmp = 180.0 / (((double) M_PI) / atan((-1.0 + (C / B))));
} else if (C <= 9.2e+58) {
tmp = -180.0 * (atan(((A + hypot(A, B)) / B)) / ((double) M_PI));
} else {
tmp = 180.0 / (((double) M_PI) / atan(((-0.5 * (B / C)) + ((A - A) / B))));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (C <= -1.1e+72) {
tmp = 180.0 / (Math.PI / Math.atan((-1.0 + (C / B))));
} else if (C <= 9.2e+58) {
tmp = -180.0 * (Math.atan(((A + Math.hypot(A, B)) / B)) / Math.PI);
} else {
tmp = 180.0 / (Math.PI / Math.atan(((-0.5 * (B / C)) + ((A - A) / B))));
}
return tmp;
}
def code(A, B, C): tmp = 0 if C <= -1.1e+72: tmp = 180.0 / (math.pi / math.atan((-1.0 + (C / B)))) elif C <= 9.2e+58: tmp = -180.0 * (math.atan(((A + math.hypot(A, B)) / B)) / math.pi) else: tmp = 180.0 / (math.pi / math.atan(((-0.5 * (B / C)) + ((A - A) / B)))) return tmp
function code(A, B, C) tmp = 0.0 if (C <= -1.1e+72) tmp = Float64(180.0 / Float64(pi / atan(Float64(-1.0 + Float64(C / B))))); elseif (C <= 9.2e+58) tmp = Float64(-180.0 * Float64(atan(Float64(Float64(A + hypot(A, B)) / B)) / pi)); else tmp = Float64(180.0 / Float64(pi / atan(Float64(Float64(-0.5 * Float64(B / C)) + Float64(Float64(A - A) / B))))); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (C <= -1.1e+72) tmp = 180.0 / (pi / atan((-1.0 + (C / B)))); elseif (C <= 9.2e+58) tmp = -180.0 * (atan(((A + hypot(A, B)) / B)) / pi); else tmp = 180.0 / (pi / atan(((-0.5 * (B / C)) + ((A - A) / B)))); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[C, -1.1e+72], N[(180.0 / N[(Pi / N[ArcTan[N[(-1.0 + N[(C / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[C, 9.2e+58], N[(-180.0 * N[(N[ArcTan[N[(N[(A + N[Sqrt[A ^ 2 + B ^ 2], $MachinePrecision]), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 / N[(Pi / N[ArcTan[N[(N[(-0.5 * N[(B / C), $MachinePrecision]), $MachinePrecision] + N[(N[(A - A), $MachinePrecision] / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;C \leq -1.1 \cdot 10^{+72}:\\
\;\;\;\;\frac{180}{\frac{\pi}{\tan^{-1} \left(-1 + \frac{C}{B}\right)}}\\
\mathbf{elif}\;C \leq 9.2 \cdot 10^{+58}:\\
\;\;\;\;-180 \cdot \frac{\tan^{-1} \left(\frac{A + \mathsf{hypot}\left(A, B\right)}{B}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;\frac{180}{\frac{\pi}{\tan^{-1} \left(-0.5 \cdot \frac{B}{C} + \frac{A - A}{B}\right)}}\\
\end{array}
\end{array}
if C < -1.1e72Initial program 90.2%
Applied egg-rr97.5%
Taylor expanded in B around inf 88.8%
Taylor expanded in A around 0 94.3%
if -1.1e72 < C < 9.2000000000000001e58Initial program 50.1%
Taylor expanded in C around 0 46.6%
associate-*r/46.6%
mul-1-neg46.6%
+-commutative46.6%
unpow246.6%
unpow246.6%
hypot-define75.0%
Simplified75.0%
associate-*r/75.0%
distribute-frac-neg75.0%
atan-neg75.0%
Applied egg-rr75.0%
distribute-rgt-neg-out75.0%
distribute-lft-neg-in75.0%
metadata-eval75.0%
hypot-undefine46.6%
unpow246.6%
unpow246.6%
+-commutative46.6%
unpow246.6%
unpow246.6%
hypot-define75.0%
Simplified75.0%
Taylor expanded in A around 0 46.6%
unpow246.6%
unpow246.6%
hypot-undefine75.0%
Simplified75.0%
if 9.2000000000000001e58 < C Initial program 14.2%
Applied egg-rr56.5%
Taylor expanded in C around inf 76.2%
Final simplification79.4%
(FPCore (A B C) :precision binary64 (if (<= C 3.6e+65) (* 180.0 (/ (atan (/ (- (- C A) (hypot B (- A C))) B)) PI)) (/ 180.0 (/ PI (atan (+ (* -0.5 (/ B C)) (/ (- A A) B)))))))
double code(double A, double B, double C) {
double tmp;
if (C <= 3.6e+65) {
tmp = 180.0 * (atan((((C - A) - hypot(B, (A - C))) / B)) / ((double) M_PI));
} else {
tmp = 180.0 / (((double) M_PI) / atan(((-0.5 * (B / C)) + ((A - A) / B))));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (C <= 3.6e+65) {
tmp = 180.0 * (Math.atan((((C - A) - Math.hypot(B, (A - C))) / B)) / Math.PI);
} else {
tmp = 180.0 / (Math.PI / Math.atan(((-0.5 * (B / C)) + ((A - A) / B))));
}
return tmp;
}
def code(A, B, C): tmp = 0 if C <= 3.6e+65: tmp = 180.0 * (math.atan((((C - A) - math.hypot(B, (A - C))) / B)) / math.pi) else: tmp = 180.0 / (math.pi / math.atan(((-0.5 * (B / C)) + ((A - A) / B)))) return tmp
function code(A, B, C) tmp = 0.0 if (C <= 3.6e+65) tmp = Float64(180.0 * Float64(atan(Float64(Float64(Float64(C - A) - hypot(B, Float64(A - C))) / B)) / pi)); else tmp = Float64(180.0 / Float64(pi / atan(Float64(Float64(-0.5 * Float64(B / C)) + Float64(Float64(A - A) / B))))); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (C <= 3.6e+65) tmp = 180.0 * (atan((((C - A) - hypot(B, (A - C))) / B)) / pi); else tmp = 180.0 / (pi / atan(((-0.5 * (B / C)) + ((A - A) / B)))); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[C, 3.6e+65], N[(180.0 * N[(N[ArcTan[N[(N[(N[(C - A), $MachinePrecision] - N[Sqrt[B ^ 2 + N[(A - C), $MachinePrecision] ^ 2], $MachinePrecision]), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 / N[(Pi / N[ArcTan[N[(N[(-0.5 * N[(B / C), $MachinePrecision]), $MachinePrecision] + N[(N[(A - A), $MachinePrecision] / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;C \leq 3.6 \cdot 10^{+65}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{\left(C - A\right) - \mathsf{hypot}\left(B, A - C\right)}{B}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;\frac{180}{\frac{\pi}{\tan^{-1} \left(-0.5 \cdot \frac{B}{C} + \frac{A - A}{B}\right)}}\\
\end{array}
\end{array}
if C < 3.59999999999999978e65Initial program 60.7%
associate-*l/60.7%
*-lft-identity60.7%
+-commutative60.7%
unpow260.7%
unpow260.7%
hypot-define83.8%
Simplified83.8%
if 3.59999999999999978e65 < C Initial program 14.2%
Applied egg-rr56.5%
Taylor expanded in C around inf 76.2%
Final simplification82.4%
(FPCore (A B C) :precision binary64 (if (<= A -3.5e-34) (/ (* 180.0 (atan (/ (* -0.5 (+ B (* B (/ C A)))) (- 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 <= -3.5e-34) {
tmp = (180.0 * atan(((-0.5 * (B + (B * (C / A)))) / -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 <= -3.5e-34) {
tmp = (180.0 * Math.atan(((-0.5 * (B + (B * (C / A)))) / -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 <= -3.5e-34: tmp = (180.0 * math.atan(((-0.5 * (B + (B * (C / A)))) / -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 <= -3.5e-34) tmp = Float64(Float64(180.0 * atan(Float64(Float64(-0.5 * Float64(B + Float64(B * Float64(C / A)))) / Float64(-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 <= -3.5e-34) tmp = (180.0 * atan(((-0.5 * (B + (B * (C / A)))) / -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, -3.5e-34], N[(N[(180.0 * N[ArcTan[N[(N[(-0.5 * N[(B + N[(B * N[(C / A), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / (-A)), $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 -3.5 \cdot 10^{-34}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{-0.5 \cdot \left(B + B \cdot \frac{C}{A}\right)}{-A}\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 < -3.5e-34Initial program 29.8%
associate-*r/29.8%
associate-*l/29.8%
*-un-lft-identity29.8%
unpow229.8%
unpow229.8%
hypot-define56.1%
Applied egg-rr56.1%
Taylor expanded in A around -inf 68.8%
mul-1-neg68.8%
distribute-neg-frac268.8%
distribute-lft-out68.8%
associate-/l*68.8%
Simplified68.8%
if -3.5e-34 < A Initial program 60.2%
Simplified87.0%
(FPCore (A B C) :precision binary64 (if (<= C 3.3e+65) (/ (* 180.0 (atan (/ (- (- C A) (hypot B A)) B))) PI) (/ 180.0 (/ PI (atan (+ (* -0.5 (/ B C)) (/ (- A A) B)))))))
double code(double A, double B, double C) {
double tmp;
if (C <= 3.3e+65) {
tmp = (180.0 * atan((((C - A) - hypot(B, A)) / B))) / ((double) M_PI);
} else {
tmp = 180.0 / (((double) M_PI) / atan(((-0.5 * (B / C)) + ((A - A) / B))));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (C <= 3.3e+65) {
tmp = (180.0 * Math.atan((((C - A) - Math.hypot(B, A)) / B))) / Math.PI;
} else {
tmp = 180.0 / (Math.PI / Math.atan(((-0.5 * (B / C)) + ((A - A) / B))));
}
return tmp;
}
def code(A, B, C): tmp = 0 if C <= 3.3e+65: tmp = (180.0 * math.atan((((C - A) - math.hypot(B, A)) / B))) / math.pi else: tmp = 180.0 / (math.pi / math.atan(((-0.5 * (B / C)) + ((A - A) / B)))) return tmp
function code(A, B, C) tmp = 0.0 if (C <= 3.3e+65) tmp = Float64(Float64(180.0 * atan(Float64(Float64(Float64(C - A) - hypot(B, A)) / B))) / pi); else tmp = Float64(180.0 / Float64(pi / atan(Float64(Float64(-0.5 * Float64(B / C)) + Float64(Float64(A - A) / B))))); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (C <= 3.3e+65) tmp = (180.0 * atan((((C - A) - hypot(B, A)) / B))) / pi; else tmp = 180.0 / (pi / atan(((-0.5 * (B / C)) + ((A - A) / B)))); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[C, 3.3e+65], N[(N[(180.0 * N[ArcTan[N[(N[(N[(C - A), $MachinePrecision] - N[Sqrt[B ^ 2 + A ^ 2], $MachinePrecision]), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], N[(180.0 / N[(Pi / N[ArcTan[N[(N[(-0.5 * N[(B / C), $MachinePrecision]), $MachinePrecision] + N[(N[(A - A), $MachinePrecision] / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;C \leq 3.3 \cdot 10^{+65}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{\left(C - A\right) - \mathsf{hypot}\left(B, A\right)}{B}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;\frac{180}{\frac{\pi}{\tan^{-1} \left(-0.5 \cdot \frac{B}{C} + \frac{A - A}{B}\right)}}\\
\end{array}
\end{array}
if C < 3.30000000000000023e65Initial program 60.7%
Simplified79.7%
Taylor expanded in C around 0 59.8%
+-commutative59.8%
unpow259.8%
unpow259.8%
hypot-define78.9%
Simplified78.9%
associate-*r/78.9%
associate--r+83.1%
Applied egg-rr83.1%
if 3.30000000000000023e65 < C Initial program 14.2%
Applied egg-rr56.5%
Taylor expanded in C around inf 76.2%
Final simplification81.8%
(FPCore (A B C)
:precision binary64
(if (<= B -7.8e-67)
(* 180.0 (/ (atan (* (/ 1.0 B) (- B (- A C)))) PI))
(if (<= B -1.02e-253)
(/ (* 180.0 (atan (/ (* -0.5 (+ B (* B (/ C A)))) (- A)))) PI)
(/ 180.0 (/ PI (atan (- -1.0 (/ (- A C) B))))))))
double code(double A, double B, double C) {
double tmp;
if (B <= -7.8e-67) {
tmp = 180.0 * (atan(((1.0 / B) * (B - (A - C)))) / ((double) M_PI));
} else if (B <= -1.02e-253) {
tmp = (180.0 * atan(((-0.5 * (B + (B * (C / A)))) / -A))) / ((double) M_PI);
} else {
tmp = 180.0 / (((double) M_PI) / atan((-1.0 - ((A - C) / B))));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (B <= -7.8e-67) {
tmp = 180.0 * (Math.atan(((1.0 / B) * (B - (A - C)))) / Math.PI);
} else if (B <= -1.02e-253) {
tmp = (180.0 * Math.atan(((-0.5 * (B + (B * (C / A)))) / -A))) / Math.PI;
} else {
tmp = 180.0 / (Math.PI / Math.atan((-1.0 - ((A - C) / B))));
}
return tmp;
}
def code(A, B, C): tmp = 0 if B <= -7.8e-67: tmp = 180.0 * (math.atan(((1.0 / B) * (B - (A - C)))) / math.pi) elif B <= -1.02e-253: tmp = (180.0 * math.atan(((-0.5 * (B + (B * (C / A)))) / -A))) / math.pi else: tmp = 180.0 / (math.pi / math.atan((-1.0 - ((A - C) / B)))) return tmp
function code(A, B, C) tmp = 0.0 if (B <= -7.8e-67) tmp = Float64(180.0 * Float64(atan(Float64(Float64(1.0 / B) * Float64(B - Float64(A - C)))) / pi)); elseif (B <= -1.02e-253) tmp = Float64(Float64(180.0 * atan(Float64(Float64(-0.5 * Float64(B + Float64(B * Float64(C / A)))) / Float64(-A)))) / pi); else tmp = Float64(180.0 / Float64(pi / atan(Float64(-1.0 - Float64(Float64(A - C) / B))))); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (B <= -7.8e-67) tmp = 180.0 * (atan(((1.0 / B) * (B - (A - C)))) / pi); elseif (B <= -1.02e-253) tmp = (180.0 * atan(((-0.5 * (B + (B * (C / A)))) / -A))) / pi; else tmp = 180.0 / (pi / atan((-1.0 - ((A - C) / B)))); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[B, -7.8e-67], N[(180.0 * N[(N[ArcTan[N[(N[(1.0 / B), $MachinePrecision] * N[(B - N[(A - C), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -1.02e-253], N[(N[(180.0 * N[ArcTan[N[(N[(-0.5 * N[(B + N[(B * N[(C / A), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / (-A)), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision], N[(180.0 / N[(Pi / N[ArcTan[N[(-1.0 - N[(N[(A - C), $MachinePrecision] / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;B \leq -7.8 \cdot 10^{-67}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(B - \left(A - C\right)\right)\right)}{\pi}\\
\mathbf{elif}\;B \leq -1.02 \cdot 10^{-253}:\\
\;\;\;\;\frac{180 \cdot \tan^{-1} \left(\frac{-0.5 \cdot \left(B + B \cdot \frac{C}{A}\right)}{-A}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;\frac{180}{\frac{\pi}{\tan^{-1} \left(-1 - \frac{A - C}{B}\right)}}\\
\end{array}
\end{array}
if B < -7.7999999999999997e-67Initial program 49.8%
Taylor expanded in B around -inf 74.9%
neg-mul-174.9%
Simplified74.9%
if -7.7999999999999997e-67 < B < -1.02e-253Initial program 39.2%
associate-*r/39.2%
associate-*l/39.2%
*-un-lft-identity39.2%
unpow239.2%
unpow239.2%
hypot-define63.6%
Applied egg-rr63.6%
Taylor expanded in A around -inf 52.9%
mul-1-neg52.9%
distribute-neg-frac252.9%
distribute-lft-out52.9%
associate-/l*52.9%
Simplified52.9%
if -1.02e-253 < B Initial program 56.0%
Applied egg-rr82.8%
Taylor expanded in B around inf 67.2%
div-inv67.2%
associate--r+67.2%
Applied egg-rr67.2%
Taylor expanded in C around 0 67.2%
Simplified69.2%
Final simplification68.6%
(FPCore (A B C)
:precision binary64
(if (<= B -5.3e-67)
(* 180.0 (/ (atan (* (/ 1.0 B) (- B (- A C)))) PI))
(if (<= B -5.4e-254)
(* 180.0 (/ (atan (/ (* -0.5 (+ B (* B (/ C A)))) (- A))) PI))
(/ 180.0 (/ PI (atan (- -1.0 (/ (- A C) B))))))))
double code(double A, double B, double C) {
double tmp;
if (B <= -5.3e-67) {
tmp = 180.0 * (atan(((1.0 / B) * (B - (A - C)))) / ((double) M_PI));
} else if (B <= -5.4e-254) {
tmp = 180.0 * (atan(((-0.5 * (B + (B * (C / A)))) / -A)) / ((double) M_PI));
} else {
tmp = 180.0 / (((double) M_PI) / atan((-1.0 - ((A - C) / B))));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (B <= -5.3e-67) {
tmp = 180.0 * (Math.atan(((1.0 / B) * (B - (A - C)))) / Math.PI);
} else if (B <= -5.4e-254) {
tmp = 180.0 * (Math.atan(((-0.5 * (B + (B * (C / A)))) / -A)) / Math.PI);
} else {
tmp = 180.0 / (Math.PI / Math.atan((-1.0 - ((A - C) / B))));
}
return tmp;
}
def code(A, B, C): tmp = 0 if B <= -5.3e-67: tmp = 180.0 * (math.atan(((1.0 / B) * (B - (A - C)))) / math.pi) elif B <= -5.4e-254: tmp = 180.0 * (math.atan(((-0.5 * (B + (B * (C / A)))) / -A)) / math.pi) else: tmp = 180.0 / (math.pi / math.atan((-1.0 - ((A - C) / B)))) return tmp
function code(A, B, C) tmp = 0.0 if (B <= -5.3e-67) tmp = Float64(180.0 * Float64(atan(Float64(Float64(1.0 / B) * Float64(B - Float64(A - C)))) / pi)); elseif (B <= -5.4e-254) tmp = Float64(180.0 * Float64(atan(Float64(Float64(-0.5 * Float64(B + Float64(B * Float64(C / A)))) / Float64(-A))) / pi)); else tmp = Float64(180.0 / Float64(pi / atan(Float64(-1.0 - Float64(Float64(A - C) / B))))); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (B <= -5.3e-67) tmp = 180.0 * (atan(((1.0 / B) * (B - (A - C)))) / pi); elseif (B <= -5.4e-254) tmp = 180.0 * (atan(((-0.5 * (B + (B * (C / A)))) / -A)) / pi); else tmp = 180.0 / (pi / atan((-1.0 - ((A - C) / B)))); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[B, -5.3e-67], N[(180.0 * N[(N[ArcTan[N[(N[(1.0 / B), $MachinePrecision] * N[(B - N[(A - C), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, -5.4e-254], N[(180.0 * N[(N[ArcTan[N[(N[(-0.5 * N[(B + N[(B * N[(C / A), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / (-A)), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 / N[(Pi / N[ArcTan[N[(-1.0 - N[(N[(A - C), $MachinePrecision] / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;B \leq -5.3 \cdot 10^{-67}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(B - \left(A - C\right)\right)\right)}{\pi}\\
\mathbf{elif}\;B \leq -5.4 \cdot 10^{-254}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{-0.5 \cdot \left(B + B \cdot \frac{C}{A}\right)}{-A}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;\frac{180}{\frac{\pi}{\tan^{-1} \left(-1 - \frac{A - C}{B}\right)}}\\
\end{array}
\end{array}
if B < -5.29999999999999971e-67Initial program 49.8%
Taylor expanded in B around -inf 74.9%
neg-mul-174.9%
Simplified74.9%
if -5.29999999999999971e-67 < B < -5.40000000000000013e-254Initial program 39.2%
Taylor expanded in A around -inf 52.7%
associate-*r/52.7%
mul-1-neg52.7%
distribute-lft-out52.7%
associate-/l*52.7%
Simplified52.7%
if -5.40000000000000013e-254 < B Initial program 56.0%
Applied egg-rr82.8%
Taylor expanded in B around inf 67.2%
div-inv67.2%
associate--r+67.2%
Applied egg-rr67.2%
Taylor expanded in C around 0 67.2%
Simplified69.2%
Final simplification68.6%
(FPCore (A B C)
:precision binary64
(if (<= C -28500.0)
(/ 180.0 (/ PI (atan (+ -1.0 (/ C B)))))
(if (<= C 5.5e-245)
(* 180.0 (/ (atan (+ 1.0 (/ (- C A) B))) PI))
(if (<= C 6e-55)
(/ 180.0 (/ PI (atan (- -1.0 (/ A B)))))
(* 180.0 (/ (atan (* -0.5 (/ B C))) PI))))))
double code(double A, double B, double C) {
double tmp;
if (C <= -28500.0) {
tmp = 180.0 / (((double) M_PI) / atan((-1.0 + (C / B))));
} else if (C <= 5.5e-245) {
tmp = 180.0 * (atan((1.0 + ((C - A) / B))) / ((double) M_PI));
} else if (C <= 6e-55) {
tmp = 180.0 / (((double) M_PI) / atan((-1.0 - (A / B))));
} else {
tmp = 180.0 * (atan((-0.5 * (B / C))) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (C <= -28500.0) {
tmp = 180.0 / (Math.PI / Math.atan((-1.0 + (C / B))));
} else if (C <= 5.5e-245) {
tmp = 180.0 * (Math.atan((1.0 + ((C - A) / B))) / Math.PI);
} else if (C <= 6e-55) {
tmp = 180.0 / (Math.PI / Math.atan((-1.0 - (A / B))));
} else {
tmp = 180.0 * (Math.atan((-0.5 * (B / C))) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if C <= -28500.0: tmp = 180.0 / (math.pi / math.atan((-1.0 + (C / B)))) elif C <= 5.5e-245: tmp = 180.0 * (math.atan((1.0 + ((C - A) / B))) / math.pi) elif C <= 6e-55: tmp = 180.0 / (math.pi / math.atan((-1.0 - (A / B)))) else: tmp = 180.0 * (math.atan((-0.5 * (B / C))) / math.pi) return tmp
function code(A, B, C) tmp = 0.0 if (C <= -28500.0) tmp = Float64(180.0 / Float64(pi / atan(Float64(-1.0 + Float64(C / B))))); elseif (C <= 5.5e-245) tmp = Float64(180.0 * Float64(atan(Float64(1.0 + Float64(Float64(C - A) / B))) / pi)); elseif (C <= 6e-55) tmp = Float64(180.0 / Float64(pi / atan(Float64(-1.0 - Float64(A / B))))); else tmp = Float64(180.0 * Float64(atan(Float64(-0.5 * Float64(B / C))) / pi)); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (C <= -28500.0) tmp = 180.0 / (pi / atan((-1.0 + (C / B)))); elseif (C <= 5.5e-245) tmp = 180.0 * (atan((1.0 + ((C - A) / B))) / pi); elseif (C <= 6e-55) tmp = 180.0 / (pi / atan((-1.0 - (A / B)))); else tmp = 180.0 * (atan((-0.5 * (B / C))) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[C, -28500.0], N[(180.0 / N[(Pi / N[ArcTan[N[(-1.0 + N[(C / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[C, 5.5e-245], N[(180.0 * N[(N[ArcTan[N[(1.0 + N[(N[(C - A), $MachinePrecision] / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[C, 6e-55], N[(180.0 / N[(Pi / N[ArcTan[N[(-1.0 - N[(A / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(-0.5 * N[(B / C), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;C \leq -28500:\\
\;\;\;\;\frac{180}{\frac{\pi}{\tan^{-1} \left(-1 + \frac{C}{B}\right)}}\\
\mathbf{elif}\;C \leq 5.5 \cdot 10^{-245}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 + \frac{C - A}{B}\right)}{\pi}\\
\mathbf{elif}\;C \leq 6 \cdot 10^{-55}:\\
\;\;\;\;\frac{180}{\frac{\pi}{\tan^{-1} \left(-1 - \frac{A}{B}\right)}}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(-0.5 \cdot \frac{B}{C}\right)}{\pi}\\
\end{array}
\end{array}
if C < -28500Initial program 87.4%
Applied egg-rr98.0%
Taylor expanded in B around inf 87.0%
Taylor expanded in A around 0 89.9%
if -28500 < C < 5.49999999999999962e-245Initial program 50.8%
Taylor expanded in B around -inf 55.3%
associate--l+55.3%
div-sub55.3%
Simplified55.3%
if 5.49999999999999962e-245 < C < 6.00000000000000033e-55Initial program 52.5%
Applied egg-rr75.9%
Taylor expanded in B around inf 50.4%
Taylor expanded in C around 0 49.7%
neg-mul-149.7%
distribute-neg-in49.7%
metadata-eval49.7%
unsub-neg49.7%
Simplified49.7%
if 6.00000000000000033e-55 < C Initial program 18.2%
Taylor expanded in C around inf 54.0%
distribute-rgt1-in54.0%
metadata-eval54.0%
associate-*r/54.0%
Simplified54.0%
Taylor expanded in B around 0 66.2%
Final simplification66.9%
(FPCore (A B C)
:precision binary64
(if (<= C -3.8e-59)
(/ 180.0 (/ PI (atan (+ -1.0 (/ C B)))))
(if (<= C 5.2e-245)
(* 180.0 (/ (atan (- 1.0 (/ A B))) PI))
(if (<= C 3.3e-51)
(/ 180.0 (/ PI (atan (- -1.0 (/ A B)))))
(* 180.0 (/ (atan (* -0.5 (/ B C))) PI))))))
double code(double A, double B, double C) {
double tmp;
if (C <= -3.8e-59) {
tmp = 180.0 / (((double) M_PI) / atan((-1.0 + (C / B))));
} else if (C <= 5.2e-245) {
tmp = 180.0 * (atan((1.0 - (A / B))) / ((double) M_PI));
} else if (C <= 3.3e-51) {
tmp = 180.0 / (((double) M_PI) / atan((-1.0 - (A / B))));
} else {
tmp = 180.0 * (atan((-0.5 * (B / C))) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (C <= -3.8e-59) {
tmp = 180.0 / (Math.PI / Math.atan((-1.0 + (C / B))));
} else if (C <= 5.2e-245) {
tmp = 180.0 * (Math.atan((1.0 - (A / B))) / Math.PI);
} else if (C <= 3.3e-51) {
tmp = 180.0 / (Math.PI / Math.atan((-1.0 - (A / B))));
} else {
tmp = 180.0 * (Math.atan((-0.5 * (B / C))) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if C <= -3.8e-59: tmp = 180.0 / (math.pi / math.atan((-1.0 + (C / B)))) elif C <= 5.2e-245: tmp = 180.0 * (math.atan((1.0 - (A / B))) / math.pi) elif C <= 3.3e-51: tmp = 180.0 / (math.pi / math.atan((-1.0 - (A / B)))) else: tmp = 180.0 * (math.atan((-0.5 * (B / C))) / math.pi) return tmp
function code(A, B, C) tmp = 0.0 if (C <= -3.8e-59) tmp = Float64(180.0 / Float64(pi / atan(Float64(-1.0 + Float64(C / B))))); elseif (C <= 5.2e-245) tmp = Float64(180.0 * Float64(atan(Float64(1.0 - Float64(A / B))) / pi)); elseif (C <= 3.3e-51) tmp = Float64(180.0 / Float64(pi / atan(Float64(-1.0 - Float64(A / B))))); else tmp = Float64(180.0 * Float64(atan(Float64(-0.5 * Float64(B / C))) / pi)); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (C <= -3.8e-59) tmp = 180.0 / (pi / atan((-1.0 + (C / B)))); elseif (C <= 5.2e-245) tmp = 180.0 * (atan((1.0 - (A / B))) / pi); elseif (C <= 3.3e-51) tmp = 180.0 / (pi / atan((-1.0 - (A / B)))); else tmp = 180.0 * (atan((-0.5 * (B / C))) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[C, -3.8e-59], N[(180.0 / N[(Pi / N[ArcTan[N[(-1.0 + N[(C / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[C, 5.2e-245], N[(180.0 * N[(N[ArcTan[N[(1.0 - N[(A / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[C, 3.3e-51], N[(180.0 / N[(Pi / N[ArcTan[N[(-1.0 - N[(A / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(-0.5 * N[(B / C), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;C \leq -3.8 \cdot 10^{-59}:\\
\;\;\;\;\frac{180}{\frac{\pi}{\tan^{-1} \left(-1 + \frac{C}{B}\right)}}\\
\mathbf{elif}\;C \leq 5.2 \cdot 10^{-245}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 - \frac{A}{B}\right)}{\pi}\\
\mathbf{elif}\;C \leq 3.3 \cdot 10^{-51}:\\
\;\;\;\;\frac{180}{\frac{\pi}{\tan^{-1} \left(-1 - \frac{A}{B}\right)}}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(-0.5 \cdot \frac{B}{C}\right)}{\pi}\\
\end{array}
\end{array}
if C < -3.79999999999999983e-59Initial program 81.9%
Applied egg-rr93.5%
Taylor expanded in B around inf 79.3%
Taylor expanded in A around 0 81.8%
if -3.79999999999999983e-59 < C < 5.20000000000000013e-245Initial program 50.1%
Taylor expanded in C around 0 47.8%
associate-*r/47.8%
mul-1-neg47.8%
+-commutative47.8%
unpow247.8%
unpow247.8%
hypot-define82.0%
Simplified82.0%
Taylor expanded in B around -inf 55.6%
mul-1-neg55.6%
sub-neg55.6%
Simplified55.6%
if 5.20000000000000013e-245 < C < 3.29999999999999973e-51Initial program 52.5%
Applied egg-rr75.9%
Taylor expanded in B around inf 50.4%
Taylor expanded in C around 0 49.7%
neg-mul-149.7%
distribute-neg-in49.7%
metadata-eval49.7%
unsub-neg49.7%
Simplified49.7%
if 3.29999999999999973e-51 < C Initial program 18.2%
Taylor expanded in C around inf 54.0%
distribute-rgt1-in54.0%
metadata-eval54.0%
associate-*r/54.0%
Simplified54.0%
Taylor expanded in B around 0 66.2%
Final simplification66.2%
(FPCore (A B C)
:precision binary64
(if (<= C -1e-58)
(* 180.0 (/ (atan (/ (- C B) B)) PI))
(if (<= C 2.5e-244)
(* 180.0 (/ (atan (- 1.0 (/ A B))) PI))
(if (<= C 2.3e-52)
(/ 180.0 (/ PI (atan (- -1.0 (/ A B)))))
(* 180.0 (/ (atan (* -0.5 (/ B C))) PI))))))
double code(double A, double B, double C) {
double tmp;
if (C <= -1e-58) {
tmp = 180.0 * (atan(((C - B) / B)) / ((double) M_PI));
} else if (C <= 2.5e-244) {
tmp = 180.0 * (atan((1.0 - (A / B))) / ((double) M_PI));
} else if (C <= 2.3e-52) {
tmp = 180.0 / (((double) M_PI) / atan((-1.0 - (A / B))));
} else {
tmp = 180.0 * (atan((-0.5 * (B / C))) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (C <= -1e-58) {
tmp = 180.0 * (Math.atan(((C - B) / B)) / Math.PI);
} else if (C <= 2.5e-244) {
tmp = 180.0 * (Math.atan((1.0 - (A / B))) / Math.PI);
} else if (C <= 2.3e-52) {
tmp = 180.0 / (Math.PI / Math.atan((-1.0 - (A / B))));
} else {
tmp = 180.0 * (Math.atan((-0.5 * (B / C))) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if C <= -1e-58: tmp = 180.0 * (math.atan(((C - B) / B)) / math.pi) elif C <= 2.5e-244: tmp = 180.0 * (math.atan((1.0 - (A / B))) / math.pi) elif C <= 2.3e-52: tmp = 180.0 / (math.pi / math.atan((-1.0 - (A / B)))) else: tmp = 180.0 * (math.atan((-0.5 * (B / C))) / math.pi) return tmp
function code(A, B, C) tmp = 0.0 if (C <= -1e-58) tmp = Float64(180.0 * Float64(atan(Float64(Float64(C - B) / B)) / pi)); elseif (C <= 2.5e-244) tmp = Float64(180.0 * Float64(atan(Float64(1.0 - Float64(A / B))) / pi)); elseif (C <= 2.3e-52) tmp = Float64(180.0 / Float64(pi / atan(Float64(-1.0 - Float64(A / B))))); else tmp = Float64(180.0 * Float64(atan(Float64(-0.5 * Float64(B / C))) / pi)); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (C <= -1e-58) tmp = 180.0 * (atan(((C - B) / B)) / pi); elseif (C <= 2.5e-244) tmp = 180.0 * (atan((1.0 - (A / B))) / pi); elseif (C <= 2.3e-52) tmp = 180.0 / (pi / atan((-1.0 - (A / B)))); else tmp = 180.0 * (atan((-0.5 * (B / C))) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[C, -1e-58], N[(180.0 * N[(N[ArcTan[N[(N[(C - B), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[C, 2.5e-244], N[(180.0 * N[(N[ArcTan[N[(1.0 - N[(A / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[C, 2.3e-52], N[(180.0 / N[(Pi / N[ArcTan[N[(-1.0 - N[(A / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(-0.5 * N[(B / C), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;C \leq -1 \cdot 10^{-58}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{C - B}{B}\right)}{\pi}\\
\mathbf{elif}\;C \leq 2.5 \cdot 10^{-244}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 - \frac{A}{B}\right)}{\pi}\\
\mathbf{elif}\;C \leq 2.3 \cdot 10^{-52}:\\
\;\;\;\;\frac{180}{\frac{\pi}{\tan^{-1} \left(-1 - \frac{A}{B}\right)}}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(-0.5 \cdot \frac{B}{C}\right)}{\pi}\\
\end{array}
\end{array}
if C < -1e-58Initial program 81.9%
Simplified90.9%
Taylor expanded in C around 0 81.3%
+-commutative81.3%
unpow281.3%
unpow281.3%
hypot-define90.0%
Simplified90.0%
Taylor expanded in A around 0 81.8%
if -1e-58 < C < 2.49999999999999999e-244Initial program 50.1%
Taylor expanded in C around 0 47.8%
associate-*r/47.8%
mul-1-neg47.8%
+-commutative47.8%
unpow247.8%
unpow247.8%
hypot-define82.0%
Simplified82.0%
Taylor expanded in B around -inf 55.6%
mul-1-neg55.6%
sub-neg55.6%
Simplified55.6%
if 2.49999999999999999e-244 < C < 2.29999999999999994e-52Initial program 52.5%
Applied egg-rr75.9%
Taylor expanded in B around inf 50.4%
Taylor expanded in C around 0 49.7%
neg-mul-149.7%
distribute-neg-in49.7%
metadata-eval49.7%
unsub-neg49.7%
Simplified49.7%
if 2.29999999999999994e-52 < C Initial program 18.2%
Taylor expanded in C around inf 54.0%
distribute-rgt1-in54.0%
metadata-eval54.0%
associate-*r/54.0%
Simplified54.0%
Taylor expanded in B around 0 66.2%
(FPCore (A B C)
:precision binary64
(if (<= C -7.4e-59)
(* 180.0 (/ (atan (/ (- C B) B)) PI))
(if (<= C 8.2e-69)
(* 180.0 (/ (atan (- 1.0 (/ A B))) PI))
(* 180.0 (/ (atan (* -0.5 (/ B C))) PI)))))
double code(double A, double B, double C) {
double tmp;
if (C <= -7.4e-59) {
tmp = 180.0 * (atan(((C - B) / B)) / ((double) M_PI));
} else if (C <= 8.2e-69) {
tmp = 180.0 * (atan((1.0 - (A / B))) / ((double) M_PI));
} else {
tmp = 180.0 * (atan((-0.5 * (B / C))) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (C <= -7.4e-59) {
tmp = 180.0 * (Math.atan(((C - B) / B)) / Math.PI);
} else if (C <= 8.2e-69) {
tmp = 180.0 * (Math.atan((1.0 - (A / B))) / Math.PI);
} else {
tmp = 180.0 * (Math.atan((-0.5 * (B / C))) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if C <= -7.4e-59: tmp = 180.0 * (math.atan(((C - B) / B)) / math.pi) elif C <= 8.2e-69: tmp = 180.0 * (math.atan((1.0 - (A / B))) / math.pi) else: tmp = 180.0 * (math.atan((-0.5 * (B / C))) / math.pi) return tmp
function code(A, B, C) tmp = 0.0 if (C <= -7.4e-59) tmp = Float64(180.0 * Float64(atan(Float64(Float64(C - B) / B)) / pi)); elseif (C <= 8.2e-69) tmp = Float64(180.0 * Float64(atan(Float64(1.0 - Float64(A / B))) / pi)); else tmp = Float64(180.0 * Float64(atan(Float64(-0.5 * Float64(B / C))) / pi)); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (C <= -7.4e-59) tmp = 180.0 * (atan(((C - B) / B)) / pi); elseif (C <= 8.2e-69) tmp = 180.0 * (atan((1.0 - (A / B))) / pi); else tmp = 180.0 * (atan((-0.5 * (B / C))) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[C, -7.4e-59], N[(180.0 * N[(N[ArcTan[N[(N[(C - B), $MachinePrecision] / B), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[C, 8.2e-69], 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[(-0.5 * N[(B / C), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;C \leq -7.4 \cdot 10^{-59}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{C - B}{B}\right)}{\pi}\\
\mathbf{elif}\;C \leq 8.2 \cdot 10^{-69}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 - \frac{A}{B}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(-0.5 \cdot \frac{B}{C}\right)}{\pi}\\
\end{array}
\end{array}
if C < -7.3999999999999998e-59Initial program 81.9%
Simplified90.9%
Taylor expanded in C around 0 81.3%
+-commutative81.3%
unpow281.3%
unpow281.3%
hypot-define90.0%
Simplified90.0%
Taylor expanded in A around 0 81.8%
if -7.3999999999999998e-59 < C < 8.1999999999999998e-69Initial program 51.7%
Taylor expanded in C around 0 50.3%
associate-*r/50.3%
mul-1-neg50.3%
+-commutative50.3%
unpow250.3%
unpow250.3%
hypot-define79.8%
Simplified79.8%
Taylor expanded in B around -inf 48.6%
mul-1-neg48.6%
sub-neg48.6%
Simplified48.6%
if 8.1999999999999998e-69 < C Initial program 18.0%
Taylor expanded in C around inf 52.9%
distribute-rgt1-in52.9%
metadata-eval52.9%
associate-*r/52.9%
Simplified52.9%
Taylor expanded in B around 0 64.7%
(FPCore (A B C)
:precision binary64
(if (<= C -3.3e-80)
(* 180.0 (/ (atan (+ 1.0 (/ C B))) PI))
(if (<= C 5.8e-70)
(* 180.0 (/ (atan (- 1.0 (/ A B))) PI))
(* 180.0 (/ (atan (* -0.5 (/ B C))) PI)))))
double code(double A, double B, double C) {
double tmp;
if (C <= -3.3e-80) {
tmp = 180.0 * (atan((1.0 + (C / B))) / ((double) M_PI));
} else if (C <= 5.8e-70) {
tmp = 180.0 * (atan((1.0 - (A / B))) / ((double) M_PI));
} else {
tmp = 180.0 * (atan((-0.5 * (B / C))) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (C <= -3.3e-80) {
tmp = 180.0 * (Math.atan((1.0 + (C / B))) / Math.PI);
} else if (C <= 5.8e-70) {
tmp = 180.0 * (Math.atan((1.0 - (A / B))) / Math.PI);
} else {
tmp = 180.0 * (Math.atan((-0.5 * (B / C))) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if C <= -3.3e-80: tmp = 180.0 * (math.atan((1.0 + (C / B))) / math.pi) elif C <= 5.8e-70: tmp = 180.0 * (math.atan((1.0 - (A / B))) / math.pi) else: tmp = 180.0 * (math.atan((-0.5 * (B / C))) / math.pi) return tmp
function code(A, B, C) tmp = 0.0 if (C <= -3.3e-80) tmp = Float64(180.0 * Float64(atan(Float64(1.0 + Float64(C / B))) / pi)); elseif (C <= 5.8e-70) tmp = Float64(180.0 * Float64(atan(Float64(1.0 - Float64(A / B))) / pi)); else tmp = Float64(180.0 * Float64(atan(Float64(-0.5 * Float64(B / C))) / pi)); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (C <= -3.3e-80) tmp = 180.0 * (atan((1.0 + (C / B))) / pi); elseif (C <= 5.8e-70) tmp = 180.0 * (atan((1.0 - (A / B))) / pi); else tmp = 180.0 * (atan((-0.5 * (B / C))) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[C, -3.3e-80], N[(180.0 * N[(N[ArcTan[N[(1.0 + N[(C / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[C, 5.8e-70], 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[(-0.5 * N[(B / C), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;C \leq -3.3 \cdot 10^{-80}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 + \frac{C}{B}\right)}{\pi}\\
\mathbf{elif}\;C \leq 5.8 \cdot 10^{-70}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 - \frac{A}{B}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(-0.5 \cdot \frac{B}{C}\right)}{\pi}\\
\end{array}
\end{array}
if C < -3.3e-80Initial program 80.6%
Taylor expanded in B around -inf 73.5%
associate--l+73.5%
div-sub77.0%
Simplified77.0%
Taylor expanded in C around inf 75.8%
if -3.3e-80 < C < 5.79999999999999943e-70Initial program 52.0%
Taylor expanded in C around 0 50.5%
associate-*r/50.5%
mul-1-neg50.5%
+-commutative50.5%
unpow250.5%
unpow250.5%
hypot-define79.5%
Simplified79.5%
Taylor expanded in B around -inf 48.0%
mul-1-neg48.0%
sub-neg48.0%
Simplified48.0%
if 5.79999999999999943e-70 < C Initial program 18.0%
Taylor expanded in C around inf 52.9%
distribute-rgt1-in52.9%
metadata-eval52.9%
associate-*r/52.9%
Simplified52.9%
Taylor expanded in B around 0 64.7%
(FPCore (A B C)
:precision binary64
(if (<= C -8.1e-32)
(* 180.0 (/ (atan (* 2.0 (/ C B))) PI))
(if (<= C 2.85e-300)
(* 180.0 (/ (atan 1.0) PI))
(* 180.0 (/ (atan (* -0.5 (/ B C))) PI)))))
double code(double A, double B, double C) {
double tmp;
if (C <= -8.1e-32) {
tmp = 180.0 * (atan((2.0 * (C / B))) / ((double) M_PI));
} else if (C <= 2.85e-300) {
tmp = 180.0 * (atan(1.0) / ((double) M_PI));
} else {
tmp = 180.0 * (atan((-0.5 * (B / C))) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (C <= -8.1e-32) {
tmp = 180.0 * (Math.atan((2.0 * (C / B))) / Math.PI);
} else if (C <= 2.85e-300) {
tmp = 180.0 * (Math.atan(1.0) / Math.PI);
} else {
tmp = 180.0 * (Math.atan((-0.5 * (B / C))) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if C <= -8.1e-32: tmp = 180.0 * (math.atan((2.0 * (C / B))) / math.pi) elif C <= 2.85e-300: tmp = 180.0 * (math.atan(1.0) / math.pi) else: tmp = 180.0 * (math.atan((-0.5 * (B / C))) / math.pi) return tmp
function code(A, B, C) tmp = 0.0 if (C <= -8.1e-32) tmp = Float64(180.0 * Float64(atan(Float64(2.0 * Float64(C / B))) / pi)); elseif (C <= 2.85e-300) tmp = Float64(180.0 * Float64(atan(1.0) / pi)); else tmp = Float64(180.0 * Float64(atan(Float64(-0.5 * Float64(B / C))) / pi)); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (C <= -8.1e-32) tmp = 180.0 * (atan((2.0 * (C / B))) / pi); elseif (C <= 2.85e-300) tmp = 180.0 * (atan(1.0) / pi); else tmp = 180.0 * (atan((-0.5 * (B / C))) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[C, -8.1e-32], N[(180.0 * N[(N[ArcTan[N[(2.0 * N[(C / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[C, 2.85e-300], N[(180.0 * N[(N[ArcTan[1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(-0.5 * N[(B / C), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;C \leq -8.1 \cdot 10^{-32}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(2 \cdot \frac{C}{B}\right)}{\pi}\\
\mathbf{elif}\;C \leq 2.85 \cdot 10^{-300}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} 1}{\pi}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(-0.5 \cdot \frac{B}{C}\right)}{\pi}\\
\end{array}
\end{array}
if C < -8.1e-32Initial program 86.1%
Taylor expanded in C around -inf 76.8%
if -8.1e-32 < C < 2.8499999999999999e-300Initial program 43.3%
Taylor expanded in B around -inf 33.4%
if 2.8499999999999999e-300 < C Initial program 34.6%
Taylor expanded in C around inf 42.2%
distribute-rgt1-in42.2%
metadata-eval42.2%
associate-*r/42.2%
Simplified42.2%
Taylor expanded in B around 0 52.1%
(FPCore (A B C)
:precision binary64
(if (<= C -1.5e-40)
(* (/ 180.0 PI) (atan (/ C B)))
(if (<= C 2.05e-298)
(* 180.0 (/ (atan 1.0) PI))
(* 180.0 (/ (atan (* -0.5 (/ B C))) PI)))))
double code(double A, double B, double C) {
double tmp;
if (C <= -1.5e-40) {
tmp = (180.0 / ((double) M_PI)) * atan((C / B));
} else if (C <= 2.05e-298) {
tmp = 180.0 * (atan(1.0) / ((double) M_PI));
} else {
tmp = 180.0 * (atan((-0.5 * (B / C))) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (C <= -1.5e-40) {
tmp = (180.0 / Math.PI) * Math.atan((C / B));
} else if (C <= 2.05e-298) {
tmp = 180.0 * (Math.atan(1.0) / Math.PI);
} else {
tmp = 180.0 * (Math.atan((-0.5 * (B / C))) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if C <= -1.5e-40: tmp = (180.0 / math.pi) * math.atan((C / B)) elif C <= 2.05e-298: tmp = 180.0 * (math.atan(1.0) / math.pi) else: tmp = 180.0 * (math.atan((-0.5 * (B / C))) / math.pi) return tmp
function code(A, B, C) tmp = 0.0 if (C <= -1.5e-40) tmp = Float64(Float64(180.0 / pi) * atan(Float64(C / B))); elseif (C <= 2.05e-298) tmp = Float64(180.0 * Float64(atan(1.0) / pi)); else tmp = Float64(180.0 * Float64(atan(Float64(-0.5 * Float64(B / C))) / pi)); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (C <= -1.5e-40) tmp = (180.0 / pi) * atan((C / B)); elseif (C <= 2.05e-298) tmp = 180.0 * (atan(1.0) / pi); else tmp = 180.0 * (atan((-0.5 * (B / C))) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[C, -1.5e-40], N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(C / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], If[LessEqual[C, 2.05e-298], N[(180.0 * N[(N[ArcTan[1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(-0.5 * N[(B / C), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;C \leq -1.5 \cdot 10^{-40}:\\
\;\;\;\;\frac{180}{\pi} \cdot \tan^{-1} \left(\frac{C}{B}\right)\\
\mathbf{elif}\;C \leq 2.05 \cdot 10^{-298}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} 1}{\pi}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(-0.5 \cdot \frac{B}{C}\right)}{\pi}\\
\end{array}
\end{array}
if C < -1.5000000000000001e-40Initial program 86.1%
Applied egg-rr96.7%
Taylor expanded in B around inf 83.8%
Taylor expanded in C around inf 76.5%
associate-/r/76.5%
Applied egg-rr76.5%
if -1.5000000000000001e-40 < C < 2.0499999999999999e-298Initial program 43.3%
Taylor expanded in B around -inf 33.4%
if 2.0499999999999999e-298 < C Initial program 34.6%
Taylor expanded in C around inf 42.2%
distribute-rgt1-in42.2%
metadata-eval42.2%
associate-*r/42.2%
Simplified42.2%
Taylor expanded in B around 0 52.1%
(FPCore (A B C) :precision binary64 (if (<= B -5e-215) (* 180.0 (/ (atan (* (/ 1.0 B) (- B (- A C)))) PI)) (/ 180.0 (/ PI (atan (- -1.0 (/ (- A C) B)))))))
double code(double A, double B, double C) {
double tmp;
if (B <= -5e-215) {
tmp = 180.0 * (atan(((1.0 / B) * (B - (A - C)))) / ((double) M_PI));
} else {
tmp = 180.0 / (((double) M_PI) / atan((-1.0 - ((A - C) / B))));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (B <= -5e-215) {
tmp = 180.0 * (Math.atan(((1.0 / B) * (B - (A - C)))) / Math.PI);
} else {
tmp = 180.0 / (Math.PI / Math.atan((-1.0 - ((A - C) / B))));
}
return tmp;
}
def code(A, B, C): tmp = 0 if B <= -5e-215: tmp = 180.0 * (math.atan(((1.0 / B) * (B - (A - C)))) / math.pi) else: tmp = 180.0 / (math.pi / math.atan((-1.0 - ((A - C) / B)))) return tmp
function code(A, B, C) tmp = 0.0 if (B <= -5e-215) tmp = Float64(180.0 * Float64(atan(Float64(Float64(1.0 / B) * Float64(B - Float64(A - C)))) / pi)); else tmp = Float64(180.0 / Float64(pi / atan(Float64(-1.0 - Float64(Float64(A - C) / B))))); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (B <= -5e-215) tmp = 180.0 * (atan(((1.0 / B) * (B - (A - C)))) / pi); else tmp = 180.0 / (pi / atan((-1.0 - ((A - C) / B)))); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[B, -5e-215], N[(180.0 * N[(N[ArcTan[N[(N[(1.0 / B), $MachinePrecision] * N[(B - N[(A - C), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 / N[(Pi / N[ArcTan[N[(-1.0 - N[(N[(A - C), $MachinePrecision] / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;B \leq -5 \cdot 10^{-215}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(\frac{1}{B} \cdot \left(B - \left(A - C\right)\right)\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;\frac{180}{\frac{\pi}{\tan^{-1} \left(-1 - \frac{A - C}{B}\right)}}\\
\end{array}
\end{array}
if B < -4.99999999999999956e-215Initial program 46.8%
Taylor expanded in B around -inf 66.5%
neg-mul-166.5%
Simplified66.5%
if -4.99999999999999956e-215 < B Initial program 55.2%
Applied egg-rr82.7%
Taylor expanded in B around inf 65.0%
div-inv65.0%
associate--r+65.0%
Applied egg-rr65.0%
Taylor expanded in C around 0 65.0%
Simplified66.9%
Final simplification66.7%
(FPCore (A B C)
:precision binary64
(if (<= B -9e-40)
(* 180.0 (/ (atan 1.0) PI))
(if (<= B 280.0)
(/ 180.0 (/ PI (atan (/ C B))))
(* 180.0 (/ (atan -1.0) PI)))))
double code(double A, double B, double C) {
double tmp;
if (B <= -9e-40) {
tmp = 180.0 * (atan(1.0) / ((double) M_PI));
} else if (B <= 280.0) {
tmp = 180.0 / (((double) M_PI) / atan((C / B)));
} else {
tmp = 180.0 * (atan(-1.0) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (B <= -9e-40) {
tmp = 180.0 * (Math.atan(1.0) / Math.PI);
} else if (B <= 280.0) {
tmp = 180.0 / (Math.PI / Math.atan((C / B)));
} else {
tmp = 180.0 * (Math.atan(-1.0) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if B <= -9e-40: tmp = 180.0 * (math.atan(1.0) / math.pi) elif B <= 280.0: tmp = 180.0 / (math.pi / math.atan((C / B))) else: tmp = 180.0 * (math.atan(-1.0) / math.pi) return tmp
function code(A, B, C) tmp = 0.0 if (B <= -9e-40) tmp = Float64(180.0 * Float64(atan(1.0) / pi)); elseif (B <= 280.0) tmp = Float64(180.0 / Float64(pi / atan(Float64(C / B)))); 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 <= -9e-40) tmp = 180.0 * (atan(1.0) / pi); elseif (B <= 280.0) tmp = 180.0 / (pi / atan((C / B))); else tmp = 180.0 * (atan(-1.0) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[B, -9e-40], N[(180.0 * N[(N[ArcTan[1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, 280.0], N[(180.0 / N[(Pi / N[ArcTan[N[(C / B), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[-1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;B \leq -9 \cdot 10^{-40}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} 1}{\pi}\\
\mathbf{elif}\;B \leq 280:\\
\;\;\;\;\frac{180}{\frac{\pi}{\tan^{-1} \left(\frac{C}{B}\right)}}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} -1}{\pi}\\
\end{array}
\end{array}
if B < -9.0000000000000002e-40Initial program 47.2%
Taylor expanded in B around -inf 58.6%
if -9.0000000000000002e-40 < B < 280Initial program 55.6%
Applied egg-rr74.7%
Taylor expanded in B around inf 48.5%
Taylor expanded in C around inf 35.9%
if 280 < B Initial program 49.4%
Taylor expanded in B around inf 71.4%
(FPCore (A B C)
:precision binary64
(if (<= B -2e-40)
(* 180.0 (/ (atan 1.0) PI))
(if (<= B 1.76)
(* (/ 180.0 PI) (atan (/ C B)))
(* 180.0 (/ (atan -1.0) PI)))))
double code(double A, double B, double C) {
double tmp;
if (B <= -2e-40) {
tmp = 180.0 * (atan(1.0) / ((double) M_PI));
} else if (B <= 1.76) {
tmp = (180.0 / ((double) M_PI)) * atan((C / B));
} else {
tmp = 180.0 * (atan(-1.0) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (B <= -2e-40) {
tmp = 180.0 * (Math.atan(1.0) / Math.PI);
} else if (B <= 1.76) {
tmp = (180.0 / Math.PI) * Math.atan((C / B));
} else {
tmp = 180.0 * (Math.atan(-1.0) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if B <= -2e-40: tmp = 180.0 * (math.atan(1.0) / math.pi) elif B <= 1.76: tmp = (180.0 / math.pi) * math.atan((C / B)) else: tmp = 180.0 * (math.atan(-1.0) / math.pi) return tmp
function code(A, B, C) tmp = 0.0 if (B <= -2e-40) tmp = Float64(180.0 * Float64(atan(1.0) / pi)); elseif (B <= 1.76) tmp = Float64(Float64(180.0 / pi) * atan(Float64(C / B))); 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-40) tmp = 180.0 * (atan(1.0) / pi); elseif (B <= 1.76) tmp = (180.0 / pi) * atan((C / B)); else tmp = 180.0 * (atan(-1.0) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[B, -2e-40], N[(180.0 * N[(N[ArcTan[1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, 1.76], N[(N[(180.0 / Pi), $MachinePrecision] * N[ArcTan[N[(C / B), $MachinePrecision]], $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^{-40}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} 1}{\pi}\\
\mathbf{elif}\;B \leq 1.76:\\
\;\;\;\;\frac{180}{\pi} \cdot \tan^{-1} \left(\frac{C}{B}\right)\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} -1}{\pi}\\
\end{array}
\end{array}
if B < -1.9999999999999999e-40Initial program 47.2%
Taylor expanded in B around -inf 58.6%
if -1.9999999999999999e-40 < B < 1.76000000000000001Initial program 55.6%
Applied egg-rr74.7%
Taylor expanded in B around inf 48.5%
Taylor expanded in C around inf 35.9%
associate-/r/35.9%
Applied egg-rr35.9%
if 1.76000000000000001 < B Initial program 49.4%
Taylor expanded in B around inf 71.4%
(FPCore (A B C)
:precision binary64
(if (<= B -5.2e-183)
(* 180.0 (/ (atan 1.0) PI))
(if (<= B 1.35e-61)
(* 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 <= -5.2e-183) {
tmp = 180.0 * (atan(1.0) / ((double) M_PI));
} else if (B <= 1.35e-61) {
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 <= -5.2e-183) {
tmp = 180.0 * (Math.atan(1.0) / Math.PI);
} else if (B <= 1.35e-61) {
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 <= -5.2e-183: tmp = 180.0 * (math.atan(1.0) / math.pi) elif B <= 1.35e-61: 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 <= -5.2e-183) tmp = Float64(180.0 * Float64(atan(1.0) / pi)); elseif (B <= 1.35e-61) 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 <= -5.2e-183) tmp = 180.0 * (atan(1.0) / pi); elseif (B <= 1.35e-61) 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, -5.2e-183], N[(180.0 * N[(N[ArcTan[1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], If[LessEqual[B, 1.35e-61], 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 -5.2 \cdot 10^{-183}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} 1}{\pi}\\
\mathbf{elif}\;B \leq 1.35 \cdot 10^{-61}:\\
\;\;\;\;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 < -5.1999999999999998e-183Initial program 47.7%
Taylor expanded in B around -inf 47.0%
if -5.1999999999999998e-183 < B < 1.34999999999999997e-61Initial program 53.7%
Taylor expanded in C around inf 29.0%
associate-*r/29.0%
mul-1-neg29.0%
distribute-rgt1-in29.0%
metadata-eval29.0%
mul0-lft29.0%
metadata-eval29.0%
Simplified29.0%
if 1.34999999999999997e-61 < B Initial program 55.6%
Taylor expanded in B around inf 59.7%
(FPCore (A B C) :precision binary64 (if (<= B -5e-216) (* 180.0 (/ (atan (+ 1.0 (/ (- C A) B))) PI)) (/ 180.0 (/ PI (atan (- -1.0 (/ (- A C) B)))))))
double code(double A, double B, double C) {
double tmp;
if (B <= -5e-216) {
tmp = 180.0 * (atan((1.0 + ((C - A) / B))) / ((double) M_PI));
} else {
tmp = 180.0 / (((double) M_PI) / atan((-1.0 - ((A - C) / B))));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (B <= -5e-216) {
tmp = 180.0 * (Math.atan((1.0 + ((C - A) / B))) / Math.PI);
} else {
tmp = 180.0 / (Math.PI / Math.atan((-1.0 - ((A - C) / B))));
}
return tmp;
}
def code(A, B, C): tmp = 0 if B <= -5e-216: tmp = 180.0 * (math.atan((1.0 + ((C - A) / B))) / math.pi) else: tmp = 180.0 / (math.pi / math.atan((-1.0 - ((A - C) / B)))) return tmp
function code(A, B, C) tmp = 0.0 if (B <= -5e-216) tmp = Float64(180.0 * Float64(atan(Float64(1.0 + Float64(Float64(C - A) / B))) / pi)); else tmp = Float64(180.0 / Float64(pi / atan(Float64(-1.0 - Float64(Float64(A - C) / B))))); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (B <= -5e-216) tmp = 180.0 * (atan((1.0 + ((C - A) / B))) / pi); else tmp = 180.0 / (pi / atan((-1.0 - ((A - C) / B)))); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[B, -5e-216], N[(180.0 * N[(N[ArcTan[N[(1.0 + N[(N[(C - A), $MachinePrecision] / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 / N[(Pi / N[ArcTan[N[(-1.0 - N[(N[(A - C), $MachinePrecision] / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;B \leq -5 \cdot 10^{-216}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 + \frac{C - A}{B}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;\frac{180}{\frac{\pi}{\tan^{-1} \left(-1 - \frac{A - C}{B}\right)}}\\
\end{array}
\end{array}
if B < -5.00000000000000021e-216Initial program 46.8%
Taylor expanded in B around -inf 66.5%
associate--l+66.5%
div-sub66.5%
Simplified66.5%
if -5.00000000000000021e-216 < B Initial program 55.2%
Applied egg-rr82.7%
Taylor expanded in B around inf 65.0%
div-inv65.0%
associate--r+65.0%
Applied egg-rr65.0%
Taylor expanded in C around 0 65.0%
Simplified66.9%
(FPCore (A B C) :precision binary64 (if (<= B -5e-166) (* 180.0 (/ (atan (+ 1.0 (/ (- C A) B))) PI)) (* 180.0 (/ (atan (- -1.0 (/ (- A C) B))) PI))))
double code(double A, double B, double C) {
double tmp;
if (B <= -5e-166) {
tmp = 180.0 * (atan((1.0 + ((C - A) / B))) / ((double) M_PI));
} else {
tmp = 180.0 * (atan((-1.0 - ((A - C) / B))) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (B <= -5e-166) {
tmp = 180.0 * (Math.atan((1.0 + ((C - A) / B))) / Math.PI);
} else {
tmp = 180.0 * (Math.atan((-1.0 - ((A - C) / B))) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if B <= -5e-166: tmp = 180.0 * (math.atan((1.0 + ((C - A) / B))) / math.pi) else: tmp = 180.0 * (math.atan((-1.0 - ((A - C) / B))) / math.pi) return tmp
function code(A, B, C) tmp = 0.0 if (B <= -5e-166) tmp = Float64(180.0 * Float64(atan(Float64(1.0 + Float64(Float64(C - A) / B))) / pi)); else tmp = Float64(180.0 * Float64(atan(Float64(-1.0 - Float64(Float64(A - C) / B))) / pi)); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (B <= -5e-166) tmp = 180.0 * (atan((1.0 + ((C - A) / B))) / pi); else tmp = 180.0 * (atan((-1.0 - ((A - C) / B))) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[B, -5e-166], N[(180.0 * N[(N[ArcTan[N[(1.0 + N[(N[(C - A), $MachinePrecision] / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(-1.0 - N[(N[(A - C), $MachinePrecision] / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;B \leq -5 \cdot 10^{-166}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 + \frac{C - A}{B}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(-1 - \frac{A - C}{B}\right)}{\pi}\\
\end{array}
\end{array}
if B < -5e-166Initial program 46.5%
Taylor expanded in B around -inf 67.1%
associate--l+67.1%
div-sub67.1%
Simplified67.1%
if -5e-166 < B Initial program 55.1%
Applied egg-rr82.0%
Taylor expanded in B around inf 64.7%
Taylor expanded in C around 0 64.7%
Simplified66.5%
(FPCore (A B C) :precision binary64 (if (<= C 8.4e-293) (* 180.0 (/ (atan (+ 1.0 (/ C B))) PI)) (* 180.0 (/ (atan (* -0.5 (/ B C))) PI))))
double code(double A, double B, double C) {
double tmp;
if (C <= 8.4e-293) {
tmp = 180.0 * (atan((1.0 + (C / B))) / ((double) M_PI));
} else {
tmp = 180.0 * (atan((-0.5 * (B / C))) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (C <= 8.4e-293) {
tmp = 180.0 * (Math.atan((1.0 + (C / B))) / Math.PI);
} else {
tmp = 180.0 * (Math.atan((-0.5 * (B / C))) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if C <= 8.4e-293: tmp = 180.0 * (math.atan((1.0 + (C / B))) / math.pi) else: tmp = 180.0 * (math.atan((-0.5 * (B / C))) / math.pi) return tmp
function code(A, B, C) tmp = 0.0 if (C <= 8.4e-293) tmp = Float64(180.0 * Float64(atan(Float64(1.0 + Float64(C / B))) / pi)); else tmp = Float64(180.0 * Float64(atan(Float64(-0.5 * Float64(B / C))) / pi)); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (C <= 8.4e-293) tmp = 180.0 * (atan((1.0 + (C / B))) / pi); else tmp = 180.0 * (atan((-0.5 * (B / C))) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[C, 8.4e-293], N[(180.0 * N[(N[ArcTan[N[(1.0 + N[(C / B), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[N[(-0.5 * N[(B / C), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;C \leq 8.4 \cdot 10^{-293}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(1 + \frac{C}{B}\right)}{\pi}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} \left(-0.5 \cdot \frac{B}{C}\right)}{\pi}\\
\end{array}
\end{array}
if C < 8.40000000000000021e-293Initial program 67.2%
Taylor expanded in B around -inf 65.9%
associate--l+65.9%
div-sub68.1%
Simplified68.1%
Taylor expanded in C around inf 62.1%
if 8.40000000000000021e-293 < C Initial program 34.6%
Taylor expanded in C around inf 42.2%
distribute-rgt1-in42.2%
metadata-eval42.2%
associate-*r/42.2%
Simplified42.2%
Taylor expanded in B around 0 52.1%
(FPCore (A B C) :precision binary64 (if (<= B -5e-310) (* 180.0 (/ (atan 1.0) PI)) (* 180.0 (/ (atan -1.0) PI))))
double code(double A, double B, double C) {
double tmp;
if (B <= -5e-310) {
tmp = 180.0 * (atan(1.0) / ((double) M_PI));
} else {
tmp = 180.0 * (atan(-1.0) / ((double) M_PI));
}
return tmp;
}
public static double code(double A, double B, double C) {
double tmp;
if (B <= -5e-310) {
tmp = 180.0 * (Math.atan(1.0) / Math.PI);
} else {
tmp = 180.0 * (Math.atan(-1.0) / Math.PI);
}
return tmp;
}
def code(A, B, C): tmp = 0 if B <= -5e-310: tmp = 180.0 * (math.atan(1.0) / math.pi) else: tmp = 180.0 * (math.atan(-1.0) / math.pi) return tmp
function code(A, B, C) tmp = 0.0 if (B <= -5e-310) tmp = Float64(180.0 * Float64(atan(1.0) / pi)); else tmp = Float64(180.0 * Float64(atan(-1.0) / pi)); end return tmp end
function tmp_2 = code(A, B, C) tmp = 0.0; if (B <= -5e-310) tmp = 180.0 * (atan(1.0) / pi); else tmp = 180.0 * (atan(-1.0) / pi); end tmp_2 = tmp; end
code[A_, B_, C_] := If[LessEqual[B, -5e-310], N[(180.0 * N[(N[ArcTan[1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision], N[(180.0 * N[(N[ArcTan[-1.0], $MachinePrecision] / Pi), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;B \leq -5 \cdot 10^{-310}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} 1}{\pi}\\
\mathbf{else}:\\
\;\;\;\;180 \cdot \frac{\tan^{-1} -1}{\pi}\\
\end{array}
\end{array}
if B < -4.999999999999985e-310Initial program 47.4%
Taylor expanded in B around -inf 39.9%
if -4.999999999999985e-310 < B Initial program 55.9%
Taylor expanded in B around inf 38.6%
(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 52.1%
Taylor expanded in B around inf 22.5%
herbie shell --seed 2024113
(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)))