(FPCore (x y z t a)
:precision binary64
(- x (/ (- y z) (/ (+ (- t z) 1.0) a))))
↓
(FPCore (x y z t a)
:precision binary64
(+ x (* a (/ (- z y) (+ (- t z) 1.0)))))
double code(double x, double y, double z, double t, double a) {
return x - ((y - z) / (((t - z) + 1.0) / a));
}
↓
double code(double x, double y, double z, double t, double a) {
return x + (a * ((z - y) / ((t - z) + 1.0)));
}
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 - z) + 1.0d0) / 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
code = x + (a * ((z - y) / ((t - z) + 1.0d0)))
end function
public static double code(double x, double y, double z, double t, double a) {
return x - ((y - z) / (((t - z) + 1.0) / a));
}
↓
public static double code(double x, double y, double z, double t, double a) {
return x + (a * ((z - y) / ((t - z) + 1.0)));
}
def code(x, y, z, t, a):
return x - ((y - z) / (((t - z) + 1.0) / a))
↓
def code(x, y, z, t, a):
return x + (a * ((z - y) / ((t - z) + 1.0)))
function code(x, y, z, t, a)
return Float64(x - Float64(Float64(y - z) / Float64(Float64(Float64(t - z) + 1.0) / a)))
end
↓
function code(x, y, z, t, a)
return Float64(x + Float64(a * Float64(Float64(z - y) / Float64(Float64(t - z) + 1.0))))
end
function tmp = code(x, y, z, t, a)
tmp = x - ((y - z) / (((t - z) + 1.0) / a));
end
↓
function tmp = code(x, y, z, t, a)
tmp = x + (a * ((z - y) / ((t - z) + 1.0)));
end
(-.f64 x (*.f64 (/.f64 (-.f64 y z) (+.f64 (-.f64 t z) 1)) a)): 0 points increase in error, 0 points decrease in error
(-.f64 x (Rewrite<= associate-/r/_binary64 (/.f64 (-.f64 y z) (/.f64 (+.f64 (-.f64 t z) 1) a)))): 34 points increase in error, 11 points decrease in error
Final simplification0.2
\[\leadsto x + a \cdot \frac{z - y}{\left(t - z\right) + 1}
\]
herbie shell --seed 2022325
(FPCore (x y z t a)
:name "Graphics.Rendering.Chart.SparkLine:renderSparkLine from Chart-1.5.3"
:precision binary64
:herbie-target
(- x (* (/ (- y z) (+ (- t z) 1.0)) a))
(- x (/ (- y z) (/ (+ (- t z) 1.0) a))))