Average Error: 0.4 → 0.0
Time: 6.8m
Precision: 64
Internal Precision: 384
\[\frac{\left(-\left(331.4 + 0.6 \cdot T\right)\right) \cdot v}{\left(\left(331.4 + 0.6 \cdot T\right) + u\right) \cdot \left(\left(331.4 + 0.6 \cdot T\right) + u\right)}\]
\[\frac{-\left(331.4 + 0.6 \cdot T\right)}{\left(331.4 + 0.6 \cdot T\right) + u} \cdot \frac{v}{\left(331.4 + 0.6 \cdot T\right) + u}\]

Error

Bits error versus u

Bits error versus v

Bits error versus T

Derivation

  1. Initial program 0.4

    \[\frac{\left(-\left(331.4 + 0.6 \cdot T\right)\right) \cdot v}{\left(\left(331.4 + 0.6 \cdot T\right) + u\right) \cdot \left(\left(331.4 + 0.6 \cdot T\right) + u\right)}\]
  2. Using strategy rm
  3. Applied times-frac0.0

    \[\leadsto \color{blue}{\frac{-\left(331.4 + 0.6 \cdot T\right)}{\left(331.4 + 0.6 \cdot T\right) + u} \cdot \frac{v}{\left(331.4 + 0.6 \cdot T\right) + u}}\]

Runtime

Time bar (total: 6.8m)Debug log

herbie shell --seed '#(1743936871 1855164119 3668777427 1254258049 132811564 1366975197)' 
(FPCore (u v T)
  :name "doppler1"
  :pre (and (<= -100 u 100) (<= 20 v 20000) (<= -30 T 50))
  (/ (* (- (+ 331.4 (* 0.6 T))) v) (* (+ (+ 331.4 (* 0.6 T)) u) (+ (+ 331.4 (* 0.6 T)) u))))