Average Error: 0.1 → 0.1
Time: 22.8s
Precision: 64
Internal Precision: 128
\[\frac{e \cdot \sin v}{1 + e \cdot \cos v}\]
\[\frac{e \cdot \sin v}{(\left(\cos v\right) \cdot e + 1)_*}\]

Error

Bits error versus e

Bits error versus v

Derivation

  1. Initial program 0.1

    \[\frac{e \cdot \sin v}{1 + e \cdot \cos v}\]
  2. Initial simplification0.1

    \[\leadsto \frac{e \cdot \sin v}{(\left(\cos v\right) \cdot e + 1)_*}\]
  3. Final simplification0.1

    \[\leadsto \frac{e \cdot \sin v}{(\left(\cos v\right) \cdot e + 1)_*}\]

Reproduce

herbie shell --seed 2018360 +o rules:numerics
(FPCore (e v)
  :name "Trigonometry A"
  :pre (<= 0 e 1)
  (/ (* e (sin v)) (+ 1 (* e (cos v)))))

Details

Time bar (total: 12.4s)Debug log

start721.0ms

Algorithm
intervals

setup459.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 0.2b

localize22.0ms

Local error

Found 2 expressions with local error:

0.2b
(* e (sin v))
0.0b
(/ (* e (sin v)) (fma (cos v) e 1))

rewrite14.0ms

Algorithm
rewrite-expression-head
Counts
2 → 34
Calls

2 calls. Slowest were:

8.0ms
(/ (* e (sin v)) (fma (cos v) e 1))
4.0ms
(* e (sin v))

series163.0ms

Counts
2 → 6
Calls

2 calls. Slowest were:

93.0ms
(/ (* e (sin v)) (fma (cos v) e 1))
69.0ms
(* e (sin v))

simplify1.8s

Counts
20 → 40
Calls

20 calls. Slowest were:

810.0ms
(- (+ (* (pow e 3) v) (* e v)) (* (pow e 2) v))
691.0ms
(/ (* (* (* e (sin v)) (* e (sin v))) (* e (sin v))) (* (* (fma (cos v) e 1) (fma (cos v) e 1)) (fma (cos v) e 1)))
109.0ms
(- (+ (/ (sin v) (* (pow e 2) (pow (cos v) 3))) (/ (sin v) (cos v))) (/ (sin v) (* e (pow (cos v) 2))))

prune451.0ms

Pruning

8 alts after pruning (7 fresh and 1 done)

Merged error: 0.0b

localize6.0ms

Local error

Found 2 expressions with local error:

0.2b
(/ e (/ (fma (cos v) e 1) (sin v)))
0.2b
(/ (fma (cos v) e 1) (sin v))

rewrite5.0ms

Algorithm
rewrite-expression-head
Counts
2 → 55
Calls

2 calls. Slowest were:

4.0ms
(/ (fma (cos v) e 1) (sin v))
1.0ms
(/ e (/ (fma (cos v) e 1) (sin v)))

series158.0ms

Counts
2 → 6
Calls

2 calls. Slowest were:

94.0ms
(/ e (/ (fma (cos v) e 1) (sin v)))
64.0ms
(/ (fma (cos v) e 1) (sin v))

simplify1.5s

Counts
45 → 61
Calls

45 calls. Slowest were:

793.0ms
(- (+ (* (pow e 3) v) (* e v)) (* (pow e 2) v))
129.0ms
(/ (* (* (fma (cos v) e 1) (fma (cos v) e 1)) (fma (cos v) e 1)) (* (* (sin v) (sin v)) (sin v)))
103.0ms
(- (+ (/ (sin v) (* (pow e 2) (pow (cos v) 3))) (/ (sin v) (cos v))) (/ (sin v) (* e (pow (cos v) 2))))

prune825.0ms

Pruning

9 alts after pruning (8 fresh and 1 done)

Merged error: 0.0b

localize7.0ms

Local error

Found 3 expressions with local error:

0.6b
(/ 1 (/ (/ (fma (cos v) e 1) (sin v)) e))
0.2b
(/ (/ (fma (cos v) e 1) (sin v)) e)
0.2b
(/ (fma (cos v) e 1) (sin v))

rewrite12.0ms

Algorithm
rewrite-expression-head
Counts
3 → 75
Calls

3 calls. Slowest were:

5.0ms
(/ (/ (fma (cos v) e 1) (sin v)) e)
3.0ms
(/ (fma (cos v) e 1) (sin v))
2.0ms
(/ 1 (/ (/ (fma (cos v) e 1) (sin v)) e))

series278.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

101.0ms
(/ (/ (fma (cos v) e 1) (sin v)) e)
93.0ms
(/ (fma (cos v) e 1) (sin v))
84.0ms
(/ 1 (/ (/ (fma (cos v) e 1) (sin v)) e))

simplify1.3s

Counts
52 → 84
Calls

52 calls. Slowest were:

447.0ms
(- (* e v) (+ (* 1/6 (* e (pow v 3))) (* (pow e 2) v)))
156.0ms
(/ (* (* (fma (cos v) e 1) (fma (cos v) e 1)) (fma (cos v) e 1)) (* (* (sin v) (sin v)) (sin v)))
108.0ms
(- (+ (/ (sin v) (* (pow e 2) (pow (cos v) 3))) (/ (sin v) (cos v))) (/ (sin v) (* e (pow (cos v) 2))))

prune1.0s

Pruning

9 alts after pruning (8 fresh and 1 done)

Merged error: 0.0b

localize9.0ms

Local error

Found 3 expressions with local error:

0.6b
(/ 1 (* (/ (fma (cos v) e 1) (sin v)) (/ 1 e)))
0.3b
(* (/ (fma (cos v) e 1) (sin v)) (/ 1 e))
0.2b
(/ (fma (cos v) e 1) (sin v))

rewrite27.0ms

Algorithm
rewrite-expression-head
Counts
3 → 88
Calls

3 calls. Slowest were:

11.0ms
(* (/ (fma (cos v) e 1) (sin v)) (/ 1 e))
7.0ms
(/ (fma (cos v) e 1) (sin v))
6.0ms
(/ 1 (* (/ (fma (cos v) e 1) (sin v)) (/ 1 e)))

series263.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

99.0ms
(* (/ (fma (cos v) e 1) (sin v)) (/ 1 e))
92.0ms
(/ (fma (cos v) e 1) (sin v))
72.0ms
(/ 1 (* (/ (fma (cos v) e 1) (sin v)) (/ 1 e)))

simplify2.1s

Counts
63 → 97
Calls

63 calls. Slowest were:

440.0ms
(- (* e v) (+ (* 1/6 (* e (pow v 3))) (* (pow e 2) v)))
384.0ms
(* (* (* (/ (fma (cos v) e 1) (sin v)) (/ (fma (cos v) e 1) (sin v))) (/ (fma (cos v) e 1) (sin v))) (* (* (/ 1 e) (/ 1 e)) (/ 1 e)))
116.0ms
(/ (* (* (fma (cos v) e 1) (fma (cos v) e 1)) (fma (cos v) e 1)) (* (* (sin v) (sin v)) (sin v)))

prune1.2s

Pruning

9 alts after pruning (7 fresh and 2 done)

Merged error: 0.0b

regimes199.0ms

Accuracy

0% (0.1b remaining)

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

bsearch2.0ms