Details

Time bar (total: 6.2s)

analyze2.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%74.6%25.4%0%0%0%0
0%0%74.6%25.4%0%0%0%1
50%37.3%37.3%25.4%0%0%0%2
66.7%37.3%18.7%25.4%18.7%0%0%3
83.3%46.7%9.3%25.4%18.7%0%0%4
90.9%46.7%4.7%25.4%23.3%0%0%5
95.5%49%2.3%25.4%23.3%0%0%6
97.7%49%1.2%25.4%24.5%0%0%7
98.8%49.6%0.6%25.4%24.5%0%0%8
99.4%49.9%0.3%25.4%24.5%0%0%9
99.7%49.9%0.1%25.4%24.6%0%0%10
99.9%49.9%0.1%25.4%24.7%0%0%11
99.9%49.9%0%25.4%24.7%0%0%12
Compiler

Compiled 8 to 6 computations (25% saved)

sample2.9s (46.7%)

Results
1.2s436×body2048valid
1.1s4166×body1024valid
348.0ms1608×body256valid
279.0ms2046×body512valid
0.0msbody256infinite
Bogosity

preprocess4.0ms (0.1%)

Algorithm
egg-herbie
Rules
rational.json-simplify-16
rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
1911
21011
011
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(-.f64 (exp.f64 x) 1)
Outputs
(-.f64 (exp.f64 x) 1)
(+.f64 (exp.f64 x) -1)
Compiler

Compiled 6 to 5 computations (16.7% saved)

simplify110.0ms (1.8%)

Algorithm
egg-herbie
Rules
rational.json-simplify-16
rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
1911
21011
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(-.f64 (exp.f64 x) 1)
Outputs
(-.f64 (exp.f64 x) 1)
(+.f64 (exp.f64 x) -1)

eval0.0ms (0%)

Compiler

Compiled 9 to 6 computations (33.3% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
59.1b
Counts
3 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
59.1b
(-.f64 (exp.f64 x) 1)
Compiler

Compiled 5 to 4 computations (20% saved)

localize4.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
8.0b
(-.f64 (exp.f64 x) 1)
Compiler

Compiled 9 to 5 computations (44.4% saved)

series0.0ms (0%)

Counts
1 → 4
Calls

3 calls:

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

rewrite129.0ms (2.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
15511
213011
324011
442611
588711
6219511
7369411
8438611
9540811
10630011
Stop Event
node limit
Counts
1 → 29
Calls
Call 1
Inputs
(-.f64 (exp.f64 x) 1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (exp.f64 x) -1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 (exp.f64 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (exp.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (exp.f64 x) 1/2) (+.f64 (*.f64 (exp.f64 x) 1/2) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (exp.f64 x) -1) 1/2) (*.f64 (+.f64 (exp.f64 x) -1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 (exp.f64 x) 1/2) -1) (*.f64 (exp.f64 x) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (exp.f64 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (exp.f64 x) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (exp.f64 x) -1) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (exp.f64 x) 2) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (exp.f64 x) -1) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (exp.f64 x) 2) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (exp.f64 x) -1) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (exp.f64 x) -1) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (exp.f64 x) -1) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (exp.f64 x) -1) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (exp.f64 x) -1) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (exp.f64 x) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (exp.f64 x) 2) -2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (exp.f64 x) -1) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (exp.f64 x) -1) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (exp.f64 x) -1) 1)))))

simplify718.0ms (11.5%)

Algorithm
egg-herbie
Rules
3660×rational.json-simplify-51
2938×rational.json-simplify-2
1606×rational.json-simplify-35
1376×rational.json-simplify-48
1270×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
076431
1156431
2425431
31285431
42173431
52586431
62676431
72779431
82904431
93049431
104007431
114183431
124294431
134407431
144460431
154502431
164963431
174991431
185019431
195068431
205103431
216780431
226943431
237006431
247070431
257144431
267205431
277288431
287348431
297441431
307496431
317531431
Stop Event
node limit
Counts
33 → 43
Calls
Call 1
Inputs
x
(+.f64 (*.f64 1/2 (pow.f64 x 2)) x)
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) x))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/24 (pow.f64 x 4)) x)))
(+.f64 (exp.f64 x) -1)
(+.f64 (+.f64 (exp.f64 x) -1) 0)
(+.f64 0 (+.f64 (exp.f64 x) -1))
(+.f64 -1 (exp.f64 x))
(+.f64 (*.f64 (exp.f64 x) 1/2) (+.f64 (*.f64 (exp.f64 x) 1/2) -1))
(+.f64 (*.f64 (+.f64 (exp.f64 x) -1) 1/2) (*.f64 (+.f64 (exp.f64 x) -1) 1/2))
(+.f64 (+.f64 (*.f64 (exp.f64 x) 1/2) -1) (*.f64 (exp.f64 x) 1/2))
(*.f64 1 (+.f64 (exp.f64 x) -1))
(*.f64 (+.f64 (exp.f64 x) -1) 1)
(*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 1/2))
(*.f64 4 (*.f64 (+.f64 (exp.f64 x) -1) 1/4))
(*.f64 (+.f64 (*.f64 (exp.f64 x) 2) -2) 1/2)
(*.f64 (*.f64 (+.f64 (exp.f64 x) -1) 4) 1/4)
(*.f64 1/2 (+.f64 (*.f64 (exp.f64 x) 2) -2))
(*.f64 (*.f64 (+.f64 (exp.f64 x) -1) 8) 1/8)
(*.f64 1/4 (*.f64 (+.f64 (exp.f64 x) -1) 4))
(*.f64 (*.f64 (+.f64 (exp.f64 x) -1) 1/2) 2)
(*.f64 1/8 (*.f64 (+.f64 (exp.f64 x) -1) 8))
(*.f64 (*.f64 (+.f64 (exp.f64 x) -1) 1/4) 4)
(/.f64 (+.f64 (exp.f64 x) -1) 1)
(/.f64 (+.f64 (*.f64 (exp.f64 x) 2) -2) 2)
(/.f64 (*.f64 (+.f64 (exp.f64 x) -1) 4) 4)
(/.f64 (*.f64 (+.f64 (exp.f64 x) -1) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8)))))) 256)
(pow.f64 (+.f64 (exp.f64 x) -1) 1)
Outputs
x
(+.f64 (*.f64 1/2 (pow.f64 x 2)) x)
(+.f64 x (*.f64 1/2 (pow.f64 x 2)))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) x))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 x (*.f64 1/6 (pow.f64 x 3))))
(+.f64 x (+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))))
(+.f64 x (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/24 (pow.f64 x 4)) x)))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (+.f64 x (*.f64 1/24 (pow.f64 x 4))) (*.f64 1/6 (pow.f64 x 3))))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/6 (pow.f64 x 3)) (+.f64 x (*.f64 1/24 (pow.f64 x 4)))))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (+.f64 x (*.f64 1/6 (pow.f64 x 3))) (*.f64 1/24 (pow.f64 x 4))))
(+.f64 x (+.f64 (+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/24 (pow.f64 x 4))) (*.f64 1/2 (pow.f64 x 2))))
(+.f64 x (+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/24 (pow.f64 x 4)))))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 x (+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/24 (pow.f64 x 4)))))
(+.f64 (exp.f64 x) -1)
(+.f64 (+.f64 (exp.f64 x) -1) 0)
(+.f64 (exp.f64 x) -1)
(+.f64 0 (+.f64 (exp.f64 x) -1))
(+.f64 (exp.f64 x) -1)
(+.f64 -1 (exp.f64 x))
(+.f64 (exp.f64 x) -1)
(+.f64 (*.f64 (exp.f64 x) 1/2) (+.f64 (*.f64 (exp.f64 x) 1/2) -1))
(+.f64 (exp.f64 x) -1)
(+.f64 (*.f64 (+.f64 (exp.f64 x) -1) 1/2) (*.f64 (+.f64 (exp.f64 x) -1) 1/2))
(+.f64 (exp.f64 x) -1)
(+.f64 (+.f64 (*.f64 (exp.f64 x) 1/2) -1) (*.f64 (exp.f64 x) 1/2))
(+.f64 (exp.f64 x) -1)
(*.f64 1 (+.f64 (exp.f64 x) -1))
(+.f64 (exp.f64 x) -1)
(*.f64 (+.f64 (exp.f64 x) -1) 1)
(+.f64 (exp.f64 x) -1)
(*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 1/2))
(+.f64 (exp.f64 x) -1)
(*.f64 4 (*.f64 (+.f64 (exp.f64 x) -1) 1/4))
(+.f64 (exp.f64 x) -1)
(*.f64 (+.f64 (*.f64 (exp.f64 x) 2) -2) 1/2)
(+.f64 (exp.f64 x) -1)
(*.f64 (*.f64 (+.f64 (exp.f64 x) -1) 4) 1/4)
(+.f64 (exp.f64 x) -1)
(*.f64 1/2 (+.f64 (*.f64 (exp.f64 x) 2) -2))
(+.f64 (exp.f64 x) -1)
(*.f64 (*.f64 (+.f64 (exp.f64 x) -1) 8) 1/8)
(+.f64 (exp.f64 x) -1)
(*.f64 1/4 (*.f64 (+.f64 (exp.f64 x) -1) 4))
(+.f64 (exp.f64 x) -1)
(*.f64 (*.f64 (+.f64 (exp.f64 x) -1) 1/2) 2)
(+.f64 (exp.f64 x) -1)
(*.f64 1/8 (*.f64 (+.f64 (exp.f64 x) -1) 8))
(+.f64 (exp.f64 x) -1)
(*.f64 (*.f64 (+.f64 (exp.f64 x) -1) 1/4) 4)
(+.f64 (exp.f64 x) -1)
(/.f64 (+.f64 (exp.f64 x) -1) 1)
(+.f64 (exp.f64 x) -1)
(/.f64 (+.f64 (*.f64 (exp.f64 x) 2) -2) 2)
(+.f64 (exp.f64 x) -1)
(/.f64 (*.f64 (+.f64 (exp.f64 x) -1) 4) 4)
(+.f64 (exp.f64 x) -1)
(/.f64 (*.f64 (+.f64 (exp.f64 x) -1) 8) 8)
(+.f64 (exp.f64 x) -1)
(/.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8)) 16)
(+.f64 (exp.f64 x) -1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8))) 32)
(+.f64 (exp.f64 x) -1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8)))) 64)
(+.f64 (exp.f64 x) -1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8))))) 128)
(+.f64 (exp.f64 x) -1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8)))))) 256)
(+.f64 (exp.f64 x) -1)
(pow.f64 (+.f64 (exp.f64 x) -1) 1)
(+.f64 (exp.f64 x) -1)

eval10.0ms (0.2%)

Compiler

Compiled 454 to 346 computations (23.8% saved)

prune7.0ms (0.1%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New39443
Fresh000
Picked011
Done000
Total39544
Error
0.0b
Counts
44 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
59.1b
(-.f64 (exp.f64 x) 1)
59.1b
(+.f64 (+.f64 (*.f64 (exp.f64 x) 1/2) -1) (*.f64 (exp.f64 x) 1/2))
0.3b
(+.f64 (*.f64 1/2 (pow.f64 x 2)) x)
0.1b
(+.f64 x (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))))
0.8b
x
Compiler

Compiled 41 to 31 computations (24.4% saved)

localize18.0ms (0.3%)

Local error

Found 3 expressions with local error:

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

Compiled 46 to 36 computations (21.7% saved)

series3.0ms (0%)

Counts
3 → 12
Calls

9 calls:

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

rewrite186.0ms (3%)

Algorithm
batch-egg-rewrite
Rules
2534×rational.json-simplify-2
1578×rational.json-simplify-35
1534×rational.json-simplify-1
1270×exponential.json-3
1270×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01251
17751
214251
326451
447551
5105951
6275251
7477551
8547251
9663951
10743051
11743051
Stop Event
node limit
Counts
3 → 74
Calls
Call 1
Inputs
(*.f64 1/6 (pow.f64 x 3))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3)))
(pow.f64 x 2)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/6 (pow.f64 x 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/6 (pow.f64 x 3)))))) (#(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 1/6 (pow.f64 x 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/6 (pow.f64 x 3)) 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 pow.f64 (*.f64 1/6 (pow.f64 x 3)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 1/8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 4) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 (pow.f64 x 3) 2/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 1/8) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 (pow.f64 x 3) 2/3)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 4) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 4)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 4))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 4)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 4))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 4)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 x 2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/2 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 x 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 2) 1/4) (*.f64 (pow.f64 x 2) 3/4))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 2) 3/4) (*.f64 (pow.f64 x 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (pow.f64 x 2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 2 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 1/2 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (pow.f64 x 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 x 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (pow.f64 x 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (pow.f64 x 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (+.f64 x x) 2) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (pow.f64 x 2) 1/8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 x 2) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (pow.f64 (+.f64 x x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 x 2) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 16 (*.f64 (pow.f64 x 2) 1/16))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (pow.f64 x 2) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 x 2) 1/8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/16 (*.f64 (pow.f64 x 2) 16))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 x 2) 1/16) 16)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 x 2) 16) 1/16)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/64 (pow.f64 (*.f64 x 8) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 x 8) 2) 1/64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 x 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (pow.f64 x 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (+.f64 x x) 2) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 x 2) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 8)))))) 256)))))

simplify480.0ms (7.7%)

Algorithm
egg-herbie
Rules
3300×rational.json-simplify-35
3174×rational.json-simplify-51
2698×rational.json-simplify-2
1302×rational.json-simplify-1
590×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01401556
12991556
28331556
319351556
431741556
538791556
641231556
742741556
844021556
945191556
1046351556
1146351556
1247511556
1348671556
1472241556
1575041556
1676211556
1777361556
1878421556
1979481556
Stop Event
node limit
Counts
86 → 79
Calls
Call 1
Inputs
(*.f64 1/2 (pow.f64 x 2))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2)))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2)))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2)))
(*.f64 1/6 (pow.f64 x 3))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2)))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2)))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2)))
(*.f64 1/6 (pow.f64 x 3))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2)))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2)))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2)))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) 0)
(+.f64 0 (*.f64 1/6 (pow.f64 x 3)))
(+.f64 (*.f64 (pow.f64 x 3) 1/12) (*.f64 (pow.f64 x 3) 1/12))
(-.f64 (*.f64 1/6 (pow.f64 x 3)) 0)
(/.f64 (*.f64 1/6 (pow.f64 x 3)) 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)
(pow.f64 (*.f64 1/6 (pow.f64 x 3)) 1)
(-.f64 (*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))) 0)
(*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))
(*.f64 2 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 1/4))
(*.f64 (*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))) 1)
(*.f64 1 (*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))))
(*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 1/2)
(*.f64 4 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 1/8))
(*.f64 (*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))) 1/4)
(*.f64 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 4) 1/8)
(*.f64 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 1/4) 2)
(*.f64 1/4 (*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))))
(*.f64 1/4 (+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 (pow.f64 x 3) 2/3)))
(*.f64 1/8 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 4))
(*.f64 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 1/8) 4)
(*.f64 (+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 (pow.f64 x 3) 2/3)) 1/4)
(/.f64 (*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))) 1)
(/.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 2)
(/.f64 (*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))) 4)
(/.f64 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 4) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 4)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 4))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 4)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 4))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 4)))))) 256)
(pow.f64 (*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))) 1)
(+.f64 (pow.f64 x 2) 0)
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/2 (pow.f64 x 2)))
(+.f64 0 (pow.f64 x 2))
(+.f64 (*.f64 (pow.f64 x 2) 1/4) (*.f64 (pow.f64 x 2) 3/4))
(+.f64 (*.f64 (pow.f64 x 2) 3/4) (*.f64 (pow.f64 x 2) 1/4))
(-.f64 (pow.f64 x 2) 0)
(*.f64 1/2 (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (*.f64 1/2 (pow.f64 x 2)))
(*.f64 (pow.f64 x 2) 1)
(*.f64 (*.f64 1/2 (pow.f64 x 2)) 2)
(*.f64 1 (pow.f64 x 2))
(*.f64 (*.f64 2 (pow.f64 x 2)) 1/2)
(*.f64 4 (*.f64 (pow.f64 x 2) 1/4))
(*.f64 (pow.f64 (+.f64 x x) 2) 1/4)
(*.f64 8 (*.f64 (pow.f64 x 2) 1/8))
(*.f64 (*.f64 (pow.f64 x 2) 8) 1/8)
(*.f64 1/4 (pow.f64 (+.f64 x x) 2))
(*.f64 (*.f64 (pow.f64 x 2) 1/4) 4)
(*.f64 16 (*.f64 (pow.f64 x 2) 1/16))
(*.f64 1/8 (*.f64 (pow.f64 x 2) 8))
(*.f64 (*.f64 (pow.f64 x 2) 1/8) 8)
(*.f64 1/16 (*.f64 (pow.f64 x 2) 16))
(*.f64 (*.f64 (pow.f64 x 2) 1/16) 16)
(*.f64 (*.f64 (pow.f64 x 2) 16) 1/16)
(*.f64 1/64 (pow.f64 (*.f64 x 8) 2))
(*.f64 (pow.f64 (*.f64 x 8) 2) 1/64)
(/.f64 (pow.f64 x 2) 1)
(/.f64 (*.f64 2 (pow.f64 x 2)) 2)
(/.f64 (pow.f64 (+.f64 x x) 2) 4)
(/.f64 (*.f64 (pow.f64 x 2) 8) 8)
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 2) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 8)))))) 256)
Outputs
(*.f64 1/2 (pow.f64 x 2))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2)))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3)))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2)))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3)))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2)))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3)))
(*.f64 1/6 (pow.f64 x 3))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2)))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3)))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2)))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3)))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2)))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3)))
(*.f64 1/6 (pow.f64 x 3))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2)))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3)))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2)))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3)))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2)))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3)))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) 0)
(*.f64 1/6 (pow.f64 x 3))
(+.f64 0 (*.f64 1/6 (pow.f64 x 3)))
(*.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 1/6 (pow.f64 x 3)) 0)
(*.f64 1/6 (pow.f64 x 3))
(/.f64 (*.f64 1/6 (pow.f64 x 3)) 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))
(pow.f64 (*.f64 1/6 (pow.f64 x 3)) 1)
(*.f64 1/6 (pow.f64 x 3))
(-.f64 (*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))) 0)
(*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))
(*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))
(*.f64 2 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 1/4))
(*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))
(*.f64 (*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))) 1)
(*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))
(*.f64 1 (*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))))
(*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))
(*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 1/2)
(*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))
(*.f64 4 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 1/8))
(*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))
(*.f64 (*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))) 1/4)
(*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))
(*.f64 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 4) 1/8)
(*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))
(*.f64 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 1/4) 2)
(*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))
(*.f64 1/4 (*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))))
(*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))
(*.f64 1/4 (+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 (pow.f64 x 3) 2/3)))
(*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))
(*.f64 1/8 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 4))
(*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))
(*.f64 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 1/8) 4)
(*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))
(*.f64 (+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 (pow.f64 x 3) 2/3)) 1/4)
(*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))
(/.f64 (*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))) 1)
(*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))
(/.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 2)
(*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))
(/.f64 (*.f64 2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))) 4)
(*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))
(/.f64 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 4) 8)
(*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))
(/.f64 (*.f64 2 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 4)) 16)
(*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 4))) 32)
(*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 4)))) 64)
(*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 4))))) 128)
(*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)) 4)))))) 256)
(*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))
(pow.f64 (*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3))) 1)
(*.f64 1/2 (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 x 3) 1/3)))
(+.f64 (pow.f64 x 2) 0)
(pow.f64 x 2)
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/2 (pow.f64 x 2)))
(pow.f64 x 2)
(+.f64 0 (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 (pow.f64 x 2) 1/4) (*.f64 (pow.f64 x 2) 3/4))
(pow.f64 x 2)
(+.f64 (*.f64 (pow.f64 x 2) 3/4) (*.f64 (pow.f64 x 2) 1/4))
(pow.f64 x 2)
(-.f64 (pow.f64 x 2) 0)
(pow.f64 x 2)
(*.f64 1/2 (*.f64 2 (pow.f64 x 2)))
(pow.f64 x 2)
(*.f64 2 (*.f64 1/2 (pow.f64 x 2)))
(pow.f64 x 2)
(*.f64 (pow.f64 x 2) 1)
(pow.f64 x 2)
(*.f64 (*.f64 1/2 (pow.f64 x 2)) 2)
(pow.f64 x 2)
(*.f64 1 (pow.f64 x 2))
(pow.f64 x 2)
(*.f64 (*.f64 2 (pow.f64 x 2)) 1/2)
(pow.f64 x 2)
(*.f64 4 (*.f64 (pow.f64 x 2) 1/4))
(pow.f64 x 2)
(*.f64 (pow.f64 (+.f64 x x) 2) 1/4)
(*.f64 1/4 (pow.f64 (+.f64 x x) 2))
(*.f64 8 (*.f64 (pow.f64 x 2) 1/8))
(pow.f64 x 2)
(*.f64 (*.f64 (pow.f64 x 2) 8) 1/8)
(pow.f64 x 2)
(*.f64 1/4 (pow.f64 (+.f64 x x) 2))
(*.f64 (*.f64 (pow.f64 x 2) 1/4) 4)
(pow.f64 x 2)
(*.f64 16 (*.f64 (pow.f64 x 2) 1/16))
(pow.f64 x 2)
(*.f64 1/8 (*.f64 (pow.f64 x 2) 8))
(pow.f64 x 2)
(*.f64 (*.f64 (pow.f64 x 2) 1/8) 8)
(pow.f64 x 2)
(*.f64 1/16 (*.f64 (pow.f64 x 2) 16))
(pow.f64 x 2)
(*.f64 (*.f64 (pow.f64 x 2) 1/16) 16)
(pow.f64 x 2)
(*.f64 (*.f64 (pow.f64 x 2) 16) 1/16)
(pow.f64 x 2)
(*.f64 1/64 (pow.f64 (*.f64 x 8) 2))
(pow.f64 x 2)
(*.f64 (pow.f64 (*.f64 x 8) 2) 1/64)
(pow.f64 x 2)
(/.f64 (pow.f64 x 2) 1)
(pow.f64 x 2)
(/.f64 (*.f64 2 (pow.f64 x 2)) 2)
(pow.f64 x 2)
(/.f64 (pow.f64 (+.f64 x x) 2) 4)
(/.f64 (*.f64 (pow.f64 x 2) 8) 8)
(pow.f64 x 2)
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 2) 8)) 16)
(pow.f64 x 2)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 8))) 32)
(pow.f64 x 2)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 8)))) 64)
(pow.f64 x 2)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 8))))) 128)
(pow.f64 x 2)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 8)))))) 256)
(pow.f64 x 2)

localize9.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(pow.f64 x 2)
Compiler

Compiled 19 to 14 computations (26.3% saved)

localize9.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 (exp.f64 x) 1/2) -1)
8.0b
(+.f64 (+.f64 (*.f64 (exp.f64 x) 1/2) -1) (*.f64 (exp.f64 x) 1/2))
Compiler

Compiled 27 to 17 computations (37% saved)

series2.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite145.0ms (2.3%)

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

Useful iterations: 2 (0.0ms)

IterNodesCost
01050
16950
214128
328128
451528
5118428
6266228
7416528
8499628
9589828
10673628
Stop Event
node limit
Counts
2 → 50
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 (exp.f64 x) 1/2) -1) (*.f64 (exp.f64 x) 1/2))
(+.f64 (*.f64 (exp.f64 x) 1/2) -1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (exp.f64 x) -1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (exp.f64 x) 2) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (exp.f64 x) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (exp.f64 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 1/2 (+.f64 (exp.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (exp.f64 x) 2) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (exp.f64 x) -1) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (exp.f64 x) -1) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (exp.f64 x) -1) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 (exp.f64 x) -1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (exp.f64 x) -1) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (+.f64 (*.f64 (exp.f64 x) 2) (*.f64 2 (+.f64 (exp.f64 x) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (exp.f64 x) -1) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (exp.f64 x) -1) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (exp.f64 x) 2) (*.f64 2 (+.f64 (exp.f64 x) -2))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (exp.f64 x) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (exp.f64 x) 2) -2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (exp.f64 x) -1) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (exp.f64 x) -1) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (exp.f64 x) -1) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (exp.f64 x) 1/2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/2 (+.f64 (exp.f64 x) -2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (exp.f64 x) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 (exp.f64 x) -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 1/2 (+.f64 (exp.f64 x) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (exp.f64 x) -2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (exp.f64 x) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (exp.f64 x) -2) 1/8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 (exp.f64 x) -2)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (exp.f64 x) -2) 4) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (exp.f64 x) -2) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 2 (+.f64 (exp.f64 x) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (exp.f64 x) -2) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (exp.f64 x) -2) 1/8) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/2 (+.f64 (exp.f64 x) -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (exp.f64 x) -2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (exp.f64 x) -2)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (exp.f64 x) -2) 4) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -2) 4)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -2) 4))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -2) 4)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -2) 4))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -2) 4)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/2 (+.f64 (exp.f64 x) -2)) 1)))))

simplify597.0ms (9.6%)

Algorithm
egg-herbie
Rules
3412×rational.json-simplify-51
3064×rational.json-simplify-2
2016×rational.json-simplify-35
1490×rational.json-simplify-1
1030×rational.json-simplify-48
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01201160
12571160
26411160
318481160
433111160
539881160
641331160
742741160
844491160
946731160
1048331160
1149511160
1251001160
1352111160
1452901160
1553921160
1654561160
1755201160
1855821160
1956441160
2075351160
2176651160
2276861160
2377071160
2477301160
2578001160
Stop Event
node limit
Counts
74 → 81
Calls
Call 1
Inputs
x
(+.f64 (*.f64 1/2 (pow.f64 x 2)) x)
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) x))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/24 (pow.f64 x 4)) x)))
(-.f64 (exp.f64 x) 1)
(-.f64 (exp.f64 x) 1)
(-.f64 (exp.f64 x) 1)
(-.f64 (exp.f64 x) 1)
(-.f64 (exp.f64 x) 1)
(-.f64 (exp.f64 x) 1)
(-.f64 (exp.f64 x) 1)
(-.f64 (exp.f64 x) 1)
-1/2
(-.f64 (*.f64 1/2 x) 1/2)
(-.f64 (+.f64 (*.f64 1/2 x) (*.f64 1/4 (pow.f64 x 2))) 1/2)
(-.f64 (+.f64 (*.f64 1/12 (pow.f64 x 3)) (+.f64 (*.f64 1/2 x) (*.f64 1/4 (pow.f64 x 2)))) 1/2)
(-.f64 (*.f64 1/2 (exp.f64 x)) 1)
(-.f64 (*.f64 1/2 (exp.f64 x)) 1)
(-.f64 (*.f64 1/2 (exp.f64 x)) 1)
(-.f64 (*.f64 1/2 (exp.f64 x)) 1)
(-.f64 (*.f64 1/2 (exp.f64 x)) 1)
(-.f64 (*.f64 1/2 (exp.f64 x)) 1)
(-.f64 (*.f64 1/2 (exp.f64 x)) 1)
(-.f64 (*.f64 1/2 (exp.f64 x)) 1)
(-.f64 (exp.f64 x) 1)
(-.f64 (+.f64 (exp.f64 x) -1) 0)
(*.f64 1/2 (+.f64 (*.f64 (exp.f64 x) 2) -2))
(*.f64 (+.f64 (exp.f64 x) -1) 1)
(*.f64 1 (+.f64 (exp.f64 x) -1))
(*.f64 2 (*.f64 1/2 (+.f64 (exp.f64 x) -1)))
(*.f64 (+.f64 (*.f64 (exp.f64 x) 2) -2) 1/2)
(*.f64 4 (*.f64 (+.f64 (exp.f64 x) -1) 1/4))
(*.f64 (*.f64 (+.f64 (exp.f64 x) -1) 4) 1/4)
(*.f64 (*.f64 (+.f64 (exp.f64 x) -1) 8) 1/8)
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 x) -1)) 2)
(*.f64 1/4 (*.f64 (+.f64 (exp.f64 x) -1) 4))
(*.f64 1/4 (+.f64 (*.f64 (exp.f64 x) 2) (*.f64 2 (+.f64 (exp.f64 x) -2))))
(*.f64 1/8 (*.f64 (+.f64 (exp.f64 x) -1) 8))
(*.f64 (*.f64 (+.f64 (exp.f64 x) -1) 1/4) 4)
(*.f64 (+.f64 (*.f64 (exp.f64 x) 2) (*.f64 2 (+.f64 (exp.f64 x) -2))) 1/4)
(/.f64 (+.f64 (exp.f64 x) -1) 1)
(/.f64 (+.f64 (*.f64 (exp.f64 x) 2) -2) 2)
(/.f64 (*.f64 (+.f64 (exp.f64 x) -1) 4) 4)
(/.f64 (*.f64 (+.f64 (exp.f64 x) -1) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8)))))) 256)
(pow.f64 (+.f64 (exp.f64 x) -1) 1)
(-.f64 (*.f64 (exp.f64 x) 1/2) 1)
(-.f64 (*.f64 1/2 (+.f64 (exp.f64 x) -2)) 0)
(*.f64 1/2 (+.f64 (exp.f64 x) -2))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 x) -2)) 1)
(*.f64 1 (*.f64 1/2 (+.f64 (exp.f64 x) -2)))
(*.f64 2 (*.f64 (+.f64 (exp.f64 x) -2) 1/4))
(*.f64 (+.f64 (exp.f64 x) -2) 1/2)
(*.f64 4 (*.f64 (+.f64 (exp.f64 x) -2) 1/8))
(*.f64 (*.f64 2 (+.f64 (exp.f64 x) -2)) 1/4)
(*.f64 (*.f64 (+.f64 (exp.f64 x) -2) 4) 1/8)
(*.f64 (*.f64 (+.f64 (exp.f64 x) -2) 1/4) 2)
(*.f64 1/4 (*.f64 2 (+.f64 (exp.f64 x) -2)))
(*.f64 1/8 (*.f64 (+.f64 (exp.f64 x) -2) 4))
(*.f64 (*.f64 (+.f64 (exp.f64 x) -2) 1/8) 4)
(/.f64 (*.f64 1/2 (+.f64 (exp.f64 x) -2)) 1)
(/.f64 (+.f64 (exp.f64 x) -2) 2)
(/.f64 (*.f64 2 (+.f64 (exp.f64 x) -2)) 4)
(/.f64 (*.f64 (+.f64 (exp.f64 x) -2) 4) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -2) 4)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -2) 4))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -2) 4)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -2) 4))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -2) 4)))))) 256)
(pow.f64 (*.f64 1/2 (+.f64 (exp.f64 x) -2)) 1)
Outputs
x
(+.f64 (*.f64 1/2 (pow.f64 x 2)) x)
(+.f64 x (*.f64 1/2 (pow.f64 x 2)))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) x))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 x (*.f64 1/6 (pow.f64 x 3))))
(+.f64 x (+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2))))
(+.f64 x (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/24 (pow.f64 x 4)) x)))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (+.f64 x (*.f64 1/24 (pow.f64 x 4))) (*.f64 1/6 (pow.f64 x 3))))
(+.f64 (*.f64 1/24 (pow.f64 x 4)) (+.f64 x (+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/2 (pow.f64 x 2)))))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (+.f64 x (*.f64 1/6 (pow.f64 x 3))) (*.f64 1/24 (pow.f64 x 4))))
(+.f64 x (+.f64 (+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/24 (pow.f64 x 4))) (*.f64 1/2 (pow.f64 x 2))))
(+.f64 x (+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/6 (pow.f64 x 3)) (*.f64 1/24 (pow.f64 x 4)))))
(-.f64 (exp.f64 x) 1)
(+.f64 (exp.f64 x) -1)
(-.f64 (exp.f64 x) 1)
(+.f64 (exp.f64 x) -1)
(-.f64 (exp.f64 x) 1)
(+.f64 (exp.f64 x) -1)
(-.f64 (exp.f64 x) 1)
(+.f64 (exp.f64 x) -1)
(-.f64 (exp.f64 x) 1)
(+.f64 (exp.f64 x) -1)
(-.f64 (exp.f64 x) 1)
(+.f64 (exp.f64 x) -1)
(-.f64 (exp.f64 x) 1)
(+.f64 (exp.f64 x) -1)
(-.f64 (exp.f64 x) 1)
(+.f64 (exp.f64 x) -1)
-1/2
(-.f64 (*.f64 1/2 x) 1/2)
(-.f64 (*.f64 x 1/2) 1/2)
(-.f64 (+.f64 (*.f64 1/2 x) (*.f64 1/4 (pow.f64 x 2))) 1/2)
(+.f64 (*.f64 (pow.f64 x 2) 1/4) (-.f64 (*.f64 x 1/2) 1/2))
(+.f64 (-.f64 (*.f64 x 1/2) 1/2) (*.f64 (pow.f64 x 2) 1/4))
(+.f64 (*.f64 x 1/2) (-.f64 (*.f64 (pow.f64 x 2) 1/4) 1/2))
(-.f64 (+.f64 (*.f64 1/12 (pow.f64 x 3)) (+.f64 (*.f64 1/2 x) (*.f64 1/4 (pow.f64 x 2)))) 1/2)
(+.f64 (+.f64 (*.f64 x 1/2) (*.f64 (pow.f64 x 2) 1/4)) (-.f64 (*.f64 (pow.f64 x 3) 1/12) 1/2))
(+.f64 (*.f64 (pow.f64 x 3) 1/12) (+.f64 (-.f64 (*.f64 x 1/2) 1/2) (*.f64 (pow.f64 x 2) 1/4)))
(+.f64 (*.f64 x 1/2) (+.f64 (*.f64 (pow.f64 x 2) 1/4) (-.f64 (*.f64 (pow.f64 x 3) 1/12) 1/2)))
(+.f64 (*.f64 (pow.f64 x 2) 1/4) (+.f64 (-.f64 (*.f64 x 1/2) 1/2) (*.f64 (pow.f64 x 3) 1/12)))
(+.f64 (*.f64 (pow.f64 x 2) 1/4) (+.f64 (*.f64 x 1/2) (-.f64 (*.f64 (pow.f64 x 3) 1/12) 1/2)))
(-.f64 (*.f64 1/2 (exp.f64 x)) 1)
(+.f64 (*.f64 1/2 (exp.f64 x)) -1)
(-.f64 (*.f64 1/2 (exp.f64 x)) 1)
(+.f64 (*.f64 1/2 (exp.f64 x)) -1)
(-.f64 (*.f64 1/2 (exp.f64 x)) 1)
(+.f64 (*.f64 1/2 (exp.f64 x)) -1)
(-.f64 (*.f64 1/2 (exp.f64 x)) 1)
(+.f64 (*.f64 1/2 (exp.f64 x)) -1)
(-.f64 (*.f64 1/2 (exp.f64 x)) 1)
(+.f64 (*.f64 1/2 (exp.f64 x)) -1)
(-.f64 (*.f64 1/2 (exp.f64 x)) 1)
(+.f64 (*.f64 1/2 (exp.f64 x)) -1)
(-.f64 (*.f64 1/2 (exp.f64 x)) 1)
(+.f64 (*.f64 1/2 (exp.f64 x)) -1)
(-.f64 (*.f64 1/2 (exp.f64 x)) 1)
(+.f64 (*.f64 1/2 (exp.f64 x)) -1)
(-.f64 (exp.f64 x) 1)
(+.f64 (exp.f64 x) -1)
(-.f64 (+.f64 (exp.f64 x) -1) 0)
(+.f64 (exp.f64 x) -1)
(*.f64 1/2 (+.f64 (*.f64 (exp.f64 x) 2) -2))
(*.f64 1/2 (+.f64 (*.f64 2 (exp.f64 x)) -2))
(*.f64 (+.f64 (exp.f64 x) -1) 1)
(+.f64 (exp.f64 x) -1)
(*.f64 1 (+.f64 (exp.f64 x) -1))
(+.f64 (exp.f64 x) -1)
(*.f64 2 (*.f64 1/2 (+.f64 (exp.f64 x) -1)))
(+.f64 (exp.f64 x) -1)
(*.f64 (+.f64 (*.f64 (exp.f64 x) 2) -2) 1/2)
(*.f64 1/2 (+.f64 (*.f64 2 (exp.f64 x)) -2))
(*.f64 4 (*.f64 (+.f64 (exp.f64 x) -1) 1/4))
(+.f64 (exp.f64 x) -1)
(*.f64 (*.f64 (+.f64 (exp.f64 x) -1) 4) 1/4)
(+.f64 (exp.f64 x) -1)
(*.f64 (*.f64 (+.f64 (exp.f64 x) -1) 8) 1/8)
(+.f64 (exp.f64 x) -1)
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 x) -1)) 2)
(+.f64 (exp.f64 x) -1)
(*.f64 1/4 (*.f64 (+.f64 (exp.f64 x) -1) 4))
(+.f64 (exp.f64 x) -1)
(*.f64 1/4 (+.f64 (*.f64 (exp.f64 x) 2) (*.f64 2 (+.f64 (exp.f64 x) -2))))
(+.f64 (exp.f64 x) -1)
(*.f64 1/8 (*.f64 (+.f64 (exp.f64 x) -1) 8))
(+.f64 (exp.f64 x) -1)
(*.f64 (*.f64 (+.f64 (exp.f64 x) -1) 1/4) 4)
(+.f64 (exp.f64 x) -1)
(*.f64 (+.f64 (*.f64 (exp.f64 x) 2) (*.f64 2 (+.f64 (exp.f64 x) -2))) 1/4)
(+.f64 (exp.f64 x) -1)
(/.f64 (+.f64 (exp.f64 x) -1) 1)
(+.f64 (exp.f64 x) -1)
(/.f64 (+.f64 (*.f64 (exp.f64 x) 2) -2) 2)
(/.f64 (+.f64 (*.f64 2 (exp.f64 x)) -2) 2)
(/.f64 (*.f64 (+.f64 (exp.f64 x) -1) 4) 4)
(+.f64 (exp.f64 x) -1)
(/.f64 (*.f64 (+.f64 (exp.f64 x) -1) 8) 8)
(+.f64 (exp.f64 x) -1)
(/.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8)) 16)
(+.f64 (exp.f64 x) -1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8))) 32)
(+.f64 (exp.f64 x) -1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8)))) 64)
(+.f64 (exp.f64 x) -1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8))))) 128)
(+.f64 (exp.f64 x) -1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -1) 8)))))) 256)
(+.f64 (exp.f64 x) -1)
(pow.f64 (+.f64 (exp.f64 x) -1) 1)
(+.f64 (exp.f64 x) -1)
(-.f64 (*.f64 (exp.f64 x) 1/2) 1)
(+.f64 (*.f64 1/2 (exp.f64 x)) -1)
(-.f64 (*.f64 1/2 (+.f64 (exp.f64 x) -2)) 0)
(*.f64 1/2 (+.f64 (exp.f64 x) -2))
(*.f64 1/2 (+.f64 (exp.f64 x) -2))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 x) -2)) 1)
(*.f64 1/2 (+.f64 (exp.f64 x) -2))
(*.f64 1 (*.f64 1/2 (+.f64 (exp.f64 x) -2)))
(*.f64 1/2 (+.f64 (exp.f64 x) -2))
(*.f64 2 (*.f64 (+.f64 (exp.f64 x) -2) 1/4))
(*.f64 1/2 (+.f64 (exp.f64 x) -2))
(*.f64 (+.f64 (exp.f64 x) -2) 1/2)
(*.f64 1/2 (+.f64 (exp.f64 x) -2))
(*.f64 4 (*.f64 (+.f64 (exp.f64 x) -2) 1/8))
(*.f64 1/2 (+.f64 (exp.f64 x) -2))
(*.f64 (*.f64 2 (+.f64 (exp.f64 x) -2)) 1/4)
(*.f64 1/2 (+.f64 (exp.f64 x) -2))
(*.f64 (*.f64 (+.f64 (exp.f64 x) -2) 4) 1/8)
(*.f64 1/2 (+.f64 (exp.f64 x) -2))
(*.f64 (*.f64 (+.f64 (exp.f64 x) -2) 1/4) 2)
(*.f64 1/2 (+.f64 (exp.f64 x) -2))
(*.f64 1/4 (*.f64 2 (+.f64 (exp.f64 x) -2)))
(*.f64 1/2 (+.f64 (exp.f64 x) -2))
(*.f64 1/8 (*.f64 (+.f64 (exp.f64 x) -2) 4))
(*.f64 1/2 (+.f64 (exp.f64 x) -2))
(*.f64 (*.f64 (+.f64 (exp.f64 x) -2) 1/8) 4)
(*.f64 1/2 (+.f64 (exp.f64 x) -2))
(/.f64 (*.f64 1/2 (+.f64 (exp.f64 x) -2)) 1)
(*.f64 1/2 (+.f64 (exp.f64 x) -2))
(/.f64 (+.f64 (exp.f64 x) -2) 2)
(*.f64 1/2 (+.f64 (exp.f64 x) -2))
(/.f64 (*.f64 2 (+.f64 (exp.f64 x) -2)) 4)
(*.f64 1/2 (+.f64 (exp.f64 x) -2))
(/.f64 (*.f64 (+.f64 (exp.f64 x) -2) 4) 8)
(*.f64 1/2 (+.f64 (exp.f64 x) -2))
(/.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -2) 4)) 16)
(*.f64 1/2 (+.f64 (exp.f64 x) -2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -2) 4))) 32)
(*.f64 1/2 (+.f64 (exp.f64 x) -2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -2) 4)))) 64)
(*.f64 1/2 (+.f64 (exp.f64 x) -2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -2) 4))))) 128)
(*.f64 1/2 (+.f64 (exp.f64 x) -2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -2) 4)))))) 256)
(*.f64 1/2 (+.f64 (exp.f64 x) -2))
(pow.f64 (*.f64 1/2 (+.f64 (exp.f64 x) -2)) 1)
(*.f64 1/2 (+.f64 (exp.f64 x) -2))

eval60.0ms (1%)

Compiler

Compiled 2757 to 2172 computations (21.2% saved)

prune29.0ms (0.5%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New1960196
Fresh011
Picked011
Done033
Total1965201
Error
0.0b
Counts
201 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
59.1b
(-.f64 (exp.f64 x) 1)
59.1b
(+.f64 (+.f64 (*.f64 (exp.f64 x) 1/2) -1) (*.f64 (exp.f64 x) 1/2))
0.3b
(+.f64 (*.f64 1/2 (pow.f64 x 2)) x)
0.1b
(+.f64 x (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))))
0.8b
x
Compiler

Compiled 41 to 31 computations (24.4% saved)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune2.0ms (0%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done044
Total055
Error
0.0b
Counts
5 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
59.1b
(-.f64 (exp.f64 x) 1)
59.1b
(+.f64 (+.f64 (*.f64 (exp.f64 x) 1/2) -1) (*.f64 (exp.f64 x) 1/2))
0.3b
(+.f64 (*.f64 1/2 (pow.f64 x 2)) x)
0.1b
(+.f64 x (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))))
0.8b
x
Compiler

Compiled 41 to 31 computations (24.4% saved)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune2.0ms (0%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done044
Total055
Error
0.0b
Counts
5 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
59.1b
(-.f64 (exp.f64 x) 1)
59.1b
(+.f64 (+.f64 (*.f64 (exp.f64 x) 1/2) -1) (*.f64 (exp.f64 x) 1/2))
0.3b
(+.f64 (*.f64 1/2 (pow.f64 x 2)) x)
0.1b
(+.f64 x (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))))
0.8b
x
Compiler

Compiled 41 to 31 computations (24.4% saved)

regimes10.0ms (0.2%)

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

3 calls:

5.0ms
x
2.0ms
(exp.f64 x)
2.0ms
(-.f64 (exp.f64 x) 1)
Results
ErrorSegmentsBranch
0.1b1x
0.1b1(-.f64 (exp.f64 x) 1)
0.1b1(exp.f64 x)
Compiler

Compiled 47 to 33 computations (29.8% saved)

regimes8.0ms (0.1%)

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

3 calls:

4.0ms
x
2.0ms
(exp.f64 x)
2.0ms
(-.f64 (exp.f64 x) 1)
Results
ErrorSegmentsBranch
0.3b1x
0.3b1(-.f64 (exp.f64 x) 1)
0.3b1(exp.f64 x)
Compiler

Compiled 34 to 23 computations (32.4% saved)

regimes10.0ms (0.2%)

Accuracy

Total -58.7b remaining (-7177.8%)

Threshold costs -58.7b (-7177.8%)

Counts
2 → 1
Calls
Call 1
Inputs
x
(-.f64 (exp.f64 x) 1)
Outputs
x
Calls

3 calls:

6.0ms
x
2.0ms
(-.f64 (exp.f64 x) 1)
2.0ms
(exp.f64 x)
Results
ErrorSegmentsBranch
0.8b1x
0.8b1(-.f64 (exp.f64 x) 1)
0.8b1(exp.f64 x)
Compiler

Compiled 16 to 11 computations (31.3% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01457
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 x (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) x)
x
Outputs
(+.f64 x (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) x)
x
Compiler

Compiled 24 to 18 computations (25% saved)

soundness745.0ms (11.9%)

Algorithm
egg-herbie
Rules
3660×rational.json-simplify-51
2938×rational.json-simplify-2
1606×rational.json-simplify-35
1376×rational.json-simplify-48
1270×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
076431
1156431
2425431
31285431
42173431
52586431
62676431
72779431
82904431
93049431
104007431
114183431
124294431
134407431
144460431
154502431
164963431
174991431
185019431
195068431
205103431
216780431
226943431
237006431
247070431
257144431
267205431
277288431
287348431
297441431
307496431
317531431
Stop Event
node limit
Compiler

Compiled 40 to 31 computations (22.5% saved)

end23.0ms (0.4%)

Compiler

Compiled 22 to 16 computations (27.3% saved)

Profiling

Loading profile data...