\[\left(0 \leq b \land b \leq a\right) \land a \leq 1\]
\[\sqrt{\left|\frac{a \cdot a - b \cdot b}{a \cdot a}\right|}
\]
↓
\[\begin{array}{l}
\mathbf{if}\;b \cdot b \leq 0:\\
\;\;\;\;\sqrt{\left|\left(\frac{b}{a} + 1\right) - \frac{b}{a}\right|}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\left|\frac{a \cdot a - b \cdot b}{a \cdot a}\right|}\\
\end{array}
\]
(FPCore (a b)
:precision binary64
(sqrt (fabs (/ (- (* a a) (* b b)) (* a a)))))
↓
(FPCore (a b)
:precision binary64
(if (<= (* b b) 0.0)
(sqrt (fabs (- (+ (/ b a) 1.0) (/ b a))))
(sqrt (fabs (/ (- (* a a) (* b b)) (* a a))))))
double code(double a, double b) {
return sqrt(fabs((((a * a) - (b * b)) / (a * a))));
}
↓
double code(double a, double b) {
double tmp;
if ((b * b) <= 0.0) {
tmp = sqrt(fabs((((b / a) + 1.0) - (b / a))));
} else {
tmp = sqrt(fabs((((a * a) - (b * b)) / (a * a))));
}
return tmp;
}
real(8) function code(a, b)
real(8), intent (in) :: a
real(8), intent (in) :: b
code = sqrt(abs((((a * a) - (b * b)) / (a * a))))
end function
↓
real(8) function code(a, b)
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: tmp
if ((b * b) <= 0.0d0) then
tmp = sqrt(abs((((b / a) + 1.0d0) - (b / a))))
else
tmp = sqrt(abs((((a * a) - (b * b)) / (a * a))))
end if
code = tmp
end function
public static double code(double a, double b) {
return Math.sqrt(Math.abs((((a * a) - (b * b)) / (a * a))));
}
↓
public static double code(double a, double b) {
double tmp;
if ((b * b) <= 0.0) {
tmp = Math.sqrt(Math.abs((((b / a) + 1.0) - (b / a))));
} else {
tmp = Math.sqrt(Math.abs((((a * a) - (b * b)) / (a * a))));
}
return tmp;
}
def code(a, b):
return math.sqrt(math.fabs((((a * a) - (b * b)) / (a * a))))
↓
def code(a, b):
tmp = 0
if (b * b) <= 0.0:
tmp = math.sqrt(math.fabs((((b / a) + 1.0) - (b / a))))
else:
tmp = math.sqrt(math.fabs((((a * a) - (b * b)) / (a * a))))
return tmp
function code(a, b)
return sqrt(abs(Float64(Float64(Float64(a * a) - Float64(b * b)) / Float64(a * a))))
end
↓
function code(a, b)
tmp = 0.0
if (Float64(b * b) <= 0.0)
tmp = sqrt(abs(Float64(Float64(Float64(b / a) + 1.0) - Float64(b / a))));
else
tmp = sqrt(abs(Float64(Float64(Float64(a * a) - Float64(b * b)) / Float64(a * a))));
end
return tmp
end
function tmp = code(a, b)
tmp = sqrt(abs((((a * a) - (b * b)) / (a * a))));
end
↓
function tmp_2 = code(a, b)
tmp = 0.0;
if ((b * b) <= 0.0)
tmp = sqrt(abs((((b / a) + 1.0) - (b / a))));
else
tmp = sqrt(abs((((a * a) - (b * b)) / (a * a))));
end
tmp_2 = tmp;
end
herbie shell --seed 2023090
(FPCore (a b)
:name "Eccentricity of an ellipse"
:precision binary64
:pre (and (and (<= 0.0 b) (<= b a)) (<= a 1.0))
(sqrt (fabs (/ (- (* a a) (* b b)) (* a a)))))