Average Error: 14.7 → 0.4
Time: 25.7s
Precision: 64
Internal Precision: 128
\[r \cdot \frac{\sin b}{\cos \left(a + b\right)}\]
\[\frac{\sin b}{(\left(\cos a\right) \cdot \left(\cos b\right) + \left(-\sqrt[3]{\left(\sin a \cdot \sin b\right) \cdot \left(\left(\sin a \cdot \sin b\right) \cdot \left(\sin a \cdot \sin b\right)\right)}\right))_*} \cdot r\]

Error

Bits error versus r

Bits error versus a

Bits error versus b

Derivation

  1. Initial program 14.7

    \[r \cdot \frac{\sin b}{\cos \left(a + b\right)}\]
  2. Using strategy rm
  3. Applied cos-sum0.3

    \[\leadsto r \cdot \frac{\sin b}{\color{blue}{\cos a \cdot \cos b - \sin a \cdot \sin b}}\]
  4. Using strategy rm
  5. Applied fma-neg0.3

    \[\leadsto r \cdot \frac{\sin b}{\color{blue}{(\left(\cos a\right) \cdot \left(\cos b\right) + \left(-\sin a \cdot \sin b\right))_*}}\]
  6. Using strategy rm
  7. Applied add-cbrt-cube0.4

    \[\leadsto r \cdot \frac{\sin b}{(\left(\cos a\right) \cdot \left(\cos b\right) + \left(-\color{blue}{\sqrt[3]{\left(\left(\sin a \cdot \sin b\right) \cdot \left(\sin a \cdot \sin b\right)\right) \cdot \left(\sin a \cdot \sin b\right)}}\right))_*}\]
  8. Final simplification0.4

    \[\leadsto \frac{\sin b}{(\left(\cos a\right) \cdot \left(\cos b\right) + \left(-\sqrt[3]{\left(\sin a \cdot \sin b\right) \cdot \left(\left(\sin a \cdot \sin b\right) \cdot \left(\sin a \cdot \sin b\right)\right)}\right))_*} \cdot r\]

Reproduce

herbie shell --seed 2019010 +o rules:numerics
(FPCore (r a b)
  :name "r*sin(b)/cos(a+b), B"
  (* r (/ (sin b) (cos (+ a b)))))

Details

Time bar (total: 23.3s)Debug log

sample532.0ms

Algorithm
intervals

simplify33.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
32.0ms
(* r (/ (sin b) (cos (+ a b))))

prune55.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 10.9b

localize43.0ms

Local error

Found 3 expressions with local error:

2.1b
(cos (+ a b))
0.2b
(/ (sin b) (cos (+ a b)))
0.2b
(* r (/ (sin b) (cos (+ a b))))

rewrite13.0ms

Algorithm
rewrite-expression-head
Rules
18×add-cube-cbrt
18×times-frac
18×*-un-lft-identity
18×add-sqr-sqrt
13×associate-*r*
add-exp-log
add-cbrt-cube
add-log-exp
associate-/l*
log1p-expm1-u
associate-/r*
pow1
expm1-log1p-u
div-inv
*-commutative
associate-*r/
div-exp
frac-2neg
clear-num
cos-sum
cbrt-undiv
Counts
3 → 63
Calls
3 calls:
Slowest
4.0ms
(/ (sin b) (cos (+ a b)))
4.0ms
(cos (+ a b))
3.0ms
(* r (/ (sin b) (cos (+ a b))))

series213.0ms

Counts
3 → 9
Calls
3 calls:
Slowest
119.0ms
(* r (/ (sin b) (cos (+ a b))))
59.0ms
(/ (sin b) (cos (+ a b)))
35.0ms
(cos (+ a b))

simplify928.0ms

Counts
49 → 72
Calls
49 calls:
Slowest
189.0ms
(+ (* a (* r (pow b 2))) (+ (* 1/3 (* r (pow b 3))) (* r b)))
185.0ms
(+ b (+ (* 1/3 (pow b 3)) (* a (pow b 2))))
162.0ms
(/ (* (* (sin b) (sin b)) (sin b)) (* (* (cos (+ a b)) (cos (+ a b))) (cos (+ a b))))
137.0ms
(- 1 (+ (* 1/2 (pow a 2)) (* a b)))
31.0ms
(/ (* (cbrt (sin b)) (cbrt (sin b))) (* (cbrt (cos (+ a b))) (cbrt (cos (+ a b)))))

prune833.0ms

Pruning

11 alts after pruning (11 fresh and 0 done)

Merged error: 0.1b

localize33.0ms

Local error

Found 4 expressions with local error:

0.3b
(* (sin a) (sin b))
0.2b
(/ (sin b) (- (* (cos a) (cos b)) (* (sin a) (sin b))))
0.2b
(* r (/ (sin b) (- (* (cos a) (cos b)) (* (sin a) (sin b)))))
0.1b
(- (* (cos a) (cos b)) (* (sin a) (sin b)))

rewrite62.0ms

Algorithm
rewrite-expression-head
Rules
21×add-cube-cbrt
21×*-un-lft-identity
21×add-sqr-sqrt
20×associate-*r*
18×times-frac
associate-/r/
add-exp-log
add-cbrt-cube
sin-mult
add-log-exp
cos-mult
pow1
log1p-expm1-u
expm1-log1p-u
sub-div
associate-/l*
flip--
frac-sub
associate-*l*
flip3--
associate-/r*
div-inv
*-commutative
cbrt-unprod
associate-*r/
prod-exp
pow-prod-down
prod-diff
div-exp
diff-log
fma-neg
frac-2neg
sub-neg
clear-num
cbrt-undiv
Counts
4 → 99
Calls
4 calls:
Slowest
23.0ms
(* r (/ (sin b) (- (* (cos a) (cos b)) (* (sin a) (sin b)))))
18.0ms
(/ (sin b) (- (* (cos a) (cos b)) (* (sin a) (sin b))))
15.0ms
(- (* (cos a) (cos b)) (* (sin a) (sin b)))
4.0ms
(* (sin a) (sin b))

series571.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
243.0ms
(* r (/ (sin b) (- (* (cos a) (cos b)) (* (sin a) (sin b)))))
157.0ms
(/ (sin b) (- (* (cos a) (cos b)) (* (sin a) (sin b))))
95.0ms
(- (* (cos a) (cos b)) (* (sin a) (sin b)))
76.0ms
(* (sin a) (sin b))

simplify3.0s

Counts
73 → 111
Calls
73 calls:
Slowest
334.0ms
(- (* (+ (cos (+ a b)) (cos (- a b))) 2) (* 2 (- (cos (- a b)) (cos (+ a b)))))
321.0ms
(- (+ (cos (+ a b)) (cos (- a b))) (- (cos (- a b)) (cos (+ a b))))
247.0ms
(/ (* (* (sin b) (sin b)) (sin b)) (* (* (- (* (cos a) (cos b)) (* (sin a) (sin b))) (- (* (cos a) (cos b)) (* (sin a) (sin b)))) (- (* (cos a) (cos b)) (* (sin a) (sin b)))))
227.0ms
(+ (* (* (cos a) (cos b)) (* (cos a) (cos b))) (+ (* (* (sin a) (sin b)) (* (sin a) (sin b))) (* (* (cos a) (cos b)) (* (sin a) (sin b)))))
220.0ms
(+ (* a (* r (pow b 2))) (+ (* 1/3 (* r (pow b 3))) (* r b)))

prune1.5s

Pruning

16 alts after pruning (16 fresh and 0 done)

Merged error: 0.0b

localize11.0ms

Local error

Found 4 expressions with local error:

0.3b
(* (sin a) (sin b))
0.2b
(/ (sin b) (fma (cos a) (cos b) (- (* (sin a) (sin b)))))
0.2b
(* r (/ (sin b) (fma (cos a) (cos b) (- (* (sin a) (sin b))))))
0.1b
(fma (cos a) (cos b) (- (* (sin a) (sin b))))

rewrite12.0ms

Algorithm
rewrite-expression-head
Rules
21×add-cube-cbrt
21×*-un-lft-identity
21×add-sqr-sqrt
18×times-frac
16×associate-*r*
add-exp-log
add-cbrt-cube
pow1
add-log-exp
log1p-expm1-u
expm1-log1p-u
associate-/l*
associate-*l*
associate-/r*
div-inv
*-commutative
sin-mult
fma-udef
cbrt-unprod
associate-*r/
prod-exp
pow-prod-down
div-exp
frac-2neg
clear-num
cbrt-undiv
Counts
4 → 83
Calls
4 calls:
Slowest
4.0ms
(* r (/ (sin b) (fma (cos a) (cos b) (- (* (sin a) (sin b))))))
4.0ms
(* (sin a) (sin b))
3.0ms
(/ (sin b) (fma (cos a) (cos b) (- (* (sin a) (sin b)))))
0.0ms
(fma (cos a) (cos b) (- (* (sin a) (sin b))))

series550.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
255.0ms
(* r (/ (sin b) (fma (cos a) (cos b) (- (* (sin a) (sin b))))))
117.0ms
(fma (cos a) (cos b) (- (* (sin a) (sin b))))
117.0ms
(/ (sin b) (fma (cos a) (cos b) (- (* (sin a) (sin b)))))
62.0ms
(* (sin a) (sin b))

simplify1.8s

Counts
60 → 95
Calls
60 calls:
Slowest
314.0ms
(+ (* a (* r (pow b 2))) (+ (* 1/3 (* r (pow b 3))) (* r b)))
228.0ms
(/ (* (* (sin b) (sin b)) (sin b)) (* (* (fma (cos a) (cos b) (- (* (sin a) (sin b)))) (fma (cos a) (cos b) (- (* (sin a) (sin b))))) (fma (cos a) (cos b) (- (* (sin a) (sin b))))))
203.0ms
(- 1 (+ (* 1/2 (pow a 2)) (* a b)))
175.0ms
(+ b (+ (* 1/3 (pow b 3)) (* a (pow b 2))))
71.0ms
(* (* (* (sin a) (sin a)) (sin a)) (* (* (sin b) (sin b)) (sin b)))

prune1.5s

Pruning

15 alts after pruning (15 fresh and 0 done)

Merged error: 0.0b

localize40.0ms

Local error

Found 4 expressions with local error:

32.5b
(cbrt (* (* (* (sin a) (sin b)) (* (sin a) (sin b))) (* (sin a) (sin b))))
0.3b
(* (sin a) (sin b))
0.3b
(* (sin a) (sin b))
0.3b
(* (sin a) (sin b))

rewrite84.0ms

Algorithm
rewrite-expression-head
Rules
15×sin-mult
10×add-cube-cbrt
10×add-exp-log
10×add-cbrt-cube
10×*-un-lft-identity
10×pow1
10×add-sqr-sqrt
associate-*l*
associate-*r*
cbrt-div
associate-*l/
frac-times
add-log-exp
log1p-expm1-u
expm1-log1p-u
cbrt-unprod
*-commutative
associate-*r/
prod-exp
pow-prod-down
rem-cbrt-cube
pow3
pow1/3
cbrt-prod
Counts
4 → 79
Calls
4 calls:
Slowest
60.0ms
(cbrt (* (* (* (sin a) (sin b)) (* (sin a) (sin b))) (* (sin a) (sin b))))
7.0ms
(* (sin a) (sin b))
7.0ms
(* (sin a) (sin b))
7.0ms
(* (sin a) (sin b))

series255.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
73.0ms
(* (sin a) (sin b))
72.0ms
(cbrt (* (* (* (sin a) (sin b)) (* (sin a) (sin b))) (* (sin a) (sin b))))
57.0ms
(* (sin a) (sin b))
53.0ms
(* (sin a) (sin b))

simplify2.1s

Counts
48 → 91
Calls
48 calls:
Slowest
492.0ms
(cbrt (* (* (- (cos (- a b)) (cos (+ a b))) (- (cos (- a b)) (cos (+ a b)))) (* (sin a) (sin b))))
446.0ms
(cbrt (* (* (* (sin a) (sin b)) (- (cos (- a b)) (cos (+ a b)))) (* (sin a) (sin b))))
279.0ms
(cbrt (* (* (- (cos (- a b)) (cos (+ a b))) (- (cos (- a b)) (cos (+ a b)))) (- (cos (- a b)) (cos (+ a b)))))
179.0ms
(cbrt (* (* (* (sin a) (sin b)) (- (cos (- a b)) (cos (+ a b)))) (- (cos (- a b)) (cos (+ a b)))))
140.0ms
(cbrt (* (* (- (cos (- a b)) (cos (+ a b))) (* (sin a) (sin b))) (* (sin a) (sin b))))

prune1.4s

Pruning

15 alts after pruning (14 fresh and 1 done)

Merged error: 0.0b

regimes377.0ms

Accuracy

0% (0.3b remaining)

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

bsearch4.0ms

end0.0ms

sample7.3s

Algorithm
intervals