2tan (problem 3.3.2)

Time bar (total: 7.0s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze45.0ms (0.6%)

Memory
-19.5MiB live, 62.1MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
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
Compiler

Compiled 27 to 19 computations (29.6% saved)

sample5.5s (79.2%)

Memory
195.5MiB live, 5 641.8MiB allocated
Samples
3.1s25 060×0invalid
617.0ms5 363×0valid
428.0ms2 641×1valid
Precisions
Click to see histograms. Total time spent on operations: 3.2s
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)
Bogosity

explain2.0ms (0%)

Memory
2.2MiB live, 2.2MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
40-0-(-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x))
00-0-eps
00-0-(+.f64 x eps)
00-0-(tan.f64 x)
00-0-(tan.f64 (+.f64 x eps))
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
-.f64(-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x))cancellation40
Confusion
Predicted +Predicted -
+40
-00
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+400
-000
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
14
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
0.0ms1valid
0.0ms0valid
Compiler

Compiled 65 to 28 computations (56.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
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)

preprocess22.0ms (0.3%)

Memory
23.9MiB live, 23.9MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01839
13835
28635
316935
431035
536735
644535
748235
849135
067
0107
1137
2187
3247
4327
5477
6807
71077
81517
91667
101747
01747
Stop Event
iter limit
saturated
iter limit
saturated
Calls
Call 1
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))
Compiler

Compiled 7 to 6 computations (14.3% saved)

eval0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated
Compiler

Compiled 0 to 2 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
51.1%
(-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x))
Compiler

Compiled 7 to 6 computations (14.3% saved)

simplify6.0ms (0.1%)

Memory
5.8MiB live, 5.8MiB allocated
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(tan.f64 x)
cost-diff0
(+.f64 x eps)
cost-diff0
(tan.f64 (+.f64 x eps))
cost-diff0
(-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0618
01018
11318
21818
32418
43218
54718
68018
710718
815118
916618
1017418
017418
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
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)

localize1.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0
(+.f64 x eps)
accuracy0
(tan.f64 (+.f64 x eps))
accuracy0
(tan.f64 x)
accuracy31.295887050615214
(-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x))
Samples
0.0ms1valid
0.0ms0valid
Compiler

Compiled 38 to 14 computations (63.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
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)

series16.0ms (0.2%)

Memory
-22.3MiB live, 15.6MiB allocated
Counts
4 → 84
Calls
Call 1
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>) () ())) ())
Calls

6 calls:

TimeVariablePointExpression
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))

simplify442.0ms (6.3%)

Memory
-22.2MiB live, 247.9MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01571351
14641285
215341274
359641242
085381195
Stop Event
iter limit
node limit
Counts
84 → 77
Calls
Call 1
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))

rewrite165.0ms (2.4%)

Memory
-43.7MiB live, 145.1MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0616
01016
15016
240216
3611716
0809516
Stop Event
iter limit
node limit
iter limit
Counts
4 → 259
Calls
Call 1
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>

eval6.0ms (0.1%)

Memory
12.0MiB live, 12.0MiB allocated
Compiler

Compiled 8 346 to 1 016 computations (87.8% saved)

prune0.0ms (0%)

Memory
1.1MiB live, 1.1MiB allocated
Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New3351336
Fresh000
Picked011
Done000
Total3352337
Accuracy
100.0%
Counts
337 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
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)))
Compiler

Compiled 13 to 12 computations (7.7% saved)

simplify6.0ms (0.1%)

Memory
6.6MiB live, 6.6MiB allocated
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(cos.f64 eps)
cost-diff0
(sin.f64 eps)
cost-diff0
(/.f64 (sin.f64 eps) (cos.f64 eps))
cost-diff0
#s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01023
01323
11623
22123
32723
43623
55123
68423
711023
815423
916923
1017723
017723
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
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)

localize1.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0
(/.f64 (sin.f64 eps) (cos.f64 eps))
accuracy0
(sin.f64 eps)
accuracy0
(cos.f64 eps)
accuracy0
#s(approx (- (tan (+ x eps)) (tan x)) (/.f64 (sin.f64 eps) (cos.f64 eps)))
Samples
0.0ms1valid
0.0ms0valid
Compiler

Compiled 35 to 17 computations (51.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
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)

series8.0ms (0.1%)

Memory
11.1MiB live, 11.1MiB allocated
Counts
4 → 60
Calls
Call 1
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>) () ())) ())
Calls

6 calls:

TimeVariablePointExpression
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))

simplify214.0ms (3.1%)

Memory
-40.6MiB live, 180.5MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0157937
1451889
21478874
35453854
08380812
Stop Event
iter limit
node limit
Counts
60 → 58
Calls
Call 1
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)))

rewrite135.0ms (1.9%)

Memory
24.2MiB live, 133.5MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01022
01316
16016
246516
3754116
0809916
Stop Event
iter limit
node limit
iter limit
Counts
4 → 42
Calls
Call 1
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>

eval1.0ms (0%)

Memory
2.2MiB live, 2.2MiB allocated
Compiler

Compiled 1 306 to 254 computations (80.6% saved)

prune0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated
Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New991100
Fresh000
Picked101
Done101
Total1011102
Accuracy
100.0%
Counts
102 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
#s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps))
Compiler

Compiled 3 to 4 computations (-33.3% saved)

simplify6.0ms (0.1%)

Memory
6.0MiB live, 6.0MiB allocated
Algorithm
egg-herbie
Localize:

Found 2 expressions of interest:

NewMetricScoreProgram
cost-diff0
(tan.f64 eps)
cost-diff0
#s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0813
0913
11213
21713
32313
43213
54713
68013
710513
814813
916313
1017113
017113
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
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

localize6.0ms (0.1%)

Memory
-48.3MiB live, 0.8MiB allocated
Localize:

Found 2 expressions of interest:

NewMetricScoreProgram
accuracy0
(tan.f64 eps)
accuracy0
#s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps))
Samples
5.0ms0valid
0.0ms1valid
Compiler

Compiled 18 to 13 computations (27.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
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)

series15.0ms (0.2%)

Memory
17.5MiB live, 17.5MiB allocated
Counts
2 → 36
Calls
Call 1
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>) () ())) ())
Calls

6 calls:

TimeVariablePointExpression
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))

simplify182.0ms (2.6%)

Memory
-9.1MiB live, 183.8MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0125819
1368771
21274762
36404746
08150713
Stop Event
iter limit
node limit
Counts
36 → 35
Calls
Call 1
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)))

rewrite175.0ms (2.5%)

Memory
22.7MiB live, 149.9MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0812
0912
15112
241112
3640412
0802512
Stop Event
iter limit
node limit
iter limit
Counts
2 → 17
Calls
Call 1
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>

eval1.0ms (0%)

Memory
1.4MiB live, 1.4MiB allocated
Compiler

Compiled 883 to 139 computations (84.3% saved)

prune0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated
Pruning

1 alts after pruning (0 fresh and 1 done)

PrunedKeptTotal
New52052
Fresh000
Picked011
Done000
Total52153
Accuracy
100.0%
Counts
53 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
#s(approx (- (tan (+ x eps)) (tan x)) (tan.f64 eps))
Compiler

Compiled 19 to 16 computations (15.8% saved)

regimes0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Compiler

Compiled 7 to 6 computations (14.3% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated
Calls

1 calls:

0.0ms
(-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x))

Profiling

Loading profile data...