Average Error: 27.1 → 5.9
Time: 18.8s
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)}{cos \cdot \left(\left(\left(sin \cdot x\right) \cdot cos\right) \cdot \left(sin \cdot x\right)\right)}\]

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.1

    \[\frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\left(x \cdot {sin}^{2}\right) \cdot x\right)}\]
  2. Using strategy rm
  3. Applied unpow227.1

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

    \[\leadsto \frac{\cos \left(2 \cdot x\right)}{{cos}^{2} \cdot \left(\color{blue}{\left(\left(x \cdot sin\right) \cdot sin\right)} \cdot x\right)}\]
  5. Using strategy rm
  6. Applied unpow221.1

    \[\leadsto \frac{\cos \left(2 \cdot x\right)}{\color{blue}{\left(cos \cdot cos\right)} \cdot \left(\left(\left(x \cdot sin\right) \cdot sin\right) \cdot x\right)}\]
  7. Applied associate-*l*15.9

    \[\leadsto \frac{\cos \left(2 \cdot x\right)}{\color{blue}{cos \cdot \left(cos \cdot \left(\left(\left(x \cdot sin\right) \cdot sin\right) \cdot x\right)\right)}}\]
  8. Using strategy rm
  9. Applied associate-*l*13.2

    \[\leadsto \frac{\cos \left(2 \cdot x\right)}{cos \cdot \left(cos \cdot \color{blue}{\left(\left(x \cdot sin\right) \cdot \left(sin \cdot x\right)\right)}\right)}\]
  10. Using strategy rm
  11. Applied associate-*r*5.9

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

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

Reproduce

herbie shell --seed 2019007 +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.4s)Debug log

sample97.0ms

Algorithm
intervals

simplify246.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

246.0ms
(/ (cos (* 2 x)) (* (pow cos 2) (* (* x (pow sin 2)) x)))

prune12.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 25.9b

localize29.0ms

Local error

Found 4 expressions with local error:

16.6b
(* (pow cos 2) (* (* x (pow sin 2)) x))
9.0b
(* x (pow sin 2))
4.6b
(* (* x (pow sin 2)) x)
0.5b
(/ (cos (* 2 x)) (* (pow cos 2) (* (* x (pow sin 2)) x)))

rewrite39.0ms

Algorithm
rewrite-expression-head
Counts
4 → 68
Calls

4 calls. Slowest were:

17.0ms
(* (pow cos 2) (* (* x (pow sin 2)) x))
12.0ms
(/ (cos (* 2 x)) (* (pow cos 2) (* (* x (pow sin 2)) x)))
7.0ms
(* (* x (pow sin 2)) x)

series179.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

84.0ms
(/ (cos (* 2 x)) (* (pow cos 2) (* (* x (pow sin 2)) x)))
39.0ms
(* (pow cos 2) (* (* x (pow sin 2)) x))
30.0ms
(* (* x (pow sin 2)) x)
26.0ms
(* x (pow sin 2))

simplify2.3s

Counts
35 → 80
Calls

35 calls. Slowest were:

381.0ms
(* (* (* (pow cos 2) (pow cos 2)) (pow cos 2)) (* (* (* (* x (pow sin 2)) x) (* (* x (pow sin 2)) x)) (* (* x (pow sin 2)) x)))
200.0ms
(- (log (cos (* 2 x))) (log (* (pow cos 2) (* (* x (pow sin 2)) x))))
200.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)))))

prune703.0ms

Pruning

11 alts after pruning (11 fresh and 0 done)

Merged error: 7.9b

localize15.0ms

Local error

Found 4 expressions with local error:

16.6b
(* (pow cos 2) (* (* (* x sin) sin) x))
4.6b
(* (* (* x sin) sin) x)
0.5b
(/ (cos (* 2 x)) (* (pow cos 2) (* (* (* x sin) sin) x)))
0.2b
(cos (* 2 x))

rewrite33.0ms

Algorithm
rewrite-expression-head
Counts
4 → 64
Calls

4 calls. Slowest were:

13.0ms
(/ (cos (* 2 x)) (* (pow cos 2) (* (* (* x sin) sin) x)))
12.0ms
(* (pow cos 2) (* (* (* x sin) sin) x))
6.0ms
(* (* (* x sin) sin) x)

series105.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

48.0ms
(/ (cos (* 2 x)) (* (pow cos 2) (* (* (* x sin) sin) x)))
32.0ms
(* (pow cos 2) (* (* (* x sin) sin) x))
17.0ms
(* (* (* x sin) sin) x)
7.0ms
(cos (* 2 x))

simplify2.2s

Counts
34 → 76
Calls

34 calls. Slowest were:

293.0ms
(/ (* (cos x) (cos x)) (* (pow cos 2) (* (* (* x sin) sin) x)))
269.0ms
(- (log (cos (* 2 x))) (+ (log (pow cos 2)) (log (* (* (* x sin) sin) x))))
200.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)))))

prune645.0ms

Pruning

15 alts after pruning (15 fresh and 0 done)

Merged error: 6.2b

localize10.0ms

Local error

Found 4 expressions with local error:

6.2b
(* cos (* (* (* x sin) sin) x))
4.6b
(* (* (* x sin) sin) x)
4.3b
(* cos (* cos (* (* (* x sin) sin) x)))
0.5b
(/ (cos (* 2 x)) (* cos (* cos (* (* (* x sin) sin) x))))

rewrite38.0ms

Algorithm
rewrite-expression-head
Counts
4 → 55
Calls

4 calls. Slowest were:

13.0ms
(* cos (* cos (* (* (* x sin) sin) x)))
12.0ms
(/ (cos (* 2 x)) (* cos (* cos (* (* (* x sin) sin) x))))
6.0ms
(* cos (* (* (* x sin) sin) x))

series138.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

55.0ms
(/ (cos (* 2 x)) (* cos (* cos (* (* (* x sin) sin) x))))
34.0ms
(* cos (* (* (* x sin) sin) x))
32.0ms
(* cos (* cos (* (* (* x sin) sin) x)))
17.0ms
(* (* (* x sin) sin) x)

simplify1.6s

Counts
26 → 67
Calls

26 calls. Slowest were:

225.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)))))
176.0ms
(/ (cos (* 2 x)) (* (pow cos 2) (* (pow x 2) (pow sin 2))))
165.0ms
(/ (* (cos x) (cos x)) (* cos (* cos (* (* (* x sin) sin) x))))

prune725.0ms

Pruning

13 alts after pruning (13 fresh and 0 done)

Merged error: 3.3b

localize21.0ms

Local error

Found 4 expressions with local error:

6.2b
(* cos (* (* x sin) (* sin x)))
4.3b
(* cos (* cos (* (* x sin) (* sin x))))
0.5b
(/ (cos (* 2 x)) (* cos (* cos (* (* x sin) (* sin x)))))
0.2b
(cos (* 2 x))

rewrite35.0ms

Algorithm
rewrite-expression-head
Counts
4 → 54
Calls

4 calls. Slowest were:

15.0ms
(* cos (* cos (* (* x sin) (* sin x))))
9.0ms
(/ (cos (* 2 x)) (* cos (* cos (* (* x sin) (* sin x)))))
9.0ms
(* cos (* (* x sin) (* sin x)))

series139.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

50.0ms
(* cos (* (* x sin) (* sin x)))
50.0ms
(/ (cos (* 2 x)) (* cos (* cos (* (* x sin) (* sin x)))))
32.0ms
(* cos (* cos (* (* x sin) (* sin x))))
7.0ms
(cos (* 2 x))

simplify1.6s

Counts
27 → 66
Calls

27 calls. Slowest were:

230.0ms
(/ (* (cos x) (cos x)) (* cos (* cos (* (* x sin) (* sin x)))))
201.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)))))
165.0ms
(/ (* (* (cos (* 2 x)) (cos (* 2 x))) (cos (* 2 x))) (* (* (* cos (* cos (* (* x sin) (* sin x)))) (* cos (* cos (* (* x sin) (* sin x))))) (* cos (* cos (* (* x sin) (* sin x))))))

prune623.0ms

Pruning

13 alts after pruning (13 fresh and 0 done)

Merged error: 2.6b

regimes463.0ms

Accuracy

0% (2.5b remaining)

Error of 5.9b against oracle of 3.5b and baseline of 5.9b

bsearch2.0ms

end0.0ms

sample5.4s

Algorithm
intervals