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

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.6

    \[\leadsto \frac{\frac{-t1}{t1 + u}}{\frac{t1 + u}{v}}\]
  3. Using strategy rm
  4. Applied div-inv1.6

    \[\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}{\left(-t1\right) \cdot \frac{1}{t1 + u}}}{\left(t1 + u\right) \cdot \frac{1}{v}}\]
  6. Applied times-frac1.5

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

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

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

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

Reproduce

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

Details

Time bar (total: 20.6s)Debug log

start127.0ms

Algorithm
intervals

setup162.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 1.2b

localize33.0ms

Local error

Found 3 expressions with local error:

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

rewrite35.0ms

Algorithm
rewrite-expression-head
Counts
3 → 162
Calls

3 calls. Slowest were:

16.0ms
(/ (/ (- t1) (+ t1 u)) (/ (+ t1 u) v))
6.0ms
(/ (- t1) (+ t1 u))
5.0ms
(/ (+ t1 u) v)

series313.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

237.0ms
(/ (/ (- t1) (+ t1 u)) (/ (+ t1 u) v))
41.0ms
(/ (- t1) (+ t1 u))
34.0ms
(/ (+ t1 u) v)

simplify8.4s

Counts
220 → 171
Calls

220 calls. Slowest were:

570.0ms
(- (log (/ (- t1) (+ t1 u))) (log (/ (+ t1 u) v)))
378.0ms
(/ (* (* (- t1) (- t1)) (- t1)) (* (* (+ t1 u) (+ t1 u)) (+ t1 u)))
334.0ms
(/ (/ (- t1) (- (* t1 t1) (* u u))) (* (cbrt (/ (+ t1 u) v)) (cbrt (/ (+ t1 u) v))))

prune1.6s

Pruning

6 alts after pruning (6 fresh and 0 done)

Merged error: 0b

localize14.0ms

Local error

Found 3 expressions with local error:

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

rewrite24.0ms

Algorithm
rewrite-expression-head
Counts
3 → 91
Calls

3 calls. Slowest were:

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

series140.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

97.0ms
(* (/ (- t1) (+ t1 u)) (/ v (+ t1 u)))
25.0ms
(/ (- t1) (+ t1 u))
17.0ms
(/ v (+ t1 u))

simplify1.8s

Counts
82 → 100
Calls

82 calls. Slowest were:

384.0ms
(/ (* (* (- t1) (- t1)) (- t1)) (* (* (+ t1 u) (+ t1 u)) (+ t1 u)))
330.0ms
(+ (- (log (- t1)) (log (+ t1 u))) (log (/ v (+ t1 u))))
154.0ms
(* (/ (* (* (- t1) (- t1)) (- t1)) (* (* (+ t1 u) (+ t1 u)) (+ t1 u))) (* (* (/ v (+ t1 u)) (/ v (+ t1 u))) (/ v (+ t1 u))))

prune901.0ms

Pruning

5 alts after pruning (5 fresh and 0 done)

Merged error: 0b

localize11.0ms

Local error

Found 3 expressions with local error:

3.5b
(* (/ (- t1) (+ t1 u)) v)
0.8b
(/ (* (/ (- t1) (+ t1 u)) v) (+ t1 u))
0.0b
(/ (- t1) (+ t1 u))

rewrite31.0ms

Algorithm
rewrite-expression-head
Counts
3 → 86
Calls

3 calls. Slowest were:

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

series195.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

96.0ms
(/ (* (/ (- t1) (+ t1 u)) v) (+ t1 u))
73.0ms
(* (/ (- t1) (+ t1 u)) v)
26.0ms
(/ (- t1) (+ t1 u))

simplify1.4s

Counts
79 → 95
Calls

79 calls. Slowest were:

360.0ms
(/ (* (* (- t1) (- t1)) (- t1)) (* (* (+ t1 u) (+ t1 u)) (+ t1 u)))
192.0ms
(/ (* (* (* (/ (- t1) (+ t1 u)) v) (* (/ (- t1) (+ t1 u)) v)) (* (/ (- t1) (+ t1 u)) v)) (* (* (+ t1 u) (+ t1 u)) (+ t1 u)))
169.0ms
(- (log (* (/ (- t1) (+ t1 u)) v)) (log (+ t1 u)))

prune935.0ms

Pruning

5 alts after pruning (4 fresh and 1 done)

Merged error: 0b

localize18.0ms

Local error

Found 4 expressions with local error:

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

rewrite27.0ms

Algorithm
rewrite-expression-head
Counts
4 → 107
Calls

4 calls. Slowest were:

14.0ms
(* (/ (- t1) (+ t1 u)) (* v (/ 1 (+ t1 u))))
6.0ms
(/ (- t1) (+ t1 u))
2.0ms
(* v (/ 1 (+ t1 u)))

series149.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

88.0ms
(* (/ (- t1) (+ t1 u)) (* v (/ 1 (+ t1 u))))
22.0ms
(/ 1 (+ t1 u))
21.0ms
(/ (- t1) (+ t1 u))
18.0ms
(* v (/ 1 (+ t1 u)))

simplify2.8s

Counts
92 → 119
Calls

92 calls. Slowest were:

359.0ms
(* (/ t1 (+ t1 u)) (* v (/ 1 (+ t1 u))))
351.0ms
(+ (- (log (- t1)) (log (+ t1 u))) (log (* v (/ 1 (+ t1 u)))))
323.0ms
(/ (* (* (- t1) (- t1)) (- t1)) (* (* (+ t1 u) (+ t1 u)) (+ t1 u)))

prune1.3s

Pruning

5 alts after pruning (3 fresh and 2 done)

Merged error: 0b

regimes155.0ms

Accuracy

0% (1.3b remaining)

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

bsearch4.0ms