Average Error: 23.7 → 0.0
Time: 2.5s
Precision: binary64
\[\left(\left(x \cdot y - y \cdot z\right) - y \cdot y\right) + y \cdot y \]
\[\left(x - z\right) \cdot y \]
\left(\left(x \cdot y - y \cdot z\right) - y \cdot y\right) + y \cdot y
\left(x - z\right) \cdot y
(FPCore (x y z)
 :precision binary64
 (+ (- (- (* x y) (* y z)) (* y y)) (* y y)))
(FPCore (x y z) :precision binary64 (* (- x z) y))
double code(double x, double y, double z) {
	return (((x * y) - (y * z)) - (y * y)) + (y * y);
}
double code(double x, double y, double z) {
	return (x - z) * y;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original23.7
Target0.0
Herbie0.0
\[\left(x - z\right) \cdot y \]

Derivation

  1. Initial program 23.7

    \[\left(\left(x \cdot y - y \cdot z\right) - y \cdot y\right) + y \cdot y \]
  2. Simplified0.0

    \[\leadsto \color{blue}{y \cdot \left(x - z\right)} \]
  3. Applied add-cube-cbrt_binary640.5

    \[\leadsto y \cdot \left(x - \color{blue}{\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \sqrt[3]{z}}\right) \]
  4. Applied add-cube-cbrt_binary641.0

    \[\leadsto y \cdot \left(\color{blue}{\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \sqrt[3]{x}} - \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \sqrt[3]{z}\right) \]
  5. Applied prod-diff_binary641.0

    \[\leadsto y \cdot \color{blue}{\left(\mathsf{fma}\left(\sqrt[3]{x} \cdot \sqrt[3]{x}, \sqrt[3]{x}, -\sqrt[3]{z} \cdot \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)\right) + \mathsf{fma}\left(-\sqrt[3]{z}, \sqrt[3]{z} \cdot \sqrt[3]{z}, \sqrt[3]{z} \cdot \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)\right)\right)} \]
  6. Applied distribute-rgt-in_binary644.5

    \[\leadsto \color{blue}{\mathsf{fma}\left(\sqrt[3]{x} \cdot \sqrt[3]{x}, \sqrt[3]{x}, -\sqrt[3]{z} \cdot \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)\right) \cdot y + \mathsf{fma}\left(-\sqrt[3]{z}, \sqrt[3]{z} \cdot \sqrt[3]{z}, \sqrt[3]{z} \cdot \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)\right) \cdot y} \]
  7. Simplified3.5

    \[\leadsto \color{blue}{\left(x - z\right) \cdot y} + \mathsf{fma}\left(-\sqrt[3]{z}, \sqrt[3]{z} \cdot \sqrt[3]{z}, \sqrt[3]{z} \cdot \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)\right) \cdot y \]
  8. Simplified0.0

    \[\leadsto \left(x - z\right) \cdot y + \color{blue}{0} \]
  9. Final simplification0.0

    \[\leadsto \left(x - z\right) \cdot y \]

Reproduce

herbie shell --seed 2022088 
(FPCore (x y z)
  :name "Linear.Quaternion:$c/ from linear-1.19.1.3, B"
  :precision binary64

  :herbie-target
  (* (- x z) y)

  (+ (- (- (* x y) (* y z)) (* y y)) (* y y)))