Details

Time bar (total: 12.1s)

analyze4.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
0%0%100%0%0%0%0%2
50%50%50%0%0%0%0%3
75%75%25%0%0%0%0%4
85.7%75%12.5%0%12.5%0%0%5
92.3%75%6.2%0%18.7%0%0%6
96%75%3.1%0%21.9%0%0%7
98%75%1.6%0%23.4%0%0%8
99%75%0.8%0%24.2%0%0%9
99.5%75%0.4%0%24.6%0%0%10
99.7%75%0.2%0%24.8%0%0%11
99.9%75%0.1%0%24.9%0%0%12
Compiler

Compiled 11 to 9 computations (18.2% saved)

sample2.2s (18.2%)

Results
2.2s8256×body256valid
1.0msbody256infinite
Bogosity

preprocess11.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01025
11325
011
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(-.f64 1 (*.f64 x (+.f64 253/1000 (*.f64 x 3/25))))
Outputs
(-.f64 1 (*.f64 x (+.f64 253/1000 (*.f64 x 3/25))))
Compiler

Compiled 11 to 9 computations (18.2% saved)

simplify9.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01025
11325
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(-.f64 1 (*.f64 x (+.f64 253/1000 (*.f64 x 3/25))))
Outputs
(-.f64 1 (*.f64 x (+.f64 253/1000 (*.f64 x 3/25))))

eval0.0ms (0%)

Compiler

Compiled 10 to 8 computations (20% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
0.1b
Counts
2 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(-.f64 1 (*.f64 x (+.f64 253/1000 (*.f64 x 3/25))))
Compiler

Compiled 10 to 8 computations (20% saved)

localize12.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(+.f64 253/1000 (*.f64 x 3/25))
0.1b
(*.f64 x (+.f64 253/1000 (*.f64 x 3/25)))
0.2b
(*.f64 x 3/25)
Compiler

Compiled 29 to 22 computations (24.1% saved)

series2.0ms (0%)

Counts
3 → 36
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
(*.f64 x (+.f64 253/1000 (*.f64 x 3/25)))
0.0ms
x
@inf
(*.f64 x (+.f64 253/1000 (*.f64 x 3/25)))
0.0ms
x
@-inf
(*.f64 x 3/25)
0.0ms
x
@inf
(*.f64 x 3/25)
0.0ms
x
@0
(*.f64 x 3/25)

rewrite226.0ms (1.9%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0839
15339
210739
321339
439539
588039
6222039
7388339
8499239
9639739
10714239
11714239
12714239
Stop Event
node limit
Counts
3 → 54
Calls
Call 1
Inputs
(*.f64 x 3/25)
(*.f64 x (+.f64 253/1000 (*.f64 x 3/25)))
(+.f64 253/1000 (*.f64 x 3/25))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x 3/25) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x 3/25))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x 3/50) (*.f64 x 3/50))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x 3/25) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 3/25) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 6/25) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 12/25) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 24/25) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x 24/25)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 x 24/25))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 24/25)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 24/25))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 24/25)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 24/25)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 24/25))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x 3/25) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 (*.f64 x 3/25) 253/1000)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (+.f64 (*.f64 x 3/25) 253/1000)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) (*.f64 x 1/2)) (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 (*.f64 x 3/25) 253/1000)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 (*.f64 x 3/25) 253/1000)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 (*.f64 x 6/25) 253/500)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) (*.f64 x 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) (*.f64 x 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) (*.f64 x 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) (*.f64 x 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) (*.f64 x 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) (*.f64 x 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) (*.f64 x 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) (*.f64 x 8)))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 (*.f64 x 3/25) 253/1000)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x 3/25) 253/1000) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x 3/25) 253/1000) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 x 3/25) 253/1000))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x 6/25) 253/500) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 x 6/25) 253/500))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x 3/25) 253/1000) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x 6/25) 253/500) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 8))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 x 3/25) 253/1000) 1)))))

simplify381.0ms (3.1%)

Algorithm
egg-herbie
Rules
2274×rational.json-simplify-35
2054×rational.json-simplify-2
1978×rational.json-simplify-53
1448×rational.json-simplify-51
1362×exponential.json-simplify-26
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01201176
12791176
27781176
319201176
443961176
552801176
654161176
755231176
856281176
957331176
1073361176
1178941176
1278941176
1378941176
1479991176
Stop Event
node limit
Counts
90 → 63
Calls
Call 1
Inputs
(*.f64 3/25 x)
(*.f64 3/25 x)
(*.f64 3/25 x)
(*.f64 3/25 x)
(*.f64 3/25 x)
(*.f64 3/25 x)
(*.f64 3/25 x)
(*.f64 3/25 x)
(*.f64 3/25 x)
(*.f64 3/25 x)
(*.f64 3/25 x)
(*.f64 3/25 x)
(*.f64 253/1000 x)
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(*.f64 3/25 (pow.f64 x 2))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(*.f64 3/25 (pow.f64 x 2))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
253/1000
(+.f64 253/1000 (*.f64 3/25 x))
(+.f64 253/1000 (*.f64 3/25 x))
(+.f64 253/1000 (*.f64 3/25 x))
(*.f64 3/25 x)
(+.f64 253/1000 (*.f64 3/25 x))
(+.f64 253/1000 (*.f64 3/25 x))
(+.f64 253/1000 (*.f64 3/25 x))
(*.f64 3/25 x)
(+.f64 253/1000 (*.f64 3/25 x))
(+.f64 253/1000 (*.f64 3/25 x))
(+.f64 253/1000 (*.f64 3/25 x))
(+.f64 (*.f64 x 3/25) 0)
(+.f64 0 (*.f64 x 3/25))
(+.f64 (*.f64 x 3/50) (*.f64 x 3/50))
(-.f64 (*.f64 x 3/25) 0)
(/.f64 (*.f64 x 3/25) 1)
(/.f64 (*.f64 x 6/25) 2)
(/.f64 (*.f64 x 12/25) 4)
(/.f64 (*.f64 x 24/25) 8)
(/.f64 (*.f64 2 (*.f64 x 24/25)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x 24/25))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 24/25)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 24/25))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 24/25)))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 24/25)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 24/25))))))) 512)
(pow.f64 (*.f64 x 3/25) 1)
(+.f64 (*.f64 x (+.f64 (*.f64 x 3/25) 253/1000)) 0)
(+.f64 0 (*.f64 x (+.f64 (*.f64 x 3/25) 253/1000)))
(+.f64 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) (*.f64 x 1/2)) (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) (*.f64 x 1/2)))
(-.f64 (*.f64 x (+.f64 (*.f64 x 3/25) 253/1000)) 0)
(/.f64 (*.f64 x (+.f64 (*.f64 x 3/25) 253/1000)) 1)
(/.f64 (*.f64 x (+.f64 (*.f64 x 6/25) 253/500)) 2)
(/.f64 (*.f64 x (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 4)) 4)
(/.f64 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) (*.f64 x 8)) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) (*.f64 x 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) (*.f64 x 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) (*.f64 x 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) (*.f64 x 8)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) (*.f64 x 8))))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) (*.f64 x 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) (*.f64 x 8)))))))) 512)
(pow.f64 (*.f64 x (+.f64 (*.f64 x 3/25) 253/1000)) 1)
(-.f64 (+.f64 (*.f64 x 3/25) 253/1000) 0)
(*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 1)
(*.f64 1 (+.f64 (*.f64 x 3/25) 253/1000))
(*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 1/2))
(*.f64 (+.f64 (*.f64 x 6/25) 253/500) 1/2)
(*.f64 4 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 1/4))
(*.f64 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 4) 1/4)
(*.f64 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 8) 1/8)
(*.f64 1/2 (+.f64 (*.f64 x 6/25) 253/500))
(*.f64 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 4))
(*.f64 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 1/4) 4)
(*.f64 1/8 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 8))
(/.f64 (+.f64 (*.f64 x 3/25) 253/1000) 1)
(/.f64 (+.f64 (*.f64 x 6/25) 253/500) 2)
(/.f64 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 8)))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 8))))))) 512)
(pow.f64 (+.f64 (*.f64 x 3/25) 253/1000) 1)
Outputs
(*.f64 3/25 x)
(*.f64 3/25 x)
(*.f64 3/25 x)
(*.f64 3/25 x)
(*.f64 3/25 x)
(*.f64 3/25 x)
(*.f64 3/25 x)
(*.f64 3/25 x)
(*.f64 3/25 x)
(*.f64 3/25 x)
(*.f64 3/25 x)
(*.f64 3/25 x)
(*.f64 253/1000 x)
(*.f64 x 253/1000)
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2)))
(*.f64 3/25 (pow.f64 x 2))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2)))
(*.f64 3/25 (pow.f64 x 2))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2)))
253/1000
(+.f64 253/1000 (*.f64 3/25 x))
(+.f64 253/1000 (*.f64 3/25 x))
(+.f64 253/1000 (*.f64 3/25 x))
(*.f64 3/25 x)
(+.f64 253/1000 (*.f64 3/25 x))
(+.f64 253/1000 (*.f64 3/25 x))
(+.f64 253/1000 (*.f64 3/25 x))
(*.f64 3/25 x)
(+.f64 253/1000 (*.f64 3/25 x))
(+.f64 253/1000 (*.f64 3/25 x))
(+.f64 253/1000 (*.f64 3/25 x))
(+.f64 (*.f64 x 3/25) 0)
(*.f64 3/25 x)
(+.f64 0 (*.f64 x 3/25))
(*.f64 3/25 x)
(+.f64 (*.f64 x 3/50) (*.f64 x 3/50))
(*.f64 3/25 x)
(-.f64 (*.f64 x 3/25) 0)
(*.f64 3/25 x)
(/.f64 (*.f64 x 3/25) 1)
(*.f64 3/25 x)
(/.f64 (*.f64 x 6/25) 2)
(*.f64 3/25 x)
(/.f64 (*.f64 x 12/25) 4)
(*.f64 3/25 x)
(/.f64 (*.f64 x 24/25) 8)
(*.f64 3/25 x)
(/.f64 (*.f64 2 (*.f64 x 24/25)) 16)
(*.f64 3/25 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x 24/25))) 32)
(*.f64 3/25 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 24/25)))) 64)
(*.f64 3/25 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 24/25))))) 128)
(*.f64 3/25 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 24/25)))))) 256)
(*.f64 3/25 x)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 24/25)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 24/25))))))) 512)
(*.f64 3/25 x)
(pow.f64 (*.f64 x 3/25) 1)
(*.f64 3/25 x)
(+.f64 (*.f64 x (+.f64 (*.f64 x 3/25) 253/1000)) 0)
(*.f64 x (+.f64 253/1000 (*.f64 3/25 x)))
(+.f64 0 (*.f64 x (+.f64 (*.f64 x 3/25) 253/1000)))
(*.f64 x (+.f64 253/1000 (*.f64 3/25 x)))
(+.f64 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) (*.f64 x 1/2)) (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) (*.f64 x 1/2)))
(*.f64 x (+.f64 253/1000 (*.f64 3/25 x)))
(-.f64 (*.f64 x (+.f64 (*.f64 x 3/25) 253/1000)) 0)
(*.f64 x (+.f64 253/1000 (*.f64 3/25 x)))
(/.f64 (*.f64 x (+.f64 (*.f64 x 3/25) 253/1000)) 1)
(*.f64 x (+.f64 253/1000 (*.f64 3/25 x)))
(/.f64 (*.f64 x (+.f64 (*.f64 x 6/25) 253/500)) 2)
(*.f64 x (+.f64 253/1000 (*.f64 3/25 x)))
(/.f64 (*.f64 x (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 4)) 4)
(*.f64 x (+.f64 253/1000 (*.f64 3/25 x)))
(/.f64 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) (*.f64 x 8)) 8)
(*.f64 x (+.f64 253/1000 (*.f64 3/25 x)))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) (*.f64 x 8))) 16)
(*.f64 x (+.f64 253/1000 (*.f64 3/25 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) (*.f64 x 8)))) 32)
(*.f64 x (+.f64 253/1000 (*.f64 3/25 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) (*.f64 x 8))))) 64)
(*.f64 x (+.f64 253/1000 (*.f64 3/25 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) (*.f64 x 8)))))) 128)
(*.f64 x (+.f64 253/1000 (*.f64 3/25 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) (*.f64 x 8))))))) 256)
(*.f64 x (+.f64 253/1000 (*.f64 3/25 x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) (*.f64 x 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) (*.f64 x 8)))))))) 512)
(*.f64 x (+.f64 253/1000 (*.f64 3/25 x)))
(pow.f64 (*.f64 x (+.f64 (*.f64 x 3/25) 253/1000)) 1)
(*.f64 x (+.f64 253/1000 (*.f64 3/25 x)))
(-.f64 (+.f64 (*.f64 x 3/25) 253/1000) 0)
(+.f64 253/1000 (*.f64 3/25 x))
(*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 1)
(+.f64 253/1000 (*.f64 3/25 x))
(*.f64 1 (+.f64 (*.f64 x 3/25) 253/1000))
(+.f64 253/1000 (*.f64 3/25 x))
(*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 1/2))
(+.f64 253/1000 (*.f64 3/25 x))
(*.f64 (+.f64 (*.f64 x 6/25) 253/500) 1/2)
(+.f64 253/1000 (*.f64 3/25 x))
(*.f64 4 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 1/4))
(+.f64 253/1000 (*.f64 3/25 x))
(*.f64 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 4) 1/4)
(+.f64 253/1000 (*.f64 3/25 x))
(*.f64 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 8) 1/8)
(+.f64 253/1000 (*.f64 3/25 x))
(*.f64 1/2 (+.f64 (*.f64 x 6/25) 253/500))
(+.f64 253/1000 (*.f64 3/25 x))
(*.f64 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 1/2) 2)
(+.f64 253/1000 (*.f64 3/25 x))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 4))
(+.f64 253/1000 (*.f64 3/25 x))
(*.f64 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 1/4) 4)
(+.f64 253/1000 (*.f64 3/25 x))
(*.f64 1/8 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 8))
(+.f64 253/1000 (*.f64 3/25 x))
(/.f64 (+.f64 (*.f64 x 3/25) 253/1000) 1)
(+.f64 253/1000 (*.f64 3/25 x))
(/.f64 (+.f64 (*.f64 x 6/25) 253/500) 2)
(+.f64 253/1000 (*.f64 3/25 x))
(/.f64 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 4) 4)
(+.f64 253/1000 (*.f64 3/25 x))
(/.f64 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 8) 8)
(+.f64 253/1000 (*.f64 3/25 x))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 8)) 16)
(+.f64 253/1000 (*.f64 3/25 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 8))) 32)
(+.f64 253/1000 (*.f64 3/25 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 8)))) 64)
(+.f64 253/1000 (*.f64 3/25 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 8))))) 128)
(+.f64 253/1000 (*.f64 3/25 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 8)))))) 256)
(+.f64 253/1000 (*.f64 3/25 x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 3/25) 253/1000) 8))))))) 512)
(+.f64 253/1000 (*.f64 3/25 x))
(pow.f64 (+.f64 (*.f64 x 3/25) 253/1000) 1)
(+.f64 253/1000 (*.f64 3/25 x))

eval19.0ms (0.2%)

Compiler

Compiled 898 to 769 computations (14.4% saved)

prune8.0ms (0.1%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New60363
Fresh000
Picked011
Done000
Total60464
Error
0.0b
Counts
64 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(-.f64 1 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))))
0.1b
(-.f64 1 (*.f64 x (+.f64 253/1000 (*.f64 x 3/25))))
24.5b
(-.f64 1 (*.f64 x 253/1000))
1.5b
(-.f64 1 (*.f64 3/25 (pow.f64 x 2)))
Compiler

Compiled 36 to 30 computations (16.7% saved)

localize9.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 20 to 16 computations (20% saved)

series1.0ms (0%)

Counts
2 → 12
Calls

6 calls:

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

rewrite240.0ms (2%)

Algorithm
batch-egg-rewrite
Rules
2230×rational.json-simplify-2
1460×rational.json-simplify-35
1418×rational.json-simplify-1
1130×exponential.json-3
1130×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0932
16632
213732
324832
444832
594432
6233832
7390432
8468832
9573632
10646632
11659032
12672032
13752732
Stop Event
node limit
Counts
2 → 70
Calls
Call 1
Inputs
(*.f64 3/25 (pow.f64 x 2))
(-.f64 1 (*.f64 3/25 (pow.f64 x 2)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3/25 (pow.f64 x 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 3/25 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 2) 3/50) (*.f64 (pow.f64 x 2) 3/50))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 3/25 (pow.f64 x 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3/25 (pow.f64 x 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) 6/25) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) 12/25) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) 24/25) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 x 2) 24/25)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 24/25))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 24/25)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 24/25))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 24/25)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3/25 (pow.f64 x 2)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (neg.f64 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 1/2) (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (-.f64 1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (-.f64 1 (+.f64 1 (+.f64 -1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (+.f64 1 (+.f64 -1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2)))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (+.f64 1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (neg.f64 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (*.f64 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -1) 1/2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -1 (-.f64 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2) -2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2)) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2))) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2)))) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2)))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2))))) -32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2))))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2)))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -1 (-.f64 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2) -2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 -1 (-.f64 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (+.f64 1 (+.f64 -1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (+.f64 1 (+.f64 1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2))) 1))))))

simplify119.0ms (1%)

Algorithm
egg-herbie
Rules
1174×rational.json-simplify-45
1092×rational.json-simplify-51
1090×rational.json-simplify-52
1078×rational.json-simplify-42
1066×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01461444
13511444
28211444
323971444
439971444
550901444
672461444
Stop Event
node limit
Counts
82 → 76
Calls
Call 1
Inputs
1
(+.f64 (*.f64 -3/25 (pow.f64 x 2)) 1)
(+.f64 (*.f64 -3/25 (pow.f64 x 2)) 1)
(+.f64 (*.f64 -3/25 (pow.f64 x 2)) 1)
(*.f64 -3/25 (pow.f64 x 2))
(+.f64 (*.f64 -3/25 (pow.f64 x 2)) 1)
(+.f64 (*.f64 -3/25 (pow.f64 x 2)) 1)
(+.f64 (*.f64 -3/25 (pow.f64 x 2)) 1)
(*.f64 -3/25 (pow.f64 x 2))
(+.f64 (*.f64 -3/25 (pow.f64 x 2)) 1)
(+.f64 (*.f64 -3/25 (pow.f64 x 2)) 1)
(+.f64 (*.f64 -3/25 (pow.f64 x 2)) 1)
(+.f64 (*.f64 3/25 (pow.f64 x 2)) 0)
(+.f64 0 (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 (pow.f64 x 2) 3/50) (*.f64 (pow.f64 x 2) 3/50))
(-.f64 (*.f64 3/25 (pow.f64 x 2)) 0)
(/.f64 (*.f64 3/25 (pow.f64 x 2)) 1)
(/.f64 (*.f64 (pow.f64 x 2) 6/25) 2)
(/.f64 (*.f64 (pow.f64 x 2) 12/25) 4)
(/.f64 (*.f64 (pow.f64 x 2) 24/25) 8)
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 2) 24/25)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 24/25))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 24/25)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 24/25))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 24/25)))))) 256)
(pow.f64 (*.f64 3/25 (pow.f64 x 2)) 1)
(+.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 0)
(+.f64 0 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))))
(+.f64 -1 (neg.f64 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2)))
(+.f64 (neg.f64 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2)) -1)
(+.f64 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 1/2) (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 1/2))
(+.f64 -2 (-.f64 1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2)))
(+.f64 -2 (-.f64 1 (+.f64 1 (+.f64 -1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2)))))
(+.f64 (-.f64 1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2)) -2)
(+.f64 (-.f64 1 (+.f64 1 (+.f64 -1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2)))) -2)
(*.f64 2 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 1/2))
(*.f64 1 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))))
(*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 1)
(*.f64 4 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 1/4))
(*.f64 (neg.f64 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2)) 1/2)
(*.f64 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -1) -1)
(*.f64 -1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -1))
(*.f64 -1 (+.f64 1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2)))
(*.f64 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 4) 1/4)
(*.f64 1/2 (neg.f64 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2)))
(*.f64 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2) -1/2)
(*.f64 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 8) 1/8)
(*.f64 1/4 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 4))
(*.f64 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 1/2) 2)
(*.f64 -2 (*.f64 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -1) 1/2))
(*.f64 (*.f64 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -1) 1/2) -2)
(*.f64 1/8 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 8))
(*.f64 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 1/4) 4)
(*.f64 -1/2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2))
(*.f64 (+.f64 1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2)) -1)
(*.f64 (+.f64 -1 (-.f64 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2) -2)) -1)
(/.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 1)
(/.f64 (neg.f64 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2)) 2)
(/.f64 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -1) -1)
(/.f64 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 4) 4)
(/.f64 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2) -2)
(/.f64 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 8) 8)
(/.f64 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2)) -4)
(/.f64 (*.f64 2 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2))) -8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2)))) -16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 8)))) 64)
(/.f64 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2)))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2))))) -32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 8))))) 128)
(/.f64 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2))))) 16)
(/.f64 (+.f64 1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2)) -1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 8)))))) 256)
(/.f64 (*.f64 2 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2)))))) 32)
(/.f64 (+.f64 -1 (-.f64 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2) -2)) -1)
(pow.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 1)
(neg.f64 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -1))
(neg.f64 (+.f64 1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2)))
(neg.f64 (+.f64 -1 (-.f64 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2) -2)))
(neg.f64 (-.f64 (+.f64 1 (+.f64 -1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2))) -1))
(neg.f64 (-.f64 (+.f64 1 (+.f64 1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2))) 1))
Outputs
1
(+.f64 (*.f64 -3/25 (pow.f64 x 2)) 1)
(+.f64 1 (*.f64 -3/25 (pow.f64 x 2)))
(+.f64 (*.f64 -3/25 (pow.f64 x 2)) 1)
(+.f64 1 (*.f64 -3/25 (pow.f64 x 2)))
(+.f64 (*.f64 -3/25 (pow.f64 x 2)) 1)
(+.f64 1 (*.f64 -3/25 (pow.f64 x 2)))
(*.f64 -3/25 (pow.f64 x 2))
(+.f64 (*.f64 -3/25 (pow.f64 x 2)) 1)
(+.f64 1 (*.f64 -3/25 (pow.f64 x 2)))
(+.f64 (*.f64 -3/25 (pow.f64 x 2)) 1)
(+.f64 1 (*.f64 -3/25 (pow.f64 x 2)))
(+.f64 (*.f64 -3/25 (pow.f64 x 2)) 1)
(+.f64 1 (*.f64 -3/25 (pow.f64 x 2)))
(*.f64 -3/25 (pow.f64 x 2))
(+.f64 (*.f64 -3/25 (pow.f64 x 2)) 1)
(+.f64 1 (*.f64 -3/25 (pow.f64 x 2)))
(+.f64 (*.f64 -3/25 (pow.f64 x 2)) 1)
(+.f64 1 (*.f64 -3/25 (pow.f64 x 2)))
(+.f64 (*.f64 -3/25 (pow.f64 x 2)) 1)
(+.f64 1 (*.f64 -3/25 (pow.f64 x 2)))
(+.f64 (*.f64 3/25 (pow.f64 x 2)) 0)
(*.f64 (pow.f64 x 2) 3/25)
(+.f64 0 (*.f64 3/25 (pow.f64 x 2)))
(*.f64 (pow.f64 x 2) 3/25)
(+.f64 (*.f64 (pow.f64 x 2) 3/50) (*.f64 (pow.f64 x 2) 3/50))
(*.f64 (pow.f64 x 2) 3/25)
(-.f64 (*.f64 3/25 (pow.f64 x 2)) 0)
(*.f64 (pow.f64 x 2) 3/25)
(/.f64 (*.f64 3/25 (pow.f64 x 2)) 1)
(*.f64 (pow.f64 x 2) 3/25)
(/.f64 (*.f64 (pow.f64 x 2) 6/25) 2)
(*.f64 (pow.f64 x 2) 3/25)
(/.f64 (*.f64 (pow.f64 x 2) 12/25) 4)
(*.f64 (pow.f64 x 2) 3/25)
(/.f64 (*.f64 (pow.f64 x 2) 24/25) 8)
(*.f64 (pow.f64 x 2) 3/25)
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 2) 24/25)) 16)
(*.f64 (pow.f64 x 2) 3/25)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 24/25))) 32)
(*.f64 (pow.f64 x 2) 3/25)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 24/25)))) 64)
(*.f64 (pow.f64 x 2) 3/25)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 24/25))))) 128)
(*.f64 (pow.f64 x 2) 3/25)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 24/25)))))) 256)
(*.f64 (pow.f64 x 2) 3/25)
(pow.f64 (*.f64 3/25 (pow.f64 x 2)) 1)
(*.f64 (pow.f64 x 2) 3/25)
(+.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 0)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(+.f64 0 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))))
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(+.f64 -1 (neg.f64 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2)))
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(+.f64 (neg.f64 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2)) -1)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(+.f64 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 1/2) (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 1/2))
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(+.f64 -2 (-.f64 1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2)))
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(+.f64 -2 (-.f64 1 (+.f64 1 (+.f64 -1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2)))))
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(+.f64 (-.f64 1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2)) -2)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(+.f64 (-.f64 1 (+.f64 1 (+.f64 -1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2)))) -2)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(*.f64 2 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 1/2))
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(*.f64 1 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))))
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 1)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(*.f64 4 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 1/4))
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(*.f64 (neg.f64 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2)) 1/2)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(*.f64 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -1) -1)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(*.f64 -1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -1))
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(*.f64 -1 (+.f64 1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2)))
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(*.f64 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 4) 1/4)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(*.f64 1/2 (neg.f64 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2)))
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(*.f64 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2) -1/2)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(*.f64 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 8) 1/8)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(*.f64 1/4 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 4))
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(*.f64 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 1/2) 2)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(*.f64 -2 (*.f64 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -1) 1/2))
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(*.f64 (*.f64 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -1) 1/2) -2)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(*.f64 1/8 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 8))
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(*.f64 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 1/4) 4)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(*.f64 -1/2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2))
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(*.f64 (+.f64 1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2)) -1)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(*.f64 (+.f64 -1 (-.f64 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2) -2)) -1)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(/.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 1)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(/.f64 (neg.f64 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2)) 2)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(/.f64 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -1) -1)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(/.f64 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 4) 4)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(/.f64 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2) -2)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(/.f64 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 8) 8)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(/.f64 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2)) -4)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(/.f64 (*.f64 2 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 8)) 16)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 8))) 32)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(/.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2))) -8)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2)))) -16)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 8)))) 64)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(/.f64 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2)))) 8)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2))))) -32)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 8))))) 128)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(/.f64 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2))))) 16)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(/.f64 (+.f64 1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2)) -1)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 8)))))) 256)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(/.f64 (*.f64 2 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) -2)))))) 32)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(/.f64 (+.f64 -1 (-.f64 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2) -2)) -1)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(pow.f64 (-.f64 1 (*.f64 3/25 (pow.f64 x 2))) 1)
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(neg.f64 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -1))
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(neg.f64 (+.f64 1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2)))
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(neg.f64 (+.f64 -1 (-.f64 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2) -2)))
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(neg.f64 (-.f64 (+.f64 1 (+.f64 -1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2))) -1))
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))
(neg.f64 (-.f64 (+.f64 1 (+.f64 1 (+.f64 (*.f64 3/25 (pow.f64 x 2)) -2))) 1))
(-.f64 1 (*.f64 (pow.f64 x 2) 3/25))

localize5.0ms (0%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(-.f64 1 (*.f64 x 253/1000))
0.0b
(*.f64 x 253/1000)
Compiler

Compiled 12 to 9 computations (25% saved)

series1.0ms (0%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@inf
(*.f64 x 253/1000)
0.0ms
x
@-inf
(*.f64 x 253/1000)
0.0ms
x
@0
(*.f64 x 253/1000)
0.0ms
x
@inf
(-.f64 1 (*.f64 x 253/1000))
0.0ms
x
@0
(-.f64 1 (*.f64 x 253/1000))

rewrite262.0ms (2.2%)

Algorithm
batch-egg-rewrite
Rules
2374×rational.json-simplify-35
1992×rational.json-simplify-2
1560×rational.json-simplify-1
1124×exponential.json-3
1124×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0720
15520
212520
322720
441020
585120
6208420
7346020
8414720
9519520
10590820
11605020
12626120
13711620
14738020
Stop Event
node limit
Counts
2 → 81
Calls
Call 1
Inputs
(*.f64 x 253/1000)
(-.f64 1 (*.f64 x 253/1000))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x 253/1000) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (+.f64 (*.f64 x 253/1000) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x 253/1000))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 x 253/1000) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (*.f64 x 253/1000) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x 253/2000) (*.f64 x 253/2000))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x 253/2000) (+.f64 1 (+.f64 -1 (*.f64 x 253/2000))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (+.f64 (*.f64 x 253/500) -2) 4) (+.f64 1 (/.f64 (+.f64 (*.f64 x 253/500) -2) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 -1 (*.f64 x 253/2000)) (+.f64 1 (*.f64 x 253/2000)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 x 253/1000) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (/.f64 (+.f64 (*.f64 x 253/500) -2) 4)) (/.f64 (+.f64 (*.f64 x 253/500) -2) 4))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (+.f64 -1 (*.f64 x 253/2000))) (*.f64 x 253/2000))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (*.f64 x 253/2000)) (+.f64 -1 (*.f64 x 253/2000)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x 253/1000) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x 253/1000) -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x 253/1000) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 253/1000) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 253/500) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 253/250) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 253/125) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x 253/125)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 x 253/125))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 253/125)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 253/125))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 253/125)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 253/125)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 253/125))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x 253/1000) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (*.f64 x 253/1000)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 1 (*.f64 x 253/1000)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/2) (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (neg.f64 (+.f64 (*.f64 x 253/1000) -3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (-.f64 1 (+.f64 -1 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (+.f64 (*.f64 x 253/1000) -3)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 1 (*.f64 x 253/1000)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (*.f64 x 253/1000)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 x 253/500) -2) -8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 (*.f64 x 253/500) -2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x 253/1000) -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (+.f64 (*.f64 x 253/1000) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (neg.f64 (+.f64 (*.f64 x 253/500) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x 253/500) -2) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (/.f64 (+.f64 (*.f64 x 253/500) -2) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 x 253/500) -2) 4) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 x 253/500) -2) -8) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/2 (+.f64 (*.f64 x 253/500) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (*.f64 x 253/1000)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (*.f64 x 253/500) -2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x 253/1000) -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x 253/500) -2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (*.f64 x 253/500) -2)) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/500) -2))) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/500) -2)))) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/500) -2)))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/500) -2))))) -32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/500) -2))))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/500) -2)))))) -64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/500) -2)))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2) (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/500) -2)))))) (*.f64 2 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/500) -2))))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 1 (*.f64 x 253/1000)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 (*.f64 x 253/1000) -1))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 -1 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -3)))))))

simplify221.0ms (1.8%)

Algorithm
egg-herbie
Rules
2190×rational.json-simplify-2
2042×rational.json-simplify-42
1884×rational.json-simplify-35
1040×rational.json-simplify-51
992×rational.json-simplify-52
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01671191
13811191
28921191
325811191
444111191
552391191
656501191
759791191
862871191
965791191
1075261191
Stop Event
node limit
Counts
105 → 89
Calls
Call 1
Inputs
(*.f64 253/1000 x)
(*.f64 253/1000 x)
(*.f64 253/1000 x)
(*.f64 253/1000 x)
(*.f64 253/1000 x)
(*.f64 253/1000 x)
(*.f64 253/1000 x)
(*.f64 253/1000 x)
(*.f64 253/1000 x)
(*.f64 253/1000 x)
(*.f64 253/1000 x)
(*.f64 253/1000 x)
1
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 -253/1000 x))
(*.f64 -253/1000 x)
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 -253/1000 x))
(*.f64 -253/1000 x)
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 (*.f64 x 253/1000) 0)
(+.f64 1 (+.f64 (*.f64 x 253/1000) -1))
(+.f64 0 (*.f64 x 253/1000))
(+.f64 (+.f64 (*.f64 x 253/1000) -1) 1)
(+.f64 -1 (+.f64 (*.f64 x 253/1000) 1))
(+.f64 (*.f64 x 253/2000) (*.f64 x 253/2000))
(+.f64 (*.f64 x 253/2000) (+.f64 1 (+.f64 -1 (*.f64 x 253/2000))))
(+.f64 (/.f64 (+.f64 (*.f64 x 253/500) -2) 4) (+.f64 1 (/.f64 (+.f64 (*.f64 x 253/500) -2) 4)))
(+.f64 (+.f64 -1 (*.f64 x 253/2000)) (+.f64 1 (*.f64 x 253/2000)))
(+.f64 (+.f64 (*.f64 x 253/1000) 1) -1)
(+.f64 (+.f64 1 (/.f64 (+.f64 (*.f64 x 253/500) -2) 4)) (/.f64 (+.f64 (*.f64 x 253/500) -2) 4))
(+.f64 (+.f64 1 (+.f64 -1 (*.f64 x 253/2000))) (*.f64 x 253/2000))
(+.f64 (+.f64 1 (*.f64 x 253/2000)) (+.f64 -1 (*.f64 x 253/2000)))
(-.f64 (*.f64 x 253/1000) 0)
(-.f64 (+.f64 (*.f64 x 253/1000) -1) -1)
(-.f64 (+.f64 (*.f64 x 253/1000) 1) 1)
(/.f64 (*.f64 x 253/1000) 1)
(/.f64 (*.f64 x 253/500) 2)
(/.f64 (*.f64 x 253/250) 4)
(/.f64 (*.f64 x 253/125) 8)
(/.f64 (*.f64 2 (*.f64 x 253/125)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x 253/125))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 253/125)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 253/125))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 253/125)))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 253/125)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 253/125))))))) 512)
(pow.f64 (*.f64 x 253/1000) 1)
(+.f64 (-.f64 1 (*.f64 x 253/1000)) 0)
(+.f64 0 (-.f64 1 (*.f64 x 253/1000)))
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(+.f64 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)) -1)
(+.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/2) (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/2))
(+.f64 -2 (neg.f64 (+.f64 (*.f64 x 253/1000) -3)))
(+.f64 -2 (-.f64 1 (+.f64 -1 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2))))
(+.f64 (neg.f64 (+.f64 (*.f64 x 253/1000) -3)) -2)
(*.f64 1 (-.f64 1 (*.f64 x 253/1000)))
(*.f64 (-.f64 1 (*.f64 x 253/1000)) 1)
(*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/2))
(*.f64 4 (/.f64 (+.f64 (*.f64 x 253/500) -2) -8))
(*.f64 (neg.f64 (+.f64 (*.f64 x 253/500) -2)) 1/2)
(*.f64 (+.f64 (*.f64 x 253/1000) -1) -1)
(*.f64 -1 (+.f64 (*.f64 x 253/1000) -1))
(*.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 4) 1/4)
(*.f64 1/2 (neg.f64 (+.f64 (*.f64 x 253/500) -2)))
(*.f64 (+.f64 (*.f64 x 253/500) -2) -1/2)
(*.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8) 1/8)
(*.f64 1/4 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 4))
(*.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/2) 2)
(*.f64 -2 (/.f64 (+.f64 (*.f64 x 253/500) -2) 4))
(*.f64 (/.f64 (+.f64 (*.f64 x 253/500) -2) 4) -2)
(*.f64 1/8 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8))
(*.f64 (/.f64 (+.f64 (*.f64 x 253/500) -2) -8) 4)
(*.f64 -1/2 (+.f64 (*.f64 x 253/500) -2))
(*.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2) -1)
(/.f64 (-.f64 1 (*.f64 x 253/1000)) 1)
(/.f64 (neg.f64 (+.f64 (*.f64 x 253/500) -2)) 2)
(/.f64 (+.f64 (*.f64 x 253/1000) -1) -1)
(/.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 4) 4)
(/.f64 (+.f64 (*.f64 x 253/500) -2) -2)
(/.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8) 8)
(/.f64 (*.f64 2 (+.f64 (*.f64 x 253/500) -2)) -4)
(/.f64 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/500) -2))) -8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/500) -2)))) -16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8)))) 64)
(/.f64 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/500) -2)))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/500) -2))))) -32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8))))) 128)
(/.f64 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/500) -2))))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/500) -2)))))) -64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8)))))) 256)
(/.f64 (*.f64 2 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/500) -2)))))) 32)
(/.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2) -1)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8))))))) 512)
(/.f64 (+.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2) (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2)) -2)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/500) -2)))))) (*.f64 2 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/500) -2))))))) 64)
(pow.f64 (-.f64 1 (*.f64 x 253/1000)) 1)
(neg.f64 (+.f64 (*.f64 x 253/1000) -1))
(neg.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2))
(neg.f64 (+.f64 -1 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -3)))
Outputs
(*.f64 253/1000 x)
(*.f64 253/1000 x)
(*.f64 253/1000 x)
(*.f64 253/1000 x)
(*.f64 253/1000 x)
(*.f64 253/1000 x)
(*.f64 253/1000 x)
(*.f64 253/1000 x)
(*.f64 253/1000 x)
(*.f64 253/1000 x)
(*.f64 253/1000 x)
(*.f64 253/1000 x)
1
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 x -253/1000))
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 x -253/1000))
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 x -253/1000))
(*.f64 -253/1000 x)
(*.f64 x -253/1000)
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 x -253/1000))
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 x -253/1000))
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 x -253/1000))
(*.f64 -253/1000 x)
(*.f64 x -253/1000)
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 x -253/1000))
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 x -253/1000))
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 x -253/1000))
(+.f64 (*.f64 x 253/1000) 0)
(*.f64 253/1000 x)
(+.f64 1 (+.f64 (*.f64 x 253/1000) -1))
(*.f64 253/1000 x)
(+.f64 0 (*.f64 x 253/1000))
(*.f64 253/1000 x)
(+.f64 (+.f64 (*.f64 x 253/1000) -1) 1)
(*.f64 253/1000 x)
(+.f64 -1 (+.f64 (*.f64 x 253/1000) 1))
(*.f64 253/1000 x)
(+.f64 (*.f64 x 253/2000) (*.f64 x 253/2000))
(*.f64 253/1000 x)
(+.f64 (*.f64 x 253/2000) (+.f64 1 (+.f64 -1 (*.f64 x 253/2000))))
(*.f64 253/1000 x)
(+.f64 (/.f64 (+.f64 (*.f64 x 253/500) -2) 4) (+.f64 1 (/.f64 (+.f64 (*.f64 x 253/500) -2) 4)))
(+.f64 1 (+.f64 (/.f64 (+.f64 (*.f64 x 253/500) -2) 4) (/.f64 (+.f64 (*.f64 x 253/500) -2) 4)))
(+.f64 (+.f64 -1 (*.f64 x 253/2000)) (+.f64 1 (*.f64 x 253/2000)))
(*.f64 253/1000 x)
(+.f64 (+.f64 (*.f64 x 253/1000) 1) -1)
(*.f64 253/1000 x)
(+.f64 (+.f64 1 (/.f64 (+.f64 (*.f64 x 253/500) -2) 4)) (/.f64 (+.f64 (*.f64 x 253/500) -2) 4))
(+.f64 1 (+.f64 (/.f64 (+.f64 (*.f64 x 253/500) -2) 4) (/.f64 (+.f64 (*.f64 x 253/500) -2) 4)))
(+.f64 (+.f64 1 (+.f64 -1 (*.f64 x 253/2000))) (*.f64 x 253/2000))
(*.f64 253/1000 x)
(+.f64 (+.f64 1 (*.f64 x 253/2000)) (+.f64 -1 (*.f64 x 253/2000)))
(*.f64 253/1000 x)
(-.f64 (*.f64 x 253/1000) 0)
(*.f64 253/1000 x)
(-.f64 (+.f64 (*.f64 x 253/1000) -1) -1)
(*.f64 253/1000 x)
(-.f64 (+.f64 (*.f64 x 253/1000) 1) 1)
(*.f64 253/1000 x)
(/.f64 (*.f64 x 253/1000) 1)
(*.f64 253/1000 x)
(/.f64 (*.f64 x 253/500) 2)
(*.f64 253/1000 x)
(/.f64 (*.f64 x 253/250) 4)
(*.f64 253/1000 x)
(/.f64 (*.f64 x 253/125) 8)
(*.f64 253/1000 x)
(/.f64 (*.f64 2 (*.f64 x 253/125)) 16)
(*.f64 253/1000 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x 253/125))) 32)
(*.f64 253/1000 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 253/125)))) 64)
(*.f64 253/1000 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 253/125))))) 128)
(*.f64 253/1000 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 253/125)))))) 256)
(*.f64 253/1000 x)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 253/125)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 253/125))))))) 512)
(*.f64 253/1000 x)
(pow.f64 (*.f64 x 253/1000) 1)
(*.f64 253/1000 x)
(+.f64 (-.f64 1 (*.f64 x 253/1000)) 0)
(-.f64 1 (*.f64 253/1000 x))
(+.f64 0 (-.f64 1 (*.f64 x 253/1000)))
(-.f64 1 (*.f64 253/1000 x))
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 1 (*.f64 253/1000 x))
(+.f64 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)) -1)
(-.f64 1 (*.f64 253/1000 x))
(+.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/2) (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/2))
(-.f64 1 (*.f64 253/1000 x))
(+.f64 -2 (neg.f64 (+.f64 (*.f64 x 253/1000) -3)))
(-.f64 1 (*.f64 253/1000 x))
(+.f64 -2 (-.f64 1 (+.f64 -1 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2))))
(-.f64 1 (*.f64 253/1000 x))
(+.f64 (neg.f64 (+.f64 (*.f64 x 253/1000) -3)) -2)
(-.f64 1 (*.f64 253/1000 x))
(*.f64 1 (-.f64 1 (*.f64 x 253/1000)))
(-.f64 1 (*.f64 253/1000 x))
(*.f64 (-.f64 1 (*.f64 x 253/1000)) 1)
(-.f64 1 (*.f64 253/1000 x))
(*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/2))
(-.f64 1 (*.f64 253/1000 x))
(*.f64 4 (/.f64 (+.f64 (*.f64 x 253/500) -2) -8))
(-.f64 1 (*.f64 253/1000 x))
(*.f64 (neg.f64 (+.f64 (*.f64 x 253/500) -2)) 1/2)
(-.f64 1 (*.f64 253/1000 x))
(*.f64 (+.f64 (*.f64 x 253/1000) -1) -1)
(-.f64 1 (*.f64 253/1000 x))
(*.f64 -1 (+.f64 (*.f64 x 253/1000) -1))
(-.f64 1 (*.f64 253/1000 x))
(*.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 4) 1/4)
(-.f64 1 (*.f64 253/1000 x))
(*.f64 1/2 (neg.f64 (+.f64 (*.f64 x 253/500) -2)))
(-.f64 1 (*.f64 253/1000 x))
(*.f64 (+.f64 (*.f64 x 253/500) -2) -1/2)
(-.f64 1 (*.f64 253/1000 x))
(*.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8) 1/8)
(-.f64 1 (*.f64 253/1000 x))
(*.f64 1/4 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 4))
(-.f64 1 (*.f64 253/1000 x))
(*.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/2) 2)
(-.f64 1 (*.f64 253/1000 x))
(*.f64 -2 (/.f64 (+.f64 (*.f64 x 253/500) -2) 4))
(-.f64 1 (*.f64 253/1000 x))
(*.f64 (/.f64 (+.f64 (*.f64 x 253/500) -2) 4) -2)
(-.f64 1 (*.f64 253/1000 x))
(*.f64 1/8 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8))
(-.f64 1 (*.f64 253/1000 x))
(*.f64 (/.f64 (+.f64 (*.f64 x 253/500) -2) -8) 4)
(-.f64 1 (*.f64 253/1000 x))
(*.f64 -1/2 (+.f64 (*.f64 x 253/500) -2))
(-.f64 1 (*.f64 253/1000 x))
(*.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2) -1)
(-.f64 1 (*.f64 253/1000 x))
(/.f64 (-.f64 1 (*.f64 x 253/1000)) 1)
(-.f64 1 (*.f64 253/1000 x))
(/.f64 (neg.f64 (+.f64 (*.f64 x 253/500) -2)) 2)
(-.f64 1 (*.f64 253/1000 x))
(/.f64 (+.f64 (*.f64 x 253/1000) -1) -1)
(-.f64 1 (*.f64 253/1000 x))
(/.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 4) 4)
(-.f64 1 (*.f64 253/1000 x))
(/.f64 (+.f64 (*.f64 x 253/500) -2) -2)
(-.f64 1 (*.f64 253/1000 x))
(/.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8) 8)
(-.f64 1 (*.f64 253/1000 x))
(/.f64 (*.f64 2 (+.f64 (*.f64 x 253/500) -2)) -4)
(-.f64 1 (*.f64 253/1000 x))
(/.f64 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8)) 16)
(-.f64 1 (*.f64 253/1000 x))
(/.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/500) -2))) -8)
(-.f64 1 (*.f64 253/1000 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8))) 32)
(-.f64 1 (*.f64 253/1000 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/500) -2)))) -16)
(-.f64 1 (*.f64 253/1000 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8)))) 64)
(-.f64 1 (*.f64 253/1000 x))
(/.f64 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/500) -2)))) 8)
(-.f64 1 (*.f64 253/1000 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/500) -2))))) -32)
(-.f64 1 (*.f64 253/1000 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8))))) 128)
(-.f64 1 (*.f64 253/1000 x))
(/.f64 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/500) -2))))) 16)
(-.f64 1 (*.f64 253/1000 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/500) -2)))))) -64)
(-.f64 1 (*.f64 253/1000 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8)))))) 256)
(-.f64 1 (*.f64 253/1000 x))
(/.f64 (*.f64 2 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/500) -2)))))) 32)
(-.f64 1 (*.f64 253/1000 x))
(/.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2) -1)
(-.f64 1 (*.f64 253/1000 x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8))))))) 512)
(-.f64 1 (*.f64 253/1000 x))
(/.f64 (+.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2) (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2)) -2)
(-.f64 1 (*.f64 253/1000 x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/500) -2)))))) (*.f64 2 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/500) -2))))))) 64)
(-.f64 1 (*.f64 253/1000 x))
(pow.f64 (-.f64 1 (*.f64 x 253/1000)) 1)
(-.f64 1 (*.f64 253/1000 x))
(neg.f64 (+.f64 (*.f64 x 253/1000) -1))
(-.f64 1 (*.f64 253/1000 x))
(neg.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2))
(-.f64 1 (*.f64 253/1000 x))
(neg.f64 (+.f64 -1 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -3)))
(-.f64 1 (*.f64 253/1000 x))

localize16.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2)))
0.0b
(*.f64 x 253/1000)
0.2b
(*.f64 3/25 (pow.f64 x 2))
Compiler

Compiled 37 to 29 computations (21.6% saved)

series0.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@0
(+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2)))
0.0ms
x
@inf
(+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2)))
0.0ms
x
@-inf
(+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2)))

rewrite259.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
2438×rational.json-simplify-35
2316×rational.json-simplify-2
1164×rational.json-simplify-1
1124×exponential.json-3
1124×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01025
16525
212425
323625
444325
599225
6255925
7438525
8512825
9616925
10685825
11685825
12780325
13780325
Stop Event
node limit
Counts
1 → 24
Calls
Call 1
Inputs
(+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 3/50) (*.f64 x 253/2000)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (pow.f64 x 2) 6/25) (*.f64 x 253/500)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) (*.f64 x 253/500))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) (*.f64 x 253/500)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (pow.f64 x 2) 3/50) (*.f64 x 253/2000)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) (*.f64 x 253/500))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (pow.f64 x 2) 6/25) (*.f64 x 253/500)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) (*.f64 x 253/500))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (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 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 8))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 1)))))

simplify1.8s (14.5%)

Algorithm
egg-herbie
Rules
5010×rational.json-simplify-51
2316×rational.json-simplify-35
2162×rational.json-simplify-2
1506×rational.json-simplify-49
1214×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
068870
1138870
2299870
3955870
41910870
53702870
64548870
74607870
84648870
94681870
104714870
114747870
124810870
134843870
144876870
154909870
164942870
174975870
185008870
195041870
205074870
215107870
225140870
235173870
245206870
255239870
265272870
275305870
285338870
295371870
305404870
315437870
325470870
335503870
345503870
356595870
Stop Event
node limit
Counts
36 → 28
Calls
Call 1
Inputs
(*.f64 253/1000 x)
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(*.f64 3/25 (pow.f64 x 2))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(*.f64 3/25 (pow.f64 x 2))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(-.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 0)
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 3/50) (*.f64 x 253/2000)))
(*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 1)
(*.f64 1 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))))
(*.f64 (+.f64 (*.f64 (pow.f64 x 2) 6/25) (*.f64 x 253/500)) 1/2)
(*.f64 4 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 1/4))
(*.f64 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) (*.f64 x 253/500))) 1/4)
(*.f64 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 8) 1/8)
(*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) (*.f64 x 253/500)))
(*.f64 (+.f64 (*.f64 (pow.f64 x 2) 3/50) (*.f64 x 253/2000)) 2)
(*.f64 1/4 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) (*.f64 x 253/500))))
(*.f64 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 1/4) 4)
(*.f64 1/8 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 8))
(/.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 1)
(/.f64 (+.f64 (*.f64 (pow.f64 x 2) 6/25) (*.f64 x 253/500)) 2)
(/.f64 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) (*.f64 x 253/500))) 4)
(/.f64 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 8)))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 8))))))) 512)
(pow.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 1)
Outputs
(*.f64 253/1000 x)
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 3/25 (pow.f64 x 2)) (*.f64 253/1000 x))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 3/25 (pow.f64 x 2)) (*.f64 253/1000 x))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 3/25 (pow.f64 x 2)) (*.f64 253/1000 x))
(*.f64 3/25 (pow.f64 x 2))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 3/25 (pow.f64 x 2)) (*.f64 253/1000 x))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 3/25 (pow.f64 x 2)) (*.f64 253/1000 x))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 3/25 (pow.f64 x 2)) (*.f64 253/1000 x))
(*.f64 3/25 (pow.f64 x 2))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 3/25 (pow.f64 x 2)) (*.f64 253/1000 x))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 3/25 (pow.f64 x 2)) (*.f64 253/1000 x))
(+.f64 (*.f64 253/1000 x) (*.f64 3/25 (pow.f64 x 2)))
(+.f64 (*.f64 3/25 (pow.f64 x 2)) (*.f64 253/1000 x))
(-.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 0)
(+.f64 (*.f64 3/25 (pow.f64 x 2)) (*.f64 253/1000 x))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 3/50) (*.f64 x 253/2000)))
(*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 1)
(+.f64 (*.f64 3/25 (pow.f64 x 2)) (*.f64 253/1000 x))
(*.f64 1 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))))
(+.f64 (*.f64 3/25 (pow.f64 x 2)) (*.f64 253/1000 x))
(*.f64 (+.f64 (*.f64 (pow.f64 x 2) 6/25) (*.f64 x 253/500)) 1/2)
(+.f64 (*.f64 3/25 (pow.f64 x 2)) (*.f64 253/1000 x))
(*.f64 4 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 1/4))
(+.f64 (*.f64 3/25 (pow.f64 x 2)) (*.f64 253/1000 x))
(*.f64 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) (*.f64 x 253/500))) 1/4)
(+.f64 (*.f64 3/25 (pow.f64 x 2)) (*.f64 253/1000 x))
(*.f64 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 8) 1/8)
(+.f64 (*.f64 3/25 (pow.f64 x 2)) (*.f64 253/1000 x))
(*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) (*.f64 x 253/500)))
(+.f64 (*.f64 3/25 (pow.f64 x 2)) (*.f64 253/1000 x))
(*.f64 (+.f64 (*.f64 (pow.f64 x 2) 3/50) (*.f64 x 253/2000)) 2)
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 3/50) (*.f64 x 253/2000)))
(*.f64 1/4 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) (*.f64 x 253/500))))
(+.f64 (*.f64 3/25 (pow.f64 x 2)) (*.f64 253/1000 x))
(*.f64 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 1/4) 4)
(+.f64 (*.f64 3/25 (pow.f64 x 2)) (*.f64 253/1000 x))
(*.f64 1/8 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 8))
(+.f64 (*.f64 3/25 (pow.f64 x 2)) (*.f64 253/1000 x))
(/.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 1)
(+.f64 (*.f64 3/25 (pow.f64 x 2)) (*.f64 253/1000 x))
(/.f64 (+.f64 (*.f64 (pow.f64 x 2) 6/25) (*.f64 x 253/500)) 2)
(+.f64 (*.f64 3/25 (pow.f64 x 2)) (*.f64 253/1000 x))
(/.f64 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 6/25) (*.f64 x 253/500))) 4)
(+.f64 (*.f64 3/25 (pow.f64 x 2)) (*.f64 253/1000 x))
(/.f64 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 8) 8)
(+.f64 (*.f64 3/25 (pow.f64 x 2)) (*.f64 253/1000 x))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 8)) 16)
(+.f64 (*.f64 3/25 (pow.f64 x 2)) (*.f64 253/1000 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 8))) 32)
(+.f64 (*.f64 3/25 (pow.f64 x 2)) (*.f64 253/1000 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 8)))) 64)
(+.f64 (*.f64 3/25 (pow.f64 x 2)) (*.f64 253/1000 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 8))))) 128)
(+.f64 (*.f64 3/25 (pow.f64 x 2)) (*.f64 253/1000 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 8)))))) 256)
(+.f64 (*.f64 3/25 (pow.f64 x 2)) (*.f64 253/1000 x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 8))))))) 512)
(+.f64 (*.f64 3/25 (pow.f64 x 2)) (*.f64 253/1000 x))
(pow.f64 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))) 1)
(+.f64 (*.f64 3/25 (pow.f64 x 2)) (*.f64 253/1000 x))

eval66.0ms (0.5%)

Compiler

Compiled 2964 to 2632 computations (11.2% saved)

prune35.0ms (0.3%)

Pruning

7 alts after pruning (4 fresh and 3 done)

PrunedKeptTotal
New2334237
Fresh000
Picked011
Done123
Total2347241
Error
0.0b
Counts
241 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(-.f64 1 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))))
0.1b
(-.f64 1 (*.f64 x (+.f64 253/1000 (*.f64 x 3/25))))
24.5b
(-.f64 1 (*.f64 x 253/1000))
24.5b
(+.f64 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)) -1)
61.5b
(*.f64 x -253/1000)
38.7b
(*.f64 -3/25 (pow.f64 x 2))
25.5b
1
Compiler

Compiled 49 to 41 computations (16.3% saved)

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.2b
(*.f64 -3/25 (pow.f64 x 2))
Compiler

Compiled 12 to 9 computations (25% saved)

series1.0ms (0%)

Counts
1 → 0
Calls

3 calls:

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

rewrite392.0ms (3.2%)

Algorithm
batch-egg-rewrite
Rules
3388×rational.json-simplify-35
2202×rational.json-simplify-51
1832×rational.json-simplify-2
1160×rational.json-simplify-1
1072×exponential.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
14513
29513
317913
431613
567613
6159913
7261913
8315013
9377113
10445213
11487013
12487013
13487013
14560213
15640413
16738313
17780113
18786013
19786013
Stop Event
node limit
Counts
1 → 18
Calls
Call 1
Inputs
(*.f64 -3/25 (pow.f64 x 2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -3/25 (pow.f64 x 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -3/25 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 2) -3/50) (*.f64 (pow.f64 x 2) -3/50))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 -3/25 (pow.f64 x 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -3/25 (pow.f64 x 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) -6/25) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) -12/25) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) -24/25) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) -48/25) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (pow.f64 x 2) -24/25) 4) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (pow.f64 x 2) -48/25) 4) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (*.f64 (pow.f64 x 2) -24/25) 4) 4) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (*.f64 (pow.f64 x 2) -48/25) 4) 4) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (*.f64 (*.f64 (pow.f64 x 2) -24/25) 4) 4) 4) 512)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (*.f64 (*.f64 (pow.f64 x 2) -48/25) 4) 4) 4) 1024)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (pow.f64 x 2) -24/25) 4) 4) 4) 4) 2048)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (pow.f64 x 2) -24/25) 4) 4) 4) 4)) 4096)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -3/25 (pow.f64 x 2)) 1)))))

simplify602.0ms (5%)

Algorithm
egg-herbie
Rules
6876×rational.json-simplify-43
4292×rational.json-simplify-35
1466×rational.json-simplify-2
1032×rational.json-simplify-1
684×rational.json-simplify-41
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
056234
1141234
2302234
3737234
41999234
53465234
64025234
74206234
84341234
94473234
104605234
114811234
124952234
134952234
145084234
155216234
165348234
175480234
185612234
195744234
205876234
216008234
226140234
236140234
246272234
Stop Event
node limit
Counts
18 → 19
Calls
Call 1
Inputs
(+.f64 (*.f64 -3/25 (pow.f64 x 2)) 0)
(+.f64 0 (*.f64 -3/25 (pow.f64 x 2)))
(+.f64 (*.f64 (pow.f64 x 2) -3/50) (*.f64 (pow.f64 x 2) -3/50))
(-.f64 (*.f64 -3/25 (pow.f64 x 2)) 0)
(/.f64 (*.f64 -3/25 (pow.f64 x 2)) 1)
(/.f64 (*.f64 (pow.f64 x 2) -6/25) 2)
(/.f64 (*.f64 (pow.f64 x 2) -12/25) 4)
(/.f64 (*.f64 (pow.f64 x 2) -24/25) 8)
(/.f64 (*.f64 (pow.f64 x 2) -48/25) 16)
(/.f64 (*.f64 (*.f64 (pow.f64 x 2) -24/25) 4) 32)
(/.f64 (*.f64 (*.f64 (pow.f64 x 2) -48/25) 4) 64)
(/.f64 (*.f64 (*.f64 (*.f64 (pow.f64 x 2) -24/25) 4) 4) 128)
(/.f64 (*.f64 (*.f64 (*.f64 (pow.f64 x 2) -48/25) 4) 4) 256)
(/.f64 (*.f64 (*.f64 (*.f64 (*.f64 (pow.f64 x 2) -24/25) 4) 4) 4) 512)
(/.f64 (*.f64 (*.f64 (*.f64 (*.f64 (pow.f64 x 2) -48/25) 4) 4) 4) 1024)
(/.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (pow.f64 x 2) -24/25) 4) 4) 4) 4) 2048)
(/.f64 (*.f64 2 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (pow.f64 x 2) -24/25) 4) 4) 4) 4)) 4096)
(pow.f64 (*.f64 -3/25 (pow.f64 x 2)) 1)
Outputs
(+.f64 (*.f64 -3/25 (pow.f64 x 2)) 0)
(*.f64 -3/25 (pow.f64 x 2))
(+.f64 0 (*.f64 -3/25 (pow.f64 x 2)))
(*.f64 -3/25 (pow.f64 x 2))
(+.f64 (*.f64 (pow.f64 x 2) -3/50) (*.f64 (pow.f64 x 2) -3/50))
(*.f64 -3/25 (pow.f64 x 2))
(-.f64 (*.f64 -3/25 (pow.f64 x 2)) 0)
(*.f64 -3/25 (pow.f64 x 2))
(/.f64 (*.f64 -3/25 (pow.f64 x 2)) 1)
(*.f64 -3/25 (pow.f64 x 2))
(/.f64 (*.f64 (pow.f64 x 2) -6/25) 2)
(*.f64 -3/25 (pow.f64 x 2))
(/.f64 (*.f64 (pow.f64 x 2) -12/25) 4)
(*.f64 -3/25 (pow.f64 x 2))
(/.f64 (*.f64 (pow.f64 x 2) -24/25) 8)
(*.f64 -3/25 (pow.f64 x 2))
(/.f64 (*.f64 (pow.f64 x 2) -48/25) 16)
(*.f64 -3/25 (pow.f64 x 2))
(/.f64 (*.f64 (*.f64 (pow.f64 x 2) -24/25) 4) 32)
(*.f64 -3/25 (pow.f64 x 2))
(/.f64 (*.f64 (*.f64 (pow.f64 x 2) -48/25) 4) 64)
(*.f64 -3/25 (pow.f64 x 2))
(/.f64 (*.f64 (*.f64 (*.f64 (pow.f64 x 2) -24/25) 4) 4) 128)
(*.f64 -3/25 (pow.f64 x 2))
(/.f64 (*.f64 (*.f64 (*.f64 (pow.f64 x 2) -48/25) 4) 4) 256)
(*.f64 -3/25 (pow.f64 x 2))
(/.f64 (*.f64 (*.f64 (*.f64 (*.f64 (pow.f64 x 2) -24/25) 4) 4) 4) 512)
(*.f64 -3/25 (pow.f64 x 2))
(/.f64 (*.f64 (*.f64 (*.f64 (*.f64 (pow.f64 x 2) -48/25) 4) 4) 4) 1024)
(*.f64 -3/25 (pow.f64 x 2))
(/.f64 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (pow.f64 x 2) -24/25) 4) 4) 4) 4) 2048)
(*.f64 -3/25 (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 (*.f64 (*.f64 (*.f64 (*.f64 (pow.f64 x 2) -24/25) 4) 4) 4) 4)) 4096)
(*.f64 -3/25 (pow.f64 x 2))
(pow.f64 (*.f64 -3/25 (pow.f64 x 2)) 1)
(*.f64 -3/25 (pow.f64 x 2))

localize3.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 x -253/1000)
Compiler

Compiled 6 to 4 computations (33.3% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@0
(*.f64 x -253/1000)
0.0ms
x
@inf
(*.f64 x -253/1000)
0.0ms
x
@-inf
(*.f64 x -253/1000)

rewrite968.0ms (8%)

Algorithm
batch-egg-rewrite
Rules
2420×rational.json-simplify-2
2364×rational.json-simplify-35
1480×rational.json-simplify-1
1110×exponential.json-3
1110×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057
1337
2787
31587
42787
55837
613387
728457
844167
949827
1060497
1167567
1267567
1378217
1478217
Stop Event
node limit
Counts
1 → 16
Calls
Call 1
Inputs
(*.f64 x -253/1000)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x -253/1000) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x -253/1000))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x -253/2000) (*.f64 x -253/2000))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x -253/1000) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x -253/1000) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x -253/500) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x -253/250) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x -253/125) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x -253/125)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 x -253/125))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x -253/125)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x -253/125))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x -253/125)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x -253/125))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x -253/125))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x -253/125)))))))) 1024)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x -253/1000) 1)))))

simplify912.0ms (7.5%)

Algorithm
egg-herbie
Rules
5844×rational.json-simplify-51
2758×rational.json-simplify-49
2728×rational.json-simplify-35
1494×rational.json-simplify-2
1010×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
049196
1123196
2219196
3542196
41299196
52989196
64014196
74142196
84197196
94248196
104297196
114345196
124431196
134476196
144520196
154564196
164608196
174652196
184696196
194740196
204784196
214828196
224872196
234916196
244960196
254960196
265004196
275048196
285092196
295136196
305180196
315224196
325268196
335312196
345356196
355400196
Stop Event
node limit
Counts
28 → 17
Calls
Call 1
Inputs
(*.f64 -253/1000 x)
(*.f64 -253/1000 x)
(*.f64 -253/1000 x)
(*.f64 -253/1000 x)
(*.f64 -253/1000 x)
(*.f64 -253/1000 x)
(*.f64 -253/1000 x)
(*.f64 -253/1000 x)
(*.f64 -253/1000 x)
(*.f64 -253/1000 x)
(*.f64 -253/1000 x)
(*.f64 -253/1000 x)
(+.f64 (*.f64 x -253/1000) 0)
(+.f64 0 (*.f64 x -253/1000))
(+.f64 (*.f64 x -253/2000) (*.f64 x -253/2000))
(-.f64 (*.f64 x -253/1000) 0)
(/.f64 (*.f64 x -253/1000) 1)
(/.f64 (*.f64 x -253/500) 2)
(/.f64 (*.f64 x -253/250) 4)
(/.f64 (*.f64 x -253/125) 8)
(/.f64 (*.f64 2 (*.f64 x -253/125)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x -253/125))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x -253/125)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x -253/125))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x -253/125)))))) 256)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x -253/125))))))) 512)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x -253/125))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x -253/125)))))))) 1024)
(pow.f64 (*.f64 x -253/1000) 1)
Outputs
(*.f64 -253/1000 x)
(*.f64 -253/1000 x)
(*.f64 -253/1000 x)
(*.f64 -253/1000 x)
(*.f64 -253/1000 x)
(*.f64 -253/1000 x)
(*.f64 -253/1000 x)
(*.f64 -253/1000 x)
(*.f64 -253/1000 x)
(*.f64 -253/1000 x)
(*.f64 -253/1000 x)
(*.f64 -253/1000 x)
(+.f64 (*.f64 x -253/1000) 0)
(*.f64 -253/1000 x)
(+.f64 0 (*.f64 x -253/1000))
(*.f64 -253/1000 x)
(+.f64 (*.f64 x -253/2000) (*.f64 x -253/2000))
(*.f64 -253/1000 x)
(-.f64 (*.f64 x -253/1000) 0)
(*.f64 -253/1000 x)
(/.f64 (*.f64 x -253/1000) 1)
(*.f64 -253/1000 x)
(/.f64 (*.f64 x -253/500) 2)
(*.f64 -253/1000 x)
(/.f64 (*.f64 x -253/250) 4)
(*.f64 -253/1000 x)
(/.f64 (*.f64 x -253/125) 8)
(*.f64 -253/1000 x)
(/.f64 (*.f64 2 (*.f64 x -253/125)) 16)
(*.f64 -253/1000 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x -253/125))) 32)
(*.f64 -253/1000 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x -253/125)))) 64)
(*.f64 -253/1000 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x -253/125))))) 128)
(*.f64 -253/1000 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x -253/125)))))) 256)
(*.f64 -253/1000 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x -253/125))))))) 512)
(*.f64 -253/1000 x)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x -253/125))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x -253/125)))))))) 1024)
(*.f64 -253/1000 x)
(pow.f64 (*.f64 x -253/1000) 1)
(*.f64 -253/1000 x)

localize11.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 x 253/1000) -2)
0.0b
(+.f64 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)) -1)
0.0b
(*.f64 x 253/1000)
Compiler

Compiled 27 to 22 computations (18.5% saved)

series1.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite194.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
2232×rational.json-simplify-2
1364×rational.json-simplify-35
1246×exponential.json-3
1246×rational.json-1
1246×rational.json-2
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
01136
17832
215932
330630
464230
5149126
6331726
7460726
8571126
9652026
10682826
11717226
Stop Event
node limit
Counts
2 → 74
Calls
Call 1
Inputs
(+.f64 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)) -1)
(+.f64 (*.f64 x 253/1000) -2)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 -2 (+.f64 (*.f64 x 253/1000) -3))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 -1 (+.f64 (*.f64 x 253/1000) -2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 -1 (-.f64 (+.f64 (*.f64 x 253/1000) -4) -2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 -1 (-.f64 (+.f64 (+.f64 (*.f64 x 253/1000) -4) -1) -3))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 -1 (-.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -4) -3) 1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 1 (*.f64 x 253/1000)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (+.f64 (*.f64 x 253/1000) -1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (-.f64 (+.f64 (*.f64 x 253/1000) -4) -3))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 1 (*.f64 x 253/1000))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 1 (-.f64 (+.f64 (*.f64 x 253/1000) -2) -2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 1 (+.f64 1 (+.f64 (*.f64 x 253/1000) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 1 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -3))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 -3 (+.f64 (*.f64 x 253/1000) -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (+.f64 (*.f64 x 253/1000) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (*.f64 x 253/1000)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 1 (*.f64 x 253/1000)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 -2 (+.f64 (*.f64 x 253/1000) -1)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x 253/1000) -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 -2 (+.f64 (*.f64 x 253/1000) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (*.f64 x 253/1000)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -2 (+.f64 (*.f64 x 253/1000) -1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x 253/1000) -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (*.f64 x 253/1000) -1)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/1000) -1))) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (+.f64 (*.f64 x 253/1000) -1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/1000) -1)))) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (neg.f64 (*.f64 2 (+.f64 (*.f64 x 253/1000) -1)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (neg.f64 (*.f64 2 (+.f64 (*.f64 x 253/1000) -1))))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 1 (*.f64 x 253/1000)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 (*.f64 x 253/1000) -1))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x 253/1000) -2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x 253/1000) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x 253/1000) -3) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x 253/1000) -2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 x 253/1000) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x 253/1000) -2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 x 253/1000) -2) 1)))))

simplify266.0ms (2.2%)

Algorithm
egg-herbie
Rules
2196×rational.json-simplify-2
1966×rational.json-simplify-35
1136×rational.json-simplify-51
1028×rational.json-simplify-52
904×rational.json-simplify-42
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01401526
13271226
29571226
321261226
434941226
543911226
655991226
764961226
870341226
972321226
1074441226
1175771226
Stop Event
node limit
Counts
98 → 83
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 -253/1000 x))
(*.f64 -253/1000 x)
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 -253/1000 x))
(*.f64 -253/1000 x)
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 -253/1000 x))
-2
(-.f64 (*.f64 253/1000 x) 2)
(-.f64 (*.f64 253/1000 x) 2)
(-.f64 (*.f64 253/1000 x) 2)
(*.f64 253/1000 x)
(-.f64 (*.f64 253/1000 x) 2)
(-.f64 (*.f64 253/1000 x) 2)
(-.f64 (*.f64 253/1000 x) 2)
(*.f64 253/1000 x)
(-.f64 (*.f64 253/1000 x) 2)
(-.f64 (*.f64 253/1000 x) 2)
(-.f64 (*.f64 253/1000 x) 2)
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)) 1)
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 -1 (-.f64 (+.f64 (*.f64 x 253/1000) -4) -2))
(-.f64 -1 (-.f64 (+.f64 (+.f64 (*.f64 x 253/1000) -4) -1) -3))
(-.f64 -1 (-.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -4) -3) 1))
(-.f64 (-.f64 1 (*.f64 x 253/1000)) 0)
(-.f64 0 (+.f64 (*.f64 x 253/1000) -1))
(-.f64 0 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2))
(-.f64 0 (-.f64 (+.f64 (*.f64 x 253/1000) -4) -3))
(-.f64 1 (*.f64 x 253/1000))
(-.f64 1 (-.f64 (+.f64 (*.f64 x 253/1000) -2) -2))
(-.f64 1 (+.f64 1 (+.f64 (*.f64 x 253/1000) -1)))
(-.f64 1 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -3))
(-.f64 -3 (+.f64 (*.f64 x 253/1000) -4))
(*.f64 -1 (+.f64 (*.f64 x 253/1000) -1))
(*.f64 -1 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2))
(*.f64 (-.f64 1 (*.f64 x 253/1000)) 1)
(*.f64 1 (-.f64 1 (*.f64 x 253/1000)))
(*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/2))
(*.f64 (*.f64 -2 (+.f64 (*.f64 x 253/1000) -1)) 1/2)
(*.f64 4 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/4))
(*.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 4) 1/4)
(*.f64 (+.f64 (*.f64 x 253/1000) -1) -1)
(*.f64 1/2 (*.f64 -2 (+.f64 (*.f64 x 253/1000) -1)))
(*.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8) 1/8)
(*.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/2) 2)
(*.f64 1/4 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 4))
(*.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/4) 4)
(*.f64 1/8 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8))
(*.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2) -1)
(/.f64 (-.f64 1 (*.f64 x 253/1000)) 1)
(/.f64 (*.f64 -2 (+.f64 (*.f64 x 253/1000) -1)) 2)
(/.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 4) 4)
(/.f64 (+.f64 (*.f64 x 253/1000) -1) -1)
(/.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8)) 16)
(/.f64 (*.f64 2 (+.f64 (*.f64 x 253/1000) -1)) -2)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/1000) -1))) -4)
(/.f64 (neg.f64 (*.f64 2 (+.f64 (*.f64 x 253/1000) -1))) 2)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/1000) -1)))) -8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8)))) 64)
(/.f64 (*.f64 2 (neg.f64 (*.f64 2 (+.f64 (*.f64 x 253/1000) -1)))) 4)
(/.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2) -1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (neg.f64 (*.f64 2 (+.f64 (*.f64 x 253/1000) -1))))) 8)
(pow.f64 (-.f64 1 (*.f64 x 253/1000)) 1)
(neg.f64 (+.f64 (*.f64 x 253/1000) -1))
(neg.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2))
(-.f64 (+.f64 (*.f64 x 253/1000) -2) 0)
(-.f64 (+.f64 (*.f64 x 253/1000) -1) 1)
(-.f64 (+.f64 (*.f64 x 253/1000) -3) -1)
(*.f64 (+.f64 (*.f64 x 253/1000) -2) 1)
(*.f64 1 (+.f64 (*.f64 x 253/1000) -2))
(*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 1/2))
(*.f64 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 2) 1/2)
(*.f64 4 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 1/4))
(*.f64 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 2))
(*.f64 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 8) 1/8)
(*.f64 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 4))
(*.f64 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 1/4) 4)
(*.f64 1/8 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 8))
(/.f64 (+.f64 (*.f64 x 253/1000) -2) 1)
(/.f64 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 8))))) 128)
(pow.f64 (+.f64 (*.f64 x 253/1000) -2) 1)
Outputs
1
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 -253/1000 x))
(*.f64 -253/1000 x)
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 -253/1000 x))
(*.f64 -253/1000 x)
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 -253/1000 x))
-2
(-.f64 (*.f64 253/1000 x) 2)
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(-.f64 (*.f64 253/1000 x) 2)
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(-.f64 (*.f64 253/1000 x) 2)
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(*.f64 253/1000 x)
(*.f64 x 253/1000)
(-.f64 (*.f64 253/1000 x) 2)
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(-.f64 (*.f64 253/1000 x) 2)
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(-.f64 (*.f64 253/1000 x) 2)
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(*.f64 253/1000 x)
(*.f64 x 253/1000)
(-.f64 (*.f64 253/1000 x) 2)
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(-.f64 (*.f64 253/1000 x) 2)
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(-.f64 (*.f64 253/1000 x) 2)
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(-.f64 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)) 1)
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(-.f64 -1 (-.f64 (+.f64 (*.f64 x 253/1000) -4) -2))
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(-.f64 -1 (-.f64 (+.f64 (+.f64 (*.f64 x 253/1000) -4) -1) -3))
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(-.f64 -1 (-.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -4) -3) 1))
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(-.f64 (-.f64 1 (*.f64 x 253/1000)) 0)
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(-.f64 0 (+.f64 (*.f64 x 253/1000) -1))
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(-.f64 0 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2))
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(-.f64 0 (-.f64 (+.f64 (*.f64 x 253/1000) -4) -3))
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(-.f64 1 (*.f64 x 253/1000))
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (-.f64 (+.f64 (*.f64 x 253/1000) -2) -2))
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(-.f64 1 (+.f64 1 (+.f64 (*.f64 x 253/1000) -1)))
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(-.f64 1 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -3))
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(-.f64 -3 (+.f64 (*.f64 x 253/1000) -4))
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 -1 (+.f64 (*.f64 x 253/1000) -1))
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 -1 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2))
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 (-.f64 1 (*.f64 x 253/1000)) 1)
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 1 (-.f64 1 (*.f64 x 253/1000)))
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/2))
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 (*.f64 -2 (+.f64 (*.f64 x 253/1000) -1)) 1/2)
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 4 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/4))
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 4) 1/4)
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 (+.f64 (*.f64 x 253/1000) -1) -1)
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 1/2 (*.f64 -2 (+.f64 (*.f64 x 253/1000) -1)))
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8) 1/8)
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/2) 2)
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 1/4 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 4))
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/4) 4)
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 1/8 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8))
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2) -1)
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (-.f64 1 (*.f64 x 253/1000)) 1)
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (*.f64 -2 (+.f64 (*.f64 x 253/1000) -1)) 2)
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 4) 4)
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (+.f64 (*.f64 x 253/1000) -1) -1)
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8) 8)
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8)) 16)
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (*.f64 2 (+.f64 (*.f64 x 253/1000) -1)) -2)
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8))) 32)
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/1000) -1))) -4)
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (neg.f64 (*.f64 2 (+.f64 (*.f64 x 253/1000) -1))) 2)
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/1000) -1)))) -8)
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8)))) 64)
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (*.f64 2 (neg.f64 (*.f64 2 (+.f64 (*.f64 x 253/1000) -1)))) 4)
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2) -1)
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8))))) 128)
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (*.f64 2 (*.f64 2 (neg.f64 (*.f64 2 (+.f64 (*.f64 x 253/1000) -1))))) 8)
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(pow.f64 (-.f64 1 (*.f64 x 253/1000)) 1)
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(neg.f64 (+.f64 (*.f64 x 253/1000) -1))
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(neg.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2))
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -3))
(-.f64 1 (*.f64 x 253/1000))
(-.f64 (+.f64 (*.f64 x 253/1000) -2) 0)
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(-.f64 (+.f64 (*.f64 x 253/1000) -1) 1)
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(-.f64 (+.f64 (*.f64 x 253/1000) -3) -1)
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(*.f64 (+.f64 (*.f64 x 253/1000) -2) 1)
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(*.f64 1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 1/2))
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(*.f64 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 2) 1/2)
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(*.f64 4 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 1/4))
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(*.f64 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 4) 1/4)
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 2))
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(*.f64 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 8) 1/8)
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(*.f64 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 1/2) 2)
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 4))
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(*.f64 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 1/4) 4)
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(*.f64 1/8 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 8))
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(/.f64 (+.f64 (*.f64 x 253/1000) -2) 1)
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(/.f64 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 2) 2)
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(/.f64 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 4) 4)
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(/.f64 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 8) 8)
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 8)) 16)
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 8))) 32)
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 8)))) 64)
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 253/1000) -2) 8))))) 128)
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))
(pow.f64 (+.f64 (*.f64 x 253/1000) -2) 1)
(-.f64 (*.f64 x 253/1000) 2)
(+.f64 -2 (*.f64 x 253/1000))

eval97.0ms (0.8%)

Compiler

Compiled 1548 to 1390 computations (10.2% saved)

prune720.0ms (5.9%)

Pruning

8 alts after pruning (3 fresh and 5 done)

PrunedKeptTotal
New1462148
Fresh011
Picked101
Done055
Total1478155
Error
0.0b
Counts
155 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(-.f64 1 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))))
0.1b
(-.f64 1 (*.f64 x (+.f64 253/1000 (*.f64 x 3/25))))
24.5b
(-.f64 1 (*.f64 x 253/1000))
24.5b
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
62.4b
(+.f64 (neg.f64 (*.f64 x 253/1000)) -1)
61.5b
(*.f64 x -253/1000)
38.7b
(*.f64 -3/25 (pow.f64 x 2))
25.5b
1
Compiler

Compiled 55 to 46 computations (16.4% saved)

localize7.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (neg.f64 (*.f64 x 253/1000)) -1)
0.0b
(*.f64 x 253/1000)
Compiler

Compiled 17 to 13 computations (23.5% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@0
(+.f64 (neg.f64 (*.f64 x 253/1000)) -1)
0.0ms
x
@-inf
(+.f64 (neg.f64 (*.f64 x 253/1000)) -1)
0.0ms
x
@inf
(+.f64 (neg.f64 (*.f64 x 253/1000)) -1)

rewrite212.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
2226×rational.json-simplify-2
1270×exponential.json-3
1270×rational.json-1
1270×rational.json-2
1270×rational.json-4
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0917
16513
214713
330713
464913
5151413
6289413
7412113
8526113
9606413
10645113
11688213
12731513
Stop Event
node limit
Counts
1 → 48
Calls
Call 1
Inputs
(+.f64 (neg.f64 (*.f64 x 253/1000)) -1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x -253/1000) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 -1 (*.f64 x 253/1000))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 -1 (-.f64 (+.f64 (*.f64 x 253/1000) -2) -2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 -1 (-.f64 (+.f64 (+.f64 (*.f64 x 253/1000) -2) -1) -3))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 -1 (+.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -2) -3) -1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x -253/1000) -1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (+.f64 (*.f64 x 253/1000) 1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (+.f64 (-.f64 (*.f64 x 253/1000) -2) -1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (-.f64 (+.f64 (*.f64 x 253/1000) -2) -3))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 1 (-.f64 (*.f64 x 253/1000) -2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 1 (+.f64 1 (+.f64 (*.f64 x 253/1000) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 1 (+.f64 (-.f64 (*.f64 x 253/1000) -3) -1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 -2 (+.f64 (*.f64 x 253/1000) -1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 -3 (+.f64 (*.f64 x 253/1000) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (+.f64 (*.f64 x 253/1000) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (+.f64 (-.f64 (*.f64 x 253/1000) -2) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x -253/1000) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 x -253/1000) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (+.f64 (*.f64 x 253/1000) 1) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -2 (*.f64 x -253/500)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 x 253/1000) 1) -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -2 (+.f64 -2 (*.f64 x -253/250))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x 253/1000) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 -2 (*.f64 x -253/500)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 x 253/1000) 1) -2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (+.f64 -2 (+.f64 -2 (*.f64 x -253/250))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 x 253/1000) 1) -4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (-.f64 (*.f64 x 253/1000) -2) -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x -253/1000) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -2 (*.f64 x -253/500)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -2 (+.f64 -2 (*.f64 x -253/250))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x 253/1000) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x -253/1000) -1) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (*.f64 x 253/1000) 1)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x -253/1000) -1) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/1000) 1))) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x -253/1000) -1) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (+.f64 (*.f64 x 253/1000) 1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/1000) 1)))) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x -253/1000) -1) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (neg.f64 (*.f64 2 (+.f64 (*.f64 x 253/1000) 1)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (-.f64 (*.f64 x 253/1000) -2) -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x -253/1000) -1) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (neg.f64 (*.f64 2 (+.f64 (*.f64 x 253/1000) 1))))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 x -253/1000) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 (*.f64 x 253/1000) 1))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 (-.f64 (*.f64 x 253/1000) -2) -1))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -2) -3))))))

simplify176.0ms (1.5%)

Algorithm
egg-herbie
Rules
1576×rational.json-simplify-52
1414×rational.json-simplify-1
1150×rational.json-simplify-35
1060×rational.json-simplify-2
782×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0108756
1230756
2410756
31022756
43361756
54733756
65777756
76310756
86830756
97616756
107784756
Stop Event
node limit
Counts
60 → 52
Calls
Call 1
Inputs
-1
(-.f64 (*.f64 -253/1000 x) 1)
(-.f64 (*.f64 -253/1000 x) 1)
(-.f64 (*.f64 -253/1000 x) 1)
(*.f64 -253/1000 x)
(-.f64 (*.f64 -253/1000 x) 1)
(-.f64 (*.f64 -253/1000 x) 1)
(-.f64 (*.f64 -253/1000 x) 1)
(*.f64 -253/1000 x)
(-.f64 (*.f64 -253/1000 x) 1)
(-.f64 (*.f64 -253/1000 x) 1)
(-.f64 (*.f64 -253/1000 x) 1)
(-.f64 (*.f64 x -253/1000) 1)
(-.f64 -1 (*.f64 x 253/1000))
(-.f64 -1 (-.f64 (+.f64 (*.f64 x 253/1000) -2) -2))
(-.f64 -1 (-.f64 (+.f64 (+.f64 (*.f64 x 253/1000) -2) -1) -3))
(-.f64 -1 (+.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -2) -3) -1))
(-.f64 (+.f64 (*.f64 x -253/1000) -1) 0)
(-.f64 0 (+.f64 (*.f64 x 253/1000) 1))
(-.f64 0 (+.f64 (-.f64 (*.f64 x 253/1000) -2) -1))
(-.f64 0 (-.f64 (+.f64 (*.f64 x 253/1000) -2) -3))
(-.f64 1 (-.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (+.f64 1 (+.f64 (*.f64 x 253/1000) 1)))
(-.f64 1 (+.f64 (-.f64 (*.f64 x 253/1000) -3) -1))
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -1))
(-.f64 -3 (+.f64 (*.f64 x 253/1000) -2))
(*.f64 -1 (+.f64 (*.f64 x 253/1000) 1))
(*.f64 -1 (+.f64 (-.f64 (*.f64 x 253/1000) -2) -1))
(*.f64 (+.f64 (*.f64 x -253/1000) -1) 1)
(*.f64 1 (+.f64 (*.f64 x -253/1000) -1))
(*.f64 2 (/.f64 (+.f64 (*.f64 x 253/1000) 1) -2))
(*.f64 (+.f64 -2 (*.f64 x -253/500)) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 x 253/1000) 1) -4))
(*.f64 (+.f64 -2 (+.f64 -2 (*.f64 x -253/250))) 1/4)
(*.f64 (+.f64 (*.f64 x 253/1000) 1) -1)
(*.f64 1/2 (+.f64 -2 (*.f64 x -253/500)))
(*.f64 (/.f64 (+.f64 (*.f64 x 253/1000) 1) -2) 2)
(*.f64 1/4 (+.f64 -2 (+.f64 -2 (*.f64 x -253/250))))
(*.f64 (/.f64 (+.f64 (*.f64 x 253/1000) 1) -4) 4)
(*.f64 (+.f64 (-.f64 (*.f64 x 253/1000) -2) -1) -1)
(/.f64 (+.f64 (*.f64 x -253/1000) -1) 1)
(/.f64 (+.f64 -2 (*.f64 x -253/500)) 2)
(/.f64 (+.f64 -2 (+.f64 -2 (*.f64 x -253/250))) 4)
(/.f64 (+.f64 (*.f64 x 253/1000) 1) -1)
(/.f64 (*.f64 (+.f64 (*.f64 x -253/1000) -1) 8) 8)
(/.f64 (*.f64 2 (+.f64 (*.f64 x 253/1000) 1)) -2)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x -253/1000) -1) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/1000) 1))) -4)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x -253/1000) -1) 8))) 32)
(/.f64 (neg.f64 (*.f64 2 (+.f64 (*.f64 x 253/1000) 1))) 2)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/1000) 1)))) -8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x -253/1000) -1) 8)))) 64)
(/.f64 (*.f64 2 (neg.f64 (*.f64 2 (+.f64 (*.f64 x 253/1000) 1)))) 4)
(/.f64 (+.f64 (-.f64 (*.f64 x 253/1000) -2) -1) -1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x -253/1000) -1) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (neg.f64 (*.f64 2 (+.f64 (*.f64 x 253/1000) 1))))) 8)
(pow.f64 (+.f64 (*.f64 x -253/1000) -1) 1)
(neg.f64 (+.f64 (*.f64 x 253/1000) 1))
(neg.f64 (+.f64 (-.f64 (*.f64 x 253/1000) -2) -1))
(neg.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -2) -3))
Outputs
-1
(-.f64 (*.f64 -253/1000 x) 1)
(+.f64 -1 (*.f64 -253/1000 x))
(-.f64 (*.f64 -253/1000 x) 1)
(+.f64 -1 (*.f64 -253/1000 x))
(-.f64 (*.f64 -253/1000 x) 1)
(+.f64 -1 (*.f64 -253/1000 x))
(*.f64 -253/1000 x)
(-.f64 (*.f64 -253/1000 x) 1)
(+.f64 -1 (*.f64 -253/1000 x))
(-.f64 (*.f64 -253/1000 x) 1)
(+.f64 -1 (*.f64 -253/1000 x))
(-.f64 (*.f64 -253/1000 x) 1)
(+.f64 -1 (*.f64 -253/1000 x))
(*.f64 -253/1000 x)
(-.f64 (*.f64 -253/1000 x) 1)
(+.f64 -1 (*.f64 -253/1000 x))
(-.f64 (*.f64 -253/1000 x) 1)
(+.f64 -1 (*.f64 -253/1000 x))
(-.f64 (*.f64 -253/1000 x) 1)
(+.f64 -1 (*.f64 -253/1000 x))
(-.f64 (*.f64 x -253/1000) 1)
(+.f64 -1 (*.f64 -253/1000 x))
(-.f64 -1 (*.f64 x 253/1000))
(-.f64 -1 (-.f64 (+.f64 (*.f64 x 253/1000) -2) -2))
(-.f64 -1 (*.f64 x 253/1000))
(-.f64 -1 (-.f64 (+.f64 (+.f64 (*.f64 x 253/1000) -2) -1) -3))
(-.f64 -1 (*.f64 x 253/1000))
(-.f64 -1 (+.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -2) -3) -1))
(-.f64 -1 (*.f64 x 253/1000))
(-.f64 (+.f64 (*.f64 x -253/1000) -1) 0)
(+.f64 -1 (*.f64 -253/1000 x))
(-.f64 0 (+.f64 (*.f64 x 253/1000) 1))
(-.f64 -1 (*.f64 x 253/1000))
(-.f64 0 (+.f64 (-.f64 (*.f64 x 253/1000) -2) -1))
(-.f64 -1 (*.f64 x 253/1000))
(-.f64 0 (-.f64 (+.f64 (*.f64 x 253/1000) -2) -3))
(-.f64 -1 (*.f64 x 253/1000))
(-.f64 1 (-.f64 (*.f64 x 253/1000) -2))
(-.f64 -1 (*.f64 x 253/1000))
(-.f64 1 (+.f64 1 (+.f64 (*.f64 x 253/1000) 1)))
(-.f64 -1 (*.f64 x 253/1000))
(-.f64 1 (+.f64 (-.f64 (*.f64 x 253/1000) -3) -1))
(-.f64 -1 (*.f64 x 253/1000))
(-.f64 -2 (+.f64 (*.f64 x 253/1000) -1))
(-.f64 -1 (*.f64 x 253/1000))
(-.f64 -3 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 -1 (*.f64 x 253/1000))
(*.f64 -1 (+.f64 (*.f64 x 253/1000) 1))
(-.f64 -1 (*.f64 x 253/1000))
(*.f64 -1 (+.f64 (-.f64 (*.f64 x 253/1000) -2) -1))
(-.f64 -1 (*.f64 x 253/1000))
(*.f64 (+.f64 (*.f64 x -253/1000) -1) 1)
(+.f64 -1 (*.f64 -253/1000 x))
(*.f64 1 (+.f64 (*.f64 x -253/1000) -1))
(+.f64 -1 (*.f64 -253/1000 x))
(*.f64 2 (/.f64 (+.f64 (*.f64 x 253/1000) 1) -2))
(-.f64 -1 (*.f64 x 253/1000))
(*.f64 (+.f64 -2 (*.f64 x -253/500)) 1/2)
(+.f64 -1 (*.f64 -253/1000 x))
(*.f64 4 (/.f64 (+.f64 (*.f64 x 253/1000) 1) -4))
(-.f64 -1 (*.f64 x 253/1000))
(*.f64 (+.f64 -2 (+.f64 -2 (*.f64 x -253/250))) 1/4)
(+.f64 -1 (*.f64 -253/1000 x))
(*.f64 (+.f64 (*.f64 x 253/1000) 1) -1)
(-.f64 -1 (*.f64 x 253/1000))
(*.f64 1/2 (+.f64 -2 (*.f64 x -253/500)))
(+.f64 -1 (*.f64 -253/1000 x))
(*.f64 (/.f64 (+.f64 (*.f64 x 253/1000) 1) -2) 2)
(-.f64 -1 (*.f64 x 253/1000))
(*.f64 1/4 (+.f64 -2 (+.f64 -2 (*.f64 x -253/250))))
(+.f64 -1 (*.f64 -253/1000 x))
(*.f64 (/.f64 (+.f64 (*.f64 x 253/1000) 1) -4) 4)
(-.f64 -1 (*.f64 x 253/1000))
(*.f64 (+.f64 (-.f64 (*.f64 x 253/1000) -2) -1) -1)
(-.f64 -1 (*.f64 x 253/1000))
(/.f64 (+.f64 (*.f64 x -253/1000) -1) 1)
(+.f64 -1 (*.f64 -253/1000 x))
(/.f64 (+.f64 -2 (*.f64 x -253/500)) 2)
(+.f64 -1 (*.f64 -253/1000 x))
(/.f64 (+.f64 -2 (+.f64 -2 (*.f64 x -253/250))) 4)
(+.f64 -1 (*.f64 -253/1000 x))
(/.f64 (+.f64 (*.f64 x 253/1000) 1) -1)
(-.f64 -1 (*.f64 x 253/1000))
(/.f64 (*.f64 (+.f64 (*.f64 x -253/1000) -1) 8) 8)
(+.f64 -1 (*.f64 -253/1000 x))
(/.f64 (*.f64 2 (+.f64 (*.f64 x 253/1000) 1)) -2)
(-.f64 -1 (*.f64 x 253/1000))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x -253/1000) -1) 8)) 16)
(+.f64 -1 (*.f64 -253/1000 x))
(/.f64 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/1000) 1))) -4)
(-.f64 -1 (*.f64 x 253/1000))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x -253/1000) -1) 8))) 32)
(+.f64 -1 (*.f64 -253/1000 x))
(/.f64 (neg.f64 (*.f64 2 (+.f64 (*.f64 x 253/1000) 1))) 2)
(-.f64 -1 (*.f64 x 253/1000))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 (*.f64 x 253/1000) 1)))) -8)
(-.f64 -1 (*.f64 x 253/1000))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x -253/1000) -1) 8)))) 64)
(+.f64 -1 (*.f64 -253/1000 x))
(/.f64 (*.f64 2 (neg.f64 (*.f64 2 (+.f64 (*.f64 x 253/1000) 1)))) 4)
(-.f64 -1 (*.f64 x 253/1000))
(/.f64 (+.f64 (-.f64 (*.f64 x 253/1000) -2) -1) -1)
(-.f64 -1 (*.f64 x 253/1000))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x -253/1000) -1) 8))))) 128)
(+.f64 -1 (*.f64 -253/1000 x))
(/.f64 (*.f64 2 (*.f64 2 (neg.f64 (*.f64 2 (+.f64 (*.f64 x 253/1000) 1))))) 8)
(-.f64 -1 (*.f64 x 253/1000))
(pow.f64 (+.f64 (*.f64 x -253/1000) -1) 1)
(+.f64 -1 (*.f64 -253/1000 x))
(neg.f64 (+.f64 (*.f64 x 253/1000) 1))
(-.f64 -1 (*.f64 x 253/1000))
(neg.f64 (+.f64 (-.f64 (*.f64 x 253/1000) -2) -1))
(-.f64 -1 (*.f64 x 253/1000))
(neg.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -2) -3))
(-.f64 -1 (*.f64 x 253/1000))

localize9.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

Compiled 20 to 16 computations (20% saved)

series0.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite154.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
1620×rational.json-simplify-35
1508×rational.json-1
1318×exponential.json-3
1318×rational.json-2
1318×rational.json-4
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0919
16219
213017
324717
446213
598713
6256913
7440613
8520513
9658413
10798813
Stop Event
node limit
Counts
1 → 49
Calls
Call 1
Inputs
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (neg.f64 (+.f64 (*.f64 x 253/1000) -3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (*.f64 x 253/1000)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 1 (*.f64 x 253/1000)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/2) (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 (*.f64 (+.f64 -1 (*.f64 x 253/1000)) 1/2)) (-.f64 1 (*.f64 (+.f64 -1 (*.f64 x 253/1000)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (+.f64 -1 (*.f64 x 253/1000)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (*.f64 (+.f64 -1 (*.f64 x 253/1000)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (*.f64 x 253/1000)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 1 (*.f64 x 253/1000)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 -2 (*.f64 x 253/500))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -1 (*.f64 x 253/1000)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -2 (*.f64 x 253/500)) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (neg.f64 (+.f64 -2 (*.f64 x 253/500))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 -1 (*.f64 x 253/1000)) 1/2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/2 (+.f64 -2 (*.f64 x 253/500)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (*.f64 x 253/1000)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 -2 (*.f64 x 253/500))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -1 (*.f64 x 253/1000)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -2 (*.f64 x 253/500)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 -2 (*.f64 x 253/500))) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (+.f64 -2 (*.f64 x 253/500)))) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 -2 (*.f64 x 253/500))))) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 -2 (*.f64 x 253/500))))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 -2 (*.f64 x 253/500)))))) -32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 -2 (*.f64 x 253/500)))))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 -2 (*.f64 x 253/500))))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 1 (*.f64 x 253/1000)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 -1 (*.f64 x 253/1000)))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2))))))

simplify225.0ms (1.9%)

Algorithm
egg-herbie
Rules
1910×rational.json-simplify-35
1226×rational.json-simplify-45
1216×rational.json-simplify-2
964×rational.json-simplify-26
828×rational.json-simplify-1
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01101291
12491099
25941099
316421099
42872811
53553811
63815811
74205811
84568811
95146811
106469811
116928811
127645811
Stop Event
node limit
Counts
61 → 55
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 -253/1000 x))
(*.f64 -253/1000 x)
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 -253/1000 x))
(*.f64 -253/1000 x)
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(+.f64 -1 (-.f64 1 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2)))
(+.f64 -2 (neg.f64 (+.f64 (*.f64 x 253/1000) -3)))
(+.f64 (-.f64 1 (*.f64 x 253/1000)) 0)
(+.f64 0 (-.f64 1 (*.f64 x 253/1000)))
(+.f64 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)) -1)
(+.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/2) (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/2))
(+.f64 (-.f64 -1 (*.f64 (+.f64 -1 (*.f64 x 253/1000)) 1/2)) (-.f64 1 (*.f64 (+.f64 -1 (*.f64 x 253/1000)) 1/2)))
(*.f64 -1 (+.f64 -1 (*.f64 x 253/1000)))
(*.f64 -2 (*.f64 (+.f64 -1 (*.f64 x 253/1000)) 1/2))
(*.f64 (-.f64 1 (*.f64 x 253/1000)) 1)
(*.f64 1 (-.f64 1 (*.f64 x 253/1000)))
(*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/2))
(*.f64 (neg.f64 (+.f64 -2 (*.f64 x 253/500))) 1/2)
(*.f64 (+.f64 -1 (*.f64 x 253/1000)) -1)
(*.f64 4 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/4))
(*.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 4) 1/4)
(*.f64 (+.f64 -2 (*.f64 x 253/500)) -1/2)
(*.f64 1/2 (neg.f64 (+.f64 -2 (*.f64 x 253/500))))
(*.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8) 1/8)
(*.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/2) 2)
(*.f64 (*.f64 (+.f64 -1 (*.f64 x 253/1000)) 1/2) -2)
(*.f64 1/4 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 4))
(*.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/4) 4)
(*.f64 1/8 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8))
(*.f64 -1/2 (+.f64 -2 (*.f64 x 253/500)))
(*.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2) -1)
(/.f64 (-.f64 1 (*.f64 x 253/1000)) 1)
(/.f64 (neg.f64 (+.f64 -2 (*.f64 x 253/500))) 2)
(/.f64 (+.f64 -1 (*.f64 x 253/1000)) -1)
(/.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 4) 4)
(/.f64 (+.f64 -2 (*.f64 x 253/500)) -2)
(/.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8) 8)
(/.f64 (*.f64 2 (+.f64 -2 (*.f64 x 253/500))) -4)
(/.f64 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (+.f64 -2 (*.f64 x 253/500)))) -8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 -2 (*.f64 x 253/500))))) -16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8)))) 64)
(/.f64 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 -2 (*.f64 x 253/500))))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 -2 (*.f64 x 253/500)))))) -32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8))))) 128)
(/.f64 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 -2 (*.f64 x 253/500)))))) 16)
(/.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2) -1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8)))))) 256)
(/.f64 (*.f64 2 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 -2 (*.f64 x 253/500))))))) 32)
(pow.f64 (-.f64 1 (*.f64 x 253/1000)) 1)
(neg.f64 (+.f64 -1 (*.f64 x 253/1000)))
(neg.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2))
Outputs
1
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 -253/1000 x))
(*.f64 -253/1000 x)
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 -253/1000 x))
(*.f64 -253/1000 x)
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 1 (*.f64 -253/1000 x))
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(+.f64 -1 (-.f64 1 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2)))
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(+.f64 -2 (neg.f64 (+.f64 (*.f64 x 253/1000) -3)))
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(+.f64 (-.f64 1 (*.f64 x 253/1000)) 0)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(+.f64 0 (-.f64 1 (*.f64 x 253/1000)))
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(+.f64 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)) -1)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(+.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/2) (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/2))
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(+.f64 (-.f64 -1 (*.f64 (+.f64 -1 (*.f64 x 253/1000)) 1/2)) (-.f64 1 (*.f64 (+.f64 -1 (*.f64 x 253/1000)) 1/2)))
(+.f64 (-.f64 -1 (*.f64 1/2 (+.f64 -1 (*.f64 x 253/1000)))) (-.f64 1 (*.f64 1/2 (+.f64 -1 (*.f64 x 253/1000)))))
(*.f64 -1 (+.f64 -1 (*.f64 x 253/1000)))
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 -2 (*.f64 (+.f64 -1 (*.f64 x 253/1000)) 1/2))
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 (-.f64 1 (*.f64 x 253/1000)) 1)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 1 (-.f64 1 (*.f64 x 253/1000)))
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/2))
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 (neg.f64 (+.f64 -2 (*.f64 x 253/500))) 1/2)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 (+.f64 -1 (*.f64 x 253/1000)) -1)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 4 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/4))
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 4) 1/4)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 (+.f64 -2 (*.f64 x 253/500)) -1/2)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 1/2 (neg.f64 (+.f64 -2 (*.f64 x 253/500))))
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8) 1/8)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/2) 2)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 (*.f64 (+.f64 -1 (*.f64 x 253/1000)) 1/2) -2)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 1/4 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 4))
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 1/4) 4)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 1/8 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8))
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 -1/2 (+.f64 -2 (*.f64 x 253/500)))
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(*.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2) -1)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (-.f64 1 (*.f64 x 253/1000)) 1)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (neg.f64 (+.f64 -2 (*.f64 x 253/500))) 2)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (+.f64 -1 (*.f64 x 253/1000)) -1)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 4) 4)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (+.f64 -2 (*.f64 x 253/500)) -2)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8) 8)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (*.f64 2 (+.f64 -2 (*.f64 x 253/500))) -4)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8)) 16)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (*.f64 2 (*.f64 2 (+.f64 -2 (*.f64 x 253/500)))) -8)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8))) 32)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 -2 (*.f64 x 253/500))))) -16)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8)))) 64)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 -2 (*.f64 x 253/500))))) 8)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 -2 (*.f64 x 253/500)))))) -32)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8))))) 128)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 -2 (*.f64 x 253/500)))))) 16)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2) -1)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 (*.f64 x 253/1000)) 8)))))) 256)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(/.f64 (*.f64 2 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 2 (+.f64 -2 (*.f64 x 253/500))))))) 32)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(pow.f64 (-.f64 1 (*.f64 x 253/1000)) 1)
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(neg.f64 (+.f64 -1 (*.f64 x 253/1000)))
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))
(neg.f64 (-.f64 (+.f64 (*.f64 x 253/1000) -3) -2))
(+.f64 -1 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)))
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(-.f64 1 (*.f64 x 253/1000))

eval192.0ms (1.6%)

Compiler

Compiled 2014 to 1801 computations (10.6% saved)

prune495.0ms (4.1%)

Pruning

9 alts after pruning (3 fresh and 6 done)

PrunedKeptTotal
New1932195
Fresh011
Picked011
Done156
Total1949203
Error
0.0b
Counts
203 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
62.4b
(-.f64 (*.f64 x -253/1000) 1)
0.1b
(-.f64 1 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))))
0.1b
(-.f64 1 (*.f64 x (+.f64 253/1000 (*.f64 x 3/25))))
24.5b
(-.f64 1 (*.f64 x 253/1000))
24.5b
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
61.5b
(*.f64 x -253/1000)
38.7b
(*.f64 -3/25 (pow.f64 x 2))
25.5b
1
62.0b
-1
Compiler

Compiled 56 to 47 computations (16.1% saved)

regimes23.0ms (0.2%)

Counts
12 → 1
Calls
Call 1
Inputs
-1
1
(*.f64 x -253/1000)
(-.f64 1 (*.f64 x 253/1000))
(-.f64 (*.f64 x -253/1000) 1)
(+.f64 (neg.f64 (*.f64 x 253/1000)) -1)
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(+.f64 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)) -1)
(-.f64 1 (*.f64 x (+.f64 253/1000 (*.f64 x 3/25))))
(*.f64 -3/25 (pow.f64 x 2))
(-.f64 1 (*.f64 3/25 (pow.f64 x 2)))
(-.f64 1 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))))
Outputs
(-.f64 1 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))))
Calls

3 calls:

8.0ms
x
8.0ms
(*.f64 x (+.f64 253/1000 (*.f64 x 3/25)))
5.0ms
(-.f64 1 (*.f64 x (+.f64 253/1000 (*.f64 x 3/25))))
Results
ErrorSegmentsBranch
0.1b1x
0.1b1(-.f64 1 (*.f64 x (+.f64 253/1000 (*.f64 x 3/25))))
0.1b1(*.f64 x (+.f64 253/1000 (*.f64 x 3/25)))
Compiler

Compiled 89 to 72 computations (19.1% saved)

regimes21.0ms (0.2%)

Counts
11 → 1
Calls
Call 1
Inputs
-1
1
(*.f64 x -253/1000)
(-.f64 1 (*.f64 x 253/1000))
(-.f64 (*.f64 x -253/1000) 1)
(+.f64 (neg.f64 (*.f64 x 253/1000)) -1)
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(+.f64 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)) -1)
(-.f64 1 (*.f64 x (+.f64 253/1000 (*.f64 x 3/25))))
(*.f64 -3/25 (pow.f64 x 2))
(-.f64 1 (*.f64 3/25 (pow.f64 x 2)))
Outputs
(-.f64 1 (*.f64 x (+.f64 253/1000 (*.f64 x 3/25))))
Calls

3 calls:

7.0ms
(*.f64 x (+.f64 253/1000 (*.f64 x 3/25)))
7.0ms
x
5.0ms
(-.f64 1 (*.f64 x (+.f64 253/1000 (*.f64 x 3/25))))
Results
ErrorSegmentsBranch
0.1b1x
0.1b1(-.f64 1 (*.f64 x (+.f64 253/1000 (*.f64 x 3/25))))
0.1b1(*.f64 x (+.f64 253/1000 (*.f64 x 3/25)))
Compiler

Compiled 78 to 63 computations (19.2% saved)

regimes7.0ms (0.1%)

Counts
8 → 1
Calls
Call 1
Inputs
-1
1
(*.f64 x -253/1000)
(-.f64 1 (*.f64 x 253/1000))
(-.f64 (*.f64 x -253/1000) 1)
(+.f64 (neg.f64 (*.f64 x 253/1000)) -1)
(-.f64 -1 (+.f64 (*.f64 x 253/1000) -2))
(+.f64 (neg.f64 (+.f64 (*.f64 x 253/1000) -2)) -1)
Outputs
(-.f64 1 (*.f64 x 253/1000))
Calls

1 calls:

5.0ms
x
Results
ErrorSegmentsBranch
24.5b1x
Compiler

Compiled 39 to 32 computations (17.9% saved)

regimes5.0ms (0%)

Accuracy

Total -37.7b remaining (-147.9%)

Threshold costs -37.7b (-147.9%)

Counts
3 → 1
Calls
Call 1
Inputs
-1
1
(*.f64 x -253/1000)
Outputs
1
Calls

1 calls:

4.0ms
x
Results
ErrorSegmentsBranch
25.5b1x
Compiler

Compiled 8 to 6 computations (25% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01871
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(-.f64 1 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))))
(-.f64 1 (*.f64 x (+.f64 253/1000 (*.f64 x 3/25))))
(-.f64 1 (*.f64 x 253/1000))
1
-1
Outputs
(-.f64 1 (+.f64 (*.f64 x 253/1000) (*.f64 3/25 (pow.f64 x 2))))
(-.f64 1 (*.f64 x (+.f64 253/1000 (*.f64 x 3/25))))
(-.f64 1 (*.f64 x 253/1000))
1
-1
Compiler

Compiled 32 to 27 computations (15.6% saved)

soundness433.0ms (3.6%)

Algorithm
egg-herbie
Rules
2274×rational.json-simplify-35
2054×rational.json-simplify-2
1978×rational.json-simplify-53
1448×rational.json-simplify-51
1362×exponential.json-simplify-26
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01201176
12791176
27781176
319201176
443961176
552801176
654161176
755231176
856281176
957331176
1073361176
1178941176
1278941176
1378941176
1479991176
Stop Event
node limit
Compiler

Compiled 23 to 19 computations (17.4% saved)

end95.0ms (0.8%)

Compiler

Compiled 28 to 23 computations (17.9% saved)

Profiling

Loading profile data...