


Bits error versus x
Initial program 0.3
Initial simplification0.3
rmApplied fma-udef0.3
rmApplied flip3-+0.4
Applied associate-/r/0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2018360 +o rules:numerics
(FPCore (x)
:name "Trigonometry B"
(/ (- 1 (* (tan x) (tan x))) (+ 1 (* (tan x) (tan x)))))
Time bar (total: 12.5s)Debug log
2 alts after pruning (2 fresh and 0 done)
Merged error: 0.3b
Found 4 expressions with local error:
| 0.2b | (* (tan x) (tan x)) |
| 0.2b | (- 1 (* (tan x) (tan x))) |
| 0.1b | (/ (- 1 (* (tan x) (tan x))) (fma (tan x) (tan x) 1)) |
| 0.1b | (fma (tan x) (tan x) 1) |
4 calls. Slowest were:
| 12.0ms | (* (tan x) (tan x)) |
| 10.0ms | (/ (- 1 (* (tan x) (tan x))) (fma (tan x) (tan x) 1)) |
| 3.0ms | (- 1 (* (tan x) (tan x))) |
4 calls. Slowest were:
| 127.0ms | (/ (- 1 (* (tan x) (tan x))) (fma (tan x) (tan x) 1)) |
| 67.0ms | (* (tan x) (tan x)) |
| 61.0ms | (- 1 (* (tan x) (tan x))) |
| 57.0ms | (fma (tan x) (tan x) 1) |
55 calls. Slowest were:
| 241.0ms | (/ (* (* (- 1 (* (tan x) (tan x))) (- 1 (* (tan x) (tan x)))) (- 1 (* (tan x) (tan x)))) (* (* (fma (tan x) (tan x) 1) (fma (tan x) (tan x) 1)) (fma (tan x) (tan x) 1))) |
| 228.0ms | (/ (- 1 (/ (pow (sin x) 2) (pow (cos x) 2))) (+ (/ (pow (sin x) 2) (pow (cos x) 2)) 1)) |
| 194.0ms | (/ (- 1 (/ (pow (sin x) 2) (pow (cos x) 2))) (+ (/ (pow (sin x) 2) (pow (cos x) 2)) 1)) |
12 alts after pruning (12 fresh and 0 done)
Merged error: 0.1b
Found 4 expressions with local error:
| 0.2b | (* (tan x) (tan x)) |
| 0.2b | (* (tan x) (tan x)) |
| 0.2b | (- 1 (* (tan x) (tan x))) |
| 0.1b | (/ (- 1 (* (tan x) (tan x))) (+ (* (tan x) (tan x)) 1)) |
4 calls. Slowest were:
| 16.0ms | (/ (- 1 (* (tan x) (tan x))) (+ (* (tan x) (tan x)) 1)) |
| 10.0ms | (* (tan x) (tan x)) |
| 8.0ms | (* (tan x) (tan x)) |
4 calls. Slowest were:
| 81.0ms | (/ (- 1 (* (tan x) (tan x))) (+ (* (tan x) (tan x)) 1)) |
| 39.0ms | (- 1 (* (tan x) (tan x))) |
| 38.0ms | (* (tan x) (tan x)) |
| 30.0ms | (* (tan x) (tan x)) |
72 calls. Slowest were:
| 523.0ms | (/ (* (* (- 1 (* (tan x) (tan x))) (- 1 (* (tan x) (tan x)))) (- 1 (* (tan x) (tan x)))) (* (* (+ (* (tan x) (tan x)) 1) (+ (* (tan x) (tan x)) 1)) (+ (* (tan x) (tan x)) 1))) |
| 208.0ms | (/ (- 1 (/ (pow (sin x) 2) (pow (cos x) 2))) (+ (/ (pow (sin x) 2) (pow (cos x) 2)) 1)) |
| 171.0ms | (/ (- 1 (/ (pow (sin x) 2) (pow (cos x) 2))) (+ (/ (pow (sin x) 2) (pow (cos x) 2)) 1)) |
12 alts after pruning (12 fresh and 0 done)
Merged error: 0.1b
Found 4 expressions with local error:
| 0.3b | (log1p (/ (- 1 (* (tan x) (tan x))) (+ (* (tan x) (tan x)) 1))) |
| 0.2b | (* (tan x) (tan x)) |
| 0.2b | (* (tan x) (tan x)) |
| 0.2b | (- 1 (* (tan x) (tan x))) |
4 calls. Slowest were:
| 6.0ms | (* (tan x) (tan x)) |
| 4.0ms | (* (tan x) (tan x)) |
| 1.0ms | (- 1 (* (tan x) (tan x))) |
4 calls. Slowest were:
| 192.0ms | (log1p (/ (- 1 (* (tan x) (tan x))) (+ (* (tan x) (tan x)) 1))) |
| 42.0ms | (* (tan x) (tan x)) |
| 35.0ms | (- 1 (* (tan x) (tan x))) |
| 27.0ms | (* (tan x) (tan x)) |
43 calls. Slowest were:
| 186.0ms | (log (- (+ (/ 1 (+ (/ (pow (sin x) 2) (pow (cos x) 2)) 1)) 1) (/ (pow (sin x) 2) (* (pow (cos x) 2) (+ (/ (pow (sin x) 2) (pow (cos x) 2)) 1))))) |
| 181.0ms | (log (- (+ (/ 1 (+ (/ (pow (sin x) 2) (pow (cos x) 2)) 1)) 1) (/ (pow (sin x) 2) (* (pow (cos x) 2) (+ (/ (pow (sin x) 2) (pow (cos x) 2)) 1))))) |
| 98.0ms | (- 1 (+ (pow x 2) (* 2/3 (pow x 4)))) |
12 alts after pruning (12 fresh and 0 done)
Merged error: 0.1b
Found 4 expressions with local error:
| 0.4b | (pow (* (tan x) (tan x)) 3) |
| 0.3b | (fma (tan x) (tan x) -1) |
| 0.2b | (* (tan x) (tan x)) |
| 0.2b | (* (tan x) (tan x)) |
4 calls. Slowest were:
| 8.0ms | (* (tan x) (tan x)) |
| 4.0ms | (* (tan x) (tan x)) |
| 3.0ms | (pow (* (tan x) (tan x)) 3) |
4 calls. Slowest were:
| 53.0ms | (fma (tan x) (tan x) -1) |
| 48.0ms | (pow (* (tan x) (tan x)) 3) |
| 36.0ms | (* (tan x) (tan x)) |
| 27.0ms | (* (tan x) (tan x)) |
56 calls. Slowest were:
| 56.0ms | (- (/ (pow (sin x) 2) (pow (cos x) 2)) 1) |
| 54.0ms | (pow (* (sin x) (tan x)) 3) |
| 51.0ms | (- (+ (pow x 2) (* 2/3 (pow x 4))) 1) |
13 alts after pruning (12 fresh and 1 done)
Merged error: 0.0b
0% (0.3b remaining)
Error of 0.4b against oracle of 0.1b and baseline of 0.4b