Average Error: 18.0 → 1.3
Time: 35.5s
Precision: 64
Internal Precision: 128
\[\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)}\]
\[\frac{\frac{v}{u + t1} \cdot \left(-t1\right)}{u + t1}\]

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. Initial program 18.0

    \[\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 div-inv1.7

    \[\leadsto \frac{\frac{t1}{t1 + u}}{\color{blue}{\left(t1 + u\right) \cdot \frac{1}{-v}}}\]
  5. Applied div-inv1.7

    \[\leadsto \frac{\color{blue}{t1 \cdot \frac{1}{t1 + u}}}{\left(t1 + u\right) \cdot \frac{1}{-v}}\]
  6. Applied times-frac1.6

    \[\leadsto \color{blue}{\frac{t1}{t1 + u} \cdot \frac{\frac{1}{t1 + u}}{\frac{1}{-v}}}\]
  7. Simplified1.4

    \[\leadsto \frac{t1}{t1 + u} \cdot \color{blue}{\frac{-v}{t1 + u}}\]
  8. Using strategy rm
  9. Applied associate-*l/1.3

    \[\leadsto \color{blue}{\frac{t1 \cdot \frac{-v}{t1 + u}}{t1 + u}}\]
  10. Final simplification1.3

    \[\leadsto \frac{\frac{v}{u + t1} \cdot \left(-t1\right)}{u + t1}\]

Reproduce

herbie shell --seed 2018362 +o rules:numerics
(FPCore (u v t1)
  :name "Rosa's DopplerBench"
  (/ (* (- t1) v) (* (+ t1 u) (+ t1 u))))

Details

Time bar (total: 32.8s)Debug log

start115.0ms

Algorithm
intervals

setup233.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 0.7b

localize34.0ms

Local error

Found 3 expressions with local error:

1.4b
(/ (/ t1 (+ t1 u)) (/ (+ t1 u) (- v)))
0.0b
(/ (+ t1 u) (- v))
0.0b
(/ t1 (+ t1 u))

rewrite24.0ms

Algorithm
rewrite-expression-head
Counts
3 → 188
Calls

3 calls. Slowest were:

14.0ms
(/ (/ t1 (+ t1 u)) (/ (+ t1 u) (- v)))
5.0ms
(/ (+ t1 u) (- v))
1.0ms
(/ t1 (+ t1 u))

series170.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

106.0ms
(/ (/ t1 (+ t1 u)) (/ (+ t1 u) (- v)))
33.0ms
(/ t1 (+ t1 u))
31.0ms
(/ (+ t1 u) (- v))

simplify20.5s

Counts
264 → 197
Calls

264 calls. Slowest were:

701.0ms
(/ (/ t1 (- (* t1 t1) (* u u))) (/ 1 (sqrt (- v))))
484.0ms
(/ (/ t1 (- (* t1 t1) (* u u))) (* (cbrt (/ (+ t1 u) (- v))) (cbrt (/ (+ t1 u) (- v)))))
462.0ms
(- (log (/ t1 (+ t1 u))) (log (/ (+ t1 u) (- v))))

prune2.2s

Pruning

8 alts after pruning (8 fresh and 0 done)

Merged error: 0b

localize27.0ms

Local error

Found 4 expressions with local error:

8.6b
(* (/ (- v) (+ u t1)) t1)
0.2b
(* (/ 1 (+ t1 u)) (* (/ (- v) (+ u t1)) t1))
0.0b
(/ (- v) (+ u t1))
0.0b
(/ 1 (+ t1 u))

rewrite44.0ms

Algorithm
rewrite-expression-head
Counts
4 → 112
Calls

4 calls. Slowest were:

20.0ms
(* (/ 1 (+ t1 u)) (* (/ (- v) (+ u t1)) t1))
11.0ms
(/ (- v) (+ u t1))
9.0ms
(* (/ (- v) (+ u t1)) t1)

series162.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

76.0ms
(* (/ 1 (+ t1 u)) (* (/ (- v) (+ u t1)) t1))
33.0ms
(/ (- v) (+ u t1))
33.0ms
(* (/ (- v) (+ u t1)) t1)
19.0ms
(/ 1 (+ t1 u))

simplify2.3s

Counts
84 → 124
Calls

84 calls. Slowest were:

461.0ms
(* (/ 1 (+ t1 u)) (* (/ (- v) (+ u t1)) t1))
383.0ms
(/ (* (* (- v) (- v)) (- v)) (* (* (+ u t1) (+ u t1)) (+ u t1)))
271.0ms
(+ (- (log (+ t1 u))) (log (* (/ (- v) (+ u t1)) t1)))

prune1.3s

Pruning

7 alts after pruning (6 fresh and 1 done)

Merged error: 0b

localize7.0ms

Local error

Found 3 expressions with local error:

1.2b
(* (/ t1 (+ t1 u)) (/ (- v) (+ t1 u)))
0.0b
(/ (- v) (+ t1 u))
0.0b
(/ t1 (+ t1 u))

rewrite20.0ms

Algorithm
rewrite-expression-head
Counts
3 → 97
Calls

3 calls. Slowest were:

11.0ms
(* (/ t1 (+ t1 u)) (/ (- v) (+ t1 u)))
6.0ms
(/ (- v) (+ t1 u))
1.0ms
(/ t1 (+ t1 u))

series135.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

84.0ms
(* (/ t1 (+ t1 u)) (/ (- v) (+ t1 u)))
31.0ms
(/ t1 (+ t1 u))
20.0ms
(/ (- v) (+ t1 u))

simplify1.9s

Counts
80 → 106
Calls

80 calls. Slowest were:

373.0ms
(/ (* (* (- v) (- v)) (- v)) (* (* (+ t1 u) (+ t1 u)) (+ t1 u)))
213.0ms
(* (* (* (/ t1 (+ t1 u)) (/ t1 (+ t1 u))) (/ t1 (+ t1 u))) (/ (* (* (- v) (- v)) (- v)) (* (* (+ t1 u) (+ t1 u)) (+ t1 u))))
146.0ms
(+ (log (/ t1 (+ t1 u))) (- (log (- v)) (log (+ t1 u))))

prune1.1s

Pruning

6 alts after pruning (5 fresh and 1 done)

Merged error: 0b

localize11.0ms

Local error

Found 3 expressions with local error:

8.6b
(* t1 (/ (- v) (+ t1 u)))
0.1b
(/ (* t1 (/ (- v) (+ t1 u))) (+ t1 u))
0.0b
(/ (- v) (+ t1 u))

rewrite20.0ms

Algorithm
rewrite-expression-head
Counts
3 → 92
Calls

3 calls. Slowest were:

9.0ms
(/ (* t1 (/ (- v) (+ t1 u))) (+ t1 u))
6.0ms
(/ (- v) (+ t1 u))
3.0ms
(* t1 (/ (- v) (+ t1 u)))

series128.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

50.0ms
(/ (* t1 (/ (- v) (+ t1 u))) (+ t1 u))
49.0ms
(* t1 (/ (- v) (+ t1 u)))
29.0ms
(/ (- v) (+ t1 u))

simplify1.3s

Counts
78 → 101
Calls

78 calls. Slowest were:

377.0ms
(/ (* (* (- v) (- v)) (- v)) (* (* (+ t1 u) (+ t1 u)) (+ t1 u)))
170.0ms
(/ (* (* (* t1 (/ (- v) (+ t1 u))) (* t1 (/ (- v) (+ t1 u)))) (* t1 (/ (- v) (+ t1 u)))) (* (* (+ t1 u) (+ t1 u)) (+ t1 u)))
147.0ms
(- (log (* t1 (/ (- v) (+ t1 u)))) (log (+ t1 u)))

prune1.0s

Pruning

6 alts after pruning (4 fresh and 2 done)

Merged error: 0b

regimes170.0ms

Accuracy

0% (1.3b remaining)

Error of 1.3b against oracle of 0.0b and baseline of 1.3b

bsearch7.0ms