Average Error: 2.8 → 2.8
Time: 3.0s
Precision: binary64
\[\left(-\left(\left(az - dz\right) - \frac{vz}{vx} \cdot \left(ax - dx\right)\right)\right) - \left(\left(bz - az\right) - \frac{vz}{vx} \cdot \left(bx - ax\right)\right) \cdot f\]
\[\left(\frac{vz}{vx} \cdot \left(ax - dx\right) - \left(\left(bz - az\right) - \frac{vz}{vx} \cdot \left(bx - ax\right)\right) \cdot f\right) + \left(dz - az\right)\]

Error

Bits error versus az

Bits error versus dz

Bits error versus vz

Bits error versus vx

Bits error versus ax

Bits error versus dx

Bits error versus bz

Bits error versus bx

Bits error versus f

Derivation

  1. Initial program 2.8

    \[\left(-\left(\left(az - dz\right) - \frac{vz}{vx} \cdot \left(ax - dx\right)\right)\right) - \left(\left(bz - az\right) - \frac{vz}{vx} \cdot \left(bx - ax\right)\right) \cdot f\]
  2. Simplified2.8

    \[\leadsto \color{blue}{\left(\frac{vz}{vx} \cdot \left(ax - dx\right) - \left(\left(bz - az\right) - \frac{vz}{vx} \cdot \left(bx - ax\right)\right) \cdot f\right) + \left(dz - az\right)}\]
  3. Final simplification2.8

    \[\leadsto \left(\frac{vz}{vx} \cdot \left(ax - dx\right) - \left(\left(bz - az\right) - \frac{vz}{vx} \cdot \left(bx - ax\right)\right) \cdot f\right) + \left(dz - az\right)\]

Reproduce

herbie shell --seed 2020152 
(FPCore (az dz vz vx ax dx bz bx f)
  :name "(- (- (- (- az dz) (* (/ vz vx) (- ax dx)))) (* (- (- bz az) (* (/ vz vx) (- bx ax))) f))"
  :precision binary64
  (- (neg (- (- az dz) (* (/ vz vx) (- ax dx)))) (* (- (- bz az) (* (/ vz vx) (- bx ax))) f)))