
(FPCore (a b) :precision binary64 (- (+ (pow (+ (* a a) (* b b)) 2.0) (* 4.0 (+ (* (* a a) (- 1.0 a)) (* (* b b) (+ 3.0 a))))) 1.0))
double code(double a, double b) {
return (pow(((a * a) + (b * b)), 2.0) + (4.0 * (((a * a) * (1.0 - a)) + ((b * b) * (3.0 + a))))) - 1.0;
}
real(8) function code(a, b)
real(8), intent (in) :: a
real(8), intent (in) :: b
code = ((((a * a) + (b * b)) ** 2.0d0) + (4.0d0 * (((a * a) * (1.0d0 - a)) + ((b * b) * (3.0d0 + a))))) - 1.0d0
end function
public static double code(double a, double b) {
return (Math.pow(((a * a) + (b * b)), 2.0) + (4.0 * (((a * a) * (1.0 - a)) + ((b * b) * (3.0 + a))))) - 1.0;
}
def code(a, b): return (math.pow(((a * a) + (b * b)), 2.0) + (4.0 * (((a * a) * (1.0 - a)) + ((b * b) * (3.0 + a))))) - 1.0
function code(a, b) return Float64(Float64((Float64(Float64(a * a) + Float64(b * b)) ^ 2.0) + Float64(4.0 * Float64(Float64(Float64(a * a) * Float64(1.0 - a)) + Float64(Float64(b * b) * Float64(3.0 + a))))) - 1.0) end
function tmp = code(a, b) tmp = ((((a * a) + (b * b)) ^ 2.0) + (4.0 * (((a * a) * (1.0 - a)) + ((b * b) * (3.0 + a))))) - 1.0; end
code[a_, b_] := N[(N[(N[Power[N[(N[(a * a), $MachinePrecision] + N[(b * b), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] + N[(4.0 * N[(N[(N[(a * a), $MachinePrecision] * N[(1.0 - a), $MachinePrecision]), $MachinePrecision] + N[(N[(b * b), $MachinePrecision] * N[(3.0 + a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - 1.0), $MachinePrecision]
\begin{array}{l}
\\
\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 - a\right) + \left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right) - 1
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 15 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (a b) :precision binary64 (- (+ (pow (+ (* a a) (* b b)) 2.0) (* 4.0 (+ (* (* a a) (- 1.0 a)) (* (* b b) (+ 3.0 a))))) 1.0))
double code(double a, double b) {
return (pow(((a * a) + (b * b)), 2.0) + (4.0 * (((a * a) * (1.0 - a)) + ((b * b) * (3.0 + a))))) - 1.0;
}
real(8) function code(a, b)
real(8), intent (in) :: a
real(8), intent (in) :: b
code = ((((a * a) + (b * b)) ** 2.0d0) + (4.0d0 * (((a * a) * (1.0d0 - a)) + ((b * b) * (3.0d0 + a))))) - 1.0d0
end function
public static double code(double a, double b) {
return (Math.pow(((a * a) + (b * b)), 2.0) + (4.0 * (((a * a) * (1.0 - a)) + ((b * b) * (3.0 + a))))) - 1.0;
}
def code(a, b): return (math.pow(((a * a) + (b * b)), 2.0) + (4.0 * (((a * a) * (1.0 - a)) + ((b * b) * (3.0 + a))))) - 1.0
function code(a, b) return Float64(Float64((Float64(Float64(a * a) + Float64(b * b)) ^ 2.0) + Float64(4.0 * Float64(Float64(Float64(a * a) * Float64(1.0 - a)) + Float64(Float64(b * b) * Float64(3.0 + a))))) - 1.0) end
function tmp = code(a, b) tmp = ((((a * a) + (b * b)) ^ 2.0) + (4.0 * (((a * a) * (1.0 - a)) + ((b * b) * (3.0 + a))))) - 1.0; end
code[a_, b_] := N[(N[(N[Power[N[(N[(a * a), $MachinePrecision] + N[(b * b), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] + N[(4.0 * N[(N[(N[(a * a), $MachinePrecision] * N[(1.0 - a), $MachinePrecision]), $MachinePrecision] + N[(N[(b * b), $MachinePrecision] * N[(3.0 + a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - 1.0), $MachinePrecision]
\begin{array}{l}
\\
\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 - a\right) + \left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right) - 1
\end{array}
(FPCore (a b)
:precision binary64
(let* ((t_0 (+ (* a a) (* b b))))
(-
(+ (+ (/ b (/ 1.0 (* b t_0))) (* a (* a t_0))) (* 4.0 (* b (* b 3.0))))
1.0)))
double code(double a, double b) {
double t_0 = (a * a) + (b * b);
return (((b / (1.0 / (b * t_0))) + (a * (a * t_0))) + (4.0 * (b * (b * 3.0)))) - 1.0;
}
real(8) function code(a, b)
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: t_0
t_0 = (a * a) + (b * b)
code = (((b / (1.0d0 / (b * t_0))) + (a * (a * t_0))) + (4.0d0 * (b * (b * 3.0d0)))) - 1.0d0
end function
public static double code(double a, double b) {
double t_0 = (a * a) + (b * b);
return (((b / (1.0 / (b * t_0))) + (a * (a * t_0))) + (4.0 * (b * (b * 3.0)))) - 1.0;
}
def code(a, b): t_0 = (a * a) + (b * b) return (((b / (1.0 / (b * t_0))) + (a * (a * t_0))) + (4.0 * (b * (b * 3.0)))) - 1.0
function code(a, b) t_0 = Float64(Float64(a * a) + Float64(b * b)) return Float64(Float64(Float64(Float64(b / Float64(1.0 / Float64(b * t_0))) + Float64(a * Float64(a * t_0))) + Float64(4.0 * Float64(b * Float64(b * 3.0)))) - 1.0) end
function tmp = code(a, b) t_0 = (a * a) + (b * b); tmp = (((b / (1.0 / (b * t_0))) + (a * (a * t_0))) + (4.0 * (b * (b * 3.0)))) - 1.0; end
code[a_, b_] := Block[{t$95$0 = N[(N[(a * a), $MachinePrecision] + N[(b * b), $MachinePrecision]), $MachinePrecision]}, N[(N[(N[(N[(b / N[(1.0 / N[(b * t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(a * N[(a * t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(4.0 * N[(b * N[(b * 3.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - 1.0), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := a \cdot a + b \cdot b\\
\left(\left(\frac{b}{\frac{1}{b \cdot t\_0}} + a \cdot \left(a \cdot t\_0\right)\right) + 4 \cdot \left(b \cdot \left(b \cdot 3\right)\right)\right) - 1
\end{array}
\end{array}
Initial program 72.9%
Applied egg-rr0
Applied egg-rr0
Applied egg-rr0
Taylor expanded in a around 0 0
Simplified0
(FPCore (a b)
:precision binary64
(if (<= (* b b) 2e-63)
(- (* (+ 4.0 (* a (+ -4.0 a))) (* a a)) 1.0)
(if (<= (* b b) 2e+133)
(-
(*
(*
(+ 1.0 (* (/ 1.0 (* b b)) (+ (* (* a a) 2.0) (+ 12.0 (* a 4.0)))))
(* b (* b b)))
b)
1.0)
(* (* b b) (* b b)))))
double code(double a, double b) {
double tmp;
if ((b * b) <= 2e-63) {
tmp = ((4.0 + (a * (-4.0 + a))) * (a * a)) - 1.0;
} else if ((b * b) <= 2e+133) {
tmp = (((1.0 + ((1.0 / (b * b)) * (((a * a) * 2.0) + (12.0 + (a * 4.0))))) * (b * (b * b))) * b) - 1.0;
} else {
tmp = (b * b) * (b * b);
}
return tmp;
}
real(8) function code(a, b)
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if ((b * b) <= 2d-63) then
tmp = ((4.0d0 + (a * ((-4.0d0) + a))) * (a * a)) - 1.0d0
else if ((b * b) <= 2d+133) then
tmp = (((1.0d0 + ((1.0d0 / (b * b)) * (((a * a) * 2.0d0) + (12.0d0 + (a * 4.0d0))))) * (b * (b * b))) * b) - 1.0d0
else
tmp = (b * b) * (b * b)
end if
code = tmp
end function
public static double code(double a, double b) {
double tmp;
if ((b * b) <= 2e-63) {
tmp = ((4.0 + (a * (-4.0 + a))) * (a * a)) - 1.0;
} else if ((b * b) <= 2e+133) {
tmp = (((1.0 + ((1.0 / (b * b)) * (((a * a) * 2.0) + (12.0 + (a * 4.0))))) * (b * (b * b))) * b) - 1.0;
} else {
tmp = (b * b) * (b * b);
}
return tmp;
}
def code(a, b): tmp = 0 if (b * b) <= 2e-63: tmp = ((4.0 + (a * (-4.0 + a))) * (a * a)) - 1.0 elif (b * b) <= 2e+133: tmp = (((1.0 + ((1.0 / (b * b)) * (((a * a) * 2.0) + (12.0 + (a * 4.0))))) * (b * (b * b))) * b) - 1.0 else: tmp = (b * b) * (b * b) return tmp
function code(a, b) tmp = 0.0 if (Float64(b * b) <= 2e-63) tmp = Float64(Float64(Float64(4.0 + Float64(a * Float64(-4.0 + a))) * Float64(a * a)) - 1.0); elseif (Float64(b * b) <= 2e+133) tmp = Float64(Float64(Float64(Float64(1.0 + Float64(Float64(1.0 / Float64(b * b)) * Float64(Float64(Float64(a * a) * 2.0) + Float64(12.0 + Float64(a * 4.0))))) * Float64(b * Float64(b * b))) * b) - 1.0); else tmp = Float64(Float64(b * b) * Float64(b * b)); end return tmp end
function tmp_2 = code(a, b) tmp = 0.0; if ((b * b) <= 2e-63) tmp = ((4.0 + (a * (-4.0 + a))) * (a * a)) - 1.0; elseif ((b * b) <= 2e+133) tmp = (((1.0 + ((1.0 / (b * b)) * (((a * a) * 2.0) + (12.0 + (a * 4.0))))) * (b * (b * b))) * b) - 1.0; else tmp = (b * b) * (b * b); end tmp_2 = tmp; end
code[a_, b_] := If[LessEqual[N[(b * b), $MachinePrecision], 2e-63], N[(N[(N[(4.0 + N[(a * N[(-4.0 + a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(a * a), $MachinePrecision]), $MachinePrecision] - 1.0), $MachinePrecision], If[LessEqual[N[(b * b), $MachinePrecision], 2e+133], N[(N[(N[(N[(1.0 + N[(N[(1.0 / N[(b * b), $MachinePrecision]), $MachinePrecision] * N[(N[(N[(a * a), $MachinePrecision] * 2.0), $MachinePrecision] + N[(12.0 + N[(a * 4.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(b * N[(b * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * b), $MachinePrecision] - 1.0), $MachinePrecision], N[(N[(b * b), $MachinePrecision] * N[(b * b), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \cdot b \leq 2 \cdot 10^{-63}:\\
\;\;\;\;\left(4 + a \cdot \left(-4 + a\right)\right) \cdot \left(a \cdot a\right) - 1\\
\mathbf{elif}\;b \cdot b \leq 2 \cdot 10^{+133}:\\
\;\;\;\;\left(\left(1 + \frac{1}{b \cdot b} \cdot \left(\left(a \cdot a\right) \cdot 2 + \left(12 + a \cdot 4\right)\right)\right) \cdot \left(b \cdot \left(b \cdot b\right)\right)\right) \cdot b - 1\\
\mathbf{else}:\\
\;\;\;\;\left(b \cdot b\right) \cdot \left(b \cdot b\right)\\
\end{array}
\end{array}
if (*.f64 b b) < 2.00000000000000013e-63Initial program 83.5%
Applied egg-rr0
Taylor expanded in b around 0 0
Simplified0
Taylor expanded in a around 0 0
Simplified0
if 2.00000000000000013e-63 < (*.f64 b b) < 2e133Initial program 68.0%
Taylor expanded in b around inf 0
Simplified0
Applied egg-rr0
if 2e133 < (*.f64 b b) Initial program 59.9%
Simplified0
Taylor expanded in b around inf 0
Simplified0
(FPCore (a b)
:precision binary64
(let* ((t_0 (* (* b b) (* b b))))
(if (<= a -1.5e+50)
(* (* a a) (* a a))
(if (<= a 5.7e-291)
t_0
(if (<= a 5.5e-120)
-1.0
(if (<= a 1.16e-35)
t_0
(if (<= a 2.45) -1.0 (* (* a (* a a)) a))))))))
double code(double a, double b) {
double t_0 = (b * b) * (b * b);
double tmp;
if (a <= -1.5e+50) {
tmp = (a * a) * (a * a);
} else if (a <= 5.7e-291) {
tmp = t_0;
} else if (a <= 5.5e-120) {
tmp = -1.0;
} else if (a <= 1.16e-35) {
tmp = t_0;
} else if (a <= 2.45) {
tmp = -1.0;
} else {
tmp = (a * (a * a)) * a;
}
return tmp;
}
real(8) function code(a, b)
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: t_0
real(8) :: tmp
t_0 = (b * b) * (b * b)
if (a <= (-1.5d+50)) then
tmp = (a * a) * (a * a)
else if (a <= 5.7d-291) then
tmp = t_0
else if (a <= 5.5d-120) then
tmp = -1.0d0
else if (a <= 1.16d-35) then
tmp = t_0
else if (a <= 2.45d0) then
tmp = -1.0d0
else
tmp = (a * (a * a)) * a
end if
code = tmp
end function
public static double code(double a, double b) {
double t_0 = (b * b) * (b * b);
double tmp;
if (a <= -1.5e+50) {
tmp = (a * a) * (a * a);
} else if (a <= 5.7e-291) {
tmp = t_0;
} else if (a <= 5.5e-120) {
tmp = -1.0;
} else if (a <= 1.16e-35) {
tmp = t_0;
} else if (a <= 2.45) {
tmp = -1.0;
} else {
tmp = (a * (a * a)) * a;
}
return tmp;
}
def code(a, b): t_0 = (b * b) * (b * b) tmp = 0 if a <= -1.5e+50: tmp = (a * a) * (a * a) elif a <= 5.7e-291: tmp = t_0 elif a <= 5.5e-120: tmp = -1.0 elif a <= 1.16e-35: tmp = t_0 elif a <= 2.45: tmp = -1.0 else: tmp = (a * (a * a)) * a return tmp
function code(a, b) t_0 = Float64(Float64(b * b) * Float64(b * b)) tmp = 0.0 if (a <= -1.5e+50) tmp = Float64(Float64(a * a) * Float64(a * a)); elseif (a <= 5.7e-291) tmp = t_0; elseif (a <= 5.5e-120) tmp = -1.0; elseif (a <= 1.16e-35) tmp = t_0; elseif (a <= 2.45) tmp = -1.0; else tmp = Float64(Float64(a * Float64(a * a)) * a); end return tmp end
function tmp_2 = code(a, b) t_0 = (b * b) * (b * b); tmp = 0.0; if (a <= -1.5e+50) tmp = (a * a) * (a * a); elseif (a <= 5.7e-291) tmp = t_0; elseif (a <= 5.5e-120) tmp = -1.0; elseif (a <= 1.16e-35) tmp = t_0; elseif (a <= 2.45) tmp = -1.0; else tmp = (a * (a * a)) * a; end tmp_2 = tmp; end
code[a_, b_] := Block[{t$95$0 = N[(N[(b * b), $MachinePrecision] * N[(b * b), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[a, -1.5e+50], N[(N[(a * a), $MachinePrecision] * N[(a * a), $MachinePrecision]), $MachinePrecision], If[LessEqual[a, 5.7e-291], t$95$0, If[LessEqual[a, 5.5e-120], -1.0, If[LessEqual[a, 1.16e-35], t$95$0, If[LessEqual[a, 2.45], -1.0, N[(N[(a * N[(a * a), $MachinePrecision]), $MachinePrecision] * a), $MachinePrecision]]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \left(b \cdot b\right) \cdot \left(b \cdot b\right)\\
\mathbf{if}\;a \leq -1.5 \cdot 10^{+50}:\\
\;\;\;\;\left(a \cdot a\right) \cdot \left(a \cdot a\right)\\
\mathbf{elif}\;a \leq 5.7 \cdot 10^{-291}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;a \leq 5.5 \cdot 10^{-120}:\\
\;\;\;\;-1\\
\mathbf{elif}\;a \leq 1.16 \cdot 10^{-35}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;a \leq 2.45:\\
\;\;\;\;-1\\
\mathbf{else}:\\
\;\;\;\;\left(a \cdot \left(a \cdot a\right)\right) \cdot a\\
\end{array}
\end{array}
if a < -1.4999999999999999e50Initial program 63.8%
Simplified0
Taylor expanded in a around inf 0
Simplified0
if -1.4999999999999999e50 < a < 5.70000000000000034e-291 or 5.5000000000000001e-120 < a < 1.16000000000000005e-35Initial program 96.8%
Simplified0
Taylor expanded in b around inf 0
Simplified0
if 5.70000000000000034e-291 < a < 5.5000000000000001e-120 or 1.16000000000000005e-35 < a < 2.4500000000000002Initial program 99.8%
Taylor expanded in b around inf 0
Simplified0
Taylor expanded in b around 0 0
Simplified0
if 2.4500000000000002 < a Initial program 31.9%
Simplified0
Taylor expanded in a around inf 0
Simplified0
Applied egg-rr0
(FPCore (a b)
:precision binary64
(let* ((t_0 (* -4.0 (* a (* a a)))))
(if (<= b 1.85e-120)
-1.0
(if (<= b 3e-99)
t_0
(if (<= b 5.5e-6) -1.0 (if (<= b 1e+136) t_0 (* b (* b 12.0))))))))
double code(double a, double b) {
double t_0 = -4.0 * (a * (a * a));
double tmp;
if (b <= 1.85e-120) {
tmp = -1.0;
} else if (b <= 3e-99) {
tmp = t_0;
} else if (b <= 5.5e-6) {
tmp = -1.0;
} else if (b <= 1e+136) {
tmp = t_0;
} else {
tmp = b * (b * 12.0);
}
return tmp;
}
real(8) function code(a, b)
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: t_0
real(8) :: tmp
t_0 = (-4.0d0) * (a * (a * a))
if (b <= 1.85d-120) then
tmp = -1.0d0
else if (b <= 3d-99) then
tmp = t_0
else if (b <= 5.5d-6) then
tmp = -1.0d0
else if (b <= 1d+136) then
tmp = t_0
else
tmp = b * (b * 12.0d0)
end if
code = tmp
end function
public static double code(double a, double b) {
double t_0 = -4.0 * (a * (a * a));
double tmp;
if (b <= 1.85e-120) {
tmp = -1.0;
} else if (b <= 3e-99) {
tmp = t_0;
} else if (b <= 5.5e-6) {
tmp = -1.0;
} else if (b <= 1e+136) {
tmp = t_0;
} else {
tmp = b * (b * 12.0);
}
return tmp;
}
def code(a, b): t_0 = -4.0 * (a * (a * a)) tmp = 0 if b <= 1.85e-120: tmp = -1.0 elif b <= 3e-99: tmp = t_0 elif b <= 5.5e-6: tmp = -1.0 elif b <= 1e+136: tmp = t_0 else: tmp = b * (b * 12.0) return tmp
function code(a, b) t_0 = Float64(-4.0 * Float64(a * Float64(a * a))) tmp = 0.0 if (b <= 1.85e-120) tmp = -1.0; elseif (b <= 3e-99) tmp = t_0; elseif (b <= 5.5e-6) tmp = -1.0; elseif (b <= 1e+136) tmp = t_0; else tmp = Float64(b * Float64(b * 12.0)); end return tmp end
function tmp_2 = code(a, b) t_0 = -4.0 * (a * (a * a)); tmp = 0.0; if (b <= 1.85e-120) tmp = -1.0; elseif (b <= 3e-99) tmp = t_0; elseif (b <= 5.5e-6) tmp = -1.0; elseif (b <= 1e+136) tmp = t_0; else tmp = b * (b * 12.0); end tmp_2 = tmp; end
code[a_, b_] := Block[{t$95$0 = N[(-4.0 * N[(a * N[(a * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[b, 1.85e-120], -1.0, If[LessEqual[b, 3e-99], t$95$0, If[LessEqual[b, 5.5e-6], -1.0, If[LessEqual[b, 1e+136], t$95$0, N[(b * N[(b * 12.0), $MachinePrecision]), $MachinePrecision]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := -4 \cdot \left(a \cdot \left(a \cdot a\right)\right)\\
\mathbf{if}\;b \leq 1.85 \cdot 10^{-120}:\\
\;\;\;\;-1\\
\mathbf{elif}\;b \leq 3 \cdot 10^{-99}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;b \leq 5.5 \cdot 10^{-6}:\\
\;\;\;\;-1\\
\mathbf{elif}\;b \leq 10^{+136}:\\
\;\;\;\;t\_0\\
\mathbf{else}:\\
\;\;\;\;b \cdot \left(b \cdot 12\right)\\
\end{array}
\end{array}
if b < 1.85e-120 or 3.00000000000000006e-99 < b < 5.4999999999999999e-6Initial program 76.4%
Taylor expanded in b around inf 0
Simplified0
Taylor expanded in b around 0 0
Simplified0
if 1.85e-120 < b < 3.00000000000000006e-99 or 5.4999999999999999e-6 < b < 1.00000000000000006e136Initial program 66.3%
Simplified0
Taylor expanded in a around inf 0
Simplified0
Taylor expanded in a around 0 0
Simplified0
if 1.00000000000000006e136 < b Initial program 57.6%
Taylor expanded in b around inf 0
Simplified0
Taylor expanded in a around 0 0
Simplified0
Taylor expanded in b around 0 0
Simplified0
Taylor expanded in b around inf 0
Simplified0
(FPCore (a b)
:precision binary64
(if (<= a -7.8e+55)
(* (* a a) (* a a))
(if (<= a 90000000.0)
(- (* b (* b (+ 12.0 (* b b)))) 1.0)
(* a (* (* a a) (+ a -4.0))))))
double code(double a, double b) {
double tmp;
if (a <= -7.8e+55) {
tmp = (a * a) * (a * a);
} else if (a <= 90000000.0) {
tmp = (b * (b * (12.0 + (b * b)))) - 1.0;
} else {
tmp = a * ((a * a) * (a + -4.0));
}
return tmp;
}
real(8) function code(a, b)
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if (a <= (-7.8d+55)) then
tmp = (a * a) * (a * a)
else if (a <= 90000000.0d0) then
tmp = (b * (b * (12.0d0 + (b * b)))) - 1.0d0
else
tmp = a * ((a * a) * (a + (-4.0d0)))
end if
code = tmp
end function
public static double code(double a, double b) {
double tmp;
if (a <= -7.8e+55) {
tmp = (a * a) * (a * a);
} else if (a <= 90000000.0) {
tmp = (b * (b * (12.0 + (b * b)))) - 1.0;
} else {
tmp = a * ((a * a) * (a + -4.0));
}
return tmp;
}
def code(a, b): tmp = 0 if a <= -7.8e+55: tmp = (a * a) * (a * a) elif a <= 90000000.0: tmp = (b * (b * (12.0 + (b * b)))) - 1.0 else: tmp = a * ((a * a) * (a + -4.0)) return tmp
function code(a, b) tmp = 0.0 if (a <= -7.8e+55) tmp = Float64(Float64(a * a) * Float64(a * a)); elseif (a <= 90000000.0) tmp = Float64(Float64(b * Float64(b * Float64(12.0 + Float64(b * b)))) - 1.0); else tmp = Float64(a * Float64(Float64(a * a) * Float64(a + -4.0))); end return tmp end
function tmp_2 = code(a, b) tmp = 0.0; if (a <= -7.8e+55) tmp = (a * a) * (a * a); elseif (a <= 90000000.0) tmp = (b * (b * (12.0 + (b * b)))) - 1.0; else tmp = a * ((a * a) * (a + -4.0)); end tmp_2 = tmp; end
code[a_, b_] := If[LessEqual[a, -7.8e+55], N[(N[(a * a), $MachinePrecision] * N[(a * a), $MachinePrecision]), $MachinePrecision], If[LessEqual[a, 90000000.0], N[(N[(b * N[(b * N[(12.0 + N[(b * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - 1.0), $MachinePrecision], N[(a * N[(N[(a * a), $MachinePrecision] * N[(a + -4.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;a \leq -7.8 \cdot 10^{+55}:\\
\;\;\;\;\left(a \cdot a\right) \cdot \left(a \cdot a\right)\\
\mathbf{elif}\;a \leq 90000000:\\
\;\;\;\;b \cdot \left(b \cdot \left(12 + b \cdot b\right)\right) - 1\\
\mathbf{else}:\\
\;\;\;\;a \cdot \left(\left(a \cdot a\right) \cdot \left(a + -4\right)\right)\\
\end{array}
\end{array}
if a < -7.80000000000000054e55Initial program 63.8%
Simplified0
Taylor expanded in a around inf 0
Simplified0
if -7.80000000000000054e55 < a < 9e7Initial program 97.7%
Taylor expanded in b around inf 0
Simplified0
Taylor expanded in a around 0 0
Simplified0
Taylor expanded in b around 0 0
Simplified0
if 9e7 < a Initial program 28.9%
Simplified0
Taylor expanded in a around inf 0
Simplified0
Taylor expanded in a around 0 0
Simplified0
(FPCore (a b) :precision binary64 (if (<= (* b b) 1e-6) (- (* (+ 4.0 (* a (+ -4.0 a))) (* a a)) 1.0) (- (* b (* b (+ 12.0 (* b b)))) 1.0)))
double code(double a, double b) {
double tmp;
if ((b * b) <= 1e-6) {
tmp = ((4.0 + (a * (-4.0 + a))) * (a * a)) - 1.0;
} else {
tmp = (b * (b * (12.0 + (b * b)))) - 1.0;
}
return tmp;
}
real(8) function code(a, b)
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if ((b * b) <= 1d-6) then
tmp = ((4.0d0 + (a * ((-4.0d0) + a))) * (a * a)) - 1.0d0
else
tmp = (b * (b * (12.0d0 + (b * b)))) - 1.0d0
end if
code = tmp
end function
public static double code(double a, double b) {
double tmp;
if ((b * b) <= 1e-6) {
tmp = ((4.0 + (a * (-4.0 + a))) * (a * a)) - 1.0;
} else {
tmp = (b * (b * (12.0 + (b * b)))) - 1.0;
}
return tmp;
}
def code(a, b): tmp = 0 if (b * b) <= 1e-6: tmp = ((4.0 + (a * (-4.0 + a))) * (a * a)) - 1.0 else: tmp = (b * (b * (12.0 + (b * b)))) - 1.0 return tmp
function code(a, b) tmp = 0.0 if (Float64(b * b) <= 1e-6) tmp = Float64(Float64(Float64(4.0 + Float64(a * Float64(-4.0 + a))) * Float64(a * a)) - 1.0); else tmp = Float64(Float64(b * Float64(b * Float64(12.0 + Float64(b * b)))) - 1.0); end return tmp end
function tmp_2 = code(a, b) tmp = 0.0; if ((b * b) <= 1e-6) tmp = ((4.0 + (a * (-4.0 + a))) * (a * a)) - 1.0; else tmp = (b * (b * (12.0 + (b * b)))) - 1.0; end tmp_2 = tmp; end
code[a_, b_] := If[LessEqual[N[(b * b), $MachinePrecision], 1e-6], N[(N[(N[(4.0 + N[(a * N[(-4.0 + a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(a * a), $MachinePrecision]), $MachinePrecision] - 1.0), $MachinePrecision], N[(N[(b * N[(b * N[(12.0 + N[(b * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - 1.0), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \cdot b \leq 10^{-6}:\\
\;\;\;\;\left(4 + a \cdot \left(-4 + a\right)\right) \cdot \left(a \cdot a\right) - 1\\
\mathbf{else}:\\
\;\;\;\;b \cdot \left(b \cdot \left(12 + b \cdot b\right)\right) - 1\\
\end{array}
\end{array}
if (*.f64 b b) < 9.99999999999999955e-7Initial program 83.0%
Applied egg-rr0
Taylor expanded in b around 0 0
Simplified0
Taylor expanded in a around 0 0
Simplified0
if 9.99999999999999955e-7 < (*.f64 b b) Initial program 61.5%
Taylor expanded in b around inf 0
Simplified0
Taylor expanded in a around 0 0
Simplified0
Taylor expanded in b around 0 0
Simplified0
(FPCore (a b)
:precision binary64
(if (<= a -1.6e+53)
(* (* a a) (* a a))
(if (<= a 160000000.0)
(- (* (* b (* b b)) b) 1.0)
(* a (* (* a a) (+ a -4.0))))))
double code(double a, double b) {
double tmp;
if (a <= -1.6e+53) {
tmp = (a * a) * (a * a);
} else if (a <= 160000000.0) {
tmp = ((b * (b * b)) * b) - 1.0;
} else {
tmp = a * ((a * a) * (a + -4.0));
}
return tmp;
}
real(8) function code(a, b)
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if (a <= (-1.6d+53)) then
tmp = (a * a) * (a * a)
else if (a <= 160000000.0d0) then
tmp = ((b * (b * b)) * b) - 1.0d0
else
tmp = a * ((a * a) * (a + (-4.0d0)))
end if
code = tmp
end function
public static double code(double a, double b) {
double tmp;
if (a <= -1.6e+53) {
tmp = (a * a) * (a * a);
} else if (a <= 160000000.0) {
tmp = ((b * (b * b)) * b) - 1.0;
} else {
tmp = a * ((a * a) * (a + -4.0));
}
return tmp;
}
def code(a, b): tmp = 0 if a <= -1.6e+53: tmp = (a * a) * (a * a) elif a <= 160000000.0: tmp = ((b * (b * b)) * b) - 1.0 else: tmp = a * ((a * a) * (a + -4.0)) return tmp
function code(a, b) tmp = 0.0 if (a <= -1.6e+53) tmp = Float64(Float64(a * a) * Float64(a * a)); elseif (a <= 160000000.0) tmp = Float64(Float64(Float64(b * Float64(b * b)) * b) - 1.0); else tmp = Float64(a * Float64(Float64(a * a) * Float64(a + -4.0))); end return tmp end
function tmp_2 = code(a, b) tmp = 0.0; if (a <= -1.6e+53) tmp = (a * a) * (a * a); elseif (a <= 160000000.0) tmp = ((b * (b * b)) * b) - 1.0; else tmp = a * ((a * a) * (a + -4.0)); end tmp_2 = tmp; end
code[a_, b_] := If[LessEqual[a, -1.6e+53], N[(N[(a * a), $MachinePrecision] * N[(a * a), $MachinePrecision]), $MachinePrecision], If[LessEqual[a, 160000000.0], N[(N[(N[(b * N[(b * b), $MachinePrecision]), $MachinePrecision] * b), $MachinePrecision] - 1.0), $MachinePrecision], N[(a * N[(N[(a * a), $MachinePrecision] * N[(a + -4.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;a \leq -1.6 \cdot 10^{+53}:\\
\;\;\;\;\left(a \cdot a\right) \cdot \left(a \cdot a\right)\\
\mathbf{elif}\;a \leq 160000000:\\
\;\;\;\;\left(b \cdot \left(b \cdot b\right)\right) \cdot b - 1\\
\mathbf{else}:\\
\;\;\;\;a \cdot \left(\left(a \cdot a\right) \cdot \left(a + -4\right)\right)\\
\end{array}
\end{array}
if a < -1.6e53Initial program 63.8%
Simplified0
Taylor expanded in a around inf 0
Simplified0
if -1.6e53 < a < 1.6e8Initial program 97.7%
Taylor expanded in b around inf 0
Simplified0
Applied egg-rr0
if 1.6e8 < a Initial program 28.9%
Simplified0
Taylor expanded in a around inf 0
Simplified0
Taylor expanded in a around 0 0
Simplified0
(FPCore (a b)
:precision binary64
(if (<= a -1.5e+50)
(* (* a a) (* a a))
(if (<= a 6000000.0)
(- (* (* b b) (* b b)) 1.0)
(* a (* (* a a) (+ a -4.0))))))
double code(double a, double b) {
double tmp;
if (a <= -1.5e+50) {
tmp = (a * a) * (a * a);
} else if (a <= 6000000.0) {
tmp = ((b * b) * (b * b)) - 1.0;
} else {
tmp = a * ((a * a) * (a + -4.0));
}
return tmp;
}
real(8) function code(a, b)
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if (a <= (-1.5d+50)) then
tmp = (a * a) * (a * a)
else if (a <= 6000000.0d0) then
tmp = ((b * b) * (b * b)) - 1.0d0
else
tmp = a * ((a * a) * (a + (-4.0d0)))
end if
code = tmp
end function
public static double code(double a, double b) {
double tmp;
if (a <= -1.5e+50) {
tmp = (a * a) * (a * a);
} else if (a <= 6000000.0) {
tmp = ((b * b) * (b * b)) - 1.0;
} else {
tmp = a * ((a * a) * (a + -4.0));
}
return tmp;
}
def code(a, b): tmp = 0 if a <= -1.5e+50: tmp = (a * a) * (a * a) elif a <= 6000000.0: tmp = ((b * b) * (b * b)) - 1.0 else: tmp = a * ((a * a) * (a + -4.0)) return tmp
function code(a, b) tmp = 0.0 if (a <= -1.5e+50) tmp = Float64(Float64(a * a) * Float64(a * a)); elseif (a <= 6000000.0) tmp = Float64(Float64(Float64(b * b) * Float64(b * b)) - 1.0); else tmp = Float64(a * Float64(Float64(a * a) * Float64(a + -4.0))); end return tmp end
function tmp_2 = code(a, b) tmp = 0.0; if (a <= -1.5e+50) tmp = (a * a) * (a * a); elseif (a <= 6000000.0) tmp = ((b * b) * (b * b)) - 1.0; else tmp = a * ((a * a) * (a + -4.0)); end tmp_2 = tmp; end
code[a_, b_] := If[LessEqual[a, -1.5e+50], N[(N[(a * a), $MachinePrecision] * N[(a * a), $MachinePrecision]), $MachinePrecision], If[LessEqual[a, 6000000.0], N[(N[(N[(b * b), $MachinePrecision] * N[(b * b), $MachinePrecision]), $MachinePrecision] - 1.0), $MachinePrecision], N[(a * N[(N[(a * a), $MachinePrecision] * N[(a + -4.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;a \leq -1.5 \cdot 10^{+50}:\\
\;\;\;\;\left(a \cdot a\right) \cdot \left(a \cdot a\right)\\
\mathbf{elif}\;a \leq 6000000:\\
\;\;\;\;\left(b \cdot b\right) \cdot \left(b \cdot b\right) - 1\\
\mathbf{else}:\\
\;\;\;\;a \cdot \left(\left(a \cdot a\right) \cdot \left(a + -4\right)\right)\\
\end{array}
\end{array}
if a < -1.4999999999999999e50Initial program 63.8%
Simplified0
Taylor expanded in a around inf 0
Simplified0
if -1.4999999999999999e50 < a < 6e6Initial program 97.7%
Taylor expanded in b around inf 0
Simplified0
if 6e6 < a Initial program 28.9%
Simplified0
Taylor expanded in a around inf 0
Simplified0
Taylor expanded in a around 0 0
Simplified0
(FPCore (a b)
:precision binary64
(if (<= a -7600.0)
(* (+ a -4.0) (* a (* a a)))
(if (<= a 510000000.0)
(- (* 12.0 (* b b)) 1.0)
(* a (* (* a a) (+ a -4.0))))))
double code(double a, double b) {
double tmp;
if (a <= -7600.0) {
tmp = (a + -4.0) * (a * (a * a));
} else if (a <= 510000000.0) {
tmp = (12.0 * (b * b)) - 1.0;
} else {
tmp = a * ((a * a) * (a + -4.0));
}
return tmp;
}
real(8) function code(a, b)
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if (a <= (-7600.0d0)) then
tmp = (a + (-4.0d0)) * (a * (a * a))
else if (a <= 510000000.0d0) then
tmp = (12.0d0 * (b * b)) - 1.0d0
else
tmp = a * ((a * a) * (a + (-4.0d0)))
end if
code = tmp
end function
public static double code(double a, double b) {
double tmp;
if (a <= -7600.0) {
tmp = (a + -4.0) * (a * (a * a));
} else if (a <= 510000000.0) {
tmp = (12.0 * (b * b)) - 1.0;
} else {
tmp = a * ((a * a) * (a + -4.0));
}
return tmp;
}
def code(a, b): tmp = 0 if a <= -7600.0: tmp = (a + -4.0) * (a * (a * a)) elif a <= 510000000.0: tmp = (12.0 * (b * b)) - 1.0 else: tmp = a * ((a * a) * (a + -4.0)) return tmp
function code(a, b) tmp = 0.0 if (a <= -7600.0) tmp = Float64(Float64(a + -4.0) * Float64(a * Float64(a * a))); elseif (a <= 510000000.0) tmp = Float64(Float64(12.0 * Float64(b * b)) - 1.0); else tmp = Float64(a * Float64(Float64(a * a) * Float64(a + -4.0))); end return tmp end
function tmp_2 = code(a, b) tmp = 0.0; if (a <= -7600.0) tmp = (a + -4.0) * (a * (a * a)); elseif (a <= 510000000.0) tmp = (12.0 * (b * b)) - 1.0; else tmp = a * ((a * a) * (a + -4.0)); end tmp_2 = tmp; end
code[a_, b_] := If[LessEqual[a, -7600.0], N[(N[(a + -4.0), $MachinePrecision] * N[(a * N[(a * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[a, 510000000.0], N[(N[(12.0 * N[(b * b), $MachinePrecision]), $MachinePrecision] - 1.0), $MachinePrecision], N[(a * N[(N[(a * a), $MachinePrecision] * N[(a + -4.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;a \leq -7600:\\
\;\;\;\;\left(a + -4\right) \cdot \left(a \cdot \left(a \cdot a\right)\right)\\
\mathbf{elif}\;a \leq 510000000:\\
\;\;\;\;12 \cdot \left(b \cdot b\right) - 1\\
\mathbf{else}:\\
\;\;\;\;a \cdot \left(\left(a \cdot a\right) \cdot \left(a + -4\right)\right)\\
\end{array}
\end{array}
if a < -7600Initial program 63.4%
Simplified0
Taylor expanded in a around inf 0
Simplified0
Taylor expanded in a around 0 0
Simplified0
Applied egg-rr0
if -7600 < a < 5.1e8Initial program 99.1%
Taylor expanded in b around inf 0
Simplified0
Taylor expanded in a around 0 0
Simplified0
Taylor expanded in b around 0 0
Simplified0
if 5.1e8 < a Initial program 28.9%
Simplified0
Taylor expanded in a around inf 0
Simplified0
Taylor expanded in a around 0 0
Simplified0
(FPCore (a b) :precision binary64 (let* ((t_0 (* a (* (* a a) (+ a -4.0))))) (if (<= a -1600.0) t_0 (if (<= a 4200000.0) (- (* 12.0 (* b b)) 1.0) t_0))))
double code(double a, double b) {
double t_0 = a * ((a * a) * (a + -4.0));
double tmp;
if (a <= -1600.0) {
tmp = t_0;
} else if (a <= 4200000.0) {
tmp = (12.0 * (b * b)) - 1.0;
} else {
tmp = t_0;
}
return tmp;
}
real(8) function code(a, b)
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: t_0
real(8) :: tmp
t_0 = a * ((a * a) * (a + (-4.0d0)))
if (a <= (-1600.0d0)) then
tmp = t_0
else if (a <= 4200000.0d0) then
tmp = (12.0d0 * (b * b)) - 1.0d0
else
tmp = t_0
end if
code = tmp
end function
public static double code(double a, double b) {
double t_0 = a * ((a * a) * (a + -4.0));
double tmp;
if (a <= -1600.0) {
tmp = t_0;
} else if (a <= 4200000.0) {
tmp = (12.0 * (b * b)) - 1.0;
} else {
tmp = t_0;
}
return tmp;
}
def code(a, b): t_0 = a * ((a * a) * (a + -4.0)) tmp = 0 if a <= -1600.0: tmp = t_0 elif a <= 4200000.0: tmp = (12.0 * (b * b)) - 1.0 else: tmp = t_0 return tmp
function code(a, b) t_0 = Float64(a * Float64(Float64(a * a) * Float64(a + -4.0))) tmp = 0.0 if (a <= -1600.0) tmp = t_0; elseif (a <= 4200000.0) tmp = Float64(Float64(12.0 * Float64(b * b)) - 1.0); else tmp = t_0; end return tmp end
function tmp_2 = code(a, b) t_0 = a * ((a * a) * (a + -4.0)); tmp = 0.0; if (a <= -1600.0) tmp = t_0; elseif (a <= 4200000.0) tmp = (12.0 * (b * b)) - 1.0; else tmp = t_0; end tmp_2 = tmp; end
code[a_, b_] := Block[{t$95$0 = N[(a * N[(N[(a * a), $MachinePrecision] * N[(a + -4.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[a, -1600.0], t$95$0, If[LessEqual[a, 4200000.0], N[(N[(12.0 * N[(b * b), $MachinePrecision]), $MachinePrecision] - 1.0), $MachinePrecision], t$95$0]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := a \cdot \left(\left(a \cdot a\right) \cdot \left(a + -4\right)\right)\\
\mathbf{if}\;a \leq -1600:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;a \leq 4200000:\\
\;\;\;\;12 \cdot \left(b \cdot b\right) - 1\\
\mathbf{else}:\\
\;\;\;\;t\_0\\
\end{array}
\end{array}
if a < -1600 or 4.2e6 < a Initial program 43.8%
Simplified0
Taylor expanded in a around inf 0
Simplified0
Taylor expanded in a around 0 0
Simplified0
if -1600 < a < 4.2e6Initial program 99.1%
Taylor expanded in b around inf 0
Simplified0
Taylor expanded in a around 0 0
Simplified0
Taylor expanded in b around 0 0
Simplified0
(FPCore (a b) :precision binary64 (if (<= a -1250000.0) (* (* a a) (* a a)) (if (<= a 3.6e+21) (- (* 12.0 (* b b)) 1.0) (* (* a (* a a)) a))))
double code(double a, double b) {
double tmp;
if (a <= -1250000.0) {
tmp = (a * a) * (a * a);
} else if (a <= 3.6e+21) {
tmp = (12.0 * (b * b)) - 1.0;
} else {
tmp = (a * (a * a)) * a;
}
return tmp;
}
real(8) function code(a, b)
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if (a <= (-1250000.0d0)) then
tmp = (a * a) * (a * a)
else if (a <= 3.6d+21) then
tmp = (12.0d0 * (b * b)) - 1.0d0
else
tmp = (a * (a * a)) * a
end if
code = tmp
end function
public static double code(double a, double b) {
double tmp;
if (a <= -1250000.0) {
tmp = (a * a) * (a * a);
} else if (a <= 3.6e+21) {
tmp = (12.0 * (b * b)) - 1.0;
} else {
tmp = (a * (a * a)) * a;
}
return tmp;
}
def code(a, b): tmp = 0 if a <= -1250000.0: tmp = (a * a) * (a * a) elif a <= 3.6e+21: tmp = (12.0 * (b * b)) - 1.0 else: tmp = (a * (a * a)) * a return tmp
function code(a, b) tmp = 0.0 if (a <= -1250000.0) tmp = Float64(Float64(a * a) * Float64(a * a)); elseif (a <= 3.6e+21) tmp = Float64(Float64(12.0 * Float64(b * b)) - 1.0); else tmp = Float64(Float64(a * Float64(a * a)) * a); end return tmp end
function tmp_2 = code(a, b) tmp = 0.0; if (a <= -1250000.0) tmp = (a * a) * (a * a); elseif (a <= 3.6e+21) tmp = (12.0 * (b * b)) - 1.0; else tmp = (a * (a * a)) * a; end tmp_2 = tmp; end
code[a_, b_] := If[LessEqual[a, -1250000.0], N[(N[(a * a), $MachinePrecision] * N[(a * a), $MachinePrecision]), $MachinePrecision], If[LessEqual[a, 3.6e+21], N[(N[(12.0 * N[(b * b), $MachinePrecision]), $MachinePrecision] - 1.0), $MachinePrecision], N[(N[(a * N[(a * a), $MachinePrecision]), $MachinePrecision] * a), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;a \leq -1250000:\\
\;\;\;\;\left(a \cdot a\right) \cdot \left(a \cdot a\right)\\
\mathbf{elif}\;a \leq 3.6 \cdot 10^{+21}:\\
\;\;\;\;12 \cdot \left(b \cdot b\right) - 1\\
\mathbf{else}:\\
\;\;\;\;\left(a \cdot \left(a \cdot a\right)\right) \cdot a\\
\end{array}
\end{array}
if a < -1.25e6Initial program 63.4%
Simplified0
Taylor expanded in a around inf 0
Simplified0
if -1.25e6 < a < 3.6e21Initial program 99.1%
Taylor expanded in b around inf 0
Simplified0
Taylor expanded in a around 0 0
Simplified0
Taylor expanded in b around 0 0
Simplified0
if 3.6e21 < a Initial program 26.8%
Simplified0
Taylor expanded in a around inf 0
Simplified0
Applied egg-rr0
(FPCore (a b) :precision binary64 (if (<= a -0.015) (* (* a a) (* a a)) (if (<= a 2.45) -1.0 (* (* a (* a a)) a))))
double code(double a, double b) {
double tmp;
if (a <= -0.015) {
tmp = (a * a) * (a * a);
} else if (a <= 2.45) {
tmp = -1.0;
} else {
tmp = (a * (a * a)) * a;
}
return tmp;
}
real(8) function code(a, b)
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if (a <= (-0.015d0)) then
tmp = (a * a) * (a * a)
else if (a <= 2.45d0) then
tmp = -1.0d0
else
tmp = (a * (a * a)) * a
end if
code = tmp
end function
public static double code(double a, double b) {
double tmp;
if (a <= -0.015) {
tmp = (a * a) * (a * a);
} else if (a <= 2.45) {
tmp = -1.0;
} else {
tmp = (a * (a * a)) * a;
}
return tmp;
}
def code(a, b): tmp = 0 if a <= -0.015: tmp = (a * a) * (a * a) elif a <= 2.45: tmp = -1.0 else: tmp = (a * (a * a)) * a return tmp
function code(a, b) tmp = 0.0 if (a <= -0.015) tmp = Float64(Float64(a * a) * Float64(a * a)); elseif (a <= 2.45) tmp = -1.0; else tmp = Float64(Float64(a * Float64(a * a)) * a); end return tmp end
function tmp_2 = code(a, b) tmp = 0.0; if (a <= -0.015) tmp = (a * a) * (a * a); elseif (a <= 2.45) tmp = -1.0; else tmp = (a * (a * a)) * a; end tmp_2 = tmp; end
code[a_, b_] := If[LessEqual[a, -0.015], N[(N[(a * a), $MachinePrecision] * N[(a * a), $MachinePrecision]), $MachinePrecision], If[LessEqual[a, 2.45], -1.0, N[(N[(a * N[(a * a), $MachinePrecision]), $MachinePrecision] * a), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;a \leq -0.015:\\
\;\;\;\;\left(a \cdot a\right) \cdot \left(a \cdot a\right)\\
\mathbf{elif}\;a \leq 2.45:\\
\;\;\;\;-1\\
\mathbf{else}:\\
\;\;\;\;\left(a \cdot \left(a \cdot a\right)\right) \cdot a\\
\end{array}
\end{array}
if a < -0.014999999999999999Initial program 63.6%
Simplified0
Taylor expanded in a around inf 0
Simplified0
if -0.014999999999999999 < a < 2.4500000000000002Initial program 99.8%
Taylor expanded in b around inf 0
Simplified0
Taylor expanded in b around 0 0
Simplified0
if 2.4500000000000002 < a Initial program 31.9%
Simplified0
Taylor expanded in a around inf 0
Simplified0
Applied egg-rr0
(FPCore (a b) :precision binary64 (let* ((t_0 (* (* a a) (* a a)))) (if (<= a -0.015) t_0 (if (<= a 2.45) -1.0 t_0))))
double code(double a, double b) {
double t_0 = (a * a) * (a * a);
double tmp;
if (a <= -0.015) {
tmp = t_0;
} else if (a <= 2.45) {
tmp = -1.0;
} else {
tmp = t_0;
}
return tmp;
}
real(8) function code(a, b)
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: t_0
real(8) :: tmp
t_0 = (a * a) * (a * a)
if (a <= (-0.015d0)) then
tmp = t_0
else if (a <= 2.45d0) then
tmp = -1.0d0
else
tmp = t_0
end if
code = tmp
end function
public static double code(double a, double b) {
double t_0 = (a * a) * (a * a);
double tmp;
if (a <= -0.015) {
tmp = t_0;
} else if (a <= 2.45) {
tmp = -1.0;
} else {
tmp = t_0;
}
return tmp;
}
def code(a, b): t_0 = (a * a) * (a * a) tmp = 0 if a <= -0.015: tmp = t_0 elif a <= 2.45: tmp = -1.0 else: tmp = t_0 return tmp
function code(a, b) t_0 = Float64(Float64(a * a) * Float64(a * a)) tmp = 0.0 if (a <= -0.015) tmp = t_0; elseif (a <= 2.45) tmp = -1.0; else tmp = t_0; end return tmp end
function tmp_2 = code(a, b) t_0 = (a * a) * (a * a); tmp = 0.0; if (a <= -0.015) tmp = t_0; elseif (a <= 2.45) tmp = -1.0; else tmp = t_0; end tmp_2 = tmp; end
code[a_, b_] := Block[{t$95$0 = N[(N[(a * a), $MachinePrecision] * N[(a * a), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[a, -0.015], t$95$0, If[LessEqual[a, 2.45], -1.0, t$95$0]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \left(a \cdot a\right) \cdot \left(a \cdot a\right)\\
\mathbf{if}\;a \leq -0.015:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;a \leq 2.45:\\
\;\;\;\;-1\\
\mathbf{else}:\\
\;\;\;\;t\_0\\
\end{array}
\end{array}
if a < -0.014999999999999999 or 2.4500000000000002 < a Initial program 45.6%
Simplified0
Taylor expanded in a around inf 0
Simplified0
if -0.014999999999999999 < a < 2.4500000000000002Initial program 99.8%
Taylor expanded in b around inf 0
Simplified0
Taylor expanded in b around 0 0
Simplified0
(FPCore (a b) :precision binary64 (if (<= b 0.0009) -1.0 (* b (* b 12.0))))
double code(double a, double b) {
double tmp;
if (b <= 0.0009) {
tmp = -1.0;
} else {
tmp = b * (b * 12.0);
}
return tmp;
}
real(8) function code(a, b)
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if (b <= 0.0009d0) then
tmp = -1.0d0
else
tmp = b * (b * 12.0d0)
end if
code = tmp
end function
public static double code(double a, double b) {
double tmp;
if (b <= 0.0009) {
tmp = -1.0;
} else {
tmp = b * (b * 12.0);
}
return tmp;
}
def code(a, b): tmp = 0 if b <= 0.0009: tmp = -1.0 else: tmp = b * (b * 12.0) return tmp
function code(a, b) tmp = 0.0 if (b <= 0.0009) tmp = -1.0; else tmp = Float64(b * Float64(b * 12.0)); end return tmp end
function tmp_2 = code(a, b) tmp = 0.0; if (b <= 0.0009) tmp = -1.0; else tmp = b * (b * 12.0); end tmp_2 = tmp; end
code[a_, b_] := If[LessEqual[b, 0.0009], -1.0, N[(b * N[(b * 12.0), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;b \leq 0.0009:\\
\;\;\;\;-1\\
\mathbf{else}:\\
\;\;\;\;b \cdot \left(b \cdot 12\right)\\
\end{array}
\end{array}
if b < 8.9999999999999998e-4Initial program 76.6%
Taylor expanded in b around inf 0
Simplified0
Taylor expanded in b around 0 0
Simplified0
if 8.9999999999999998e-4 < b Initial program 60.9%
Taylor expanded in b around inf 0
Simplified0
Taylor expanded in a around 0 0
Simplified0
Taylor expanded in b around 0 0
Simplified0
Taylor expanded in b around inf 0
Simplified0
(FPCore (a b) :precision binary64 -1.0)
double code(double a, double b) {
return -1.0;
}
real(8) function code(a, b)
real(8), intent (in) :: a
real(8), intent (in) :: b
code = -1.0d0
end function
public static double code(double a, double b) {
return -1.0;
}
def code(a, b): return -1.0
function code(a, b) return -1.0 end
function tmp = code(a, b) tmp = -1.0; end
code[a_, b_] := -1.0
\begin{array}{l}
\\
-1
\end{array}
Initial program 72.9%
Taylor expanded in b around inf 0
Simplified0
Taylor expanded in b around 0 0
Simplified0
herbie shell --seed 2024110
(FPCore (a b)
:name "Bouland and Aaronson, Equation (24)"
:precision binary64
(- (+ (pow (+ (* a a) (* b b)) 2.0) (* 4.0 (+ (* (* a a) (- 1.0 a)) (* (* b b) (+ 3.0 a))))) 1.0))