sintan (problem 3.4.5)

Time bar (total: 10.4s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze366.0ms (3.5%)

Memory
28.1MiB live, 411.8MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%49.9%50.1%0%0%0%0
0%0%49.9%50.1%0%0%0%1
0%0%49.9%50.1%0%0%0%2
0%0%49.9%50.1%0%0%0%3
0%0%49.9%50.1%0%0%0%4
0%0%49.9%50.1%0%0%0%5
0%0%49.9%50.1%0%0%0%6
0%0%49.9%50.1%0%0%0%7
0%0%49.9%50.1%0%0%0%8
0%0%49.9%50.1%0%0%0%9
0%0%49.9%50.1%0%0%0%10
0%0%49.9%50.1%0%0%0%11
0%0%49.9%50.1%0%0%0%12
Compiler

Compiled 17 to 12 computations (29.4% saved)

sample9.3s (89.2%)

Memory
83.4MiB live, 7 039.8MiB allocated
Samples
6.8s4 349×2valid
1.3s1 120×3valid
726.0ms2 409×1valid
12.0ms126×0valid
Precisions
Click to see histograms. Total time spent on operations: 8.2s
ival-tan: 4.5s (54.4% of total)
ival-sin: 2.3s (28.4% of total)
ival-sub: 555.0ms (6.8% of total)
adjust: 349.0ms (4.3% of total)
const: 296.0ms (3.6% of total)
ival-div: 110.0ms (1.3% of total)
ival-<=: 87.0ms (1.1% of total)
ival-and: 13.0ms (0.2% of total)
ival-assert: 4.0ms (0% of total)
Bogosity

explain8.0ms (0.1%)

Memory
11.4MiB live, 11.4MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
20-0-(-.f64 eps (tan.f64 eps))
20-0-(/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps)))
20-0-(-.f64 eps (sin.f64 eps))
00-0-(tan.f64 eps)
00-0-eps
00-0-(sin.f64 eps)
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
/.f64(/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps)))u/u20
(-.f64 eps (sin.f64 eps))underflow2
(-.f64 eps (tan.f64 eps))underflow2
-.f64(-.f64 eps (sin.f64 eps))cancellation20
-.f64(-.f64 eps (tan.f64 eps))cancellation20
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
12
22
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
5.0ms2valid
1.0ms3valid
1.0ms1valid
Compiler

Compiled 79 to 28 computations (64.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 6.0ms
ival-tan: 4.0ms (62.4% of total)
ival-sin: 2.0ms (31.2% of total)
adjust: 0.0ms (0% of total)
ival-div: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-sub: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

preprocess50.0ms (0.5%)

Memory
-30.6MiB live, 26.8MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0827
12923
27818
323918
450118
568818
670518
774318
877218
069
0119
1189
2289
3459
4799
51519
63269
76249
89289
99439
109449
09449
Stop Event
iter limit
saturated
iter limit
saturated
Calls
Call 1
Inputs
(/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps)))
Outputs
(/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps)))
(/.f64 (-.f64 (sin.f64 eps) eps) (-.f64 (tan.f64 eps) eps))
Symmetry

(abs eps)

Compiler

Compiled 9 to 6 computations (33.3% saved)

eval0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated
Compiler

Compiled 0 to 1 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
0.0%
(/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps)))
Compiler

Compiled 9 to 6 computations (33.3% saved)

simplify21.0ms (0.2%)

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

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(-.f64 eps (tan.f64 eps))
cost-diff0
(sin.f64 eps)
cost-diff0
(-.f64 eps (sin.f64 eps))
cost-diff0
(/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0622
01122
11822
22822
34522
47922
515122
632622
762422
892822
994322
1094422
094422
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps)))
(-.f64 eps (sin.f64 eps))
eps
(sin.f64 eps)
(-.f64 eps (tan.f64 eps))
(tan.f64 eps)
Outputs
(/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps)))
(/.f64 (-.f64 (sin.f64 eps) eps) (-.f64 (tan.f64 eps) eps))
(-.f64 eps (sin.f64 eps))
eps
(sin.f64 eps)
(-.f64 eps (tan.f64 eps))
(tan.f64 eps)

localize5.0ms (0.1%)

Memory
-34.0MiB live, 4.7MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0
(sin.f64 eps)
accuracy30.330165177464785
(-.f64 eps (sin.f64 eps))
accuracy30.332486374869347
(-.f64 eps (tan.f64 eps))
accuracy31.791893977251167
(/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps)))
Samples
3.0ms2valid
1.0ms3valid
0.0ms1valid
Compiler

Compiled 46 to 14 computations (69.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 3.0ms
ival-tan: 2.0ms (62.4% of total)
ival-sin: 1.0ms (31.2% of total)
adjust: 0.0ms (0% of total)
ival-div: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-sub: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

series7.0ms (0.1%)

Memory
5.8MiB live, 5.8MiB allocated
Counts
4 → 48
Calls
Call 1
Inputs
#s(alt (/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps))) (patch (/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps))) #<representation binary64>) () ())
#s(alt (-.f64 eps (sin.f64 eps)) (patch (-.f64 eps (sin.f64 eps)) #<representation binary64>) () ())
#s(alt (sin.f64 eps) (patch (sin.f64 eps) #<representation binary64>) () ())
#s(alt (-.f64 eps (tan.f64 eps)) (patch (-.f64 eps (tan.f64 eps)) #<representation binary64>) () ())
Outputs
#s(alt -1/2 (taylor 0 eps) (#s(alt (/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps))) (patch (/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps))) #<representation binary64>) () ())) ())
#s(alt (- (* 9/40 (pow eps 2)) 1/2) (taylor 0 eps) (#s(alt (/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps))) (patch (/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps))) #<representation binary64>) () ())) ())
#s(alt (- (* (pow eps 2) (+ 9/40 (* -27/2800 (pow eps 2)))) 1/2) (taylor 0 eps) (#s(alt (/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps))) (patch (/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps))) #<representation binary64>) () ())) ())
#s(alt (- (* (pow eps 2) (+ 9/40 (* (pow eps 2) (- (* 27/112000 (pow eps 2)) 27/2800)))) 1/2) (taylor 0 eps) (#s(alt (/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps))) (patch (/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps))) #<representation binary64>) () ())) ())
#s(alt (* 1/6 (pow eps 3)) (taylor 0 eps) (#s(alt (-.f64 eps (sin.f64 eps)) (patch (-.f64 eps (sin.f64 eps)) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 3) (+ 1/6 (* -1/120 (pow eps 2)))) (taylor 0 eps) (#s(alt (-.f64 eps (sin.f64 eps)) (patch (-.f64 eps (sin.f64 eps)) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 3) (+ 1/6 (* (pow eps 2) (- (* 1/5040 (pow eps 2)) 1/120)))) (taylor 0 eps) (#s(alt (-.f64 eps (sin.f64 eps)) (patch (-.f64 eps (sin.f64 eps)) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 3) (+ 1/6 (* (pow eps 2) (- (* (pow eps 2) (+ 1/5040 (* -1/362880 (pow eps 2)))) 1/120)))) (taylor 0 eps) (#s(alt (-.f64 eps (sin.f64 eps)) (patch (-.f64 eps (sin.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/3 (pow eps 3)) (taylor 0 eps) (#s(alt (-.f64 eps (tan.f64 eps)) (patch (-.f64 eps (tan.f64 eps)) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 3) (- (* -2/15 (pow eps 2)) 1/3)) (taylor 0 eps) (#s(alt (-.f64 eps (tan.f64 eps)) (patch (-.f64 eps (tan.f64 eps)) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 3) (- (* (pow eps 2) (- (* -17/315 (pow eps 2)) 2/15)) 1/3)) (taylor 0 eps) (#s(alt (-.f64 eps (tan.f64 eps)) (patch (-.f64 eps (tan.f64 eps)) #<representation binary64>) () ())) ())
#s(alt (* (pow eps 3) (- (* (pow eps 2) (- (* (pow eps 2) (- (* -62/2835 (pow eps 2)) 17/315)) 2/15)) 1/3)) (taylor 0 eps) (#s(alt (-.f64 eps (tan.f64 eps)) (patch (-.f64 eps (tan.f64 eps)) #<representation binary64>) () ())) ())
#s(alt 1 (taylor inf eps) (#s(alt (/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps))) (patch (/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps))) #<representation binary64>) () ())) ())
#s(alt (- (+ 1 (* -1 (/ (sin eps) eps))) (* -1 (/ (sin eps) (* eps (cos eps))))) (taylor inf eps) (#s(alt (/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps))) (patch (/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps))) #<representation binary64>) () ())) ())
#s(alt (- (+ 1 (+ (* -1 (/ (sin eps) eps)) (/ (* (sin eps) (- (* -1 (sin eps)) (* -1 (/ (sin eps) (cos eps))))) (* (pow eps 2) (cos eps))))) (* -1 (/ (sin eps) (* eps (cos eps))))) (taylor inf eps) (#s(alt (/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps))) (patch (/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps))) #<representation binary64>) () ())) ())
#s(alt (- (+ 1 (+ (* -1 (/ (sin eps) eps)) (/ (* (pow (sin eps) 2) (- (* -1 (sin eps)) (* -1 (/ (sin eps) (cos eps))))) (* (pow eps 3) (pow (cos eps) 2))))) (+ (* -1 (/ (sin eps) (* eps (cos eps)))) (* -1 (/ (* (sin eps) (- (* -1 (sin eps)) (* -1 (/ (sin eps) (cos eps))))) (* (pow eps 2) (cos eps)))))) (taylor inf eps) (#s(alt (/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps))) (patch (/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps))) #<representation binary64>) () ())) ())
#s(alt eps (taylor inf eps) (#s(alt (-.f64 eps (sin.f64 eps)) (patch (-.f64 eps (sin.f64 eps)) #<representation binary64>) () ())) ())
#s(alt (* eps (+ 1 (* -1 (/ (sin eps) eps)))) (taylor inf eps) (#s(alt (-.f64 eps (sin.f64 eps)) (patch (-.f64 eps (sin.f64 eps)) #<representation binary64>) () ())) ())
#s(alt (* eps (+ 1 (* -1 (/ (sin eps) eps)))) (taylor inf eps) (#s(alt (-.f64 eps (sin.f64 eps)) (patch (-.f64 eps (sin.f64 eps)) #<representation binary64>) () ())) ())
#s(alt (* eps (+ 1 (* -1 (/ (sin eps) eps)))) (taylor inf eps) (#s(alt (-.f64 eps (sin.f64 eps)) (patch (-.f64 eps (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 (sin eps) (taylor inf eps) (#s(alt (sin.f64 eps) (patch (sin.f64 eps) #<representation binary64>) () ())) ())
#s(alt eps (taylor inf eps) (#s(alt (-.f64 eps (tan.f64 eps)) (patch (-.f64 eps (tan.f64 eps)) #<representation binary64>) () ())) ())
#s(alt (* eps (+ 1 (* -1 (/ (sin eps) (* eps (cos eps)))))) (taylor inf eps) (#s(alt (-.f64 eps (tan.f64 eps)) (patch (-.f64 eps (tan.f64 eps)) #<representation binary64>) () ())) ())
#s(alt (* eps (+ 1 (* -1 (/ (sin eps) (* eps (cos eps)))))) (taylor inf eps) (#s(alt (-.f64 eps (tan.f64 eps)) (patch (-.f64 eps (tan.f64 eps)) #<representation binary64>) () ())) ())
#s(alt (* eps (+ 1 (* -1 (/ (sin eps) (* eps (cos eps)))))) (taylor inf eps) (#s(alt (-.f64 eps (tan.f64 eps)) (patch (-.f64 eps (tan.f64 eps)) #<representation binary64>) () ())) ())
#s(alt 1 (taylor -inf eps) (#s(alt (/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps))) (patch (/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps))) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* -1 (/ (- (sin eps) (/ (sin eps) (cos eps))) eps))) (taylor -inf eps) (#s(alt (/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps))) (patch (/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps))) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* -1 (/ (- (+ (sin eps) (/ (* (sin eps) (- (sin eps) (/ (sin eps) (cos eps)))) (* eps (cos eps)))) (/ (sin eps) (cos eps))) eps))) (taylor -inf eps) (#s(alt (/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps))) (patch (/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps))) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* -1 (/ (- (+ (sin eps) (* -1 (/ (- (* -1 (/ (* (pow (sin eps) 2) (- (sin eps) (/ (sin eps) (cos eps)))) (* eps (pow (cos eps) 2)))) (/ (* (sin eps) (- (sin eps) (/ (sin eps) (cos eps)))) (cos eps))) eps))) (/ (sin eps) (cos eps))) eps))) (taylor -inf eps) (#s(alt (/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps))) (patch (/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps))) #<representation binary64>) () ())) ())
#s(alt eps (taylor -inf eps) (#s(alt (-.f64 eps (sin.f64 eps)) (patch (-.f64 eps (sin.f64 eps)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* eps (- (/ (sin eps) eps) 1))) (taylor -inf eps) (#s(alt (-.f64 eps (sin.f64 eps)) (patch (-.f64 eps (sin.f64 eps)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* eps (- (/ (sin eps) eps) 1))) (taylor -inf eps) (#s(alt (-.f64 eps (sin.f64 eps)) (patch (-.f64 eps (sin.f64 eps)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* eps (- (/ (sin eps) eps) 1))) (taylor -inf eps) (#s(alt (-.f64 eps (sin.f64 eps)) (patch (-.f64 eps (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 (sin eps) (taylor -inf eps) (#s(alt (sin.f64 eps) (patch (sin.f64 eps) #<representation binary64>) () ())) ())
#s(alt eps (taylor -inf eps) (#s(alt (-.f64 eps (tan.f64 eps)) (patch (-.f64 eps (tan.f64 eps)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* eps (- (/ (sin eps) (* eps (cos eps))) 1))) (taylor -inf eps) (#s(alt (-.f64 eps (tan.f64 eps)) (patch (-.f64 eps (tan.f64 eps)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* eps (- (/ (sin eps) (* eps (cos eps))) 1))) (taylor -inf eps) (#s(alt (-.f64 eps (tan.f64 eps)) (patch (-.f64 eps (tan.f64 eps)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* eps (- (/ (sin eps) (* eps (cos eps))) 1))) (taylor -inf eps) (#s(alt (-.f64 eps (tan.f64 eps)) (patch (-.f64 eps (tan.f64 eps)) #<representation binary64>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
1.0ms
eps
@inf
((/ (- eps (sin eps)) (- eps (tan eps))) (- eps (sin eps)) (sin eps) (- eps (tan eps)))
1.0ms
eps
@-inf
((/ (- eps (sin eps)) (- eps (tan eps))) (- eps (sin eps)) (sin eps) (- eps (tan eps)))
1.0ms
eps
@0
((/ (- eps (sin eps)) (- eps (tan eps))) (- eps (sin eps)) (sin eps) (- eps (tan eps)))

simplify176.0ms (1.7%)

Memory
16.3MiB live, 131.0MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0148561
1422524
21321499
35649444
08475418
Stop Event
iter limit
node limit
Counts
48 → 43
Calls
Call 1
Inputs
-1/2
(- (* 9/40 (pow eps 2)) 1/2)
(- (* (pow eps 2) (+ 9/40 (* -27/2800 (pow eps 2)))) 1/2)
(- (* (pow eps 2) (+ 9/40 (* (pow eps 2) (- (* 27/112000 (pow eps 2)) 27/2800)))) 1/2)
(* 1/6 (pow eps 3))
(* (pow eps 3) (+ 1/6 (* -1/120 (pow eps 2))))
(* (pow eps 3) (+ 1/6 (* (pow eps 2) (- (* 1/5040 (pow eps 2)) 1/120))))
(* (pow eps 3) (+ 1/6 (* (pow eps 2) (- (* (pow eps 2) (+ 1/5040 (* -1/362880 (pow eps 2)))) 1/120))))
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/3 (pow eps 3))
(* (pow eps 3) (- (* -2/15 (pow eps 2)) 1/3))
(* (pow eps 3) (- (* (pow eps 2) (- (* -17/315 (pow eps 2)) 2/15)) 1/3))
(* (pow eps 3) (- (* (pow eps 2) (- (* (pow eps 2) (- (* -62/2835 (pow eps 2)) 17/315)) 2/15)) 1/3))
1
(- (+ 1 (* -1 (/ (sin eps) eps))) (* -1 (/ (sin eps) (* eps (cos eps)))))
(- (+ 1 (+ (* -1 (/ (sin eps) eps)) (/ (* (sin eps) (- (* -1 (sin eps)) (* -1 (/ (sin eps) (cos eps))))) (* (pow eps 2) (cos eps))))) (* -1 (/ (sin eps) (* eps (cos eps)))))
(- (+ 1 (+ (* -1 (/ (sin eps) eps)) (/ (* (pow (sin eps) 2) (- (* -1 (sin eps)) (* -1 (/ (sin eps) (cos eps))))) (* (pow eps 3) (pow (cos eps) 2))))) (+ (* -1 (/ (sin eps) (* eps (cos eps)))) (* -1 (/ (* (sin eps) (- (* -1 (sin eps)) (* -1 (/ (sin eps) (cos eps))))) (* (pow eps 2) (cos eps))))))
eps
(* eps (+ 1 (* -1 (/ (sin eps) eps))))
(* eps (+ 1 (* -1 (/ (sin eps) eps))))
(* eps (+ 1 (* -1 (/ (sin eps) eps))))
(sin eps)
(sin eps)
(sin eps)
(sin eps)
eps
(* eps (+ 1 (* -1 (/ (sin eps) (* eps (cos eps))))))
(* eps (+ 1 (* -1 (/ (sin eps) (* eps (cos eps))))))
(* eps (+ 1 (* -1 (/ (sin eps) (* eps (cos eps))))))
1
(+ 1 (* -1 (/ (- (sin eps) (/ (sin eps) (cos eps))) eps)))
(+ 1 (* -1 (/ (- (+ (sin eps) (/ (* (sin eps) (- (sin eps) (/ (sin eps) (cos eps)))) (* eps (cos eps)))) (/ (sin eps) (cos eps))) eps)))
(+ 1 (* -1 (/ (- (+ (sin eps) (* -1 (/ (- (* -1 (/ (* (pow (sin eps) 2) (- (sin eps) (/ (sin eps) (cos eps)))) (* eps (pow (cos eps) 2)))) (/ (* (sin eps) (- (sin eps) (/ (sin eps) (cos eps)))) (cos eps))) eps))) (/ (sin eps) (cos eps))) eps)))
eps
(* -1 (* eps (- (/ (sin eps) eps) 1)))
(* -1 (* eps (- (/ (sin eps) eps) 1)))
(* -1 (* eps (- (/ (sin eps) eps) 1)))
(sin eps)
(sin eps)
(sin eps)
(sin eps)
eps
(* -1 (* eps (- (/ (sin eps) (* eps (cos eps))) 1)))
(* -1 (* eps (- (/ (sin eps) (* eps (cos eps))) 1)))
(* -1 (* eps (- (/ (sin eps) (* eps (cos eps))) 1)))
Outputs
-1/2
#s(literal -1/2 binary64)
(- (* 9/40 (pow eps 2)) 1/2)
(fma.f64 (*.f64 eps eps) #s(literal 9/40 binary64) #s(literal -1/2 binary64))
(- (* (pow eps 2) (+ 9/40 (* -27/2800 (pow eps 2)))) 1/2)
(fma.f64 (fma.f64 #s(literal -27/2800 binary64) (*.f64 eps eps) #s(literal 9/40 binary64)) (*.f64 eps eps) #s(literal -1/2 binary64))
(- (* (pow eps 2) (+ 9/40 (* (pow eps 2) (- (* 27/112000 (pow eps 2)) 27/2800)))) 1/2)
(fma.f64 (fma.f64 (fma.f64 #s(literal 27/112000 binary64) (*.f64 eps eps) #s(literal -27/2800 binary64)) (*.f64 eps eps) #s(literal 9/40 binary64)) (*.f64 eps eps) #s(literal -1/2 binary64))
(* 1/6 (pow eps 3))
(*.f64 (pow.f64 eps #s(literal 3 binary64)) #s(literal 1/6 binary64))
(* (pow eps 3) (+ 1/6 (* -1/120 (pow eps 2))))
(*.f64 (fma.f64 #s(literal -1/120 binary64) (*.f64 eps eps) #s(literal 1/6 binary64)) (pow.f64 eps #s(literal 3 binary64)))
(* (pow eps 3) (+ 1/6 (* (pow eps 2) (- (* 1/5040 (pow eps 2)) 1/120))))
(*.f64 (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)) (pow.f64 eps #s(literal 3 binary64)))
(* (pow eps 3) (+ 1/6 (* (pow eps 2) (- (* (pow eps 2) (+ 1/5040 (* -1/362880 (pow eps 2)))) 1/120))))
(*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal -1/362880 binary64) (*.f64 eps eps) #s(literal 1/5040 binary64)) (*.f64 eps eps) #s(literal -1/120 binary64)) (*.f64 eps eps) #s(literal 1/6 binary64)) (pow.f64 eps #s(literal 3 binary64)))
eps
(* eps (+ 1 (* -1/6 (pow eps 2))))
(fma.f64 #s(literal -1/6 binary64) (pow.f64 eps #s(literal 3 binary64)) eps)
(* eps (+ 1 (* (pow eps 2) (- (* 1/120 (pow eps 2)) 1/6))))
(fma.f64 (fma.f64 #s(literal 1/120 binary64) (*.f64 eps eps) #s(literal -1/6 binary64)) (pow.f64 eps #s(literal 3 binary64)) eps)
(* eps (+ 1 (* (pow eps 2) (- (* (pow eps 2) (+ 1/120 (* -1/5040 (pow eps 2)))) 1/6))))
(fma.f64 (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)) (pow.f64 eps #s(literal 3 binary64)) eps)
(* -1/3 (pow eps 3))
(*.f64 #s(literal -1/3 binary64) (pow.f64 eps #s(literal 3 binary64)))
(* (pow eps 3) (- (* -2/15 (pow eps 2)) 1/3))
(*.f64 (fma.f64 #s(literal -2/15 binary64) (*.f64 eps eps) #s(literal -1/3 binary64)) (pow.f64 eps #s(literal 3 binary64)))
(* (pow eps 3) (- (* (pow eps 2) (- (* -17/315 (pow eps 2)) 2/15)) 1/3))
(*.f64 (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)) (pow.f64 eps #s(literal 3 binary64)))
(* (pow eps 3) (- (* (pow eps 2) (- (* (pow eps 2) (- (* -62/2835 (pow eps 2)) 17/315)) 2/15)) 1/3))
(*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal -62/2835 binary64) (*.f64 eps eps) #s(literal -17/315 binary64)) (*.f64 eps eps) #s(literal -2/15 binary64)) (*.f64 eps eps) #s(literal -1/3 binary64)) (pow.f64 eps #s(literal 3 binary64)))
1
#s(literal 1 binary64)
(- (+ 1 (* -1 (/ (sin eps) eps))) (* -1 (/ (sin eps) (* eps (cos eps)))))
(fma.f64 (/.f64 (sin.f64 eps) eps) (-.f64 #s(literal -1 binary64) (/.f64 #s(literal -1 binary64) (cos.f64 eps))) #s(literal 1 binary64))
(- (+ 1 (+ (* -1 (/ (sin eps) eps)) (/ (* (sin eps) (- (* -1 (sin eps)) (* -1 (/ (sin eps) (cos eps))))) (* (pow eps 2) (cos eps))))) (* -1 (/ (sin eps) (* eps (cos eps)))))
(fma.f64 (/.f64 (sin.f64 eps) (cos.f64 eps)) (-.f64 (/.f64 (-.f64 (/.f64 (sin.f64 eps) (cos.f64 eps)) (sin.f64 eps)) (*.f64 eps eps)) (/.f64 #s(literal -1 binary64) eps)) (-.f64 #s(literal 1 binary64) (/.f64 (sin.f64 eps) eps)))
(- (+ 1 (+ (* -1 (/ (sin eps) eps)) (/ (* (pow (sin eps) 2) (- (* -1 (sin eps)) (* -1 (/ (sin eps) (cos eps))))) (* (pow eps 3) (pow (cos eps) 2))))) (+ (* -1 (/ (sin eps) (* eps (cos eps)))) (* -1 (/ (* (sin eps) (- (* -1 (sin eps)) (* -1 (/ (sin eps) (cos eps))))) (* (pow eps 2) (cos eps))))))
(-.f64 (+.f64 (/.f64 (/.f64 (*.f64 (-.f64 (/.f64 (sin.f64 eps) (cos.f64 eps)) (sin.f64 eps)) (fma.f64 (/.f64 (sin.f64 eps) (pow.f64 (cos.f64 eps) #s(literal 2 binary64))) (/.f64 (sin.f64 eps) eps) (/.f64 (sin.f64 eps) (cos.f64 eps)))) eps) eps) (/.f64 (/.f64 (sin.f64 eps) eps) (cos.f64 eps))) (-.f64 (/.f64 (sin.f64 eps) eps) #s(literal 1 binary64)))
eps
(* eps (+ 1 (* -1 (/ (sin eps) eps))))
(-.f64 eps (sin.f64 eps))
(* eps (+ 1 (* -1 (/ (sin eps) eps))))
(-.f64 eps (sin.f64 eps))
(* eps (+ 1 (* -1 (/ (sin eps) eps))))
(-.f64 eps (sin.f64 eps))
(sin eps)
(sin.f64 eps)
(sin eps)
(sin.f64 eps)
(sin eps)
(sin.f64 eps)
(sin eps)
(sin.f64 eps)
eps
(* eps (+ 1 (* -1 (/ (sin eps) (* eps (cos eps))))))
(-.f64 eps (/.f64 (sin.f64 eps) (cos.f64 eps)))
(* eps (+ 1 (* -1 (/ (sin eps) (* eps (cos eps))))))
(-.f64 eps (/.f64 (sin.f64 eps) (cos.f64 eps)))
(* eps (+ 1 (* -1 (/ (sin eps) (* eps (cos eps))))))
(-.f64 eps (/.f64 (sin.f64 eps) (cos.f64 eps)))
1
#s(literal 1 binary64)
(+ 1 (* -1 (/ (- (sin eps) (/ (sin eps) (cos eps))) eps)))
(fma.f64 (/.f64 (sin.f64 eps) eps) (-.f64 #s(literal -1 binary64) (/.f64 #s(literal -1 binary64) (cos.f64 eps))) #s(literal 1 binary64))
(+ 1 (* -1 (/ (- (+ (sin eps) (/ (* (sin eps) (- (sin eps) (/ (sin eps) (cos eps)))) (* eps (cos eps)))) (/ (sin eps) (cos eps))) eps)))
(-.f64 #s(literal 1 binary64) (/.f64 (fma.f64 (/.f64 (sin.f64 eps) (cos.f64 eps)) (fma.f64 (+.f64 (/.f64 #s(literal -1 binary64) (cos.f64 eps)) #s(literal 1 binary64)) (/.f64 (sin.f64 eps) eps) #s(literal -1 binary64)) (sin.f64 eps)) eps))
(+ 1 (* -1 (/ (- (+ (sin eps) (* -1 (/ (- (* -1 (/ (* (pow (sin eps) 2) (- (sin eps) (/ (sin eps) (cos eps)))) (* eps (pow (cos eps) 2)))) (/ (* (sin eps) (- (sin eps) (/ (sin eps) (cos eps)))) (cos eps))) eps))) (/ (sin eps) (cos eps))) eps)))
(-.f64 #s(literal 1 binary64) (/.f64 (-.f64 (-.f64 (sin.f64 eps) (/.f64 (*.f64 (-.f64 (/.f64 (sin.f64 eps) (cos.f64 eps)) (sin.f64 eps)) (fma.f64 (/.f64 (sin.f64 eps) (pow.f64 (cos.f64 eps) #s(literal 2 binary64))) (/.f64 (sin.f64 eps) eps) (/.f64 (sin.f64 eps) (cos.f64 eps)))) eps)) (/.f64 (sin.f64 eps) (cos.f64 eps))) eps))
eps
(* -1 (* eps (- (/ (sin eps) eps) 1)))
(-.f64 eps (sin.f64 eps))
(* -1 (* eps (- (/ (sin eps) eps) 1)))
(-.f64 eps (sin.f64 eps))
(* -1 (* eps (- (/ (sin eps) eps) 1)))
(-.f64 eps (sin.f64 eps))
(sin eps)
(sin.f64 eps)
(sin eps)
(sin.f64 eps)
(sin eps)
(sin.f64 eps)
(sin eps)
(sin.f64 eps)
eps
(* -1 (* eps (- (/ (sin eps) (* eps (cos eps))) 1)))
(-.f64 eps (/.f64 (sin.f64 eps) (cos.f64 eps)))
(* -1 (* eps (- (/ (sin eps) (* eps (cos eps))) 1)))
(-.f64 eps (/.f64 (sin.f64 eps) (cos.f64 eps)))
(* -1 (* eps (- (/ (sin eps) (* eps (cos eps))) 1)))
(-.f64 eps (/.f64 (sin.f64 eps) (cos.f64 eps)))

rewrite154.0ms (1.5%)

Memory
-12.3MiB live, 148.0MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0619
01119
15119
240819
3594719
0825819
Stop Event
iter limit
node limit
iter limit
Counts
4 → 419
Calls
Call 1
Inputs
(/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps)))
(-.f64 eps (sin.f64 eps))
(sin.f64 eps)
(-.f64 eps (tan.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>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval9.0ms (0.1%)

Memory
11.8MiB live, 11.8MiB allocated
Compiler

Compiled 11 528 to 1 222 computations (89.4% saved)

prune1.0ms (0%)

Memory
1.2MiB live, 1.2MiB allocated
Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New4611462
Fresh000
Picked101
Done000
Total4621463
Accuracy
100.0%
Counts
463 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
#s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64))
Compiler

Compiled 2 to 3 computations (-50% saved)

simplify18.0ms (0.2%)

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

Found 1 expressions of interest:

NewMetricScoreProgram
cost-diff0
#s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0812
0812
11512
22512
34212
47612
514912
632312
762112
891912
993412
1093512
093512
Stop Event
iter limit
saturated
saturated
Calls
Call 1
Inputs
#s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64))
#s(literal -1/2 binary64)
Outputs
#s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64))
#s(literal -1/2 binary64)

localize4.0ms (0%)

Memory
2.0MiB live, 2.0MiB allocated
Localize:

Found 1 expressions of interest:

NewMetricScoreProgram
accuracy0
#s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64))
Samples
2.0ms2valid
1.0ms3valid
0.0ms1valid
Compiler

Compiled 15 to 12 computations (20% saved)

Precisions
Click to see histograms. Total time spent on operations: 3.0ms
ival-tan: 2.0ms (62.4% of total)
ival-sin: 1.0ms (31.2% of total)
adjust: 0.0ms (0% of total)
ival-div: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-sub: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series1.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Counts
1 → 12
Calls
Call 1
Inputs
#s(alt #s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64)) (patch #s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64)) #<representation binary64>) () ())
Outputs
#s(alt -1/2 (taylor 0 eps) (#s(alt #s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64)) (patch #s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (* 9/40 (pow eps 2)) 1/2) (taylor 0 eps) (#s(alt #s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64)) (patch #s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (* (pow eps 2) (+ 9/40 (* -27/2800 (pow eps 2)))) 1/2) (taylor 0 eps) (#s(alt #s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64)) (patch #s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (* (pow eps 2) (+ 9/40 (* (pow eps 2) (- (* 27/112000 (pow eps 2)) 27/2800)))) 1/2) (taylor 0 eps) (#s(alt #s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64)) (patch #s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt 1 (taylor inf eps) (#s(alt #s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64)) (patch #s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (+ 1 (* -1 (/ (sin eps) eps))) (* -1 (/ (sin eps) (* eps (cos eps))))) (taylor inf eps) (#s(alt #s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64)) (patch #s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (+ 1 (+ (* -1 (/ (sin eps) eps)) (/ (* (sin eps) (- (* -1 (sin eps)) (* -1 (/ (sin eps) (cos eps))))) (* (pow eps 2) (cos eps))))) (* -1 (/ (sin eps) (* eps (cos eps))))) (taylor inf eps) (#s(alt #s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64)) (patch #s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (+ 1 (+ (* -1 (/ (sin eps) eps)) (/ (* (pow (sin eps) 2) (- (* -1 (sin eps)) (* -1 (/ (sin eps) (cos eps))))) (* (pow eps 3) (pow (cos eps) 2))))) (+ (* -1 (/ (sin eps) (* eps (cos eps)))) (* -1 (/ (* (sin eps) (- (* -1 (sin eps)) (* -1 (/ (sin eps) (cos eps))))) (* (pow eps 2) (cos eps)))))) (taylor inf eps) (#s(alt #s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64)) (patch #s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt 1 (taylor -inf eps) (#s(alt #s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64)) (patch #s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* -1 (/ (- (sin eps) (/ (sin eps) (cos eps))) eps))) (taylor -inf eps) (#s(alt #s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64)) (patch #s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* -1 (/ (- (+ (sin eps) (/ (* (sin eps) (- (sin eps) (/ (sin eps) (cos eps)))) (* eps (cos eps)))) (/ (sin eps) (cos eps))) eps))) (taylor -inf eps) (#s(alt #s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64)) (patch #s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* -1 (/ (- (+ (sin eps) (* -1 (/ (- (* -1 (/ (* (pow (sin eps) 2) (- (sin eps) (/ (sin eps) (cos eps)))) (* eps (pow (cos eps) 2)))) (/ (* (sin eps) (- (sin eps) (/ (sin eps) (cos eps)))) (cos eps))) eps))) (/ (sin eps) (cos eps))) eps))) (taylor -inf eps) (#s(alt #s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64)) (patch #s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64)) #<representation binary64>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
0.0ms
eps
@0
((/ (- eps (sin eps)) (- eps (tan eps))))
0.0ms
eps
@inf
((/ (- eps (sin eps)) (- eps (tan eps))))
0.0ms
eps
@-inf
((/ (- eps (sin eps)) (- eps (tan eps))))

simplify150.0ms (1.4%)

Memory
-15.7MiB live, 94.8MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
078264
1238242
2773217
33440194
08352186
Stop Event
iter limit
node limit
Counts
12 → 12
Calls
Call 1
Inputs
-1/2
(- (* 9/40 (pow eps 2)) 1/2)
(- (* (pow eps 2) (+ 9/40 (* -27/2800 (pow eps 2)))) 1/2)
(- (* (pow eps 2) (+ 9/40 (* (pow eps 2) (- (* 27/112000 (pow eps 2)) 27/2800)))) 1/2)
1
(- (+ 1 (* -1 (/ (sin eps) eps))) (* -1 (/ (sin eps) (* eps (cos eps)))))
(- (+ 1 (+ (* -1 (/ (sin eps) eps)) (/ (* (sin eps) (- (* -1 (sin eps)) (* -1 (/ (sin eps) (cos eps))))) (* (pow eps 2) (cos eps))))) (* -1 (/ (sin eps) (* eps (cos eps)))))
(- (+ 1 (+ (* -1 (/ (sin eps) eps)) (/ (* (pow (sin eps) 2) (- (* -1 (sin eps)) (* -1 (/ (sin eps) (cos eps))))) (* (pow eps 3) (pow (cos eps) 2))))) (+ (* -1 (/ (sin eps) (* eps (cos eps)))) (* -1 (/ (* (sin eps) (- (* -1 (sin eps)) (* -1 (/ (sin eps) (cos eps))))) (* (pow eps 2) (cos eps))))))
1
(+ 1 (* -1 (/ (- (sin eps) (/ (sin eps) (cos eps))) eps)))
(+ 1 (* -1 (/ (- (+ (sin eps) (/ (* (sin eps) (- (sin eps) (/ (sin eps) (cos eps)))) (* eps (cos eps)))) (/ (sin eps) (cos eps))) eps)))
(+ 1 (* -1 (/ (- (+ (sin eps) (* -1 (/ (- (* -1 (/ (* (pow (sin eps) 2) (- (sin eps) (/ (sin eps) (cos eps)))) (* eps (pow (cos eps) 2)))) (/ (* (sin eps) (- (sin eps) (/ (sin eps) (cos eps)))) (cos eps))) eps))) (/ (sin eps) (cos eps))) eps)))
Outputs
-1/2
#s(literal -1/2 binary64)
(- (* 9/40 (pow eps 2)) 1/2)
(fma.f64 (*.f64 eps eps) #s(literal 9/40 binary64) #s(literal -1/2 binary64))
(- (* (pow eps 2) (+ 9/40 (* -27/2800 (pow eps 2)))) 1/2)
(fma.f64 (fma.f64 #s(literal -27/2800 binary64) (*.f64 eps eps) #s(literal 9/40 binary64)) (*.f64 eps eps) #s(literal -1/2 binary64))
(- (* (pow eps 2) (+ 9/40 (* (pow eps 2) (- (* 27/112000 (pow eps 2)) 27/2800)))) 1/2)
(fma.f64 (fma.f64 (fma.f64 #s(literal 27/112000 binary64) (*.f64 eps eps) #s(literal -27/2800 binary64)) (*.f64 eps eps) #s(literal 9/40 binary64)) (*.f64 eps eps) #s(literal -1/2 binary64))
1
#s(literal 1 binary64)
(- (+ 1 (* -1 (/ (sin eps) eps))) (* -1 (/ (sin eps) (* eps (cos eps)))))
(fma.f64 (/.f64 (sin.f64 eps) eps) (+.f64 (/.f64 #s(literal 1 binary64) (cos.f64 eps)) #s(literal -1 binary64)) #s(literal 1 binary64))
(- (+ 1 (+ (* -1 (/ (sin eps) eps)) (/ (* (sin eps) (- (* -1 (sin eps)) (* -1 (/ (sin eps) (cos eps))))) (* (pow eps 2) (cos eps))))) (* -1 (/ (sin eps) (* eps (cos eps)))))
(+.f64 (/.f64 (*.f64 (-.f64 (sin.f64 eps) (/.f64 (sin.f64 eps) (cos.f64 eps))) (fma.f64 (/.f64 (/.f64 #s(literal -1 binary64) (cos.f64 eps)) eps) (sin.f64 eps) #s(literal -1 binary64))) eps) #s(literal 1 binary64))
(- (+ 1 (+ (* -1 (/ (sin eps) eps)) (/ (* (pow (sin eps) 2) (- (* -1 (sin eps)) (* -1 (/ (sin eps) (cos eps))))) (* (pow eps 3) (pow (cos eps) 2))))) (+ (* -1 (/ (sin eps) (* eps (cos eps)))) (* -1 (/ (* (sin eps) (- (* -1 (sin eps)) (* -1 (/ (sin eps) (cos eps))))) (* (pow eps 2) (cos eps))))))
(-.f64 #s(literal 1 binary64) (-.f64 (/.f64 (sin.f64 eps) eps) (fma.f64 (/.f64 (/.f64 (-.f64 (/.f64 (sin.f64 eps) (cos.f64 eps)) (sin.f64 eps)) (cos.f64 eps)) (*.f64 eps eps)) (+.f64 (/.f64 (/.f64 (pow.f64 (sin.f64 eps) #s(literal 2 binary64)) eps) (cos.f64 eps)) (sin.f64 eps)) (/.f64 (/.f64 (sin.f64 eps) eps) (cos.f64 eps)))))
1
#s(literal 1 binary64)
(+ 1 (* -1 (/ (- (sin eps) (/ (sin eps) (cos eps))) eps)))
(fma.f64 (/.f64 (sin.f64 eps) eps) (+.f64 (/.f64 #s(literal 1 binary64) (cos.f64 eps)) #s(literal -1 binary64)) #s(literal 1 binary64))
(+ 1 (* -1 (/ (- (+ (sin eps) (/ (* (sin eps) (- (sin eps) (/ (sin eps) (cos eps)))) (* eps (cos eps)))) (/ (sin eps) (cos eps))) eps)))
(+.f64 (/.f64 (*.f64 (-.f64 (sin.f64 eps) (/.f64 (sin.f64 eps) (cos.f64 eps))) (fma.f64 (/.f64 (/.f64 #s(literal -1 binary64) (cos.f64 eps)) eps) (sin.f64 eps) #s(literal -1 binary64))) eps) #s(literal 1 binary64))
(+ 1 (* -1 (/ (- (+ (sin eps) (* -1 (/ (- (* -1 (/ (* (pow (sin eps) 2) (- (sin eps) (/ (sin eps) (cos eps)))) (* eps (pow (cos eps) 2)))) (/ (* (sin eps) (- (sin eps) (/ (sin eps) (cos eps)))) (cos eps))) eps))) (/ (sin eps) (cos eps))) eps)))
(-.f64 #s(literal 1 binary64) (/.f64 (fma.f64 (/.f64 (-.f64 (sin.f64 eps) (/.f64 (sin.f64 eps) (cos.f64 eps))) eps) (*.f64 (/.f64 (sin.f64 eps) (cos.f64 eps)) (+.f64 (/.f64 (/.f64 (sin.f64 eps) eps) (cos.f64 eps)) #s(literal 1 binary64))) (-.f64 (sin.f64 eps) (/.f64 (sin.f64 eps) (cos.f64 eps)))) eps))

rewrite147.0ms (1.4%)

Memory
8.2MiB live, 87.4MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0811
0811
14811
240511
3594611
0825811
Stop Event
iter limit
node limit
saturated
Counts
1 → 1
Calls
Call 1
Inputs
#s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64))
Outputs
#<batchref>

eval0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Compiler

Compiled 200 to 55 computations (72.5% saved)

prune0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated
Pruning

1 alts after pruning (0 fresh and 1 done)

PrunedKeptTotal
New13013
Fresh000
Picked011
Done000
Total13114
Accuracy
100.0%
Counts
14 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
#s(approx (/ (- eps (sin eps)) (- eps (tan eps))) #s(literal -1/2 binary64))
Compiler

Compiled 13 to 11 computations (15.4% saved)

regimes0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated
Compiler

Compiled 9 to 6 computations (33.3% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated
Calls

1 calls:

0.0ms
(/.f64 (-.f64 eps (sin.f64 eps)) (-.f64 eps (tan.f64 eps)))

Profiling

Loading profile data...