
Time bar (total: 7.0s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 50.6% | 49.4% | 0% | 0% | 0% | 0 |
| 0% | 0% | 50.6% | 49.4% | 0% | 0% | 0% | 1 |
| 0% | 0% | 50.6% | 49.4% | 0% | 0% | 0% | 2 |
| 0% | 0% | 25.3% | 49.4% | 0% | 25.3% | 0% | 3 |
| 0% | 0% | 25.3% | 49.4% | 0% | 25.3% | 0% | 4 |
| 0% | 0% | 19% | 49.4% | 0% | 31.6% | 0% | 5 |
| 0% | 0% | 15.8% | 49.4% | 0% | 34.8% | 0% | 6 |
| 0% | 0% | 11.1% | 49.4% | 0% | 39.5% | 0% | 7 |
| 0% | 0% | 8.7% | 49.4% | 0% | 41.9% | 0% | 8 |
| 0% | 0% | 5.9% | 49.4% | 0% | 44.6% | 0% | 9 |
| 0% | 0% | 4.5% | 49.4% | 0% | 46% | 0% | 10 |
| 0% | 0% | 3.1% | 49.4% | 0% | 47.5% | 0% | 11 |
| 0% | 0% | 2.7% | 49.4% | 0% | 47.9% | 0% | 12 |
Compiled 27 to 19 computations (29.6% saved)
| 3.1s | 25 060× | 0 | invalid |
| 617.0ms | 5 363× | 0 | valid |
| 428.0ms | 2 641× | 1 | valid |
ival-tan: 798.0ms (25.3% of total)const: 649.0ms (20.6% of total)ival-<=: 406.0ms (12.9% of total)ival-mult: 237.0ms (7.5% of total)ival-fabs: 235.0ms (7.5% of total)ival-add: 226.0ms (7.2% of total)ival-<: 193.0ms (6.1% of total)ival-sub: 169.0ms (5.4% of total)ival-and: 102.0ms (3.2% of total)adjust: 74.0ms (2.3% of total)exact: 45.0ms (1.4% of total)ival-assert: 15.0ms (0.5% of total)| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 4 | 0 | - | 0 | - | (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) |
| 0 | 0 | - | 0 | - | eps |
| 0 | 0 | - | 0 | - | (+.f64 x eps) |
| 0 | 0 | - | 0 | - | (tan.f64 x) |
| 0 | 0 | - | 0 | - | (tan.f64 (+.f64 x eps)) |
| 0 | 0 | - | 0 | - | x |
| Operator | Subexpression | Explanation | Count | |
|---|---|---|---|---|
-.f64 | (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) | cancellation | 4 | 0 |
| Predicted + | Predicted - | |
|---|---|---|
| + | 4 | 0 |
| - | 0 | 0 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 4 | 0 | 0 |
| - | 0 | 0 | 0 |
| number | freq |
|---|---|
| 1 | 4 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 1 | 0 | 0 |
| - | 0 | 0 | 0 |
| 0.0ms | 4× | 1 | valid |
| 0.0ms | 4× | 0 | valid |
Compiled 65 to 28 computations (56.9% saved)
adjust: 0.0ms (0% of total)ival-sub: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)ival-add: 0.0ms (0% of total)ival-tan: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 18 | 39 |
| 1 | 38 | 35 |
| 2 | 86 | 35 |
| 3 | 169 | 35 |
| 4 | 310 | 35 |
| 5 | 367 | 35 |
| 6 | 445 | 35 |
| 7 | 482 | 35 |
| 8 | 491 | 35 |
| 0 | 6 | 7 |
| 0 | 10 | 7 |
| 1 | 13 | 7 |
| 2 | 18 | 7 |
| 3 | 24 | 7 |
| 4 | 32 | 7 |
| 5 | 47 | 7 |
| 6 | 80 | 7 |
| 7 | 107 | 7 |
| 8 | 151 | 7 |
| 9 | 166 | 7 |
| 10 | 174 | 7 |
| 0 | 174 | 7 |
| 1× | iter limit |
| 1× | saturated |
| 1× | iter limit |
| 1× | saturated |
| Inputs |
|---|
(-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) |
| Outputs |
|---|
(-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) |
(-.f64 (tan.f64 (+.f64 eps x)) (tan.f64 x)) |
Compiled 7 to 6 computations (14.3% saved)
Compiled 0 to 2 computations (-∞% saved)
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 51.1% | (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) |
Compiled 7 to 6 computations (14.3% saved)
| 1× | egg-herbie |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (tan.f64 x) | |
| cost-diff | 0 | (+.f64 x eps) | |
| cost-diff | 0 | (tan.f64 (+.f64 x eps)) | |
| cost-diff | 0 | (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 6 | 18 |
| 0 | 10 | 18 |
| 1 | 13 | 18 |
| 2 | 18 | 18 |
| 3 | 24 | 18 |
| 4 | 32 | 18 |
| 5 | 47 | 18 |
| 6 | 80 | 18 |
| 7 | 107 | 18 |
| 8 | 151 | 18 |
| 9 | 166 | 18 |
| 10 | 174 | 18 |
| 0 | 174 | 18 |
| 1× | iter limit |
| 1× | saturated |
| 1× | iter limit |
| Inputs |
|---|
(-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) |
(tan.f64 (+.f64 x eps)) |
(+.f64 x eps) |
x |
eps |
(tan.f64 x) |
| Outputs |
|---|
(-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) |
(-.f64 (tan.f64 (+.f64 eps x)) (tan.f64 x)) |
(tan.f64 (+.f64 x eps)) |
(tan.f64 (+.f64 eps x)) |
(+.f64 x eps) |
(+.f64 eps x) |
x |
eps |
(tan.f64 x) |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0 | (+.f64 x eps) | |
| accuracy | 0 | (tan.f64 (+.f64 x eps)) | |
| accuracy | 0 | (tan.f64 x) | |
| accuracy | 31.295887050615214 | (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) |
| 0.0ms | 2× | 1 | valid |
| 0.0ms | 2× | 0 | valid |
Compiled 38 to 14 computations (63.2% saved)
adjust: 0.0ms (0% of total)ival-sub: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)ival-add: 0.0ms (0% of total)ival-tan: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| Inputs |
|---|
#s(alt (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) (patch (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) #<representation binary64>) () ()) |
#s(alt (tan.f64 (+.f64 x eps)) (patch (tan.f64 (+.f64 x eps)) #<representation binary64>) () ()) |
#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ()) |
#s(alt (tan.f64 x) (patch (tan.f64 x) #<representation binary64>) () ()) |
| Outputs |
|---|
#s(alt (* eps (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (taylor 0 eps) (#s(alt (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) (patch (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) #<representation binary64>) () ())) ()) |
#s(alt (* eps (- (+ 1 (/ (* eps (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2)))))) (cos x))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (taylor 0 eps) (#s(alt (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) (patch (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) #<representation binary64>) () ())) ()) |
#s(alt (* eps (- (+ 1 (* eps (- (* -1 (* eps (+ 1/6 (+ (* -1 (/ (* (pow (sin x) 2) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (pow (cos x) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (* 1/6 (/ (pow (sin x) 2) (pow (cos x) 2)))))))) (* -1 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x)))))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (taylor 0 eps) (#s(alt (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) (patch (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) #<representation binary64>) () ())) ()) |
#s(alt (* eps (- (+ 1 (* eps (- (* eps (- (* -1 (* eps (+ (* -1/2 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x))) (+ (* 1/6 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x))) (/ (* (sin x) (+ 1/6 (+ (* -1 (/ (* (pow (sin x) 2) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (pow (cos x) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (* 1/6 (/ (pow (sin x) 2) (pow (cos x) 2))))))) (cos x)))))) (+ 1/6 (+ (* -1 (/ (* (pow (sin x) 2) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (pow (cos x) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (* 1/6 (/ (pow (sin x) 2) (pow (cos x) 2)))))))) (* -1 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x)))))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (taylor 0 eps) (#s(alt (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) (patch (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin x) (cos x)) (taylor 0 eps) (#s(alt (tan.f64 (+.f64 x eps)) (patch (tan.f64 (+.f64 x eps)) #<representation binary64>) () ())) ()) |
#s(alt (+ (* eps (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (/ (sin x) (cos x))) (taylor 0 eps) (#s(alt (tan.f64 (+.f64 x eps)) (patch (tan.f64 (+.f64 x eps)) #<representation binary64>) () ())) ()) |
#s(alt (+ (* eps (- (+ 1 (/ (* eps (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2)))))) (cos x))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (/ (sin x) (cos x))) (taylor 0 eps) (#s(alt (tan.f64 (+.f64 x eps)) (patch (tan.f64 (+.f64 x eps)) #<representation binary64>) () ())) ()) |
#s(alt (+ (* eps (- (+ 1 (* eps (- (* -1 (* eps (+ 1/6 (+ (* -1 (/ (* (pow (sin x) 2) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (pow (cos x) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (* 1/6 (/ (pow (sin x) 2) (pow (cos x) 2)))))))) (* -1 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x)))))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (/ (sin x) (cos x))) (taylor 0 eps) (#s(alt (tan.f64 (+.f64 x eps)) (patch (tan.f64 (+.f64 x eps)) #<representation binary64>) () ())) ()) |
#s(alt x (taylor 0 eps) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ()) |
#s(alt (+ eps x) (taylor 0 eps) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ()) |
#s(alt (+ eps x) (taylor 0 eps) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ()) |
#s(alt (+ eps x) (taylor 0 eps) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) (taylor inf eps) (#s(alt (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) (patch (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) (taylor inf eps) (#s(alt (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) (patch (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) (taylor inf eps) (#s(alt (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) (patch (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) (taylor inf eps) (#s(alt (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) (patch (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin (+ eps x)) (cos (+ eps x))) (taylor inf eps) (#s(alt (tan.f64 (+.f64 x eps)) (patch (tan.f64 (+.f64 x eps)) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin (+ eps x)) (cos (+ eps x))) (taylor inf eps) (#s(alt (tan.f64 (+.f64 x eps)) (patch (tan.f64 (+.f64 x eps)) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin (+ eps x)) (cos (+ eps x))) (taylor inf eps) (#s(alt (tan.f64 (+.f64 x eps)) (patch (tan.f64 (+.f64 x eps)) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin (+ eps x)) (cos (+ eps x))) (taylor inf eps) (#s(alt (tan.f64 (+.f64 x eps)) (patch (tan.f64 (+.f64 x eps)) #<representation binary64>) () ())) ()) |
#s(alt eps (taylor inf eps) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ()) |
#s(alt (* eps (+ 1 (/ x eps))) (taylor inf eps) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ()) |
#s(alt (* eps (+ 1 (/ x eps))) (taylor inf eps) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ()) |
#s(alt (* eps (+ 1 (/ x eps))) (taylor inf eps) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) (taylor -inf eps) (#s(alt (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) (patch (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) (taylor -inf eps) (#s(alt (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) (patch (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) (taylor -inf eps) (#s(alt (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) (patch (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) (taylor -inf eps) (#s(alt (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) (patch (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (taylor -inf eps) (#s(alt (tan.f64 (+.f64 x eps)) (patch (tan.f64 (+.f64 x eps)) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (taylor -inf eps) (#s(alt (tan.f64 (+.f64 x eps)) (patch (tan.f64 (+.f64 x eps)) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (taylor -inf eps) (#s(alt (tan.f64 (+.f64 x eps)) (patch (tan.f64 (+.f64 x eps)) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (taylor -inf eps) (#s(alt (tan.f64 (+.f64 x eps)) (patch (tan.f64 (+.f64 x eps)) #<representation binary64>) () ())) ()) |
#s(alt eps (taylor -inf eps) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* eps (- (* -1 (/ x eps)) 1))) (taylor -inf eps) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* eps (- (* -1 (/ x eps)) 1))) (taylor -inf eps) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* eps (- (* -1 (/ x eps)) 1))) (taylor -inf eps) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin eps) (cos eps)) (taylor 0 x) (#s(alt (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) (patch (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) #<representation binary64>) () ())) ()) |
#s(alt (+ (/ (sin eps) (cos eps)) (/ (* x (pow (sin eps) 2)) (pow (cos eps) 2))) (taylor 0 x) (#s(alt (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) (patch (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) #<representation binary64>) () ())) ()) |
#s(alt (+ (* x (- (/ (* x (* (sin eps) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2)))))) (cos eps)) (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (/ (sin eps) (cos eps))) (taylor 0 x) (#s(alt (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) (patch (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) #<representation binary64>) () ())) ()) |
#s(alt (+ (* x (- (* x (- (* -1 (* x (+ 1/2 (+ (* -1 (/ (* (pow (sin eps) 2) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (pow (cos eps) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (* 1/6 (/ (pow (sin eps) 2) (pow (cos eps) 2)))))))) (* -1 (/ (* (sin eps) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (cos eps))))) (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (/ (sin eps) (cos eps))) (taylor 0 x) (#s(alt (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) (patch (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin eps) (cos eps)) (taylor 0 x) (#s(alt (tan.f64 (+.f64 x eps)) (patch (tan.f64 (+.f64 x eps)) #<representation binary64>) () ())) ()) |
#s(alt (+ (* x (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (/ (sin eps) (cos eps))) (taylor 0 x) (#s(alt (tan.f64 (+.f64 x eps)) (patch (tan.f64 (+.f64 x eps)) #<representation binary64>) () ())) ()) |
#s(alt (+ (* x (- (+ 1 (/ (* x (* (sin eps) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2)))))) (cos eps))) (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (/ (sin eps) (cos eps))) (taylor 0 x) (#s(alt (tan.f64 (+.f64 x eps)) (patch (tan.f64 (+.f64 x eps)) #<representation binary64>) () ())) ()) |
#s(alt (+ (* x (- (+ 1 (* x (- (* -1 (* x (+ 1/6 (+ (* -1 (/ (* (pow (sin eps) 2) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (pow (cos eps) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (* 1/6 (/ (pow (sin eps) 2) (pow (cos eps) 2)))))))) (* -1 (/ (* (sin eps) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (cos eps)))))) (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (/ (sin eps) (cos eps))) (taylor 0 x) (#s(alt (tan.f64 (+.f64 x eps)) (patch (tan.f64 (+.f64 x eps)) #<representation binary64>) () ())) ()) |
#s(alt eps (taylor 0 x) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ()) |
#s(alt (+ eps x) (taylor 0 x) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ()) |
#s(alt (+ eps x) (taylor 0 x) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ()) |
#s(alt (+ eps x) (taylor 0 x) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ()) |
#s(alt x (taylor 0 x) (#s(alt (tan.f64 x) (patch (tan.f64 x) #<representation binary64>) () ())) ()) |
#s(alt (* x (+ 1 (* 1/3 (pow x 2)))) (taylor 0 x) (#s(alt (tan.f64 x) (patch (tan.f64 x) #<representation binary64>) () ())) ()) |
#s(alt (* x (+ 1 (* (pow x 2) (+ 1/3 (* 2/15 (pow x 2)))))) (taylor 0 x) (#s(alt (tan.f64 x) (patch (tan.f64 x) #<representation binary64>) () ())) ()) |
#s(alt (* x (+ 1 (* (pow x 2) (+ 1/3 (* (pow x 2) (+ 2/15 (* 17/315 (pow x 2)))))))) (taylor 0 x) (#s(alt (tan.f64 x) (patch (tan.f64 x) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) (taylor inf x) (#s(alt (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) (patch (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) (taylor inf x) (#s(alt (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) (patch (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) (taylor inf x) (#s(alt (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) (patch (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) (taylor inf x) (#s(alt (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) (patch (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin (+ eps x)) (cos (+ eps x))) (taylor inf x) (#s(alt (tan.f64 (+.f64 x eps)) (patch (tan.f64 (+.f64 x eps)) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin (+ eps x)) (cos (+ eps x))) (taylor inf x) (#s(alt (tan.f64 (+.f64 x eps)) (patch (tan.f64 (+.f64 x eps)) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin (+ eps x)) (cos (+ eps x))) (taylor inf x) (#s(alt (tan.f64 (+.f64 x eps)) (patch (tan.f64 (+.f64 x eps)) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin (+ eps x)) (cos (+ eps x))) (taylor inf x) (#s(alt (tan.f64 (+.f64 x eps)) (patch (tan.f64 (+.f64 x eps)) #<representation binary64>) () ())) ()) |
#s(alt x (taylor inf x) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ()) |
#s(alt (* x (+ 1 (/ eps x))) (taylor inf x) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ()) |
#s(alt (* x (+ 1 (/ eps x))) (taylor inf x) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ()) |
#s(alt (* x (+ 1 (/ eps x))) (taylor inf x) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin x) (cos x)) (taylor inf x) (#s(alt (tan.f64 x) (patch (tan.f64 x) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin x) (cos x)) (taylor inf x) (#s(alt (tan.f64 x) (patch (tan.f64 x) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin x) (cos x)) (taylor inf x) (#s(alt (tan.f64 x) (patch (tan.f64 x) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin x) (cos x)) (taylor inf x) (#s(alt (tan.f64 x) (patch (tan.f64 x) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) (taylor -inf x) (#s(alt (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) (patch (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) (taylor -inf x) (#s(alt (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) (patch (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) (taylor -inf x) (#s(alt (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) (patch (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) (taylor -inf x) (#s(alt (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) (patch (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (taylor -inf x) (#s(alt (tan.f64 (+.f64 x eps)) (patch (tan.f64 (+.f64 x eps)) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (taylor -inf x) (#s(alt (tan.f64 (+.f64 x eps)) (patch (tan.f64 (+.f64 x eps)) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (taylor -inf x) (#s(alt (tan.f64 (+.f64 x eps)) (patch (tan.f64 (+.f64 x eps)) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (taylor -inf x) (#s(alt (tan.f64 (+.f64 x eps)) (patch (tan.f64 (+.f64 x eps)) #<representation binary64>) () ())) ()) |
#s(alt x (taylor -inf x) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* x (- (* -1 (/ eps x)) 1))) (taylor -inf x) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* x (- (* -1 (/ eps x)) 1))) (taylor -inf x) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ()) |
#s(alt (* -1 (* x (- (* -1 (/ eps x)) 1))) (taylor -inf x) (#s(alt (+.f64 x eps) (patch (+.f64 x eps) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin x) (cos x)) (taylor -inf x) (#s(alt (tan.f64 x) (patch (tan.f64 x) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin x) (cos x)) (taylor -inf x) (#s(alt (tan.f64 x) (patch (tan.f64 x) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin x) (cos x)) (taylor -inf x) (#s(alt (tan.f64 x) (patch (tan.f64 x) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin x) (cos x)) (taylor -inf x) (#s(alt (tan.f64 x) (patch (tan.f64 x) #<representation binary64>) () ())) ()) |
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 6.0ms | eps | @ | 0 | ((- (tan (+ x eps)) (tan x)) (tan (+ x eps)) (+ x eps) (tan x)) |
| 2.0ms | x | @ | 0 | ((- (tan (+ x eps)) (tan x)) (tan (+ x eps)) (+ x eps) (tan x)) |
| 2.0ms | eps | @ | inf | ((- (tan (+ x eps)) (tan x)) (tan (+ x eps)) (+ x eps) (tan x)) |
| 1.0ms | eps | @ | -inf | ((- (tan (+ x eps)) (tan x)) (tan (+ x eps)) (+ x eps) (tan x)) |
| 1.0ms | x | @ | -inf | ((- (tan (+ x eps)) (tan x)) (tan (+ x eps)) (+ x eps) (tan x)) |
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 157 | 1351 |
| 1 | 464 | 1285 |
| 2 | 1534 | 1274 |
| 3 | 5964 | 1242 |
| 0 | 8538 | 1195 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(* eps (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) |
(* eps (- (+ 1 (/ (* eps (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2)))))) (cos x))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) |
(* eps (- (+ 1 (* eps (- (* -1 (* eps (+ 1/6 (+ (* -1 (/ (* (pow (sin x) 2) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (pow (cos x) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (* 1/6 (/ (pow (sin x) 2) (pow (cos x) 2)))))))) (* -1 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x)))))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) |
(* eps (- (+ 1 (* eps (- (* eps (- (* -1 (* eps (+ (* -1/2 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x))) (+ (* 1/6 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x))) (/ (* (sin x) (+ 1/6 (+ (* -1 (/ (* (pow (sin x) 2) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (pow (cos x) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (* 1/6 (/ (pow (sin x) 2) (pow (cos x) 2))))))) (cos x)))))) (+ 1/6 (+ (* -1 (/ (* (pow (sin x) 2) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (pow (cos x) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (* 1/6 (/ (pow (sin x) 2) (pow (cos x) 2)))))))) (* -1 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x)))))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) |
(/ (sin x) (cos x)) |
(+ (* eps (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (/ (sin x) (cos x))) |
(+ (* eps (- (+ 1 (/ (* eps (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2)))))) (cos x))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (/ (sin x) (cos x))) |
(+ (* eps (- (+ 1 (* eps (- (* -1 (* eps (+ 1/6 (+ (* -1 (/ (* (pow (sin x) 2) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (pow (cos x) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (* 1/6 (/ (pow (sin x) 2) (pow (cos x) 2)))))))) (* -1 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x)))))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (/ (sin x) (cos x))) |
x |
(+ eps x) |
(+ eps x) |
(+ eps x) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(/ (sin (+ eps x)) (cos (+ eps x))) |
(/ (sin (+ eps x)) (cos (+ eps x))) |
(/ (sin (+ eps x)) (cos (+ eps x))) |
(/ (sin (+ eps x)) (cos (+ eps x))) |
eps |
(* eps (+ 1 (/ x eps))) |
(* eps (+ 1 (/ x eps))) |
(* eps (+ 1 (/ x eps))) |
(- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) |
(- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) |
(- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) |
(- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) |
(/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) |
(/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) |
(/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) |
(/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) |
eps |
(* -1 (* eps (- (* -1 (/ x eps)) 1))) |
(* -1 (* eps (- (* -1 (/ x eps)) 1))) |
(* -1 (* eps (- (* -1 (/ x eps)) 1))) |
(/ (sin eps) (cos eps)) |
(+ (/ (sin eps) (cos eps)) (/ (* x (pow (sin eps) 2)) (pow (cos eps) 2))) |
(+ (* x (- (/ (* x (* (sin eps) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2)))))) (cos eps)) (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (/ (sin eps) (cos eps))) |
(+ (* x (- (* x (- (* -1 (* x (+ 1/2 (+ (* -1 (/ (* (pow (sin eps) 2) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (pow (cos eps) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (* 1/6 (/ (pow (sin eps) 2) (pow (cos eps) 2)))))))) (* -1 (/ (* (sin eps) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (cos eps))))) (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (/ (sin eps) (cos eps))) |
(/ (sin eps) (cos eps)) |
(+ (* x (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (/ (sin eps) (cos eps))) |
(+ (* x (- (+ 1 (/ (* x (* (sin eps) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2)))))) (cos eps))) (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (/ (sin eps) (cos eps))) |
(+ (* x (- (+ 1 (* x (- (* -1 (* x (+ 1/6 (+ (* -1 (/ (* (pow (sin eps) 2) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (pow (cos eps) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (* 1/6 (/ (pow (sin eps) 2) (pow (cos eps) 2)))))))) (* -1 (/ (* (sin eps) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (cos eps)))))) (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (/ (sin eps) (cos eps))) |
eps |
(+ eps x) |
(+ eps x) |
(+ eps x) |
x |
(* x (+ 1 (* 1/3 (pow x 2)))) |
(* x (+ 1 (* (pow x 2) (+ 1/3 (* 2/15 (pow x 2)))))) |
(* x (+ 1 (* (pow x 2) (+ 1/3 (* (pow x 2) (+ 2/15 (* 17/315 (pow x 2)))))))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(/ (sin (+ eps x)) (cos (+ eps x))) |
(/ (sin (+ eps x)) (cos (+ eps x))) |
(/ (sin (+ eps x)) (cos (+ eps x))) |
(/ (sin (+ eps x)) (cos (+ eps x))) |
x |
(* x (+ 1 (/ eps x))) |
(* x (+ 1 (/ eps x))) |
(* x (+ 1 (/ eps x))) |
(/ (sin x) (cos x)) |
(/ (sin x) (cos x)) |
(/ (sin x) (cos x)) |
(/ (sin x) (cos x)) |
(- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) |
(- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) |
(- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) |
(- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) |
(/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) |
(/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) |
(/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) |
(/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) |
x |
(* -1 (* x (- (* -1 (/ eps x)) 1))) |
(* -1 (* x (- (* -1 (/ eps x)) 1))) |
(* -1 (* x (- (* -1 (/ eps x)) 1))) |
(/ (sin x) (cos x)) |
(/ (sin x) (cos x)) |
(/ (sin x) (cos x)) |
(/ (sin x) (cos x)) |
| Outputs |
|---|
(* eps (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) |
(fma.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) eps eps) |
(* eps (- (+ 1 (/ (* eps (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2)))))) (cos x))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) |
(fma.f64 (fma.f64 (/.f64 eps (cos.f64 x)) (+.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 3 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) (sin.f64 x)) (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64)))) eps eps) |
(* eps (- (+ 1 (* eps (- (* -1 (* eps (+ 1/6 (+ (* -1 (/ (* (pow (sin x) 2) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (pow (cos x) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (* 1/6 (/ (pow (sin x) 2) (pow (cos x) 2)))))))) (* -1 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x)))))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) |
(fma.f64 (fma.f64 (fma.f64 (-.f64 #s(literal -1/6 binary64) (-.f64 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) #s(literal 1/6 binary64) (fma.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) #s(literal -1/2 binary64) #s(literal -1/2 binary64))) (/.f64 (fma.f64 (sin.f64 x) (sin.f64 x) (/.f64 (pow.f64 (sin.f64 x) #s(literal 4 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64)))) (pow.f64 (cos.f64 x) #s(literal 2 binary64))))) eps (/.f64 (+.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 3 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) (sin.f64 x)) (cos.f64 x))) eps (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64)))) eps eps) |
(* eps (- (+ 1 (* eps (- (* eps (- (* -1 (* eps (+ (* -1/2 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x))) (+ (* 1/6 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x))) (/ (* (sin x) (+ 1/6 (+ (* -1 (/ (* (pow (sin x) 2) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (pow (cos x) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (* 1/6 (/ (pow (sin x) 2) (pow (cos x) 2))))))) (cos x)))))) (+ 1/6 (+ (* -1 (/ (* (pow (sin x) 2) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (pow (cos x) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (* 1/6 (/ (pow (sin x) 2) (pow (cos x) 2)))))))) (* -1 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x)))))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) |
(fma.f64 (fma.f64 (fma.f64 (fma.f64 (fma.f64 (-.f64 #s(literal -1/6 binary64) (-.f64 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) #s(literal 1/6 binary64) (fma.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) #s(literal -1/2 binary64) #s(literal -1/2 binary64))) (/.f64 (fma.f64 (sin.f64 x) (sin.f64 x) (/.f64 (pow.f64 (sin.f64 x) #s(literal 4 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64)))) (pow.f64 (cos.f64 x) #s(literal 2 binary64))))) (/.f64 (sin.f64 x) (cos.f64 x)) (*.f64 #s(literal 1/3 binary64) (/.f64 (+.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 3 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) (sin.f64 x)) (cos.f64 x)))) eps (-.f64 #s(literal -1/6 binary64) (-.f64 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) #s(literal 1/6 binary64) (fma.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) #s(literal -1/2 binary64) #s(literal -1/2 binary64))) (/.f64 (fma.f64 (sin.f64 x) (sin.f64 x) (/.f64 (pow.f64 (sin.f64 x) #s(literal 4 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64)))) (pow.f64 (cos.f64 x) #s(literal 2 binary64)))))) eps (/.f64 (+.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 3 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) (sin.f64 x)) (cos.f64 x))) eps (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64)))) eps eps) |
(/ (sin x) (cos x)) |
(/.f64 (sin.f64 x) (cos.f64 x)) |
(+ (* eps (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (/ (sin x) (cos x))) |
(fma.f64 (fma.f64 (/.f64 (sin.f64 x) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) (sin.f64 x) #s(literal 1 binary64)) eps (/.f64 (sin.f64 x) (cos.f64 x))) |
(+ (* eps (- (+ 1 (/ (* eps (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2)))))) (cos x))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (/ (sin x) (cos x))) |
(fma.f64 (fma.f64 (/.f64 (sin.f64 x) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) (sin.f64 x) (fma.f64 (/.f64 eps (cos.f64 x)) (+.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 3 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) (sin.f64 x)) #s(literal 1 binary64))) eps (/.f64 (sin.f64 x) (cos.f64 x))) |
(+ (* eps (- (+ 1 (* eps (- (* -1 (* eps (+ 1/6 (+ (* -1 (/ (* (pow (sin x) 2) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (pow (cos x) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (* 1/6 (/ (pow (sin x) 2) (pow (cos x) 2)))))))) (* -1 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x)))))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (/ (sin x) (cos x))) |
(fma.f64 (fma.f64 (/.f64 (sin.f64 x) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) (sin.f64 x) (fma.f64 (fma.f64 (-.f64 #s(literal -1/6 binary64) (-.f64 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) #s(literal 1/6 binary64) (fma.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) #s(literal -1/2 binary64) #s(literal -1/2 binary64))) (/.f64 (fma.f64 (sin.f64 x) (sin.f64 x) (/.f64 (pow.f64 (sin.f64 x) #s(literal 4 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64)))) (pow.f64 (cos.f64 x) #s(literal 2 binary64))))) eps (/.f64 (+.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 3 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) (sin.f64 x)) (cos.f64 x))) eps #s(literal 1 binary64))) eps (/.f64 (sin.f64 x) (cos.f64 x))) |
x |
(+ eps x) |
(+.f64 x eps) |
(+ eps x) |
(+.f64 x eps) |
(+ eps x) |
(+.f64 x eps) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(/ (sin (+ eps x)) (cos (+ eps x))) |
(/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) |
(/ (sin (+ eps x)) (cos (+ eps x))) |
(/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) |
(/ (sin (+ eps x)) (cos (+ eps x))) |
(/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) |
(/ (sin (+ eps x)) (cos (+ eps x))) |
(/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) |
eps |
(* eps (+ 1 (/ x eps))) |
(+.f64 x eps) |
(* eps (+ 1 (/ x eps))) |
(+.f64 x eps) |
(* eps (+ 1 (/ x eps))) |
(+.f64 x eps) |
(- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) |
(/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) |
(/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) |
(/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) |
(/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) |
(/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) |
(/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) |
(/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) |
eps |
(* -1 (* eps (- (* -1 (/ x eps)) 1))) |
(+.f64 x eps) |
(* -1 (* eps (- (* -1 (/ x eps)) 1))) |
(+.f64 x eps) |
(* -1 (* eps (- (* -1 (/ x eps)) 1))) |
(+.f64 x eps) |
(/ (sin eps) (cos eps)) |
(/.f64 (sin.f64 eps) (cos.f64 eps)) |
(+ (/ (sin eps) (cos eps)) (/ (* x (pow (sin eps) 2)) (pow (cos eps) 2))) |
(fma.f64 (/.f64 x (pow.f64 (cos.f64 eps) #s(literal 2 binary64))) (pow.f64 (sin.f64 eps) #s(literal 2 binary64)) (/.f64 (sin.f64 eps) (cos.f64 eps))) |
(+ (* x (- (/ (* x (* (sin eps) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2)))))) (cos eps)) (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (/ (sin eps) (cos eps))) |
(fma.f64 (fma.f64 (/.f64 x (cos.f64 eps)) (+.f64 (/.f64 (pow.f64 (sin.f64 eps) #s(literal 3 binary64)) (pow.f64 (cos.f64 eps) #s(literal 2 binary64))) (sin.f64 eps)) (/.f64 (pow.f64 (sin.f64 eps) #s(literal 2 binary64)) (pow.f64 (cos.f64 eps) #s(literal 2 binary64)))) x (/.f64 (sin.f64 eps) (cos.f64 eps))) |
(+ (* x (- (* x (- (* -1 (* x (+ 1/2 (+ (* -1 (/ (* (pow (sin eps) 2) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (pow (cos eps) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (* 1/6 (/ (pow (sin eps) 2) (pow (cos eps) 2)))))))) (* -1 (/ (* (sin eps) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (cos eps))))) (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (/ (sin eps) (cos eps))) |
(fma.f64 (fma.f64 (fma.f64 (-.f64 (/.f64 (fma.f64 (sin.f64 eps) (sin.f64 eps) (/.f64 (pow.f64 (sin.f64 eps) #s(literal 4 binary64)) (pow.f64 (cos.f64 eps) #s(literal 2 binary64)))) (pow.f64 (cos.f64 eps) #s(literal 2 binary64))) (fma.f64 (fma.f64 (/.f64 (sin.f64 eps) (pow.f64 (cos.f64 eps) #s(literal 2 binary64))) (sin.f64 eps) #s(literal 1 binary64)) #s(literal -1/2 binary64) (fma.f64 (pow.f64 (sin.f64 eps) #s(literal 2 binary64)) (/.f64 #s(literal 1/6 binary64) (pow.f64 (cos.f64 eps) #s(literal 2 binary64))) #s(literal 1/2 binary64)))) x (/.f64 (+.f64 (/.f64 (pow.f64 (sin.f64 eps) #s(literal 3 binary64)) (pow.f64 (cos.f64 eps) #s(literal 2 binary64))) (sin.f64 eps)) (cos.f64 eps))) x (/.f64 (pow.f64 (sin.f64 eps) #s(literal 2 binary64)) (pow.f64 (cos.f64 eps) #s(literal 2 binary64)))) x (/.f64 (sin.f64 eps) (cos.f64 eps))) |
(/ (sin eps) (cos eps)) |
(/.f64 (sin.f64 eps) (cos.f64 eps)) |
(+ (* x (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (/ (sin eps) (cos eps))) |
(fma.f64 (fma.f64 (/.f64 (sin.f64 eps) (pow.f64 (cos.f64 eps) #s(literal 2 binary64))) (sin.f64 eps) #s(literal 1 binary64)) x (/.f64 (sin.f64 eps) (cos.f64 eps))) |
(+ (* x (- (+ 1 (/ (* x (* (sin eps) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2)))))) (cos eps))) (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (/ (sin eps) (cos eps))) |
(fma.f64 (fma.f64 (/.f64 (sin.f64 eps) (pow.f64 (cos.f64 eps) #s(literal 2 binary64))) (sin.f64 eps) (fma.f64 (/.f64 x (cos.f64 eps)) (+.f64 (/.f64 (pow.f64 (sin.f64 eps) #s(literal 3 binary64)) (pow.f64 (cos.f64 eps) #s(literal 2 binary64))) (sin.f64 eps)) #s(literal 1 binary64))) x (/.f64 (sin.f64 eps) (cos.f64 eps))) |
(+ (* x (- (+ 1 (* x (- (* -1 (* x (+ 1/6 (+ (* -1 (/ (* (pow (sin eps) 2) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (pow (cos eps) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (* 1/6 (/ (pow (sin eps) 2) (pow (cos eps) 2)))))))) (* -1 (/ (* (sin eps) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (cos eps)))))) (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (/ (sin eps) (cos eps))) |
(fma.f64 (fma.f64 (fma.f64 (-.f64 (/.f64 (fma.f64 (sin.f64 eps) (sin.f64 eps) (/.f64 (pow.f64 (sin.f64 eps) #s(literal 4 binary64)) (pow.f64 (cos.f64 eps) #s(literal 2 binary64)))) (pow.f64 (cos.f64 eps) #s(literal 2 binary64))) (fma.f64 (fma.f64 (/.f64 (sin.f64 eps) (pow.f64 (cos.f64 eps) #s(literal 2 binary64))) (sin.f64 eps) #s(literal 1 binary64)) #s(literal -1/2 binary64) (fma.f64 (pow.f64 (sin.f64 eps) #s(literal 2 binary64)) (/.f64 #s(literal 1/6 binary64) (pow.f64 (cos.f64 eps) #s(literal 2 binary64))) #s(literal 1/6 binary64)))) x (/.f64 (+.f64 (/.f64 (pow.f64 (sin.f64 eps) #s(literal 3 binary64)) (pow.f64 (cos.f64 eps) #s(literal 2 binary64))) (sin.f64 eps)) (cos.f64 eps))) x (fma.f64 (/.f64 (sin.f64 eps) (pow.f64 (cos.f64 eps) #s(literal 2 binary64))) (sin.f64 eps) #s(literal 1 binary64))) x (/.f64 (sin.f64 eps) (cos.f64 eps))) |
eps |
(+ eps x) |
(+.f64 x eps) |
(+ eps x) |
(+.f64 x eps) |
(+ eps x) |
(+.f64 x eps) |
x |
(* x (+ 1 (* 1/3 (pow x 2)))) |
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1/3 binary64) x) |
(* x (+ 1 (* (pow x 2) (+ 1/3 (* 2/15 (pow x 2)))))) |
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 #s(literal 2/15 binary64) (*.f64 x x) #s(literal 1/3 binary64)) x) |
(* x (+ 1 (* (pow x 2) (+ 1/3 (* (pow x 2) (+ 2/15 (* 17/315 (pow x 2)))))))) |
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal 17/315 binary64) (*.f64 x x) #s(literal 2/15 binary64)) (*.f64 x x) #s(literal 1/3 binary64)) x) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(/ (sin (+ eps x)) (cos (+ eps x))) |
(/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) |
(/ (sin (+ eps x)) (cos (+ eps x))) |
(/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) |
(/ (sin (+ eps x)) (cos (+ eps x))) |
(/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) |
(/ (sin (+ eps x)) (cos (+ eps x))) |
(/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) |
x |
(* x (+ 1 (/ eps x))) |
(+.f64 x eps) |
(* x (+ 1 (/ eps x))) |
(+.f64 x eps) |
(* x (+ 1 (/ eps x))) |
(+.f64 x eps) |
(/ (sin x) (cos x)) |
(/.f64 (sin.f64 x) (cos.f64 x)) |
(/ (sin x) (cos x)) |
(/.f64 (sin.f64 x) (cos.f64 x)) |
(/ (sin x) (cos x)) |
(/.f64 (sin.f64 x) (cos.f64 x)) |
(/ (sin x) (cos x)) |
(/.f64 (sin.f64 x) (cos.f64 x)) |
(- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) |
(/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) |
(/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) |
(/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) |
(/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) |
(/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) |
(/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) |
(/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) |
x |
(* -1 (* x (- (* -1 (/ eps x)) 1))) |
(+.f64 x eps) |
(* -1 (* x (- (* -1 (/ eps x)) 1))) |
(+.f64 x eps) |
(* -1 (* x (- (* -1 (/ eps x)) 1))) |
(+.f64 x eps) |
(/ (sin x) (cos x)) |
(/.f64 (sin.f64 x) (cos.f64 x)) |
(/ (sin x) (cos x)) |
(/.f64 (sin.f64 x) (cos.f64 x)) |
(/ (sin x) (cos x)) |
(/.f64 (sin.f64 x) (cos.f64 x)) |
(/ (sin x) (cos x)) |
(/.f64 (sin.f64 x) (cos.f64 x)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 6 | 16 |
| 0 | 10 | 16 |
| 1 | 50 | 16 |
| 2 | 402 | 16 |
| 3 | 6117 | 16 |
| 0 | 8095 | 16 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) |
(tan.f64 (+.f64 x eps)) |
(+.f64 x eps) |
(tan.f64 x) |
| Outputs |
|---|
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
Compiled 8 346 to 1 016 computations (87.8% saved)
2 alts after pruning (1 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 335 | 1 | 336 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 335 | 2 | 337 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 51.1% | (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) |
| ▶ | 100.0% | #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) |
Compiled 13 to 12 computations (7.7% saved)
| 1× | egg-herbie |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (cos.f64 eps) | |
| cost-diff | 0 | (sin.f64 eps) | |
| cost-diff | 0 | (/.f64 (sin.f64 eps) (cos.f64 eps)) | |
| cost-diff | 0 | #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 23 |
| 0 | 13 | 23 |
| 1 | 16 | 23 |
| 2 | 21 | 23 |
| 3 | 27 | 23 |
| 4 | 36 | 23 |
| 5 | 51 | 23 |
| 6 | 84 | 23 |
| 7 | 110 | 23 |
| 8 | 154 | 23 |
| 9 | 169 | 23 |
| 10 | 177 | 23 |
| 0 | 177 | 23 |
| 1× | iter limit |
| 1× | saturated |
| 1× | iter limit |
| Inputs |
|---|
#s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) |
(/.f64 (sin.f64 eps) (cos.f64 eps)) |
(sin.f64 eps) |
eps |
(cos.f64 eps) |
| Outputs |
|---|
#s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) |
(/.f64 (sin.f64 eps) (cos.f64 eps)) |
(sin.f64 eps) |
eps |
(cos.f64 eps) |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0 | (/.f64 (sin.f64 eps) (cos.f64 eps)) | |
| accuracy | 0 | (sin.f64 eps) | |
| accuracy | 0 | (cos.f64 eps) | |
| accuracy | 0 | #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) |
| 0.0ms | 2× | 1 | valid |
| 0.0ms | 2× | 0 | valid |
Compiled 35 to 17 computations (51.4% saved)
ival-div: 0.0ms (0% of total)adjust: 0.0ms (0% of total)ival-add: 0.0ms (0% of total)ival-sin: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)ival-sub: 0.0ms (0% of total)ival-tan: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)ival-cos: 0.0ms (0% of total)| Inputs |
|---|
#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) (patch #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) #<representation binary64>) () ()) |
#s(alt (/.f64 (sin.f64 eps) (cos.f64 eps)) (patch (/.f64 (sin.f64 eps) (cos.f64 eps)) #<representation binary64>) () ()) |
#s(alt (sin.f64 eps) (patch (sin.f64 eps) #<representation binary64>) () ()) |
#s(alt (cos.f64 eps) (patch (cos.f64 eps) #<representation binary64>) () ()) |
| Outputs |
|---|
#s(alt (* eps (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (taylor 0 eps) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) (patch #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) #<representation binary64>) () ())) ()) |
#s(alt (* eps (- (+ 1 (/ (* eps (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2)))))) (cos x))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (taylor 0 eps) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) (patch #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) #<representation binary64>) () ())) ()) |
#s(alt (* eps (- (+ 1 (* eps (- (* -1 (* eps (+ 1/6 (+ (* -1 (/ (* (pow (sin x) 2) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (pow (cos x) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (* 1/6 (/ (pow (sin x) 2) (pow (cos x) 2)))))))) (* -1 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x)))))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (taylor 0 eps) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) (patch #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) #<representation binary64>) () ())) ()) |
#s(alt (* eps (- (+ 1 (* eps (- (* eps (- (* -1 (* eps (+ (* -1/2 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x))) (+ (* 1/6 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x))) (/ (* (sin x) (+ 1/6 (+ (* -1 (/ (* (pow (sin x) 2) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (pow (cos x) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (* 1/6 (/ (pow (sin x) 2) (pow (cos x) 2))))))) (cos x)))))) (+ 1/6 (+ (* -1 (/ (* (pow (sin x) 2) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (pow (cos x) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (* 1/6 (/ (pow (sin x) 2) (pow (cos x) 2)))))))) (* -1 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x)))))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (taylor 0 eps) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) (patch #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) #<representation binary64>) () ())) ()) |
#s(alt eps (taylor 0 eps) (#s(alt (/.f64 (sin.f64 eps) (cos.f64 eps)) (patch (/.f64 (sin.f64 eps) (cos.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (* eps (+ 1 (* 1/3 (pow eps 2)))) (taylor 0 eps) (#s(alt (/.f64 (sin.f64 eps) (cos.f64 eps)) (patch (/.f64 (sin.f64 eps) (cos.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (* eps (+ 1 (* (pow eps 2) (+ 1/3 (* 2/15 (pow eps 2)))))) (taylor 0 eps) (#s(alt (/.f64 (sin.f64 eps) (cos.f64 eps)) (patch (/.f64 (sin.f64 eps) (cos.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (* eps (+ 1 (* (pow eps 2) (+ 1/3 (* (pow eps 2) (+ 2/15 (* 17/315 (pow eps 2)))))))) (taylor 0 eps) (#s(alt (/.f64 (sin.f64 eps) (cos.f64 eps)) (patch (/.f64 (sin.f64 eps) (cos.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt eps (taylor 0 eps) (#s(alt (sin.f64 eps) (patch (sin.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (* eps (+ 1 (* -1/6 (pow eps 2)))) (taylor 0 eps) (#s(alt (sin.f64 eps) (patch (sin.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (* eps (+ 1 (* (pow eps 2) (- (* 1/120 (pow eps 2)) 1/6)))) (taylor 0 eps) (#s(alt (sin.f64 eps) (patch (sin.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (* eps (+ 1 (* (pow eps 2) (- (* (pow eps 2) (+ 1/120 (* -1/5040 (pow eps 2)))) 1/6)))) (taylor 0 eps) (#s(alt (sin.f64 eps) (patch (sin.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt 1 (taylor 0 eps) (#s(alt (cos.f64 eps) (patch (cos.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (+ 1 (* -1/2 (pow eps 2))) (taylor 0 eps) (#s(alt (cos.f64 eps) (patch (cos.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (+ 1 (* (pow eps 2) (- (* 1/24 (pow eps 2)) 1/2))) (taylor 0 eps) (#s(alt (cos.f64 eps) (patch (cos.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (+ 1 (* (pow eps 2) (- (* (pow eps 2) (+ 1/24 (* -1/720 (pow eps 2)))) 1/2))) (taylor 0 eps) (#s(alt (cos.f64 eps) (patch (cos.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) (taylor inf eps) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) (patch #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) (taylor inf eps) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) (patch #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) (taylor inf eps) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) (patch #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) (taylor inf eps) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) (patch #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin eps) (cos eps)) (taylor inf eps) (#s(alt (/.f64 (sin.f64 eps) (cos.f64 eps)) (patch (/.f64 (sin.f64 eps) (cos.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin eps) (cos eps)) (taylor inf eps) (#s(alt (/.f64 (sin.f64 eps) (cos.f64 eps)) (patch (/.f64 (sin.f64 eps) (cos.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin eps) (cos eps)) (taylor inf eps) (#s(alt (/.f64 (sin.f64 eps) (cos.f64 eps)) (patch (/.f64 (sin.f64 eps) (cos.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin eps) (cos eps)) (taylor inf eps) (#s(alt (/.f64 (sin.f64 eps) (cos.f64 eps)) (patch (/.f64 (sin.f64 eps) (cos.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (sin eps) (taylor inf eps) (#s(alt (sin.f64 eps) (patch (sin.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (sin eps) (taylor inf eps) (#s(alt (sin.f64 eps) (patch (sin.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (sin eps) (taylor inf eps) (#s(alt (sin.f64 eps) (patch (sin.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (sin eps) (taylor inf eps) (#s(alt (sin.f64 eps) (patch (sin.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (cos eps) (taylor inf eps) (#s(alt (cos.f64 eps) (patch (cos.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (cos eps) (taylor inf eps) (#s(alt (cos.f64 eps) (patch (cos.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (cos eps) (taylor inf eps) (#s(alt (cos.f64 eps) (patch (cos.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (cos eps) (taylor inf eps) (#s(alt (cos.f64 eps) (patch (cos.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) (taylor -inf eps) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) (patch #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) (taylor -inf eps) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) (patch #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) (taylor -inf eps) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) (patch #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) (taylor -inf eps) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) (patch #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin eps) (cos eps)) (taylor -inf eps) (#s(alt (/.f64 (sin.f64 eps) (cos.f64 eps)) (patch (/.f64 (sin.f64 eps) (cos.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin eps) (cos eps)) (taylor -inf eps) (#s(alt (/.f64 (sin.f64 eps) (cos.f64 eps)) (patch (/.f64 (sin.f64 eps) (cos.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin eps) (cos eps)) (taylor -inf eps) (#s(alt (/.f64 (sin.f64 eps) (cos.f64 eps)) (patch (/.f64 (sin.f64 eps) (cos.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin eps) (cos eps)) (taylor -inf eps) (#s(alt (/.f64 (sin.f64 eps) (cos.f64 eps)) (patch (/.f64 (sin.f64 eps) (cos.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (sin eps) (taylor -inf eps) (#s(alt (sin.f64 eps) (patch (sin.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (sin eps) (taylor -inf eps) (#s(alt (sin.f64 eps) (patch (sin.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (sin eps) (taylor -inf eps) (#s(alt (sin.f64 eps) (patch (sin.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (sin eps) (taylor -inf eps) (#s(alt (sin.f64 eps) (patch (sin.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (cos eps) (taylor -inf eps) (#s(alt (cos.f64 eps) (patch (cos.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (cos eps) (taylor -inf eps) (#s(alt (cos.f64 eps) (patch (cos.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (cos eps) (taylor -inf eps) (#s(alt (cos.f64 eps) (patch (cos.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (cos eps) (taylor -inf eps) (#s(alt (cos.f64 eps) (patch (cos.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin eps) (cos eps)) (taylor 0 x) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) (patch #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) #<representation binary64>) () ())) ()) |
#s(alt (+ (/ (sin eps) (cos eps)) (/ (* x (pow (sin eps) 2)) (pow (cos eps) 2))) (taylor 0 x) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) (patch #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) #<representation binary64>) () ())) ()) |
#s(alt (+ (* x (- (/ (* x (* (sin eps) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2)))))) (cos eps)) (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (/ (sin eps) (cos eps))) (taylor 0 x) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) (patch #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) #<representation binary64>) () ())) ()) |
#s(alt (+ (* x (- (* x (- (* -1 (* x (+ 1/2 (+ (* -1 (/ (* (pow (sin eps) 2) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (pow (cos eps) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (* 1/6 (/ (pow (sin eps) 2) (pow (cos eps) 2)))))))) (* -1 (/ (* (sin eps) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (cos eps))))) (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (/ (sin eps) (cos eps))) (taylor 0 x) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) (patch #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) (taylor inf x) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) (patch #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) (taylor inf x) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) (patch #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) (taylor inf x) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) (patch #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) (taylor inf x) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) (patch #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) (taylor -inf x) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) (patch #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) (taylor -inf x) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) (patch #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) (taylor -inf x) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) (patch #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) (taylor -inf x) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) (patch #s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) #<representation binary64>) () ())) ()) |
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 3.0ms | eps | @ | -inf | ((- (tan (+ x eps)) (tan x)) (/ (sin eps) (cos eps)) (sin eps) (cos eps)) |
| 1.0ms | eps | @ | inf | ((- (tan (+ x eps)) (tan x)) (/ (sin eps) (cos eps)) (sin eps) (cos eps)) |
| 1.0ms | eps | @ | 0 | ((- (tan (+ x eps)) (tan x)) (/ (sin eps) (cos eps)) (sin eps) (cos eps)) |
| 0.0ms | x | @ | -inf | ((- (tan (+ x eps)) (tan x)) (/ (sin eps) (cos eps)) (sin eps) (cos eps)) |
| 0.0ms | x | @ | inf | ((- (tan (+ x eps)) (tan x)) (/ (sin eps) (cos eps)) (sin eps) (cos eps)) |
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 157 | 937 |
| 1 | 451 | 889 |
| 2 | 1478 | 874 |
| 3 | 5453 | 854 |
| 0 | 8380 | 812 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(* eps (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) |
(* eps (- (+ 1 (/ (* eps (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2)))))) (cos x))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) |
(* eps (- (+ 1 (* eps (- (* -1 (* eps (+ 1/6 (+ (* -1 (/ (* (pow (sin x) 2) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (pow (cos x) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (* 1/6 (/ (pow (sin x) 2) (pow (cos x) 2)))))))) (* -1 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x)))))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) |
(* eps (- (+ 1 (* eps (- (* eps (- (* -1 (* eps (+ (* -1/2 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x))) (+ (* 1/6 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x))) (/ (* (sin x) (+ 1/6 (+ (* -1 (/ (* (pow (sin x) 2) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (pow (cos x) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (* 1/6 (/ (pow (sin x) 2) (pow (cos x) 2))))))) (cos x)))))) (+ 1/6 (+ (* -1 (/ (* (pow (sin x) 2) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (pow (cos x) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (* 1/6 (/ (pow (sin x) 2) (pow (cos x) 2)))))))) (* -1 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x)))))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) |
eps |
(* eps (+ 1 (* 1/3 (pow eps 2)))) |
(* eps (+ 1 (* (pow eps 2) (+ 1/3 (* 2/15 (pow eps 2)))))) |
(* eps (+ 1 (* (pow eps 2) (+ 1/3 (* (pow eps 2) (+ 2/15 (* 17/315 (pow eps 2)))))))) |
eps |
(* eps (+ 1 (* -1/6 (pow eps 2)))) |
(* eps (+ 1 (* (pow eps 2) (- (* 1/120 (pow eps 2)) 1/6)))) |
(* eps (+ 1 (* (pow eps 2) (- (* (pow eps 2) (+ 1/120 (* -1/5040 (pow eps 2)))) 1/6)))) |
1 |
(+ 1 (* -1/2 (pow eps 2))) |
(+ 1 (* (pow eps 2) (- (* 1/24 (pow eps 2)) 1/2))) |
(+ 1 (* (pow eps 2) (- (* (pow eps 2) (+ 1/24 (* -1/720 (pow eps 2)))) 1/2))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(/ (sin eps) (cos eps)) |
(/ (sin eps) (cos eps)) |
(/ (sin eps) (cos eps)) |
(/ (sin eps) (cos eps)) |
(sin eps) |
(sin eps) |
(sin eps) |
(sin eps) |
(cos eps) |
(cos eps) |
(cos eps) |
(cos eps) |
(- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) |
(- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) |
(- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) |
(- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) |
(/ (sin eps) (cos eps)) |
(/ (sin eps) (cos eps)) |
(/ (sin eps) (cos eps)) |
(/ (sin eps) (cos eps)) |
(sin eps) |
(sin eps) |
(sin eps) |
(sin eps) |
(cos eps) |
(cos eps) |
(cos eps) |
(cos eps) |
(/ (sin eps) (cos eps)) |
(+ (/ (sin eps) (cos eps)) (/ (* x (pow (sin eps) 2)) (pow (cos eps) 2))) |
(+ (* x (- (/ (* x (* (sin eps) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2)))))) (cos eps)) (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (/ (sin eps) (cos eps))) |
(+ (* x (- (* x (- (* -1 (* x (+ 1/2 (+ (* -1 (/ (* (pow (sin eps) 2) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (pow (cos eps) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (* 1/6 (/ (pow (sin eps) 2) (pow (cos eps) 2)))))))) (* -1 (/ (* (sin eps) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (cos eps))))) (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (/ (sin eps) (cos eps))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) |
(- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) |
(- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) |
(- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) |
| Outputs |
|---|
(* eps (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) |
(fma.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) eps eps) |
(* eps (- (+ 1 (/ (* eps (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2)))))) (cos x))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) |
(fma.f64 (fma.f64 (/.f64 eps (cos.f64 x)) (+.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 3 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) (sin.f64 x)) (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64)))) eps eps) |
(* eps (- (+ 1 (* eps (- (* -1 (* eps (+ 1/6 (+ (* -1 (/ (* (pow (sin x) 2) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (pow (cos x) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (* 1/6 (/ (pow (sin x) 2) (pow (cos x) 2)))))))) (* -1 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x)))))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) |
(fma.f64 (fma.f64 (fma.f64 (-.f64 #s(literal -1/6 binary64) (-.f64 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) #s(literal 1/6 binary64) (fma.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) #s(literal -1/2 binary64) #s(literal -1/2 binary64))) (/.f64 (fma.f64 (sin.f64 x) (sin.f64 x) (/.f64 (pow.f64 (sin.f64 x) #s(literal 4 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64)))) (pow.f64 (cos.f64 x) #s(literal 2 binary64))))) eps (/.f64 (+.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 3 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) (sin.f64 x)) (cos.f64 x))) eps (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64)))) eps eps) |
(* eps (- (+ 1 (* eps (- (* eps (- (* -1 (* eps (+ (* -1/2 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x))) (+ (* 1/6 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x))) (/ (* (sin x) (+ 1/6 (+ (* -1 (/ (* (pow (sin x) 2) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (pow (cos x) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (* 1/6 (/ (pow (sin x) 2) (pow (cos x) 2))))))) (cos x)))))) (+ 1/6 (+ (* -1 (/ (* (pow (sin x) 2) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (pow (cos x) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (* 1/6 (/ (pow (sin x) 2) (pow (cos x) 2)))))))) (* -1 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x)))))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) |
(fma.f64 (fma.f64 (fma.f64 (neg.f64 (fma.f64 (fma.f64 #s(literal -1/3 binary64) (/.f64 (+.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 3 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) (sin.f64 x)) (cos.f64 x)) (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (+.f64 (-.f64 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) #s(literal 1/6 binary64) (fma.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) #s(literal -1/2 binary64) #s(literal -1/2 binary64))) (/.f64 (fma.f64 (sin.f64 x) (sin.f64 x) (/.f64 (pow.f64 (sin.f64 x) #s(literal 4 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64)))) (pow.f64 (cos.f64 x) #s(literal 2 binary64)))) #s(literal 1/6 binary64)))) eps (+.f64 (-.f64 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) #s(literal 1/6 binary64) (fma.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) #s(literal -1/2 binary64) #s(literal -1/2 binary64))) (/.f64 (fma.f64 (sin.f64 x) (sin.f64 x) (/.f64 (pow.f64 (sin.f64 x) #s(literal 4 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64)))) (pow.f64 (cos.f64 x) #s(literal 2 binary64)))) #s(literal 1/6 binary64)))) eps (/.f64 (+.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 3 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) (sin.f64 x)) (cos.f64 x))) eps (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64)))) eps eps) |
eps |
(* eps (+ 1 (* 1/3 (pow eps 2)))) |
(fma.f64 (pow.f64 eps #s(literal 3 binary64)) #s(literal 1/3 binary64) eps) |
(* eps (+ 1 (* (pow eps 2) (+ 1/3 (* 2/15 (pow eps 2)))))) |
(fma.f64 (pow.f64 eps #s(literal 3 binary64)) (fma.f64 #s(literal 2/15 binary64) (*.f64 eps eps) #s(literal 1/3 binary64)) eps) |
(* eps (+ 1 (* (pow eps 2) (+ 1/3 (* (pow eps 2) (+ 2/15 (* 17/315 (pow eps 2)))))))) |
(fma.f64 (pow.f64 eps #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal 17/315 binary64) (*.f64 eps eps) #s(literal 2/15 binary64)) (*.f64 eps eps) #s(literal 1/3 binary64)) eps) |
eps |
(* eps (+ 1 (* -1/6 (pow eps 2)))) |
(fma.f64 (pow.f64 eps #s(literal 3 binary64)) #s(literal -1/6 binary64) eps) |
(* eps (+ 1 (* (pow eps 2) (- (* 1/120 (pow eps 2)) 1/6)))) |
(fma.f64 (pow.f64 eps #s(literal 3 binary64)) (fma.f64 #s(literal 1/120 binary64) (*.f64 eps eps) #s(literal -1/6 binary64)) eps) |
(* eps (+ 1 (* (pow eps 2) (- (* (pow eps 2) (+ 1/120 (* -1/5040 (pow eps 2)))) 1/6)))) |
(fma.f64 (pow.f64 eps #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal -1/5040 binary64) (*.f64 eps eps) #s(literal 1/120 binary64)) (*.f64 eps eps) #s(literal -1/6 binary64)) eps) |
1 |
#s(literal 1 binary64) |
(+ 1 (* -1/2 (pow eps 2))) |
(fma.f64 (*.f64 eps eps) #s(literal -1/2 binary64) #s(literal 1 binary64)) |
(+ 1 (* (pow eps 2) (- (* 1/24 (pow eps 2)) 1/2))) |
(fma.f64 (fma.f64 #s(literal 1/24 binary64) (*.f64 eps eps) #s(literal -1/2 binary64)) (*.f64 eps eps) #s(literal 1 binary64)) |
(+ 1 (* (pow eps 2) (- (* (pow eps 2) (+ 1/24 (* -1/720 (pow eps 2)))) 1/2))) |
(fma.f64 (fma.f64 (fma.f64 #s(literal -1/720 binary64) (*.f64 eps eps) #s(literal 1/24 binary64)) (*.f64 eps eps) #s(literal -1/2 binary64)) (*.f64 eps eps) #s(literal 1 binary64)) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(/ (sin eps) (cos eps)) |
(/.f64 (sin.f64 eps) (cos.f64 eps)) |
(/ (sin eps) (cos eps)) |
(/.f64 (sin.f64 eps) (cos.f64 eps)) |
(/ (sin eps) (cos eps)) |
(/.f64 (sin.f64 eps) (cos.f64 eps)) |
(/ (sin eps) (cos eps)) |
(/.f64 (sin.f64 eps) (cos.f64 eps)) |
(sin eps) |
(sin.f64 eps) |
(sin eps) |
(sin.f64 eps) |
(sin eps) |
(sin.f64 eps) |
(sin eps) |
(sin.f64 eps) |
(cos eps) |
(cos.f64 eps) |
(cos eps) |
(cos.f64 eps) |
(cos eps) |
(cos.f64 eps) |
(cos eps) |
(cos.f64 eps) |
(- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(/ (sin eps) (cos eps)) |
(/.f64 (sin.f64 eps) (cos.f64 eps)) |
(/ (sin eps) (cos eps)) |
(/.f64 (sin.f64 eps) (cos.f64 eps)) |
(/ (sin eps) (cos eps)) |
(/.f64 (sin.f64 eps) (cos.f64 eps)) |
(/ (sin eps) (cos eps)) |
(/.f64 (sin.f64 eps) (cos.f64 eps)) |
(sin eps) |
(sin.f64 eps) |
(sin eps) |
(sin.f64 eps) |
(sin eps) |
(sin.f64 eps) |
(sin eps) |
(sin.f64 eps) |
(cos eps) |
(cos.f64 eps) |
(cos eps) |
(cos.f64 eps) |
(cos eps) |
(cos.f64 eps) |
(cos eps) |
(cos.f64 eps) |
(/ (sin eps) (cos eps)) |
(/.f64 (sin.f64 eps) (cos.f64 eps)) |
(+ (/ (sin eps) (cos eps)) (/ (* x (pow (sin eps) 2)) (pow (cos eps) 2))) |
(fma.f64 (/.f64 x (pow.f64 (cos.f64 eps) #s(literal 2 binary64))) (pow.f64 (sin.f64 eps) #s(literal 2 binary64)) (/.f64 (sin.f64 eps) (cos.f64 eps))) |
(+ (* x (- (/ (* x (* (sin eps) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2)))))) (cos eps)) (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (/ (sin eps) (cos eps))) |
(fma.f64 (fma.f64 (/.f64 x (cos.f64 eps)) (+.f64 (/.f64 (pow.f64 (sin.f64 eps) #s(literal 3 binary64)) (pow.f64 (cos.f64 eps) #s(literal 2 binary64))) (sin.f64 eps)) (/.f64 (pow.f64 (sin.f64 eps) #s(literal 2 binary64)) (pow.f64 (cos.f64 eps) #s(literal 2 binary64)))) x (/.f64 (sin.f64 eps) (cos.f64 eps))) |
(+ (* x (- (* x (- (* -1 (* x (+ 1/2 (+ (* -1 (/ (* (pow (sin eps) 2) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (pow (cos eps) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (* 1/6 (/ (pow (sin eps) 2) (pow (cos eps) 2)))))))) (* -1 (/ (* (sin eps) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (cos eps))))) (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (/ (sin eps) (cos eps))) |
(fma.f64 (fma.f64 (fma.f64 (-.f64 #s(literal -1/2 binary64) (-.f64 (fma.f64 (/.f64 (pow.f64 (sin.f64 eps) #s(literal 2 binary64)) (pow.f64 (cos.f64 eps) #s(literal 2 binary64))) #s(literal 1/6 binary64) (fma.f64 (/.f64 (pow.f64 (sin.f64 eps) #s(literal 2 binary64)) (pow.f64 (cos.f64 eps) #s(literal 2 binary64))) #s(literal -1/2 binary64) #s(literal -1/2 binary64))) (/.f64 (fma.f64 (sin.f64 eps) (sin.f64 eps) (/.f64 (pow.f64 (sin.f64 eps) #s(literal 4 binary64)) (pow.f64 (cos.f64 eps) #s(literal 2 binary64)))) (pow.f64 (cos.f64 eps) #s(literal 2 binary64))))) x (/.f64 (+.f64 (/.f64 (pow.f64 (sin.f64 eps) #s(literal 3 binary64)) (pow.f64 (cos.f64 eps) #s(literal 2 binary64))) (sin.f64 eps)) (cos.f64 eps))) x (/.f64 (pow.f64 (sin.f64 eps) #s(literal 2 binary64)) (pow.f64 (cos.f64 eps) #s(literal 2 binary64)))) x (/.f64 (sin.f64 eps) (cos.f64 eps))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 22 |
| 0 | 13 | 16 |
| 1 | 60 | 16 |
| 2 | 465 | 16 |
| 3 | 7541 | 16 |
| 0 | 8099 | 16 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
#s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) |
(/.f64 (sin.f64 eps) (cos.f64 eps)) |
(sin.f64 eps) |
(cos.f64 eps) |
| Outputs |
|---|
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
Compiled 1 306 to 254 computations (80.6% saved)
1 alts after pruning (1 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 99 | 1 | 100 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 1 | 0 | 1 |
| Total | 101 | 1 | 102 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 100.0% | #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) |
Compiled 3 to 4 computations (-33.3% saved)
| 1× | egg-herbie |
Found 2 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (tan.f64 eps) | |
| cost-diff | 0 | #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 13 |
| 0 | 9 | 13 |
| 1 | 12 | 13 |
| 2 | 17 | 13 |
| 3 | 23 | 13 |
| 4 | 32 | 13 |
| 5 | 47 | 13 |
| 6 | 80 | 13 |
| 7 | 105 | 13 |
| 8 | 148 | 13 |
| 9 | 163 | 13 |
| 10 | 171 | 13 |
| 0 | 171 | 13 |
| 1× | iter limit |
| 1× | saturated |
| 1× | iter limit |
| Inputs |
|---|
#s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) |
(tan.f64 eps) |
eps |
| Outputs |
|---|
#s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) |
(tan.f64 eps) |
eps |
Found 2 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0 | (tan.f64 eps) | |
| accuracy | 0 | #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) |
| 5.0ms | 2× | 0 | valid |
| 0.0ms | 2× | 1 | valid |
Compiled 18 to 13 computations (27.8% saved)
ival-tan: 5.0ms (92.2% of total)adjust: 0.0ms (0% of total)ival-sub: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)ival-add: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| Inputs |
|---|
#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) (patch #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) #<representation binary64>) () ()) |
#s(alt (tan.f64 eps) (patch (tan.f64 eps) #<representation binary64>) () ()) |
| Outputs |
|---|
#s(alt (* eps (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (taylor 0 eps) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) (patch #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (* eps (- (+ 1 (/ (* eps (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2)))))) (cos x))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (taylor 0 eps) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) (patch #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (* eps (- (+ 1 (* eps (- (* -1 (* eps (+ 1/6 (+ (* -1 (/ (* (pow (sin x) 2) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (pow (cos x) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (* 1/6 (/ (pow (sin x) 2) (pow (cos x) 2)))))))) (* -1 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x)))))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (taylor 0 eps) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) (patch #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (* eps (- (+ 1 (* eps (- (* eps (- (* -1 (* eps (+ (* -1/2 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x))) (+ (* 1/6 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x))) (/ (* (sin x) (+ 1/6 (+ (* -1 (/ (* (pow (sin x) 2) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (pow (cos x) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (* 1/6 (/ (pow (sin x) 2) (pow (cos x) 2))))))) (cos x)))))) (+ 1/6 (+ (* -1 (/ (* (pow (sin x) 2) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (pow (cos x) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (* 1/6 (/ (pow (sin x) 2) (pow (cos x) 2)))))))) (* -1 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x)))))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (taylor 0 eps) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) (patch #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt eps (taylor 0 eps) (#s(alt (tan.f64 eps) (patch (tan.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (* eps (+ 1 (* 1/3 (pow eps 2)))) (taylor 0 eps) (#s(alt (tan.f64 eps) (patch (tan.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (* eps (+ 1 (* (pow eps 2) (+ 1/3 (* 2/15 (pow eps 2)))))) (taylor 0 eps) (#s(alt (tan.f64 eps) (patch (tan.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (* eps (+ 1 (* (pow eps 2) (+ 1/3 (* (pow eps 2) (+ 2/15 (* 17/315 (pow eps 2)))))))) (taylor 0 eps) (#s(alt (tan.f64 eps) (patch (tan.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) (taylor inf eps) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) (patch #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) (taylor inf eps) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) (patch #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) (taylor inf eps) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) (patch #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) (taylor inf eps) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) (patch #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin eps) (cos eps)) (taylor inf eps) (#s(alt (tan.f64 eps) (patch (tan.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin eps) (cos eps)) (taylor inf eps) (#s(alt (tan.f64 eps) (patch (tan.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin eps) (cos eps)) (taylor inf eps) (#s(alt (tan.f64 eps) (patch (tan.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin eps) (cos eps)) (taylor inf eps) (#s(alt (tan.f64 eps) (patch (tan.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) (taylor -inf eps) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) (patch #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) (taylor -inf eps) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) (patch #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) (taylor -inf eps) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) (patch #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) (taylor -inf eps) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) (patch #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin eps) (cos eps)) (taylor -inf eps) (#s(alt (tan.f64 eps) (patch (tan.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin eps) (cos eps)) (taylor -inf eps) (#s(alt (tan.f64 eps) (patch (tan.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin eps) (cos eps)) (taylor -inf eps) (#s(alt (tan.f64 eps) (patch (tan.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin eps) (cos eps)) (taylor -inf eps) (#s(alt (tan.f64 eps) (patch (tan.f64 eps) #<representation binary64>) () ())) ()) |
#s(alt (/ (sin eps) (cos eps)) (taylor 0 x) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) (patch #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (+ (/ (sin eps) (cos eps)) (/ (* x (pow (sin eps) 2)) (pow (cos eps) 2))) (taylor 0 x) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) (patch #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (+ (* x (- (/ (* x (* (sin eps) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2)))))) (cos eps)) (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (/ (sin eps) (cos eps))) (taylor 0 x) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) (patch #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (+ (* x (- (* x (- (* -1 (* x (+ 1/2 (+ (* -1 (/ (* (pow (sin eps) 2) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (pow (cos eps) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (* 1/6 (/ (pow (sin eps) 2) (pow (cos eps) 2)))))))) (* -1 (/ (* (sin eps) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (cos eps))))) (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (/ (sin eps) (cos eps))) (taylor 0 x) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) (patch #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) (taylor inf x) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) (patch #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) (taylor inf x) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) (patch #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) (taylor inf x) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) (patch #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) (taylor inf x) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) (patch #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) (taylor -inf x) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) (patch #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) (taylor -inf x) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) (patch #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) (taylor -inf x) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) (patch #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) #<representation binary64>) () ())) ()) |
#s(alt (- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) (taylor -inf x) (#s(alt #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) (patch #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) #<representation binary64>) () ())) ()) |
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 10.0ms | eps | @ | 0 | ((- (tan (+ x eps)) (tan x)) (tan eps)) |
| 1.0ms | eps | @ | inf | ((- (tan (+ x eps)) (tan x)) (tan eps)) |
| 1.0ms | eps | @ | -inf | ((- (tan (+ x eps)) (tan x)) (tan eps)) |
| 0.0ms | x | @ | -inf | ((- (tan (+ x eps)) (tan x)) (tan eps)) |
| 0.0ms | x | @ | inf | ((- (tan (+ x eps)) (tan x)) (tan eps)) |
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 125 | 819 |
| 1 | 368 | 771 |
| 2 | 1274 | 762 |
| 3 | 6404 | 746 |
| 0 | 8150 | 713 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(* eps (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) |
(* eps (- (+ 1 (/ (* eps (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2)))))) (cos x))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) |
(* eps (- (+ 1 (* eps (- (* -1 (* eps (+ 1/6 (+ (* -1 (/ (* (pow (sin x) 2) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (pow (cos x) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (* 1/6 (/ (pow (sin x) 2) (pow (cos x) 2)))))))) (* -1 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x)))))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) |
(* eps (- (+ 1 (* eps (- (* eps (- (* -1 (* eps (+ (* -1/2 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x))) (+ (* 1/6 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x))) (/ (* (sin x) (+ 1/6 (+ (* -1 (/ (* (pow (sin x) 2) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (pow (cos x) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (* 1/6 (/ (pow (sin x) 2) (pow (cos x) 2))))))) (cos x)))))) (+ 1/6 (+ (* -1 (/ (* (pow (sin x) 2) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (pow (cos x) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (* 1/6 (/ (pow (sin x) 2) (pow (cos x) 2)))))))) (* -1 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x)))))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) |
eps |
(* eps (+ 1 (* 1/3 (pow eps 2)))) |
(* eps (+ 1 (* (pow eps 2) (+ 1/3 (* 2/15 (pow eps 2)))))) |
(* eps (+ 1 (* (pow eps 2) (+ 1/3 (* (pow eps 2) (+ 2/15 (* 17/315 (pow eps 2)))))))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(/ (sin eps) (cos eps)) |
(/ (sin eps) (cos eps)) |
(/ (sin eps) (cos eps)) |
(/ (sin eps) (cos eps)) |
(- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) |
(- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) |
(- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) |
(- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) |
(/ (sin eps) (cos eps)) |
(/ (sin eps) (cos eps)) |
(/ (sin eps) (cos eps)) |
(/ (sin eps) (cos eps)) |
(/ (sin eps) (cos eps)) |
(+ (/ (sin eps) (cos eps)) (/ (* x (pow (sin eps) 2)) (pow (cos eps) 2))) |
(+ (* x (- (/ (* x (* (sin eps) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2)))))) (cos eps)) (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (/ (sin eps) (cos eps))) |
(+ (* x (- (* x (- (* -1 (* x (+ 1/2 (+ (* -1 (/ (* (pow (sin eps) 2) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (pow (cos eps) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (* 1/6 (/ (pow (sin eps) 2) (pow (cos eps) 2)))))))) (* -1 (/ (* (sin eps) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (cos eps))))) (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (/ (sin eps) (cos eps))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) |
(- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) |
(- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) |
(- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) |
| Outputs |
|---|
(* eps (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) |
(fma.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) eps eps) |
(* eps (- (+ 1 (/ (* eps (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2)))))) (cos x))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) |
(fma.f64 (fma.f64 (/.f64 eps (cos.f64 x)) (+.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 3 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) (sin.f64 x)) (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64)))) eps eps) |
(* eps (- (+ 1 (* eps (- (* -1 (* eps (+ 1/6 (+ (* -1 (/ (* (pow (sin x) 2) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (pow (cos x) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (* 1/6 (/ (pow (sin x) 2) (pow (cos x) 2)))))))) (* -1 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x)))))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) |
(fma.f64 (fma.f64 (fma.f64 (-.f64 (fma.f64 (+.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 3 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) (sin.f64 x)) (/.f64 (sin.f64 x) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) #s(literal -1/6 binary64)) (fma.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) #s(literal 1/6 binary64) (fma.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) #s(literal -1/2 binary64) #s(literal -1/2 binary64)))) eps (/.f64 (+.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 3 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) (sin.f64 x)) (cos.f64 x))) eps (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64)))) eps eps) |
(* eps (- (+ 1 (* eps (- (* eps (- (* -1 (* eps (+ (* -1/2 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x))) (+ (* 1/6 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x))) (/ (* (sin x) (+ 1/6 (+ (* -1 (/ (* (pow (sin x) 2) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (pow (cos x) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (* 1/6 (/ (pow (sin x) 2) (pow (cos x) 2))))))) (cos x)))))) (+ 1/6 (+ (* -1 (/ (* (pow (sin x) 2) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (pow (cos x) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (* 1/6 (/ (pow (sin x) 2) (pow (cos x) 2)))))))) (* -1 (/ (* (sin x) (- 1 (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) (cos x)))))) (* -1 (/ (pow (sin x) 2) (pow (cos x) 2))))) |
(fma.f64 (fma.f64 (fma.f64 (neg.f64 (fma.f64 (fma.f64 #s(literal -1/3 binary64) (/.f64 (+.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 3 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) (sin.f64 x)) (cos.f64 x)) (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (-.f64 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) #s(literal 1/6 binary64) (fma.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) #s(literal -1/2 binary64) #s(literal -1/2 binary64))) (fma.f64 (+.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 3 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) (sin.f64 x)) (/.f64 (sin.f64 x) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) #s(literal -1/6 binary64))))) eps (-.f64 (fma.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) #s(literal 1/6 binary64) (fma.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) #s(literal -1/2 binary64) #s(literal -1/2 binary64))) (fma.f64 (+.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 3 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) (sin.f64 x)) (/.f64 (sin.f64 x) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) #s(literal -1/6 binary64))))) eps (/.f64 (+.f64 (/.f64 (pow.f64 (sin.f64 x) #s(literal 3 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64))) (sin.f64 x)) (cos.f64 x))) eps (/.f64 (pow.f64 (sin.f64 x) #s(literal 2 binary64)) (pow.f64 (cos.f64 x) #s(literal 2 binary64)))) eps eps) |
eps |
(* eps (+ 1 (* 1/3 (pow eps 2)))) |
(fma.f64 (pow.f64 eps #s(literal 3 binary64)) #s(literal 1/3 binary64) eps) |
(* eps (+ 1 (* (pow eps 2) (+ 1/3 (* 2/15 (pow eps 2)))))) |
(fma.f64 (pow.f64 eps #s(literal 3 binary64)) (fma.f64 #s(literal 2/15 binary64) (*.f64 eps eps) #s(literal 1/3 binary64)) eps) |
(* eps (+ 1 (* (pow eps 2) (+ 1/3 (* (pow eps 2) (+ 2/15 (* 17/315 (pow eps 2)))))))) |
(fma.f64 (pow.f64 eps #s(literal 3 binary64)) (fma.f64 (fma.f64 #s(literal 17/315 binary64) (*.f64 eps eps) #s(literal 2/15 binary64)) (*.f64 eps eps) #s(literal 1/3 binary64)) eps) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(/ (sin eps) (cos eps)) |
(/.f64 (sin.f64 eps) (cos.f64 eps)) |
(/ (sin eps) (cos eps)) |
(/.f64 (sin.f64 eps) (cos.f64 eps)) |
(/ (sin eps) (cos eps)) |
(/.f64 (sin.f64 eps) (cos.f64 eps)) |
(/ (sin eps) (cos eps)) |
(/.f64 (sin.f64 eps) (cos.f64 eps)) |
(- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (- x (* -1 eps))) (cos (- x (* -1 eps)))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(/ (sin eps) (cos eps)) |
(/.f64 (sin.f64 eps) (cos.f64 eps)) |
(/ (sin eps) (cos eps)) |
(/.f64 (sin.f64 eps) (cos.f64 eps)) |
(/ (sin eps) (cos eps)) |
(/.f64 (sin.f64 eps) (cos.f64 eps)) |
(/ (sin eps) (cos eps)) |
(/.f64 (sin.f64 eps) (cos.f64 eps)) |
(/ (sin eps) (cos eps)) |
(/.f64 (sin.f64 eps) (cos.f64 eps)) |
(+ (/ (sin eps) (cos eps)) (/ (* x (pow (sin eps) 2)) (pow (cos eps) 2))) |
(fma.f64 (/.f64 x (pow.f64 (cos.f64 eps) #s(literal 2 binary64))) (pow.f64 (sin.f64 eps) #s(literal 2 binary64)) (/.f64 (sin.f64 eps) (cos.f64 eps))) |
(+ (* x (- (/ (* x (* (sin eps) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2)))))) (cos eps)) (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (/ (sin eps) (cos eps))) |
(fma.f64 (fma.f64 (/.f64 x (cos.f64 eps)) (+.f64 (/.f64 (pow.f64 (sin.f64 eps) #s(literal 3 binary64)) (pow.f64 (cos.f64 eps) #s(literal 2 binary64))) (sin.f64 eps)) (/.f64 (pow.f64 (sin.f64 eps) #s(literal 2 binary64)) (pow.f64 (cos.f64 eps) #s(literal 2 binary64)))) x (/.f64 (sin.f64 eps) (cos.f64 eps))) |
(+ (* x (- (* x (- (* -1 (* x (+ 1/2 (+ (* -1 (/ (* (pow (sin eps) 2) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (pow (cos eps) 2))) (+ (* -1/2 (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (* 1/6 (/ (pow (sin eps) 2) (pow (cos eps) 2)))))))) (* -1 (/ (* (sin eps) (- 1 (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (cos eps))))) (* -1 (/ (pow (sin eps) 2) (pow (cos eps) 2))))) (/ (sin eps) (cos eps))) |
(fma.f64 (fma.f64 (fma.f64 (-.f64 #s(literal -1/2 binary64) (fma.f64 (+.f64 (/.f64 (pow.f64 (sin.f64 eps) #s(literal 3 binary64)) (pow.f64 (cos.f64 eps) #s(literal 2 binary64))) (sin.f64 eps)) (/.f64 (sin.f64 eps) (neg.f64 (pow.f64 (cos.f64 eps) #s(literal 2 binary64)))) (fma.f64 (/.f64 (pow.f64 (sin.f64 eps) #s(literal 2 binary64)) (pow.f64 (cos.f64 eps) #s(literal 2 binary64))) #s(literal 1/6 binary64) (fma.f64 (/.f64 (pow.f64 (sin.f64 eps) #s(literal 2 binary64)) (pow.f64 (cos.f64 eps) #s(literal 2 binary64))) #s(literal -1/2 binary64) #s(literal -1/2 binary64))))) x (/.f64 (+.f64 (/.f64 (pow.f64 (sin.f64 eps) #s(literal 3 binary64)) (pow.f64 (cos.f64 eps) #s(literal 2 binary64))) (sin.f64 eps)) (cos.f64 eps))) x (/.f64 (pow.f64 (sin.f64 eps) #s(literal 2 binary64)) (pow.f64 (cos.f64 eps) #s(literal 2 binary64)))) x (/.f64 (sin.f64 eps) (cos.f64 eps))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (+ eps x)) (cos (+ eps x))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
(- (/ (sin (- eps (* -1 x))) (cos (- eps (* -1 x)))) (/ (sin x) (cos x))) |
(-.f64 (/.f64 (sin.f64 (+.f64 x eps)) (cos.f64 (+.f64 x eps))) (/.f64 (sin.f64 x) (cos.f64 x))) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 12 |
| 0 | 9 | 12 |
| 1 | 51 | 12 |
| 2 | 411 | 12 |
| 3 | 6404 | 12 |
| 0 | 8025 | 12 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
#s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) |
(tan.f64 eps) |
| Outputs |
|---|
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
#<batchref> |
Compiled 883 to 139 computations (84.3% saved)
1 alts after pruning (0 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 52 | 0 | 52 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 52 | 1 | 53 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 100.0% | #s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps)) |
Compiled 19 to 16 computations (15.8% saved)
Compiled 7 to 6 computations (14.3% saved)
1 calls:
| 0.0ms | (-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x)) |
Loading profile data...