Average Error: 27.5 → 2.6
Time: 24.3s
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(2 \cdot x\right)}{\left(x \cdot cos\right) \cdot sin} \cdot \frac{1}{\left(x \cdot cos\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 associate-/r*2.6

    \[\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 div-inv2.6

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

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

Reproduce

herbie shell --seed 2018360 
(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.0s)Debug log

start134.0ms

Algorithm
intervals

setup150.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 3.3b

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

rewrite28.0ms

Algorithm
rewrite-expression-head
Counts
4 → 56
Calls

4 calls. Slowest were:

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

series119.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

52.0ms
(/ (cos (* 2 x)) (* (* (* x cos) sin) (* (* x cos) sin)))
34.0ms
(* (* (* x cos) sin) (* (* x cos) sin))
17.0ms
(* (* x cos) sin)
16.0ms
(* (* x cos) sin)

simplify2.7s

Counts
33 → 68
Calls

33 calls. Slowest were:

433.0ms
(* (* (* (* (* x cos) sin) (* (* x cos) sin)) (* (* x cos) sin)) (* (* (* (* x cos) sin) (* (* x cos) sin)) (* (* x cos) sin)))
240.0ms
(/ (* (cos x) (cos x)) (* (* (* x cos) sin) (* (* x cos) sin)))
224.0ms
(- (log (cos (* 2 x))) (log (* (* (* x cos) sin) (* (* x cos) sin))))

prune765.0ms

Pruning

13 alts after pruning (13 fresh and 0 done)

Merged error: 3.0b

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

rewrite21.0ms

Algorithm
rewrite-expression-head
Counts
4 → 69
Calls

4 calls. Slowest were:

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

series175.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

79.0ms
(/ (/ (cos (* 2 x)) (* (* x cos) sin)) (* (* x cos) sin))
44.0ms
(/ (cos (* 2 x)) (* (* x cos) sin))
27.0ms
(* (* x cos) sin)
24.0ms
(* (* x cos) sin)

simplify4.9s

Counts
49 → 81
Calls

49 calls. Slowest were:

639.0ms
(- (- (log (cos (* 2 x))) (log (* (* x cos) sin))) (log (* (* x cos) sin)))
606.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)))))
600.0ms
(- (log (/ (cos (* 2 x)) (* (* x cos) sin))) (log (* (* x cos) sin)))

prune1.0s

Pruning

12 alts after pruning (12 fresh and 0 done)

Merged error: 2.9b

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

rewrite12.0ms

Algorithm
rewrite-expression-head
Counts
4 → 52
Calls

4 calls. Slowest were:

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

series111.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)
13.0ms
(/ 1 (* (* x cos) sin))

simplify697.0ms

Counts
24 → 64
Calls

24 calls. Slowest were:

188.0ms
(- (/ 1 (* x (* sin cos))) (* 2 (/ x (* sin cos))))
165.0ms
(- (log (cos (* 2 x))) (log (* (* x cos) sin)))
122.0ms
(/ (* (cos x) (cos x)) (* (* x cos) sin))

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

rewrite24.0ms

Algorithm
rewrite-expression-head
Counts
4 → 71
Calls

4 calls. Slowest were:

9.0ms
(/ (/ (/ (cos (* 2 x)) (* x cos)) sin) (* (* x cos) sin))
6.0ms
(/ (/ (cos (* 2 x)) (* x cos)) sin)
5.0ms
(/ (cos (* 2 x)) (* x cos))

series146.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

56.0ms
(/ (/ (/ (cos (* 2 x)) (* x cos)) sin) (* (* x cos) sin))
43.0ms
(/ (/ (cos (* 2 x)) (* x cos)) sin)
29.0ms
(/ (cos (* 2 x)) (* x cos))
18.0ms
(* (* x cos) sin)

simplify3.4s

Counts
46 → 83
Calls

46 calls. Slowest were:

674.0ms
(/ (* (* (cos (* 2 x)) (cos (* 2 x))) (cos (* 2 x))) (* (* (* x cos) (* x cos)) (* x cos)))
537.0ms
(- (log (/ (/ (cos (* 2 x)) (* x cos)) sin)) (log (* (* x cos) sin)))
335.0ms
(/ (/ (/ (* (cos x) (cos x)) (* x cos)) sin) (* (* x cos) sin))

prune1.1s

Pruning

11 alts after pruning (10 fresh and 1 done)

Merged error: 2.9b

regimes574.0ms

Accuracy

0% (0.5b remaining)

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

bsearch4.0ms