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

Error

Bits error versus r

Bits error versus a

Bits error versus b

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 14.7

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

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

    \[\leadsto \frac{r \cdot \sin b}{\color{blue}{1 \cdot \left(\cos a \cdot \cos b - \sin a \cdot \sin b\right)}}\]
  6. Applied times-frac0.3

    \[\leadsto \color{blue}{\frac{r}{1} \cdot \frac{\sin b}{\cos a \cdot \cos b - \sin a \cdot \sin b}}\]
  7. Simplified0.3

    \[\leadsto \color{blue}{r} \cdot \frac{\sin b}{\cos a \cdot \cos b - \sin a \cdot \sin b}\]
  8. Using strategy rm
  9. Applied add-cube-cbrt0.5

    \[\leadsto r \cdot \frac{\sin b}{\cos a \cdot \cos b - \sin a \cdot \color{blue}{\left(\left(\sqrt[3]{\sin b} \cdot \sqrt[3]{\sin b}\right) \cdot \sqrt[3]{\sin b}\right)}}\]
  10. Applied associate-*r*0.5

    \[\leadsto r \cdot \frac{\sin b}{\cos a \cdot \cos b - \color{blue}{\left(\sin a \cdot \left(\sqrt[3]{\sin b} \cdot \sqrt[3]{\sin b}\right)\right) \cdot \sqrt[3]{\sin b}}}\]
  11. Final simplification0.5

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

Reproduce

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

Details

Time bar (total: 23.0s)Debug log

sample329.0ms

Algorithm
intervals

simplify26.0ms

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

prune7.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 10.9b

localize27.0ms

Local error

Found 3 expressions with local error:

2.1b
(cos (+ a b))
0.3b
(/ (* r (sin b)) (cos (+ a b)))
0.1b
(* r (sin b))

rewrite10.0ms

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

series193.0ms

Counts
3 → 9
Calls
3 calls:
Slowest
110.0ms
(/ (* r (sin b)) (cos (+ a b)))
44.0ms
(* r (sin b))
39.0ms
(cos (+ a b))

simplify851.0ms

Counts
24 → 47
Calls
24 calls:
Slowest
464.0ms
(/ (* (* (* r (sin b)) (* r (sin b))) (* r (sin b))) (* (* (cos (+ a b)) (cos (+ a b))) (cos (+ a b))))
161.0ms
(+ (* a (* r (pow b 2))) (+ (* 1/3 (* r (pow b 3))) (* r b)))
121.0ms
(- 1 (+ (* 1/2 (pow a 2)) (* a b)))
20.0ms
(/ (* (sin b) r) (cos (+ a b)))
19.0ms
(- (log (* r (sin b))) (log (cos (+ a b))))

prune535.0ms

Pruning

10 alts after pruning (10 fresh and 0 done)

Merged error: 0.2b

localize24.0ms

Local error

Found 4 expressions with local error:

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

rewrite25.0ms

Algorithm
rewrite-expression-head
Rules
add-cube-cbrt
*-un-lft-identity
add-sqr-sqrt
add-exp-log
add-cbrt-cube
add-log-exp
associate-*r*
pow1
sin-mult
cos-mult
associate-/r/
associate-*l*
times-frac
associate-/r*
sub-div
flip--
frac-sub
*-commutative
flip3--
associate-/l*
div-inv
cbrt-unprod
prod-exp
pow-prod-down
div-exp
diff-log
frac-2neg
sub-neg
clear-num
cbrt-undiv
Counts
4 → 66
Calls
4 calls:
Slowest
10.0ms
(/ (* r (sin b)) (- (* (cos a) (cos b)) (* (sin a) (sin b))))
9.0ms
(- (* (cos a) (cos b)) (* (sin a) (sin b)))
4.0ms
(* (sin a) (sin b))
1.0ms
(* r (sin b))

series425.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
258.0ms
(/ (* r (sin b)) (- (* (cos a) (cos b)) (* (sin a) (sin b))))
76.0ms
(- (* (cos a) (cos b)) (* (sin a) (sin b)))
48.0ms
(* (sin a) (sin b))
42.0ms
(* r (sin b))

simplify1.6s

Counts
42 → 78
Calls
42 calls:
Slowest
373.0ms
(- (+ (cos (+ a b)) (cos (- a b))) (- (cos (- a b)) (cos (+ a b))))
328.0ms
(- (* (+ (cos (+ a b)) (cos (- a b))) 2) (* 2 (- (cos (- a b)) (cos (+ a b)))))
172.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)))))
127.0ms
(+ (* a (* r (pow b 2))) (+ (* 1/3 (* r (pow b 3))) (* r b)))
77.0ms
(- 1 (+ (* 1/2 (pow a 2)) (* a b)))

prune1.1s

Pruning

14 alts after pruning (14 fresh and 0 done)

Merged error: 0.0b

localize13.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)))

rewrite51.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
sub-div
associate-/l*
flip--
frac-sub
associate-*l*
flip3--
associate-/r*
div-inv
*-commutative
cbrt-unprod
associate-*r/
prod-exp
pow-prod-down
div-exp
diff-log
frac-2neg
sub-neg
clear-num
cbrt-undiv
Counts
4 → 89
Calls
4 calls:
Slowest
20.0ms
(/ (sin b) (- (* (cos a) (cos b)) (* (sin a) (sin b))))
16.0ms
(* r (/ (sin b) (- (* (cos a) (cos b)) (* (sin a) (sin b)))))
8.0ms
(* (sin a) (sin b))
6.0ms
(- (* (cos a) (cos b)) (* (sin a) (sin b)))

series529.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
259.0ms
(* r (/ (sin b) (- (* (cos a) (cos b)) (* (sin a) (sin b)))))
127.0ms
(/ (sin b) (- (* (cos a) (cos b)) (* (sin a) (sin b))))
88.0ms
(- (* (cos a) (cos b)) (* (sin a) (sin b)))
54.0ms
(* (sin a) (sin b))

simplify2.2s

Counts
70 → 101
Calls
70 calls:
Slowest
305.0ms
(- (* (+ (cos (+ a b)) (cos (- a b))) 2) (* 2 (- (cos (- a b)) (cos (+ a b)))))
280.0ms
(- (+ (cos (+ a b)) (cos (- a b))) (- (cos (- a b)) (cos (+ a b))))
183.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)))))
160.0ms
(+ (* a (* r (pow b 2))) (+ (* 1/3 (* r (pow b 3))) (* r b)))
159.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)))))

prune1.5s

Pruning

11 alts after pruning (11 fresh and 0 done)

Merged error: 0.0b

localize14.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
(/ (* r (sin b)) (- (* (cos a) (cos b)) (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))

rewrite115.0ms

Algorithm
rewrite-expression-head
Rules
26×sin-mult
14×cbrt-div
10×add-cube-cbrt
10×add-exp-log
10×associate-*l/
10×add-cbrt-cube
10×*-un-lft-identity
10×frac-times
10×add-sqr-sqrt
associate-/r/
pow1
frac-sub
cos-mult
associate-*r/
associate-*l*
associate-*r*
add-log-exp
times-frac
associate-/r*
cbrt-unprod
*-commutative
prod-exp
pow-prod-down
associate-/l*
flip--
div-inv
rem-cbrt-cube
pow3
div-exp
pow1/3
flip3--
frac-2neg
clear-num
cbrt-undiv
cbrt-prod
Counts
4 → 81
Calls
4 calls:
Slowest
64.0ms
(/ (* r (sin b)) (- (* (cos a) (cos b)) (cbrt (* (* (* (sin a) (sin b)) (* (sin a) (sin b))) (* (sin a) (sin b))))))
34.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))

series486.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
261.0ms
(/ (* r (sin b)) (- (* (cos a) (cos b)) (cbrt (* (* (* (sin a) (sin b)) (* (sin a) (sin b))) (* (sin a) (sin b))))))
79.0ms
(cbrt (* (* (* (sin a) (sin b)) (* (sin a) (sin b))) (* (sin a) (sin b))))
75.0ms
(* (sin a) (sin b))
72.0ms
(* (sin a) (sin b))

simplify3.4s

Counts
59 → 93
Calls
59 calls:
Slowest
423.0ms
(cbrt (* (* (- (cos (- a b)) (cos (+ a b))) (- (cos (- a b)) (cos (+ a b)))) (* (sin a) (sin b))))
370.0ms
(cbrt (* (* (- (cos (- a b)) (cos (+ a b))) (* (sin a) (sin b))) (* (sin a) (sin b))))
319.0ms
(cbrt (* (* (* (sin a) (sin b)) (- (cos (- a b)) (cos (+ a b)))) (* (sin a) (sin b))))
273.0ms
(+ (* (* (cos a) (cos b)) (* (cos a) (cos b))) (+ (* (cbrt (* (* (* (sin a) (sin b)) (* (sin a) (sin b))) (* (sin a) (sin b)))) (cbrt (* (* (* (sin a) (sin b)) (* (sin a) (sin b))) (* (sin a) (sin b))))) (* (* (cos a) (cos b)) (cbrt (* (* (* (sin a) (sin b)) (* (sin a) (sin b))) (* (sin a) (sin b)))))))
233.0ms
(cbrt (* (* (- (cos (- a b)) (cos (+ a b))) (- (cos (- a b)) (cos (+ a b)))) (- (cos (- a b)) (cos (+ a b)))))

prune1.3s

Pruning

10 alts after pruning (10 fresh and 0 done)

Merged error: 0.0b

regimes279.0ms

Accuracy

0% (0.4b remaining)

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

bsearch3.0ms

end0.0ms

sample8.1s

Algorithm
intervals