Details

Time bar (total: 9.8s)

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
33.3%25%50%0%0%25%0%3
66.7%50%25%0%0%25%0%4
83.3%62.5%12.5%0%0%25%0%5
91.7%68.7%6.2%0%0%25%0%6
95.8%71.8%3.1%0%0%25%0%7
97.9%73.4%1.6%0%0%25%0%8
99%74.2%0.8%0%0%25%0%9
99.5%74.6%0.4%0%0%25%0%10
99.7%74.8%0.2%0%0%25%0%11
99.9%74.9%0.1%0%0%25%0%12
Compiler

Compiled 6 to 5 computations (16.7% saved)

sample6.4s (65.6%)

Results
2.4s2767×body1024valid
2.2s3806×body256valid
548.0ms1383×body512valid
172.0ms300×body2048valid
0.0msbody256invalid
Bogosity

preprocess4.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
11011
011
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(log.f64 (+.f64 1 x))
Outputs
(log.f64 (+.f64 1 x))
Compiler

Compiled 6 to 5 computations (16.7% saved)

simplify10.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
11011
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(log.f64 (+.f64 1 x))
Outputs
(log.f64 (+.f64 1 x))

eval0.0ms (0%)

Compiler

Compiled 5 to 4 computations (20% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
37.3b
Counts
2 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
37.3b
(log.f64 (+.f64 1 x))
Compiler

Compiled 5 to 4 computations (20% saved)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
3.5b
(log.f64 (+.f64 1 x))
Compiler

Compiled 10 to 7 computations (30% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite461.0ms (4.7%)

Algorithm
batch-egg-rewrite
Rules
1492×rational.json-1
1492×rational.json-2
1492×rational.json-3
1460×rational.json-simplify-35
1414×exponential.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
15611
212911
322811
441711
589211
6224911
7395611
8508511
9689011
Stop Event
node limit
Counts
1 → 27
Calls
Call 1
Inputs
(log.f64 (+.f64 1 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (+.f64 1 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (log.f64 (+.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (+.f64 1 x))) (log.f64 (sqrt.f64 (+.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (+.f64 1 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (log.f64 (+.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (log.f64 (+.f64 1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (log.f64 (sqrt.f64 (+.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (log.f64 (+.f64 1 x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (log.f64 (pow.f64 (+.f64 1 x) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (log.f64 (+.f64 1 x)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 1/8 (log.f64 (+.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (log.f64 (+.f64 1 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (log.f64 (+.f64 1 x)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (log.f64 (+.f64 1 x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (log.f64 (sqrt.f64 (+.f64 1 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (log.f64 (+.f64 1 x)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (log.f64 (pow.f64 (+.f64 1 x) 1/4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (log.f64 (+.f64 1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (log.f64 (+.f64 1 x)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (log.f64 (+.f64 1 x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (log.f64 (+.f64 1 x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (log.f64 (pow.f64 (+.f64 1 x) 16)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (log.f64 (pow.f64 (+.f64 1 x) 16))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (log.f64 (pow.f64 (+.f64 1 x) 16)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (log.f64 (pow.f64 (+.f64 1 x) 16))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (log.f64 (pow.f64 (+.f64 1 x) 16)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (log.f64 (+.f64 1 x)) 1)))))

simplify283.0ms (2.9%)

Algorithm
egg-herbie
Rules
4520×rational.json-simplify-51
2444×rational.json-simplify-35
2124×rational.json-simplify-49
1142×rational.json-simplify-1
778×rational.json-simplify-41
Iterations

Useful iterations: 18 (0.0ms)

IterNodesCost
0100885
1213869
2512869
31141869
41870869
52706869
63098869
73205869
83279869
93344869
103406869
113465869
123526869
134083869
144299869
154394869
164489869
174566869
184643841
196050841
Stop Event
node limit
Counts
39 → 75
Calls
Call 1
Inputs
x
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) x)
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) x))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 -1/4 (pow.f64 x 4)) x)))
(*.f64 -1 (log.f64 (/.f64 1 x)))
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (/.f64 1 x))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (/.f64 1 x)) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (/.f64 1 x))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (/.f64 1 x)))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (/.f64 1 x))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (/.f64 1 x)))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(+.f64 (log.f64 (+.f64 1 x)) 0)
(+.f64 0 (log.f64 (+.f64 1 x)))
(+.f64 (log.f64 (sqrt.f64 (+.f64 1 x))) (log.f64 (sqrt.f64 (+.f64 1 x))))
(-.f64 (log.f64 (+.f64 1 x)) 0)
(*.f64 1 (log.f64 (+.f64 1 x)))
(*.f64 (log.f64 (+.f64 1 x)) 1)
(*.f64 2 (log.f64 (sqrt.f64 (+.f64 1 x))))
(*.f64 (*.f64 (log.f64 (+.f64 1 x)) 2) 1/2)
(*.f64 4 (log.f64 (pow.f64 (+.f64 1 x) 1/4)))
(*.f64 (*.f64 (log.f64 (+.f64 1 x)) 4) 1/4)
(*.f64 8 (*.f64 1/8 (log.f64 (+.f64 1 x))))
(*.f64 1/2 (*.f64 (log.f64 (+.f64 1 x)) 2))
(*.f64 (*.f64 (log.f64 (+.f64 1 x)) 8) 1/8)
(*.f64 1/4 (*.f64 (log.f64 (+.f64 1 x)) 4))
(*.f64 (log.f64 (sqrt.f64 (+.f64 1 x))) 2)
(*.f64 1/8 (*.f64 (log.f64 (+.f64 1 x)) 8))
(*.f64 (log.f64 (pow.f64 (+.f64 1 x) 1/4)) 4)
(/.f64 (log.f64 (+.f64 1 x)) 1)
(/.f64 (*.f64 (log.f64 (+.f64 1 x)) 2) 2)
(/.f64 (*.f64 (log.f64 (+.f64 1 x)) 4) 4)
(/.f64 (*.f64 (log.f64 (+.f64 1 x)) 8) 8)
(/.f64 (log.f64 (pow.f64 (+.f64 1 x) 16)) 16)
(/.f64 (*.f64 2 (log.f64 (pow.f64 (+.f64 1 x) 16))) 32)
(/.f64 (*.f64 2 (*.f64 2 (log.f64 (pow.f64 (+.f64 1 x) 16)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (log.f64 (pow.f64 (+.f64 1 x) 16))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (log.f64 (pow.f64 (+.f64 1 x) 16)))))) 256)
(pow.f64 (log.f64 (+.f64 1 x)) 1)
Outputs
x
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) x)
(+.f64 x (*.f64 -1/2 (pow.f64 x 2)))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) x))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(+.f64 x (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 -1/2 (pow.f64 x 2))))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 (*.f64 -1/4 (pow.f64 x 4)) x)))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (+.f64 x (*.f64 -1/4 (pow.f64 x 4)))))
(+.f64 x (+.f64 (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 -1/4 (pow.f64 x 4))) (*.f64 -1/2 (pow.f64 x 2))))
(+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) (*.f64 -1/4 (pow.f64 x 4)))))
(*.f64 -1 (log.f64 (/.f64 1 x)))
(neg.f64 (log.f64 (/.f64 1 x)))
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (/.f64 1 x))
(+.f64 (/.f64 1 x) (*.f64 -1 (log.f64 (/.f64 1 x))))
(+.f64 (/.f64 1 x) (neg.f64 (log.f64 (/.f64 1 x))))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (/.f64 1 x)) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (/.f64 1 x) (*.f64 -1 (log.f64 (/.f64 1 x)))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(+.f64 (neg.f64 (log.f64 (/.f64 1 x))) (-.f64 (/.f64 1 x) (*.f64 1/2 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (/.f64 1 x) (-.f64 (*.f64 (/.f64 1 (pow.f64 x 2)) -1/2) (log.f64 (/.f64 1 x))))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (/.f64 1 x))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(+.f64 (+.f64 (/.f64 1 x) (*.f64 1/3 (/.f64 1 (pow.f64 x 3)))) (-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (neg.f64 (log.f64 (/.f64 1 x))) (-.f64 (+.f64 (/.f64 1 x) (*.f64 1/3 (/.f64 1 (pow.f64 x 3)))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (+.f64 (neg.f64 (log.f64 (/.f64 1 x))) (-.f64 (/.f64 1 x) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))))
(+.f64 (/.f64 1 x) (-.f64 (+.f64 (neg.f64 (log.f64 (/.f64 1 x))) (*.f64 1/3 (/.f64 1 (pow.f64 x 3)))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (/.f64 1 x) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (-.f64 (*.f64 (/.f64 1 (pow.f64 x 2)) -1/2) (log.f64 (/.f64 1 x)))))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))
(+.f64 (neg.f64 (log.f64 (/.f64 -1 x))) (log.f64 -1))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (/.f64 1 x)))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (/.f64 1 x) (log.f64 -1)))
(+.f64 (/.f64 1 x) (+.f64 (neg.f64 (log.f64 (/.f64 -1 x))) (log.f64 -1)))
(+.f64 (neg.f64 (log.f64 (/.f64 -1 x))) (+.f64 (/.f64 1 x) (log.f64 -1)))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (/.f64 1 x))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(+.f64 (+.f64 (/.f64 1 x) (log.f64 -1)) (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (+.f64 (/.f64 1 x) (log.f64 -1)) (-.f64 (neg.f64 (log.f64 (/.f64 -1 x))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2)))))
(-.f64 (+.f64 (neg.f64 (log.f64 (/.f64 -1 x))) (+.f64 (/.f64 1 x) (log.f64 -1))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(+.f64 (/.f64 1 x) (+.f64 (neg.f64 (log.f64 (/.f64 -1 x))) (-.f64 (log.f64 -1) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))))
(+.f64 (/.f64 1 x) (+.f64 (log.f64 -1) (-.f64 (*.f64 (/.f64 1 (pow.f64 x 2)) -1/2) (log.f64 (/.f64 -1 x)))))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (/.f64 1 x)))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))
(+.f64 (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (+.f64 (/.f64 1 x) (log.f64 -1))) (-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (+.f64 (/.f64 1 x) (+.f64 (log.f64 -1) (*.f64 1/3 (/.f64 1 (pow.f64 x 3))))) (-.f64 (neg.f64 (log.f64 (/.f64 -1 x))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (-.f64 (+.f64 (neg.f64 (log.f64 (/.f64 -1 x))) (+.f64 (/.f64 1 x) (log.f64 -1))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (/.f64 1 x) (+.f64 (-.f64 (neg.f64 (log.f64 (/.f64 -1 x))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2)))) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (log.f64 -1))))
(+.f64 (/.f64 1 x) (-.f64 (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (+.f64 (neg.f64 (log.f64 (/.f64 -1 x))) (log.f64 -1))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (+.f64 (/.f64 1 x) (*.f64 1/3 (/.f64 1 (pow.f64 x 3)))) (+.f64 (log.f64 -1) (-.f64 (*.f64 (/.f64 1 (pow.f64 x 2)) -1/2) (log.f64 (/.f64 -1 x)))))
(+.f64 (log.f64 (+.f64 1 x)) 0)
(log.f64 (+.f64 x 1))
(+.f64 0 (log.f64 (+.f64 1 x)))
(log.f64 (+.f64 x 1))
(+.f64 (log.f64 (sqrt.f64 (+.f64 1 x))) (log.f64 (sqrt.f64 (+.f64 1 x))))
(log.f64 (+.f64 x 1))
(-.f64 (log.f64 (+.f64 1 x)) 0)
(log.f64 (+.f64 x 1))
(*.f64 1 (log.f64 (+.f64 1 x)))
(log.f64 (+.f64 x 1))
(*.f64 (log.f64 (+.f64 1 x)) 1)
(log.f64 (+.f64 x 1))
(*.f64 2 (log.f64 (sqrt.f64 (+.f64 1 x))))
(log.f64 (+.f64 x 1))
(*.f64 (*.f64 (log.f64 (+.f64 1 x)) 2) 1/2)
(log.f64 (+.f64 x 1))
(*.f64 4 (log.f64 (pow.f64 (+.f64 1 x) 1/4)))
(*.f64 4 (log.f64 (pow.f64 (+.f64 x 1) 1/4)))
(log.f64 (pow.f64 (sqrt.f64 (+.f64 x 1)) 2))
(*.f64 (*.f64 (log.f64 (+.f64 1 x)) 4) 1/4)
(log.f64 (+.f64 x 1))
(*.f64 8 (*.f64 1/8 (log.f64 (+.f64 1 x))))
(log.f64 (+.f64 x 1))
(*.f64 1/2 (*.f64 (log.f64 (+.f64 1 x)) 2))
(log.f64 (+.f64 x 1))
(*.f64 (*.f64 (log.f64 (+.f64 1 x)) 8) 1/8)
(log.f64 (+.f64 x 1))
(*.f64 1/4 (*.f64 (log.f64 (+.f64 1 x)) 4))
(log.f64 (+.f64 x 1))
(*.f64 (log.f64 (sqrt.f64 (+.f64 1 x))) 2)
(log.f64 (+.f64 x 1))
(*.f64 1/8 (*.f64 (log.f64 (+.f64 1 x)) 8))
(log.f64 (+.f64 x 1))
(*.f64 (log.f64 (pow.f64 (+.f64 1 x) 1/4)) 4)
(*.f64 4 (log.f64 (pow.f64 (+.f64 x 1) 1/4)))
(log.f64 (pow.f64 (sqrt.f64 (+.f64 x 1)) 2))
(/.f64 (log.f64 (+.f64 1 x)) 1)
(log.f64 (+.f64 x 1))
(/.f64 (*.f64 (log.f64 (+.f64 1 x)) 2) 2)
(log.f64 (+.f64 x 1))
(/.f64 (*.f64 (log.f64 (+.f64 1 x)) 4) 4)
(log.f64 (+.f64 x 1))
(/.f64 (*.f64 (log.f64 (+.f64 1 x)) 8) 8)
(log.f64 (+.f64 x 1))
(/.f64 (log.f64 (pow.f64 (+.f64 1 x) 16)) 16)
(/.f64 (log.f64 (pow.f64 (+.f64 x 1) 16)) 16)
(/.f64 (*.f64 2 (log.f64 (pow.f64 (+.f64 1 x) 16))) 32)
(*.f64 4 (log.f64 (pow.f64 (+.f64 x 1) 1/4)))
(log.f64 (pow.f64 (sqrt.f64 (+.f64 x 1)) 2))
(/.f64 (*.f64 2 (*.f64 2 (log.f64 (pow.f64 (+.f64 1 x) 16)))) 64)
(*.f64 4 (log.f64 (pow.f64 (+.f64 x 1) 1/4)))
(log.f64 (pow.f64 (sqrt.f64 (+.f64 x 1)) 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (log.f64 (pow.f64 (+.f64 1 x) 16))))) 128)
(*.f64 4 (log.f64 (pow.f64 (+.f64 x 1) 1/4)))
(log.f64 (pow.f64 (sqrt.f64 (+.f64 x 1)) 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (log.f64 (pow.f64 (+.f64 1 x) 16)))))) 256)
(*.f64 4 (log.f64 (pow.f64 (+.f64 x 1) 1/4)))
(log.f64 (pow.f64 (sqrt.f64 (+.f64 x 1)) 2))
(pow.f64 (log.f64 (+.f64 1 x)) 1)
(log.f64 (+.f64 x 1))

eval20.0ms (0.2%)

Compiler

Compiled 1026 to 864 computations (15.8% saved)

prune10.0ms (0.1%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New72375
Fresh000
Picked011
Done000
Total72476
Error
0b
Counts
76 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
23.3b
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) x))
23.7b
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) x)
37.3b
(log.f64 (+.f64 1 x))
23.0b
x
Compiler

Compiled 29 to 22 computations (24.1% saved)

localize7.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 19 to 14 computations (26.3% saved)

series1.0ms (0%)

Counts
2 → 3
Calls

6 calls:

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

rewrite249.0ms (2.5%)

Algorithm
batch-egg-rewrite
Rules
2270×rational.json-simplify-2
1630×rational.json-simplify-1
1518×rational.json-simplify-35
1224×exponential.json-3
1224×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0832
15232
210632
320432
438232
585532
6224732
7405132
8492032
9606332
10686632
11695232
12706432
13790832
Stop Event
node limit
Counts
2 → 66
Calls
Call 1
Inputs
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) x)
(*.f64 -1/2 (pow.f64 x 2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (pow.f64 x 2) -1/4) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 x (neg.f64 (pow.f64 x 2)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 x (+.f64 x (neg.f64 (pow.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (pow.f64 x 2) -1/4) (*.f64 x 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (+.f64 x (neg.f64 (pow.f64 x 2)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 -1/2 (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 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -1/2 (pow.f64 x 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -1/2 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (*.f64 (pow.f64 x 2) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (+.f64 1 (+.f64 -1 (*.f64 (pow.f64 x 2) 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 2) -1/4) (*.f64 (pow.f64 x 2) -1/4))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (-.f64 1 (+.f64 -1 (*.f64 (pow.f64 x 2) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (*.f64 (pow.f64 x 2) 1/2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (+.f64 -1 (*.f64 (pow.f64 x 2) 1/2))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (+.f64 1 (+.f64 -1 (*.f64 (pow.f64 x 2) 1/2)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 -1/2 (pow.f64 x 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 (pow.f64 x 2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (+.f64 1 (+.f64 -1 (*.f64 (pow.f64 x 2) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 1 (+.f64 1 (*.f64 (pow.f64 x 2) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 -1 (+.f64 -1 (*.f64 (pow.f64 x 2) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 1 (*.f64 (pow.f64 x 2) 1/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 x 2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1/2 (pow.f64 x 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (pow.f64 x 2)) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (pow.f64 x 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) 4) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) -2) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) 8) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) -4) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) 1/2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 x 2) -4)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 x 2) 8)) -32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 8))) -64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -4))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (pow.f64 x 2) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (*.f64 (pow.f64 x 2) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (neg.f64 (*.f64 (pow.f64 x 2) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 (pow.f64 x 2) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -4)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.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 (neg.f64 (*.f64 (pow.f64 x 2) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (neg.f64 (*.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 (pow.f64 x 2) -4))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 8))))) -256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -4)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (+.f64 -1 (*.f64 (pow.f64 x 2) 1/2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -1/2 (pow.f64 x 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (pow.f64 x 2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 1 (+.f64 -1 (*.f64 (pow.f64 x 2) 1/2))))))))

simplify314.0ms (3.2%)

Algorithm
egg-herbie
Rules
1972×rational.json-simplify-2
1900×rational.json-simplify-35
1650×rational.json-simplify-1
856×rational.json-simplify-52
720×rational.json-simplify-41
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01381047
13411047
27621047
322481047
438191047
545721047
650631047
759571047
869251047
973211047
1074761047
1177871047
1278361047
1378531047
Stop Event
node limit
Counts
69 → 70
Calls
Call 1
Inputs
x
(*.f64 -1/2 (pow.f64 x 2))
(*.f64 -1/2 (pow.f64 x 2))
(-.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 0)
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) -1/4) (*.f64 x 1/2)))
(*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 1)
(*.f64 1 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))))
(*.f64 (+.f64 x (+.f64 x (neg.f64 (pow.f64 x 2)))) 1/2)
(*.f64 4 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 1/4))
(*.f64 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 4) 1/4)
(*.f64 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 8) 1/8)
(*.f64 1/2 (+.f64 x (+.f64 x (neg.f64 (pow.f64 x 2)))))
(*.f64 (+.f64 (*.f64 (pow.f64 x 2) -1/4) (*.f64 x 1/2)) 2)
(*.f64 1/4 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 4))
(*.f64 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 1/4) 4)
(*.f64 1/8 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 8))
(/.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 1)
(/.f64 (+.f64 x (+.f64 x (neg.f64 (pow.f64 x 2)))) 2)
(/.f64 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 4) 4)
(/.f64 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 8)))))) 256)
(pow.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 1)
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) 0)
(+.f64 0 (*.f64 -1/2 (pow.f64 x 2)))
(+.f64 -1 (-.f64 1 (*.f64 (pow.f64 x 2) 1/2)))
(+.f64 -1 (-.f64 1 (+.f64 1 (+.f64 -1 (*.f64 (pow.f64 x 2) 1/2)))))
(+.f64 (*.f64 (pow.f64 x 2) -1/4) (*.f64 (pow.f64 x 2) -1/4))
(+.f64 -2 (-.f64 1 (+.f64 -1 (*.f64 (pow.f64 x 2) 1/2))))
(+.f64 (-.f64 1 (*.f64 (pow.f64 x 2) 1/2)) -1)
(+.f64 (-.f64 1 (+.f64 -1 (*.f64 (pow.f64 x 2) 1/2))) -2)
(+.f64 (-.f64 1 (+.f64 1 (+.f64 -1 (*.f64 (pow.f64 x 2) 1/2)))) -1)
(-.f64 (*.f64 -1/2 (pow.f64 x 2)) 0)
(-.f64 0 (*.f64 (pow.f64 x 2) 1/2))
(-.f64 0 (+.f64 1 (+.f64 -1 (*.f64 (pow.f64 x 2) 1/2))))
(-.f64 1 (+.f64 1 (*.f64 (pow.f64 x 2) 1/2)))
(-.f64 -1 (+.f64 -1 (*.f64 (pow.f64 x 2) 1/2)))
(-.f64 (-.f64 1 (*.f64 (pow.f64 x 2) 1/2)) 1)
(/.f64 (pow.f64 x 2) -2)
(/.f64 (*.f64 -1/2 (pow.f64 x 2)) 1)
(/.f64 (*.f64 2 (pow.f64 x 2)) -4)
(/.f64 (neg.f64 (pow.f64 x 2)) 2)
(/.f64 (*.f64 (pow.f64 x 2) 4) -8)
(/.f64 (*.f64 (pow.f64 x 2) -2) 4)
(/.f64 (*.f64 (pow.f64 x 2) 8) -16)
(/.f64 (*.f64 (pow.f64 x 2) -4) 8)
(/.f64 (*.f64 (pow.f64 x 2) 1/2) -1)
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 2) -4)) 16)
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 2) 8)) -32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 8))) -64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -4))) 32)
(/.f64 (neg.f64 (*.f64 (pow.f64 x 2) 8)) 16)
(/.f64 (neg.f64 (*.f64 2 (*.f64 (pow.f64 x 2) 8))) 32)
(/.f64 (*.f64 2 (neg.f64 (*.f64 (pow.f64 x 2) 8))) 32)
(/.f64 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 (pow.f64 x 2) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -4)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 8)))) -128)
(/.f64 (*.f64 2 (*.f64 2 (neg.f64 (*.f64 (pow.f64 x 2) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 (pow.f64 x 2) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -4))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 8))))) -256)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -4)))))) 256)
(/.f64 (+.f64 1 (+.f64 -1 (*.f64 (pow.f64 x 2) 1/2))) -1)
(pow.f64 (*.f64 -1/2 (pow.f64 x 2)) 1)
(neg.f64 (*.f64 (pow.f64 x 2) 1/2))
(neg.f64 (+.f64 1 (+.f64 -1 (*.f64 (pow.f64 x 2) 1/2))))
Outputs
x
(*.f64 -1/2 (pow.f64 x 2))
(*.f64 -1/2 (pow.f64 x 2))
(-.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 0)
(+.f64 x (*.f64 -1/2 (pow.f64 x 2)))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) -1/4) (*.f64 x 1/2)))
(*.f64 2 (+.f64 (*.f64 x 1/2) (*.f64 (pow.f64 x 2) -1/4)))
(*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 1)
(+.f64 x (*.f64 -1/2 (pow.f64 x 2)))
(*.f64 1 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))))
(+.f64 x (*.f64 -1/2 (pow.f64 x 2)))
(*.f64 (+.f64 x (+.f64 x (neg.f64 (pow.f64 x 2)))) 1/2)
(+.f64 x (*.f64 -1/2 (pow.f64 x 2)))
(*.f64 4 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 1/4))
(+.f64 x (*.f64 -1/2 (pow.f64 x 2)))
(*.f64 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 4) 1/4)
(+.f64 x (*.f64 -1/2 (pow.f64 x 2)))
(*.f64 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 8) 1/8)
(+.f64 x (*.f64 -1/2 (pow.f64 x 2)))
(*.f64 1/2 (+.f64 x (+.f64 x (neg.f64 (pow.f64 x 2)))))
(+.f64 x (*.f64 -1/2 (pow.f64 x 2)))
(*.f64 (+.f64 (*.f64 (pow.f64 x 2) -1/4) (*.f64 x 1/2)) 2)
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) -1/4) (*.f64 x 1/2)))
(*.f64 2 (+.f64 (*.f64 x 1/2) (*.f64 (pow.f64 x 2) -1/4)))
(*.f64 1/4 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 4))
(+.f64 x (*.f64 -1/2 (pow.f64 x 2)))
(*.f64 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 1/4) 4)
(+.f64 x (*.f64 -1/2 (pow.f64 x 2)))
(*.f64 1/8 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 8))
(+.f64 x (*.f64 -1/2 (pow.f64 x 2)))
(/.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 1)
(+.f64 x (*.f64 -1/2 (pow.f64 x 2)))
(/.f64 (+.f64 x (+.f64 x (neg.f64 (pow.f64 x 2)))) 2)
(+.f64 x (*.f64 -1/2 (pow.f64 x 2)))
(/.f64 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 4) 4)
(+.f64 x (*.f64 -1/2 (pow.f64 x 2)))
(/.f64 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 8) 8)
(+.f64 x (*.f64 -1/2 (pow.f64 x 2)))
(/.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 8)) 16)
(+.f64 x (*.f64 -1/2 (pow.f64 x 2)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 8))) 32)
(+.f64 x (*.f64 -1/2 (pow.f64 x 2)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 8)))) 64)
(+.f64 x (*.f64 -1/2 (pow.f64 x 2)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 8))))) 128)
(+.f64 x (*.f64 -1/2 (pow.f64 x 2)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 8)))))) 256)
(+.f64 x (*.f64 -1/2 (pow.f64 x 2)))
(pow.f64 (+.f64 x (*.f64 -1/2 (pow.f64 x 2))) 1)
(+.f64 x (*.f64 -1/2 (pow.f64 x 2)))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) 0)
(*.f64 -1/2 (pow.f64 x 2))
(+.f64 0 (*.f64 -1/2 (pow.f64 x 2)))
(*.f64 -1/2 (pow.f64 x 2))
(+.f64 -1 (-.f64 1 (*.f64 (pow.f64 x 2) 1/2)))
(*.f64 -1/2 (pow.f64 x 2))
(+.f64 -1 (-.f64 1 (+.f64 1 (+.f64 -1 (*.f64 (pow.f64 x 2) 1/2)))))
(*.f64 -1/2 (pow.f64 x 2))
(+.f64 (*.f64 (pow.f64 x 2) -1/4) (*.f64 (pow.f64 x 2) -1/4))
(*.f64 -1/2 (pow.f64 x 2))
(+.f64 -2 (-.f64 1 (+.f64 -1 (*.f64 (pow.f64 x 2) 1/2))))
(*.f64 -1/2 (pow.f64 x 2))
(+.f64 (-.f64 1 (*.f64 (pow.f64 x 2) 1/2)) -1)
(*.f64 -1/2 (pow.f64 x 2))
(+.f64 (-.f64 1 (+.f64 -1 (*.f64 (pow.f64 x 2) 1/2))) -2)
(*.f64 -1/2 (pow.f64 x 2))
(+.f64 (-.f64 1 (+.f64 1 (+.f64 -1 (*.f64 (pow.f64 x 2) 1/2)))) -1)
(*.f64 -1/2 (pow.f64 x 2))
(-.f64 (*.f64 -1/2 (pow.f64 x 2)) 0)
(*.f64 -1/2 (pow.f64 x 2))
(-.f64 0 (*.f64 (pow.f64 x 2) 1/2))
(*.f64 -1/2 (pow.f64 x 2))
(-.f64 0 (+.f64 1 (+.f64 -1 (*.f64 (pow.f64 x 2) 1/2))))
(*.f64 -1/2 (pow.f64 x 2))
(-.f64 1 (+.f64 1 (*.f64 (pow.f64 x 2) 1/2)))
(*.f64 -1/2 (pow.f64 x 2))
(-.f64 -1 (+.f64 -1 (*.f64 (pow.f64 x 2) 1/2)))
(*.f64 -1/2 (pow.f64 x 2))
(-.f64 (-.f64 1 (*.f64 (pow.f64 x 2) 1/2)) 1)
(*.f64 -1/2 (pow.f64 x 2))
(/.f64 (pow.f64 x 2) -2)
(*.f64 -1/2 (pow.f64 x 2))
(/.f64 (*.f64 -1/2 (pow.f64 x 2)) 1)
(*.f64 -1/2 (pow.f64 x 2))
(/.f64 (*.f64 2 (pow.f64 x 2)) -4)
(*.f64 -1/2 (pow.f64 x 2))
(/.f64 (neg.f64 (pow.f64 x 2)) 2)
(*.f64 -1/2 (pow.f64 x 2))
(/.f64 (*.f64 (pow.f64 x 2) 4) -8)
(*.f64 -1/2 (pow.f64 x 2))
(/.f64 (*.f64 (pow.f64 x 2) -2) 4)
(*.f64 -1/2 (pow.f64 x 2))
(/.f64 (*.f64 (pow.f64 x 2) 8) -16)
(*.f64 -1/2 (pow.f64 x 2))
(/.f64 (*.f64 (pow.f64 x 2) -4) 8)
(*.f64 -1/2 (pow.f64 x 2))
(/.f64 (*.f64 (pow.f64 x 2) 1/2) -1)
(*.f64 -1/2 (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 2) -4)) 16)
(*.f64 -1/2 (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 2) 8)) -32)
(*.f64 -1/2 (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 8))) -64)
(*.f64 -1/2 (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -4))) 32)
(*.f64 -1/2 (pow.f64 x 2))
(/.f64 (neg.f64 (*.f64 (pow.f64 x 2) 8)) 16)
(*.f64 -1/2 (pow.f64 x 2))
(/.f64 (neg.f64 (*.f64 2 (*.f64 (pow.f64 x 2) 8))) 32)
(*.f64 -1/2 (pow.f64 x 2))
(/.f64 (*.f64 2 (neg.f64 (*.f64 (pow.f64 x 2) 8))) 32)
(*.f64 -1/2 (pow.f64 x 2))
(/.f64 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 (pow.f64 x 2) 8)))) 64)
(*.f64 -1/2 (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -4)))) 64)
(*.f64 -1/2 (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 8)))) -128)
(*.f64 -1/2 (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (neg.f64 (*.f64 (pow.f64 x 2) 8)))) 64)
(*.f64 -1/2 (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 (pow.f64 x 2) 8))))) 128)
(*.f64 -1/2 (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -4))))) 128)
(*.f64 -1/2 (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 8))))) -256)
(*.f64 -1/2 (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -4)))))) 256)
(*.f64 -1/2 (pow.f64 x 2))
(/.f64 (+.f64 1 (+.f64 -1 (*.f64 (pow.f64 x 2) 1/2))) -1)
(*.f64 -1/2 (pow.f64 x 2))
(pow.f64 (*.f64 -1/2 (pow.f64 x 2)) 1)
(*.f64 -1/2 (pow.f64 x 2))
(neg.f64 (*.f64 (pow.f64 x 2) 1/2))
(*.f64 -1/2 (pow.f64 x 2))
(neg.f64 (+.f64 1 (+.f64 -1 (*.f64 (pow.f64 x 2) 1/2))))
(*.f64 -1/2 (pow.f64 x 2))

localize16.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 42 to 32 computations (23.8% saved)

series3.0ms (0%)

Counts
2 → 6
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 1/3 (pow.f64 x 3))
0.0ms
x
@inf
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) x))
0.0ms
x
@0
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) x))

rewrite149.0ms (1.5%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01350
18650
216650
332450
467250
5169850
6360950
7552850
8690450
9796050
Stop Event
node limit
Counts
2 → 39
Calls
Call 1
Inputs
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) x))
(*.f64 1/3 (pow.f64 x 3))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (pow.f64 x 2) -1/4) (+.f64 (*.f64 x 1/2) (*.f64 (pow.f64 x 3) 1/6))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 2 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 x (+.f64 x (*.f64 (pow.f64 x 3) 2/3))) (neg.f64 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 x (+.f64 x (neg.f64 (pow.f64 x 2)))) (*.f64 (pow.f64 x 3) 2/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (neg.f64 (pow.f64 x 2)) (+.f64 x (+.f64 x (*.f64 (pow.f64 x 3) 2/3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (pow.f64 x 2) -1/4) (+.f64 (*.f64 x 1/2) (*.f64 (pow.f64 x 3) 1/6))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 x (+.f64 x (*.f64 (pow.f64 x 3) 2/3))) (neg.f64 (pow.f64 x 2))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 x (+.f64 x (neg.f64 (pow.f64 x 2)))) (*.f64 (pow.f64 x 3) 2/3)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (neg.f64 (pow.f64 x 2)) (+.f64 x (+.f64 x (*.f64 (pow.f64 x 3) 2/3)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.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 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.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 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 1)))))
((#(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 2 (*.f64 (pow.f64 x 3) 4/3)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.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 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 2 (*.f64 (pow.f64 x 3) 4/3)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/3 (pow.f64 x 3)) 1)))))

simplify1.7s (17.1%)

Algorithm
egg-herbie
Rules
3170×rational.json-simplify-35
2852×rational.json-simplify-51
2534×rational.json-simplify-2
1212×rational.json-simplify-1
564×exponential.json-simplify-26
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0961263
12161263
24531263
313661263
427121263
533381263
635281263
736421263
837141263
937851263
1038541263
1139221263
1239901263
1340581263
1441261263
1541941263
1642621263
1743301263
1843981263
1944661263
2062101263
2162181263
2262231263
2362231263
2462231263
2573211263
2673801263
2774391263
2874981263
2975571263
3076161263
3176751263
3277341263
3377931263
3478521263
3579111263
3679701263
Stop Event
node limit
Counts
45 → 46
Calls
Call 1
Inputs
x
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) x)
(*.f64 1/3 (pow.f64 x 3))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))
(*.f64 1/3 (pow.f64 x 3))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))
(-.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 0)
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) -1/4) (+.f64 (*.f64 x 1/2) (*.f64 (pow.f64 x 3) 1/6))))
(*.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 1)
(*.f64 1 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))))
(*.f64 (*.f64 2 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))) 1/2)
(*.f64 4 (/.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 4))
(*.f64 (*.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 4) 1/4)
(*.f64 1/2 (*.f64 2 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))))
(*.f64 1/2 (+.f64 (+.f64 x (+.f64 x (*.f64 (pow.f64 x 3) 2/3))) (neg.f64 (pow.f64 x 2))))
(*.f64 1/2 (+.f64 (+.f64 x (+.f64 x (neg.f64 (pow.f64 x 2)))) (*.f64 (pow.f64 x 3) 2/3)))
(*.f64 1/2 (+.f64 (neg.f64 (pow.f64 x 2)) (+.f64 x (+.f64 x (*.f64 (pow.f64 x 3) 2/3)))))
(*.f64 (+.f64 (*.f64 (pow.f64 x 2) -1/4) (+.f64 (*.f64 x 1/2) (*.f64 (pow.f64 x 3) 1/6))) 2)
(*.f64 1/4 (*.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 4))
(*.f64 (/.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 4) 4)
(*.f64 (+.f64 (+.f64 x (+.f64 x (*.f64 (pow.f64 x 3) 2/3))) (neg.f64 (pow.f64 x 2))) 1/2)
(*.f64 (+.f64 (+.f64 x (+.f64 x (neg.f64 (pow.f64 x 2)))) (*.f64 (pow.f64 x 3) 2/3)) 1/2)
(*.f64 (+.f64 (neg.f64 (pow.f64 x 2)) (+.f64 x (+.f64 x (*.f64 (pow.f64 x 3) 2/3)))) 1/2)
(/.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 1)
(/.f64 (*.f64 2 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))) 2)
(/.f64 (*.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 4) 4)
(/.f64 (*.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 8))))) 128)
(pow.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 1)
(+.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 2 (*.f64 (pow.f64 x 3) 4/3)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3)))))) 128)
(pow.f64 (*.f64 1/3 (pow.f64 x 3)) 1)
Outputs
x
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) x)
(+.f64 x (*.f64 -1/2 (pow.f64 x 2)))
(*.f64 1/3 (pow.f64 x 3))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))
(*.f64 1/3 (pow.f64 x 3))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))
(-.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 0)
(+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) -1/4) (+.f64 (*.f64 x 1/2) (*.f64 (pow.f64 x 3) 1/6))))
(*.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 1)
(+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(*.f64 1 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))))
(+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(*.f64 (*.f64 2 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))) 1/2)
(+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(*.f64 4 (/.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 4))
(+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(*.f64 (*.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 4) 1/4)
(+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(*.f64 1/2 (*.f64 2 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))))
(+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(*.f64 1/2 (+.f64 (+.f64 x (+.f64 x (*.f64 (pow.f64 x 3) 2/3))) (neg.f64 (pow.f64 x 2))))
(+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(*.f64 1/2 (+.f64 (+.f64 x (+.f64 x (neg.f64 (pow.f64 x 2)))) (*.f64 (pow.f64 x 3) 2/3)))
(+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(*.f64 1/2 (+.f64 (neg.f64 (pow.f64 x 2)) (+.f64 x (+.f64 x (*.f64 (pow.f64 x 3) 2/3)))))
(+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(*.f64 (+.f64 (*.f64 (pow.f64 x 2) -1/4) (+.f64 (*.f64 x 1/2) (*.f64 (pow.f64 x 3) 1/6))) 2)
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) -1/4) (+.f64 (*.f64 x 1/2) (*.f64 (pow.f64 x 3) 1/6))))
(*.f64 1/4 (*.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 4))
(+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(*.f64 (/.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 4) 4)
(+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(*.f64 (+.f64 (+.f64 x (+.f64 x (*.f64 (pow.f64 x 3) 2/3))) (neg.f64 (pow.f64 x 2))) 1/2)
(+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(*.f64 (+.f64 (+.f64 x (+.f64 x (neg.f64 (pow.f64 x 2)))) (*.f64 (pow.f64 x 3) 2/3)) 1/2)
(+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(*.f64 (+.f64 (neg.f64 (pow.f64 x 2)) (+.f64 x (+.f64 x (*.f64 (pow.f64 x 3) 2/3)))) 1/2)
(+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(/.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 1)
(+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(/.f64 (*.f64 2 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))) 2)
(+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(/.f64 (*.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 4) 4)
(+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(/.f64 (*.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 8) 8)
(+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(/.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 8)) 16)
(+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 8))) 32)
(+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 8)))) 64)
(+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 8))))) 128)
(+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 x (*.f64 1/3 (pow.f64 x 3))))
(pow.f64 (+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3)))) 1)
(+.f64 x (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 1/3 (pow.f64 x 3))))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 x (*.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 2 (*.f64 (pow.f64 x 3) 4/3)) 8)
(*.f64 1/3 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3))) 16)
(*.f64 1/3 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3)))) 32)
(*.f64 1/3 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3))))) 64)
(*.f64 1/3 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 4/3)))))) 128)
(*.f64 1/3 (pow.f64 x 3))
(pow.f64 (*.f64 1/3 (pow.f64 x 3)) 1)
(*.f64 1/3 (pow.f64 x 3))

eval49.0ms (0.5%)

Compiler

Compiled 2289 to 1879 computations (17.9% saved)

prune21.0ms (0.2%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New1590159
Fresh011
Picked011
Done022
Total1594163
Error
0b
Counts
163 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
23.3b
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) x))
23.7b
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) x)
37.3b
(log.f64 (+.f64 1 x))
23.0b
x
Compiler

Compiled 29 to 22 computations (24.1% saved)

eval1.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune2.0ms (0%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done033
Total044
Error
0b
Counts
4 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
23.3b
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) x))
23.7b
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) x)
37.3b
(log.f64 (+.f64 1 x))
23.0b
x
Compiler

Compiled 29 to 22 computations (24.1% saved)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune2.0ms (0%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done033
Total044
Error
0b
Counts
4 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
23.3b
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) x))
23.7b
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) x)
37.3b
(log.f64 (+.f64 1 x))
23.0b
x
Compiler

Compiled 29 to 22 computations (24.1% saved)

regimes17.0ms (0.2%)

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

3 calls:

8.0ms
x
4.0ms
(+.f64 1 x)
4.0ms
(log.f64 (+.f64 1 x))
Results
ErrorSegmentsBranch
0b2x
0b2(log.f64 (+.f64 1 x))
0b2(+.f64 1 x)
Compiler

Compiled 37 to 27 computations (27% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.000000692628768
637152703.6267103
Compiler

Compiled 9 to 7 computations (22.2% saved)

regimes15.0ms (0.2%)

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

3 calls:

7.0ms
x
4.0ms
(log.f64 (+.f64 1 x))
4.0ms
(+.f64 1 x)
Results
ErrorSegmentsBranch
0.1b2x
0.1b2(log.f64 (+.f64 1 x))
0.1b2(+.f64 1 x)
Compiler

Compiled 24 to 17 computations (29.2% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.000000692628768
637152703.6267103
Compiler

Compiled 9 to 7 computations (22.2% saved)

regimes15.0ms (0.2%)

Accuracy

Total -59.4b remaining (-13523.2%)

Threshold costs -59.4b (-13523.2%)

Counts
2 → 2
Calls
Call 1
Inputs
x
(log.f64 (+.f64 1 x))
Outputs
x
(log.f64 (+.f64 1 x))
Calls

3 calls:

6.0ms
(log.f64 (+.f64 1 x))
5.0ms
x
3.0ms
(+.f64 1 x)
Results
ErrorSegmentsBranch
0.4b2x
0.4b2(log.f64 (+.f64 1 x))
0.4b2(+.f64 1 x)
Compiler

Compiled 17 to 12 computations (29.4% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.0000000000007605
1.000000692628768
Compiler

Compiled 9 to 7 computations (22.2% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
027136
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(if (<=.f64 (+.f64 1 x) 2) (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) x)) (log.f64 (+.f64 1 x)))
(if (<=.f64 (+.f64 1 x) 2) (+.f64 (*.f64 -1/2 (pow.f64 x 2)) x) (log.f64 (+.f64 1 x)))
(if (<=.f64 (+.f64 1 x) 2251800939585155/2251799813685248) x (log.f64 (+.f64 1 x)))
x
Outputs
(if (<=.f64 (+.f64 1 x) 2) (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/3 (pow.f64 x 3)) x)) (log.f64 (+.f64 1 x)))
(if (<=.f64 (+.f64 1 x) 2) (+.f64 (*.f64 -1/2 (pow.f64 x 2)) x) (log.f64 (+.f64 1 x)))
(if (<=.f64 (+.f64 1 x) 2251800939585155/2251799813685248) x (log.f64 (+.f64 1 x)))
x
Compiler

Compiled 56 to 43 computations (23.2% saved)

soundness0.0ms (0%)

end38.0ms (0.4%)

Compiler

Compiled 53 to 40 computations (24.5% saved)

Profiling

Loading profile data...