Average Error: 27.5 → 2.9
Time: 28.0s
Precision: 64
Internal Precision: 128
\[\frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{2}\right) \cdot x\right)}\]
\[\left(\left(\cos \left(2 \cdot x\right) \cdot \frac{1}{cos \cdot x}\right) \cdot \frac{1}{sin}\right) \cdot \frac{1}{\left(cos \cdot x\right) \cdot sin}\]

Error

Bits error versus x

Bits error versus cos

Bits error versus sin

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 27.5

    \[\frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{2}\right) \cdot x\right)}\]
  2. Initial simplification3.0

    \[\leadsto \frac{\cos \left(2 \cdot x\right)}{\left(\left(x \cdot cos\right) \cdot sin\right) \cdot \left(\left(x \cdot cos\right) \cdot sin\right)}\]
  3. Using strategy rm
  4. Applied associate-/r*2.7

    \[\leadsto \color{blue}{\frac{\frac{\cos \left(2 \cdot x\right)}{\left(x \cdot cos\right) \cdot sin}}{\left(x \cdot cos\right) \cdot sin}}\]
  5. Using strategy rm
  6. Applied *-un-lft-identity2.7

    \[\leadsto \frac{\frac{\color{blue}{1 \cdot \cos \left(2 \cdot x\right)}}{\left(x \cdot cos\right) \cdot sin}}{\left(x \cdot cos\right) \cdot sin}\]
  7. Applied times-frac2.8

    \[\leadsto \frac{\color{blue}{\frac{1}{x \cdot cos} \cdot \frac{\cos \left(2 \cdot x\right)}{sin}}}{\left(x \cdot cos\right) \cdot sin}\]
  8. Using strategy rm
  9. Applied div-inv2.9

    \[\leadsto \color{blue}{\left(\frac{1}{x \cdot cos} \cdot \frac{\cos \left(2 \cdot x\right)}{sin}\right) \cdot \frac{1}{\left(x \cdot cos\right) \cdot sin}}\]
  10. Using strategy rm
  11. Applied div-inv2.9

    \[\leadsto \left(\frac{1}{x \cdot cos} \cdot \color{blue}{\left(\cos \left(2 \cdot x\right) \cdot \frac{1}{sin}\right)}\right) \cdot \frac{1}{\left(x \cdot cos\right) \cdot sin}\]
  12. Applied associate-*r*2.9

    \[\leadsto \color{blue}{\left(\left(\frac{1}{x \cdot cos} \cdot \cos \left(2 \cdot x\right)\right) \cdot \frac{1}{sin}\right)} \cdot \frac{1}{\left(x \cdot cos\right) \cdot sin}\]
  13. Final simplification2.9

    \[\leadsto \left(\left(\cos \left(2 \cdot x\right) \cdot \frac{1}{cos \cdot x}\right) \cdot \frac{1}{sin}\right) \cdot \frac{1}{\left(cos \cdot x\right) \cdot sin}\]

Reproduce

herbie shell --seed 2018365 +o rules:numerics
(FPCore (x cos sin)
  :name "cos(2*x)/(cos^2(x)*sin^2(x))"
  (/ (cos (* 2 x)) (* (pow cos 2) (* (* x (pow sin 2)) x))))

Details

Time bar (total: 19.5s)Debug log

start138.0ms

Algorithm
intervals

setup184.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 4.1b

localize17.0ms

Local error

Found 4 expressions with local error:

7.5b
(* (* x cos) sin)
7.5b
(* (* x cos) sin)
0.3b
(* (* (* x cos) sin) (* (* x cos) sin))
0.1b
(/ (cos (* 2 x)) (* (* (* x cos) sin) (* (* x cos) sin)))

rewrite26.0ms

Algorithm
rewrite-expression-head
Counts
4 → 64
Calls

4 calls. Slowest were:

11.0ms
(/ (cos (* 2 x)) (* (* (* x cos) sin) (* (* x cos) sin)))
10.0ms
(* (* (* x cos) sin) (* (* x cos) sin))
2.0ms
(* (* x cos) sin)

series122.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

51.0ms
(/ (cos (* 2 x)) (* (* (* x cos) sin) (* (* x cos) sin)))
34.0ms
(* (* (* x cos) sin) (* (* x cos) sin))
20.0ms
(* (* x cos) sin)
18.0ms
(* (* x cos) sin)

simplify3.2s

Counts
33 → 76
Calls

33 calls. Slowest were:

454.0ms
(* (* (* (* (* x cos) sin) (* (* x cos) sin)) (* (* x cos) sin)) (* (* (* (* x cos) sin) (* (* x cos) sin)) (* (* x cos) sin)))
349.0ms
(/ (* (* (cos (* 2 x)) (cos (* 2 x))) (cos (* 2 x))) (* (* (* (* (* x cos) sin) (* (* x cos) sin)) (* (* x cos) sin)) (* (* (* (* x cos) sin) (* (* x cos) sin)) (* (* x cos) sin))))
299.0ms
(- (+ (/ 1 (* (pow x 2) (* (pow sin 2) (pow cos 2)))) (* 2/3 (/ (pow x 2) (* (pow sin 2) (pow cos 2))))) (* 2 (/ 1 (* (pow sin 2) (pow cos 2)))))

prune997.0ms

Pruning

12 alts after pruning (12 fresh and 0 done)

Merged error: 3.6b

localize5.0ms

Local error

Found 4 expressions with local error:

7.5b
(* (* x cos) sin)
7.5b
(* (* x cos) sin)
0.6b
(/ (cos (* 2 x)) (* (* x cos) sin))
0.2b
(/ (/ (cos (* 2 x)) (* (* x cos) sin)) (* (* x cos) sin))

rewrite39.0ms

Algorithm
rewrite-expression-head
Counts
4 → 77
Calls

4 calls. Slowest were:

20.0ms
(/ (/ (cos (* 2 x)) (* (* x cos) sin)) (* (* x cos) sin))
12.0ms
(/ (cos (* 2 x)) (* (* x cos) sin))
3.0ms
(* (* x cos) sin)

series143.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

58.0ms
(/ (/ (cos (* 2 x)) (* (* x cos) sin)) (* (* x cos) sin))
30.0ms
(/ (cos (* 2 x)) (* (* x cos) sin))
28.0ms
(* (* x cos) sin)
27.0ms
(* (* x cos) sin)

simplify4.3s

Counts
49 → 89
Calls

49 calls. Slowest were:

618.0ms
(- (- (log (cos (* 2 x))) (log (* (* x cos) sin))) (log (* (* x cos) sin)))
588.0ms
(/ (/ (* (cos x) (cos x)) (* (* x cos) sin)) (* (* x cos) sin))
463.0ms
(- (log (/ (cos (* 2 x)) (* (* x cos) sin))) (log (* (* x cos) sin)))

prune1.2s

Pruning

12 alts after pruning (12 fresh and 0 done)

Merged error: 3.5b

localize11.0ms

Local error

Found 4 expressions with local error:

7.6b
(* (/ 1 (* x cos)) (/ (cos (* 2 x)) sin))
7.5b
(* (* x cos) sin)
0.4b
(/ 1 (* x cos))
0.2b
(/ (* (/ 1 (* x cos)) (/ (cos (* 2 x)) sin)) (* (* x cos) sin))

rewrite18.0ms

Algorithm
rewrite-expression-head
Counts
4 → 75
Calls

4 calls. Slowest were:

9.0ms
(/ (* (/ 1 (* x cos)) (/ (cos (* 2 x)) sin)) (* (* x cos) sin))
5.0ms
(* (/ 1 (* x cos)) (/ (cos (* 2 x)) sin))
2.0ms
(* (* x cos) sin)

series129.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

65.0ms
(/ (* (/ 1 (* x cos)) (/ (cos (* 2 x)) sin)) (* (* x cos) sin))
28.0ms
(* (/ 1 (* x cos)) (/ (cos (* 2 x)) sin))
24.0ms
(* (* x cos) sin)
13.0ms
(/ 1 (* x cos))

simplify4.7s

Counts
37 → 87
Calls

37 calls. Slowest were:

814.0ms
(/ (* (* (* (/ 1 (* x cos)) (/ 1 (* x cos))) (/ 1 (* x cos))) (* (* (/ (cos (* 2 x)) sin) (/ (cos (* 2 x)) sin)) (/ (cos (* 2 x)) sin))) (* (* (* (* x cos) sin) (* (* x cos) sin)) (* (* x cos) sin)))
753.0ms
(/ (* (* (* (/ 1 (* x cos)) (/ (cos (* 2 x)) sin)) (* (/ 1 (* x cos)) (/ (cos (* 2 x)) sin))) (* (/ 1 (* x cos)) (/ (cos (* 2 x)) sin))) (* (* (* (* x cos) sin) (* (* x cos) sin)) (* (* x cos) sin)))
486.0ms
(+ (log (/ 1 (* x cos))) (log (/ (cos (* 2 x)) sin)))

prune1.2s

Pruning

13 alts after pruning (13 fresh and 0 done)

Merged error: 2.7b

localize6.0ms

Local error

Found 4 expressions with local error:

7.6b
(* (/ 1 (* x cos)) (/ (cos (* 2 x)) sin))
7.5b
(* (* x cos) sin)
0.6b
(/ 1 (* (* x cos) sin))
0.4b
(/ 1 (* x cos))

rewrite11.0ms

Algorithm
rewrite-expression-head
Counts
4 → 68
Calls

4 calls. Slowest were:

5.0ms
(* (/ 1 (* x cos)) (/ (cos (* 2 x)) sin))
2.0ms
(/ 1 (* (* x cos) sin))
2.0ms
(* (* x cos) sin)

series92.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

38.0ms
(* (/ 1 (* x cos)) (/ (cos (* 2 x)) sin))
23.0ms
(/ 1 (* (* x cos) sin))
18.0ms
(* (* x cos) sin)
12.0ms
(/ 1 (* x cos))

simplify1.3s

Counts
27 → 80
Calls

27 calls. Slowest were:

525.0ms
(+ (log (/ 1 (* x cos))) (log (/ (cos (* 2 x)) sin)))
288.0ms
(* (/ 1 (* x cos)) (/ (cos (* 2 x)) sin))
161.0ms
(+ (- (log (* x cos))) (log (/ (cos (* 2 x)) sin)))

prune1.2s

Pruning

13 alts after pruning (13 fresh and 0 done)

Merged error: 2.7b

regimes421.0ms

Accuracy

0% (1.7b remaining)

Error of 2.9b against oracle of 1.1b and baseline of 2.9b

bsearch4.0ms