\[\begin{array}{l}
t_1 := -\frac{t}{\frac{a}{z}}\\
t_2 := x \cdot y - z \cdot t\\
\mathbf{if}\;t_2 \leq -5 \cdot 10^{+150}:\\
\;\;\;\;t_1 + y \cdot \frac{x}{a}\\
\mathbf{elif}\;t_2 \leq 2 \cdot 10^{+229}:\\
\;\;\;\;\frac{t_2}{a}\\
\mathbf{else}:\\
\;\;\;\;t_1 + \frac{\frac{y}{a}}{\frac{1}{x}}\\
\end{array}
\]
(FPCore (x y z t a) :precision binary64 (/ (- (* x y) (* z t)) a))
↓
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (- (/ t (/ a z)))) (t_2 (- (* x y) (* z t))))
(if (<= t_2 -5e+150)
(+ t_1 (* y (/ x a)))
(if (<= t_2 2e+229) (/ t_2 a) (+ t_1 (/ (/ y a) (/ 1.0 x)))))))
double code(double x, double y, double z, double t, double a) {
return ((x * y) - (z * t)) / a;
}
real(8) function code(x, y, z, t, a)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
code = ((x * y) - (z * t)) / a
end function
↓
real(8) function code(x, y, z, t, a)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8) :: t_1
real(8) :: t_2
real(8) :: tmp
t_1 = -(t / (a / z))
t_2 = (x * y) - (z * t)
if (t_2 <= (-5d+150)) then
tmp = t_1 + (y * (x / a))
else if (t_2 <= 2d+229) then
tmp = t_2 / a
else
tmp = t_1 + ((y / a) / (1.0d0 / x))
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a) {
return ((x * y) - (z * t)) / a;
}
↓
public static double code(double x, double y, double z, double t, double a) {
double t_1 = -(t / (a / z));
double t_2 = (x * y) - (z * t);
double tmp;
if (t_2 <= -5e+150) {
tmp = t_1 + (y * (x / a));
} else if (t_2 <= 2e+229) {
tmp = t_2 / a;
} else {
tmp = t_1 + ((y / a) / (1.0 / x));
}
return tmp;
}
def code(x, y, z, t, a):
return ((x * y) - (z * t)) / a
\[\leadsto \begin{array}{l}
\mathbf{if}\;x \cdot y - z \cdot t \leq -5 \cdot 10^{+150}:\\
\;\;\;\;\left(-\frac{t}{\frac{a}{z}}\right) + y \cdot \frac{x}{a}\\
\mathbf{elif}\;x \cdot y - z \cdot t \leq 2 \cdot 10^{+229}:\\
\;\;\;\;\frac{x \cdot y - z \cdot t}{a}\\
\mathbf{else}:\\
\;\;\;\;\left(-\frac{t}{\frac{a}{z}}\right) + \frac{\frac{y}{a}}{\frac{1}{x}}\\
\end{array}
\]
Alternatives
Alternative 1
Error
1.1
Cost
1800
\[\begin{array}{l}
t_1 := x \cdot y - z \cdot t\\
t_2 := \left(-t \cdot \frac{z}{a}\right) + y \cdot \frac{x}{a}\\
\mathbf{if}\;t_1 \leq -5 \cdot 10^{+150}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;t_1 \leq 2 \cdot 10^{+245}:\\
\;\;\;\;\frac{t_1}{a}\\
\mathbf{else}:\\
\;\;\;\;t_2\\
\end{array}
\]
Alternative 2
Error
1.2
Cost
1800
\[\begin{array}{l}
t_1 := x \cdot y - z \cdot t\\
t_2 := \left(-\frac{t}{\frac{a}{z}}\right) + y \cdot \frac{x}{a}\\
\mathbf{if}\;t_1 \leq -5 \cdot 10^{+150}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;t_1 \leq 5 \cdot 10^{+225}:\\
\;\;\;\;\frac{t_1}{a}\\
\mathbf{else}:\\
\;\;\;\;t_2\\
\end{array}
\]
Alternative 3
Error
4.4
Cost
1616
\[\begin{array}{l}
t_1 := \frac{x \cdot y - z \cdot t}{a}\\
\mathbf{if}\;x \cdot y \leq -5 \cdot 10^{+270}:\\
\;\;\;\;\frac{y}{\frac{a}{x}}\\
\mathbf{elif}\;x \cdot y \leq -1 \cdot 10^{-273}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;x \cdot y \leq 0:\\
\;\;\;\;\frac{-z}{\frac{a}{t}}\\
\mathbf{elif}\;x \cdot y \leq 10^{+227}:\\
\;\;\;\;t_1\\
\mathbf{else}:\\
\;\;\;\;x \cdot \frac{y}{a}\\
\end{array}
\]
herbie shell --seed 2023074
(FPCore (x y z t a)
:name "Data.Colour.Matrix:inverse from colour-2.3.3, B"
:precision binary64
:herbie-target
(if (< z -2.468684968699548e+170) (- (* (/ y a) x) (* (/ t a) z)) (if (< z 6.309831121978371e-71) (/ (- (* x y) (* z t)) a) (- (* (/ y a) x) (* (/ t a) z))))
(/ (- (* x y) (* z t)) a))