Average Error: 0.1 → 0.1
Time: 27.9s
Precision: 64
Internal Precision: 128
\[\frac{e \cdot \sin v}{1 + e \cdot \cos v}\]
\[\frac{\sin v \cdot e}{(\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. Simplified0.1

    \[\leadsto \color{blue}{\frac{e \cdot \sin v}{(\left(\cos v\right) \cdot e + 1)_*}}\]
  3. Using strategy rm
  4. Applied add-sqr-sqrt0.2

    \[\leadsto \frac{e \cdot \sin v}{\color{blue}{\sqrt{(\left(\cos v\right) \cdot e + 1)_*} \cdot \sqrt{(\left(\cos v\right) \cdot e + 1)_*}}}\]
  5. Applied associate-/r*0.2

    \[\leadsto \color{blue}{\frac{\frac{e \cdot \sin v}{\sqrt{(\left(\cos v\right) \cdot e + 1)_*}}}{\sqrt{(\left(\cos v\right) \cdot e + 1)_*}}}\]
  6. Using strategy rm
  7. Applied associate-/l*0.3

    \[\leadsto \frac{\color{blue}{\frac{e}{\frac{\sqrt{(\left(\cos v\right) \cdot e + 1)_*}}{\sin v}}}}{\sqrt{(\left(\cos v\right) \cdot e + 1)_*}}\]
  8. Using strategy rm
  9. Applied *-un-lft-identity0.3

    \[\leadsto \frac{\frac{e}{\frac{\sqrt{(\left(\cos v\right) \cdot e + 1)_*}}{\sin v}}}{\color{blue}{1 \cdot \sqrt{(\left(\cos v\right) \cdot e + 1)_*}}}\]
  10. Applied *-un-lft-identity0.3

    \[\leadsto \frac{\color{blue}{1 \cdot \frac{e}{\frac{\sqrt{(\left(\cos v\right) \cdot e + 1)_*}}{\sin v}}}}{1 \cdot \sqrt{(\left(\cos v\right) \cdot e + 1)_*}}\]
  11. Applied times-frac0.3

    \[\leadsto \color{blue}{\frac{1}{1} \cdot \frac{\frac{e}{\frac{\sqrt{(\left(\cos v\right) \cdot e + 1)_*}}{\sin v}}}{\sqrt{(\left(\cos v\right) \cdot e + 1)_*}}}\]
  12. Simplified0.3

    \[\leadsto \color{blue}{1} \cdot \frac{\frac{e}{\frac{\sqrt{(\left(\cos v\right) \cdot e + 1)_*}}{\sin v}}}{\sqrt{(\left(\cos v\right) \cdot e + 1)_*}}\]
  13. Simplified0.1

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

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

Reproduce

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

Details

Time bar (total: 26.6s)Debug log

sample282.0ms

Algorithm
intervals
Results
256×(pre true 80)
134×(body real 80)
60×(body real 1280)
43×(body real 640)
11×(body real 320)
(body real 160)

simplify52.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
52.0ms
(/ (* e (sin v)) (+ 1 (* e (cos v))))

prune13.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 0.1b

localize24.0ms

Local error

Found 2 expressions with local error:

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

rewrite16.0ms

Algorithm
rewrite-expression-head
Rules
add-cube-cbrt
*-un-lft-identity
add-sqr-sqrt
add-exp-log
add-cbrt-cube
associate-*r*
times-frac
associate-/r*
add-log-exp
log1p-expm1-u
pow1
expm1-log1p-u
associate-/l*
div-inv
*-commutative
div-exp
frac-2neg
clear-num
cbrt-undiv
Counts
2 → 34
Calls
2 calls:
Slowest
8.0ms
(/ (* e (sin v)) (fma (cos v) e 1))
5.0ms
(* e (sin v))

series162.0ms

Counts
2 → 6
Calls
2 calls:
Slowest
82.0ms
(* e (sin v))
80.0ms
(/ (* e (sin v)) (fma (cos v) e 1))

simplify1.7s

Counts
20 → 40
Calls
20 calls:
Slowest
823.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)))
482.0ms
(- (+ (* (pow e 3) v) (* e v)) (* (pow e 2) v))
109.0ms
(- (+ (/ (sin v) (* (pow e 2) (pow (cos v) 3))) (/ (sin v) (cos v))) (/ (sin v) (* e (pow (cos v) 2))))
102.0ms
(- (+ (/ (sin v) (* (pow e 2) (pow (cos v) 3))) (/ (sin v) (cos v))) (/ (sin v) (* e (pow (cos v) 2))))
50.0ms
(- (log (* e (sin v))) (log (fma (cos v) e 1)))

prune470.0ms

Pruning

5 alts after pruning (5 fresh and 0 done)

Merged error: 0.0b

localize10.0ms

Local error

Found 4 expressions with local error:

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

rewrite17.0ms

Algorithm
rewrite-expression-head
Rules
108×times-frac
63×sqrt-prod
54×add-sqr-sqrt
53×add-cube-cbrt
53×*-un-lft-identity
12×associate-/r*
11×associate-/l*
11×add-exp-log
11×add-cbrt-cube
div-inv
add-log-exp
log1p-expm1-u
div-exp
cbrt-undiv
pow1
expm1-log1p-u
associate-*r*
frac-2neg
clear-num
associate-/l/
*-commutative
pow1/2
rem-sqrt-square
Counts
4 → 147
Calls
4 calls:
Slowest
8.0ms
(/ (/ (* e (sin v)) (sqrt (fma (cos v) e 1))) (sqrt (fma (cos v) e 1)))
5.0ms
(/ (* e (sin v)) (sqrt (fma (cos v) e 1)))
1.0ms
(* e (sin v))
1.0ms
(sqrt (fma (cos v) e 1))

series341.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
144.0ms
(/ (* e (sin v)) (sqrt (fma (cos v) e 1)))
97.0ms
(/ (/ (* e (sin v)) (sqrt (fma (cos v) e 1))) (sqrt (fma (cos v) e 1)))
52.0ms
(* e (sin v))
47.0ms
(sqrt (fma (cos v) e 1))

simplify5.2s

Counts
179 → 159
Calls
179 calls:
Slowest
791.0ms
(/ (* (* (* e (sin v)) (* e (sin v))) (* e (sin v))) (* (* (sqrt (fma (cos v) e 1)) (sqrt (fma (cos v) e 1))) (sqrt (fma (cos v) e 1))))
474.0ms
(- (+ (* (pow e 3) v) (* e v)) (* (pow e 2) v))
227.0ms
(- (- (log (* e (sin v))) (log (sqrt (fma (cos v) e 1)))) (log (sqrt (fma (cos v) e 1))))
225.0ms
(- (log (/ (* e (sin v)) (sqrt (fma (cos v) e 1)))) (log (sqrt (fma (cos v) e 1))))
125.0ms
(/ (/ (* (* (* e (sin v)) (* e (sin v))) (* e (sin v))) (* (* (sqrt (fma (cos v) e 1)) (sqrt (fma (cos v) e 1))) (sqrt (fma (cos v) e 1)))) (* (* (sqrt (fma (cos v) e 1)) (sqrt (fma (cos v) e 1))) (sqrt (fma (cos v) e 1))))

prune2.1s

Pruning

5 alts after pruning (5 fresh and 0 done)

Merged error: 0.0b

localize42.0ms

Local error

Found 4 expressions with local error:

0.1b
(* e (sin v))
0.0b
(cbrt (fma e (cos v) 1))
0.0b
(cbrt (fma (cos v) e 1))
0.0b
(* (fabs (cbrt (fma e (cos v) 1))) (sqrt (cbrt (fma (cos v) e 1))))

rewrite22.0ms

Algorithm
rewrite-expression-head
Rules
12×associate-*r*
11×add-cube-cbrt
11×*-un-lft-identity
11×add-sqr-sqrt
cbrt-prod
sqrt-prod
add-exp-log
add-cbrt-cube
pow1
add-log-exp
log1p-expm1-u
expm1-log1p-u
associate-*l*
*-commutative
pow1/3
cbrt-unprod
prod-exp
pow-prod-down
Counts
4 → 64
Calls
4 calls:
Slowest
16.0ms
(* (fabs (cbrt (fma e (cos v) 1))) (sqrt (cbrt (fma (cos v) e 1))))
3.0ms
(* e (sin v))
1.0ms
(cbrt (fma e (cos v) 1))
1.0ms
(cbrt (fma (cos v) e 1))

series282.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
94.0ms
(cbrt (fma (cos v) e 1))
90.0ms
(* (fabs (cbrt (fma e (cos v) 1))) (sqrt (cbrt (fma (cos v) e 1))))
61.0ms
(cbrt (fma e (cos v) 1))
36.0ms
(* e (sin v))

simplify1.7s

Counts
35 → 76
Calls
35 calls:
Slowest
254.0ms
(- (+ (* 1/6 (* e (fabs (pow (fma e (cos v) 1) 1/3)))) (fabs (pow (fma e (cos v) 1) 1/3))) (* 5/72 (* (pow e 2) (fabs (pow (fma e (cos v) 1) 1/3)))))
198.0ms
(- (+ (* 1/3 (/ (exp (* 1/3 (- (log (- (cos v))) (log (/ -1 e))))) (* e (cos v)))) (exp (* 1/3 (- (log (- (cos v))) (log (/ -1 e)))))) (* 1/9 (/ (exp (* 1/3 (- (log (- (cos v))) (log (/ -1 e))))) (* (pow e 2) (pow (cos v) 2)))))
181.0ms
(- (+ (exp (* 1/3 (- (log (cos v)) (log (/ 1 e))))) (* 1/3 (/ (exp (* 1/3 (- (log (cos v)) (log (/ 1 e))))) (* (cos v) e)))) (* 1/9 (/ (exp (* 1/3 (- (log (cos v)) (log (/ 1 e))))) (* (pow (cos v) 2) (pow e 2)))))
181.0ms
(- (+ (* 1/3 (/ (exp (* 1/3 (- (log (- (cos v))) (log (/ -1 e))))) (* e (cos v)))) (exp (* 1/3 (- (log (- (cos v))) (log (/ -1 e)))))) (* 1/9 (/ (exp (* 1/3 (- (log (- (cos v))) (log (/ -1 e))))) (* (pow e 2) (pow (cos v) 2)))))
165.0ms
(- (+ (exp (* 1/3 (- (log (cos v)) (log (/ 1 e))))) (* 1/3 (/ (exp (* 1/3 (- (log (cos v)) (log (/ 1 e))))) (* (cos v) e)))) (* 1/9 (/ (exp (* 1/3 (- (log (cos v)) (log (/ 1 e))))) (* (pow (cos v) 2) (pow e 2)))))

prune1.5s

Pruning

5 alts after pruning (4 fresh and 1 done)

Merged error: 0.0b

localize10.0ms

Local error

Found 4 expressions with local error:

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

rewrite22.0ms

Algorithm
rewrite-expression-head
Rules
66×times-frac
53×add-sqr-sqrt
52×add-cube-cbrt
52×*-un-lft-identity
42×sqrt-prod
31×associate-/r*
11×associate-/l*
11×div-inv
associate-/r/
add-exp-log
add-cbrt-cube
add-log-exp
log1p-expm1-u
pow1
expm1-log1p-u
frac-2neg
clear-num
div-exp
cbrt-undiv
associate-/l/
pow1/2
rem-sqrt-square
Counts
4 → 146
Calls
4 calls:
Slowest
8.0ms
(/ (sqrt (fma (cos v) e 1)) (sin v))
7.0ms
(/ (/ e (/ (sqrt (fma (cos v) e 1)) (sin v))) (sqrt (fma (cos v) e 1)))
2.0ms
(sqrt (fma (cos v) e 1))
1.0ms
(/ e (/ (sqrt (fma (cos v) e 1)) (sin v)))

series342.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
151.0ms
(/ e (/ (sqrt (fma (cos v) e 1)) (sin v)))
86.0ms
(/ (sqrt (fma (cos v) e 1)) (sin v))
67.0ms
(/ (/ e (/ (sqrt (fma (cos v) e 1)) (sin v))) (sqrt (fma (cos v) e 1)))
37.0ms
(sqrt (fma (cos v) e 1))

simplify4.0s

Counts
156 → 158
Calls
156 calls:
Slowest
505.0ms
(- (+ (* (pow e 3) v) (* e v)) (* (pow e 2) v))
234.0ms
(/ (* (* (sqrt (fma (cos v) e 1)) (sqrt (fma (cos v) e 1))) (sqrt (fma (cos v) e 1))) (* (* (sin v) (sin v)) (sin v)))
202.0ms
(- (log (/ e (/ (sqrt (fma (cos v) e 1)) (sin v)))) (log (sqrt (fma (cos v) e 1))))
154.0ms
(- (+ (* 3/8 (* (pow e 3) v)) (* e v)) (* 1/2 (* (pow e 2) v)))
148.0ms
(/ (/ 1 (/ (sqrt (fma (cos v) e 1)) (sin v))) (sqrt (cbrt (fma (cos v) e 1))))

prune2.0s

Pruning

9 alts after pruning (7 fresh and 2 done)

Merged error: 0.0b

regimes201.0ms

Accuracy

0% (0.1b remaining)

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

bsearch3.0ms

end1.0ms

sample6.3s

Algorithm
intervals
Results
8000×(pre true 80)
4322×(body real 80)
1530×(body real 1280)
1225×(body real 640)
642×(body real 320)
281×(body real 160)