| Alternative 1 | |
|---|---|
| Error | 6.5 |
| Cost | 2760 |
(FPCore (x y z t a) :precision binary64 (+ x (* (- y z) (/ (- t x) (- a z)))))
(FPCore (x y z t a)
:precision binary64
(let* ((t_1 (+ x (* (- z y) (/ (- x t) (- a z))))))
(if (<= t_1 -5e-303)
(fma (- y z) (/ (- t x) (- a z)) x)
(if (<= t_1 0.0)
(+ t (* (/ x z) (- y a)))
(+ x (/ 1.0 (/ (/ (- a z) (- t x)) (- y z))))))))double code(double x, double y, double z, double t, double a) {
return x + ((y - z) * ((t - x) / (a - z)));
}
double code(double x, double y, double z, double t, double a) {
double t_1 = x + ((z - y) * ((x - t) / (a - z)));
double tmp;
if (t_1 <= -5e-303) {
tmp = fma((y - z), ((t - x) / (a - z)), x);
} else if (t_1 <= 0.0) {
tmp = t + ((x / z) * (y - a));
} else {
tmp = x + (1.0 / (((a - z) / (t - x)) / (y - z)));
}
return tmp;
}
function code(x, y, z, t, a) return Float64(x + Float64(Float64(y - z) * Float64(Float64(t - x) / Float64(a - z)))) end
function code(x, y, z, t, a) t_1 = Float64(x + Float64(Float64(z - y) * Float64(Float64(x - t) / Float64(a - z)))) tmp = 0.0 if (t_1 <= -5e-303) tmp = fma(Float64(y - z), Float64(Float64(t - x) / Float64(a - z)), x); elseif (t_1 <= 0.0) tmp = Float64(t + Float64(Float64(x / z) * Float64(y - a))); else tmp = Float64(x + Float64(1.0 / Float64(Float64(Float64(a - z) / Float64(t - x)) / Float64(y - z)))); end return tmp end
code[x_, y_, z_, t_, a_] := N[(x + N[(N[(y - z), $MachinePrecision] * N[(N[(t - x), $MachinePrecision] / N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
code[x_, y_, z_, t_, a_] := Block[{t$95$1 = N[(x + N[(N[(z - y), $MachinePrecision] * N[(N[(x - t), $MachinePrecision] / N[(a - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$1, -5e-303], N[(N[(y - z), $MachinePrecision] * N[(N[(t - x), $MachinePrecision] / N[(a - z), $MachinePrecision]), $MachinePrecision] + x), $MachinePrecision], If[LessEqual[t$95$1, 0.0], N[(t + N[(N[(x / z), $MachinePrecision] * N[(y - a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x + N[(1.0 / N[(N[(N[(a - z), $MachinePrecision] / N[(t - x), $MachinePrecision]), $MachinePrecision] / N[(y - z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
x + \left(y - z\right) \cdot \frac{t - x}{a - z}
\begin{array}{l}
t_1 := x + \left(z - y\right) \cdot \frac{x - t}{a - z}\\
\mathbf{if}\;t_1 \leq -5 \cdot 10^{-303}:\\
\;\;\;\;\mathsf{fma}\left(y - z, \frac{t - x}{a - z}, x\right)\\
\mathbf{elif}\;t_1 \leq 0:\\
\;\;\;\;t + \frac{x}{z} \cdot \left(y - a\right)\\
\mathbf{else}:\\
\;\;\;\;x + \frac{1}{\frac{\frac{a - z}{t - x}}{y - z}}\\
\end{array}
if (+.f64 x (*.f64 (-.f64 y z) (/.f64 (-.f64 t x) (-.f64 a z)))) < -4.9999999999999998e-303Initial program 7.4
Simplified7.4
[Start]7.4 | \[ x + \left(y - z\right) \cdot \frac{t - x}{a - z}
\] |
|---|---|
+-commutative [=>]7.4 | \[ \color{blue}{\left(y - z\right) \cdot \frac{t - x}{a - z} + x}
\] |
fma-def [=>]7.4 | \[ \color{blue}{\mathsf{fma}\left(y - z, \frac{t - x}{a - z}, x\right)}
\] |
if -4.9999999999999998e-303 < (+.f64 x (*.f64 (-.f64 y z) (/.f64 (-.f64 t x) (-.f64 a z)))) < 0.0Initial program 61.6
Simplified61.3
[Start]61.6 | \[ x + \left(y - z\right) \cdot \frac{t - x}{a - z}
\] |
|---|---|
+-commutative [=>]61.6 | \[ \color{blue}{\left(y - z\right) \cdot \frac{t - x}{a - z} + x}
\] |
fma-def [=>]61.3 | \[ \color{blue}{\mathsf{fma}\left(y - z, \frac{t - x}{a - z}, x\right)}
\] |
Taylor expanded in z around -inf 12.2
Simplified12.2
[Start]12.2 | \[ -1 \cdot \frac{-1 \cdot \left(a \cdot \left(t - x\right)\right) + y \cdot \left(t - x\right)}{z} + t
\] |
|---|---|
+-commutative [=>]12.2 | \[ \color{blue}{t + -1 \cdot \frac{-1 \cdot \left(a \cdot \left(t - x\right)\right) + y \cdot \left(t - x\right)}{z}}
\] |
mul-1-neg [=>]12.2 | \[ t + \color{blue}{\left(-\frac{-1 \cdot \left(a \cdot \left(t - x\right)\right) + y \cdot \left(t - x\right)}{z}\right)}
\] |
unsub-neg [=>]12.2 | \[ \color{blue}{t - \frac{-1 \cdot \left(a \cdot \left(t - x\right)\right) + y \cdot \left(t - x\right)}{z}}
\] |
+-commutative [=>]12.2 | \[ t - \frac{\color{blue}{y \cdot \left(t - x\right) + -1 \cdot \left(a \cdot \left(t - x\right)\right)}}{z}
\] |
associate-*r* [=>]12.2 | \[ t - \frac{y \cdot \left(t - x\right) + \color{blue}{\left(-1 \cdot a\right) \cdot \left(t - x\right)}}{z}
\] |
distribute-rgt-out [=>]12.2 | \[ t - \frac{\color{blue}{\left(t - x\right) \cdot \left(y + -1 \cdot a\right)}}{z}
\] |
mul-1-neg [=>]12.2 | \[ t - \frac{\left(t - x\right) \cdot \left(y + \color{blue}{\left(-a\right)}\right)}{z}
\] |
Taylor expanded in t around 0 12.3
Simplified0.6
[Start]12.3 | \[ t - -1 \cdot \frac{\left(y - a\right) \cdot x}{z}
\] |
|---|---|
mul-1-neg [=>]12.3 | \[ t - \color{blue}{\left(-\frac{\left(y - a\right) \cdot x}{z}\right)}
\] |
*-commutative [=>]12.3 | \[ t - \left(-\frac{\color{blue}{x \cdot \left(y - a\right)}}{z}\right)
\] |
sub-neg [=>]12.3 | \[ t - \left(-\frac{x \cdot \color{blue}{\left(y + \left(-a\right)\right)}}{z}\right)
\] |
associate-*l/ [<=]0.6 | \[ t - \left(-\color{blue}{\frac{x}{z} \cdot \left(y + \left(-a\right)\right)}\right)
\] |
distribute-rgt-neg-in [=>]0.6 | \[ t - \color{blue}{\frac{x}{z} \cdot \left(-\left(y + \left(-a\right)\right)\right)}
\] |
distribute-neg-in [=>]0.6 | \[ t - \frac{x}{z} \cdot \color{blue}{\left(\left(-y\right) + \left(-\left(-a\right)\right)\right)}
\] |
+-commutative [=>]0.6 | \[ t - \frac{x}{z} \cdot \color{blue}{\left(\left(-\left(-a\right)\right) + \left(-y\right)\right)}
\] |
remove-double-neg [=>]0.6 | \[ t - \frac{x}{z} \cdot \left(\color{blue}{a} + \left(-y\right)\right)
\] |
sub-neg [<=]0.6 | \[ t - \frac{x}{z} \cdot \color{blue}{\left(a - y\right)}
\] |
if 0.0 < (+.f64 x (*.f64 (-.f64 y z) (/.f64 (-.f64 t x) (-.f64 a z)))) Initial program 7.4
Applied egg-rr18.7
Applied egg-rr17.8
Applied egg-rr18.7
Simplified7.4
[Start]18.7 | \[ x + \frac{1}{\frac{a - z}{\left(t - x\right) \cdot \left(y - z\right)}}
\] |
|---|---|
associate-/r* [=>]7.4 | \[ x + \frac{1}{\color{blue}{\frac{\frac{a - z}{t - x}}{y - z}}}
\] |
Final simplification6.5
| Alternative 1 | |
|---|---|
| Error | 6.5 |
| Cost | 2760 |
| Alternative 2 | |
|---|---|
| Error | 6.4 |
| Cost | 2633 |
| Alternative 3 | |
|---|---|
| Error | 19.7 |
| Cost | 1496 |
| Alternative 4 | |
|---|---|
| Error | 17.9 |
| Cost | 1496 |
| Alternative 5 | |
|---|---|
| Error | 17.9 |
| Cost | 1496 |
| Alternative 6 | |
|---|---|
| Error | 28.6 |
| Cost | 1372 |
| Alternative 7 | |
|---|---|
| Error | 23.8 |
| Cost | 1368 |
| Alternative 8 | |
|---|---|
| Error | 22.8 |
| Cost | 1236 |
| Alternative 9 | |
|---|---|
| Error | 20.2 |
| Cost | 1236 |
| Alternative 10 | |
|---|---|
| Error | 20.3 |
| Cost | 1236 |
| Alternative 11 | |
|---|---|
| Error | 23.5 |
| Cost | 1104 |
| Alternative 12 | |
|---|---|
| Error | 22.3 |
| Cost | 1104 |
| Alternative 13 | |
|---|---|
| Error | 20.9 |
| Cost | 1104 |
| Alternative 14 | |
|---|---|
| Error | 33.6 |
| Cost | 976 |
| Alternative 15 | |
|---|---|
| Error | 33.5 |
| Cost | 976 |
| Alternative 16 | |
|---|---|
| Error | 36.1 |
| Cost | 716 |
| Alternative 17 | |
|---|---|
| Error | 36.1 |
| Cost | 716 |
| Alternative 18 | |
|---|---|
| Error | 27.8 |
| Cost | 713 |
| Alternative 19 | |
|---|---|
| Error | 25.5 |
| Cost | 713 |
| Alternative 20 | |
|---|---|
| Error | 29.2 |
| Cost | 712 |
| Alternative 21 | |
|---|---|
| Error | 29.5 |
| Cost | 712 |
| Alternative 22 | |
|---|---|
| Error | 35.5 |
| Cost | 328 |
| Alternative 23 | |
|---|---|
| Error | 45.7 |
| Cost | 64 |
herbie shell --seed 2023031
(FPCore (x y z t a)
:name "Numeric.Signal:interpolate from hsignal-0.2.7.1"
:precision binary64
(+ x (* (- y z) (/ (- t x) (- a z)))))