Average Error: 27.5 → 2.6
Time: 24.6s
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)}\]
\[\frac{\cos \left(x \cdot 2\right)}{\left(cos \cdot x\right) \cdot sin} \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 simplification2.8

    \[\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 *-un-lft-identity2.8

    \[\leadsto \frac{\color{blue}{1 \cdot \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)}\]
  5. Applied times-frac2.6

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

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

Reproduce

herbie shell --seed 2018360 +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: 17.3s)Debug log

start142.0ms

Algorithm
intervals

setup244.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 3.3b

localize21.0ms

Local error

Found 4 expressions with local error:

5.5b
(* (* x cos) sin)
5.5b
(* (* x cos) sin)
0.3b
(* (* (* x cos) sin) (* (* x cos) sin))
0.2b
(/ (cos (* 2 x)) (* (* (* x cos) sin) (* (* x cos) sin)))

rewrite25.0ms

Algorithm
rewrite-expression-head
Counts
4 → 64
Calls

4 calls. Slowest were:

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

series164.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

62.0ms
(/ (cos (* 2 x)) (* (* (* x cos) sin) (* (* x cos) sin)))
58.0ms
(* (* (* x cos) sin) (* (* x cos) sin))
22.0ms
(* (* x cos) sin)
21.0ms
(* (* x cos) sin)

simplify3.3s

Counts
33 → 76
Calls

33 calls. Slowest were:

585.0ms
(* (* (* (* (* x cos) sin) (* (* x cos) sin)) (* (* x cos) sin)) (* (* (* (* x cos) sin) (* (* x cos) sin)) (* (* x cos) sin)))
381.0ms
(- (log (cos (* 2 x))) (log (* (* (* x cos) sin) (* (* x cos) sin))))
305.0ms
(/ (* (cos x) (cos x)) (* (* (* x cos) sin) (* (* x cos) sin)))

prune683.0ms

Pruning

13 alts after pruning (13 fresh and 0 done)

Merged error: 3.0b

localize8.0ms

Local error

Found 4 expressions with local error:

5.5b
(* (* x cos) sin)
5.5b
(* (* x cos) sin)
0.5b
(/ (cos (* 2 x)) (* (* x cos) sin))
0.2b
(/ (/ (cos (* 2 x)) (* (* x cos) sin)) (* (* x cos) sin))

rewrite27.0ms

Algorithm
rewrite-expression-head
Counts
4 → 77
Calls

4 calls. Slowest were:

16.0ms
(/ (/ (cos (* 2 x)) (* (* x cos) sin)) (* (* x cos) sin))
6.0ms
(/ (cos (* 2 x)) (* (* x cos) sin))
2.0ms
(* (* x cos) sin)

series125.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

63.0ms
(/ (/ (cos (* 2 x)) (* (* x cos) sin)) (* (* x cos) sin))
27.0ms
(/ (cos (* 2 x)) (* (* x cos) sin))
19.0ms
(* (* x cos) sin)
16.0ms
(* (* x cos) sin)

simplify4.4s

Counts
49 → 89
Calls

49 calls. Slowest were:

679.0ms
(- (- (log (cos (* 2 x))) (log (* (* x cos) sin))) (log (* (* x cos) sin)))
518.0ms
(- (log (/ (cos (* 2 x)) (* (* x cos) sin))) (log (* (* x cos) sin)))
408.0ms
(/ (/ (* (cos x) (cos x)) (* (* x cos) sin)) (* (* x cos) sin))

prune934.0ms

Pruning

12 alts after pruning (12 fresh and 0 done)

Merged error: 2.9b

localize12.0ms

Local error

Found 4 expressions with local error:

5.5b
(* (* x cos) sin)
5.5b
(* (* x cos) sin)
0.5b
(/ (cos (* 2 x)) (* (* x cos) sin))
0.5b
(/ 1 (* (* x cos) sin))

rewrite30.0ms

Algorithm
rewrite-expression-head
Counts
4 → 60
Calls

4 calls. Slowest were:

16.0ms
(/ (cos (* 2 x)) (* (* x cos) sin))
4.0ms
(/ 1 (* (* x cos) sin))
4.0ms
(* (* x cos) sin)

series118.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

42.0ms
(/ (cos (* 2 x)) (* (* x cos) sin))
28.0ms
(* (* x cos) sin)
28.0ms
(* (* x cos) sin)
20.0ms
(/ 1 (* (* x cos) sin))

simplify651.0ms

Counts
24 → 72
Calls

24 calls. Slowest were:

185.0ms
(- (log (cos (* 2 x))) (log (* (* x cos) sin)))
132.0ms
(/ (* (cos x) (cos x)) (* (* x cos) sin))
118.0ms
(- (/ 1 (* x (* sin cos))) (* 2 (/ x (* sin cos))))

prune958.0ms

Pruning

12 alts after pruning (11 fresh and 1 done)

Merged error: 2.9b

localize8.0ms

Local error

Found 4 expressions with local error:

5.5b
(* (* x cos) sin)
5.4b
(/ (/ (cos (* 2 x)) (* x cos)) sin)
0.4b
(/ (cos (* 2 x)) (* x cos))
0.2b
(/ (/ (/ (cos (* 2 x)) (* x cos)) sin) (* (* x cos) sin))

rewrite32.0ms

Algorithm
rewrite-expression-head
Counts
4 → 79
Calls

4 calls. Slowest were:

16.0ms
(/ (/ (/ (cos (* 2 x)) (* x cos)) sin) (* (* x cos) sin))
8.0ms
(/ (/ (cos (* 2 x)) (* x cos)) sin)
5.0ms
(/ (cos (* 2 x)) (* x cos))

series162.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

68.0ms
(/ (/ (/ (cos (* 2 x)) (* x cos)) sin) (* (* x cos) sin))
44.0ms
(/ (cos (* 2 x)) (* x cos))
29.0ms
(/ (/ (cos (* 2 x)) (* x cos)) sin)
22.0ms
(* (* x cos) sin)

simplify3.4s

Counts
46 → 91
Calls

46 calls. Slowest were:

707.0ms
(/ (* (* (cos (* 2 x)) (cos (* 2 x))) (cos (* 2 x))) (* (* (* x cos) (* x cos)) (* x cos)))
617.0ms
(- (log (/ (/ (cos (* 2 x)) (* x cos)) sin)) (log (* (* x cos) sin)))
340.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)))))

prune1.2s

Pruning

12 alts after pruning (10 fresh and 2 done)

Merged error: 2.9b

regimes626.0ms

Accuracy

0% (0.5b remaining)

Error of 2.6b against oracle of 2.1b and baseline of 2.6b

bsearch3.0ms