Average Error: 18.0 → 1.5
Time: 41.6s
Precision: 64
Internal Precision: 128
\[\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)}\]
\[\frac{\frac{t1}{\frac{u + t1}{-v}}}{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.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 *-un-lft-identity1.6

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

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

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

    \[\leadsto \color{blue}{\frac{1 \cdot \left(\frac{-v}{u + t1} \cdot t1\right)}{t1 + u}}\]
  10. Simplified1.5

    \[\leadsto \frac{\color{blue}{\frac{t1}{\frac{u + t1}{-v}}}}{t1 + u}\]
  11. Final simplification1.5

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

Reproduce

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

Details

Time bar (total: 39.5s)Debug log

start902.0ms

Algorithm
intervals

setup309.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 (+ t1 u))
0.0b
(/ (+ t1 u) (- v))

rewrite27.0ms

Algorithm
rewrite-expression-head
Counts
3 → 188
Calls

3 calls. Slowest were:

15.0ms
(/ (/ t1 (+ t1 u)) (/ (+ t1 u) (- v)))
6.0ms
(/ (+ t1 u) (- v))
1.0ms
(/ t1 (+ t1 u))

series192.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

131.0ms
(/ (/ t1 (+ t1 u)) (/ (+ t1 u) (- v)))
32.0ms
(/ (+ t1 u) (- v))
29.0ms
(/ t1 (+ t1 u))

simplify20.5s

Counts
264 → 197
Calls

264 calls. Slowest were:

568.0ms
(/ (/ t1 (- (* t1 t1) (* u u))) (/ 1 (sqrt (- v))))
440.0ms
(/ (/ t1 (- (* t1 t1) (* u u))) (/ (sqrt (+ t1 u)) -1))
428.0ms
(/ (* (* (+ t1 u) (+ t1 u)) (+ t1 u)) (* (* (- v) (- v)) (- v)))

prune1.9s

Pruning

7 alts after pruning (7 fresh and 0 done)

Merged error: 0b

localize24.0ms

Local error

Found 4 expressions with local error:

9.2b
(* (/ (- v) (+ u t1)) t1)
0.9b
(* (/ 1 (+ t1 u)) (* (/ (- v) (+ u t1)) t1))
0.0b
(/ 1 (+ t1 u))
0.0b
(/ (- v) (+ u t1))

rewrite26.0ms

Algorithm
rewrite-expression-head
Counts
4 → 112
Calls

4 calls. Slowest were:

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

series170.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

70.0ms
(* (/ 1 (+ t1 u)) (* (/ (- v) (+ u t1)) t1))
42.0ms
(* (/ (- v) (+ u t1)) t1)
33.0ms
(/ (- v) (+ u t1))
25.0ms
(/ 1 (+ t1 u))

simplify2.5s

Counts
84 → 124
Calls

84 calls. Slowest were:

465.0ms
(* (/ 1 (+ t1 u)) (* (/ (- v) (+ u t1)) t1))
418.0ms
(/ (* (* (- v) (- v)) (- v)) (* (* (+ u t1) (+ u t1)) (+ u t1)))
316.0ms
(+ (- (log (+ t1 u))) (log (* (/ (- v) (+ u t1)) t1)))

prune1.4s

Pruning

5 alts after pruning (5 fresh and 0 done)

Merged error: 0b

localize12.0ms

Local error

Found 3 expressions with local error:

9.4b
(/ t1 (/ (+ u t1) (- v)))
0.8b
(/ (/ t1 (/ (+ u t1) (- v))) (+ t1 u))
0.0b
(/ (+ u t1) (- v))

rewrite8.0ms

Algorithm
rewrite-expression-head
Counts
3 → 104
Calls

3 calls. Slowest were:

3.0ms
(/ (/ t1 (/ (+ u t1) (- v))) (+ t1 u))
3.0ms
(/ (+ u t1) (- v))
1.0ms
(/ t1 (/ (+ u t1) (- v)))

series179.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

90.0ms
(/ (/ t1 (/ (+ u t1) (- v))) (+ t1 u))
56.0ms
(/ t1 (/ (+ u t1) (- v)))
33.0ms
(/ (+ u t1) (- v))

simplify2.9s

Counts
99 → 113
Calls

99 calls. Slowest were:

380.0ms
(/ (* (* (+ u t1) (+ u t1)) (+ u t1)) (* (* (- v) (- v)) (- v)))
327.0ms
(/ (/ 1 (/ (+ u t1) (- v))) (cbrt (+ t1 u)))
264.0ms
(/ (/ 1 (/ (+ u t1) (- v))) (sqrt (+ t1 u)))

prune1.1s

Pruning

5 alts after pruning (4 fresh and 1 done)

Merged error: 0b

localize6.0ms

Local error

Found 4 expressions with local error:

9.4b
(/ t1 (/ (+ u t1) (- v)))
0.8b
(/ (+ t1 u) (/ t1 (/ (+ u t1) (- v))))
0.4b
(/ 1 (/ (+ t1 u) (/ t1 (/ (+ u t1) (- v)))))
0.0b
(/ (+ u t1) (- v))

rewrite10.0ms

Algorithm
rewrite-expression-head
Counts
4 → 141
Calls

4 calls. Slowest were:

3.0ms
(/ (+ u t1) (- v))
3.0ms
(/ (+ t1 u) (/ t1 (/ (+ u t1) (- v))))
1.0ms
(/ 1 (/ (+ t1 u) (/ t1 (/ (+ u t1) (- v)))))

series203.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

72.0ms
(/ 1 (/ (+ t1 u) (/ t1 (/ (+ u t1) (- v)))))
69.0ms
(/ t1 (/ (+ u t1) (- v)))
39.0ms
(/ (+ t1 u) (/ t1 (/ (+ u t1) (- v))))
22.0ms
(/ (+ u t1) (- v))

simplify5.3s

Counts
126 → 153
Calls

126 calls. Slowest were:

433.0ms
(/ (* (* (+ u t1) (+ u t1)) (+ u t1)) (* (* (- v) (- v)) (- v)))
357.0ms
(sqrt (+ t1 u))
233.0ms
(- (+ (* 2 (/ u v)) (+ (/ t1 v) (/ (pow u 2) (* v t1)))))

prune1.6s

Pruning

5 alts after pruning (3 fresh and 2 done)

Merged error: 0b

regimes165.0ms

Accuracy

0% (1.5b remaining)

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

bsearch1.0ms