Average Error: 18.1 → 1.0
Time: 1.9m
Precision: 64
Internal Precision: 128
\[\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)}\]
\[\begin{array}{l} \mathbf{if}\;u \le -2.859891310078618 \cdot 10^{-83} \lor \neg \left(u \le 1.0644538837781535 \cdot 10^{-05}\right):\\ \;\;\;\;\frac{\frac{t1}{t1 + u}}{\frac{t1 + u}{-v}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{t1}{t1 + u}}{t1 + u} \cdot \left(-v\right)\\ \end{array}\]

Error

Bits error versus u

Bits error versus v

Bits error versus t1

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if u < -2.859891310078618e-83 or 1.0644538837781535e-05 < u

    1. Initial program 14.6

      \[\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)}\]
    2. Initial simplification1.5

      \[\leadsto \frac{\frac{t1}{t1 + u}}{\frac{t1 + u}{-v}}\]

    if -2.859891310078618e-83 < u < 1.0644538837781535e-05

    1. Initial program 23.2

      \[\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)}\]
    2. Initial simplification1.7

      \[\leadsto \frac{\frac{t1}{t1 + u}}{\frac{t1 + u}{-v}}\]
    3. Using strategy rm
    4. Applied associate-/r/0.2

      \[\leadsto \color{blue}{\frac{\frac{t1}{t1 + u}}{t1 + u} \cdot \left(-v\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification1.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;u \le -2.859891310078618 \cdot 10^{-83} \lor \neg \left(u \le 1.0644538837781535 \cdot 10^{-05}\right):\\ \;\;\;\;\frac{\frac{t1}{t1 + u}}{\frac{t1 + u}{-v}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{t1}{t1 + u}}{t1 + u} \cdot \left(-v\right)\\ \end{array}\]

Runtime

Time bar (total: 1.9m)Debug logProfile

BaselineHerbieOracleSpan%
Regimes1.61.00.01.641.2%
herbie shell --seed 2018353 +o rules:numerics
(FPCore (u v t1)
  :name "Rosa's DopplerBench"
  (/ (* (- t1) v) (* (+ t1 u) (+ t1 u))))