
(FPCore (F B x) :precision binary64 (+ (- (* x (/ 1.0 (tan B)))) (* (/ F (sin B)) (pow (+ (+ (* F F) 2.0) (* 2.0 x)) (- (/ 1.0 2.0))))))
double code(double F, double B, double x) {
return -(x * (1.0 / tan(B))) + ((F / sin(B)) * pow((((F * F) + 2.0) + (2.0 * x)), -(1.0 / 2.0)));
}
real(8) function code(f, b, x)
real(8), intent (in) :: f
real(8), intent (in) :: b
real(8), intent (in) :: x
code = -(x * (1.0d0 / tan(b))) + ((f / sin(b)) * ((((f * f) + 2.0d0) + (2.0d0 * x)) ** -(1.0d0 / 2.0d0)))
end function
public static double code(double F, double B, double x) {
return -(x * (1.0 / Math.tan(B))) + ((F / Math.sin(B)) * Math.pow((((F * F) + 2.0) + (2.0 * x)), -(1.0 / 2.0)));
}
def code(F, B, x): return -(x * (1.0 / math.tan(B))) + ((F / math.sin(B)) * math.pow((((F * F) + 2.0) + (2.0 * x)), -(1.0 / 2.0)))
function code(F, B, x) return Float64(Float64(-Float64(x * Float64(1.0 / tan(B)))) + Float64(Float64(F / sin(B)) * (Float64(Float64(Float64(F * F) + 2.0) + Float64(2.0 * x)) ^ Float64(-Float64(1.0 / 2.0))))) end
function tmp = code(F, B, x) tmp = -(x * (1.0 / tan(B))) + ((F / sin(B)) * ((((F * F) + 2.0) + (2.0 * x)) ^ -(1.0 / 2.0))); end
code[F_, B_, x_] := N[((-N[(x * N[(1.0 / N[Tan[B], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]) + N[(N[(F / N[Sin[B], $MachinePrecision]), $MachinePrecision] * N[Power[N[(N[(N[(F * F), $MachinePrecision] + 2.0), $MachinePrecision] + N[(2.0 * x), $MachinePrecision]), $MachinePrecision], (-N[(1.0 / 2.0), $MachinePrecision])], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\left(-x \cdot \frac{1}{\tan B}\right) + \frac{F}{\sin B} \cdot {\left(\left(F \cdot F + 2\right) + 2 \cdot x\right)}^{\left(-\frac{1}{2}\right)}
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 27 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (F B x) :precision binary64 (+ (- (* x (/ 1.0 (tan B)))) (* (/ F (sin B)) (pow (+ (+ (* F F) 2.0) (* 2.0 x)) (- (/ 1.0 2.0))))))
double code(double F, double B, double x) {
return -(x * (1.0 / tan(B))) + ((F / sin(B)) * pow((((F * F) + 2.0) + (2.0 * x)), -(1.0 / 2.0)));
}
real(8) function code(f, b, x)
real(8), intent (in) :: f
real(8), intent (in) :: b
real(8), intent (in) :: x
code = -(x * (1.0d0 / tan(b))) + ((f / sin(b)) * ((((f * f) + 2.0d0) + (2.0d0 * x)) ** -(1.0d0 / 2.0d0)))
end function
public static double code(double F, double B, double x) {
return -(x * (1.0 / Math.tan(B))) + ((F / Math.sin(B)) * Math.pow((((F * F) + 2.0) + (2.0 * x)), -(1.0 / 2.0)));
}
def code(F, B, x): return -(x * (1.0 / math.tan(B))) + ((F / math.sin(B)) * math.pow((((F * F) + 2.0) + (2.0 * x)), -(1.0 / 2.0)))
function code(F, B, x) return Float64(Float64(-Float64(x * Float64(1.0 / tan(B)))) + Float64(Float64(F / sin(B)) * (Float64(Float64(Float64(F * F) + 2.0) + Float64(2.0 * x)) ^ Float64(-Float64(1.0 / 2.0))))) end
function tmp = code(F, B, x) tmp = -(x * (1.0 / tan(B))) + ((F / sin(B)) * ((((F * F) + 2.0) + (2.0 * x)) ^ -(1.0 / 2.0))); end
code[F_, B_, x_] := N[((-N[(x * N[(1.0 / N[Tan[B], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]) + N[(N[(F / N[Sin[B], $MachinePrecision]), $MachinePrecision] * N[Power[N[(N[(N[(F * F), $MachinePrecision] + 2.0), $MachinePrecision] + N[(2.0 * x), $MachinePrecision]), $MachinePrecision], (-N[(1.0 / 2.0), $MachinePrecision])], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\left(-x \cdot \frac{1}{\tan B}\right) + \frac{F}{\sin B} \cdot {\left(\left(F \cdot F + 2\right) + 2 \cdot x\right)}^{\left(-\frac{1}{2}\right)}
\end{array}
(FPCore (F B x)
:precision binary64
(let* ((t_0 (/ x (tan B))))
(if (<= F -1e+66)
(- (/ -1.0 (sin B)) t_0)
(if (<= F 14.5)
(-
(/ 1.0 (/ (sin B) (* F (pow (+ (* F F) (+ 2.0 (* x 2.0))) -0.5))))
t_0)
(- (/ 1.0 (sin B)) t_0)))))
double code(double F, double B, double x) {
double t_0 = x / tan(B);
double tmp;
if (F <= -1e+66) {
tmp = (-1.0 / sin(B)) - t_0;
} else if (F <= 14.5) {
tmp = (1.0 / (sin(B) / (F * pow(((F * F) + (2.0 + (x * 2.0))), -0.5)))) - t_0;
} else {
tmp = (1.0 / sin(B)) - t_0;
}
return tmp;
}
real(8) function code(f, b, x)
real(8), intent (in) :: f
real(8), intent (in) :: b
real(8), intent (in) :: x
real(8) :: t_0
real(8) :: tmp
t_0 = x / tan(b)
if (f <= (-1d+66)) then
tmp = ((-1.0d0) / sin(b)) - t_0
else if (f <= 14.5d0) then
tmp = (1.0d0 / (sin(b) / (f * (((f * f) + (2.0d0 + (x * 2.0d0))) ** (-0.5d0))))) - t_0
else
tmp = (1.0d0 / sin(b)) - t_0
end if
code = tmp
end function
public static double code(double F, double B, double x) {
double t_0 = x / Math.tan(B);
double tmp;
if (F <= -1e+66) {
tmp = (-1.0 / Math.sin(B)) - t_0;
} else if (F <= 14.5) {
tmp = (1.0 / (Math.sin(B) / (F * Math.pow(((F * F) + (2.0 + (x * 2.0))), -0.5)))) - t_0;
} else {
tmp = (1.0 / Math.sin(B)) - t_0;
}
return tmp;
}
def code(F, B, x): t_0 = x / math.tan(B) tmp = 0 if F <= -1e+66: tmp = (-1.0 / math.sin(B)) - t_0 elif F <= 14.5: tmp = (1.0 / (math.sin(B) / (F * math.pow(((F * F) + (2.0 + (x * 2.0))), -0.5)))) - t_0 else: tmp = (1.0 / math.sin(B)) - t_0 return tmp
function code(F, B, x) t_0 = Float64(x / tan(B)) tmp = 0.0 if (F <= -1e+66) tmp = Float64(Float64(-1.0 / sin(B)) - t_0); elseif (F <= 14.5) tmp = Float64(Float64(1.0 / Float64(sin(B) / Float64(F * (Float64(Float64(F * F) + Float64(2.0 + Float64(x * 2.0))) ^ -0.5)))) - t_0); else tmp = Float64(Float64(1.0 / sin(B)) - t_0); end return tmp end
function tmp_2 = code(F, B, x) t_0 = x / tan(B); tmp = 0.0; if (F <= -1e+66) tmp = (-1.0 / sin(B)) - t_0; elseif (F <= 14.5) tmp = (1.0 / (sin(B) / (F * (((F * F) + (2.0 + (x * 2.0))) ^ -0.5)))) - t_0; else tmp = (1.0 / sin(B)) - t_0; end tmp_2 = tmp; end
code[F_, B_, x_] := Block[{t$95$0 = N[(x / N[Tan[B], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[F, -1e+66], N[(N[(-1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision], If[LessEqual[F, 14.5], N[(N[(1.0 / N[(N[Sin[B], $MachinePrecision] / N[(F * N[Power[N[(N[(F * F), $MachinePrecision] + N[(2.0 + N[(x * 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], -0.5], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision], N[(N[(1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{x}{\tan B}\\
\mathbf{if}\;F \leq -1 \cdot 10^{+66}:\\
\;\;\;\;\frac{-1}{\sin B} - t\_0\\
\mathbf{elif}\;F \leq 14.5:\\
\;\;\;\;\frac{1}{\frac{\sin B}{F \cdot {\left(F \cdot F + \left(2 + x \cdot 2\right)\right)}^{-0.5}}} - t\_0\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\sin B} - t\_0\\
\end{array}
\end{array}
if F < -9.99999999999999945e65Initial program 54.3%
+-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
Simplified72.9%
Taylor expanded in F around -inf
/-lowering-/.f64N/A
sin-lowering-sin.f6499.9%
Simplified99.9%
if -9.99999999999999945e65 < F < 14.5Initial program 98.7%
+-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
Simplified99.5%
div-invN/A
associate-*r/N/A
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
Applied egg-rr99.6%
if 14.5 < F Initial program 67.0%
+-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
Simplified77.0%
Taylor expanded in F around inf
/-lowering-/.f64N/A
sin-lowering-sin.f6499.8%
Simplified99.8%
Final simplification99.7%
(FPCore (F B x)
:precision binary64
(let* ((t_0 (/ x (tan B))))
(if (<= F -1.7e+34)
(- (/ -1.0 (sin B)) t_0)
(if (<= F 14.5)
(- (/ (pow (+ (* F F) (+ 2.0 (* x 2.0))) -0.5) (/ (sin B) F)) t_0)
(- (/ 1.0 (sin B)) t_0)))))
double code(double F, double B, double x) {
double t_0 = x / tan(B);
double tmp;
if (F <= -1.7e+34) {
tmp = (-1.0 / sin(B)) - t_0;
} else if (F <= 14.5) {
tmp = (pow(((F * F) + (2.0 + (x * 2.0))), -0.5) / (sin(B) / F)) - t_0;
} else {
tmp = (1.0 / sin(B)) - t_0;
}
return tmp;
}
real(8) function code(f, b, x)
real(8), intent (in) :: f
real(8), intent (in) :: b
real(8), intent (in) :: x
real(8) :: t_0
real(8) :: tmp
t_0 = x / tan(b)
if (f <= (-1.7d+34)) then
tmp = ((-1.0d0) / sin(b)) - t_0
else if (f <= 14.5d0) then
tmp = ((((f * f) + (2.0d0 + (x * 2.0d0))) ** (-0.5d0)) / (sin(b) / f)) - t_0
else
tmp = (1.0d0 / sin(b)) - t_0
end if
code = tmp
end function
public static double code(double F, double B, double x) {
double t_0 = x / Math.tan(B);
double tmp;
if (F <= -1.7e+34) {
tmp = (-1.0 / Math.sin(B)) - t_0;
} else if (F <= 14.5) {
tmp = (Math.pow(((F * F) + (2.0 + (x * 2.0))), -0.5) / (Math.sin(B) / F)) - t_0;
} else {
tmp = (1.0 / Math.sin(B)) - t_0;
}
return tmp;
}
def code(F, B, x): t_0 = x / math.tan(B) tmp = 0 if F <= -1.7e+34: tmp = (-1.0 / math.sin(B)) - t_0 elif F <= 14.5: tmp = (math.pow(((F * F) + (2.0 + (x * 2.0))), -0.5) / (math.sin(B) / F)) - t_0 else: tmp = (1.0 / math.sin(B)) - t_0 return tmp
function code(F, B, x) t_0 = Float64(x / tan(B)) tmp = 0.0 if (F <= -1.7e+34) tmp = Float64(Float64(-1.0 / sin(B)) - t_0); elseif (F <= 14.5) tmp = Float64(Float64((Float64(Float64(F * F) + Float64(2.0 + Float64(x * 2.0))) ^ -0.5) / Float64(sin(B) / F)) - t_0); else tmp = Float64(Float64(1.0 / sin(B)) - t_0); end return tmp end
function tmp_2 = code(F, B, x) t_0 = x / tan(B); tmp = 0.0; if (F <= -1.7e+34) tmp = (-1.0 / sin(B)) - t_0; elseif (F <= 14.5) tmp = ((((F * F) + (2.0 + (x * 2.0))) ^ -0.5) / (sin(B) / F)) - t_0; else tmp = (1.0 / sin(B)) - t_0; end tmp_2 = tmp; end
code[F_, B_, x_] := Block[{t$95$0 = N[(x / N[Tan[B], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[F, -1.7e+34], N[(N[(-1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision], If[LessEqual[F, 14.5], N[(N[(N[Power[N[(N[(F * F), $MachinePrecision] + N[(2.0 + N[(x * 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], -0.5], $MachinePrecision] / N[(N[Sin[B], $MachinePrecision] / F), $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision], N[(N[(1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{x}{\tan B}\\
\mathbf{if}\;F \leq -1.7 \cdot 10^{+34}:\\
\;\;\;\;\frac{-1}{\sin B} - t\_0\\
\mathbf{elif}\;F \leq 14.5:\\
\;\;\;\;\frac{{\left(F \cdot F + \left(2 + x \cdot 2\right)\right)}^{-0.5}}{\frac{\sin B}{F}} - t\_0\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\sin B} - t\_0\\
\end{array}
\end{array}
if F < -1.7e34Initial program 56.9%
+-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
Simplified75.2%
Taylor expanded in F around -inf
/-lowering-/.f64N/A
sin-lowering-sin.f6499.9%
Simplified99.9%
if -1.7e34 < F < 14.5Initial program 99.4%
+-commutativeN/A
div-invN/A
sub-negN/A
--lowering--.f64N/A
Applied egg-rr99.5%
if 14.5 < F Initial program 67.0%
+-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
Simplified77.0%
Taylor expanded in F around inf
/-lowering-/.f64N/A
sin-lowering-sin.f6499.8%
Simplified99.8%
(FPCore (F B x)
:precision binary64
(let* ((t_0 (/ x (tan B))))
(if (<= F -1e+66)
(- (/ -1.0 (sin B)) t_0)
(if (<= F 14.5)
(- (/ (* F (pow (+ (* F F) (+ 2.0 (* x 2.0))) -0.5)) (sin B)) t_0)
(- (/ 1.0 (sin B)) t_0)))))
double code(double F, double B, double x) {
double t_0 = x / tan(B);
double tmp;
if (F <= -1e+66) {
tmp = (-1.0 / sin(B)) - t_0;
} else if (F <= 14.5) {
tmp = ((F * pow(((F * F) + (2.0 + (x * 2.0))), -0.5)) / sin(B)) - t_0;
} else {
tmp = (1.0 / sin(B)) - t_0;
}
return tmp;
}
real(8) function code(f, b, x)
real(8), intent (in) :: f
real(8), intent (in) :: b
real(8), intent (in) :: x
real(8) :: t_0
real(8) :: tmp
t_0 = x / tan(b)
if (f <= (-1d+66)) then
tmp = ((-1.0d0) / sin(b)) - t_0
else if (f <= 14.5d0) then
tmp = ((f * (((f * f) + (2.0d0 + (x * 2.0d0))) ** (-0.5d0))) / sin(b)) - t_0
else
tmp = (1.0d0 / sin(b)) - t_0
end if
code = tmp
end function
public static double code(double F, double B, double x) {
double t_0 = x / Math.tan(B);
double tmp;
if (F <= -1e+66) {
tmp = (-1.0 / Math.sin(B)) - t_0;
} else if (F <= 14.5) {
tmp = ((F * Math.pow(((F * F) + (2.0 + (x * 2.0))), -0.5)) / Math.sin(B)) - t_0;
} else {
tmp = (1.0 / Math.sin(B)) - t_0;
}
return tmp;
}
def code(F, B, x): t_0 = x / math.tan(B) tmp = 0 if F <= -1e+66: tmp = (-1.0 / math.sin(B)) - t_0 elif F <= 14.5: tmp = ((F * math.pow(((F * F) + (2.0 + (x * 2.0))), -0.5)) / math.sin(B)) - t_0 else: tmp = (1.0 / math.sin(B)) - t_0 return tmp
function code(F, B, x) t_0 = Float64(x / tan(B)) tmp = 0.0 if (F <= -1e+66) tmp = Float64(Float64(-1.0 / sin(B)) - t_0); elseif (F <= 14.5) tmp = Float64(Float64(Float64(F * (Float64(Float64(F * F) + Float64(2.0 + Float64(x * 2.0))) ^ -0.5)) / sin(B)) - t_0); else tmp = Float64(Float64(1.0 / sin(B)) - t_0); end return tmp end
function tmp_2 = code(F, B, x) t_0 = x / tan(B); tmp = 0.0; if (F <= -1e+66) tmp = (-1.0 / sin(B)) - t_0; elseif (F <= 14.5) tmp = ((F * (((F * F) + (2.0 + (x * 2.0))) ^ -0.5)) / sin(B)) - t_0; else tmp = (1.0 / sin(B)) - t_0; end tmp_2 = tmp; end
code[F_, B_, x_] := Block[{t$95$0 = N[(x / N[Tan[B], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[F, -1e+66], N[(N[(-1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision], If[LessEqual[F, 14.5], N[(N[(N[(F * N[Power[N[(N[(F * F), $MachinePrecision] + N[(2.0 + N[(x * 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], -0.5], $MachinePrecision]), $MachinePrecision] / N[Sin[B], $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision], N[(N[(1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{x}{\tan B}\\
\mathbf{if}\;F \leq -1 \cdot 10^{+66}:\\
\;\;\;\;\frac{-1}{\sin B} - t\_0\\
\mathbf{elif}\;F \leq 14.5:\\
\;\;\;\;\frac{F \cdot {\left(F \cdot F + \left(2 + x \cdot 2\right)\right)}^{-0.5}}{\sin B} - t\_0\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\sin B} - t\_0\\
\end{array}
\end{array}
if F < -9.99999999999999945e65Initial program 54.3%
+-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
Simplified72.9%
Taylor expanded in F around -inf
/-lowering-/.f64N/A
sin-lowering-sin.f6499.9%
Simplified99.9%
if -9.99999999999999945e65 < F < 14.5Initial program 98.7%
+-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
Simplified99.5%
if 14.5 < F Initial program 67.0%
+-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
Simplified77.0%
Taylor expanded in F around inf
/-lowering-/.f64N/A
sin-lowering-sin.f6499.8%
Simplified99.8%
(FPCore (F B x)
:precision binary64
(let* ((t_0 (/ x (tan B))))
(if (<= F -2e+19)
(- (/ -1.0 (sin B)) t_0)
(if (<= F 14.5)
(- (/ 1.0 (/ (* (sin B) (sqrt (+ (* F F) 2.0))) F)) t_0)
(- (/ 1.0 (sin B)) t_0)))))
double code(double F, double B, double x) {
double t_0 = x / tan(B);
double tmp;
if (F <= -2e+19) {
tmp = (-1.0 / sin(B)) - t_0;
} else if (F <= 14.5) {
tmp = (1.0 / ((sin(B) * sqrt(((F * F) + 2.0))) / F)) - t_0;
} else {
tmp = (1.0 / sin(B)) - t_0;
}
return tmp;
}
real(8) function code(f, b, x)
real(8), intent (in) :: f
real(8), intent (in) :: b
real(8), intent (in) :: x
real(8) :: t_0
real(8) :: tmp
t_0 = x / tan(b)
if (f <= (-2d+19)) then
tmp = ((-1.0d0) / sin(b)) - t_0
else if (f <= 14.5d0) then
tmp = (1.0d0 / ((sin(b) * sqrt(((f * f) + 2.0d0))) / f)) - t_0
else
tmp = (1.0d0 / sin(b)) - t_0
end if
code = tmp
end function
public static double code(double F, double B, double x) {
double t_0 = x / Math.tan(B);
double tmp;
if (F <= -2e+19) {
tmp = (-1.0 / Math.sin(B)) - t_0;
} else if (F <= 14.5) {
tmp = (1.0 / ((Math.sin(B) * Math.sqrt(((F * F) + 2.0))) / F)) - t_0;
} else {
tmp = (1.0 / Math.sin(B)) - t_0;
}
return tmp;
}
def code(F, B, x): t_0 = x / math.tan(B) tmp = 0 if F <= -2e+19: tmp = (-1.0 / math.sin(B)) - t_0 elif F <= 14.5: tmp = (1.0 / ((math.sin(B) * math.sqrt(((F * F) + 2.0))) / F)) - t_0 else: tmp = (1.0 / math.sin(B)) - t_0 return tmp
function code(F, B, x) t_0 = Float64(x / tan(B)) tmp = 0.0 if (F <= -2e+19) tmp = Float64(Float64(-1.0 / sin(B)) - t_0); elseif (F <= 14.5) tmp = Float64(Float64(1.0 / Float64(Float64(sin(B) * sqrt(Float64(Float64(F * F) + 2.0))) / F)) - t_0); else tmp = Float64(Float64(1.0 / sin(B)) - t_0); end return tmp end
function tmp_2 = code(F, B, x) t_0 = x / tan(B); tmp = 0.0; if (F <= -2e+19) tmp = (-1.0 / sin(B)) - t_0; elseif (F <= 14.5) tmp = (1.0 / ((sin(B) * sqrt(((F * F) + 2.0))) / F)) - t_0; else tmp = (1.0 / sin(B)) - t_0; end tmp_2 = tmp; end
code[F_, B_, x_] := Block[{t$95$0 = N[(x / N[Tan[B], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[F, -2e+19], N[(N[(-1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision], If[LessEqual[F, 14.5], N[(N[(1.0 / N[(N[(N[Sin[B], $MachinePrecision] * N[Sqrt[N[(N[(F * F), $MachinePrecision] + 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / F), $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision], N[(N[(1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{x}{\tan B}\\
\mathbf{if}\;F \leq -2 \cdot 10^{+19}:\\
\;\;\;\;\frac{-1}{\sin B} - t\_0\\
\mathbf{elif}\;F \leq 14.5:\\
\;\;\;\;\frac{1}{\frac{\sin B \cdot \sqrt{F \cdot F + 2}}{F}} - t\_0\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\sin B} - t\_0\\
\end{array}
\end{array}
if F < -2e19Initial program 60.3%
+-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
Simplified77.1%
Taylor expanded in F around -inf
/-lowering-/.f64N/A
sin-lowering-sin.f6499.8%
Simplified99.8%
if -2e19 < F < 14.5Initial program 99.4%
+-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
Simplified99.5%
div-invN/A
associate-*r/N/A
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
Applied egg-rr99.6%
Taylor expanded in x around 0
associate-*l/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
sqrt-lowering-sqrt.f64N/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f6499.1%
Simplified99.1%
if 14.5 < F Initial program 67.0%
+-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
Simplified77.0%
Taylor expanded in F around inf
/-lowering-/.f64N/A
sin-lowering-sin.f6499.8%
Simplified99.8%
Final simplification99.5%
(FPCore (F B x)
:precision binary64
(let* ((t_0 (/ x (tan B))))
(if (<= F -1.4)
(- (/ -1.0 (sin B)) t_0)
(if (<= F 1.86)
(- (/ (pow (+ 2.0 (* x 2.0)) -0.5) (/ (sin B) F)) t_0)
(- (/ 1.0 (sin B)) t_0)))))
double code(double F, double B, double x) {
double t_0 = x / tan(B);
double tmp;
if (F <= -1.4) {
tmp = (-1.0 / sin(B)) - t_0;
} else if (F <= 1.86) {
tmp = (pow((2.0 + (x * 2.0)), -0.5) / (sin(B) / F)) - t_0;
} else {
tmp = (1.0 / sin(B)) - t_0;
}
return tmp;
}
real(8) function code(f, b, x)
real(8), intent (in) :: f
real(8), intent (in) :: b
real(8), intent (in) :: x
real(8) :: t_0
real(8) :: tmp
t_0 = x / tan(b)
if (f <= (-1.4d0)) then
tmp = ((-1.0d0) / sin(b)) - t_0
else if (f <= 1.86d0) then
tmp = (((2.0d0 + (x * 2.0d0)) ** (-0.5d0)) / (sin(b) / f)) - t_0
else
tmp = (1.0d0 / sin(b)) - t_0
end if
code = tmp
end function
public static double code(double F, double B, double x) {
double t_0 = x / Math.tan(B);
double tmp;
if (F <= -1.4) {
tmp = (-1.0 / Math.sin(B)) - t_0;
} else if (F <= 1.86) {
tmp = (Math.pow((2.0 + (x * 2.0)), -0.5) / (Math.sin(B) / F)) - t_0;
} else {
tmp = (1.0 / Math.sin(B)) - t_0;
}
return tmp;
}
def code(F, B, x): t_0 = x / math.tan(B) tmp = 0 if F <= -1.4: tmp = (-1.0 / math.sin(B)) - t_0 elif F <= 1.86: tmp = (math.pow((2.0 + (x * 2.0)), -0.5) / (math.sin(B) / F)) - t_0 else: tmp = (1.0 / math.sin(B)) - t_0 return tmp
function code(F, B, x) t_0 = Float64(x / tan(B)) tmp = 0.0 if (F <= -1.4) tmp = Float64(Float64(-1.0 / sin(B)) - t_0); elseif (F <= 1.86) tmp = Float64(Float64((Float64(2.0 + Float64(x * 2.0)) ^ -0.5) / Float64(sin(B) / F)) - t_0); else tmp = Float64(Float64(1.0 / sin(B)) - t_0); end return tmp end
function tmp_2 = code(F, B, x) t_0 = x / tan(B); tmp = 0.0; if (F <= -1.4) tmp = (-1.0 / sin(B)) - t_0; elseif (F <= 1.86) tmp = (((2.0 + (x * 2.0)) ^ -0.5) / (sin(B) / F)) - t_0; else tmp = (1.0 / sin(B)) - t_0; end tmp_2 = tmp; end
code[F_, B_, x_] := Block[{t$95$0 = N[(x / N[Tan[B], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[F, -1.4], N[(N[(-1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision], If[LessEqual[F, 1.86], N[(N[(N[Power[N[(2.0 + N[(x * 2.0), $MachinePrecision]), $MachinePrecision], -0.5], $MachinePrecision] / N[(N[Sin[B], $MachinePrecision] / F), $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision], N[(N[(1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{x}{\tan B}\\
\mathbf{if}\;F \leq -1.4:\\
\;\;\;\;\frac{-1}{\sin B} - t\_0\\
\mathbf{elif}\;F \leq 1.86:\\
\;\;\;\;\frac{{\left(2 + x \cdot 2\right)}^{-0.5}}{\frac{\sin B}{F}} - t\_0\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\sin B} - t\_0\\
\end{array}
\end{array}
if F < -1.3999999999999999Initial program 61.3%
+-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
Simplified77.7%
Taylor expanded in F around -inf
/-lowering-/.f64N/A
sin-lowering-sin.f6498.3%
Simplified98.3%
if -1.3999999999999999 < F < 1.8600000000000001Initial program 99.4%
+-commutativeN/A
div-invN/A
sub-negN/A
--lowering--.f64N/A
Applied egg-rr99.5%
Taylor expanded in F around 0
+-lowering-+.f64N/A
*-lowering-*.f6498.9%
Simplified98.9%
if 1.8600000000000001 < F Initial program 67.0%
+-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
Simplified77.0%
Taylor expanded in F around inf
/-lowering-/.f64N/A
sin-lowering-sin.f6499.8%
Simplified99.8%
Final simplification98.9%
(FPCore (F B x)
:precision binary64
(let* ((t_0 (/ x (tan B))))
(if (<= F -9.5e-53)
(- (/ -1.0 (sin B)) t_0)
(if (<= F 5.6e-50)
(/ (* x (cos B)) (- 0.0 (sin B)))
(if (<= F 14.5)
(- (/ (* F (pow (+ (* F F) (+ 2.0 (* x 2.0))) -0.5)) (sin B)) (/ x B))
(- (/ 1.0 (sin B)) t_0))))))
double code(double F, double B, double x) {
double t_0 = x / tan(B);
double tmp;
if (F <= -9.5e-53) {
tmp = (-1.0 / sin(B)) - t_0;
} else if (F <= 5.6e-50) {
tmp = (x * cos(B)) / (0.0 - sin(B));
} else if (F <= 14.5) {
tmp = ((F * pow(((F * F) + (2.0 + (x * 2.0))), -0.5)) / sin(B)) - (x / B);
} else {
tmp = (1.0 / sin(B)) - t_0;
}
return tmp;
}
real(8) function code(f, b, x)
real(8), intent (in) :: f
real(8), intent (in) :: b
real(8), intent (in) :: x
real(8) :: t_0
real(8) :: tmp
t_0 = x / tan(b)
if (f <= (-9.5d-53)) then
tmp = ((-1.0d0) / sin(b)) - t_0
else if (f <= 5.6d-50) then
tmp = (x * cos(b)) / (0.0d0 - sin(b))
else if (f <= 14.5d0) then
tmp = ((f * (((f * f) + (2.0d0 + (x * 2.0d0))) ** (-0.5d0))) / sin(b)) - (x / b)
else
tmp = (1.0d0 / sin(b)) - t_0
end if
code = tmp
end function
public static double code(double F, double B, double x) {
double t_0 = x / Math.tan(B);
double tmp;
if (F <= -9.5e-53) {
tmp = (-1.0 / Math.sin(B)) - t_0;
} else if (F <= 5.6e-50) {
tmp = (x * Math.cos(B)) / (0.0 - Math.sin(B));
} else if (F <= 14.5) {
tmp = ((F * Math.pow(((F * F) + (2.0 + (x * 2.0))), -0.5)) / Math.sin(B)) - (x / B);
} else {
tmp = (1.0 / Math.sin(B)) - t_0;
}
return tmp;
}
def code(F, B, x): t_0 = x / math.tan(B) tmp = 0 if F <= -9.5e-53: tmp = (-1.0 / math.sin(B)) - t_0 elif F <= 5.6e-50: tmp = (x * math.cos(B)) / (0.0 - math.sin(B)) elif F <= 14.5: tmp = ((F * math.pow(((F * F) + (2.0 + (x * 2.0))), -0.5)) / math.sin(B)) - (x / B) else: tmp = (1.0 / math.sin(B)) - t_0 return tmp
function code(F, B, x) t_0 = Float64(x / tan(B)) tmp = 0.0 if (F <= -9.5e-53) tmp = Float64(Float64(-1.0 / sin(B)) - t_0); elseif (F <= 5.6e-50) tmp = Float64(Float64(x * cos(B)) / Float64(0.0 - sin(B))); elseif (F <= 14.5) tmp = Float64(Float64(Float64(F * (Float64(Float64(F * F) + Float64(2.0 + Float64(x * 2.0))) ^ -0.5)) / sin(B)) - Float64(x / B)); else tmp = Float64(Float64(1.0 / sin(B)) - t_0); end return tmp end
function tmp_2 = code(F, B, x) t_0 = x / tan(B); tmp = 0.0; if (F <= -9.5e-53) tmp = (-1.0 / sin(B)) - t_0; elseif (F <= 5.6e-50) tmp = (x * cos(B)) / (0.0 - sin(B)); elseif (F <= 14.5) tmp = ((F * (((F * F) + (2.0 + (x * 2.0))) ^ -0.5)) / sin(B)) - (x / B); else tmp = (1.0 / sin(B)) - t_0; end tmp_2 = tmp; end
code[F_, B_, x_] := Block[{t$95$0 = N[(x / N[Tan[B], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[F, -9.5e-53], N[(N[(-1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision], If[LessEqual[F, 5.6e-50], N[(N[(x * N[Cos[B], $MachinePrecision]), $MachinePrecision] / N[(0.0 - N[Sin[B], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[F, 14.5], N[(N[(N[(F * N[Power[N[(N[(F * F), $MachinePrecision] + N[(2.0 + N[(x * 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], -0.5], $MachinePrecision]), $MachinePrecision] / N[Sin[B], $MachinePrecision]), $MachinePrecision] - N[(x / B), $MachinePrecision]), $MachinePrecision], N[(N[(1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{x}{\tan B}\\
\mathbf{if}\;F \leq -9.5 \cdot 10^{-53}:\\
\;\;\;\;\frac{-1}{\sin B} - t\_0\\
\mathbf{elif}\;F \leq 5.6 \cdot 10^{-50}:\\
\;\;\;\;\frac{x \cdot \cos B}{0 - \sin B}\\
\mathbf{elif}\;F \leq 14.5:\\
\;\;\;\;\frac{F \cdot {\left(F \cdot F + \left(2 + x \cdot 2\right)\right)}^{-0.5}}{\sin B} - \frac{x}{B}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\sin B} - t\_0\\
\end{array}
\end{array}
if F < -9.5000000000000008e-53Initial program 63.9%
+-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
Simplified79.2%
Taylor expanded in F around -inf
/-lowering-/.f64N/A
sin-lowering-sin.f6495.1%
Simplified95.1%
if -9.5000000000000008e-53 < F < 5.5999999999999996e-50Initial program 99.5%
Taylor expanded in x around inf
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
sin-lowering-sin.f6477.0%
Simplified77.0%
if 5.5999999999999996e-50 < F < 14.5Initial program 98.8%
+-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
Simplified98.7%
Taylor expanded in B around 0
/-lowering-/.f6489.0%
Simplified89.0%
if 14.5 < F Initial program 67.0%
+-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
Simplified77.0%
Taylor expanded in F around inf
/-lowering-/.f64N/A
sin-lowering-sin.f6499.8%
Simplified99.8%
Final simplification89.9%
(FPCore (F B x)
:precision binary64
(let* ((t_0 (/ x (tan B))))
(if (<= F -175.0)
(- (/ -1.0 (sin B)) t_0)
(if (<= F 14.2)
(- (* (sqrt (/ 1.0 (+ 2.0 (+ (* F F) (* x 2.0))))) (/ F B)) t_0)
(- (/ 1.0 (sin B)) t_0)))))
double code(double F, double B, double x) {
double t_0 = x / tan(B);
double tmp;
if (F <= -175.0) {
tmp = (-1.0 / sin(B)) - t_0;
} else if (F <= 14.2) {
tmp = (sqrt((1.0 / (2.0 + ((F * F) + (x * 2.0))))) * (F / B)) - t_0;
} else {
tmp = (1.0 / sin(B)) - t_0;
}
return tmp;
}
real(8) function code(f, b, x)
real(8), intent (in) :: f
real(8), intent (in) :: b
real(8), intent (in) :: x
real(8) :: t_0
real(8) :: tmp
t_0 = x / tan(b)
if (f <= (-175.0d0)) then
tmp = ((-1.0d0) / sin(b)) - t_0
else if (f <= 14.2d0) then
tmp = (sqrt((1.0d0 / (2.0d0 + ((f * f) + (x * 2.0d0))))) * (f / b)) - t_0
else
tmp = (1.0d0 / sin(b)) - t_0
end if
code = tmp
end function
public static double code(double F, double B, double x) {
double t_0 = x / Math.tan(B);
double tmp;
if (F <= -175.0) {
tmp = (-1.0 / Math.sin(B)) - t_0;
} else if (F <= 14.2) {
tmp = (Math.sqrt((1.0 / (2.0 + ((F * F) + (x * 2.0))))) * (F / B)) - t_0;
} else {
tmp = (1.0 / Math.sin(B)) - t_0;
}
return tmp;
}
def code(F, B, x): t_0 = x / math.tan(B) tmp = 0 if F <= -175.0: tmp = (-1.0 / math.sin(B)) - t_0 elif F <= 14.2: tmp = (math.sqrt((1.0 / (2.0 + ((F * F) + (x * 2.0))))) * (F / B)) - t_0 else: tmp = (1.0 / math.sin(B)) - t_0 return tmp
function code(F, B, x) t_0 = Float64(x / tan(B)) tmp = 0.0 if (F <= -175.0) tmp = Float64(Float64(-1.0 / sin(B)) - t_0); elseif (F <= 14.2) tmp = Float64(Float64(sqrt(Float64(1.0 / Float64(2.0 + Float64(Float64(F * F) + Float64(x * 2.0))))) * Float64(F / B)) - t_0); else tmp = Float64(Float64(1.0 / sin(B)) - t_0); end return tmp end
function tmp_2 = code(F, B, x) t_0 = x / tan(B); tmp = 0.0; if (F <= -175.0) tmp = (-1.0 / sin(B)) - t_0; elseif (F <= 14.2) tmp = (sqrt((1.0 / (2.0 + ((F * F) + (x * 2.0))))) * (F / B)) - t_0; else tmp = (1.0 / sin(B)) - t_0; end tmp_2 = tmp; end
code[F_, B_, x_] := Block[{t$95$0 = N[(x / N[Tan[B], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[F, -175.0], N[(N[(-1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision], If[LessEqual[F, 14.2], N[(N[(N[Sqrt[N[(1.0 / N[(2.0 + N[(N[(F * F), $MachinePrecision] + N[(x * 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * N[(F / B), $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision], N[(N[(1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{x}{\tan B}\\
\mathbf{if}\;F \leq -175:\\
\;\;\;\;\frac{-1}{\sin B} - t\_0\\
\mathbf{elif}\;F \leq 14.2:\\
\;\;\;\;\sqrt{\frac{1}{2 + \left(F \cdot F + x \cdot 2\right)}} \cdot \frac{F}{B} - t\_0\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\sin B} - t\_0\\
\end{array}
\end{array}
if F < -175Initial program 60.8%
+-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
Simplified77.4%
Taylor expanded in F around -inf
/-lowering-/.f64N/A
sin-lowering-sin.f6499.1%
Simplified99.1%
if -175 < F < 14.199999999999999Initial program 99.4%
+-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
Simplified99.5%
Taylor expanded in B around 0
*-commutativeN/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f6482.5%
Simplified82.5%
if 14.199999999999999 < F Initial program 67.0%
+-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
Simplified77.0%
Taylor expanded in F around inf
/-lowering-/.f64N/A
sin-lowering-sin.f6499.8%
Simplified99.8%
Final simplification92.4%
(FPCore (F B x)
:precision binary64
(let* ((t_0 (/ x (tan B))))
(if (<= F -230.0)
(- (/ -1.0 (sin B)) t_0)
(if (<= F 14.5)
(- (/ (pow (+ (* F F) (+ 2.0 (* x 2.0))) -0.5) (/ B F)) t_0)
(- (/ 1.0 (sin B)) t_0)))))
double code(double F, double B, double x) {
double t_0 = x / tan(B);
double tmp;
if (F <= -230.0) {
tmp = (-1.0 / sin(B)) - t_0;
} else if (F <= 14.5) {
tmp = (pow(((F * F) + (2.0 + (x * 2.0))), -0.5) / (B / F)) - t_0;
} else {
tmp = (1.0 / sin(B)) - t_0;
}
return tmp;
}
real(8) function code(f, b, x)
real(8), intent (in) :: f
real(8), intent (in) :: b
real(8), intent (in) :: x
real(8) :: t_0
real(8) :: tmp
t_0 = x / tan(b)
if (f <= (-230.0d0)) then
tmp = ((-1.0d0) / sin(b)) - t_0
else if (f <= 14.5d0) then
tmp = ((((f * f) + (2.0d0 + (x * 2.0d0))) ** (-0.5d0)) / (b / f)) - t_0
else
tmp = (1.0d0 / sin(b)) - t_0
end if
code = tmp
end function
public static double code(double F, double B, double x) {
double t_0 = x / Math.tan(B);
double tmp;
if (F <= -230.0) {
tmp = (-1.0 / Math.sin(B)) - t_0;
} else if (F <= 14.5) {
tmp = (Math.pow(((F * F) + (2.0 + (x * 2.0))), -0.5) / (B / F)) - t_0;
} else {
tmp = (1.0 / Math.sin(B)) - t_0;
}
return tmp;
}
def code(F, B, x): t_0 = x / math.tan(B) tmp = 0 if F <= -230.0: tmp = (-1.0 / math.sin(B)) - t_0 elif F <= 14.5: tmp = (math.pow(((F * F) + (2.0 + (x * 2.0))), -0.5) / (B / F)) - t_0 else: tmp = (1.0 / math.sin(B)) - t_0 return tmp
function code(F, B, x) t_0 = Float64(x / tan(B)) tmp = 0.0 if (F <= -230.0) tmp = Float64(Float64(-1.0 / sin(B)) - t_0); elseif (F <= 14.5) tmp = Float64(Float64((Float64(Float64(F * F) + Float64(2.0 + Float64(x * 2.0))) ^ -0.5) / Float64(B / F)) - t_0); else tmp = Float64(Float64(1.0 / sin(B)) - t_0); end return tmp end
function tmp_2 = code(F, B, x) t_0 = x / tan(B); tmp = 0.0; if (F <= -230.0) tmp = (-1.0 / sin(B)) - t_0; elseif (F <= 14.5) tmp = ((((F * F) + (2.0 + (x * 2.0))) ^ -0.5) / (B / F)) - t_0; else tmp = (1.0 / sin(B)) - t_0; end tmp_2 = tmp; end
code[F_, B_, x_] := Block[{t$95$0 = N[(x / N[Tan[B], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[F, -230.0], N[(N[(-1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision], If[LessEqual[F, 14.5], N[(N[(N[Power[N[(N[(F * F), $MachinePrecision] + N[(2.0 + N[(x * 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], -0.5], $MachinePrecision] / N[(B / F), $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision], N[(N[(1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{x}{\tan B}\\
\mathbf{if}\;F \leq -230:\\
\;\;\;\;\frac{-1}{\sin B} - t\_0\\
\mathbf{elif}\;F \leq 14.5:\\
\;\;\;\;\frac{{\left(F \cdot F + \left(2 + x \cdot 2\right)\right)}^{-0.5}}{\frac{B}{F}} - t\_0\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\sin B} - t\_0\\
\end{array}
\end{array}
if F < -230Initial program 60.8%
+-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
Simplified77.4%
Taylor expanded in F around -inf
/-lowering-/.f64N/A
sin-lowering-sin.f6499.1%
Simplified99.1%
if -230 < F < 14.5Initial program 99.4%
+-commutativeN/A
div-invN/A
sub-negN/A
--lowering--.f64N/A
Applied egg-rr99.5%
Taylor expanded in B around 0
/-lowering-/.f6482.4%
Simplified82.4%
if 14.5 < F Initial program 67.0%
+-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
Simplified77.0%
Taylor expanded in F around inf
/-lowering-/.f64N/A
sin-lowering-sin.f6499.8%
Simplified99.8%
(FPCore (F B x)
:precision binary64
(let* ((t_0 (/ x (tan B))))
(if (<= F -7.8e-52)
(- (/ -1.0 (sin B)) t_0)
(if (<= F 5.2e-45)
(/ (* x (cos B)) (- 0.0 (sin B)))
(if (<= F 13.2)
(/ 1.0 (* (/ (sin B) F) (sqrt (+ (* F F) 2.0))))
(- (/ 1.0 (sin B)) t_0))))))
double code(double F, double B, double x) {
double t_0 = x / tan(B);
double tmp;
if (F <= -7.8e-52) {
tmp = (-1.0 / sin(B)) - t_0;
} else if (F <= 5.2e-45) {
tmp = (x * cos(B)) / (0.0 - sin(B));
} else if (F <= 13.2) {
tmp = 1.0 / ((sin(B) / F) * sqrt(((F * F) + 2.0)));
} else {
tmp = (1.0 / sin(B)) - t_0;
}
return tmp;
}
real(8) function code(f, b, x)
real(8), intent (in) :: f
real(8), intent (in) :: b
real(8), intent (in) :: x
real(8) :: t_0
real(8) :: tmp
t_0 = x / tan(b)
if (f <= (-7.8d-52)) then
tmp = ((-1.0d0) / sin(b)) - t_0
else if (f <= 5.2d-45) then
tmp = (x * cos(b)) / (0.0d0 - sin(b))
else if (f <= 13.2d0) then
tmp = 1.0d0 / ((sin(b) / f) * sqrt(((f * f) + 2.0d0)))
else
tmp = (1.0d0 / sin(b)) - t_0
end if
code = tmp
end function
public static double code(double F, double B, double x) {
double t_0 = x / Math.tan(B);
double tmp;
if (F <= -7.8e-52) {
tmp = (-1.0 / Math.sin(B)) - t_0;
} else if (F <= 5.2e-45) {
tmp = (x * Math.cos(B)) / (0.0 - Math.sin(B));
} else if (F <= 13.2) {
tmp = 1.0 / ((Math.sin(B) / F) * Math.sqrt(((F * F) + 2.0)));
} else {
tmp = (1.0 / Math.sin(B)) - t_0;
}
return tmp;
}
def code(F, B, x): t_0 = x / math.tan(B) tmp = 0 if F <= -7.8e-52: tmp = (-1.0 / math.sin(B)) - t_0 elif F <= 5.2e-45: tmp = (x * math.cos(B)) / (0.0 - math.sin(B)) elif F <= 13.2: tmp = 1.0 / ((math.sin(B) / F) * math.sqrt(((F * F) + 2.0))) else: tmp = (1.0 / math.sin(B)) - t_0 return tmp
function code(F, B, x) t_0 = Float64(x / tan(B)) tmp = 0.0 if (F <= -7.8e-52) tmp = Float64(Float64(-1.0 / sin(B)) - t_0); elseif (F <= 5.2e-45) tmp = Float64(Float64(x * cos(B)) / Float64(0.0 - sin(B))); elseif (F <= 13.2) tmp = Float64(1.0 / Float64(Float64(sin(B) / F) * sqrt(Float64(Float64(F * F) + 2.0)))); else tmp = Float64(Float64(1.0 / sin(B)) - t_0); end return tmp end
function tmp_2 = code(F, B, x) t_0 = x / tan(B); tmp = 0.0; if (F <= -7.8e-52) tmp = (-1.0 / sin(B)) - t_0; elseif (F <= 5.2e-45) tmp = (x * cos(B)) / (0.0 - sin(B)); elseif (F <= 13.2) tmp = 1.0 / ((sin(B) / F) * sqrt(((F * F) + 2.0))); else tmp = (1.0 / sin(B)) - t_0; end tmp_2 = tmp; end
code[F_, B_, x_] := Block[{t$95$0 = N[(x / N[Tan[B], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[F, -7.8e-52], N[(N[(-1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision], If[LessEqual[F, 5.2e-45], N[(N[(x * N[Cos[B], $MachinePrecision]), $MachinePrecision] / N[(0.0 - N[Sin[B], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[F, 13.2], N[(1.0 / N[(N[(N[Sin[B], $MachinePrecision] / F), $MachinePrecision] * N[Sqrt[N[(N[(F * F), $MachinePrecision] + 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{x}{\tan B}\\
\mathbf{if}\;F \leq -7.8 \cdot 10^{-52}:\\
\;\;\;\;\frac{-1}{\sin B} - t\_0\\
\mathbf{elif}\;F \leq 5.2 \cdot 10^{-45}:\\
\;\;\;\;\frac{x \cdot \cos B}{0 - \sin B}\\
\mathbf{elif}\;F \leq 13.2:\\
\;\;\;\;\frac{1}{\frac{\sin B}{F} \cdot \sqrt{F \cdot F + 2}}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\sin B} - t\_0\\
\end{array}
\end{array}
if F < -7.80000000000000036e-52Initial program 63.9%
+-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
Simplified79.2%
Taylor expanded in F around -inf
/-lowering-/.f64N/A
sin-lowering-sin.f6495.1%
Simplified95.1%
if -7.80000000000000036e-52 < F < 5.19999999999999973e-45Initial program 99.5%
Taylor expanded in x around inf
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
sin-lowering-sin.f6477.0%
Simplified77.0%
if 5.19999999999999973e-45 < F < 13.199999999999999Initial program 98.8%
Taylor expanded in x around 0
associate-*l/N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f6482.3%
Simplified82.3%
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
div-invN/A
metadata-evalN/A
sqrt-divN/A
clear-numN/A
/-rgt-identityN/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
pow1/2N/A
pow-lowering-pow.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f6482.5%
Applied egg-rr82.5%
clear-numN/A
metadata-evalN/A
/-lowering-/.f64N/A
metadata-evalN/A
*-commutativeN/A
associate-/l*N/A
*-lowering-*.f64N/A
unpow1/2N/A
sqrt-lowering-sqrt.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sin-lowering-sin.f6482.7%
Applied egg-rr82.7%
if 13.199999999999999 < F Initial program 67.0%
+-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
Simplified77.0%
Taylor expanded in F around inf
/-lowering-/.f64N/A
sin-lowering-sin.f6499.8%
Simplified99.8%
Final simplification89.7%
(FPCore (F B x)
:precision binary64
(let* ((t_0 (/ x (tan B))))
(if (<= F -2.8e-52)
(- (/ -1.0 (sin B)) t_0)
(if (<= F 1.25e-47)
(/ (* x (cos B)) (- 0.0 (sin B)))
(if (<= F 6.9)
(/ F (* (sin B) (sqrt (+ (* F F) 2.0))))
(- (/ 1.0 (sin B)) t_0))))))
double code(double F, double B, double x) {
double t_0 = x / tan(B);
double tmp;
if (F <= -2.8e-52) {
tmp = (-1.0 / sin(B)) - t_0;
} else if (F <= 1.25e-47) {
tmp = (x * cos(B)) / (0.0 - sin(B));
} else if (F <= 6.9) {
tmp = F / (sin(B) * sqrt(((F * F) + 2.0)));
} else {
tmp = (1.0 / sin(B)) - t_0;
}
return tmp;
}
real(8) function code(f, b, x)
real(8), intent (in) :: f
real(8), intent (in) :: b
real(8), intent (in) :: x
real(8) :: t_0
real(8) :: tmp
t_0 = x / tan(b)
if (f <= (-2.8d-52)) then
tmp = ((-1.0d0) / sin(b)) - t_0
else if (f <= 1.25d-47) then
tmp = (x * cos(b)) / (0.0d0 - sin(b))
else if (f <= 6.9d0) then
tmp = f / (sin(b) * sqrt(((f * f) + 2.0d0)))
else
tmp = (1.0d0 / sin(b)) - t_0
end if
code = tmp
end function
public static double code(double F, double B, double x) {
double t_0 = x / Math.tan(B);
double tmp;
if (F <= -2.8e-52) {
tmp = (-1.0 / Math.sin(B)) - t_0;
} else if (F <= 1.25e-47) {
tmp = (x * Math.cos(B)) / (0.0 - Math.sin(B));
} else if (F <= 6.9) {
tmp = F / (Math.sin(B) * Math.sqrt(((F * F) + 2.0)));
} else {
tmp = (1.0 / Math.sin(B)) - t_0;
}
return tmp;
}
def code(F, B, x): t_0 = x / math.tan(B) tmp = 0 if F <= -2.8e-52: tmp = (-1.0 / math.sin(B)) - t_0 elif F <= 1.25e-47: tmp = (x * math.cos(B)) / (0.0 - math.sin(B)) elif F <= 6.9: tmp = F / (math.sin(B) * math.sqrt(((F * F) + 2.0))) else: tmp = (1.0 / math.sin(B)) - t_0 return tmp
function code(F, B, x) t_0 = Float64(x / tan(B)) tmp = 0.0 if (F <= -2.8e-52) tmp = Float64(Float64(-1.0 / sin(B)) - t_0); elseif (F <= 1.25e-47) tmp = Float64(Float64(x * cos(B)) / Float64(0.0 - sin(B))); elseif (F <= 6.9) tmp = Float64(F / Float64(sin(B) * sqrt(Float64(Float64(F * F) + 2.0)))); else tmp = Float64(Float64(1.0 / sin(B)) - t_0); end return tmp end
function tmp_2 = code(F, B, x) t_0 = x / tan(B); tmp = 0.0; if (F <= -2.8e-52) tmp = (-1.0 / sin(B)) - t_0; elseif (F <= 1.25e-47) tmp = (x * cos(B)) / (0.0 - sin(B)); elseif (F <= 6.9) tmp = F / (sin(B) * sqrt(((F * F) + 2.0))); else tmp = (1.0 / sin(B)) - t_0; end tmp_2 = tmp; end
code[F_, B_, x_] := Block[{t$95$0 = N[(x / N[Tan[B], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[F, -2.8e-52], N[(N[(-1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision], If[LessEqual[F, 1.25e-47], N[(N[(x * N[Cos[B], $MachinePrecision]), $MachinePrecision] / N[(0.0 - N[Sin[B], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[F, 6.9], N[(F / N[(N[Sin[B], $MachinePrecision] * N[Sqrt[N[(N[(F * F), $MachinePrecision] + 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{x}{\tan B}\\
\mathbf{if}\;F \leq -2.8 \cdot 10^{-52}:\\
\;\;\;\;\frac{-1}{\sin B} - t\_0\\
\mathbf{elif}\;F \leq 1.25 \cdot 10^{-47}:\\
\;\;\;\;\frac{x \cdot \cos B}{0 - \sin B}\\
\mathbf{elif}\;F \leq 6.9:\\
\;\;\;\;\frac{F}{\sin B \cdot \sqrt{F \cdot F + 2}}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\sin B} - t\_0\\
\end{array}
\end{array}
if F < -2.79999999999999995e-52Initial program 63.9%
+-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
Simplified79.2%
Taylor expanded in F around -inf
/-lowering-/.f64N/A
sin-lowering-sin.f6495.1%
Simplified95.1%
if -2.79999999999999995e-52 < F < 1.25000000000000003e-47Initial program 99.5%
Taylor expanded in x around inf
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
sin-lowering-sin.f6477.0%
Simplified77.0%
if 1.25000000000000003e-47 < F < 6.9000000000000004Initial program 98.8%
Taylor expanded in x around 0
associate-*l/N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f6482.3%
Simplified82.3%
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
div-invN/A
metadata-evalN/A
sqrt-divN/A
clear-numN/A
/-rgt-identityN/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
pow1/2N/A
pow-lowering-pow.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f6482.5%
Applied egg-rr82.5%
*-commutativeN/A
*-lowering-*.f64N/A
unpow1/2N/A
sqrt-lowering-sqrt.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f6482.5%
Applied egg-rr82.5%
if 6.9000000000000004 < F Initial program 67.0%
+-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
Simplified77.0%
Taylor expanded in F around inf
/-lowering-/.f64N/A
sin-lowering-sin.f6499.8%
Simplified99.8%
Final simplification89.7%
(FPCore (F B x)
:precision binary64
(let* ((t_0 (/ x (tan B))))
(if (<= F -7.8e-52)
(- (/ -1.0 (sin B)) t_0)
(if (<= F 2.2e-49)
(/ (* x (cos B)) (- 0.0 (sin B)))
(if (<= F 0.047)
(/ F (* (sin B) (sqrt 2.0)))
(- (/ 1.0 (sin B)) t_0))))))
double code(double F, double B, double x) {
double t_0 = x / tan(B);
double tmp;
if (F <= -7.8e-52) {
tmp = (-1.0 / sin(B)) - t_0;
} else if (F <= 2.2e-49) {
tmp = (x * cos(B)) / (0.0 - sin(B));
} else if (F <= 0.047) {
tmp = F / (sin(B) * sqrt(2.0));
} else {
tmp = (1.0 / sin(B)) - t_0;
}
return tmp;
}
real(8) function code(f, b, x)
real(8), intent (in) :: f
real(8), intent (in) :: b
real(8), intent (in) :: x
real(8) :: t_0
real(8) :: tmp
t_0 = x / tan(b)
if (f <= (-7.8d-52)) then
tmp = ((-1.0d0) / sin(b)) - t_0
else if (f <= 2.2d-49) then
tmp = (x * cos(b)) / (0.0d0 - sin(b))
else if (f <= 0.047d0) then
tmp = f / (sin(b) * sqrt(2.0d0))
else
tmp = (1.0d0 / sin(b)) - t_0
end if
code = tmp
end function
public static double code(double F, double B, double x) {
double t_0 = x / Math.tan(B);
double tmp;
if (F <= -7.8e-52) {
tmp = (-1.0 / Math.sin(B)) - t_0;
} else if (F <= 2.2e-49) {
tmp = (x * Math.cos(B)) / (0.0 - Math.sin(B));
} else if (F <= 0.047) {
tmp = F / (Math.sin(B) * Math.sqrt(2.0));
} else {
tmp = (1.0 / Math.sin(B)) - t_0;
}
return tmp;
}
def code(F, B, x): t_0 = x / math.tan(B) tmp = 0 if F <= -7.8e-52: tmp = (-1.0 / math.sin(B)) - t_0 elif F <= 2.2e-49: tmp = (x * math.cos(B)) / (0.0 - math.sin(B)) elif F <= 0.047: tmp = F / (math.sin(B) * math.sqrt(2.0)) else: tmp = (1.0 / math.sin(B)) - t_0 return tmp
function code(F, B, x) t_0 = Float64(x / tan(B)) tmp = 0.0 if (F <= -7.8e-52) tmp = Float64(Float64(-1.0 / sin(B)) - t_0); elseif (F <= 2.2e-49) tmp = Float64(Float64(x * cos(B)) / Float64(0.0 - sin(B))); elseif (F <= 0.047) tmp = Float64(F / Float64(sin(B) * sqrt(2.0))); else tmp = Float64(Float64(1.0 / sin(B)) - t_0); end return tmp end
function tmp_2 = code(F, B, x) t_0 = x / tan(B); tmp = 0.0; if (F <= -7.8e-52) tmp = (-1.0 / sin(B)) - t_0; elseif (F <= 2.2e-49) tmp = (x * cos(B)) / (0.0 - sin(B)); elseif (F <= 0.047) tmp = F / (sin(B) * sqrt(2.0)); else tmp = (1.0 / sin(B)) - t_0; end tmp_2 = tmp; end
code[F_, B_, x_] := Block[{t$95$0 = N[(x / N[Tan[B], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[F, -7.8e-52], N[(N[(-1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision], If[LessEqual[F, 2.2e-49], N[(N[(x * N[Cos[B], $MachinePrecision]), $MachinePrecision] / N[(0.0 - N[Sin[B], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[F, 0.047], N[(F / N[(N[Sin[B], $MachinePrecision] * N[Sqrt[2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{x}{\tan B}\\
\mathbf{if}\;F \leq -7.8 \cdot 10^{-52}:\\
\;\;\;\;\frac{-1}{\sin B} - t\_0\\
\mathbf{elif}\;F \leq 2.2 \cdot 10^{-49}:\\
\;\;\;\;\frac{x \cdot \cos B}{0 - \sin B}\\
\mathbf{elif}\;F \leq 0.047:\\
\;\;\;\;\frac{F}{\sin B \cdot \sqrt{2}}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\sin B} - t\_0\\
\end{array}
\end{array}
if F < -7.80000000000000036e-52Initial program 63.9%
+-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
Simplified79.2%
Taylor expanded in F around -inf
/-lowering-/.f64N/A
sin-lowering-sin.f6495.1%
Simplified95.1%
if -7.80000000000000036e-52 < F < 2.1999999999999999e-49Initial program 99.5%
Taylor expanded in x around inf
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
sin-lowering-sin.f6477.0%
Simplified77.0%
if 2.1999999999999999e-49 < F < 0.047Initial program 98.8%
Taylor expanded in x around 0
associate-*l/N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f6482.3%
Simplified82.3%
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
div-invN/A
metadata-evalN/A
sqrt-divN/A
clear-numN/A
/-rgt-identityN/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
pow1/2N/A
pow-lowering-pow.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f6482.5%
Applied egg-rr82.5%
Taylor expanded in F around 0
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
sqrt-lowering-sqrt.f6475.6%
Simplified75.6%
if 0.047 < F Initial program 67.0%
+-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
Simplified77.0%
Taylor expanded in F around inf
/-lowering-/.f64N/A
sin-lowering-sin.f6499.8%
Simplified99.8%
Final simplification89.4%
(FPCore (F B x)
:precision binary64
(let* ((t_0 (/ x (tan B))))
(if (<= F -8.4e-69)
(- (/ -1.0 (sin B)) t_0)
(if (<= F 3.05e-92)
(/ (- (/ F (sqrt (+ (* F F) (+ 2.0 (* x 2.0))))) x) B)
(- (/ 1.0 (sin B)) t_0)))))
double code(double F, double B, double x) {
double t_0 = x / tan(B);
double tmp;
if (F <= -8.4e-69) {
tmp = (-1.0 / sin(B)) - t_0;
} else if (F <= 3.05e-92) {
tmp = ((F / sqrt(((F * F) + (2.0 + (x * 2.0))))) - x) / B;
} else {
tmp = (1.0 / sin(B)) - t_0;
}
return tmp;
}
real(8) function code(f, b, x)
real(8), intent (in) :: f
real(8), intent (in) :: b
real(8), intent (in) :: x
real(8) :: t_0
real(8) :: tmp
t_0 = x / tan(b)
if (f <= (-8.4d-69)) then
tmp = ((-1.0d0) / sin(b)) - t_0
else if (f <= 3.05d-92) then
tmp = ((f / sqrt(((f * f) + (2.0d0 + (x * 2.0d0))))) - x) / b
else
tmp = (1.0d0 / sin(b)) - t_0
end if
code = tmp
end function
public static double code(double F, double B, double x) {
double t_0 = x / Math.tan(B);
double tmp;
if (F <= -8.4e-69) {
tmp = (-1.0 / Math.sin(B)) - t_0;
} else if (F <= 3.05e-92) {
tmp = ((F / Math.sqrt(((F * F) + (2.0 + (x * 2.0))))) - x) / B;
} else {
tmp = (1.0 / Math.sin(B)) - t_0;
}
return tmp;
}
def code(F, B, x): t_0 = x / math.tan(B) tmp = 0 if F <= -8.4e-69: tmp = (-1.0 / math.sin(B)) - t_0 elif F <= 3.05e-92: tmp = ((F / math.sqrt(((F * F) + (2.0 + (x * 2.0))))) - x) / B else: tmp = (1.0 / math.sin(B)) - t_0 return tmp
function code(F, B, x) t_0 = Float64(x / tan(B)) tmp = 0.0 if (F <= -8.4e-69) tmp = Float64(Float64(-1.0 / sin(B)) - t_0); elseif (F <= 3.05e-92) tmp = Float64(Float64(Float64(F / sqrt(Float64(Float64(F * F) + Float64(2.0 + Float64(x * 2.0))))) - x) / B); else tmp = Float64(Float64(1.0 / sin(B)) - t_0); end return tmp end
function tmp_2 = code(F, B, x) t_0 = x / tan(B); tmp = 0.0; if (F <= -8.4e-69) tmp = (-1.0 / sin(B)) - t_0; elseif (F <= 3.05e-92) tmp = ((F / sqrt(((F * F) + (2.0 + (x * 2.0))))) - x) / B; else tmp = (1.0 / sin(B)) - t_0; end tmp_2 = tmp; end
code[F_, B_, x_] := Block[{t$95$0 = N[(x / N[Tan[B], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[F, -8.4e-69], N[(N[(-1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision], If[LessEqual[F, 3.05e-92], N[(N[(N[(F / N[Sqrt[N[(N[(F * F), $MachinePrecision] + N[(2.0 + N[(x * 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] - x), $MachinePrecision] / B), $MachinePrecision], N[(N[(1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision] - t$95$0), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{x}{\tan B}\\
\mathbf{if}\;F \leq -8.4 \cdot 10^{-69}:\\
\;\;\;\;\frac{-1}{\sin B} - t\_0\\
\mathbf{elif}\;F \leq 3.05 \cdot 10^{-92}:\\
\;\;\;\;\frac{\frac{F}{\sqrt{F \cdot F + \left(2 + x \cdot 2\right)}} - x}{B}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\sin B} - t\_0\\
\end{array}
\end{array}
if F < -8.3999999999999999e-69Initial program 64.8%
+-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
Simplified79.6%
Taylor expanded in F around -inf
/-lowering-/.f64N/A
sin-lowering-sin.f6495.3%
Simplified95.3%
if -8.3999999999999999e-69 < F < 3.04999999999999994e-92Initial program 99.5%
Taylor expanded in B around 0
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f6451.9%
Simplified51.9%
/-lowering-/.f64N/A
Applied egg-rr51.9%
if 3.04999999999999994e-92 < F Initial program 73.7%
+-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
Simplified81.6%
Taylor expanded in F around inf
/-lowering-/.f64N/A
sin-lowering-sin.f6487.1%
Simplified87.1%
Final simplification79.2%
(FPCore (F B x)
:precision binary64
(if (<= B 0.095)
(/ (- (/ F (sqrt (+ (* F F) (+ 2.0 (* x 2.0))))) x) B)
(if (<= B 1.75e+112)
(* (/ 1.0 (sin B)) (* F (sqrt 0.5)))
(/ -1.0 (sin B)))))
double code(double F, double B, double x) {
double tmp;
if (B <= 0.095) {
tmp = ((F / sqrt(((F * F) + (2.0 + (x * 2.0))))) - x) / B;
} else if (B <= 1.75e+112) {
tmp = (1.0 / sin(B)) * (F * sqrt(0.5));
} else {
tmp = -1.0 / sin(B);
}
return tmp;
}
real(8) function code(f, b, x)
real(8), intent (in) :: f
real(8), intent (in) :: b
real(8), intent (in) :: x
real(8) :: tmp
if (b <= 0.095d0) then
tmp = ((f / sqrt(((f * f) + (2.0d0 + (x * 2.0d0))))) - x) / b
else if (b <= 1.75d+112) then
tmp = (1.0d0 / sin(b)) * (f * sqrt(0.5d0))
else
tmp = (-1.0d0) / sin(b)
end if
code = tmp
end function
public static double code(double F, double B, double x) {
double tmp;
if (B <= 0.095) {
tmp = ((F / Math.sqrt(((F * F) + (2.0 + (x * 2.0))))) - x) / B;
} else if (B <= 1.75e+112) {
tmp = (1.0 / Math.sin(B)) * (F * Math.sqrt(0.5));
} else {
tmp = -1.0 / Math.sin(B);
}
return tmp;
}
def code(F, B, x): tmp = 0 if B <= 0.095: tmp = ((F / math.sqrt(((F * F) + (2.0 + (x * 2.0))))) - x) / B elif B <= 1.75e+112: tmp = (1.0 / math.sin(B)) * (F * math.sqrt(0.5)) else: tmp = -1.0 / math.sin(B) return tmp
function code(F, B, x) tmp = 0.0 if (B <= 0.095) tmp = Float64(Float64(Float64(F / sqrt(Float64(Float64(F * F) + Float64(2.0 + Float64(x * 2.0))))) - x) / B); elseif (B <= 1.75e+112) tmp = Float64(Float64(1.0 / sin(B)) * Float64(F * sqrt(0.5))); else tmp = Float64(-1.0 / sin(B)); end return tmp end
function tmp_2 = code(F, B, x) tmp = 0.0; if (B <= 0.095) tmp = ((F / sqrt(((F * F) + (2.0 + (x * 2.0))))) - x) / B; elseif (B <= 1.75e+112) tmp = (1.0 / sin(B)) * (F * sqrt(0.5)); else tmp = -1.0 / sin(B); end tmp_2 = tmp; end
code[F_, B_, x_] := If[LessEqual[B, 0.095], N[(N[(N[(F / N[Sqrt[N[(N[(F * F), $MachinePrecision] + N[(2.0 + N[(x * 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] - x), $MachinePrecision] / B), $MachinePrecision], If[LessEqual[B, 1.75e+112], N[(N[(1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision] * N[(F * N[Sqrt[0.5], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(-1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;B \leq 0.095:\\
\;\;\;\;\frac{\frac{F}{\sqrt{F \cdot F + \left(2 + x \cdot 2\right)}} - x}{B}\\
\mathbf{elif}\;B \leq 1.75 \cdot 10^{+112}:\\
\;\;\;\;\frac{1}{\sin B} \cdot \left(F \cdot \sqrt{0.5}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{\sin B}\\
\end{array}
\end{array}
if B < 0.095000000000000001Initial program 74.1%
Taylor expanded in B around 0
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f6454.4%
Simplified54.4%
/-lowering-/.f64N/A
Applied egg-rr54.5%
if 0.095000000000000001 < B < 1.74999999999999998e112Initial program 94.9%
Taylor expanded in x around 0
associate-*l/N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f6435.4%
Simplified35.4%
Taylor expanded in F around 0
/-lowering-/.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
sin-lowering-sin.f6429.0%
Simplified29.0%
clear-numN/A
associate-/r/N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f6429.2%
Applied egg-rr29.2%
if 1.74999999999999998e112 < B Initial program 92.1%
Taylor expanded in x around 0
associate-*l/N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f6439.9%
Simplified39.9%
Taylor expanded in F around -inf
/-lowering-/.f64N/A
sin-lowering-sin.f6428.1%
Simplified28.1%
Final simplification48.4%
(FPCore (F B x) :precision binary64 (if (<= B 0.1) (/ (- (/ F (sqrt (+ (* F F) (+ 2.0 (* x 2.0))))) x) B) (if (<= B 7.2e+111) (/ F (* (sin B) (sqrt 2.0))) (/ -1.0 (sin B)))))
double code(double F, double B, double x) {
double tmp;
if (B <= 0.1) {
tmp = ((F / sqrt(((F * F) + (2.0 + (x * 2.0))))) - x) / B;
} else if (B <= 7.2e+111) {
tmp = F / (sin(B) * sqrt(2.0));
} else {
tmp = -1.0 / sin(B);
}
return tmp;
}
real(8) function code(f, b, x)
real(8), intent (in) :: f
real(8), intent (in) :: b
real(8), intent (in) :: x
real(8) :: tmp
if (b <= 0.1d0) then
tmp = ((f / sqrt(((f * f) + (2.0d0 + (x * 2.0d0))))) - x) / b
else if (b <= 7.2d+111) then
tmp = f / (sin(b) * sqrt(2.0d0))
else
tmp = (-1.0d0) / sin(b)
end if
code = tmp
end function
public static double code(double F, double B, double x) {
double tmp;
if (B <= 0.1) {
tmp = ((F / Math.sqrt(((F * F) + (2.0 + (x * 2.0))))) - x) / B;
} else if (B <= 7.2e+111) {
tmp = F / (Math.sin(B) * Math.sqrt(2.0));
} else {
tmp = -1.0 / Math.sin(B);
}
return tmp;
}
def code(F, B, x): tmp = 0 if B <= 0.1: tmp = ((F / math.sqrt(((F * F) + (2.0 + (x * 2.0))))) - x) / B elif B <= 7.2e+111: tmp = F / (math.sin(B) * math.sqrt(2.0)) else: tmp = -1.0 / math.sin(B) return tmp
function code(F, B, x) tmp = 0.0 if (B <= 0.1) tmp = Float64(Float64(Float64(F / sqrt(Float64(Float64(F * F) + Float64(2.0 + Float64(x * 2.0))))) - x) / B); elseif (B <= 7.2e+111) tmp = Float64(F / Float64(sin(B) * sqrt(2.0))); else tmp = Float64(-1.0 / sin(B)); end return tmp end
function tmp_2 = code(F, B, x) tmp = 0.0; if (B <= 0.1) tmp = ((F / sqrt(((F * F) + (2.0 + (x * 2.0))))) - x) / B; elseif (B <= 7.2e+111) tmp = F / (sin(B) * sqrt(2.0)); else tmp = -1.0 / sin(B); end tmp_2 = tmp; end
code[F_, B_, x_] := If[LessEqual[B, 0.1], N[(N[(N[(F / N[Sqrt[N[(N[(F * F), $MachinePrecision] + N[(2.0 + N[(x * 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] - x), $MachinePrecision] / B), $MachinePrecision], If[LessEqual[B, 7.2e+111], N[(F / N[(N[Sin[B], $MachinePrecision] * N[Sqrt[2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(-1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;B \leq 0.1:\\
\;\;\;\;\frac{\frac{F}{\sqrt{F \cdot F + \left(2 + x \cdot 2\right)}} - x}{B}\\
\mathbf{elif}\;B \leq 7.2 \cdot 10^{+111}:\\
\;\;\;\;\frac{F}{\sin B \cdot \sqrt{2}}\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{\sin B}\\
\end{array}
\end{array}
if B < 0.10000000000000001Initial program 74.1%
Taylor expanded in B around 0
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f6454.4%
Simplified54.4%
/-lowering-/.f64N/A
Applied egg-rr54.5%
if 0.10000000000000001 < B < 7.2000000000000004e111Initial program 94.9%
Taylor expanded in x around 0
associate-*l/N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f6435.4%
Simplified35.4%
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
div-invN/A
metadata-evalN/A
sqrt-divN/A
clear-numN/A
/-rgt-identityN/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
pow1/2N/A
pow-lowering-pow.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f6435.4%
Applied egg-rr35.4%
Taylor expanded in F around 0
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
sqrt-lowering-sqrt.f6429.0%
Simplified29.0%
if 7.2000000000000004e111 < B Initial program 92.1%
Taylor expanded in x around 0
associate-*l/N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f6439.9%
Simplified39.9%
Taylor expanded in F around -inf
/-lowering-/.f64N/A
sin-lowering-sin.f6428.1%
Simplified28.1%
Final simplification48.4%
(FPCore (F B x) :precision binary64 (if (<= B 0.1) (/ (- (/ F (sqrt (+ (* F F) (+ 2.0 (* x 2.0))))) x) B) (if (<= B 7.2e+111) (* F (/ (sqrt 0.5) (sin B))) (/ -1.0 (sin B)))))
double code(double F, double B, double x) {
double tmp;
if (B <= 0.1) {
tmp = ((F / sqrt(((F * F) + (2.0 + (x * 2.0))))) - x) / B;
} else if (B <= 7.2e+111) {
tmp = F * (sqrt(0.5) / sin(B));
} else {
tmp = -1.0 / sin(B);
}
return tmp;
}
real(8) function code(f, b, x)
real(8), intent (in) :: f
real(8), intent (in) :: b
real(8), intent (in) :: x
real(8) :: tmp
if (b <= 0.1d0) then
tmp = ((f / sqrt(((f * f) + (2.0d0 + (x * 2.0d0))))) - x) / b
else if (b <= 7.2d+111) then
tmp = f * (sqrt(0.5d0) / sin(b))
else
tmp = (-1.0d0) / sin(b)
end if
code = tmp
end function
public static double code(double F, double B, double x) {
double tmp;
if (B <= 0.1) {
tmp = ((F / Math.sqrt(((F * F) + (2.0 + (x * 2.0))))) - x) / B;
} else if (B <= 7.2e+111) {
tmp = F * (Math.sqrt(0.5) / Math.sin(B));
} else {
tmp = -1.0 / Math.sin(B);
}
return tmp;
}
def code(F, B, x): tmp = 0 if B <= 0.1: tmp = ((F / math.sqrt(((F * F) + (2.0 + (x * 2.0))))) - x) / B elif B <= 7.2e+111: tmp = F * (math.sqrt(0.5) / math.sin(B)) else: tmp = -1.0 / math.sin(B) return tmp
function code(F, B, x) tmp = 0.0 if (B <= 0.1) tmp = Float64(Float64(Float64(F / sqrt(Float64(Float64(F * F) + Float64(2.0 + Float64(x * 2.0))))) - x) / B); elseif (B <= 7.2e+111) tmp = Float64(F * Float64(sqrt(0.5) / sin(B))); else tmp = Float64(-1.0 / sin(B)); end return tmp end
function tmp_2 = code(F, B, x) tmp = 0.0; if (B <= 0.1) tmp = ((F / sqrt(((F * F) + (2.0 + (x * 2.0))))) - x) / B; elseif (B <= 7.2e+111) tmp = F * (sqrt(0.5) / sin(B)); else tmp = -1.0 / sin(B); end tmp_2 = tmp; end
code[F_, B_, x_] := If[LessEqual[B, 0.1], N[(N[(N[(F / N[Sqrt[N[(N[(F * F), $MachinePrecision] + N[(2.0 + N[(x * 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] - x), $MachinePrecision] / B), $MachinePrecision], If[LessEqual[B, 7.2e+111], N[(F * N[(N[Sqrt[0.5], $MachinePrecision] / N[Sin[B], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(-1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;B \leq 0.1:\\
\;\;\;\;\frac{\frac{F}{\sqrt{F \cdot F + \left(2 + x \cdot 2\right)}} - x}{B}\\
\mathbf{elif}\;B \leq 7.2 \cdot 10^{+111}:\\
\;\;\;\;F \cdot \frac{\sqrt{0.5}}{\sin B}\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{\sin B}\\
\end{array}
\end{array}
if B < 0.10000000000000001Initial program 74.1%
Taylor expanded in B around 0
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f6454.4%
Simplified54.4%
/-lowering-/.f64N/A
Applied egg-rr54.5%
if 0.10000000000000001 < B < 7.2000000000000004e111Initial program 94.9%
Taylor expanded in x around 0
associate-*l/N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f6435.4%
Simplified35.4%
Taylor expanded in F around 0
/-lowering-/.f64N/A
sqrt-lowering-sqrt.f64N/A
sin-lowering-sin.f6429.1%
Simplified29.1%
if 7.2000000000000004e111 < B Initial program 92.1%
Taylor expanded in x around 0
associate-*l/N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f6439.9%
Simplified39.9%
Taylor expanded in F around -inf
/-lowering-/.f64N/A
sin-lowering-sin.f6428.1%
Simplified28.1%
Final simplification48.4%
(FPCore (F B x)
:precision binary64
(if (<= B 0.102)
(/
(-
(+
(*
(sqrt (/ 1.0 (+ 2.0 (+ (* F F) (* x 2.0)))))
(+ F (* 0.16666666666666666 (* F (* B B)))))
(* B (* B (* x 0.3333333333333333))))
x)
B)
(- (/ -1.0 (sin B)) (/ x (tan B)))))
double code(double F, double B, double x) {
double tmp;
if (B <= 0.102) {
tmp = (((sqrt((1.0 / (2.0 + ((F * F) + (x * 2.0))))) * (F + (0.16666666666666666 * (F * (B * B))))) + (B * (B * (x * 0.3333333333333333)))) - x) / B;
} else {
tmp = (-1.0 / sin(B)) - (x / tan(B));
}
return tmp;
}
real(8) function code(f, b, x)
real(8), intent (in) :: f
real(8), intent (in) :: b
real(8), intent (in) :: x
real(8) :: tmp
if (b <= 0.102d0) then
tmp = (((sqrt((1.0d0 / (2.0d0 + ((f * f) + (x * 2.0d0))))) * (f + (0.16666666666666666d0 * (f * (b * b))))) + (b * (b * (x * 0.3333333333333333d0)))) - x) / b
else
tmp = ((-1.0d0) / sin(b)) - (x / tan(b))
end if
code = tmp
end function
public static double code(double F, double B, double x) {
double tmp;
if (B <= 0.102) {
tmp = (((Math.sqrt((1.0 / (2.0 + ((F * F) + (x * 2.0))))) * (F + (0.16666666666666666 * (F * (B * B))))) + (B * (B * (x * 0.3333333333333333)))) - x) / B;
} else {
tmp = (-1.0 / Math.sin(B)) - (x / Math.tan(B));
}
return tmp;
}
def code(F, B, x): tmp = 0 if B <= 0.102: tmp = (((math.sqrt((1.0 / (2.0 + ((F * F) + (x * 2.0))))) * (F + (0.16666666666666666 * (F * (B * B))))) + (B * (B * (x * 0.3333333333333333)))) - x) / B else: tmp = (-1.0 / math.sin(B)) - (x / math.tan(B)) return tmp
function code(F, B, x) tmp = 0.0 if (B <= 0.102) tmp = Float64(Float64(Float64(Float64(sqrt(Float64(1.0 / Float64(2.0 + Float64(Float64(F * F) + Float64(x * 2.0))))) * Float64(F + Float64(0.16666666666666666 * Float64(F * Float64(B * B))))) + Float64(B * Float64(B * Float64(x * 0.3333333333333333)))) - x) / B); else tmp = Float64(Float64(-1.0 / sin(B)) - Float64(x / tan(B))); end return tmp end
function tmp_2 = code(F, B, x) tmp = 0.0; if (B <= 0.102) tmp = (((sqrt((1.0 / (2.0 + ((F * F) + (x * 2.0))))) * (F + (0.16666666666666666 * (F * (B * B))))) + (B * (B * (x * 0.3333333333333333)))) - x) / B; else tmp = (-1.0 / sin(B)) - (x / tan(B)); end tmp_2 = tmp; end
code[F_, B_, x_] := If[LessEqual[B, 0.102], N[(N[(N[(N[(N[Sqrt[N[(1.0 / N[(2.0 + N[(N[(F * F), $MachinePrecision] + N[(x * 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * N[(F + N[(0.16666666666666666 * N[(F * N[(B * B), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(B * N[(B * N[(x * 0.3333333333333333), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - x), $MachinePrecision] / B), $MachinePrecision], N[(N[(-1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision] - N[(x / N[Tan[B], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;B \leq 0.102:\\
\;\;\;\;\frac{\left(\sqrt{\frac{1}{2 + \left(F \cdot F + x \cdot 2\right)}} \cdot \left(F + 0.16666666666666666 \cdot \left(F \cdot \left(B \cdot B\right)\right)\right) + B \cdot \left(B \cdot \left(x \cdot 0.3333333333333333\right)\right)\right) - x}{B}\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{\sin B} - \frac{x}{\tan B}\\
\end{array}
\end{array}
if B < 0.101999999999999993Initial program 74.1%
Taylor expanded in B around 0
/-lowering-/.f64N/A
Simplified53.8%
if 0.101999999999999993 < B Initial program 93.1%
+-commutativeN/A
unsub-negN/A
--lowering--.f64N/A
Simplified93.1%
Taylor expanded in F around -inf
/-lowering-/.f64N/A
sin-lowering-sin.f6459.2%
Simplified59.2%
Final simplification55.0%
(FPCore (F B x)
:precision binary64
(if (<= B 56.0)
(/
(-
(+
(*
(sqrt (/ 1.0 (+ 2.0 (+ (* F F) (* x 2.0)))))
(+ F (* 0.16666666666666666 (* F (* B B)))))
(* B (* B (* x 0.3333333333333333))))
x)
B)
(if (<= B 1.08e+130) (/ 1.0 (sin B)) (/ -1.0 (sin B)))))
double code(double F, double B, double x) {
double tmp;
if (B <= 56.0) {
tmp = (((sqrt((1.0 / (2.0 + ((F * F) + (x * 2.0))))) * (F + (0.16666666666666666 * (F * (B * B))))) + (B * (B * (x * 0.3333333333333333)))) - x) / B;
} else if (B <= 1.08e+130) {
tmp = 1.0 / sin(B);
} else {
tmp = -1.0 / sin(B);
}
return tmp;
}
real(8) function code(f, b, x)
real(8), intent (in) :: f
real(8), intent (in) :: b
real(8), intent (in) :: x
real(8) :: tmp
if (b <= 56.0d0) then
tmp = (((sqrt((1.0d0 / (2.0d0 + ((f * f) + (x * 2.0d0))))) * (f + (0.16666666666666666d0 * (f * (b * b))))) + (b * (b * (x * 0.3333333333333333d0)))) - x) / b
else if (b <= 1.08d+130) then
tmp = 1.0d0 / sin(b)
else
tmp = (-1.0d0) / sin(b)
end if
code = tmp
end function
public static double code(double F, double B, double x) {
double tmp;
if (B <= 56.0) {
tmp = (((Math.sqrt((1.0 / (2.0 + ((F * F) + (x * 2.0))))) * (F + (0.16666666666666666 * (F * (B * B))))) + (B * (B * (x * 0.3333333333333333)))) - x) / B;
} else if (B <= 1.08e+130) {
tmp = 1.0 / Math.sin(B);
} else {
tmp = -1.0 / Math.sin(B);
}
return tmp;
}
def code(F, B, x): tmp = 0 if B <= 56.0: tmp = (((math.sqrt((1.0 / (2.0 + ((F * F) + (x * 2.0))))) * (F + (0.16666666666666666 * (F * (B * B))))) + (B * (B * (x * 0.3333333333333333)))) - x) / B elif B <= 1.08e+130: tmp = 1.0 / math.sin(B) else: tmp = -1.0 / math.sin(B) return tmp
function code(F, B, x) tmp = 0.0 if (B <= 56.0) tmp = Float64(Float64(Float64(Float64(sqrt(Float64(1.0 / Float64(2.0 + Float64(Float64(F * F) + Float64(x * 2.0))))) * Float64(F + Float64(0.16666666666666666 * Float64(F * Float64(B * B))))) + Float64(B * Float64(B * Float64(x * 0.3333333333333333)))) - x) / B); elseif (B <= 1.08e+130) tmp = Float64(1.0 / sin(B)); else tmp = Float64(-1.0 / sin(B)); end return tmp end
function tmp_2 = code(F, B, x) tmp = 0.0; if (B <= 56.0) tmp = (((sqrt((1.0 / (2.0 + ((F * F) + (x * 2.0))))) * (F + (0.16666666666666666 * (F * (B * B))))) + (B * (B * (x * 0.3333333333333333)))) - x) / B; elseif (B <= 1.08e+130) tmp = 1.0 / sin(B); else tmp = -1.0 / sin(B); end tmp_2 = tmp; end
code[F_, B_, x_] := If[LessEqual[B, 56.0], N[(N[(N[(N[(N[Sqrt[N[(1.0 / N[(2.0 + N[(N[(F * F), $MachinePrecision] + N[(x * 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * N[(F + N[(0.16666666666666666 * N[(F * N[(B * B), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(B * N[(B * N[(x * 0.3333333333333333), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - x), $MachinePrecision] / B), $MachinePrecision], If[LessEqual[B, 1.08e+130], N[(1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision], N[(-1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;B \leq 56:\\
\;\;\;\;\frac{\left(\sqrt{\frac{1}{2 + \left(F \cdot F + x \cdot 2\right)}} \cdot \left(F + 0.16666666666666666 \cdot \left(F \cdot \left(B \cdot B\right)\right)\right) + B \cdot \left(B \cdot \left(x \cdot 0.3333333333333333\right)\right)\right) - x}{B}\\
\mathbf{elif}\;B \leq 1.08 \cdot 10^{+130}:\\
\;\;\;\;\frac{1}{\sin B}\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{\sin B}\\
\end{array}
\end{array}
if B < 56Initial program 74.2%
Taylor expanded in B around 0
/-lowering-/.f64N/A
Simplified53.6%
if 56 < B < 1.08e130Initial program 95.1%
Taylor expanded in x around 0
associate-*l/N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f6442.5%
Simplified42.5%
Taylor expanded in F around inf
/-lowering-/.f64N/A
sin-lowering-sin.f6420.3%
Simplified20.3%
if 1.08e130 < B Initial program 91.7%
Taylor expanded in x around 0
associate-*l/N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f6436.6%
Simplified36.6%
Taylor expanded in F around -inf
/-lowering-/.f64N/A
sin-lowering-sin.f6429.6%
Simplified29.6%
Final simplification47.2%
(FPCore (F B x)
:precision binary64
(if (<= F -4.6e+103)
(/ (- -1.0 x) B)
(if (<= F -4.6e-8)
(/ -1.0 (sin B))
(if (<= F 1.1e-52)
(- 0.0 (/ x B))
(if (<= F 1.45) (/ F (* B (sqrt (+ (* F F) 2.0)))) (/ (- 1.0 x) B))))))
double code(double F, double B, double x) {
double tmp;
if (F <= -4.6e+103) {
tmp = (-1.0 - x) / B;
} else if (F <= -4.6e-8) {
tmp = -1.0 / sin(B);
} else if (F <= 1.1e-52) {
tmp = 0.0 - (x / B);
} else if (F <= 1.45) {
tmp = F / (B * sqrt(((F * F) + 2.0)));
} else {
tmp = (1.0 - x) / B;
}
return tmp;
}
real(8) function code(f, b, x)
real(8), intent (in) :: f
real(8), intent (in) :: b
real(8), intent (in) :: x
real(8) :: tmp
if (f <= (-4.6d+103)) then
tmp = ((-1.0d0) - x) / b
else if (f <= (-4.6d-8)) then
tmp = (-1.0d0) / sin(b)
else if (f <= 1.1d-52) then
tmp = 0.0d0 - (x / b)
else if (f <= 1.45d0) then
tmp = f / (b * sqrt(((f * f) + 2.0d0)))
else
tmp = (1.0d0 - x) / b
end if
code = tmp
end function
public static double code(double F, double B, double x) {
double tmp;
if (F <= -4.6e+103) {
tmp = (-1.0 - x) / B;
} else if (F <= -4.6e-8) {
tmp = -1.0 / Math.sin(B);
} else if (F <= 1.1e-52) {
tmp = 0.0 - (x / B);
} else if (F <= 1.45) {
tmp = F / (B * Math.sqrt(((F * F) + 2.0)));
} else {
tmp = (1.0 - x) / B;
}
return tmp;
}
def code(F, B, x): tmp = 0 if F <= -4.6e+103: tmp = (-1.0 - x) / B elif F <= -4.6e-8: tmp = -1.0 / math.sin(B) elif F <= 1.1e-52: tmp = 0.0 - (x / B) elif F <= 1.45: tmp = F / (B * math.sqrt(((F * F) + 2.0))) else: tmp = (1.0 - x) / B return tmp
function code(F, B, x) tmp = 0.0 if (F <= -4.6e+103) tmp = Float64(Float64(-1.0 - x) / B); elseif (F <= -4.6e-8) tmp = Float64(-1.0 / sin(B)); elseif (F <= 1.1e-52) tmp = Float64(0.0 - Float64(x / B)); elseif (F <= 1.45) tmp = Float64(F / Float64(B * sqrt(Float64(Float64(F * F) + 2.0)))); else tmp = Float64(Float64(1.0 - x) / B); end return tmp end
function tmp_2 = code(F, B, x) tmp = 0.0; if (F <= -4.6e+103) tmp = (-1.0 - x) / B; elseif (F <= -4.6e-8) tmp = -1.0 / sin(B); elseif (F <= 1.1e-52) tmp = 0.0 - (x / B); elseif (F <= 1.45) tmp = F / (B * sqrt(((F * F) + 2.0))); else tmp = (1.0 - x) / B; end tmp_2 = tmp; end
code[F_, B_, x_] := If[LessEqual[F, -4.6e+103], N[(N[(-1.0 - x), $MachinePrecision] / B), $MachinePrecision], If[LessEqual[F, -4.6e-8], N[(-1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision], If[LessEqual[F, 1.1e-52], N[(0.0 - N[(x / B), $MachinePrecision]), $MachinePrecision], If[LessEqual[F, 1.45], N[(F / N[(B * N[Sqrt[N[(N[(F * F), $MachinePrecision] + 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(1.0 - x), $MachinePrecision] / B), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;F \leq -4.6 \cdot 10^{+103}:\\
\;\;\;\;\frac{-1 - x}{B}\\
\mathbf{elif}\;F \leq -4.6 \cdot 10^{-8}:\\
\;\;\;\;\frac{-1}{\sin B}\\
\mathbf{elif}\;F \leq 1.1 \cdot 10^{-52}:\\
\;\;\;\;0 - \frac{x}{B}\\
\mathbf{elif}\;F \leq 1.45:\\
\;\;\;\;\frac{F}{B \cdot \sqrt{F \cdot F + 2}}\\
\mathbf{else}:\\
\;\;\;\;\frac{1 - x}{B}\\
\end{array}
\end{array}
if F < -4.60000000000000017e103Initial program 48.7%
Taylor expanded in B around 0
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f6439.4%
Simplified39.4%
Taylor expanded in F around -inf
associate-*r/N/A
mul-1-negN/A
/-lowering-/.f64N/A
distribute-neg-inN/A
metadata-evalN/A
unsub-negN/A
--lowering--.f6455.1%
Simplified55.1%
if -4.60000000000000017e103 < F < -4.6000000000000002e-8Initial program 92.3%
Taylor expanded in x around 0
associate-*l/N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f6469.7%
Simplified69.7%
Taylor expanded in F around -inf
/-lowering-/.f64N/A
sin-lowering-sin.f6460.8%
Simplified60.8%
if -4.6000000000000002e-8 < F < 1.10000000000000005e-52Initial program 99.5%
Taylor expanded in B around 0
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f6448.1%
Simplified48.1%
Taylor expanded in F around 0
associate-*r/N/A
mul-1-negN/A
/-lowering-/.f64N/A
neg-sub0N/A
--lowering--.f6439.4%
Simplified39.4%
if 1.10000000000000005e-52 < F < 1.44999999999999996Initial program 98.9%
Taylor expanded in x around 0
associate-*l/N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f6475.0%
Simplified75.0%
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
div-invN/A
metadata-evalN/A
sqrt-divN/A
clear-numN/A
/-rgt-identityN/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
pow1/2N/A
pow-lowering-pow.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
*-lowering-*.f6475.2%
Applied egg-rr75.2%
Taylor expanded in B around 0
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f6449.0%
Simplified49.0%
if 1.44999999999999996 < F Initial program 67.0%
Taylor expanded in B around 0
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f6439.5%
Simplified39.5%
Taylor expanded in F around inf
/-lowering-/.f64N/A
--lowering--.f6451.8%
Simplified51.8%
Final simplification48.7%
(FPCore (F B x)
:precision binary64
(if (<= F -3.3e+103)
(/ (- -1.0 x) B)
(if (<= F -3.4e-8)
(/ -1.0 (sin B))
(if (<= F 9e-53)
(- 0.0 (/ x B))
(if (<= F 0.196) (/ (* F (sqrt 0.5)) B) (/ (- 1.0 x) B))))))
double code(double F, double B, double x) {
double tmp;
if (F <= -3.3e+103) {
tmp = (-1.0 - x) / B;
} else if (F <= -3.4e-8) {
tmp = -1.0 / sin(B);
} else if (F <= 9e-53) {
tmp = 0.0 - (x / B);
} else if (F <= 0.196) {
tmp = (F * sqrt(0.5)) / B;
} else {
tmp = (1.0 - x) / B;
}
return tmp;
}
real(8) function code(f, b, x)
real(8), intent (in) :: f
real(8), intent (in) :: b
real(8), intent (in) :: x
real(8) :: tmp
if (f <= (-3.3d+103)) then
tmp = ((-1.0d0) - x) / b
else if (f <= (-3.4d-8)) then
tmp = (-1.0d0) / sin(b)
else if (f <= 9d-53) then
tmp = 0.0d0 - (x / b)
else if (f <= 0.196d0) then
tmp = (f * sqrt(0.5d0)) / b
else
tmp = (1.0d0 - x) / b
end if
code = tmp
end function
public static double code(double F, double B, double x) {
double tmp;
if (F <= -3.3e+103) {
tmp = (-1.0 - x) / B;
} else if (F <= -3.4e-8) {
tmp = -1.0 / Math.sin(B);
} else if (F <= 9e-53) {
tmp = 0.0 - (x / B);
} else if (F <= 0.196) {
tmp = (F * Math.sqrt(0.5)) / B;
} else {
tmp = (1.0 - x) / B;
}
return tmp;
}
def code(F, B, x): tmp = 0 if F <= -3.3e+103: tmp = (-1.0 - x) / B elif F <= -3.4e-8: tmp = -1.0 / math.sin(B) elif F <= 9e-53: tmp = 0.0 - (x / B) elif F <= 0.196: tmp = (F * math.sqrt(0.5)) / B else: tmp = (1.0 - x) / B return tmp
function code(F, B, x) tmp = 0.0 if (F <= -3.3e+103) tmp = Float64(Float64(-1.0 - x) / B); elseif (F <= -3.4e-8) tmp = Float64(-1.0 / sin(B)); elseif (F <= 9e-53) tmp = Float64(0.0 - Float64(x / B)); elseif (F <= 0.196) tmp = Float64(Float64(F * sqrt(0.5)) / B); else tmp = Float64(Float64(1.0 - x) / B); end return tmp end
function tmp_2 = code(F, B, x) tmp = 0.0; if (F <= -3.3e+103) tmp = (-1.0 - x) / B; elseif (F <= -3.4e-8) tmp = -1.0 / sin(B); elseif (F <= 9e-53) tmp = 0.0 - (x / B); elseif (F <= 0.196) tmp = (F * sqrt(0.5)) / B; else tmp = (1.0 - x) / B; end tmp_2 = tmp; end
code[F_, B_, x_] := If[LessEqual[F, -3.3e+103], N[(N[(-1.0 - x), $MachinePrecision] / B), $MachinePrecision], If[LessEqual[F, -3.4e-8], N[(-1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision], If[LessEqual[F, 9e-53], N[(0.0 - N[(x / B), $MachinePrecision]), $MachinePrecision], If[LessEqual[F, 0.196], N[(N[(F * N[Sqrt[0.5], $MachinePrecision]), $MachinePrecision] / B), $MachinePrecision], N[(N[(1.0 - x), $MachinePrecision] / B), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;F \leq -3.3 \cdot 10^{+103}:\\
\;\;\;\;\frac{-1 - x}{B}\\
\mathbf{elif}\;F \leq -3.4 \cdot 10^{-8}:\\
\;\;\;\;\frac{-1}{\sin B}\\
\mathbf{elif}\;F \leq 9 \cdot 10^{-53}:\\
\;\;\;\;0 - \frac{x}{B}\\
\mathbf{elif}\;F \leq 0.196:\\
\;\;\;\;\frac{F \cdot \sqrt{0.5}}{B}\\
\mathbf{else}:\\
\;\;\;\;\frac{1 - x}{B}\\
\end{array}
\end{array}
if F < -3.30000000000000009e103Initial program 48.7%
Taylor expanded in B around 0
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f6439.4%
Simplified39.4%
Taylor expanded in F around -inf
associate-*r/N/A
mul-1-negN/A
/-lowering-/.f64N/A
distribute-neg-inN/A
metadata-evalN/A
unsub-negN/A
--lowering--.f6455.1%
Simplified55.1%
if -3.30000000000000009e103 < F < -3.4e-8Initial program 92.3%
Taylor expanded in x around 0
associate-*l/N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f6469.7%
Simplified69.7%
Taylor expanded in F around -inf
/-lowering-/.f64N/A
sin-lowering-sin.f6460.8%
Simplified60.8%
if -3.4e-8 < F < 8.9999999999999997e-53Initial program 99.5%
Taylor expanded in B around 0
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f6448.1%
Simplified48.1%
Taylor expanded in F around 0
associate-*r/N/A
mul-1-negN/A
/-lowering-/.f64N/A
neg-sub0N/A
--lowering--.f6439.4%
Simplified39.4%
if 8.9999999999999997e-53 < F < 0.19600000000000001Initial program 98.9%
Taylor expanded in x around 0
associate-*l/N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f6475.0%
Simplified75.0%
Taylor expanded in F around 0
/-lowering-/.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
sin-lowering-sin.f6468.6%
Simplified68.6%
Taylor expanded in B around 0
Simplified43.2%
if 0.19600000000000001 < F Initial program 67.0%
Taylor expanded in B around 0
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f6439.5%
Simplified39.5%
Taylor expanded in F around inf
/-lowering-/.f64N/A
--lowering--.f6451.8%
Simplified51.8%
Final simplification48.5%
(FPCore (F B x) :precision binary64 (if (<= B 0.435) (/ (- (/ F (sqrt (+ (* F F) (+ 2.0 (* x 2.0))))) x) B) (if (<= B 8.2e+129) (/ 1.0 (sin B)) (/ -1.0 (sin B)))))
double code(double F, double B, double x) {
double tmp;
if (B <= 0.435) {
tmp = ((F / sqrt(((F * F) + (2.0 + (x * 2.0))))) - x) / B;
} else if (B <= 8.2e+129) {
tmp = 1.0 / sin(B);
} else {
tmp = -1.0 / sin(B);
}
return tmp;
}
real(8) function code(f, b, x)
real(8), intent (in) :: f
real(8), intent (in) :: b
real(8), intent (in) :: x
real(8) :: tmp
if (b <= 0.435d0) then
tmp = ((f / sqrt(((f * f) + (2.0d0 + (x * 2.0d0))))) - x) / b
else if (b <= 8.2d+129) then
tmp = 1.0d0 / sin(b)
else
tmp = (-1.0d0) / sin(b)
end if
code = tmp
end function
public static double code(double F, double B, double x) {
double tmp;
if (B <= 0.435) {
tmp = ((F / Math.sqrt(((F * F) + (2.0 + (x * 2.0))))) - x) / B;
} else if (B <= 8.2e+129) {
tmp = 1.0 / Math.sin(B);
} else {
tmp = -1.0 / Math.sin(B);
}
return tmp;
}
def code(F, B, x): tmp = 0 if B <= 0.435: tmp = ((F / math.sqrt(((F * F) + (2.0 + (x * 2.0))))) - x) / B elif B <= 8.2e+129: tmp = 1.0 / math.sin(B) else: tmp = -1.0 / math.sin(B) return tmp
function code(F, B, x) tmp = 0.0 if (B <= 0.435) tmp = Float64(Float64(Float64(F / sqrt(Float64(Float64(F * F) + Float64(2.0 + Float64(x * 2.0))))) - x) / B); elseif (B <= 8.2e+129) tmp = Float64(1.0 / sin(B)); else tmp = Float64(-1.0 / sin(B)); end return tmp end
function tmp_2 = code(F, B, x) tmp = 0.0; if (B <= 0.435) tmp = ((F / sqrt(((F * F) + (2.0 + (x * 2.0))))) - x) / B; elseif (B <= 8.2e+129) tmp = 1.0 / sin(B); else tmp = -1.0 / sin(B); end tmp_2 = tmp; end
code[F_, B_, x_] := If[LessEqual[B, 0.435], N[(N[(N[(F / N[Sqrt[N[(N[(F * F), $MachinePrecision] + N[(2.0 + N[(x * 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] - x), $MachinePrecision] / B), $MachinePrecision], If[LessEqual[B, 8.2e+129], N[(1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision], N[(-1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;B \leq 0.435:\\
\;\;\;\;\frac{\frac{F}{\sqrt{F \cdot F + \left(2 + x \cdot 2\right)}} - x}{B}\\
\mathbf{elif}\;B \leq 8.2 \cdot 10^{+129}:\\
\;\;\;\;\frac{1}{\sin B}\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{\sin B}\\
\end{array}
\end{array}
if B < 0.434999999999999998Initial program 74.1%
Taylor expanded in B around 0
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f6454.4%
Simplified54.4%
/-lowering-/.f64N/A
Applied egg-rr54.5%
if 0.434999999999999998 < B < 8.2000000000000005e129Initial program 95.3%
Taylor expanded in x around 0
associate-*l/N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f6440.8%
Simplified40.8%
Taylor expanded in F around inf
/-lowering-/.f64N/A
sin-lowering-sin.f6419.5%
Simplified19.5%
if 8.2000000000000005e129 < B Initial program 91.7%
Taylor expanded in x around 0
associate-*l/N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f6436.6%
Simplified36.6%
Taylor expanded in F around -inf
/-lowering-/.f64N/A
sin-lowering-sin.f6429.6%
Simplified29.6%
Final simplification47.7%
(FPCore (F B x) :precision binary64 (if (<= B 1.02) (/ (- (* F (sqrt (/ 1.0 (+ (* F F) 2.0)))) x) B) (if (<= B 5.8e+131) (/ 1.0 (sin B)) (/ -1.0 (sin B)))))
double code(double F, double B, double x) {
double tmp;
if (B <= 1.02) {
tmp = ((F * sqrt((1.0 / ((F * F) + 2.0)))) - x) / B;
} else if (B <= 5.8e+131) {
tmp = 1.0 / sin(B);
} else {
tmp = -1.0 / sin(B);
}
return tmp;
}
real(8) function code(f, b, x)
real(8), intent (in) :: f
real(8), intent (in) :: b
real(8), intent (in) :: x
real(8) :: tmp
if (b <= 1.02d0) then
tmp = ((f * sqrt((1.0d0 / ((f * f) + 2.0d0)))) - x) / b
else if (b <= 5.8d+131) then
tmp = 1.0d0 / sin(b)
else
tmp = (-1.0d0) / sin(b)
end if
code = tmp
end function
public static double code(double F, double B, double x) {
double tmp;
if (B <= 1.02) {
tmp = ((F * Math.sqrt((1.0 / ((F * F) + 2.0)))) - x) / B;
} else if (B <= 5.8e+131) {
tmp = 1.0 / Math.sin(B);
} else {
tmp = -1.0 / Math.sin(B);
}
return tmp;
}
def code(F, B, x): tmp = 0 if B <= 1.02: tmp = ((F * math.sqrt((1.0 / ((F * F) + 2.0)))) - x) / B elif B <= 5.8e+131: tmp = 1.0 / math.sin(B) else: tmp = -1.0 / math.sin(B) return tmp
function code(F, B, x) tmp = 0.0 if (B <= 1.02) tmp = Float64(Float64(Float64(F * sqrt(Float64(1.0 / Float64(Float64(F * F) + 2.0)))) - x) / B); elseif (B <= 5.8e+131) tmp = Float64(1.0 / sin(B)); else tmp = Float64(-1.0 / sin(B)); end return tmp end
function tmp_2 = code(F, B, x) tmp = 0.0; if (B <= 1.02) tmp = ((F * sqrt((1.0 / ((F * F) + 2.0)))) - x) / B; elseif (B <= 5.8e+131) tmp = 1.0 / sin(B); else tmp = -1.0 / sin(B); end tmp_2 = tmp; end
code[F_, B_, x_] := If[LessEqual[B, 1.02], N[(N[(N[(F * N[Sqrt[N[(1.0 / N[(N[(F * F), $MachinePrecision] + 2.0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] - x), $MachinePrecision] / B), $MachinePrecision], If[LessEqual[B, 5.8e+131], N[(1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision], N[(-1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;B \leq 1.02:\\
\;\;\;\;\frac{F \cdot \sqrt{\frac{1}{F \cdot F + 2}} - x}{B}\\
\mathbf{elif}\;B \leq 5.8 \cdot 10^{+131}:\\
\;\;\;\;\frac{1}{\sin B}\\
\mathbf{else}:\\
\;\;\;\;\frac{-1}{\sin B}\\
\end{array}
\end{array}
if B < 1.02Initial program 74.1%
Taylor expanded in B around 0
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f6454.4%
Simplified54.4%
Taylor expanded in x around 0
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f6454.4%
Simplified54.4%
if 1.02 < B < 5.8000000000000002e131Initial program 95.3%
Taylor expanded in x around 0
associate-*l/N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f6440.8%
Simplified40.8%
Taylor expanded in F around inf
/-lowering-/.f64N/A
sin-lowering-sin.f6419.5%
Simplified19.5%
if 5.8000000000000002e131 < B Initial program 91.7%
Taylor expanded in x around 0
associate-*l/N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f6436.6%
Simplified36.6%
Taylor expanded in F around -inf
/-lowering-/.f64N/A
sin-lowering-sin.f6429.6%
Simplified29.6%
Final simplification47.7%
(FPCore (F B x)
:precision binary64
(if (<= F -4.6e+103)
(/ (- -1.0 x) B)
(if (<= F -3.4e-8)
(/ -1.0 (sin B))
(if (<= F 8.6e-38) (- 0.0 (/ x B)) (/ (- 1.0 x) B)))))
double code(double F, double B, double x) {
double tmp;
if (F <= -4.6e+103) {
tmp = (-1.0 - x) / B;
} else if (F <= -3.4e-8) {
tmp = -1.0 / sin(B);
} else if (F <= 8.6e-38) {
tmp = 0.0 - (x / B);
} else {
tmp = (1.0 - x) / B;
}
return tmp;
}
real(8) function code(f, b, x)
real(8), intent (in) :: f
real(8), intent (in) :: b
real(8), intent (in) :: x
real(8) :: tmp
if (f <= (-4.6d+103)) then
tmp = ((-1.0d0) - x) / b
else if (f <= (-3.4d-8)) then
tmp = (-1.0d0) / sin(b)
else if (f <= 8.6d-38) then
tmp = 0.0d0 - (x / b)
else
tmp = (1.0d0 - x) / b
end if
code = tmp
end function
public static double code(double F, double B, double x) {
double tmp;
if (F <= -4.6e+103) {
tmp = (-1.0 - x) / B;
} else if (F <= -3.4e-8) {
tmp = -1.0 / Math.sin(B);
} else if (F <= 8.6e-38) {
tmp = 0.0 - (x / B);
} else {
tmp = (1.0 - x) / B;
}
return tmp;
}
def code(F, B, x): tmp = 0 if F <= -4.6e+103: tmp = (-1.0 - x) / B elif F <= -3.4e-8: tmp = -1.0 / math.sin(B) elif F <= 8.6e-38: tmp = 0.0 - (x / B) else: tmp = (1.0 - x) / B return tmp
function code(F, B, x) tmp = 0.0 if (F <= -4.6e+103) tmp = Float64(Float64(-1.0 - x) / B); elseif (F <= -3.4e-8) tmp = Float64(-1.0 / sin(B)); elseif (F <= 8.6e-38) tmp = Float64(0.0 - Float64(x / B)); else tmp = Float64(Float64(1.0 - x) / B); end return tmp end
function tmp_2 = code(F, B, x) tmp = 0.0; if (F <= -4.6e+103) tmp = (-1.0 - x) / B; elseif (F <= -3.4e-8) tmp = -1.0 / sin(B); elseif (F <= 8.6e-38) tmp = 0.0 - (x / B); else tmp = (1.0 - x) / B; end tmp_2 = tmp; end
code[F_, B_, x_] := If[LessEqual[F, -4.6e+103], N[(N[(-1.0 - x), $MachinePrecision] / B), $MachinePrecision], If[LessEqual[F, -3.4e-8], N[(-1.0 / N[Sin[B], $MachinePrecision]), $MachinePrecision], If[LessEqual[F, 8.6e-38], N[(0.0 - N[(x / B), $MachinePrecision]), $MachinePrecision], N[(N[(1.0 - x), $MachinePrecision] / B), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;F \leq -4.6 \cdot 10^{+103}:\\
\;\;\;\;\frac{-1 - x}{B}\\
\mathbf{elif}\;F \leq -3.4 \cdot 10^{-8}:\\
\;\;\;\;\frac{-1}{\sin B}\\
\mathbf{elif}\;F \leq 8.6 \cdot 10^{-38}:\\
\;\;\;\;0 - \frac{x}{B}\\
\mathbf{else}:\\
\;\;\;\;\frac{1 - x}{B}\\
\end{array}
\end{array}
if F < -4.60000000000000017e103Initial program 48.7%
Taylor expanded in B around 0
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f6439.4%
Simplified39.4%
Taylor expanded in F around -inf
associate-*r/N/A
mul-1-negN/A
/-lowering-/.f64N/A
distribute-neg-inN/A
metadata-evalN/A
unsub-negN/A
--lowering--.f6455.1%
Simplified55.1%
if -4.60000000000000017e103 < F < -3.4e-8Initial program 92.3%
Taylor expanded in x around 0
associate-*l/N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f6469.7%
Simplified69.7%
Taylor expanded in F around -inf
/-lowering-/.f64N/A
sin-lowering-sin.f6460.8%
Simplified60.8%
if -3.4e-8 < F < 8.6000000000000004e-38Initial program 99.4%
Taylor expanded in B around 0
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f6448.7%
Simplified48.7%
Taylor expanded in F around 0
associate-*r/N/A
mul-1-negN/A
/-lowering-/.f64N/A
neg-sub0N/A
--lowering--.f6438.3%
Simplified38.3%
if 8.6000000000000004e-38 < F Initial program 70.2%
Taylor expanded in B around 0
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f6440.6%
Simplified40.6%
Taylor expanded in F around inf
/-lowering-/.f64N/A
--lowering--.f6447.3%
Simplified47.3%
Final simplification46.9%
(FPCore (F B x) :precision binary64 (if (<= F -7.2) (/ (- (+ -1.0 (* (/ (+ x 1.0) F) (/ 1.0 F))) x) B) (if (<= F 1.95e-39) (- 0.0 (/ x B)) (/ (- 1.0 x) B))))
double code(double F, double B, double x) {
double tmp;
if (F <= -7.2) {
tmp = ((-1.0 + (((x + 1.0) / F) * (1.0 / F))) - x) / B;
} else if (F <= 1.95e-39) {
tmp = 0.0 - (x / B);
} else {
tmp = (1.0 - x) / B;
}
return tmp;
}
real(8) function code(f, b, x)
real(8), intent (in) :: f
real(8), intent (in) :: b
real(8), intent (in) :: x
real(8) :: tmp
if (f <= (-7.2d0)) then
tmp = (((-1.0d0) + (((x + 1.0d0) / f) * (1.0d0 / f))) - x) / b
else if (f <= 1.95d-39) then
tmp = 0.0d0 - (x / b)
else
tmp = (1.0d0 - x) / b
end if
code = tmp
end function
public static double code(double F, double B, double x) {
double tmp;
if (F <= -7.2) {
tmp = ((-1.0 + (((x + 1.0) / F) * (1.0 / F))) - x) / B;
} else if (F <= 1.95e-39) {
tmp = 0.0 - (x / B);
} else {
tmp = (1.0 - x) / B;
}
return tmp;
}
def code(F, B, x): tmp = 0 if F <= -7.2: tmp = ((-1.0 + (((x + 1.0) / F) * (1.0 / F))) - x) / B elif F <= 1.95e-39: tmp = 0.0 - (x / B) else: tmp = (1.0 - x) / B return tmp
function code(F, B, x) tmp = 0.0 if (F <= -7.2) tmp = Float64(Float64(Float64(-1.0 + Float64(Float64(Float64(x + 1.0) / F) * Float64(1.0 / F))) - x) / B); elseif (F <= 1.95e-39) tmp = Float64(0.0 - Float64(x / B)); else tmp = Float64(Float64(1.0 - x) / B); end return tmp end
function tmp_2 = code(F, B, x) tmp = 0.0; if (F <= -7.2) tmp = ((-1.0 + (((x + 1.0) / F) * (1.0 / F))) - x) / B; elseif (F <= 1.95e-39) tmp = 0.0 - (x / B); else tmp = (1.0 - x) / B; end tmp_2 = tmp; end
code[F_, B_, x_] := If[LessEqual[F, -7.2], N[(N[(N[(-1.0 + N[(N[(N[(x + 1.0), $MachinePrecision] / F), $MachinePrecision] * N[(1.0 / F), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - x), $MachinePrecision] / B), $MachinePrecision], If[LessEqual[F, 1.95e-39], N[(0.0 - N[(x / B), $MachinePrecision]), $MachinePrecision], N[(N[(1.0 - x), $MachinePrecision] / B), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;F \leq -7.2:\\
\;\;\;\;\frac{\left(-1 + \frac{x + 1}{F} \cdot \frac{1}{F}\right) - x}{B}\\
\mathbf{elif}\;F \leq 1.95 \cdot 10^{-39}:\\
\;\;\;\;0 - \frac{x}{B}\\
\mathbf{else}:\\
\;\;\;\;\frac{1 - x}{B}\\
\end{array}
\end{array}
if F < -7.20000000000000018Initial program 61.3%
Taylor expanded in B around 0
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f6437.5%
Simplified37.5%
Taylor expanded in F around -inf
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
distribute-lft-inN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6447.8%
Simplified47.8%
associate-/r*N/A
div-invN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
associate-*r*N/A
metadata-evalN/A
*-lft-identityN/A
/-lowering-/.f6447.8%
Applied egg-rr47.8%
if -7.20000000000000018 < F < 1.95000000000000015e-39Initial program 99.4%
Taylor expanded in B around 0
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f6448.3%
Simplified48.3%
Taylor expanded in F around 0
associate-*r/N/A
mul-1-negN/A
/-lowering-/.f64N/A
neg-sub0N/A
--lowering--.f6438.0%
Simplified38.0%
if 1.95000000000000015e-39 < F Initial program 70.2%
Taylor expanded in B around 0
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f6440.6%
Simplified40.6%
Taylor expanded in F around inf
/-lowering-/.f64N/A
--lowering--.f6447.3%
Simplified47.3%
Final simplification43.9%
(FPCore (F B x) :precision binary64 (if (<= F -1.08e-69) (/ (- -1.0 x) B) (if (<= F 1.05e-38) (- 0.0 (/ x B)) (/ (- 1.0 x) B))))
double code(double F, double B, double x) {
double tmp;
if (F <= -1.08e-69) {
tmp = (-1.0 - x) / B;
} else if (F <= 1.05e-38) {
tmp = 0.0 - (x / B);
} else {
tmp = (1.0 - x) / B;
}
return tmp;
}
real(8) function code(f, b, x)
real(8), intent (in) :: f
real(8), intent (in) :: b
real(8), intent (in) :: x
real(8) :: tmp
if (f <= (-1.08d-69)) then
tmp = ((-1.0d0) - x) / b
else if (f <= 1.05d-38) then
tmp = 0.0d0 - (x / b)
else
tmp = (1.0d0 - x) / b
end if
code = tmp
end function
public static double code(double F, double B, double x) {
double tmp;
if (F <= -1.08e-69) {
tmp = (-1.0 - x) / B;
} else if (F <= 1.05e-38) {
tmp = 0.0 - (x / B);
} else {
tmp = (1.0 - x) / B;
}
return tmp;
}
def code(F, B, x): tmp = 0 if F <= -1.08e-69: tmp = (-1.0 - x) / B elif F <= 1.05e-38: tmp = 0.0 - (x / B) else: tmp = (1.0 - x) / B return tmp
function code(F, B, x) tmp = 0.0 if (F <= -1.08e-69) tmp = Float64(Float64(-1.0 - x) / B); elseif (F <= 1.05e-38) tmp = Float64(0.0 - Float64(x / B)); else tmp = Float64(Float64(1.0 - x) / B); end return tmp end
function tmp_2 = code(F, B, x) tmp = 0.0; if (F <= -1.08e-69) tmp = (-1.0 - x) / B; elseif (F <= 1.05e-38) tmp = 0.0 - (x / B); else tmp = (1.0 - x) / B; end tmp_2 = tmp; end
code[F_, B_, x_] := If[LessEqual[F, -1.08e-69], N[(N[(-1.0 - x), $MachinePrecision] / B), $MachinePrecision], If[LessEqual[F, 1.05e-38], N[(0.0 - N[(x / B), $MachinePrecision]), $MachinePrecision], N[(N[(1.0 - x), $MachinePrecision] / B), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;F \leq -1.08 \cdot 10^{-69}:\\
\;\;\;\;\frac{-1 - x}{B}\\
\mathbf{elif}\;F \leq 1.05 \cdot 10^{-38}:\\
\;\;\;\;0 - \frac{x}{B}\\
\mathbf{else}:\\
\;\;\;\;\frac{1 - x}{B}\\
\end{array}
\end{array}
if F < -1.0800000000000001e-69Initial program 64.8%
Taylor expanded in B around 0
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f6437.6%
Simplified37.6%
Taylor expanded in F around -inf
associate-*r/N/A
mul-1-negN/A
/-lowering-/.f64N/A
distribute-neg-inN/A
metadata-evalN/A
unsub-negN/A
--lowering--.f6445.8%
Simplified45.8%
if -1.0800000000000001e-69 < F < 1.05000000000000006e-38Initial program 99.5%
Taylor expanded in B around 0
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f6449.1%
Simplified49.1%
Taylor expanded in F around 0
associate-*r/N/A
mul-1-negN/A
/-lowering-/.f64N/A
neg-sub0N/A
--lowering--.f6439.0%
Simplified39.0%
if 1.05000000000000006e-38 < F Initial program 70.2%
Taylor expanded in B around 0
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f6440.6%
Simplified40.6%
Taylor expanded in F around inf
/-lowering-/.f64N/A
--lowering--.f6447.3%
Simplified47.3%
Final simplification43.9%
(FPCore (F B x) :precision binary64 (if (<= F -1.6e-52) (/ (- -1.0 x) B) (- 0.0 (/ x B))))
double code(double F, double B, double x) {
double tmp;
if (F <= -1.6e-52) {
tmp = (-1.0 - x) / B;
} else {
tmp = 0.0 - (x / B);
}
return tmp;
}
real(8) function code(f, b, x)
real(8), intent (in) :: f
real(8), intent (in) :: b
real(8), intent (in) :: x
real(8) :: tmp
if (f <= (-1.6d-52)) then
tmp = ((-1.0d0) - x) / b
else
tmp = 0.0d0 - (x / b)
end if
code = tmp
end function
public static double code(double F, double B, double x) {
double tmp;
if (F <= -1.6e-52) {
tmp = (-1.0 - x) / B;
} else {
tmp = 0.0 - (x / B);
}
return tmp;
}
def code(F, B, x): tmp = 0 if F <= -1.6e-52: tmp = (-1.0 - x) / B else: tmp = 0.0 - (x / B) return tmp
function code(F, B, x) tmp = 0.0 if (F <= -1.6e-52) tmp = Float64(Float64(-1.0 - x) / B); else tmp = Float64(0.0 - Float64(x / B)); end return tmp end
function tmp_2 = code(F, B, x) tmp = 0.0; if (F <= -1.6e-52) tmp = (-1.0 - x) / B; else tmp = 0.0 - (x / B); end tmp_2 = tmp; end
code[F_, B_, x_] := If[LessEqual[F, -1.6e-52], N[(N[(-1.0 - x), $MachinePrecision] / B), $MachinePrecision], N[(0.0 - N[(x / B), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;F \leq -1.6 \cdot 10^{-52}:\\
\;\;\;\;\frac{-1 - x}{B}\\
\mathbf{else}:\\
\;\;\;\;0 - \frac{x}{B}\\
\end{array}
\end{array}
if F < -1.60000000000000005e-52Initial program 63.9%
Taylor expanded in B around 0
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f6437.3%
Simplified37.3%
Taylor expanded in F around -inf
associate-*r/N/A
mul-1-negN/A
/-lowering-/.f64N/A
distribute-neg-inN/A
metadata-evalN/A
unsub-negN/A
--lowering--.f6445.7%
Simplified45.7%
if -1.60000000000000005e-52 < F Initial program 85.8%
Taylor expanded in B around 0
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f6445.2%
Simplified45.2%
Taylor expanded in F around 0
associate-*r/N/A
mul-1-negN/A
/-lowering-/.f64N/A
neg-sub0N/A
--lowering--.f6433.7%
Simplified33.7%
Final simplification37.7%
(FPCore (F B x) :precision binary64 (/ (- -1.0 x) B))
double code(double F, double B, double x) {
return (-1.0 - x) / B;
}
real(8) function code(f, b, x)
real(8), intent (in) :: f
real(8), intent (in) :: b
real(8), intent (in) :: x
code = ((-1.0d0) - x) / b
end function
public static double code(double F, double B, double x) {
return (-1.0 - x) / B;
}
def code(F, B, x): return (-1.0 - x) / B
function code(F, B, x) return Float64(Float64(-1.0 - x) / B) end
function tmp = code(F, B, x) tmp = (-1.0 - x) / B; end
code[F_, B_, x_] := N[(N[(-1.0 - x), $MachinePrecision] / B), $MachinePrecision]
\begin{array}{l}
\\
\frac{-1 - x}{B}
\end{array}
Initial program 78.5%
Taylor expanded in B around 0
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f6442.5%
Simplified42.5%
Taylor expanded in F around -inf
associate-*r/N/A
mul-1-negN/A
/-lowering-/.f64N/A
distribute-neg-inN/A
metadata-evalN/A
unsub-negN/A
--lowering--.f6430.2%
Simplified30.2%
(FPCore (F B x) :precision binary64 (/ -1.0 B))
double code(double F, double B, double x) {
return -1.0 / B;
}
real(8) function code(f, b, x)
real(8), intent (in) :: f
real(8), intent (in) :: b
real(8), intent (in) :: x
code = (-1.0d0) / b
end function
public static double code(double F, double B, double x) {
return -1.0 / B;
}
def code(F, B, x): return -1.0 / B
function code(F, B, x) return Float64(-1.0 / B) end
function tmp = code(F, B, x) tmp = -1.0 / B; end
code[F_, B_, x_] := N[(-1.0 / B), $MachinePrecision]
\begin{array}{l}
\\
\frac{-1}{B}
\end{array}
Initial program 78.5%
Taylor expanded in B around 0
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
sqrt-lowering-sqrt.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f6442.5%
Simplified42.5%
Taylor expanded in F around -inf
associate-*r/N/A
mul-1-negN/A
/-lowering-/.f64N/A
distribute-neg-inN/A
metadata-evalN/A
unsub-negN/A
--lowering--.f6430.2%
Simplified30.2%
Taylor expanded in x around 0
/-lowering-/.f6410.0%
Simplified10.0%
herbie shell --seed 2024144
(FPCore (F B x)
:name "VandenBroeck and Keller, Equation (23)"
:precision binary64
(+ (- (* x (/ 1.0 (tan B)))) (* (/ F (sin B)) (pow (+ (+ (* F F) 2.0) (* 2.0 x)) (- (/ 1.0 2.0))))))