
(FPCore (a b c) :precision binary64 (/ (+ (- b) (sqrt (- (* b b) (* (* 3.0 a) c)))) (* 3.0 a)))
double code(double a, double b, double c) {
return (-b + sqrt(((b * b) - ((3.0 * a) * c)))) / (3.0 * a);
}
real(8) function code(a, b, c)
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
code = (-b + sqrt(((b * b) - ((3.0d0 * a) * c)))) / (3.0d0 * a)
end function
public static double code(double a, double b, double c) {
return (-b + Math.sqrt(((b * b) - ((3.0 * a) * c)))) / (3.0 * a);
}
def code(a, b, c): return (-b + math.sqrt(((b * b) - ((3.0 * a) * c)))) / (3.0 * a)
function code(a, b, c) return Float64(Float64(Float64(-b) + sqrt(Float64(Float64(b * b) - Float64(Float64(3.0 * a) * c)))) / Float64(3.0 * a)) end
function tmp = code(a, b, c) tmp = (-b + sqrt(((b * b) - ((3.0 * a) * c)))) / (3.0 * a); end
code[a_, b_, c_] := N[(N[((-b) + N[Sqrt[N[(N[(b * b), $MachinePrecision] - N[(N[(3.0 * a), $MachinePrecision] * c), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / N[(3.0 * a), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 11 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (a b c) :precision binary64 (/ (+ (- b) (sqrt (- (* b b) (* (* 3.0 a) c)))) (* 3.0 a)))
double code(double a, double b, double c) {
return (-b + sqrt(((b * b) - ((3.0 * a) * c)))) / (3.0 * a);
}
real(8) function code(a, b, c)
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
code = (-b + sqrt(((b * b) - ((3.0d0 * a) * c)))) / (3.0d0 * a)
end function
public static double code(double a, double b, double c) {
return (-b + Math.sqrt(((b * b) - ((3.0 * a) * c)))) / (3.0 * a);
}
def code(a, b, c): return (-b + math.sqrt(((b * b) - ((3.0 * a) * c)))) / (3.0 * a)
function code(a, b, c) return Float64(Float64(Float64(-b) + sqrt(Float64(Float64(b * b) - Float64(Float64(3.0 * a) * c)))) / Float64(3.0 * a)) end
function tmp = code(a, b, c) tmp = (-b + sqrt(((b * b) - ((3.0 * a) * c)))) / (3.0 * a); end
code[a_, b_, c_] := N[(N[((-b) + N[Sqrt[N[(N[(b * b), $MachinePrecision] - N[(N[(3.0 * a), $MachinePrecision] * c), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / N[(3.0 * a), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}
\end{array}
(FPCore (a b c) :precision binary64 (* (/ -0.3333333333333333 a) (* (* a 3.0) (/ c (+ b (pow (+ (* b b) (* a (* -3.0 c))) 0.5))))))
double code(double a, double b, double c) {
return (-0.3333333333333333 / a) * ((a * 3.0) * (c / (b + pow(((b * b) + (a * (-3.0 * c))), 0.5))));
}
real(8) function code(a, b, c)
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
code = ((-0.3333333333333333d0) / a) * ((a * 3.0d0) * (c / (b + (((b * b) + (a * ((-3.0d0) * c))) ** 0.5d0))))
end function
public static double code(double a, double b, double c) {
return (-0.3333333333333333 / a) * ((a * 3.0) * (c / (b + Math.pow(((b * b) + (a * (-3.0 * c))), 0.5))));
}
def code(a, b, c): return (-0.3333333333333333 / a) * ((a * 3.0) * (c / (b + math.pow(((b * b) + (a * (-3.0 * c))), 0.5))))
function code(a, b, c) return Float64(Float64(-0.3333333333333333 / a) * Float64(Float64(a * 3.0) * Float64(c / Float64(b + (Float64(Float64(b * b) + Float64(a * Float64(-3.0 * c))) ^ 0.5))))) end
function tmp = code(a, b, c) tmp = (-0.3333333333333333 / a) * ((a * 3.0) * (c / (b + (((b * b) + (a * (-3.0 * c))) ^ 0.5)))); end
code[a_, b_, c_] := N[(N[(-0.3333333333333333 / a), $MachinePrecision] * N[(N[(a * 3.0), $MachinePrecision] * N[(c / N[(b + N[Power[N[(N[(b * b), $MachinePrecision] + N[(a * N[(-3.0 * c), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 0.5], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{-0.3333333333333333}{a} \cdot \left(\left(a \cdot 3\right) \cdot \frac{c}{b + {\left(b \cdot b + a \cdot \left(-3 \cdot c\right)\right)}^{0.5}}\right)
\end{array}
Initial program 51.6%
Applied egg-rr0
Applied egg-rr0
Applied egg-rr0
Applied egg-rr0
(FPCore (a b c) :precision binary64 (* (/ -0.3333333333333333 a) (* c (/ (* a 3.0) (+ b (pow (+ (* b b) (* a (* -3.0 c))) 0.5))))))
double code(double a, double b, double c) {
return (-0.3333333333333333 / a) * (c * ((a * 3.0) / (b + pow(((b * b) + (a * (-3.0 * c))), 0.5))));
}
real(8) function code(a, b, c)
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
code = ((-0.3333333333333333d0) / a) * (c * ((a * 3.0d0) / (b + (((b * b) + (a * ((-3.0d0) * c))) ** 0.5d0))))
end function
public static double code(double a, double b, double c) {
return (-0.3333333333333333 / a) * (c * ((a * 3.0) / (b + Math.pow(((b * b) + (a * (-3.0 * c))), 0.5))));
}
def code(a, b, c): return (-0.3333333333333333 / a) * (c * ((a * 3.0) / (b + math.pow(((b * b) + (a * (-3.0 * c))), 0.5))))
function code(a, b, c) return Float64(Float64(-0.3333333333333333 / a) * Float64(c * Float64(Float64(a * 3.0) / Float64(b + (Float64(Float64(b * b) + Float64(a * Float64(-3.0 * c))) ^ 0.5))))) end
function tmp = code(a, b, c) tmp = (-0.3333333333333333 / a) * (c * ((a * 3.0) / (b + (((b * b) + (a * (-3.0 * c))) ^ 0.5)))); end
code[a_, b_, c_] := N[(N[(-0.3333333333333333 / a), $MachinePrecision] * N[(c * N[(N[(a * 3.0), $MachinePrecision] / N[(b + N[Power[N[(N[(b * b), $MachinePrecision] + N[(a * N[(-3.0 * c), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 0.5], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{-0.3333333333333333}{a} \cdot \left(c \cdot \frac{a \cdot 3}{b + {\left(b \cdot b + a \cdot \left(-3 \cdot c\right)\right)}^{0.5}}\right)
\end{array}
Initial program 51.6%
Applied egg-rr0
Applied egg-rr0
Applied egg-rr0
Applied egg-rr0
(FPCore (a b c) :precision binary64 (* (/ -0.3333333333333333 a) (* a (/ (* c 3.0) (+ b (pow (+ (* b b) (* a (* -3.0 c))) 0.5))))))
double code(double a, double b, double c) {
return (-0.3333333333333333 / a) * (a * ((c * 3.0) / (b + pow(((b * b) + (a * (-3.0 * c))), 0.5))));
}
real(8) function code(a, b, c)
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
code = ((-0.3333333333333333d0) / a) * (a * ((c * 3.0d0) / (b + (((b * b) + (a * ((-3.0d0) * c))) ** 0.5d0))))
end function
public static double code(double a, double b, double c) {
return (-0.3333333333333333 / a) * (a * ((c * 3.0) / (b + Math.pow(((b * b) + (a * (-3.0 * c))), 0.5))));
}
def code(a, b, c): return (-0.3333333333333333 / a) * (a * ((c * 3.0) / (b + math.pow(((b * b) + (a * (-3.0 * c))), 0.5))))
function code(a, b, c) return Float64(Float64(-0.3333333333333333 / a) * Float64(a * Float64(Float64(c * 3.0) / Float64(b + (Float64(Float64(b * b) + Float64(a * Float64(-3.0 * c))) ^ 0.5))))) end
function tmp = code(a, b, c) tmp = (-0.3333333333333333 / a) * (a * ((c * 3.0) / (b + (((b * b) + (a * (-3.0 * c))) ^ 0.5)))); end
code[a_, b_, c_] := N[(N[(-0.3333333333333333 / a), $MachinePrecision] * N[(a * N[(N[(c * 3.0), $MachinePrecision] / N[(b + N[Power[N[(N[(b * b), $MachinePrecision] + N[(a * N[(-3.0 * c), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 0.5], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{-0.3333333333333333}{a} \cdot \left(a \cdot \frac{c \cdot 3}{b + {\left(b \cdot b + a \cdot \left(-3 \cdot c\right)\right)}^{0.5}}\right)
\end{array}
Initial program 51.6%
Applied egg-rr0
Applied egg-rr0
Applied egg-rr0
Applied egg-rr0
(FPCore (a b c) :precision binary64 (/ 1.0 (* a (/ -3.0 (- b (pow (+ (* b b) (* a (* -3.0 c))) 0.5))))))
double code(double a, double b, double c) {
return 1.0 / (a * (-3.0 / (b - pow(((b * b) + (a * (-3.0 * c))), 0.5))));
}
real(8) function code(a, b, c)
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
code = 1.0d0 / (a * ((-3.0d0) / (b - (((b * b) + (a * ((-3.0d0) * c))) ** 0.5d0))))
end function
public static double code(double a, double b, double c) {
return 1.0 / (a * (-3.0 / (b - Math.pow(((b * b) + (a * (-3.0 * c))), 0.5))));
}
def code(a, b, c): return 1.0 / (a * (-3.0 / (b - math.pow(((b * b) + (a * (-3.0 * c))), 0.5))))
function code(a, b, c) return Float64(1.0 / Float64(a * Float64(-3.0 / Float64(b - (Float64(Float64(b * b) + Float64(a * Float64(-3.0 * c))) ^ 0.5))))) end
function tmp = code(a, b, c) tmp = 1.0 / (a * (-3.0 / (b - (((b * b) + (a * (-3.0 * c))) ^ 0.5)))); end
code[a_, b_, c_] := N[(1.0 / N[(a * N[(-3.0 / N[(b - N[Power[N[(N[(b * b), $MachinePrecision] + N[(a * N[(-3.0 * c), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 0.5], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{1}{a \cdot \frac{-3}{b - {\left(b \cdot b + a \cdot \left(-3 \cdot c\right)\right)}^{0.5}}}
\end{array}
Initial program 51.6%
Applied egg-rr0
Applied egg-rr0
(FPCore (a b c) :precision binary64 (/ -1.0 (/ (* 3.0 a) (- b (pow (+ (* b b) (* a (* -3.0 c))) 0.5)))))
double code(double a, double b, double c) {
return -1.0 / ((3.0 * a) / (b - pow(((b * b) + (a * (-3.0 * c))), 0.5)));
}
real(8) function code(a, b, c)
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
code = (-1.0d0) / ((3.0d0 * a) / (b - (((b * b) + (a * ((-3.0d0) * c))) ** 0.5d0)))
end function
public static double code(double a, double b, double c) {
return -1.0 / ((3.0 * a) / (b - Math.pow(((b * b) + (a * (-3.0 * c))), 0.5)));
}
def code(a, b, c): return -1.0 / ((3.0 * a) / (b - math.pow(((b * b) + (a * (-3.0 * c))), 0.5)))
function code(a, b, c) return Float64(-1.0 / Float64(Float64(3.0 * a) / Float64(b - (Float64(Float64(b * b) + Float64(a * Float64(-3.0 * c))) ^ 0.5)))) end
function tmp = code(a, b, c) tmp = -1.0 / ((3.0 * a) / (b - (((b * b) + (a * (-3.0 * c))) ^ 0.5))); end
code[a_, b_, c_] := N[(-1.0 / N[(N[(3.0 * a), $MachinePrecision] / N[(b - N[Power[N[(N[(b * b), $MachinePrecision] + N[(a * N[(-3.0 * c), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 0.5], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{-1}{\frac{3 \cdot a}{b - {\left(b \cdot b + a \cdot \left(-3 \cdot c\right)\right)}^{0.5}}}
\end{array}
Initial program 51.6%
Applied egg-rr0
(FPCore (a b c) :precision binary64 (/ (/ (- (pow (+ (* b b) (* a (* -3.0 c))) 0.5) b) 3.0) a))
double code(double a, double b, double c) {
return ((pow(((b * b) + (a * (-3.0 * c))), 0.5) - b) / 3.0) / a;
}
real(8) function code(a, b, c)
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
code = (((((b * b) + (a * ((-3.0d0) * c))) ** 0.5d0) - b) / 3.0d0) / a
end function
public static double code(double a, double b, double c) {
return ((Math.pow(((b * b) + (a * (-3.0 * c))), 0.5) - b) / 3.0) / a;
}
def code(a, b, c): return ((math.pow(((b * b) + (a * (-3.0 * c))), 0.5) - b) / 3.0) / a
function code(a, b, c) return Float64(Float64(Float64((Float64(Float64(b * b) + Float64(a * Float64(-3.0 * c))) ^ 0.5) - b) / 3.0) / a) end
function tmp = code(a, b, c) tmp = (((((b * b) + (a * (-3.0 * c))) ^ 0.5) - b) / 3.0) / a; end
code[a_, b_, c_] := N[(N[(N[(N[Power[N[(N[(b * b), $MachinePrecision] + N[(a * N[(-3.0 * c), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 0.5], $MachinePrecision] - b), $MachinePrecision] / 3.0), $MachinePrecision] / a), $MachinePrecision]
\begin{array}{l}
\\
\frac{\frac{{\left(b \cdot b + a \cdot \left(-3 \cdot c\right)\right)}^{0.5} - b}{3}}{a}
\end{array}
Initial program 51.6%
Applied egg-rr0
Applied egg-rr0
(FPCore (a b c) :precision binary64 (/ (* (- b (pow (+ (* b b) (* a (* -3.0 c))) 0.5)) -0.3333333333333333) a))
double code(double a, double b, double c) {
return ((b - pow(((b * b) + (a * (-3.0 * c))), 0.5)) * -0.3333333333333333) / a;
}
real(8) function code(a, b, c)
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
code = ((b - (((b * b) + (a * ((-3.0d0) * c))) ** 0.5d0)) * (-0.3333333333333333d0)) / a
end function
public static double code(double a, double b, double c) {
return ((b - Math.pow(((b * b) + (a * (-3.0 * c))), 0.5)) * -0.3333333333333333) / a;
}
def code(a, b, c): return ((b - math.pow(((b * b) + (a * (-3.0 * c))), 0.5)) * -0.3333333333333333) / a
function code(a, b, c) return Float64(Float64(Float64(b - (Float64(Float64(b * b) + Float64(a * Float64(-3.0 * c))) ^ 0.5)) * -0.3333333333333333) / a) end
function tmp = code(a, b, c) tmp = ((b - (((b * b) + (a * (-3.0 * c))) ^ 0.5)) * -0.3333333333333333) / a; end
code[a_, b_, c_] := N[(N[(N[(b - N[Power[N[(N[(b * b), $MachinePrecision] + N[(a * N[(-3.0 * c), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 0.5], $MachinePrecision]), $MachinePrecision] * -0.3333333333333333), $MachinePrecision] / a), $MachinePrecision]
\begin{array}{l}
\\
\frac{\left(b - {\left(b \cdot b + a \cdot \left(-3 \cdot c\right)\right)}^{0.5}\right) \cdot -0.3333333333333333}{a}
\end{array}
Initial program 51.6%
Applied egg-rr0
Applied egg-rr0
(FPCore (a b c) :precision binary64 (* (/ -0.3333333333333333 a) (- b (pow (+ (* b b) (* a (* -3.0 c))) 0.5))))
double code(double a, double b, double c) {
return (-0.3333333333333333 / a) * (b - pow(((b * b) + (a * (-3.0 * c))), 0.5));
}
real(8) function code(a, b, c)
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
code = ((-0.3333333333333333d0) / a) * (b - (((b * b) + (a * ((-3.0d0) * c))) ** 0.5d0))
end function
public static double code(double a, double b, double c) {
return (-0.3333333333333333 / a) * (b - Math.pow(((b * b) + (a * (-3.0 * c))), 0.5));
}
def code(a, b, c): return (-0.3333333333333333 / a) * (b - math.pow(((b * b) + (a * (-3.0 * c))), 0.5))
function code(a, b, c) return Float64(Float64(-0.3333333333333333 / a) * Float64(b - (Float64(Float64(b * b) + Float64(a * Float64(-3.0 * c))) ^ 0.5))) end
function tmp = code(a, b, c) tmp = (-0.3333333333333333 / a) * (b - (((b * b) + (a * (-3.0 * c))) ^ 0.5)); end
code[a_, b_, c_] := N[(N[(-0.3333333333333333 / a), $MachinePrecision] * N[(b - N[Power[N[(N[(b * b), $MachinePrecision] + N[(a * N[(-3.0 * c), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 0.5], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{-0.3333333333333333}{a} \cdot \left(b - {\left(b \cdot b + a \cdot \left(-3 \cdot c\right)\right)}^{0.5}\right)
\end{array}
Initial program 51.6%
Applied egg-rr0
(FPCore (a b c) :precision binary64 (* -0.3333333333333333 (/ (- b (pow (+ (* b b) (* a (* -3.0 c))) 0.5)) a)))
double code(double a, double b, double c) {
return -0.3333333333333333 * ((b - pow(((b * b) + (a * (-3.0 * c))), 0.5)) / a);
}
real(8) function code(a, b, c)
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
code = (-0.3333333333333333d0) * ((b - (((b * b) + (a * ((-3.0d0) * c))) ** 0.5d0)) / a)
end function
public static double code(double a, double b, double c) {
return -0.3333333333333333 * ((b - Math.pow(((b * b) + (a * (-3.0 * c))), 0.5)) / a);
}
def code(a, b, c): return -0.3333333333333333 * ((b - math.pow(((b * b) + (a * (-3.0 * c))), 0.5)) / a)
function code(a, b, c) return Float64(-0.3333333333333333 * Float64(Float64(b - (Float64(Float64(b * b) + Float64(a * Float64(-3.0 * c))) ^ 0.5)) / a)) end
function tmp = code(a, b, c) tmp = -0.3333333333333333 * ((b - (((b * b) + (a * (-3.0 * c))) ^ 0.5)) / a); end
code[a_, b_, c_] := N[(-0.3333333333333333 * N[(N[(b - N[Power[N[(N[(b * b), $MachinePrecision] + N[(a * N[(-3.0 * c), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 0.5], $MachinePrecision]), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
-0.3333333333333333 \cdot \frac{b - {\left(b \cdot b + a \cdot \left(-3 \cdot c\right)\right)}^{0.5}}{a}
\end{array}
Initial program 51.6%
Applied egg-rr0
Applied egg-rr0
(FPCore (a b c) :precision binary64 (/ -0.3333333333333333 (* (pow (- 0.0 (* -3.0 (* a c))) -0.5) a)))
double code(double a, double b, double c) {
return -0.3333333333333333 / (pow((0.0 - (-3.0 * (a * c))), -0.5) * a);
}
real(8) function code(a, b, c)
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
code = (-0.3333333333333333d0) / (((0.0d0 - ((-3.0d0) * (a * c))) ** (-0.5d0)) * a)
end function
public static double code(double a, double b, double c) {
return -0.3333333333333333 / (Math.pow((0.0 - (-3.0 * (a * c))), -0.5) * a);
}
def code(a, b, c): return -0.3333333333333333 / (math.pow((0.0 - (-3.0 * (a * c))), -0.5) * a)
function code(a, b, c) return Float64(-0.3333333333333333 / Float64((Float64(0.0 - Float64(-3.0 * Float64(a * c))) ^ -0.5) * a)) end
function tmp = code(a, b, c) tmp = -0.3333333333333333 / (((0.0 - (-3.0 * (a * c))) ^ -0.5) * a); end
code[a_, b_, c_] := N[(-0.3333333333333333 / N[(N[Power[N[(0.0 - N[(-3.0 * N[(a * c), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], -0.5], $MachinePrecision] * a), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{-0.3333333333333333}{{\left(0 - -3 \cdot \left(a \cdot c\right)\right)}^{-0.5} \cdot a}
\end{array}
Initial program 51.6%
Applied egg-rr0
Applied egg-rr0
Applied egg-rr0
(FPCore (a b c) :precision binary64 (/ (/ -0.3333333333333333 (pow (* a (* -3.0 c)) -0.5)) a))
double code(double a, double b, double c) {
return (-0.3333333333333333 / pow((a * (-3.0 * c)), -0.5)) / a;
}
real(8) function code(a, b, c)
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8), intent (in) :: c
code = ((-0.3333333333333333d0) / ((a * ((-3.0d0) * c)) ** (-0.5d0))) / a
end function
public static double code(double a, double b, double c) {
return (-0.3333333333333333 / Math.pow((a * (-3.0 * c)), -0.5)) / a;
}
def code(a, b, c): return (-0.3333333333333333 / math.pow((a * (-3.0 * c)), -0.5)) / a
function code(a, b, c) return Float64(Float64(-0.3333333333333333 / (Float64(a * Float64(-3.0 * c)) ^ -0.5)) / a) end
function tmp = code(a, b, c) tmp = (-0.3333333333333333 / ((a * (-3.0 * c)) ^ -0.5)) / a; end
code[a_, b_, c_] := N[(N[(-0.3333333333333333 / N[Power[N[(a * N[(-3.0 * c), $MachinePrecision]), $MachinePrecision], -0.5], $MachinePrecision]), $MachinePrecision] / a), $MachinePrecision]
\begin{array}{l}
\\
\frac{\frac{-0.3333333333333333}{{\left(a \cdot \left(-3 \cdot c\right)\right)}^{-0.5}}}{a}
\end{array}
Initial program 51.6%
Applied egg-rr0
Applied egg-rr0
Applied egg-rr0
Applied egg-rr0
herbie shell --seed 2024107
(FPCore (a b c)
:name "Cubic critical, narrow range"
:precision binary64
:pre (and (and (and (< 1.0536712127723509e-8 a) (< a 94906265.62425156)) (and (< 1.0536712127723509e-8 b) (< b 94906265.62425156))) (and (< 1.0536712127723509e-8 c) (< c 94906265.62425156)))
(/ (+ (- b) (sqrt (- (* b b) (* (* 3.0 a) c)))) (* 3.0 a)))