Average Error: 0.4 → 0.0
Time: 51.9s
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-frac 0.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}}\]
  4. Removed slow pow expressions

Runtime

Time bar (total: 51.9s) Debug log

Please include this information when filing a bug report:

herbie shell --seed '#(3052192724 3812927732 3686175817 630908657 2373248591 511094450)'
(FPCore (u v T)
  :name "doppler2"
  :pre (and (<= -125 u 125) (<= 15 v 25000) (<= -40 T 60))
  (/ (* (- (+ 331.4 (* 0.6 T))) v) (* (+ (+ 331.4 (* 0.6 T)) u) (+ (+ 331.4 (* 0.6 T)) u))))