Details

Time bar (total: 14.0s)

analyze3.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
0%0%100%0%0%0%0%2
50%50%50%0%0%0%0%3
66.7%50%25%0%25%0%0%4
80%50%12.5%0%37.5%0%0%5
88.9%50%6.2%0%43.7%0%0%6
94.1%50%3.1%0%46.9%0%0%7
97%50%1.6%0%48.4%0%0%8
98.5%50%0.8%0%49.2%0%0%9
99.2%50.4%0.4%0%49.2%0%0%10
99.6%50.4%0.2%0%49.4%0%0%11
99.8%50.4%0.1%0%49.5%0%0%12
Compiler

Compiled 10 to 8 computations (20% saved)

sample5.1s (36.3%)

Results
3.1s4182×body1024valid
822.0ms1666×body256valid
615.0ms1997×body512valid
432.0ms411×body2048valid
0.0msbody256infinite
Bogosity

preprocess1.9s (13.8%)

Algorithm
egg-herbie
Rules
15824×rational.json-simplify-41
2168×rational.json-simplify-1
980×rational.json-simplify-35
rational.json-simplify-12
rational.json-simplify-10
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01025
12125
23325
34525
46525
510725
621925
756425
871825
972825
1073825
1174825
1275825
1376825
1477825
1578825
1679825
1780825
1881825
1982825
2083825
2184825
2285825
23248525
24249525
25250525
26251525
27252525
28253525
29331625
30332625
31333625
32334625
33335625
34336625
35337625
36338625
37339625
38340625
39341625
40342625
41343625
42344625
43345625
44346625
45347625
46348625
47349625
48350625
49351625
50352625
51353625
52354625
53355625
54356625
55357625
56358625
57359625
58360625
59361625
60362625
61363625
62364625
63365625
64366625
65367625
66368625
67369625
68370625
69371625
70372625
71373625
72374625
73375625
74376625
75377625
76378625
77379625
78380625
79381625
80382625
81383625
82384625
83385625
84386625
85387625
86388625
87389625
88390625
89391625
90392625
91393625
92394625
93395625
94396625
95397625
96398625
97399625
98400625
99401625
100402625
101403625
102404625
103405625
104406625
105407625
106408625
107409625
108410625
109411625
110412625
111413625
112414625
113415625
114416625
115417625
116418625
117419625
118420625
119421625
120422625
121423625
122424625
123425625
124426625
125427625
126428625
127429625
128430625
129431625
130432625
131433625
132434625
133435625
134436625
135437625
136438625
137439625
138440625
139441625
140442625
141443625
142444625
143445625
144446625
145447625
146448625
147449625
148450625
149451625
150452625
151453625
152454625
153455625
154456625
155457625
156458625
157459625
158460625
159461625
160462625
161463625
162464625
163465625
011
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
Outputs
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
Compiler

Compiled 10 to 8 computations (20% saved)

simplify1.9s (13.7%)

Algorithm
egg-herbie
Rules
15824×rational.json-simplify-41
2168×rational.json-simplify-1
980×rational.json-simplify-35
rational.json-simplify-12
rational.json-simplify-10
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01025
12125
23325
34525
46525
510725
621925
756425
871825
972825
1073825
1174825
1275825
1376825
1477825
1578825
1679825
1780825
1881825
1982825
2083825
2184825
2285825
23248525
24249525
25250525
26251525
27252525
28253525
29331625
30332625
31333625
32334625
33335625
34336625
35337625
36338625
37339625
38340625
39341625
40342625
41343625
42344625
43345625
44346625
45347625
46348625
47349625
48350625
49351625
50352625
51353625
52354625
53355625
54356625
55357625
56358625
57359625
58360625
59361625
60362625
61363625
62364625
63365625
64366625
65367625
66368625
67369625
68370625
69371625
70372625
71373625
72374625
73375625
74376625
75377625
76378625
77379625
78380625
79381625
80382625
81383625
82384625
83385625
84386625
85387625
86388625
87389625
88390625
89391625
90392625
91393625
92394625
93395625
94396625
95397625
96398625
97399625
98400625
99401625
100402625
101403625
102404625
103405625
104406625
105407625
106408625
107409625
108410625
109411625
110412625
111413625
112414625
113415625
114416625
115417625
116418625
117419625
118420625
119421625
120422625
121423625
122424625
123425625
124426625
125427625
126428625
127429625
128430625
129431625
130432625
131433625
132434625
133435625
134436625
135437625
136438625
137439625
138440625
139441625
140442625
141443625
142444625
143445625
144446625
145447625
146448625
147449625
148450625
149451625
150452625
151453625
152454625
153455625
154456625
155457625
156458625
157459625
158460625
159461625
160462625
161463625
162464625
163465625
Stop Event
node limit
Counts
1 → 1
Calls
Call 1
Inputs
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
Outputs
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)

eval0.0ms (0%)

Compiler

Compiled 9 to 7 computations (22.2% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
58.6b
Counts
2 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
58.6b
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
Compiler

Compiled 9 to 7 computations (22.2% saved)

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
5.0b
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
Compiler

Compiled 24 to 8 computations (66.7% saved)

series1.0ms (0%)

Counts
1 → 8
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@0
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
0.0ms
x
@-inf
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
0.0ms
x
@inf
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))

rewrite99.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
1764×rational.json-simplify-35
1310×exponential.json-3
1310×rational.json-1
1310×rational.json-2
1310×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0819
15519
213719
331619
464019
5162819
6445719
Stop Event
node limit
Counts
1 → 46
Calls
Call 1
Inputs
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 x) (/.f64 -1 (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (exp.f64 x) (-.f64 1 (exp.f64 (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (-.f64 1 (exp.f64 (neg.f64 x))) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (-.f64 1 (-.f64 -1 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 -1 (exp.f64 x)) (exp.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (exp.f64 x) (-.f64 1 (exp.f64 (neg.f64 x)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1/2) (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (exp.f64 x) -1) (-.f64 1 (exp.f64 (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 (exp.f64 (neg.f64 x))) (-.f64 1 (neg.f64 (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 x) (-.f64 1 (exp.f64 (*.f64 x -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (-.f64 (*.f64 (exp.f64 x) 1/2) (/.f64 1/2 (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (-.f64 (*.f64 (exp.f64 x) 2) (/.f64 2 (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (exp.f64 x) 1/2) (-.f64 2 (*.f64 2 (exp.f64 (*.f64 x -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (exp.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 (exp.f64 x) 1/2) (/.f64 1/2 (exp.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 (exp.f64 x) 2) (/.f64 2 (exp.f64 x))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 2 (*.f64 2 (exp.f64 (*.f64 x -2)))) (*.f64 (exp.f64 x) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) (*.f64 (exp.f64 (neg.f64 x)) (neg.f64 (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) (*.f64 (neg.f64 (exp.f64 x)) (exp.f64 (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) 4) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) 4)) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 8))) (*.f64 2 (*.f64 2 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))))))

simplify120.0ms (0.9%)

Algorithm
egg-herbie
Rules
1122×rational.json-simplify-2
966×rational.json-simplify-41
944×rational.json-simplify-54
638×rational.json-simplify-42
520×rational.json-simplify-44
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01251202
12441202
25101202
312781202
434211202
550051202
668041202
Stop Event
node limit
Counts
54 → 63
Calls
Call 1
Inputs
(*.f64 2 x)
(+.f64 (*.f64 2 x) (*.f64 1/3 (pow.f64 x 3)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/60 (pow.f64 x 5)))))
(-.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(-.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(-.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(-.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(+.f64 (exp.f64 x) (/.f64 -1 (exp.f64 x)))
(+.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 0)
(+.f64 0 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(+.f64 -1 (+.f64 (exp.f64 x) (-.f64 1 (exp.f64 (neg.f64 x)))))
(+.f64 -1 (+.f64 (-.f64 1 (exp.f64 (neg.f64 x))) (exp.f64 x)))
(+.f64 -2 (-.f64 1 (-.f64 -1 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))
(+.f64 (/.f64 -1 (exp.f64 x)) (exp.f64 x))
(+.f64 (+.f64 (exp.f64 x) (-.f64 1 (exp.f64 (neg.f64 x)))) -1)
(+.f64 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1/2) (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1/2))
(+.f64 (+.f64 (exp.f64 x) -1) (-.f64 1 (exp.f64 (neg.f64 x))))
(+.f64 (-.f64 -1 (exp.f64 (neg.f64 x))) (-.f64 1 (neg.f64 (exp.f64 x))))
(*.f64 (exp.f64 x) (-.f64 1 (exp.f64 (*.f64 x -2))))
(*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1)
(*.f64 1 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(*.f64 -1 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(*.f64 2 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1/2))
(*.f64 2 (-.f64 (*.f64 (exp.f64 x) 1/2) (/.f64 1/2 (exp.f64 x))))
(*.f64 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2) 1/2)
(*.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) -1)
(*.f64 4 (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4))
(*.f64 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4) 1/4)
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2))
(*.f64 1/2 (-.f64 (*.f64 (exp.f64 x) 2) (/.f64 2 (exp.f64 x))))
(*.f64 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1/2) 2)
(*.f64 (*.f64 (exp.f64 x) 1/2) (-.f64 2 (*.f64 2 (exp.f64 (*.f64 x -2)))))
(*.f64 1/4 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4))
(*.f64 (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4) 4)
(*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (exp.f64 x))
(*.f64 (-.f64 (*.f64 (exp.f64 x) 1/2) (/.f64 1/2 (exp.f64 x))) 2)
(*.f64 (-.f64 (*.f64 (exp.f64 x) 2) (/.f64 2 (exp.f64 x))) 1/2)
(*.f64 (-.f64 2 (*.f64 2 (exp.f64 (*.f64 x -2)))) (*.f64 (exp.f64 x) 1/2))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1)
(/.f64 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2) 2)
(/.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) -1)
(/.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) (*.f64 (exp.f64 (neg.f64 x)) (neg.f64 (exp.f64 x))))
(/.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) (*.f64 (neg.f64 (exp.f64 x)) (exp.f64 (neg.f64 x))))
(/.f64 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4) 4)
(/.f64 (*.f64 2 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) -2)
(/.f64 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 8)) 16)
(/.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) 4) -4)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 8))) 32)
(/.f64 (*.f64 2 (*.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) 4)) -8)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 8))) (*.f64 2 (*.f64 2 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 8)))) 64)
(pow.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1)
(neg.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
Outputs
(*.f64 2 x)
(+.f64 (*.f64 2 x) (*.f64 1/3 (pow.f64 x 3)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 2 x)))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 2 x) (*.f64 1/60 (pow.f64 x 5))))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/60 (pow.f64 x 5)))))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5)))))
(+.f64 (*.f64 2 x) (+.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/2520 (pow.f64 x 7)))))
(+.f64 (+.f64 (*.f64 2 x) (*.f64 1/3 (pow.f64 x 3))) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/2520 (pow.f64 x 7)))))
(-.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(-.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(-.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(-.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x)))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(+.f64 (exp.f64 x) (/.f64 -1 (exp.f64 x)))
(+.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 0)
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(+.f64 0 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(+.f64 -1 (+.f64 (exp.f64 x) (-.f64 1 (exp.f64 (neg.f64 x)))))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(+.f64 -1 (+.f64 (-.f64 1 (exp.f64 (neg.f64 x))) (exp.f64 x)))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(+.f64 -2 (-.f64 1 (-.f64 -1 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(+.f64 (/.f64 -1 (exp.f64 x)) (exp.f64 x))
(+.f64 (exp.f64 x) (/.f64 -1 (exp.f64 x)))
(+.f64 (+.f64 (exp.f64 x) (-.f64 1 (exp.f64 (neg.f64 x)))) -1)
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(+.f64 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1/2) (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1/2))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(+.f64 (+.f64 (exp.f64 x) -1) (-.f64 1 (exp.f64 (neg.f64 x))))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(+.f64 (-.f64 -1 (exp.f64 (neg.f64 x))) (-.f64 1 (neg.f64 (exp.f64 x))))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(*.f64 (exp.f64 x) (-.f64 1 (exp.f64 (*.f64 x -2))))
(*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1)
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(*.f64 1 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(*.f64 -1 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(*.f64 2 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1/2))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(*.f64 2 (-.f64 (*.f64 (exp.f64 x) 1/2) (/.f64 1/2 (exp.f64 x))))
(*.f64 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2) 1/2)
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(*.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) -1)
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(*.f64 4 (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(*.f64 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4) 1/4)
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(*.f64 1/2 (-.f64 (*.f64 (exp.f64 x) 2) (/.f64 2 (exp.f64 x))))
(*.f64 1/2 (-.f64 (*.f64 2 (exp.f64 x)) (/.f64 2 (exp.f64 x))))
(*.f64 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1/2) 2)
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(*.f64 (*.f64 (exp.f64 x) 1/2) (-.f64 2 (*.f64 2 (exp.f64 (*.f64 x -2)))))
(*.f64 1/2 (*.f64 (-.f64 2 (*.f64 2 (exp.f64 (*.f64 x -2)))) (exp.f64 x)))
(*.f64 (exp.f64 x) (*.f64 1/2 (-.f64 2 (*.f64 2 (exp.f64 (*.f64 x -2))))))
(*.f64 1/2 (*.f64 (exp.f64 x) (-.f64 2 (*.f64 2 (exp.f64 (*.f64 x -2))))))
(*.f64 1/4 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(*.f64 (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4) 4)
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (exp.f64 x))
(*.f64 (exp.f64 x) (-.f64 1 (exp.f64 (*.f64 x -2))))
(*.f64 (-.f64 (*.f64 (exp.f64 x) 1/2) (/.f64 1/2 (exp.f64 x))) 2)
(*.f64 2 (-.f64 (*.f64 (exp.f64 x) 1/2) (/.f64 1/2 (exp.f64 x))))
(*.f64 (-.f64 (*.f64 (exp.f64 x) 2) (/.f64 2 (exp.f64 x))) 1/2)
(*.f64 1/2 (-.f64 (*.f64 2 (exp.f64 x)) (/.f64 2 (exp.f64 x))))
(*.f64 (-.f64 2 (*.f64 2 (exp.f64 (*.f64 x -2)))) (*.f64 (exp.f64 x) 1/2))
(*.f64 (*.f64 (exp.f64 x) 1/2) (-.f64 2 (*.f64 2 (exp.f64 (*.f64 x -2)))))
(*.f64 1/2 (*.f64 (-.f64 2 (*.f64 2 (exp.f64 (*.f64 x -2)))) (exp.f64 x)))
(*.f64 (exp.f64 x) (*.f64 1/2 (-.f64 2 (*.f64 2 (exp.f64 (*.f64 x -2))))))
(*.f64 1/2 (*.f64 (exp.f64 x) (-.f64 2 (*.f64 2 (exp.f64 (*.f64 x -2))))))
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1)
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(/.f64 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2) 2)
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(/.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) -1)
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(/.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) (*.f64 (exp.f64 (neg.f64 x)) (neg.f64 (exp.f64 x))))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(/.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) (*.f64 (neg.f64 (exp.f64 x)) (exp.f64 (neg.f64 x))))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(/.f64 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 4) 4)
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(/.f64 (*.f64 2 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x))) -2)
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(/.f64 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 8) 8)
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(/.f64 (*.f64 2 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 8)) 16)
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(/.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) 4) -4)
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 8))) 32)
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(/.f64 (*.f64 2 (*.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) 4)) -8)
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 8))) (*.f64 2 (*.f64 2 (*.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 8)))) 64)
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(pow.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 1)
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
(neg.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)))
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))

eval14.0ms (0.1%)

Compiler

Compiled 857 to 533 computations (37.8% saved)

prune97.0ms (0.7%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New59463
Fresh000
Picked011
Done000
Total59564
Error
0b
Counts
64 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
58.6b
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
0.3b
(/.f64 (+.f64 (*.f64 2 x) (+.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))) (*.f64 1/2520 (pow.f64 x 7)))) 2)
0.5b
(/.f64 (+.f64 (*.f64 2 x) (*.f64 1/3 (pow.f64 x 3))) 2)
58.6b
(/.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (exp.f64 x)) 2)
0.8b
(/.f64 (*.f64 2 x) 2)
Compiler

Compiled 63 to 52 computations (17.5% saved)

localize4.0ms (0%)

Compiler

Compiled 11 to 8 computations (27.3% saved)

localize15.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (exp.f64 x))
5.0b
(-.f64 1 (exp.f64 (*.f64 x -2)))
Compiler

Compiled 40 to 29 computations (27.5% saved)

series1.0ms (0%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@inf
(*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (exp.f64 x))
0.0ms
x
@-inf
(*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (exp.f64 x))
0.0ms
x
@0
(*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (exp.f64 x))
0.0ms
x
@0
(-.f64 1 (exp.f64 (*.f64 x -2)))
0.0ms
x
@-inf
(-.f64 1 (exp.f64 (*.f64 x -2)))

rewrite270.0ms (1.9%)

Algorithm
batch-egg-rewrite
Rules
1518×rational.json-1
1518×rational.json-2
1518×rational.json-3
1516×exponential.json-3
1516×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01144
17944
216344
331844
456244
5120244
6251244
7409844
8535044
9712644
Stop Event
node limit
Counts
2 → 50
Calls
Call 1
Inputs
(-.f64 1 (exp.f64 (*.f64 x -2)))
(*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (exp.f64 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (-.f64 1 (+.f64 -2 (exp.f64 (*.f64 x -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 1 (exp.f64 (*.f64 x -2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (neg.f64 (+.f64 -2 (exp.f64 (*.f64 x -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (+.f64 -2 (exp.f64 (*.f64 x -2)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 1/2) (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 1 (exp.f64 (*.f64 x -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (exp.f64 (*.f64 x -2)) -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (+.f64 (exp.f64 (*.f64 x -2)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (exp.f64 (*.f64 x -2)) -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (exp.f64 (*.f64 x -2)) -1)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (+.f64 (exp.f64 (*.f64 x -2)) -1)) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 4 (+.f64 (exp.f64 (*.f64 x -2)) -1))) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 4 (+.f64 (exp.f64 (*.f64 x -2)) -1))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (neg.f64 (*.f64 4 (+.f64 (exp.f64 (*.f64 x -2)) -1)))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (exp.f64 (*.f64 x -2)) -1)))) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (neg.f64 (*.f64 4 (+.f64 (exp.f64 (*.f64 x -2)) -1))))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 (exp.f64 (*.f64 x -2)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 1 (+.f64 -2 (exp.f64 (*.f64 x -2)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (exp.f64 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (*.f64 (exp.f64 x) 1/2)) (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (*.f64 (exp.f64 x) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (exp.f64 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (exp.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (exp.f64 x) (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (*.f64 (exp.f64 x) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (*.f64 (exp.f64 x) 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 2) (*.f64 (exp.f64 x) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 2) (*.f64 (exp.f64 x) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 2) (*.f64 (exp.f64 x) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 2) (*.f64 (exp.f64 x) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (exp.f64 x)) 1)))))

simplify208.0ms (1.5%)

Algorithm
egg-herbie
Rules
2550×rational.json-simplify-2
1988×rational.json-simplify-35
1134×rational.json-simplify-51
1100×rational.json-simplify-1
922×rational.json-simplify-53
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01401604
13281604
27691604
316911604
444191604
551641604
658231604
766251604
869741604
972681604
Stop Event
node limit
Counts
74 → 73
Calls
Call 1
Inputs
(*.f64 2 x)
(+.f64 (*.f64 -2 (pow.f64 x 2)) (*.f64 2 x))
(+.f64 (*.f64 4/3 (pow.f64 x 3)) (+.f64 (*.f64 -2 (pow.f64 x 2)) (*.f64 2 x)))
(+.f64 (*.f64 -2/3 (pow.f64 x 4)) (+.f64 (*.f64 4/3 (pow.f64 x 3)) (+.f64 (*.f64 -2 (pow.f64 x 2)) (*.f64 2 x))))
(-.f64 1 (exp.f64 (*.f64 -2 x)))
(-.f64 1 (exp.f64 (*.f64 -2 x)))
(-.f64 1 (exp.f64 (*.f64 -2 x)))
(-.f64 1 (exp.f64 (*.f64 -2 x)))
(-.f64 1 (exp.f64 (*.f64 -2 x)))
(-.f64 1 (exp.f64 (*.f64 -2 x)))
(-.f64 1 (exp.f64 (*.f64 -2 x)))
(-.f64 1 (exp.f64 (*.f64 -2 x)))
(*.f64 2 x)
(+.f64 (*.f64 2 x) (*.f64 1/3 (pow.f64 x 3)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/60 (pow.f64 x 5)))))
(*.f64 (-.f64 1 (exp.f64 (*.f64 -2 x))) (exp.f64 x))
(*.f64 (-.f64 1 (exp.f64 (*.f64 -2 x))) (exp.f64 x))
(*.f64 (-.f64 1 (exp.f64 (*.f64 -2 x))) (exp.f64 x))
(*.f64 (-.f64 1 (exp.f64 (*.f64 -2 x))) (exp.f64 x))
(*.f64 (-.f64 1 (exp.f64 (*.f64 -2 x))) (exp.f64 x))
(*.f64 (-.f64 1 (exp.f64 (*.f64 -2 x))) (exp.f64 x))
(*.f64 (-.f64 1 (exp.f64 (*.f64 -2 x))) (exp.f64 x))
(*.f64 (-.f64 1 (exp.f64 (*.f64 -2 x))) (exp.f64 x))
(+.f64 -2 (-.f64 1 (+.f64 -2 (exp.f64 (*.f64 x -2)))))
(+.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 0)
(+.f64 0 (-.f64 1 (exp.f64 (*.f64 x -2))))
(+.f64 -1 (neg.f64 (+.f64 -2 (exp.f64 (*.f64 x -2)))))
(+.f64 (neg.f64 (+.f64 -2 (exp.f64 (*.f64 x -2)))) -1)
(+.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 1/2) (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 1/2))
(*.f64 1 (-.f64 1 (exp.f64 (*.f64 x -2))))
(*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 1)
(*.f64 2 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 1/2))
(*.f64 4 (/.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 4))
(*.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 2) 1/2)
(*.f64 (+.f64 (exp.f64 (*.f64 x -2)) -1) -1)
(*.f64 -1 (+.f64 (exp.f64 (*.f64 x -2)) -1))
(*.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 4) 1/4)
(*.f64 1/2 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 2))
(*.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 1/2) 2)
(*.f64 1/4 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 4))
(*.f64 (/.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 4) 4)
(/.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 1)
(/.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 2) 2)
(/.f64 (+.f64 (exp.f64 (*.f64 x -2)) -1) -1)
(/.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 4) 4)
(/.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 8) 8)
(/.f64 (*.f64 2 (+.f64 (exp.f64 (*.f64 x -2)) -1)) -2)
(/.f64 (*.f64 4 (+.f64 (exp.f64 (*.f64 x -2)) -1)) -4)
(/.f64 (*.f64 2 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 8))) 32)
(/.f64 (*.f64 2 (*.f64 4 (+.f64 (exp.f64 (*.f64 x -2)) -1))) -8)
(/.f64 (neg.f64 (*.f64 4 (+.f64 (exp.f64 (*.f64 x -2)) -1))) 4)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 8)))) 64)
(/.f64 (*.f64 2 (neg.f64 (*.f64 4 (+.f64 (exp.f64 (*.f64 x -2)) -1)))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (exp.f64 (*.f64 x -2)) -1)))) -16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (neg.f64 (*.f64 4 (+.f64 (exp.f64 (*.f64 x -2)) -1))))) 16)
(pow.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 1)
(neg.f64 (+.f64 (exp.f64 (*.f64 x -2)) -1))
(neg.f64 (+.f64 1 (+.f64 -2 (exp.f64 (*.f64 x -2)))))
(+.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (exp.f64 x)) 0)
(+.f64 0 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (exp.f64 x)))
(+.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (*.f64 (exp.f64 x) 1/2)) (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (*.f64 (exp.f64 x) 1/2)))
(-.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (exp.f64 x)) 0)
(/.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (exp.f64 x)) 1)
(/.f64 (*.f64 (exp.f64 x) (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 2)) 2)
(/.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (*.f64 (exp.f64 x) 4)) 4)
(/.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (*.f64 (exp.f64 x) 8)) 8)
(/.f64 (*.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 2) (*.f64 (exp.f64 x) 8)) 16)
(/.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 2) (*.f64 (exp.f64 x) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 2) (*.f64 (exp.f64 x) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 2) (*.f64 (exp.f64 x) 8))))) 128)
(pow.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (exp.f64 x)) 1)
Outputs
(*.f64 2 x)
(+.f64 (*.f64 -2 (pow.f64 x 2)) (*.f64 2 x))
(+.f64 (*.f64 2 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 4/3 (pow.f64 x 3)) (+.f64 (*.f64 -2 (pow.f64 x 2)) (*.f64 2 x)))
(+.f64 (*.f64 -2 (pow.f64 x 2)) (+.f64 (*.f64 2 x) (*.f64 4/3 (pow.f64 x 3))))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 -2 (pow.f64 x 2)) (*.f64 4/3 (pow.f64 x 3))))
(+.f64 (*.f64 -2/3 (pow.f64 x 4)) (+.f64 (*.f64 4/3 (pow.f64 x 3)) (+.f64 (*.f64 -2 (pow.f64 x 2)) (*.f64 2 x))))
(+.f64 (*.f64 4/3 (pow.f64 x 3)) (+.f64 (+.f64 (*.f64 2 x) (*.f64 -2 (pow.f64 x 2))) (*.f64 -2/3 (pow.f64 x 4))))
(+.f64 (*.f64 -2 (pow.f64 x 2)) (+.f64 (+.f64 (*.f64 2 x) (*.f64 4/3 (pow.f64 x 3))) (*.f64 -2/3 (pow.f64 x 4))))
(+.f64 (*.f64 4/3 (pow.f64 x 3)) (+.f64 (*.f64 -2 (pow.f64 x 2)) (+.f64 (*.f64 2 x) (*.f64 -2/3 (pow.f64 x 4)))))
(+.f64 (*.f64 -2 (pow.f64 x 2)) (+.f64 (*.f64 2 x) (+.f64 (*.f64 4/3 (pow.f64 x 3)) (*.f64 -2/3 (pow.f64 x 4)))))
(-.f64 1 (exp.f64 (*.f64 -2 x)))
(-.f64 1 (exp.f64 (*.f64 x -2)))
(-.f64 1 (exp.f64 (*.f64 -2 x)))
(-.f64 1 (exp.f64 (*.f64 x -2)))
(-.f64 1 (exp.f64 (*.f64 -2 x)))
(-.f64 1 (exp.f64 (*.f64 x -2)))
(-.f64 1 (exp.f64 (*.f64 -2 x)))
(-.f64 1 (exp.f64 (*.f64 x -2)))
(-.f64 1 (exp.f64 (*.f64 -2 x)))
(-.f64 1 (exp.f64 (*.f64 x -2)))
(-.f64 1 (exp.f64 (*.f64 -2 x)))
(-.f64 1 (exp.f64 (*.f64 x -2)))
(-.f64 1 (exp.f64 (*.f64 -2 x)))
(-.f64 1 (exp.f64 (*.f64 x -2)))
(-.f64 1 (exp.f64 (*.f64 -2 x)))
(-.f64 1 (exp.f64 (*.f64 x -2)))
(*.f64 2 x)
(+.f64 (*.f64 2 x) (*.f64 1/3 (pow.f64 x 3)))
(+.f64 (*.f64 2 x) (*.f64 (pow.f64 x 3) 1/3))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 (pow.f64 x 3) 1/3) (*.f64 1/60 (pow.f64 x 5))))
(+.f64 (*.f64 (pow.f64 x 3) 1/3) (+.f64 (*.f64 2 x) (*.f64 1/60 (pow.f64 x 5))))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/60 (pow.f64 x 5)))))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (+.f64 (*.f64 (pow.f64 x 3) 1/3) (*.f64 1/60 (pow.f64 x 5)))))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 (pow.f64 x 3) 1/3) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/2520 (pow.f64 x 7)))))
(*.f64 (-.f64 1 (exp.f64 (*.f64 -2 x))) (exp.f64 x))
(*.f64 (exp.f64 x) (-.f64 1 (exp.f64 (*.f64 x -2))))
(*.f64 (-.f64 1 (exp.f64 (*.f64 -2 x))) (exp.f64 x))
(*.f64 (exp.f64 x) (-.f64 1 (exp.f64 (*.f64 x -2))))
(*.f64 (-.f64 1 (exp.f64 (*.f64 -2 x))) (exp.f64 x))
(*.f64 (exp.f64 x) (-.f64 1 (exp.f64 (*.f64 x -2))))
(*.f64 (-.f64 1 (exp.f64 (*.f64 -2 x))) (exp.f64 x))
(*.f64 (exp.f64 x) (-.f64 1 (exp.f64 (*.f64 x -2))))
(*.f64 (-.f64 1 (exp.f64 (*.f64 -2 x))) (exp.f64 x))
(*.f64 (exp.f64 x) (-.f64 1 (exp.f64 (*.f64 x -2))))
(*.f64 (-.f64 1 (exp.f64 (*.f64 -2 x))) (exp.f64 x))
(*.f64 (exp.f64 x) (-.f64 1 (exp.f64 (*.f64 x -2))))
(*.f64 (-.f64 1 (exp.f64 (*.f64 -2 x))) (exp.f64 x))
(*.f64 (exp.f64 x) (-.f64 1 (exp.f64 (*.f64 x -2))))
(*.f64 (-.f64 1 (exp.f64 (*.f64 -2 x))) (exp.f64 x))
(*.f64 (exp.f64 x) (-.f64 1 (exp.f64 (*.f64 x -2))))
(+.f64 -2 (-.f64 1 (+.f64 -2 (exp.f64 (*.f64 x -2)))))
(-.f64 1 (exp.f64 (*.f64 x -2)))
(+.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 0)
(-.f64 1 (exp.f64 (*.f64 x -2)))
(+.f64 0 (-.f64 1 (exp.f64 (*.f64 x -2))))
(-.f64 1 (exp.f64 (*.f64 x -2)))
(+.f64 -1 (neg.f64 (+.f64 -2 (exp.f64 (*.f64 x -2)))))
(-.f64 1 (exp.f64 (*.f64 x -2)))
(+.f64 (neg.f64 (+.f64 -2 (exp.f64 (*.f64 x -2)))) -1)
(-.f64 1 (exp.f64 (*.f64 x -2)))
(+.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 1/2) (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 1/2))
(-.f64 1 (exp.f64 (*.f64 x -2)))
(*.f64 1 (-.f64 1 (exp.f64 (*.f64 x -2))))
(-.f64 1 (exp.f64 (*.f64 x -2)))
(*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 1)
(-.f64 1 (exp.f64 (*.f64 x -2)))
(*.f64 2 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 1/2))
(-.f64 1 (exp.f64 (*.f64 x -2)))
(*.f64 4 (/.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 4))
(-.f64 1 (exp.f64 (*.f64 x -2)))
(*.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 2) 1/2)
(-.f64 1 (exp.f64 (*.f64 x -2)))
(*.f64 (+.f64 (exp.f64 (*.f64 x -2)) -1) -1)
(-.f64 1 (exp.f64 (*.f64 x -2)))
(*.f64 -1 (+.f64 (exp.f64 (*.f64 x -2)) -1))
(-.f64 1 (exp.f64 (*.f64 x -2)))
(*.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 4) 1/4)
(-.f64 1 (exp.f64 (*.f64 x -2)))
(*.f64 1/2 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 2))
(-.f64 1 (exp.f64 (*.f64 x -2)))
(*.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 1/2) 2)
(-.f64 1 (exp.f64 (*.f64 x -2)))
(*.f64 1/4 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 4))
(-.f64 1 (exp.f64 (*.f64 x -2)))
(*.f64 (/.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 4) 4)
(-.f64 1 (exp.f64 (*.f64 x -2)))
(/.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 1)
(-.f64 1 (exp.f64 (*.f64 x -2)))
(/.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 2) 2)
(-.f64 1 (exp.f64 (*.f64 x -2)))
(/.f64 (+.f64 (exp.f64 (*.f64 x -2)) -1) -1)
(-.f64 1 (exp.f64 (*.f64 x -2)))
(/.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 4) 4)
(-.f64 1 (exp.f64 (*.f64 x -2)))
(/.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 8) 8)
(-.f64 1 (exp.f64 (*.f64 x -2)))
(/.f64 (*.f64 2 (+.f64 (exp.f64 (*.f64 x -2)) -1)) -2)
(-.f64 1 (exp.f64 (*.f64 x -2)))
(/.f64 (*.f64 4 (+.f64 (exp.f64 (*.f64 x -2)) -1)) -4)
(-.f64 1 (exp.f64 (*.f64 x -2)))
(/.f64 (*.f64 2 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 8)) 16)
(-.f64 1 (exp.f64 (*.f64 x -2)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 8))) 32)
(-.f64 1 (exp.f64 (*.f64 x -2)))
(/.f64 (*.f64 2 (*.f64 4 (+.f64 (exp.f64 (*.f64 x -2)) -1))) -8)
(-.f64 1 (exp.f64 (*.f64 x -2)))
(/.f64 (neg.f64 (*.f64 4 (+.f64 (exp.f64 (*.f64 x -2)) -1))) 4)
(-.f64 1 (exp.f64 (*.f64 x -2)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 8)))) 64)
(-.f64 1 (exp.f64 (*.f64 x -2)))
(/.f64 (*.f64 2 (neg.f64 (*.f64 4 (+.f64 (exp.f64 (*.f64 x -2)) -1)))) 8)
(-.f64 1 (exp.f64 (*.f64 x -2)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (exp.f64 (*.f64 x -2)) -1)))) -16)
(-.f64 1 (exp.f64 (*.f64 x -2)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 8))))) 128)
(-.f64 1 (exp.f64 (*.f64 x -2)))
(/.f64 (*.f64 2 (*.f64 2 (neg.f64 (*.f64 4 (+.f64 (exp.f64 (*.f64 x -2)) -1))))) 16)
(-.f64 1 (exp.f64 (*.f64 x -2)))
(pow.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 1)
(-.f64 1 (exp.f64 (*.f64 x -2)))
(neg.f64 (+.f64 (exp.f64 (*.f64 x -2)) -1))
(-.f64 1 (exp.f64 (*.f64 x -2)))
(neg.f64 (+.f64 1 (+.f64 -2 (exp.f64 (*.f64 x -2)))))
(-.f64 1 (exp.f64 (*.f64 x -2)))
(+.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (exp.f64 x)) 0)
(*.f64 (exp.f64 x) (-.f64 1 (exp.f64 (*.f64 x -2))))
(+.f64 0 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (exp.f64 x)))
(*.f64 (exp.f64 x) (-.f64 1 (exp.f64 (*.f64 x -2))))
(+.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (*.f64 (exp.f64 x) 1/2)) (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (*.f64 (exp.f64 x) 1/2)))
(*.f64 (exp.f64 x) (-.f64 1 (exp.f64 (*.f64 x -2))))
(-.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (exp.f64 x)) 0)
(*.f64 (exp.f64 x) (-.f64 1 (exp.f64 (*.f64 x -2))))
(/.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (exp.f64 x)) 1)
(*.f64 (exp.f64 x) (-.f64 1 (exp.f64 (*.f64 x -2))))
(/.f64 (*.f64 (exp.f64 x) (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 2)) 2)
(*.f64 (exp.f64 x) (-.f64 1 (exp.f64 (*.f64 x -2))))
(/.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (*.f64 (exp.f64 x) 4)) 4)
(*.f64 (exp.f64 x) (-.f64 1 (exp.f64 (*.f64 x -2))))
(/.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (*.f64 (exp.f64 x) 8)) 8)
(*.f64 (exp.f64 x) (-.f64 1 (exp.f64 (*.f64 x -2))))
(/.f64 (*.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 2) (*.f64 (exp.f64 x) 8)) 16)
(*.f64 (exp.f64 x) (-.f64 1 (exp.f64 (*.f64 x -2))))
(/.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 2) (*.f64 (exp.f64 x) 8))) 32)
(*.f64 (exp.f64 x) (-.f64 1 (exp.f64 (*.f64 x -2))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 2) (*.f64 (exp.f64 x) 8)))) 64)
(*.f64 (exp.f64 x) (-.f64 1 (exp.f64 (*.f64 x -2))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) 2) (*.f64 (exp.f64 x) 8))))) 128)
(*.f64 (exp.f64 x) (-.f64 1 (exp.f64 (*.f64 x -2))))
(pow.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (exp.f64 x)) 1)
(*.f64 (exp.f64 x) (-.f64 1 (exp.f64 (*.f64 x -2))))

localize14.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 2 x) (*.f64 1/3 (pow.f64 x 3)))
0.1b
(*.f64 1/3 (pow.f64 x 3))
Compiler

Compiled 36 to 28 computations (22.2% saved)

series2.0ms (0%)

Counts
2 → 3
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(*.f64 1/3 (pow.f64 x 3))
0.0ms
x
@0
(*.f64 1/3 (pow.f64 x 3))
0.0ms
x
@inf
(+.f64 (*.f64 2 x) (*.f64 1/3 (pow.f64 x 3)))
0.0ms
x
@-inf
(*.f64 1/3 (pow.f64 x 3))
0.0ms
x
@0
(+.f64 (*.f64 2 x) (*.f64 1/3 (pow.f64 x 3)))

rewrite125.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
1644×rational.json-simplify-35
1406×exponential.json-3
1406×rational.json-1
1406×rational.json-2
1406×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01038
16538
212438
323038
442438
598238
6274038
7494438
8569638
9707238
Stop Event
node limit
Counts
2 → 39
Calls
Call 1
Inputs
(*.f64 1/3 (pow.f64 x 3))
(+.f64 (*.f64 2 x) (*.f64 1/3 (pow.f64 x 3)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/3 (pow.f64 x 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/3 (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 3) 1/6) (*.f64 (pow.f64 x 3) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/3 (pow.f64 x 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/3 (pow.f64 x 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 3) 2/3) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 3) 4/3) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 3) 8/3) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 x 3) 8/3)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 8/3))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 8/3)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 8/3))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 8/3)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/3 (pow.f64 x 3)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 x (*.f64 (pow.f64 x 3) 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 1/2 (+.f64 x (*.f64 (pow.f64 x 3) 1/6))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (+.f64 (*.f64 x 1/2) (*.f64 (pow.f64 x 3) 1/12)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 8 (+.f64 x (*.f64 (pow.f64 x 3) 1/6))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)) 4) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 (pow.f64 x 3) 1/6)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 8 (+.f64 x (*.f64 (pow.f64 x 3) 1/6))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 x (*.f64 (pow.f64 x 3) 1/6))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x 1/2) (*.f64 (pow.f64 x 3) 1/12)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 8 (+.f64 x (*.f64 (pow.f64 x 3) 1/6))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)) 4) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)) 4)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)) 4))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)) 4)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)) 4))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)) 4)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3)))) 1)))))

simplify214.0ms (1.5%)

Algorithm
egg-herbie
Rules
4070×rational.json-simplify-41
3778×rational.json-simplify-51
2552×rational.json-simplify-35
1220×rational.json-simplify-2
682×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
090852
1206852
2384852
3846852
42263852
53216852
63497852
73724852
83873852
94013852
104150852
114326852
124326852
134460852
144594852
Stop Event
node limit
Counts
42 → 43
Calls
Call 1
Inputs
(*.f64 2 x)
(*.f64 1/3 (pow.f64 x 3))
(*.f64 1/3 (pow.f64 x 3))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) 0)
(+.f64 0 (*.f64 1/3 (pow.f64 x 3)))
(+.f64 (*.f64 (pow.f64 x 3) 1/6) (*.f64 (pow.f64 x 3) 1/6))
(-.f64 (*.f64 1/3 (pow.f64 x 3)) 0)
(/.f64 (*.f64 1/3 (pow.f64 x 3)) 1)
(/.f64 (*.f64 (pow.f64 x 3) 2/3) 2)
(/.f64 (*.f64 (pow.f64 x 3) 4/3) 4)
(/.f64 (*.f64 (pow.f64 x 3) 8/3) 8)
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 3) 8/3)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 8/3))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 8/3)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 8/3))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 8/3)))))) 256)
(pow.f64 (*.f64 1/3 (pow.f64 x 3)) 1)
(-.f64 (+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3)))) 0)
(*.f64 2 (+.f64 x (*.f64 (pow.f64 x 3) 1/6)))
(*.f64 (+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3)))) 1)
(*.f64 1 (+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3)))))
(*.f64 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)) 1/2)
(*.f64 4 (*.f64 1/2 (+.f64 x (*.f64 (pow.f64 x 3) 1/6))))
(*.f64 4 (+.f64 (*.f64 x 1/2) (*.f64 (pow.f64 x 3) 1/12)))
(*.f64 (*.f64 8 (+.f64 x (*.f64 (pow.f64 x 3) 1/6))) 1/4)
(*.f64 (*.f64 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)) 4) 1/8)
(*.f64 1/2 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)))
(*.f64 (+.f64 x (*.f64 (pow.f64 x 3) 1/6)) 2)
(*.f64 1/4 (*.f64 8 (+.f64 x (*.f64 (pow.f64 x 3) 1/6))))
(*.f64 (*.f64 1/2 (+.f64 x (*.f64 (pow.f64 x 3) 1/6))) 4)
(*.f64 1/8 (*.f64 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)) 4))
(*.f64 (+.f64 (*.f64 x 1/2) (*.f64 (pow.f64 x 3) 1/12)) 4)
(/.f64 (+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3)))) 1)
(/.f64 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)) 2)
(/.f64 (*.f64 8 (+.f64 x (*.f64 (pow.f64 x 3) 1/6))) 4)
(/.f64 (*.f64 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)) 4) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)) 4)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)) 4))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)) 4)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)) 4))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)) 4)))))) 256)
(pow.f64 (+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3)))) 1)
Outputs
(*.f64 2 x)
(*.f64 1/3 (pow.f64 x 3))
(*.f64 1/3 (pow.f64 x 3))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) 0)
(*.f64 1/3 (pow.f64 x 3))
(+.f64 0 (*.f64 1/3 (pow.f64 x 3)))
(*.f64 1/3 (pow.f64 x 3))
(+.f64 (*.f64 (pow.f64 x 3) 1/6) (*.f64 (pow.f64 x 3) 1/6))
(*.f64 1/3 (pow.f64 x 3))
(-.f64 (*.f64 1/3 (pow.f64 x 3)) 0)
(*.f64 1/3 (pow.f64 x 3))
(/.f64 (*.f64 1/3 (pow.f64 x 3)) 1)
(*.f64 1/3 (pow.f64 x 3))
(/.f64 (*.f64 (pow.f64 x 3) 2/3) 2)
(*.f64 1/3 (pow.f64 x 3))
(/.f64 (*.f64 (pow.f64 x 3) 4/3) 4)
(*.f64 1/3 (pow.f64 x 3))
(/.f64 (*.f64 (pow.f64 x 3) 8/3) 8)
(*.f64 1/3 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 3) 8/3)) 16)
(*.f64 1/3 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 8/3))) 32)
(*.f64 1/3 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 8/3)))) 64)
(*.f64 1/3 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 8/3))))) 128)
(*.f64 1/3 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 8/3)))))) 256)
(*.f64 1/3 (pow.f64 x 3))
(pow.f64 (*.f64 1/3 (pow.f64 x 3)) 1)
(*.f64 1/3 (pow.f64 x 3))
(-.f64 (+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3)))) 0)
(+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 x x))
(*.f64 2 (+.f64 x (*.f64 (pow.f64 x 3) 1/6)))
(+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 x x))
(*.f64 (+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3)))) 1)
(+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 x x))
(*.f64 1 (+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3)))))
(+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 x x))
(*.f64 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)) 1/2)
(+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 x x))
(*.f64 4 (*.f64 1/2 (+.f64 x (*.f64 (pow.f64 x 3) 1/6))))
(+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 x x))
(*.f64 4 (+.f64 (*.f64 x 1/2) (*.f64 (pow.f64 x 3) 1/12)))
(*.f64 (*.f64 8 (+.f64 x (*.f64 (pow.f64 x 3) 1/6))) 1/4)
(+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 x x))
(*.f64 (*.f64 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)) 4) 1/8)
(+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 x x))
(*.f64 1/2 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)))
(+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 x x))
(*.f64 (+.f64 x (*.f64 (pow.f64 x 3) 1/6)) 2)
(+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 x x))
(*.f64 1/4 (*.f64 8 (+.f64 x (*.f64 (pow.f64 x 3) 1/6))))
(+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 x x))
(*.f64 (*.f64 1/2 (+.f64 x (*.f64 (pow.f64 x 3) 1/6))) 4)
(+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 x x))
(*.f64 1/8 (*.f64 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)) 4))
(+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 x x))
(*.f64 (+.f64 (*.f64 x 1/2) (*.f64 (pow.f64 x 3) 1/12)) 4)
(*.f64 4 (+.f64 (*.f64 x 1/2) (*.f64 (pow.f64 x 3) 1/12)))
(/.f64 (+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3)))) 1)
(+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 x x))
(/.f64 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)) 2)
(+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 x x))
(/.f64 (*.f64 8 (+.f64 x (*.f64 (pow.f64 x 3) 1/6))) 4)
(+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 x x))
(/.f64 (*.f64 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)) 4) 8)
(+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)) 4)) 16)
(+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)) 4))) 32)
(+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)) 4)))) 64)
(+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)) 4))))) 128)
(+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) (*.f64 (pow.f64 x 3) 2/3)) 4)))))) 256)
(+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 x x))
(pow.f64 (+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3)))) 1)
(+.f64 x (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 x x))

localize114.0ms (0.8%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))) (*.f64 1/2520 (pow.f64 x 7)))
0.0b
(*.f64 1/2520 (pow.f64 x 7))
0.0b
(*.f64 1/60 (pow.f64 x 5))
0.1b
(*.f64 1/3 (pow.f64 x 3))
Compiler

Compiled 108 to 87 computations (19.4% saved)

series3.0ms (0%)

Counts
3 → 12
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@0
(*.f64 1/2520 (pow.f64 x 7))
0.0ms
x
@0
(*.f64 1/60 (pow.f64 x 5))
0.0ms
x
@-inf
(*.f64 1/2520 (pow.f64 x 7))
0.0ms
x
@-inf
(*.f64 1/60 (pow.f64 x 5))
0.0ms
x
@inf
(*.f64 1/60 (pow.f64 x 5))

rewrite180.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
2602×rational.json-simplify-2
1672×rational.json-simplify-35
1486×rational.json-simplify-1
1392×exponential.json-3
1392×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01775
110975
219475
338075
475575
5189275
6387075
7530475
8657775
9752475
10752475
Stop Event
node limit
Counts
3 → 48
Calls
Call 1
Inputs
(*.f64 1/60 (pow.f64 x 5))
(*.f64 1/2520 (pow.f64 x 7))
(+.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))) (*.f64 1/2520 (pow.f64 x 7)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/60 (pow.f64 x 5)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/60 (pow.f64 x 5)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 5) 1/120) (*.f64 (pow.f64 x 5) 1/120))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/60 (pow.f64 x 5)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/60 (pow.f64 x 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 5) 1/30) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 5) 1/15) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 x 5) 1/15)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 1/15))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 1/15)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 1/15))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 1/15)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/60 (pow.f64 x 5)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/2520 (pow.f64 x 7)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/2520 (pow.f64 x 7)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 7) 1/5040) (*.f64 (pow.f64 x 7) 1/5040))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/2520 (pow.f64 x 7)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/2520 (pow.f64 x 7)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 7) 1/1260) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 7) 1/630) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 1/2520 (pow.f64 x 7)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 1/2520 (pow.f64 x 7)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/2520 (pow.f64 x 7)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/2520 (pow.f64 x 7)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/2520 (pow.f64 x 7)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/2520 (pow.f64 x 7)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (pow.f64 x 7) 1/5040) (+.f64 (*.f64 (pow.f64 x 3) 1/6) (*.f64 (pow.f64 x 5) 1/120))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (pow.f64 x 7) 1/1260) (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/3 (pow.f64 x 3))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (pow.f64 x 7) 1/5040) (+.f64 (*.f64 (pow.f64 x 3) 1/6) (*.f64 (pow.f64 x 5) 1/120))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (pow.f64 x 7) 1/1260) (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/3 (pow.f64 x 3))) 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 1)))))

simplify434.0ms (3.1%)

Algorithm
egg-herbie
Rules
2974×rational.json-simplify-51
2792×rational.json-simplify-35
1424×rational.json-simplify-1
1218×rational.json-simplify-2
1030×rational.json-simplify-41
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01171854
12661854
26151854
319531854
438251854
542421854
645681854
747231854
848581854
949871854
1056331854
1156391854
1256451854
1356451854
1457741854
1559031854
Stop Event
node limit
Counts
60 → 62
Calls
Call 1
Inputs
(*.f64 1/3 (pow.f64 x 3))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5)))
(+.f64 (*.f64 1/2520 (pow.f64 x 7)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))))
(+.f64 (*.f64 1/2520 (pow.f64 x 7)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))))
(*.f64 1/2520 (pow.f64 x 7))
(+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/60 (pow.f64 x 5)))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/60 (pow.f64 x 5))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/60 (pow.f64 x 5))))
(*.f64 1/2520 (pow.f64 x 7))
(+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/60 (pow.f64 x 5)))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/60 (pow.f64 x 5))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/60 (pow.f64 x 5))))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) 0)
(+.f64 0 (*.f64 1/60 (pow.f64 x 5)))
(+.f64 (*.f64 (pow.f64 x 5) 1/120) (*.f64 (pow.f64 x 5) 1/120))
(-.f64 (*.f64 1/60 (pow.f64 x 5)) 0)
(/.f64 (*.f64 1/60 (pow.f64 x 5)) 1)
(/.f64 (*.f64 (pow.f64 x 5) 1/30) 2)
(/.f64 (*.f64 (pow.f64 x 5) 1/15) 4)
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 5) 1/15)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 1/15))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 1/15)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 1/15))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 1/15)))))) 128)
(pow.f64 (*.f64 1/60 (pow.f64 x 5)) 1)
(+.f64 (*.f64 1/2520 (pow.f64 x 7)) 0)
(+.f64 0 (*.f64 1/2520 (pow.f64 x 7)))
(+.f64 (*.f64 (pow.f64 x 7) 1/5040) (*.f64 (pow.f64 x 7) 1/5040))
(-.f64 (*.f64 1/2520 (pow.f64 x 7)) 0)
(/.f64 (*.f64 1/2520 (pow.f64 x 7)) 1)
(/.f64 (*.f64 (pow.f64 x 7) 1/1260) 2)
(/.f64 (*.f64 (pow.f64 x 7) 1/630) 4)
(/.f64 (*.f64 (*.f64 1/2520 (pow.f64 x 7)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 1/2520 (pow.f64 x 7)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/2520 (pow.f64 x 7)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/2520 (pow.f64 x 7)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/2520 (pow.f64 x 7)) 8))))) 128)
(pow.f64 (*.f64 1/2520 (pow.f64 x 7)) 1)
(-.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 0)
(*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 1)
(*.f64 1 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 7) 1/5040) (+.f64 (*.f64 (pow.f64 x 3) 1/6) (*.f64 (pow.f64 x 5) 1/120))))
(*.f64 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 4))
(*.f64 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 2))
(*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 7) 1/1260) (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/3 (pow.f64 x 3))) 2)))
(*.f64 (+.f64 (*.f64 (pow.f64 x 7) 1/5040) (+.f64 (*.f64 (pow.f64 x 3) 1/6) (*.f64 (pow.f64 x 5) 1/120))) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 4))
(*.f64 (/.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 4) 4)
(*.f64 (+.f64 (*.f64 (pow.f64 x 7) 1/1260) (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/3 (pow.f64 x 3))) 2)) 1/2)
(/.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 1)
(/.f64 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 8))))) 128)
(pow.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 1)
Outputs
(*.f64 1/3 (pow.f64 x 3))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5)))
(+.f64 (*.f64 1/2520 (pow.f64 x 7)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 1/2520 (pow.f64 x 7)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/2520 (pow.f64 x 7))))
(*.f64 1/2520 (pow.f64 x 7))
(+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/60 (pow.f64 x 5)))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/2520 (pow.f64 x 7)))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/60 (pow.f64 x 5))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/60 (pow.f64 x 5))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/2520 (pow.f64 x 7))))
(*.f64 1/2520 (pow.f64 x 7))
(+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/60 (pow.f64 x 5)))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/2520 (pow.f64 x 7)))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/60 (pow.f64 x 5))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/60 (pow.f64 x 5))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) 0)
(*.f64 1/60 (pow.f64 x 5))
(+.f64 0 (*.f64 1/60 (pow.f64 x 5)))
(*.f64 1/60 (pow.f64 x 5))
(+.f64 (*.f64 (pow.f64 x 5) 1/120) (*.f64 (pow.f64 x 5) 1/120))
(*.f64 1/60 (pow.f64 x 5))
(-.f64 (*.f64 1/60 (pow.f64 x 5)) 0)
(*.f64 1/60 (pow.f64 x 5))
(/.f64 (*.f64 1/60 (pow.f64 x 5)) 1)
(*.f64 1/60 (pow.f64 x 5))
(/.f64 (*.f64 (pow.f64 x 5) 1/30) 2)
(*.f64 1/60 (pow.f64 x 5))
(/.f64 (*.f64 (pow.f64 x 5) 1/15) 4)
(*.f64 1/60 (pow.f64 x 5))
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 5) 1/15)) 8)
(*.f64 1/60 (pow.f64 x 5))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 1/15))) 16)
(*.f64 1/60 (pow.f64 x 5))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 1/15)))) 32)
(*.f64 1/60 (pow.f64 x 5))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 1/15))))) 64)
(*.f64 1/60 (pow.f64 x 5))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 5) 1/15)))))) 128)
(*.f64 1/60 (pow.f64 x 5))
(pow.f64 (*.f64 1/60 (pow.f64 x 5)) 1)
(*.f64 1/60 (pow.f64 x 5))
(+.f64 (*.f64 1/2520 (pow.f64 x 7)) 0)
(*.f64 1/2520 (pow.f64 x 7))
(+.f64 0 (*.f64 1/2520 (pow.f64 x 7)))
(*.f64 1/2520 (pow.f64 x 7))
(+.f64 (*.f64 (pow.f64 x 7) 1/5040) (*.f64 (pow.f64 x 7) 1/5040))
(*.f64 1/2520 (pow.f64 x 7))
(-.f64 (*.f64 1/2520 (pow.f64 x 7)) 0)
(*.f64 1/2520 (pow.f64 x 7))
(/.f64 (*.f64 1/2520 (pow.f64 x 7)) 1)
(*.f64 1/2520 (pow.f64 x 7))
(/.f64 (*.f64 (pow.f64 x 7) 1/1260) 2)
(*.f64 1/2520 (pow.f64 x 7))
(/.f64 (*.f64 (pow.f64 x 7) 1/630) 4)
(*.f64 1/2520 (pow.f64 x 7))
(/.f64 (*.f64 (*.f64 1/2520 (pow.f64 x 7)) 8) 8)
(*.f64 1/2520 (pow.f64 x 7))
(/.f64 (*.f64 2 (*.f64 (*.f64 1/2520 (pow.f64 x 7)) 8)) 16)
(*.f64 1/2520 (pow.f64 x 7))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/2520 (pow.f64 x 7)) 8))) 32)
(*.f64 1/2520 (pow.f64 x 7))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/2520 (pow.f64 x 7)) 8)))) 64)
(*.f64 1/2520 (pow.f64 x 7))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/2520 (pow.f64 x 7)) 8))))) 128)
(*.f64 1/2520 (pow.f64 x 7))
(pow.f64 (*.f64 1/2520 (pow.f64 x 7)) 1)
(*.f64 1/2520 (pow.f64 x 7))
(-.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 0)
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/2520 (pow.f64 x 7))))
(*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 1)
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/2520 (pow.f64 x 7))))
(*.f64 1 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/2520 (pow.f64 x 7))))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 7) 1/5040) (+.f64 (*.f64 (pow.f64 x 3) 1/6) (*.f64 (pow.f64 x 5) 1/120))))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 7) 1/5040) (+.f64 (*.f64 (pow.f64 x 5) 1/120) (*.f64 (pow.f64 x 3) 1/6))))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 5) 1/120) (+.f64 (*.f64 (pow.f64 x 3) 1/6) (*.f64 (pow.f64 x 7) 1/5040))))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 3) 1/6) (+.f64 (*.f64 (pow.f64 x 5) 1/120) (*.f64 (pow.f64 x 7) 1/5040))))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 5) 1/120) (+.f64 (*.f64 (pow.f64 x 7) 1/5040) (*.f64 (pow.f64 x 3) 1/6))))
(*.f64 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 2) 1/2)
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/2520 (pow.f64 x 7))))
(*.f64 4 (/.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 4))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/2520 (pow.f64 x 7))))
(*.f64 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 4) 1/4)
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/2520 (pow.f64 x 7))))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 2))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/2520 (pow.f64 x 7))))
(*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 7) 1/1260) (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/3 (pow.f64 x 3))) 2)))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/2520 (pow.f64 x 7))))
(*.f64 (+.f64 (*.f64 (pow.f64 x 7) 1/5040) (+.f64 (*.f64 (pow.f64 x 3) 1/6) (*.f64 (pow.f64 x 5) 1/120))) 2)
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 7) 1/5040) (+.f64 (*.f64 (pow.f64 x 5) 1/120) (*.f64 (pow.f64 x 3) 1/6))))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 5) 1/120) (+.f64 (*.f64 (pow.f64 x 3) 1/6) (*.f64 (pow.f64 x 7) 1/5040))))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 3) 1/6) (+.f64 (*.f64 (pow.f64 x 5) 1/120) (*.f64 (pow.f64 x 7) 1/5040))))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 5) 1/120) (+.f64 (*.f64 (pow.f64 x 7) 1/5040) (*.f64 (pow.f64 x 3) 1/6))))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 4))
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/2520 (pow.f64 x 7))))
(*.f64 (/.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 4) 4)
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/2520 (pow.f64 x 7))))
(*.f64 (+.f64 (*.f64 (pow.f64 x 7) 1/1260) (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/3 (pow.f64 x 3))) 2)) 1/2)
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/2520 (pow.f64 x 7))))
(/.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 1)
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/2520 (pow.f64 x 7))))
(/.f64 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 2) 2)
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/2520 (pow.f64 x 7))))
(/.f64 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 4) 4)
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/2520 (pow.f64 x 7))))
(/.f64 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 8) 8)
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/2520 (pow.f64 x 7))))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 8)) 16)
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/2520 (pow.f64 x 7))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 8))) 32)
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/2520 (pow.f64 x 7))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 8)))) 64)
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/2520 (pow.f64 x 7))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 8))))) 128)
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/2520 (pow.f64 x 7))))
(pow.f64 (+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/2520 (pow.f64 x 7)) (*.f64 1/3 (pow.f64 x 3)))) 1)
(+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 1/60 (pow.f64 x 5)) (*.f64 1/2520 (pow.f64 x 7))))
(+.f64 (*.f64 1/60 (pow.f64 x 5)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/2520 (pow.f64 x 7))))

eval86.0ms (0.6%)

Compiler

Compiled 3808 to 3170 computations (16.8% saved)

prune28.0ms (0.2%)

Pruning

8 alts after pruning (3 fresh and 5 done)

PrunedKeptTotal
New1893192
Fresh000
Picked011
Done044
Total1898197
Error
0b
Counts
197 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
58.6b
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
0.3b
(/.f64 (+.f64 (*.f64 2 x) (+.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))) (*.f64 1/2520 (pow.f64 x 7)))) 2)
0.5b
(/.f64 (+.f64 (*.f64 2 x) (*.f64 1/3 (pow.f64 x 3))) 2)
0.8b
(/.f64 (+.f64 (*.f64 2 x) (*.f64 1/2520 (pow.f64 x 7))) 2)
58.6b
(/.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (exp.f64 x)) 2)
1.5b
(/.f64 (*.f64 (*.f64 2 x) (exp.f64 x)) 2)
0.8b
(/.f64 (*.f64 2 x) 2)
60.0b
(/.f64 (*.f64 1/3 (pow.f64 x 3)) 2)
Compiler

Compiled 92 to 76 computations (17.4% saved)

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(/.f64 (*.f64 1/3 (pow.f64 x 3)) 2)
0.1b
(*.f64 1/3 (pow.f64 x 3))
Compiler

Compiled 20 to 16 computations (20% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@inf
(/.f64 (*.f64 1/3 (pow.f64 x 3)) 2)
0.0ms
x
@-inf
(/.f64 (*.f64 1/3 (pow.f64 x 3)) 2)
0.0ms
x
@0
(/.f64 (*.f64 1/3 (pow.f64 x 3)) 2)

rewrite243.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
2600×rational.json-simplify-35
2246×rational.json-simplify-2
1300×rational.json-simplify-1
1070×exponential.json-3
1070×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0913
16413
215013
329613
454013
5117613
6238813
7367313
8420213
9505913
10598213
11653313
12653313
13724413
14751713
Stop Event
node limit
Counts
1 → 31
Calls
Call 1
Inputs
(/.f64 (*.f64 1/3 (pow.f64 x 3)) 2)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 3) 1/6) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (pow.f64 x 3) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 3) 1/12) (*.f64 (pow.f64 x 3) 1/12))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (pow.f64 x 3) 1/6) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/3 (*.f64 (pow.f64 x 3) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x 3) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/3 (pow.f64 x 3)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (pow.f64 x 3) 1/12))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 x 3) 1/6) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (pow.f64 x 3) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 x 3) 2/3) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 1/3 (pow.f64 x 3)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/6 (pow.f64 x 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 x 3) 4/3) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 x 3) 2) 1/12)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 x 3) 1/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 1/3 (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2/3 (*.f64 (pow.f64 x 3) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 x 3) 8/3) 1/16)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 x 3) 4) 1/24)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/12 (*.f64 (pow.f64 x 3) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 x 3) 1/4) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (pow.f64 x 3) 2/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4/3 (/.f64 (pow.f64 x 3) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 x 3) 1/12) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (pow.f64 x 3) 4/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/16 (*.f64 (pow.f64 x 3) 8/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 1/3 (pow.f64 x 3)) 8) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/24 (*.f64 (pow.f64 x 3) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 x 3) 8) 4/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 x 3) 1/6) 1)))))

simplify304.0ms (2.2%)

Algorithm
egg-herbie
Rules
2482×rational.json-simplify-41
2168×rational.json-simplify-49
2010×rational.json-simplify-2
1664×rational.json-simplify-35
1474×rational.json-simplify-51
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
063559
192559
2188559
3336559
4547559
5810559
61439559
72244559
82721559
93165559
103445559
113623559
123720559
134915559
144954559
155344559
165517559
175563559
185601559
195639559
205677559
215715559
227220559
237258559
247296559
257334559
267372559
Stop Event
node limit
Counts
43 → 31
Calls
Call 1
Inputs
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(+.f64 (*.f64 (pow.f64 x 3) 1/6) 0)
(+.f64 0 (*.f64 (pow.f64 x 3) 1/6))
(+.f64 (*.f64 (pow.f64 x 3) 1/12) (*.f64 (pow.f64 x 3) 1/12))
(-.f64 (*.f64 (pow.f64 x 3) 1/6) 0)
(*.f64 1/3 (*.f64 (pow.f64 x 3) 1/2))
(*.f64 (pow.f64 x 3) 1/6)
(*.f64 (*.f64 1/3 (pow.f64 x 3)) 1/2)
(*.f64 2 (*.f64 (pow.f64 x 3) 1/12))
(*.f64 (*.f64 (pow.f64 x 3) 1/6) 1)
(*.f64 1 (*.f64 (pow.f64 x 3) 1/6))
(*.f64 (*.f64 (pow.f64 x 3) 2/3) 1/4)
(*.f64 4 (/.f64 (*.f64 1/3 (pow.f64 x 3)) 8))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 (*.f64 (pow.f64 x 3) 4/3) 1/8)
(*.f64 (*.f64 (pow.f64 x 3) 2) 1/12)
(*.f64 (*.f64 (pow.f64 x 3) 1/2) 1/3)
(*.f64 1/2 (*.f64 1/3 (pow.f64 x 3)))
(*.f64 2/3 (*.f64 (pow.f64 x 3) 1/4))
(*.f64 (*.f64 (pow.f64 x 3) 8/3) 1/16)
(*.f64 (*.f64 (pow.f64 x 3) 4) 1/24)
(*.f64 1/12 (*.f64 (pow.f64 x 3) 2))
(*.f64 (*.f64 (pow.f64 x 3) 1/4) 2/3)
(*.f64 1/4 (*.f64 (pow.f64 x 3) 2/3))
(*.f64 4/3 (/.f64 (pow.f64 x 3) 8))
(*.f64 (*.f64 (pow.f64 x 3) 1/12) 2)
(*.f64 1/8 (*.f64 (pow.f64 x 3) 4/3))
(*.f64 1/16 (*.f64 (pow.f64 x 3) 8/3))
(*.f64 (/.f64 (*.f64 1/3 (pow.f64 x 3)) 8) 4)
(*.f64 1/24 (*.f64 (pow.f64 x 3) 4))
(*.f64 (/.f64 (pow.f64 x 3) 8) 4/3)
(pow.f64 (*.f64 (pow.f64 x 3) 1/6) 1)
Outputs
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(+.f64 (*.f64 (pow.f64 x 3) 1/6) 0)
(*.f64 1/6 (pow.f64 x 3))
(+.f64 0 (*.f64 (pow.f64 x 3) 1/6))
(*.f64 1/6 (pow.f64 x 3))
(+.f64 (*.f64 (pow.f64 x 3) 1/12) (*.f64 (pow.f64 x 3) 1/12))
(*.f64 1/6 (pow.f64 x 3))
(-.f64 (*.f64 (pow.f64 x 3) 1/6) 0)
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/3 (*.f64 (pow.f64 x 3) 1/2))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 (pow.f64 x 3) 1/6)
(*.f64 1/6 (pow.f64 x 3))
(*.f64 (*.f64 1/3 (pow.f64 x 3)) 1/2)
(*.f64 1/6 (pow.f64 x 3))
(*.f64 2 (*.f64 (pow.f64 x 3) 1/12))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 (*.f64 (pow.f64 x 3) 1/6) 1)
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1 (*.f64 (pow.f64 x 3) 1/6))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 (*.f64 (pow.f64 x 3) 2/3) 1/4)
(*.f64 1/6 (pow.f64 x 3))
(*.f64 4 (/.f64 (*.f64 1/3 (pow.f64 x 3)) 8))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 (*.f64 (pow.f64 x 3) 4/3) 1/8)
(*.f64 1/6 (pow.f64 x 3))
(*.f64 (*.f64 (pow.f64 x 3) 2) 1/12)
(*.f64 1/6 (pow.f64 x 3))
(*.f64 (*.f64 (pow.f64 x 3) 1/2) 1/3)
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/2 (*.f64 1/3 (pow.f64 x 3)))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 2/3 (*.f64 (pow.f64 x 3) 1/4))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 (*.f64 (pow.f64 x 3) 8/3) 1/16)
(*.f64 1/6 (pow.f64 x 3))
(*.f64 (*.f64 (pow.f64 x 3) 4) 1/24)
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/12 (*.f64 (pow.f64 x 3) 2))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 (*.f64 (pow.f64 x 3) 1/4) 2/3)
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/4 (*.f64 (pow.f64 x 3) 2/3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 4/3 (/.f64 (pow.f64 x 3) 8))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 (*.f64 (pow.f64 x 3) 1/12) 2)
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/8 (*.f64 (pow.f64 x 3) 4/3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/16 (*.f64 (pow.f64 x 3) 8/3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 (/.f64 (*.f64 1/3 (pow.f64 x 3)) 8) 4)
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/24 (*.f64 (pow.f64 x 3) 4))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 (/.f64 (pow.f64 x 3) 8) 4/3)
(*.f64 1/6 (pow.f64 x 3))
(pow.f64 (*.f64 (pow.f64 x 3) 1/6) 1)
(*.f64 1/6 (pow.f64 x 3))

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (*.f64 2 x) (exp.f64 x))
Compiler

Compiled 22 to 13 computations (40.9% saved)

series2.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(*.f64 (*.f64 2 x) (exp.f64 x))
0.0ms
x
@-inf
(*.f64 (*.f64 2 x) (exp.f64 x))
0.0ms
x
@0
(*.f64 (*.f64 2 x) (exp.f64 x))

rewrite174.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
1858×rational.json-1
1858×rational.json-2
1256×rational.json-simplify-35
1116×exponential.json-3
1116×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0817
15217
211317
324117
441317
588717
6196017
7344817
8430017
9520817
10618617
11751417
Stop Event
node limit
Counts
1 → 15
Calls
Call 1
Inputs
(*.f64 (*.f64 2 x) (exp.f64 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x x) (exp.f64 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 x x) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (exp.f64 x)) (*.f64 x (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 x x) (exp.f64 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x x) (exp.f64 (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x x) (exp.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (exp.f64 x) 4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (exp.f64 x) (*.f64 x 8)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 16 (*.f64 x (exp.f64 x))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 16 (*.f64 x (exp.f64 x)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 x (exp.f64 x))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 x (exp.f64 x)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 x (exp.f64 x))))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 x (exp.f64 x)))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 x x) (exp.f64 x)) 1)))))

simplify125.0ms (0.9%)

Algorithm
egg-herbie
Rules
970×rational.json-simplify-38
958×rational.json-simplify-1
930×rational.json-simplify-46
800×rational.json-simplify-44
726×rational.json-simplify-49
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
061515
1157497
2302497
3668497
42362497
55009497
66371497
77328497
Stop Event
node limit
Counts
27 → 32
Calls
Call 1
Inputs
(*.f64 2 x)
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 x))
(+.f64 (*.f64 2 (pow.f64 x 2)) (+.f64 (*.f64 2 x) (pow.f64 x 3)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (+.f64 (*.f64 2 x) (+.f64 (*.f64 1/3 (pow.f64 x 4)) (pow.f64 x 3))))
(*.f64 2 (*.f64 (exp.f64 x) x))
(*.f64 2 (*.f64 (exp.f64 x) x))
(*.f64 2 (*.f64 (exp.f64 x) x))
(*.f64 2 (*.f64 (exp.f64 x) x))
(*.f64 2 (*.f64 (exp.f64 x) x))
(*.f64 2 (*.f64 (exp.f64 x) x))
(*.f64 2 (*.f64 (exp.f64 x) x))
(*.f64 2 (*.f64 (exp.f64 x) x))
(+.f64 (*.f64 (+.f64 x x) (exp.f64 x)) 0)
(+.f64 0 (*.f64 (+.f64 x x) (exp.f64 x)))
(+.f64 (*.f64 x (exp.f64 x)) (*.f64 x (exp.f64 x)))
(-.f64 (*.f64 (+.f64 x x) (exp.f64 x)) 0)
(/.f64 (+.f64 x x) (exp.f64 (neg.f64 x)))
(/.f64 (*.f64 (+.f64 x x) (exp.f64 x)) 1)
(/.f64 (*.f64 x (*.f64 (exp.f64 x) 4)) 2)
(/.f64 (*.f64 (exp.f64 x) (*.f64 x 8)) 4)
(/.f64 (*.f64 16 (*.f64 x (exp.f64 x))) 8)
(/.f64 (*.f64 2 (*.f64 16 (*.f64 x (exp.f64 x)))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 x (exp.f64 x))))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 x (exp.f64 x)))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 x (exp.f64 x))))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 x (exp.f64 x)))))))) 256)
(pow.f64 (*.f64 (+.f64 x x) (exp.f64 x)) 1)
Outputs
(*.f64 2 x)
(+.f64 x x)
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 x))
(+.f64 (*.f64 2 x) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (+.f64 x (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (+.f64 (*.f64 2 x) (pow.f64 x 3)))
(+.f64 (*.f64 2 x) (+.f64 (pow.f64 x 3) (*.f64 2 (pow.f64 x 2))))
(+.f64 (pow.f64 x 3) (*.f64 2 (+.f64 x (pow.f64 x 2))))
(+.f64 (*.f64 2 (+.f64 x (pow.f64 x 2))) (pow.f64 x 3))
(+.f64 (*.f64 2 (pow.f64 x 2)) (+.f64 (*.f64 2 x) (+.f64 (*.f64 1/3 (pow.f64 x 4)) (pow.f64 x 3))))
(+.f64 (*.f64 2 x) (+.f64 (+.f64 (pow.f64 x 3) (*.f64 1/3 (pow.f64 x 4))) (*.f64 2 (pow.f64 x 2))))
(+.f64 (*.f64 1/3 (pow.f64 x 4)) (+.f64 (pow.f64 x 3) (*.f64 2 (+.f64 x (pow.f64 x 2)))))
(+.f64 (*.f64 2 (+.f64 x (pow.f64 x 2))) (+.f64 (pow.f64 x 3) (*.f64 1/3 (pow.f64 x 4))))
(*.f64 2 (*.f64 (exp.f64 x) x))
(*.f64 2 (*.f64 x (exp.f64 x)))
(*.f64 (*.f64 2 x) (exp.f64 x))
(*.f64 (exp.f64 x) (+.f64 x x))
(*.f64 2 (*.f64 (exp.f64 x) x))
(*.f64 2 (*.f64 x (exp.f64 x)))
(*.f64 (*.f64 2 x) (exp.f64 x))
(*.f64 (exp.f64 x) (+.f64 x x))
(*.f64 2 (*.f64 (exp.f64 x) x))
(*.f64 2 (*.f64 x (exp.f64 x)))
(*.f64 (*.f64 2 x) (exp.f64 x))
(*.f64 (exp.f64 x) (+.f64 x x))
(*.f64 2 (*.f64 (exp.f64 x) x))
(*.f64 2 (*.f64 x (exp.f64 x)))
(*.f64 (*.f64 2 x) (exp.f64 x))
(*.f64 (exp.f64 x) (+.f64 x x))
(*.f64 2 (*.f64 (exp.f64 x) x))
(*.f64 2 (*.f64 x (exp.f64 x)))
(*.f64 (*.f64 2 x) (exp.f64 x))
(*.f64 (exp.f64 x) (+.f64 x x))
(*.f64 2 (*.f64 (exp.f64 x) x))
(*.f64 2 (*.f64 x (exp.f64 x)))
(*.f64 (*.f64 2 x) (exp.f64 x))
(*.f64 (exp.f64 x) (+.f64 x x))
(*.f64 2 (*.f64 (exp.f64 x) x))
(*.f64 2 (*.f64 x (exp.f64 x)))
(*.f64 (*.f64 2 x) (exp.f64 x))
(*.f64 (exp.f64 x) (+.f64 x x))
(*.f64 2 (*.f64 (exp.f64 x) x))
(*.f64 2 (*.f64 x (exp.f64 x)))
(*.f64 (*.f64 2 x) (exp.f64 x))
(*.f64 (exp.f64 x) (+.f64 x x))
(+.f64 (*.f64 (+.f64 x x) (exp.f64 x)) 0)
(*.f64 2 (*.f64 x (exp.f64 x)))
(*.f64 (*.f64 2 x) (exp.f64 x))
(*.f64 (exp.f64 x) (+.f64 x x))
(+.f64 0 (*.f64 (+.f64 x x) (exp.f64 x)))
(*.f64 2 (*.f64 x (exp.f64 x)))
(*.f64 (*.f64 2 x) (exp.f64 x))
(*.f64 (exp.f64 x) (+.f64 x x))
(+.f64 (*.f64 x (exp.f64 x)) (*.f64 x (exp.f64 x)))
(*.f64 2 (*.f64 x (exp.f64 x)))
(*.f64 (*.f64 2 x) (exp.f64 x))
(*.f64 (exp.f64 x) (+.f64 x x))
(-.f64 (*.f64 (+.f64 x x) (exp.f64 x)) 0)
(*.f64 2 (*.f64 x (exp.f64 x)))
(*.f64 (*.f64 2 x) (exp.f64 x))
(*.f64 (exp.f64 x) (+.f64 x x))
(/.f64 (+.f64 x x) (exp.f64 (neg.f64 x)))
(*.f64 2 (*.f64 x (exp.f64 x)))
(*.f64 (*.f64 2 x) (exp.f64 x))
(*.f64 (exp.f64 x) (+.f64 x x))
(/.f64 (*.f64 (+.f64 x x) (exp.f64 x)) 1)
(*.f64 2 (*.f64 x (exp.f64 x)))
(*.f64 (*.f64 2 x) (exp.f64 x))
(*.f64 (exp.f64 x) (+.f64 x x))
(/.f64 (*.f64 x (*.f64 (exp.f64 x) 4)) 2)
(*.f64 2 (*.f64 x (exp.f64 x)))
(*.f64 (*.f64 2 x) (exp.f64 x))
(*.f64 (exp.f64 x) (+.f64 x x))
(/.f64 (*.f64 (exp.f64 x) (*.f64 x 8)) 4)
(*.f64 2 (*.f64 x (exp.f64 x)))
(*.f64 (*.f64 2 x) (exp.f64 x))
(*.f64 (exp.f64 x) (+.f64 x x))
(/.f64 (*.f64 16 (*.f64 x (exp.f64 x))) 8)
(*.f64 2 (*.f64 x (exp.f64 x)))
(*.f64 (*.f64 2 x) (exp.f64 x))
(*.f64 (exp.f64 x) (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 16 (*.f64 x (exp.f64 x)))) 16)
(*.f64 2 (*.f64 x (exp.f64 x)))
(*.f64 (*.f64 2 x) (exp.f64 x))
(*.f64 (exp.f64 x) (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 x (exp.f64 x))))) 32)
(*.f64 2 (*.f64 x (exp.f64 x)))
(*.f64 (*.f64 2 x) (exp.f64 x))
(*.f64 (exp.f64 x) (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 x (exp.f64 x)))))) 64)
(*.f64 2 (*.f64 x (exp.f64 x)))
(*.f64 (*.f64 2 x) (exp.f64 x))
(*.f64 (exp.f64 x) (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 x (exp.f64 x))))))) 128)
(*.f64 2 (*.f64 x (exp.f64 x)))
(*.f64 (*.f64 2 x) (exp.f64 x))
(*.f64 (exp.f64 x) (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 x (exp.f64 x)))))))) 256)
(*.f64 2 (*.f64 x (exp.f64 x)))
(*.f64 (*.f64 2 x) (exp.f64 x))
(*.f64 (exp.f64 x) (+.f64 x x))
(pow.f64 (*.f64 (+.f64 x x) (exp.f64 x)) 1)
(*.f64 2 (*.f64 x (exp.f64 x)))
(*.f64 (*.f64 2 x) (exp.f64 x))
(*.f64 (exp.f64 x) (+.f64 x x))

localize15.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 1/2520 (pow.f64 x 7))
Compiler

Compiled 36 to 28 computations (22.2% saved)

eval21.0ms (0.2%)

Compiler

Compiled 974 to 779 computations (20% saved)

prune18.0ms (0.1%)

Pruning

8 alts after pruning (1 fresh and 7 done)

PrunedKeptTotal
New89190
Fresh000
Picked011
Done167
Total90898
Error
0b
Counts
98 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
58.6b
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
0.3b
(/.f64 (+.f64 (*.f64 2 x) (+.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))) (*.f64 1/2520 (pow.f64 x 7)))) 2)
0.5b
(/.f64 (+.f64 (*.f64 2 x) (*.f64 1/3 (pow.f64 x 3))) 2)
0.8b
(/.f64 (+.f64 (*.f64 2 x) (*.f64 1/2520 (pow.f64 x 7))) 2)
58.6b
(/.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (exp.f64 x)) 2)
1.5b
(/.f64 (*.f64 (*.f64 2 x) (exp.f64 x)) 2)
0.8b
(/.f64 (*.f64 2 x) 2)
60.0b
(*.f64 (pow.f64 x 3) 1/6)
Compiler

Compiled 90 to 74 computations (17.8% saved)

localize6.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (pow.f64 x 3) 1/6)
Compiler

Compiled 12 to 9 computations (25% saved)

series0.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@0
(*.f64 (pow.f64 x 3) 1/6)
0.0ms
x
@inf
(*.f64 (pow.f64 x 3) 1/6)
0.0ms
x
@-inf
(*.f64 (pow.f64 x 3) 1/6)

rewrite263.0ms (1.9%)

Algorithm
batch-egg-rewrite
Rules
3452×rational.json-simplify-35
1898×rational.json-simplify-2
1122×exponential.json-3
1122×rational.json-1
1122×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
14513
29613
318613
432313
568413
6163513
7271113
8326813
9390813
10461613
11505513
12505513
13505513
14581713
15665213
16767313
Stop Event
node limit
Counts
1 → 18
Calls
Call 1
Inputs
(*.f64 (pow.f64 x 3) 1/6)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 3) 1/6) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (pow.f64 x 3) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 3) 1/12) (*.f64 (pow.f64 x 3) 1/12))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (pow.f64 x 3) 1/6) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 3) 1/6) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 3) 1/3) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 3) 2/3) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 3) 4/3) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3)))))))) 1024)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3))))))))) 2048)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3))))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3)))))))))) 4096)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 x 3) 1/6) 1)))))

simplify1.1s (7.8%)

Algorithm
egg-herbie
Rules
6032×rational.json-simplify-51
3662×rational.json-simplify-35
1462×rational.json-simplify-2
1164×rational.json-simplify-1
800×rational.json-simplify-41
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057390
1145390
2258390
3636390
41514390
53195390
64251390
74432390
84504390
94571390
104634390
114696390
124811390
134872390
144934390
154996390
165058390
175120390
185182390
195244390
205244390
215244390
225306390
235368390
245430390
255492390
265554390
275616390
285678390
295740390
305802390
315864390
325926390
335988390
346050390
356112390
366174390
376236390
Stop Event
node limit
Counts
30 → 19
Calls
Call 1
Inputs
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(+.f64 (*.f64 (pow.f64 x 3) 1/6) 0)
(+.f64 0 (*.f64 (pow.f64 x 3) 1/6))
(+.f64 (*.f64 (pow.f64 x 3) 1/12) (*.f64 (pow.f64 x 3) 1/12))
(-.f64 (*.f64 (pow.f64 x 3) 1/6) 0)
(/.f64 (*.f64 (pow.f64 x 3) 1/6) 1)
(/.f64 (*.f64 (pow.f64 x 3) 1/3) 2)
(/.f64 (*.f64 (pow.f64 x 3) 2/3) 4)
(/.f64 (*.f64 (pow.f64 x 3) 4/3) 8)
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3)))))) 256)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3))))))) 512)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3)))))))) 1024)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3))))))))) 2048)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3))))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3)))))))))) 4096)
(pow.f64 (*.f64 (pow.f64 x 3) 1/6) 1)
Outputs
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(*.f64 1/6 (pow.f64 x 3))
(+.f64 (*.f64 (pow.f64 x 3) 1/6) 0)
(*.f64 1/6 (pow.f64 x 3))
(+.f64 0 (*.f64 (pow.f64 x 3) 1/6))
(*.f64 1/6 (pow.f64 x 3))
(+.f64 (*.f64 (pow.f64 x 3) 1/12) (*.f64 (pow.f64 x 3) 1/12))
(*.f64 1/6 (pow.f64 x 3))
(-.f64 (*.f64 (pow.f64 x 3) 1/6) 0)
(*.f64 1/6 (pow.f64 x 3))
(/.f64 (*.f64 (pow.f64 x 3) 1/6) 1)
(*.f64 1/6 (pow.f64 x 3))
(/.f64 (*.f64 (pow.f64 x 3) 1/3) 2)
(*.f64 1/6 (pow.f64 x 3))
(/.f64 (*.f64 (pow.f64 x 3) 2/3) 4)
(*.f64 1/6 (pow.f64 x 3))
(/.f64 (*.f64 (pow.f64 x 3) 4/3) 8)
(*.f64 1/6 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3)) 16)
(*.f64 1/6 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3))) 32)
(*.f64 1/6 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3)))) 64)
(*.f64 1/6 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3))))) 128)
(*.f64 1/6 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3)))))) 256)
(*.f64 1/6 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3))))))) 512)
(*.f64 1/6 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3)))))))) 1024)
(*.f64 1/6 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3))))))))) 2048)
(*.f64 1/6 (pow.f64 x 3))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3))))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3)))))))))) 4096)
(*.f64 1/6 (pow.f64 x 3))
(pow.f64 (*.f64 (pow.f64 x 3) 1/6) 1)
(*.f64 1/6 (pow.f64 x 3))

eval65.0ms (0.5%)

Compiler

Compiled 246 to 225 computations (8.5% saved)

prune6.0ms (0%)

Pruning

8 alts after pruning (0 fresh and 8 done)

PrunedKeptTotal
New19019
Fresh000
Picked011
Done077
Total19827
Error
0b
Counts
27 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
58.6b
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
0.3b
(/.f64 (+.f64 (*.f64 2 x) (+.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))) (*.f64 1/2520 (pow.f64 x 7)))) 2)
0.5b
(/.f64 (+.f64 (*.f64 2 x) (*.f64 1/3 (pow.f64 x 3))) 2)
0.8b
(/.f64 (+.f64 (*.f64 2 x) (*.f64 1/2520 (pow.f64 x 7))) 2)
58.6b
(/.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (exp.f64 x)) 2)
1.5b
(/.f64 (*.f64 (*.f64 2 x) (exp.f64 x)) 2)
0.8b
(/.f64 (*.f64 2 x) 2)
60.0b
(*.f64 (pow.f64 x 3) 1/6)
Compiler

Compiled 90 to 74 computations (17.8% saved)

regimes14.0ms (0.1%)

Counts
9 → 1
Calls
Call 1
Inputs
(/.f64 (*.f64 2 x) 2)
(*.f64 (pow.f64 x 3) 1/6)
(/.f64 (*.f64 1/3 (pow.f64 x 3)) 2)
(/.f64 (*.f64 (*.f64 2 x) (exp.f64 x)) 2)
(/.f64 (+.f64 (*.f64 2 x) (*.f64 1/2520 (pow.f64 x 7))) 2)
(/.f64 (+.f64 (*.f64 2 x) (*.f64 1/3 (pow.f64 x 3))) 2)
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
(/.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (exp.f64 x)) 2)
(/.f64 (+.f64 (*.f64 2 x) (+.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))) (*.f64 1/2520 (pow.f64 x 7)))) 2)
Outputs
(/.f64 (+.f64 (*.f64 2 x) (+.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))) (*.f64 1/2520 (pow.f64 x 7)))) 2)
Calls

3 calls:

5.0ms
x
3.0ms
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
2.0ms
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
Results
ErrorSegmentsBranch
0.3b1x
0.3b1(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
0.3b1(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
Compiler

Compiled 108 to 84 computations (22.2% saved)

regimes72.0ms (0.5%)

Counts
8 → 1
Calls
Call 1
Inputs
(/.f64 (*.f64 2 x) 2)
(*.f64 (pow.f64 x 3) 1/6)
(/.f64 (*.f64 1/3 (pow.f64 x 3)) 2)
(/.f64 (*.f64 (*.f64 2 x) (exp.f64 x)) 2)
(/.f64 (+.f64 (*.f64 2 x) (*.f64 1/2520 (pow.f64 x 7))) 2)
(/.f64 (+.f64 (*.f64 2 x) (*.f64 1/3 (pow.f64 x 3))) 2)
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
(/.f64 (*.f64 (-.f64 1 (exp.f64 (*.f64 x -2))) (exp.f64 x)) 2)
Outputs
(/.f64 (+.f64 (*.f64 2 x) (*.f64 1/3 (pow.f64 x 3))) 2)
Calls

3 calls:

65.0ms
x
2.0ms
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
2.0ms
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
Results
ErrorSegmentsBranch
0.5b1x
0.5b1(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) 2)
0.5b1(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))
Compiler

Compiled 85 to 65 computations (23.5% saved)

regimes6.0ms (0%)

Counts
5 → 1
Calls
Call 1
Inputs
(/.f64 (*.f64 2 x) 2)
(*.f64 (pow.f64 x 3) 1/6)
(/.f64 (*.f64 1/3 (pow.f64 x 3)) 2)
(/.f64 (*.f64 (*.f64 2 x) (exp.f64 x)) 2)
(/.f64 (+.f64 (*.f64 2 x) (*.f64 1/2520 (pow.f64 x 7))) 2)
Outputs
(/.f64 (+.f64 (*.f64 2 x) (*.f64 1/2520 (pow.f64 x 7))) 2)
Calls

1 calls:

4.0ms
x
Results
ErrorSegmentsBranch
0.8b1x
Compiler

Compiled 39 to 31 computations (20.5% saved)

regimes6.0ms (0%)

Accuracy

Total -59.3b remaining (-7513%)

Threshold costs -59.3b (-7513%)

Counts
4 → 1
Calls
Call 1
Inputs
(/.f64 (*.f64 2 x) 2)
(*.f64 (pow.f64 x 3) 1/6)
(/.f64 (*.f64 1/3 (pow.f64 x 3)) 2)
(/.f64 (*.f64 (*.f64 2 x) (exp.f64 x)) 2)
Outputs
(/.f64 (*.f64 2 x) 2)
Calls

1 calls:

5.0ms
x
Results
ErrorSegmentsBranch
0.8b1x
Compiler

Compiled 28 to 22 computations (21.4% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
026142
Stop Event
done
saturated
Calls
Call 1
Inputs
(/.f64 (+.f64 (*.f64 2 x) (+.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))) (*.f64 1/2520 (pow.f64 x 7)))) 2)
(/.f64 (+.f64 (*.f64 2 x) (*.f64 1/3 (pow.f64 x 3))) 2)
(/.f64 (+.f64 (*.f64 2 x) (*.f64 1/2520 (pow.f64 x 7))) 2)
(/.f64 (*.f64 2 x) 2)
Outputs
(/.f64 (+.f64 (*.f64 2 x) (+.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 1/60 (pow.f64 x 5))) (*.f64 1/2520 (pow.f64 x 7)))) 2)
(/.f64 (+.f64 (*.f64 2 x) (*.f64 1/3 (pow.f64 x 3))) 2)
(/.f64 (+.f64 (*.f64 2 x) (*.f64 1/2520 (pow.f64 x 7))) 2)
(/.f64 (*.f64 2 x) 2)
Compiler

Compiled 54 to 45 computations (16.7% saved)

soundness368.0ms (2.6%)

Algorithm
egg-herbie
Rules
1122×rational.json-simplify-2
966×rational.json-simplify-41
944×rational.json-simplify-54
638×rational.json-simplify-42
520×rational.json-simplify-44
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01251202
12441202
25101202
312781202
434211202
550051202
668041202
Stop Event
node limit
Compiler

Compiled 93 to 77 computations (17.2% saved)

end214.0ms (1.5%)

Compiler

Compiled 51 to 42 computations (17.6% saved)

Profiling

Loading profile data...