Details

Time bar (total: 10.8s)

analyze1.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%25.7%74.3%0%0%0%0
100%25.7%0%74.3%0%0%0%1
Compiler

Compiled 26 to 19 computations (26.9% saved)

sample2.4s (22.7%)

Results
1.5s6216×body256valid
595.0ms995×body1024valid
223.0ms1018×body512valid
11.0ms27×body2048valid
Bogosity

preprocess4.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01350
11450
022
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 eps 2))
Outputs
(-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 eps 2))
(-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 eps 2))
Compiler

Compiled 13 to 10 computations (23.1% saved)

simplify10.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0925
11025
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))
Outputs
(-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))

eval0.0ms (0%)

Compiler

Compiled 11 to 8 computations (27.3% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

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

Compiled 11 to 8 computations (27.3% saved)

localize9.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(pow.f64 (+.f64 x eps) 2)
3.6b
(-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))
Compiler

Compiled 25 to 13 computations (48% saved)

series3.0ms (0%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
(-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))
1.0ms
x
@inf
(-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))
0.0ms
x
@0
(-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))
0.0ms
eps
@0
(-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))
0.0ms
eps
@inf
(-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))

rewrite1.1s (10.5%)

Algorithm
batch-egg-rewrite
Rules
1544×rational.json-1
1544×rational.json-2
1544×rational.json-4
1544×rational.json-3
1480×rational.json-simplify-35
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0938
15738
212038
324638
446838
5109138
6304038
7560638
8709238
Stop Event
node limit
Counts
2 → 77
Calls
Call 1
Inputs
(-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))
(pow.f64 (+.f64 x eps) 2)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 (+.f64 x eps) 2) (neg.f64 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (+.f64 (pow.f64 (+.f64 x eps) 2) (-.f64 -1 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 (+.f64 x eps) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (pow.f64 (+.f64 x eps) 2) (-.f64 1 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (pow.f64 (+.f64 x eps) 2) (-.f64 1 (pow.f64 x 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 1/2) (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 (+.f64 x eps) 2) 1/2) (-.f64 (*.f64 (pow.f64 (+.f64 x eps) 2) 1/2) (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (pow.f64 x 2)) (+.f64 (pow.f64 (+.f64 x eps) 2) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (+.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (pow.f64 (+.f64 x eps) 2) 1) (-.f64 -1 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2))) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 2 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 16 (-.f64 (pow.f64 (*.f64 (+.f64 x eps) 1/4) 2) (pow.f64 (*.f64 x 1/4) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (*.f64 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2)) 1/2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (-.f64 (*.f64 (pow.f64 (+.f64 x eps) 2) 8) (*.f64 (pow.f64 x 2) 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/2 (*.f64 2 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/16 (-.f64 (pow.f64 (*.f64 (+.f64 x eps) 4) 2) (pow.f64 (*.f64 x 4) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2)) 4) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2)) 4)) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2)) 4))) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 (+.f64 x eps) 2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 (+.f64 x eps) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 (+.f64 x eps) 2) 1/2) (*.f64 (pow.f64 (+.f64 x eps) 2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (pow.f64 (+.f64 x eps) 2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (pow.f64 (+.f64 x eps) 2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (+.f64 x eps) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (+.f64 x eps) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (pow.f64 (+.f64 x eps) 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (pow.f64 (+.f64 x eps) 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (+.f64 x eps) 2) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (+.f64 x eps) 2) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 2 (pow.f64 (+.f64 x eps) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (+.f64 x eps) 2) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 16 (pow.f64 (*.f64 (+.f64 x eps) 1/4) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (pow.f64 (+.f64 x eps) 2) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (+.f64 x eps) 2) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (pow.f64 (+.f64 x eps) 2) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/16 (pow.f64 (*.f64 (+.f64 x eps) 4) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (+.f64 x eps) 4) 2) 1/16)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (+.f64 x eps) 1/4) 2) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (+.f64 x eps) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (pow.f64 (+.f64 x eps) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 (+.f64 x eps) 2) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 (+.f64 x eps) 2) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 (+.f64 x eps) 2) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 (+.f64 x eps) 2) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 (+.f64 x eps) 2) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 (+.f64 x eps) 2) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 (+.f64 x eps) 2) 8))))) 128)))))

simplify330.0ms (3.1%)

Algorithm
egg-herbie
Rules
1792×rational.json-simplify-1
1430×rational.json-simplify-52
1416×rational.json-simplify-2
1286×rational.json-simplify-35
938×rational.json-simplify-41
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01562945
13162753
28672747
315772747
431762747
537972747
643342747
746322747
851642747
954762747
1065892747
Stop Event
node limit
Counts
125 → 98
Calls
Call 1
Inputs
(pow.f64 eps 2)
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(*.f64 2 (*.f64 eps x))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(*.f64 2 (*.f64 eps x))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(*.f64 2 (*.f64 eps x))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(pow.f64 eps 2)
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(pow.f64 eps 2)
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(pow.f64 eps 2)
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 x 2)))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 x 2)))
(pow.f64 x 2)
(+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 x 2))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 x 2)))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 x 2)))
(pow.f64 x 2)
(+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 x 2))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 x 2)))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 x 2)))
(pow.f64 x 2)
(+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 x 2))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 x 2)))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 x 2)))
(pow.f64 eps 2)
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 x 2)))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 x 2)))
(pow.f64 eps 2)
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 x 2)))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 x 2)))
(+.f64 (pow.f64 (+.f64 x eps) 2) (neg.f64 (pow.f64 x 2)))
(+.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 0)
(+.f64 0 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)))
(+.f64 1 (+.f64 (pow.f64 (+.f64 x eps) 2) (-.f64 -1 (pow.f64 x 2))))
(+.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 (+.f64 x eps) 2))
(+.f64 -1 (+.f64 (pow.f64 (+.f64 x eps) 2) (-.f64 1 (pow.f64 x 2))))
(+.f64 (+.f64 (pow.f64 (+.f64 x eps) 2) (-.f64 1 (pow.f64 x 2))) -1)
(+.f64 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 1/2) (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 1/2))
(+.f64 (*.f64 (pow.f64 (+.f64 x eps) 2) 1/2) (-.f64 (*.f64 (pow.f64 (+.f64 x eps) 2) 1/2) (pow.f64 x 2)))
(+.f64 (-.f64 1 (pow.f64 x 2)) (+.f64 (pow.f64 (+.f64 x eps) 2) -1))
(+.f64 -2 (+.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 2))
(+.f64 (+.f64 (pow.f64 (+.f64 x eps) 2) 1) (-.f64 -1 (pow.f64 x 2)))
(+.f64 (+.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 2) -2)
(*.f64 2 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 1/2))
(*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 1)
(*.f64 1 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)))
(*.f64 (*.f64 2 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))) 1/2)
(*.f64 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2)) -1)
(*.f64 4 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 1/4))
(*.f64 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 4) 1/4)
(*.f64 -1 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2)))
(*.f64 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 8) 1/8)
(*.f64 (*.f64 2 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2))) -1/2)
(*.f64 1/2 (*.f64 2 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))))
(*.f64 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 1/2) 2)
(*.f64 16 (-.f64 (pow.f64 (*.f64 (+.f64 x eps) 1/4) 2) (pow.f64 (*.f64 x 1/4) 2)))
(*.f64 -2 (*.f64 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2)) 1/2))
(*.f64 (*.f64 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2)) 1/2) -2)
(*.f64 1/4 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 4))
(*.f64 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 1/4) 4)
(*.f64 1/8 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 8))
(*.f64 1/8 (-.f64 (*.f64 (pow.f64 (+.f64 x eps) 2) 8) (*.f64 (pow.f64 x 2) 8)))
(*.f64 -1/2 (*.f64 2 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2))))
(*.f64 1/16 (-.f64 (pow.f64 (*.f64 (+.f64 x eps) 4) 2) (pow.f64 (*.f64 x 4) 2)))
(/.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 1)
(/.f64 (*.f64 2 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))) 2)
(/.f64 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2)) -1)
(/.f64 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 4) 4)
(/.f64 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 8) 8)
(/.f64 (*.f64 2 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2))) -2)
(/.f64 (*.f64 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2)) 4) -4)
(/.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2)) 4)) -8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2)) 4))) -16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 8)))) 64)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 8))))) 128)
(pow.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 1)
(neg.f64 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2)))
(+.f64 (pow.f64 (+.f64 x eps) 2) 0)
(+.f64 0 (pow.f64 (+.f64 x eps) 2))
(+.f64 (*.f64 (pow.f64 (+.f64 x eps) 2) 1/2) (*.f64 (pow.f64 (+.f64 x eps) 2) 1/2))
(-.f64 (pow.f64 (+.f64 x eps) 2) 0)
(*.f64 2 (*.f64 (pow.f64 (+.f64 x eps) 2) 1/2))
(*.f64 (pow.f64 (+.f64 x eps) 2) 1)
(*.f64 1 (pow.f64 (+.f64 x eps) 2))
(*.f64 (*.f64 2 (pow.f64 (+.f64 x eps) 2)) 1/2)
(*.f64 4 (*.f64 (pow.f64 (+.f64 x eps) 2) 1/4))
(*.f64 (*.f64 (pow.f64 (+.f64 x eps) 2) 4) 1/4)
(*.f64 (*.f64 (pow.f64 (+.f64 x eps) 2) 8) 1/8)
(*.f64 1/2 (*.f64 2 (pow.f64 (+.f64 x eps) 2)))
(*.f64 (*.f64 (pow.f64 (+.f64 x eps) 2) 1/2) 2)
(*.f64 16 (pow.f64 (*.f64 (+.f64 x eps) 1/4) 2))
(*.f64 1/4 (*.f64 (pow.f64 (+.f64 x eps) 2) 4))
(*.f64 (*.f64 (pow.f64 (+.f64 x eps) 2) 1/4) 4)
(*.f64 1/8 (*.f64 (pow.f64 (+.f64 x eps) 2) 8))
(*.f64 1/16 (pow.f64 (*.f64 (+.f64 x eps) 4) 2))
(*.f64 (pow.f64 (*.f64 (+.f64 x eps) 4) 2) 1/16)
(*.f64 (pow.f64 (*.f64 (+.f64 x eps) 1/4) 2) 16)
(/.f64 (pow.f64 (+.f64 x eps) 2) 1)
(/.f64 (*.f64 2 (pow.f64 (+.f64 x eps) 2)) 2)
(/.f64 (*.f64 (pow.f64 (+.f64 x eps) 2) 4) 4)
(/.f64 (*.f64 (pow.f64 (+.f64 x eps) 2) 8) 8)
(/.f64 (*.f64 2 (*.f64 (pow.f64 (+.f64 x eps) 2) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 (+.f64 x eps) 2) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 (+.f64 x eps) 2) 8)))) 64)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 (+.f64 x eps) 2) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 (+.f64 x eps) 2) 8))))) 128)
Outputs
(pow.f64 eps 2)
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 x 2)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 2 x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 x 2)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 2 x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 x 2)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 2 x)))
(*.f64 2 (*.f64 eps x))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (*.f64 2 x))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 x 2)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 2 x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 x 2)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 2 x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 x 2)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 2 x)))
(*.f64 2 (*.f64 eps x))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (*.f64 2 x))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 x 2)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 2 x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 x 2)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 2 x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 x 2)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 2 x)))
(*.f64 2 (*.f64 eps x))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (*.f64 2 x))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 x 2)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 2 x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 x 2)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 2 x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 x 2)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 2 x)))
(pow.f64 eps 2)
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 x 2)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 2 x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 x 2)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 2 x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 x 2)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 2 x)))
(pow.f64 eps 2)
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 x 2)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 2 x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 x 2)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 2 x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 x 2)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 2 x)))
(pow.f64 eps 2)
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 x 2)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 2 x)))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 x 2)))
(+.f64 (*.f64 eps (*.f64 x 2)) (+.f64 (pow.f64 x 2) (pow.f64 eps 2)))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 eps (*.f64 2 x)) (pow.f64 x 2)))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 x 2)))
(+.f64 (*.f64 eps (*.f64 x 2)) (+.f64 (pow.f64 x 2) (pow.f64 eps 2)))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 eps (*.f64 2 x)) (pow.f64 x 2)))
(pow.f64 x 2)
(+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 x 2))
(+.f64 (*.f64 eps (*.f64 x 2)) (pow.f64 x 2))
(+.f64 (*.f64 eps (*.f64 2 x)) (pow.f64 x 2))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 x 2)))
(+.f64 (*.f64 eps (*.f64 x 2)) (+.f64 (pow.f64 x 2) (pow.f64 eps 2)))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 eps (*.f64 2 x)) (pow.f64 x 2)))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 x 2)))
(+.f64 (*.f64 eps (*.f64 x 2)) (+.f64 (pow.f64 x 2) (pow.f64 eps 2)))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 eps (*.f64 2 x)) (pow.f64 x 2)))
(pow.f64 x 2)
(+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 x 2))
(+.f64 (*.f64 eps (*.f64 x 2)) (pow.f64 x 2))
(+.f64 (*.f64 eps (*.f64 2 x)) (pow.f64 x 2))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 x 2)))
(+.f64 (*.f64 eps (*.f64 x 2)) (+.f64 (pow.f64 x 2) (pow.f64 eps 2)))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 eps (*.f64 2 x)) (pow.f64 x 2)))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 x 2)))
(+.f64 (*.f64 eps (*.f64 x 2)) (+.f64 (pow.f64 x 2) (pow.f64 eps 2)))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 eps (*.f64 2 x)) (pow.f64 x 2)))
(pow.f64 x 2)
(+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 x 2))
(+.f64 (*.f64 eps (*.f64 x 2)) (pow.f64 x 2))
(+.f64 (*.f64 eps (*.f64 2 x)) (pow.f64 x 2))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 x 2)))
(+.f64 (*.f64 eps (*.f64 x 2)) (+.f64 (pow.f64 x 2) (pow.f64 eps 2)))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 eps (*.f64 2 x)) (pow.f64 x 2)))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 x 2)))
(+.f64 (*.f64 eps (*.f64 x 2)) (+.f64 (pow.f64 x 2) (pow.f64 eps 2)))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 eps (*.f64 2 x)) (pow.f64 x 2)))
(pow.f64 eps 2)
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 x 2)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 2 x)))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 x 2)))
(+.f64 (*.f64 eps (*.f64 x 2)) (+.f64 (pow.f64 x 2) (pow.f64 eps 2)))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 eps (*.f64 2 x)) (pow.f64 x 2)))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 x 2)))
(+.f64 (*.f64 eps (*.f64 x 2)) (+.f64 (pow.f64 x 2) (pow.f64 eps 2)))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 eps (*.f64 2 x)) (pow.f64 x 2)))
(pow.f64 eps 2)
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 x 2)))
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 2 x)))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 x 2)))
(+.f64 (*.f64 eps (*.f64 x 2)) (+.f64 (pow.f64 x 2) (pow.f64 eps 2)))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 eps (*.f64 2 x)) (pow.f64 x 2)))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 x 2)))
(+.f64 (*.f64 eps (*.f64 x 2)) (+.f64 (pow.f64 x 2) (pow.f64 eps 2)))
(+.f64 (pow.f64 eps 2) (+.f64 (*.f64 eps (*.f64 2 x)) (pow.f64 x 2)))
(+.f64 (pow.f64 (+.f64 x eps) 2) (neg.f64 (pow.f64 x 2)))
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(+.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 0)
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(+.f64 0 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)))
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(+.f64 1 (+.f64 (pow.f64 (+.f64 x eps) 2) (-.f64 -1 (pow.f64 x 2))))
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(+.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 (+.f64 x eps) 2))
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(+.f64 -1 (+.f64 (pow.f64 (+.f64 x eps) 2) (-.f64 1 (pow.f64 x 2))))
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(+.f64 (+.f64 (pow.f64 (+.f64 x eps) 2) (-.f64 1 (pow.f64 x 2))) -1)
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(+.f64 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 1/2) (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 1/2))
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(+.f64 (*.f64 (pow.f64 (+.f64 x eps) 2) 1/2) (-.f64 (*.f64 (pow.f64 (+.f64 x eps) 2) 1/2) (pow.f64 x 2)))
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(+.f64 (-.f64 1 (pow.f64 x 2)) (+.f64 (pow.f64 (+.f64 x eps) 2) -1))
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(+.f64 -2 (+.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 2))
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(+.f64 (+.f64 (pow.f64 (+.f64 x eps) 2) 1) (-.f64 -1 (pow.f64 x 2)))
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(+.f64 (+.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 2) -2)
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(*.f64 2 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 1/2))
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 1)
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(*.f64 1 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)))
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(*.f64 (*.f64 2 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))) 1/2)
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(*.f64 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2)) -1)
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(*.f64 4 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 1/4))
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(*.f64 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 4) 1/4)
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(*.f64 -1 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2)))
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(*.f64 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 8) 1/8)
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(*.f64 (*.f64 2 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2))) -1/2)
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(*.f64 1/2 (*.f64 2 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))))
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(*.f64 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 1/2) 2)
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(*.f64 16 (-.f64 (pow.f64 (*.f64 (+.f64 x eps) 1/4) 2) (pow.f64 (*.f64 x 1/4) 2)))
(*.f64 16 (-.f64 (*.f64 (pow.f64 (+.f64 eps x) 2) 1/16) (*.f64 (pow.f64 x 2) 1/16)))
(*.f64 16 (-.f64 (*.f64 (pow.f64 (+.f64 eps x) 2) 1/16) (pow.f64 (*.f64 x 1/4) 2)))
(*.f64 16 (*.f64 1/16 (-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))))
(*.f64 16 (*.f64 (-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2)) 1/16))
(*.f64 -2 (*.f64 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2)) 1/2))
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(*.f64 (*.f64 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2)) 1/2) -2)
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(*.f64 1/4 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 4))
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(*.f64 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 1/4) 4)
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(*.f64 1/8 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 8))
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(*.f64 1/8 (-.f64 (*.f64 (pow.f64 (+.f64 x eps) 2) 8) (*.f64 (pow.f64 x 2) 8)))
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(*.f64 -1/2 (*.f64 2 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2))))
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(*.f64 1/16 (-.f64 (pow.f64 (*.f64 (+.f64 x eps) 4) 2) (pow.f64 (*.f64 x 4) 2)))
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(/.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 1)
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(/.f64 (*.f64 2 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))) 2)
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(/.f64 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2)) -1)
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(/.f64 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 4) 4)
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(/.f64 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 8) 8)
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(/.f64 (*.f64 2 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2))) -2)
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(/.f64 (*.f64 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2)) 4) -4)
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 8)) 16)
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 8))) 32)
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2)) 4)) -8)
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2)) 4))) -16)
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 8)))) 64)
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 8))))) 128)
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(pow.f64 (-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2)) 1)
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(neg.f64 (-.f64 (pow.f64 x 2) (pow.f64 (+.f64 x eps) 2)))
(+.f64 (pow.f64 (+.f64 eps x) 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 (+.f64 eps x) 2) (pow.f64 x 2))
(+.f64 (pow.f64 (+.f64 x eps) 2) 0)
(pow.f64 (+.f64 eps x) 2)
(+.f64 0 (pow.f64 (+.f64 x eps) 2))
(pow.f64 (+.f64 eps x) 2)
(+.f64 (*.f64 (pow.f64 (+.f64 x eps) 2) 1/2) (*.f64 (pow.f64 (+.f64 x eps) 2) 1/2))
(pow.f64 (+.f64 eps x) 2)
(-.f64 (pow.f64 (+.f64 x eps) 2) 0)
(pow.f64 (+.f64 eps x) 2)
(*.f64 2 (*.f64 (pow.f64 (+.f64 x eps) 2) 1/2))
(pow.f64 (+.f64 eps x) 2)
(*.f64 (pow.f64 (+.f64 x eps) 2) 1)
(pow.f64 (+.f64 eps x) 2)
(*.f64 1 (pow.f64 (+.f64 x eps) 2))
(pow.f64 (+.f64 eps x) 2)
(*.f64 (*.f64 2 (pow.f64 (+.f64 x eps) 2)) 1/2)
(pow.f64 (+.f64 eps x) 2)
(*.f64 4 (*.f64 (pow.f64 (+.f64 x eps) 2) 1/4))
(pow.f64 (+.f64 eps x) 2)
(*.f64 (*.f64 (pow.f64 (+.f64 x eps) 2) 4) 1/4)
(pow.f64 (+.f64 eps x) 2)
(*.f64 (*.f64 (pow.f64 (+.f64 x eps) 2) 8) 1/8)
(pow.f64 (+.f64 eps x) 2)
(*.f64 1/2 (*.f64 2 (pow.f64 (+.f64 x eps) 2)))
(pow.f64 (+.f64 eps x) 2)
(*.f64 (*.f64 (pow.f64 (+.f64 x eps) 2) 1/2) 2)
(pow.f64 (+.f64 eps x) 2)
(*.f64 16 (pow.f64 (*.f64 (+.f64 x eps) 1/4) 2))
(pow.f64 (+.f64 eps x) 2)
(*.f64 1/4 (*.f64 (pow.f64 (+.f64 x eps) 2) 4))
(pow.f64 (+.f64 eps x) 2)
(*.f64 (*.f64 (pow.f64 (+.f64 x eps) 2) 1/4) 4)
(pow.f64 (+.f64 eps x) 2)
(*.f64 1/8 (*.f64 (pow.f64 (+.f64 x eps) 2) 8))
(pow.f64 (+.f64 eps x) 2)
(*.f64 1/16 (pow.f64 (*.f64 (+.f64 x eps) 4) 2))
(pow.f64 (+.f64 eps x) 2)
(*.f64 (pow.f64 (*.f64 (+.f64 x eps) 4) 2) 1/16)
(pow.f64 (+.f64 eps x) 2)
(*.f64 (pow.f64 (*.f64 (+.f64 x eps) 1/4) 2) 16)
(pow.f64 (+.f64 eps x) 2)
(/.f64 (pow.f64 (+.f64 x eps) 2) 1)
(pow.f64 (+.f64 eps x) 2)
(/.f64 (*.f64 2 (pow.f64 (+.f64 x eps) 2)) 2)
(pow.f64 (+.f64 eps x) 2)
(/.f64 (*.f64 (pow.f64 (+.f64 x eps) 2) 4) 4)
(pow.f64 (+.f64 eps x) 2)
(/.f64 (*.f64 (pow.f64 (+.f64 x eps) 2) 8) 8)
(pow.f64 (+.f64 eps x) 2)
(/.f64 (*.f64 2 (*.f64 (pow.f64 (+.f64 x eps) 2) 8)) 16)
(pow.f64 (+.f64 eps x) 2)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 (+.f64 x eps) 2) 8))) 32)
(pow.f64 (+.f64 eps x) 2)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 (+.f64 x eps) 2) 8)))) 64)
(pow.f64 (+.f64 eps x) 2)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 (+.f64 x eps) 2) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 (+.f64 x eps) 2) 8))))) 128)
(pow.f64 (+.f64 eps x) 2)

eval361.0ms (3.3%)

Compiler

Compiled 1292 to 893 computations (30.9% saved)

prune15.0ms (0.1%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New94498
Fresh000
Picked011
Done000
Total94599
Error
0.0b
Counts
99 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
16.3b
(pow.f64 eps 2)
14.8b
(-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))
0.0b
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 x 2)))
24.3b
(*.f64 eps (*.f64 x 2))
24.3b
(*.f64 2 (*.f64 eps x))
Compiler

Compiled 41 to 30 computations (26.8% saved)

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 6 computations (53.8% saved)

series2.0ms (0%)

Counts
1 → 0
Calls

6 calls:

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

rewrite222.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
2570×rational.json-simplify-2
1730×rational.json-simplify-35
1394×rational.json-1
1394×rational.json-2
1122×exponential.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
14813
211313
322013
437813
584313
6181513
7319213
8393213
9470913
10581513
11647413
12647413
13780513
Stop Event
node limit
Counts
1 → 17
Calls
Call 1
Inputs
(*.f64 2 (*.f64 eps x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 eps x) (*.f64 eps x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 2 (*.f64 eps x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 2 (*.f64 eps x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 eps (*.f64 x 1/2)) (*.f64 eps (*.f64 x 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 eps (*.f64 x 3/2)) (*.f64 eps (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 2 (*.f64 eps x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 eps x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 eps (*.f64 x 4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 eps (*.f64 x 8)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 16 (*.f64 eps x)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 16 (*.f64 eps x))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 eps x)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 eps x))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 eps x)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 eps x))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 eps x)))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 2 (*.f64 eps x)) 1)))))

simplify532.0ms (4.9%)

Algorithm
egg-herbie
Rules
2986×rational.json-simplify-35
2158×rational.json-simplify-2
1058×rational.json-simplify-53
1030×rational.json-simplify-49
1028×exponential.json-simplify-26
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
051323
1139221
2288221
3758221
42759221
54584221
65379221
75668221
85857221
96018221
106819221
117018221
127165221
137281221
147290221
157290221
167440221
177707221
187988221
Stop Event
node limit
Counts
17 → 19
Calls
Call 1
Inputs
(+.f64 (*.f64 eps x) (*.f64 eps x))
(+.f64 (*.f64 2 (*.f64 eps x)) 0)
(+.f64 0 (*.f64 2 (*.f64 eps x)))
(+.f64 (*.f64 eps (*.f64 x 1/2)) (*.f64 eps (*.f64 x 3/2)))
(+.f64 (*.f64 eps (*.f64 x 3/2)) (*.f64 eps (*.f64 x 1/2)))
(-.f64 (*.f64 2 (*.f64 eps x)) 0)
(/.f64 (*.f64 2 (*.f64 eps x)) 1)
(/.f64 (*.f64 eps (*.f64 x 4)) 2)
(/.f64 (*.f64 eps (*.f64 x 8)) 4)
(/.f64 (*.f64 16 (*.f64 eps x)) 8)
(/.f64 (*.f64 2 (*.f64 16 (*.f64 eps x))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 eps x)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 eps x))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 eps x)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 eps x))))))) 256)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 eps x)))))))) 512)
(pow.f64 (*.f64 2 (*.f64 eps x)) 1)
Outputs
(+.f64 (*.f64 eps x) (*.f64 eps x))
(*.f64 eps (+.f64 x x))
(*.f64 eps (*.f64 x 2))
(+.f64 (*.f64 2 (*.f64 eps x)) 0)
(+.f64 (*.f64 eps x) (*.f64 eps x))
(*.f64 eps (+.f64 x x))
(*.f64 eps (*.f64 x 2))
(+.f64 0 (*.f64 2 (*.f64 eps x)))
(+.f64 (*.f64 eps x) (*.f64 eps x))
(*.f64 eps (+.f64 x x))
(*.f64 eps (*.f64 x 2))
(+.f64 (*.f64 eps (*.f64 x 1/2)) (*.f64 eps (*.f64 x 3/2)))
(+.f64 (*.f64 eps x) (*.f64 eps x))
(*.f64 eps (+.f64 x x))
(*.f64 eps (*.f64 x 2))
(+.f64 (*.f64 eps (*.f64 x 3/2)) (*.f64 eps (*.f64 x 1/2)))
(+.f64 (*.f64 eps x) (*.f64 eps x))
(*.f64 eps (+.f64 x x))
(*.f64 eps (*.f64 x 2))
(-.f64 (*.f64 2 (*.f64 eps x)) 0)
(+.f64 (*.f64 eps x) (*.f64 eps x))
(*.f64 eps (+.f64 x x))
(*.f64 eps (*.f64 x 2))
(/.f64 (*.f64 2 (*.f64 eps x)) 1)
(+.f64 (*.f64 eps x) (*.f64 eps x))
(*.f64 eps (+.f64 x x))
(*.f64 eps (*.f64 x 2))
(/.f64 (*.f64 eps (*.f64 x 4)) 2)
(+.f64 (*.f64 eps x) (*.f64 eps x))
(*.f64 eps (+.f64 x x))
(*.f64 eps (*.f64 x 2))
(/.f64 (*.f64 eps (*.f64 x 8)) 4)
(+.f64 (*.f64 eps x) (*.f64 eps x))
(*.f64 eps (+.f64 x x))
(*.f64 eps (*.f64 x 2))
(/.f64 (*.f64 16 (*.f64 eps x)) 8)
(+.f64 (*.f64 eps x) (*.f64 eps x))
(*.f64 eps (+.f64 x x))
(*.f64 eps (*.f64 x 2))
(/.f64 (*.f64 2 (*.f64 16 (*.f64 eps x))) 16)
(+.f64 (*.f64 eps x) (*.f64 eps x))
(*.f64 eps (+.f64 x x))
(*.f64 eps (*.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 eps x)))) 32)
(+.f64 (*.f64 eps x) (*.f64 eps x))
(*.f64 eps (+.f64 x x))
(*.f64 eps (*.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 eps x))))) 64)
(+.f64 (*.f64 eps x) (*.f64 eps x))
(*.f64 eps (+.f64 x x))
(*.f64 eps (*.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 eps x)))))) 128)
(+.f64 (*.f64 eps x) (*.f64 eps x))
(*.f64 eps (+.f64 x x))
(*.f64 eps (*.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 eps x))))))) 256)
(+.f64 (*.f64 eps x) (*.f64 eps x))
(*.f64 eps (+.f64 x x))
(*.f64 eps (*.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 eps x)))))))) 512)
(+.f64 (*.f64 eps x) (*.f64 eps x))
(*.f64 eps (+.f64 x x))
(*.f64 eps (*.f64 x 2))
(pow.f64 (*.f64 2 (*.f64 eps x)) 1)
(+.f64 (*.f64 eps x) (*.f64 eps x))
(*.f64 eps (+.f64 x x))
(*.f64 eps (*.f64 x 2))

localize5.0ms (0%)

Compiler

Compiled 13 to 8 computations (38.5% saved)

localize16.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 x 2)))
Compiler

Compiled 25 to 16 computations (36% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite484.0ms (4.5%)

Algorithm
batch-egg-rewrite
Rules
2110×rational.json-simplify-35
1584×rational.json-simplify-1
1240×exponential.json-3
1240×rational.json-1
1240×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0925
16125
213525
327125
448625
5110625
6277325
7511225
8626425
9708125
10708125
11708125
Stop Event
node limit
Counts
1 → 23
Calls
Call 1
Inputs
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 x 2)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 eps x) (*.f64 (pow.f64 eps 2) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 eps (*.f64 x 4)) (*.f64 2 (pow.f64 eps 2))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 eps (*.f64 x 4)) (*.f64 2 (pow.f64 eps 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 eps x) (*.f64 (pow.f64 eps 2) 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 eps (*.f64 x 4)) (*.f64 2 (pow.f64 eps 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 1)))))

simplify477.0ms (4.4%)

Algorithm
egg-herbie
Rules
3032×rational.json-simplify-51
2698×rational.json-simplify-2
1782×rational.json-simplify-35
1386×rational.json-simplify-1
1238×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0611121
11301121
23411121
310741121
418741121
528961121
634331121
735071121
835601121
935991121
1036381121
1136771121
1237161121
1337551121
1437941121
1538331121
1638721121
1739111121
1839501121
1947921121
2070921121
2171621121
2271971121
2372301121
2472611121
Stop Event
node limit
Counts
47 → 28
Calls
Call 1
Inputs
(*.f64 2 (*.f64 eps x))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(pow.f64 eps 2)
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(pow.f64 eps 2)
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(pow.f64 eps 2)
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(*.f64 2 (*.f64 eps x))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(*.f64 2 (*.f64 eps x))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(-.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 0)
(*.f64 2 (+.f64 (*.f64 eps x) (*.f64 (pow.f64 eps 2) 1/2)))
(*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 1)
(*.f64 1 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))))
(*.f64 (+.f64 (*.f64 eps (*.f64 x 4)) (*.f64 2 (pow.f64 eps 2))) 1/2)
(*.f64 4 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 1/4))
(*.f64 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 4) 1/4)
(*.f64 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 8) 1/8)
(*.f64 1/2 (+.f64 (*.f64 eps (*.f64 x 4)) (*.f64 2 (pow.f64 eps 2))))
(*.f64 (+.f64 (*.f64 eps x) (*.f64 (pow.f64 eps 2) 1/2)) 2)
(*.f64 1/4 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 4))
(*.f64 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 1/4) 4)
(*.f64 1/8 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 8))
(/.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 1)
(/.f64 (+.f64 (*.f64 eps (*.f64 x 4)) (*.f64 2 (pow.f64 eps 2))) 2)
(/.f64 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 4) 4)
(/.f64 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 8))))) 128)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 8)))))) 256)
(pow.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 1)
Outputs
(*.f64 2 (*.f64 eps x))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 eps 2))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 eps 2))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 eps 2))
(pow.f64 eps 2)
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 eps 2))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 eps 2))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 eps 2))
(pow.f64 eps 2)
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 eps 2))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 eps 2))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 eps 2))
(pow.f64 eps 2)
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 eps 2))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 eps 2))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 eps 2))
(*.f64 2 (*.f64 eps x))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 eps 2))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 eps 2))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 eps 2))
(*.f64 2 (*.f64 eps x))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 eps 2))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 eps 2))
(+.f64 (pow.f64 eps 2) (*.f64 2 (*.f64 eps x)))
(+.f64 (*.f64 2 (*.f64 eps x)) (pow.f64 eps 2))
(-.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 0)
(+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x)))
(*.f64 2 (+.f64 (*.f64 eps x) (*.f64 (pow.f64 eps 2) 1/2)))
(*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 1)
(+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x)))
(*.f64 1 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))))
(+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x)))
(*.f64 (+.f64 (*.f64 eps (*.f64 x 4)) (*.f64 2 (pow.f64 eps 2))) 1/2)
(*.f64 1/2 (+.f64 (*.f64 eps (*.f64 x 4)) (*.f64 2 (pow.f64 eps 2))))
(*.f64 4 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 1/4))
(+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x)))
(*.f64 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 4) 1/4)
(+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x)))
(*.f64 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 8) 1/8)
(+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x)))
(*.f64 1/2 (+.f64 (*.f64 eps (*.f64 x 4)) (*.f64 2 (pow.f64 eps 2))))
(*.f64 (+.f64 (*.f64 eps x) (*.f64 (pow.f64 eps 2) 1/2)) 2)
(*.f64 2 (+.f64 (*.f64 eps x) (*.f64 (pow.f64 eps 2) 1/2)))
(*.f64 1/4 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 4))
(+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x)))
(*.f64 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 1/4) 4)
(+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x)))
(*.f64 1/8 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 8))
(+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x)))
(/.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 1)
(+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x)))
(/.f64 (+.f64 (*.f64 eps (*.f64 x 4)) (*.f64 2 (pow.f64 eps 2))) 2)
(+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x)))
(/.f64 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 4) 4)
(+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x)))
(/.f64 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 8) 8)
(+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x)))
(/.f64 (*.f64 2 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 8)) 16)
(+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 8))) 32)
(+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 8)))) 64)
(+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 8))))) 128)
(+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 8)))))) 256)
(+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x)))
(pow.f64 (+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x))) 1)
(+.f64 (pow.f64 eps 2) (*.f64 eps (+.f64 x x)))

localize3.0ms (0%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

eval9.0ms (0.1%)

Compiler

Compiled 549 to 342 computations (37.7% saved)

prune62.0ms (0.6%)

Pruning

6 alts after pruning (1 fresh and 5 done)

PrunedKeptTotal
New46147
Fresh000
Picked011
Done044
Total46652
Error
0.0b
Counts
52 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
16.3b
(pow.f64 eps 2)
14.8b
(-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))
0.0b
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 x 2)))
24.3b
(+.f64 (*.f64 eps (*.f64 x 3/2)) (*.f64 eps (*.f64 x 1/2)))
24.3b
(*.f64 eps (*.f64 x 2))
24.3b
(*.f64 2 (*.f64 eps x))
Compiler

Compiled 54 to 39 computations (27.8% saved)

localize12.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 33 to 21 computations (36.4% saved)

series4.0ms (0%)

Counts
2 → 48
Calls

12 calls:

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

rewrite223.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
2448×rational.json-simplify-2
1550×rational.json-simplify-35
1478×rational.json-1
1152×rational.json-2
1152×rational.json-3
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01144
17738
217126
337226
473126
5182726
6315926
7415526
8495826
9603526
10667026
11667026
12792626
Stop Event
node limit
Counts
2 → 59
Calls
Call 1
Inputs
(*.f64 eps (*.f64 x 3/2))
(+.f64 (*.f64 eps (*.f64 x 3/2)) (*.f64 eps (*.f64 x 1/2)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 eps (*.f64 x 3/2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 eps (*.f64 x 1/2)) (*.f64 eps x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 eps (*.f64 x 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 eps x) (*.f64 eps (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 eps (*.f64 x 3/4)) (*.f64 eps (*.f64 x 3/4)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 eps (*.f64 x 3/2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 eps (*.f64 x 3/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 eps (*.f64 x 3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 eps (*.f64 x 6)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 eps (*.f64 x 6))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 eps (*.f64 x 6)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 eps (*.f64 x 6))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 eps (*.f64 x 6)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 eps (*.f64 x 6))))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 eps (*.f64 x 6)))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 eps (*.f64 x 3/2)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 eps (+.f64 x x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 eps (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 eps eps))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 8 (*.f64 eps 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 x (*.f64 eps 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (*.f64 eps 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 eps (*.f64 x 1/2)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 eps (+.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 eps (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 eps 1/2) (*.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 eps x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 eps 4)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 eps eps) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 eps x) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) eps)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 eps (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (*.f64 eps 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (*.f64 1/8 (*.f64 eps 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 8 eps)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 eps 4) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 x (*.f64 eps 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 eps 4)) (*.f64 x 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 x 4)) (*.f64 eps 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 x 4)) (*.f64 (+.f64 eps eps) 1/8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 eps 1/4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 x (*.f64 8 eps)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/4) (*.f64 2 (*.f64 eps 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/4) (*.f64 4 (+.f64 eps eps)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 eps 1/4) (*.f64 2 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 16 (*.f64 eps (/.f64 x 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 2 (*.f64 eps 4))) (/.f64 x 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 2 (*.f64 x 4))) (*.f64 1/2 (*.f64 eps 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 eps eps) 1/8) (*.f64 2 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 eps (+.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 eps 4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 8 eps)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x (*.f64 8 eps))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 8 eps)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 8 eps))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 8 eps)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 8 eps))))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 8 eps)))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 eps (+.f64 x x)) 1)))))

simplify204.0ms (1.9%)

Algorithm
egg-herbie
Rules
2514×rational.json-simplify-2
1922×rational.json-simplify-53
1818×rational.json-simplify-35
1372×rational.json-simplify-41
1106×rational.json-simplify-51
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01472195
13671391
27641391
317411391
437951391
555181391
659361391
762921391
865761391
966161391
Stop Event
node limit
Counts
107 → 66
Calls
Call 1
Inputs
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 eps (+.f64 (*.f64 1/2 x) (*.f64 3/2 x)))
(*.f64 eps (+.f64 (*.f64 1/2 x) (*.f64 3/2 x)))
(*.f64 eps (+.f64 (*.f64 1/2 x) (*.f64 3/2 x)))
(*.f64 eps (+.f64 (*.f64 1/2 x) (*.f64 3/2 x)))
(*.f64 eps (+.f64 (*.f64 1/2 x) (*.f64 3/2 x)))
(*.f64 eps (+.f64 (*.f64 1/2 x) (*.f64 3/2 x)))
(*.f64 eps (+.f64 (*.f64 1/2 x) (*.f64 3/2 x)))
(*.f64 eps (+.f64 (*.f64 1/2 x) (*.f64 3/2 x)))
(*.f64 -1 (*.f64 eps (+.f64 (*.f64 -1/2 x) (*.f64 -3/2 x))))
(*.f64 -1 (*.f64 eps (+.f64 (*.f64 -1/2 x) (*.f64 -3/2 x))))
(*.f64 -1 (*.f64 eps (+.f64 (*.f64 -1/2 x) (*.f64 -3/2 x))))
(*.f64 -1 (*.f64 eps (+.f64 (*.f64 -1/2 x) (*.f64 -3/2 x))))
(*.f64 (+.f64 (*.f64 1/2 eps) (*.f64 3/2 eps)) x)
(*.f64 (+.f64 (*.f64 1/2 eps) (*.f64 3/2 eps)) x)
(*.f64 (+.f64 (*.f64 1/2 eps) (*.f64 3/2 eps)) x)
(*.f64 (+.f64 (*.f64 1/2 eps) (*.f64 3/2 eps)) x)
(*.f64 (+.f64 (*.f64 1/2 eps) (*.f64 3/2 eps)) x)
(*.f64 (+.f64 (*.f64 1/2 eps) (*.f64 3/2 eps)) x)
(*.f64 (+.f64 (*.f64 1/2 eps) (*.f64 3/2 eps)) x)
(*.f64 (+.f64 (*.f64 1/2 eps) (*.f64 3/2 eps)) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1/2 eps) (*.f64 -3/2 eps)) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1/2 eps) (*.f64 -3/2 eps)) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1/2 eps) (*.f64 -3/2 eps)) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1/2 eps) (*.f64 -3/2 eps)) x))
(+.f64 (*.f64 eps (*.f64 x 3/2)) 0)
(+.f64 (*.f64 eps (*.f64 x 1/2)) (*.f64 eps x))
(+.f64 0 (*.f64 eps (*.f64 x 3/2)))
(+.f64 (*.f64 eps x) (*.f64 eps (*.f64 x 1/2)))
(+.f64 (*.f64 eps (*.f64 x 3/4)) (*.f64 eps (*.f64 x 3/4)))
(-.f64 (*.f64 eps (*.f64 x 3/2)) 0)
(/.f64 (*.f64 eps (*.f64 x 3/2)) 1)
(/.f64 (*.f64 eps (*.f64 x 3)) 2)
(/.f64 (*.f64 eps (*.f64 x 6)) 4)
(/.f64 (*.f64 2 (*.f64 eps (*.f64 x 6))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 eps (*.f64 x 6)))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 eps (*.f64 x 6))))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 eps (*.f64 x 6)))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 eps (*.f64 x 6))))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 eps (*.f64 x 6)))))))) 256)
(pow.f64 (*.f64 eps (*.f64 x 3/2)) 1)
(-.f64 (*.f64 eps (+.f64 x x)) 0)
(*.f64 eps (+.f64 x x))
(*.f64 x (+.f64 eps eps))
(*.f64 x (*.f64 8 (*.f64 eps 1/4)))
(*.f64 1/2 (*.f64 x (*.f64 eps 4)))
(*.f64 (*.f64 x 1/2) (*.f64 eps 4))
(*.f64 (*.f64 eps (*.f64 x 1/2)) 4)
(*.f64 (*.f64 eps (+.f64 x x)) 1)
(*.f64 1 (*.f64 eps (+.f64 x x)))
(*.f64 (*.f64 eps 1/2) (*.f64 x 4))
(*.f64 2 (*.f64 eps x))
(*.f64 (*.f64 x (*.f64 eps 4)) 1/2)
(*.f64 (+.f64 eps eps) x)
(*.f64 (*.f64 eps x) 2)
(*.f64 (+.f64 x x) eps)
(*.f64 4 (*.f64 eps (*.f64 x 1/2)))
(*.f64 (*.f64 x 4) (*.f64 eps 1/2))
(*.f64 (*.f64 x 4) (*.f64 1/8 (*.f64 eps 4)))
(*.f64 (*.f64 x (*.f64 8 eps)) 1/4)
(*.f64 (*.f64 eps 4) (*.f64 x 1/2))
(*.f64 8 (*.f64 x (*.f64 eps 1/4)))
(*.f64 (*.f64 2 (*.f64 eps 4)) (*.f64 x 1/4))
(*.f64 (*.f64 2 (*.f64 x 4)) (*.f64 eps 1/4))
(*.f64 (*.f64 2 (*.f64 x 4)) (*.f64 (+.f64 eps eps) 1/8))
(*.f64 (*.f64 x (*.f64 eps 1/4)) 8)
(*.f64 1/4 (*.f64 x (*.f64 8 eps)))
(*.f64 (*.f64 x 1/4) (*.f64 2 (*.f64 eps 4)))
(*.f64 (*.f64 x 1/4) (*.f64 4 (+.f64 eps eps)))
(*.f64 (*.f64 eps 1/4) (*.f64 2 (*.f64 x 4)))
(*.f64 16 (*.f64 eps (/.f64 x 8)))
(*.f64 (*.f64 2 (*.f64 2 (*.f64 eps 4))) (/.f64 x 8))
(*.f64 (*.f64 2 (*.f64 2 (*.f64 x 4))) (*.f64 1/2 (*.f64 eps 1/4)))
(*.f64 (*.f64 (+.f64 eps eps) 1/8) (*.f64 2 (*.f64 x 4)))
(/.f64 (*.f64 eps (+.f64 x x)) 1)
(/.f64 (*.f64 x (*.f64 eps 4)) 2)
(/.f64 (*.f64 x (*.f64 8 eps)) 4)
(/.f64 (*.f64 2 (*.f64 x (*.f64 8 eps))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 8 eps)))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 8 eps))))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 8 eps)))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 8 eps))))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 8 eps)))))))) 256)
(pow.f64 (*.f64 eps (+.f64 x x)) 1)
Outputs
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(*.f64 eps (+.f64 (*.f64 1/2 x) (*.f64 3/2 x)))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 eps (+.f64 (*.f64 1/2 x) (*.f64 3/2 x)))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 eps (+.f64 (*.f64 1/2 x) (*.f64 3/2 x)))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 eps (+.f64 (*.f64 1/2 x) (*.f64 3/2 x)))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 eps (+.f64 (*.f64 1/2 x) (*.f64 3/2 x)))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 eps (+.f64 (*.f64 1/2 x) (*.f64 3/2 x)))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 eps (+.f64 (*.f64 1/2 x) (*.f64 3/2 x)))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 eps (+.f64 (*.f64 1/2 x) (*.f64 3/2 x)))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 -1 (*.f64 eps (+.f64 (*.f64 -1/2 x) (*.f64 -3/2 x))))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 -1 (*.f64 eps (+.f64 (*.f64 -1/2 x) (*.f64 -3/2 x))))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 -1 (*.f64 eps (+.f64 (*.f64 -1/2 x) (*.f64 -3/2 x))))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 -1 (*.f64 eps (+.f64 (*.f64 -1/2 x) (*.f64 -3/2 x))))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 (+.f64 (*.f64 1/2 eps) (*.f64 3/2 eps)) x)
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 (+.f64 (*.f64 1/2 eps) (*.f64 3/2 eps)) x)
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 (+.f64 (*.f64 1/2 eps) (*.f64 3/2 eps)) x)
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 (+.f64 (*.f64 1/2 eps) (*.f64 3/2 eps)) x)
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 (+.f64 (*.f64 1/2 eps) (*.f64 3/2 eps)) x)
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 (+.f64 (*.f64 1/2 eps) (*.f64 3/2 eps)) x)
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 (+.f64 (*.f64 1/2 eps) (*.f64 3/2 eps)) x)
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 (+.f64 (*.f64 1/2 eps) (*.f64 3/2 eps)) x)
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1/2 eps) (*.f64 -3/2 eps)) x))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1/2 eps) (*.f64 -3/2 eps)) x))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1/2 eps) (*.f64 -3/2 eps)) x))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1/2 eps) (*.f64 -3/2 eps)) x))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(+.f64 (*.f64 eps (*.f64 x 3/2)) 0)
(*.f64 3/2 (*.f64 eps x))
(+.f64 (*.f64 eps (*.f64 x 1/2)) (*.f64 eps x))
(*.f64 3/2 (*.f64 eps x))
(+.f64 0 (*.f64 eps (*.f64 x 3/2)))
(*.f64 3/2 (*.f64 eps x))
(+.f64 (*.f64 eps x) (*.f64 eps (*.f64 x 1/2)))
(*.f64 3/2 (*.f64 eps x))
(+.f64 (*.f64 eps (*.f64 x 3/4)) (*.f64 eps (*.f64 x 3/4)))
(*.f64 3/2 (*.f64 eps x))
(-.f64 (*.f64 eps (*.f64 x 3/2)) 0)
(*.f64 3/2 (*.f64 eps x))
(/.f64 (*.f64 eps (*.f64 x 3/2)) 1)
(*.f64 3/2 (*.f64 eps x))
(/.f64 (*.f64 eps (*.f64 x 3)) 2)
(*.f64 3/2 (*.f64 eps x))
(/.f64 (*.f64 eps (*.f64 x 6)) 4)
(*.f64 3/2 (*.f64 eps x))
(/.f64 (*.f64 2 (*.f64 eps (*.f64 x 6))) 8)
(*.f64 3/2 (*.f64 eps x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 eps (*.f64 x 6)))) 16)
(*.f64 3/2 (*.f64 eps x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 eps (*.f64 x 6))))) 32)
(*.f64 3/2 (*.f64 eps x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 eps (*.f64 x 6)))))) 64)
(*.f64 3/2 (*.f64 eps x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 eps (*.f64 x 6))))))) 128)
(*.f64 3/2 (*.f64 eps x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 eps (*.f64 x 6)))))))) 256)
(*.f64 3/2 (*.f64 eps x))
(pow.f64 (*.f64 eps (*.f64 x 3/2)) 1)
(*.f64 3/2 (*.f64 eps x))
(-.f64 (*.f64 eps (+.f64 x x)) 0)
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 eps (+.f64 x x))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 x (+.f64 eps eps))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 x (*.f64 8 (*.f64 eps 1/4)))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 1/2 (*.f64 x (*.f64 eps 4)))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 (*.f64 x 1/2) (*.f64 eps 4))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 (*.f64 eps (*.f64 x 1/2)) 4)
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 (*.f64 eps (+.f64 x x)) 1)
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 1 (*.f64 eps (+.f64 x x)))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 (*.f64 eps 1/2) (*.f64 x 4))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 2 (*.f64 eps x))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 (*.f64 x (*.f64 eps 4)) 1/2)
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 (+.f64 eps eps) x)
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 (*.f64 eps x) 2)
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 (+.f64 x x) eps)
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 4 (*.f64 eps (*.f64 x 1/2)))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 (*.f64 x 4) (*.f64 eps 1/2))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 (*.f64 x 4) (*.f64 1/8 (*.f64 eps 4)))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 (*.f64 x (*.f64 8 eps)) 1/4)
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 (*.f64 eps 4) (*.f64 x 1/2))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 8 (*.f64 x (*.f64 eps 1/4)))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 (*.f64 2 (*.f64 eps 4)) (*.f64 x 1/4))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 (*.f64 2 (*.f64 x 4)) (*.f64 eps 1/4))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 (*.f64 2 (*.f64 x 4)) (*.f64 (+.f64 eps eps) 1/8))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 (*.f64 x (*.f64 eps 1/4)) 8)
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 1/4 (*.f64 x (*.f64 8 eps)))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 (*.f64 x 1/4) (*.f64 2 (*.f64 eps 4)))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 (*.f64 x 1/4) (*.f64 4 (+.f64 eps eps)))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 (*.f64 eps 1/4) (*.f64 2 (*.f64 x 4)))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 16 (*.f64 eps (/.f64 x 8)))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 (*.f64 2 (*.f64 2 (*.f64 eps 4))) (/.f64 x 8))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 (*.f64 2 (*.f64 2 (*.f64 x 4))) (*.f64 1/2 (*.f64 eps 1/4)))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(*.f64 (*.f64 (+.f64 eps eps) 1/8) (*.f64 2 (*.f64 x 4)))
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(/.f64 (*.f64 eps (+.f64 x x)) 1)
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(/.f64 (*.f64 x (*.f64 eps 4)) 2)
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(/.f64 (*.f64 x (*.f64 8 eps)) 4)
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 x (*.f64 8 eps))) 8)
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 8 eps)))) 16)
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 8 eps))))) 32)
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 8 eps)))))) 64)
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 8 eps))))))) 128)
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 8 eps)))))))) 256)
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))
(pow.f64 (*.f64 eps (+.f64 x x)) 1)
(*.f64 eps (+.f64 (*.f64 3/2 x) (*.f64 x 1/2)))
(*.f64 eps (*.f64 x 2))
(*.f64 eps (+.f64 x x))

eval13.0ms (0.1%)

Compiler

Compiled 686 to 478 computations (30.3% saved)

prune12.0ms (0.1%)

Pruning

8 alts after pruning (2 fresh and 6 done)

PrunedKeptTotal
New64266
Fresh000
Picked011
Done055
Total64872
Error
0.0b
Counts
72 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
16.3b
(pow.f64 eps 2)
14.8b
(-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))
0.0b
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 x 2)))
24.3b
(+.f64 (*.f64 eps (*.f64 x 3/2)) (*.f64 eps (*.f64 x 1/2)))
24.3b
(*.f64 (*.f64 eps (*.f64 x 1/2)) 4)
24.3b
(*.f64 eps (*.f64 x 2))
24.3b
(*.f64 16 (*.f64 eps (/.f64 x 8)))
24.3b
(*.f64 2 (*.f64 eps x))
Compiler

Compiled 72 to 53 computations (26.4% saved)

localize96.0ms (0.9%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(*.f64 16 (*.f64 eps (/.f64 x 8)))
Compiler

Compiled 21 to 14 computations (33.3% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
eps
@0
(*.f64 16 (*.f64 eps (/.f64 x 8)))
0.0ms
x
@-inf
(*.f64 16 (*.f64 eps (/.f64 x 8)))
0.0ms
x
@inf
(*.f64 16 (*.f64 eps (/.f64 x 8)))
0.0ms
eps
@inf
(*.f64 16 (*.f64 eps (/.f64 x 8)))
0.0ms
eps
@-inf
(*.f64 16 (*.f64 eps (/.f64 x 8)))

rewrite204.0ms (1.9%)

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

Useful iterations: 2 (0.0ms)

IterNodesCost
0919
16319
214613
332113
462213
5164713
6361313
7524313
8609213
9726313
10726313
11726313
Stop Event
node limit
Counts
1 → 20
Calls
Call 1
Inputs
(*.f64 16 (*.f64 eps (/.f64 x 8)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 eps (*.f64 x 1/8)) (+.f64 (*.f64 eps x) (*.f64 (*.f64 eps (*.f64 x 1/8)) 7)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 2 (*.f64 eps x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 2 (*.f64 eps x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 eps 1/4)) (+.f64 (*.f64 eps x) (*.f64 (*.f64 x (*.f64 eps 1/4)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/2 (*.f64 eps x)) (*.f64 3 (*.f64 1/2 (*.f64 eps x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 eps x) (*.f64 eps x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 eps x) (*.f64 (*.f64 eps (*.f64 x 1/8)) 7)) (*.f64 eps (*.f64 x 1/8)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 eps x) (*.f64 (*.f64 x (*.f64 eps 1/4)) 3)) (*.f64 x (*.f64 eps 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 (*.f64 1/2 (*.f64 eps x))) (*.f64 1/2 (*.f64 eps x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 2 (*.f64 eps x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 eps x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 eps (*.f64 x 4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 eps (*.f64 x 8)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 16 (*.f64 eps x)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 32 (*.f64 eps x)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 32 (*.f64 eps x))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 32 (*.f64 eps x)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 32 (*.f64 eps x))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 32 (*.f64 eps x))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 32 (*.f64 eps x)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 2 (*.f64 eps x)) 1)))))

simplify403.0ms (3.7%)

Algorithm
egg-herbie
Rules
2436×rational.json-simplify-35
2296×rational.json-simplify-2
1174×exponential.json-simplify-26
1158×rational.json-simplify-53
1088×rational.json-simplify-1
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
061644
1150644
2337620
3864608
43141608
54833608
65564608
75832608
85992608
96124608
107042608
117441608
127448608
137448608
147692608
157951608
Stop Event
node limit
Counts
44 → 25
Calls
Call 1
Inputs
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(+.f64 (*.f64 eps (*.f64 x 1/8)) (+.f64 (*.f64 eps x) (*.f64 (*.f64 eps (*.f64 x 1/8)) 7)))
(+.f64 (*.f64 2 (*.f64 eps x)) 0)
(+.f64 0 (*.f64 2 (*.f64 eps x)))
(+.f64 (*.f64 x (*.f64 eps 1/4)) (+.f64 (*.f64 eps x) (*.f64 (*.f64 x (*.f64 eps 1/4)) 3)))
(+.f64 (*.f64 1/2 (*.f64 eps x)) (*.f64 3 (*.f64 1/2 (*.f64 eps x))))
(+.f64 (*.f64 eps x) (*.f64 eps x))
(+.f64 (+.f64 (*.f64 eps x) (*.f64 (*.f64 eps (*.f64 x 1/8)) 7)) (*.f64 eps (*.f64 x 1/8)))
(+.f64 (+.f64 (*.f64 eps x) (*.f64 (*.f64 x (*.f64 eps 1/4)) 3)) (*.f64 x (*.f64 eps 1/4)))
(+.f64 (*.f64 3 (*.f64 1/2 (*.f64 eps x))) (*.f64 1/2 (*.f64 eps x)))
(-.f64 (*.f64 2 (*.f64 eps x)) 0)
(/.f64 (*.f64 2 (*.f64 eps x)) 1)
(/.f64 (*.f64 eps (*.f64 x 4)) 2)
(/.f64 (*.f64 eps (*.f64 x 8)) 4)
(/.f64 (*.f64 16 (*.f64 eps x)) 8)
(/.f64 (*.f64 32 (*.f64 eps x)) 16)
(/.f64 (*.f64 2 (*.f64 32 (*.f64 eps x))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 32 (*.f64 eps x)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 32 (*.f64 eps x))))) 128)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 32 (*.f64 eps x))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 32 (*.f64 eps x)))))) 256)
(pow.f64 (*.f64 2 (*.f64 eps x)) 1)
Outputs
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(+.f64 (*.f64 eps (*.f64 x 1/8)) (+.f64 (*.f64 eps x) (*.f64 (*.f64 eps (*.f64 x 1/8)) 7)))
(+.f64 (*.f64 eps x) (+.f64 (*.f64 (*.f64 eps (*.f64 x 1/8)) 7) (*.f64 eps (*.f64 x 1/8))))
(+.f64 (*.f64 eps x) (+.f64 (*.f64 eps (*.f64 x 1/8)) (*.f64 eps (*.f64 (*.f64 x 1/8) 7))))
(+.f64 (*.f64 eps x) (*.f64 (*.f64 x 1/8) (+.f64 eps (*.f64 eps 7))))
(*.f64 eps (+.f64 (*.f64 x 1/8) (+.f64 x (*.f64 x 7/8))))
(+.f64 (*.f64 2 (*.f64 eps x)) 0)
(*.f64 2 (*.f64 eps x))
(+.f64 0 (*.f64 2 (*.f64 eps x)))
(*.f64 2 (*.f64 eps x))
(+.f64 (*.f64 x (*.f64 eps 1/4)) (+.f64 (*.f64 eps x) (*.f64 (*.f64 x (*.f64 eps 1/4)) 3)))
(*.f64 2 (*.f64 eps x))
(+.f64 (*.f64 1/2 (*.f64 eps x)) (*.f64 3 (*.f64 1/2 (*.f64 eps x))))
(*.f64 2 (*.f64 eps x))
(+.f64 (*.f64 eps x) (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(+.f64 (+.f64 (*.f64 eps x) (*.f64 (*.f64 eps (*.f64 x 1/8)) 7)) (*.f64 eps (*.f64 x 1/8)))
(+.f64 (*.f64 eps x) (+.f64 (*.f64 (*.f64 eps (*.f64 x 1/8)) 7) (*.f64 eps (*.f64 x 1/8))))
(+.f64 (*.f64 eps x) (+.f64 (*.f64 eps (*.f64 x 1/8)) (*.f64 eps (*.f64 (*.f64 x 1/8) 7))))
(+.f64 (*.f64 eps x) (*.f64 (*.f64 x 1/8) (+.f64 eps (*.f64 eps 7))))
(*.f64 eps (+.f64 (*.f64 x 1/8) (+.f64 x (*.f64 x 7/8))))
(+.f64 (+.f64 (*.f64 eps x) (*.f64 (*.f64 x (*.f64 eps 1/4)) 3)) (*.f64 x (*.f64 eps 1/4)))
(*.f64 2 (*.f64 eps x))
(+.f64 (*.f64 3 (*.f64 1/2 (*.f64 eps x))) (*.f64 1/2 (*.f64 eps x)))
(*.f64 2 (*.f64 eps x))
(-.f64 (*.f64 2 (*.f64 eps x)) 0)
(*.f64 2 (*.f64 eps x))
(/.f64 (*.f64 2 (*.f64 eps x)) 1)
(*.f64 2 (*.f64 eps x))
(/.f64 (*.f64 eps (*.f64 x 4)) 2)
(*.f64 2 (*.f64 eps x))
(/.f64 (*.f64 eps (*.f64 x 8)) 4)
(*.f64 2 (*.f64 eps x))
(/.f64 (*.f64 16 (*.f64 eps x)) 8)
(*.f64 2 (*.f64 eps x))
(/.f64 (*.f64 32 (*.f64 eps x)) 16)
(*.f64 2 (*.f64 eps x))
(/.f64 (*.f64 2 (*.f64 32 (*.f64 eps x))) 32)
(*.f64 2 (*.f64 eps x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 32 (*.f64 eps x)))) 64)
(*.f64 2 (*.f64 eps x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 32 (*.f64 eps x))))) 128)
(*.f64 2 (*.f64 eps x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 32 (*.f64 eps x))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 32 (*.f64 eps x)))))) 256)
(*.f64 2 (*.f64 eps x))
(pow.f64 (*.f64 2 (*.f64 eps x)) 1)
(*.f64 2 (*.f64 eps x))

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (*.f64 eps (*.f64 x 1/2)) 4)
Compiler

Compiled 21 to 14 computations (33.3% saved)

series0.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite265.0ms (2.5%)

Algorithm
batch-egg-rewrite
Rules
2456×rational.json-simplify-35
1298×rational.json-1
1298×rational.json-2
1298×rational.json-3
1290×exponential.json-3
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0919
16119
213819
331313
462813
5129313
6250913
7412213
8511213
9626713
10725013
11725013
12725013
Stop Event
node limit
Counts
1 → 17
Calls
Call 1
Inputs
(*.f64 (*.f64 eps (*.f64 x 1/2)) 4)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 eps (*.f64 x 1/2)) (*.f64 eps (*.f64 x 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 eps eps)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (+.f64 eps eps)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 eps x) (*.f64 eps x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 eps (*.f64 x 3/2)) (*.f64 eps (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 eps eps)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 eps eps)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 eps (*.f64 x 4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 eps (*.f64 x 8)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 eps x) 16) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 eps x) 16)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 eps x) 16))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 eps x) 16)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 eps x) 16))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 eps x) 16)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 eps x) 16)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 eps x) 16))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 eps eps)) 1)))))

simplify605.0ms (5.6%)

Algorithm
egg-herbie
Rules
3118×rational.json-simplify-35
2244×rational.json-simplify-2
1326×rational.json-simplify-53
1092×rational.json-simplify-1
994×exponential.json-simplify-26
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
053533
1137533
2264533
3570533
42141533
54541533
65530533
75970533
86164533
96301533
106436533
117027533
127028533
137156533
147266533
157362533
167529533
177671533
187808533
197943533
Stop Event
node limit
Counts
41 → 18
Calls
Call 1
Inputs
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(+.f64 (*.f64 eps (*.f64 x 1/2)) (*.f64 eps (*.f64 x 3/2)))
(+.f64 (*.f64 x (+.f64 eps eps)) 0)
(+.f64 0 (*.f64 x (+.f64 eps eps)))
(+.f64 (*.f64 eps x) (*.f64 eps x))
(+.f64 (*.f64 eps (*.f64 x 3/2)) (*.f64 eps (*.f64 x 1/2)))
(-.f64 (*.f64 x (+.f64 eps eps)) 0)
(/.f64 (*.f64 x (+.f64 eps eps)) 1)
(/.f64 (*.f64 eps (*.f64 x 4)) 2)
(/.f64 (*.f64 eps (*.f64 x 8)) 4)
(/.f64 (*.f64 (*.f64 eps x) 16) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 eps x) 16)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 eps x) 16))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 eps x) 16)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 eps x) 16))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 eps x) 16)))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 eps x) 16)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 eps x) 16))))))) 512)
(pow.f64 (*.f64 x (+.f64 eps eps)) 1)
Outputs
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(+.f64 (*.f64 eps (*.f64 x 1/2)) (*.f64 eps (*.f64 x 3/2)))
(*.f64 2 (*.f64 eps x))
(+.f64 (*.f64 x (+.f64 eps eps)) 0)
(*.f64 2 (*.f64 eps x))
(+.f64 0 (*.f64 x (+.f64 eps eps)))
(*.f64 2 (*.f64 eps x))
(+.f64 (*.f64 eps x) (*.f64 eps x))
(*.f64 2 (*.f64 eps x))
(+.f64 (*.f64 eps (*.f64 x 3/2)) (*.f64 eps (*.f64 x 1/2)))
(*.f64 2 (*.f64 eps x))
(-.f64 (*.f64 x (+.f64 eps eps)) 0)
(*.f64 2 (*.f64 eps x))
(/.f64 (*.f64 x (+.f64 eps eps)) 1)
(*.f64 2 (*.f64 eps x))
(/.f64 (*.f64 eps (*.f64 x 4)) 2)
(*.f64 2 (*.f64 eps x))
(/.f64 (*.f64 eps (*.f64 x 8)) 4)
(*.f64 2 (*.f64 eps x))
(/.f64 (*.f64 (*.f64 eps x) 16) 8)
(*.f64 2 (*.f64 eps x))
(/.f64 (*.f64 2 (*.f64 (*.f64 eps x) 16)) 16)
(*.f64 2 (*.f64 eps x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 eps x) 16))) 32)
(*.f64 2 (*.f64 eps x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 eps x) 16)))) 64)
(*.f64 2 (*.f64 eps x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 eps x) 16))))) 128)
(*.f64 2 (*.f64 eps x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 eps x) 16)))))) 256)
(*.f64 2 (*.f64 eps x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 eps x) 16)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 eps x) 16))))))) 512)
(*.f64 2 (*.f64 eps x))
(pow.f64 (*.f64 x (+.f64 eps eps)) 1)
(*.f64 2 (*.f64 eps x))

eval75.0ms (0.7%)

Compiler

Compiled 475 to 294 computations (38.1% saved)

prune10.0ms (0.1%)

Pruning

12 alts after pruning (4 fresh and 8 done)

PrunedKeptTotal
New39443
Fresh000
Picked011
Done077
Total391251
Error
0.0b
Counts
51 → 12
Alt Table
Click to see full alt table
StatusErrorProgram
16.3b
(pow.f64 eps 2)
14.8b
(-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))
0.0b
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 x 2)))
24.3b
(+.f64 (+.f64 (*.f64 eps x) (*.f64 (*.f64 x (*.f64 eps 1/4)) 3)) (*.f64 x (*.f64 eps 1/4)))
24.3b
(+.f64 (+.f64 (*.f64 eps x) (*.f64 (*.f64 eps (*.f64 x 1/8)) 7)) (*.f64 eps (*.f64 x 1/8)))
24.3b
(+.f64 (*.f64 eps (*.f64 x 3/2)) (*.f64 eps (*.f64 x 1/2)))
24.3b
(+.f64 (*.f64 eps x) (+.f64 (*.f64 eps (*.f64 x 1/8)) (*.f64 eps (*.f64 (*.f64 x 1/8) 7))))
24.3b
(*.f64 (*.f64 eps (*.f64 x 1/2)) 4)
24.3b
(*.f64 eps (+.f64 (*.f64 x 1/8) (+.f64 x (*.f64 x 7/8))))
24.3b
(*.f64 eps (*.f64 x 2))
24.3b
(*.f64 16 (*.f64 eps (/.f64 x 8)))
24.3b
(*.f64 2 (*.f64 eps x))
Compiler

Compiled 142 to 101 computations (28.9% saved)

regimes21.0ms (0.2%)

Counts
12 → 1
Calls
Call 1
Inputs
(*.f64 2 (*.f64 eps x))
(*.f64 eps (*.f64 x 2))
(*.f64 16 (*.f64 eps (/.f64 x 8)))
(*.f64 (*.f64 eps (*.f64 x 1/2)) 4)
(*.f64 eps (+.f64 (*.f64 x 1/8) (+.f64 x (*.f64 x 7/8))))
(+.f64 (*.f64 eps (*.f64 x 3/2)) (*.f64 eps (*.f64 x 1/2)))
(+.f64 (*.f64 eps x) (+.f64 (*.f64 eps (*.f64 x 1/8)) (*.f64 eps (*.f64 (*.f64 x 1/8) 7))))
(+.f64 (+.f64 (*.f64 eps x) (*.f64 (*.f64 eps (*.f64 x 1/8)) 7)) (*.f64 eps (*.f64 x 1/8)))
(+.f64 (+.f64 (*.f64 eps x) (*.f64 (*.f64 x (*.f64 eps 1/4)) 3)) (*.f64 x (*.f64 eps 1/4)))
(pow.f64 eps 2)
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 x 2)))
(-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))
Outputs
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 x 2)))
Calls

3 calls:

8.0ms
eps
6.0ms
x
3.0ms
(-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))
Results
ErrorSegmentsBranch
0.0b1x
0.0b1eps
0.0b1(-.f64 (pow.f64 (+.f64 x eps) 2) (pow.f64 x 2))
Compiler

Compiled 137 to 88 computations (35.8% saved)

regimes258.0ms (2.4%)

Counts
10 → 3
Calls
Call 1
Inputs
(*.f64 2 (*.f64 eps x))
(*.f64 eps (*.f64 x 2))
(*.f64 16 (*.f64 eps (/.f64 x 8)))
(*.f64 (*.f64 eps (*.f64 x 1/2)) 4)
(*.f64 eps (+.f64 (*.f64 x 1/8) (+.f64 x (*.f64 x 7/8))))
(+.f64 (*.f64 eps (*.f64 x 3/2)) (*.f64 eps (*.f64 x 1/2)))
(+.f64 (*.f64 eps x) (+.f64 (*.f64 eps (*.f64 x 1/8)) (*.f64 eps (*.f64 (*.f64 x 1/8) 7))))
(+.f64 (+.f64 (*.f64 eps x) (*.f64 (*.f64 eps (*.f64 x 1/8)) 7)) (*.f64 eps (*.f64 x 1/8)))
(+.f64 (+.f64 (*.f64 eps x) (*.f64 (*.f64 x (*.f64 eps 1/4)) 3)) (*.f64 x (*.f64 eps 1/4)))
(pow.f64 eps 2)
Outputs
(*.f64 eps (*.f64 x 2))
(pow.f64 eps 2)
(*.f64 2 (*.f64 eps x))
Calls

2 calls:

239.0ms
eps
16.0ms
x
Results
ErrorSegmentsBranch
5.1b3x
7.6b5eps
Compiler

Compiled 108 to 68 computations (37% saved)

bsearch39.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
17.0ms
1.054369488019638e-95
3.117183138766785e-91
22.0ms
-3.644996617885371e-103
-5.526208608709017e-107
Results
22.0ms119×body512valid
15.0ms137×body256valid
Compiler

Compiled 240 to 188 computations (21.7% saved)

regimes615.0ms (5.7%)

Accuracy

Total -0.2b remaining (-0.8%)

Threshold costs -0.2b (-0.8%)

Counts
9 → 1
Calls
Call 1
Inputs
(*.f64 2 (*.f64 eps x))
(*.f64 eps (*.f64 x 2))
(*.f64 16 (*.f64 eps (/.f64 x 8)))
(*.f64 (*.f64 eps (*.f64 x 1/2)) 4)
(*.f64 eps (+.f64 (*.f64 x 1/8) (+.f64 x (*.f64 x 7/8))))
(+.f64 (*.f64 eps (*.f64 x 3/2)) (*.f64 eps (*.f64 x 1/2)))
(+.f64 (*.f64 eps x) (+.f64 (*.f64 eps (*.f64 x 1/8)) (*.f64 eps (*.f64 (*.f64 x 1/8) 7))))
(+.f64 (+.f64 (*.f64 eps x) (*.f64 (*.f64 eps (*.f64 x 1/8)) 7)) (*.f64 eps (*.f64 x 1/8)))
(+.f64 (+.f64 (*.f64 eps x) (*.f64 (*.f64 x (*.f64 eps 1/4)) 3)) (*.f64 x (*.f64 eps 1/4)))
Outputs
(*.f64 eps (*.f64 x 2))
Calls

2 calls:

608.0ms
x
5.0ms
eps
Results
ErrorSegmentsBranch
24.3b1x
24.3b1eps
Compiler

Compiled 105 to 66 computations (37.1% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
020102
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 x 2)))
(if (<=.f64 x -5487280990934681/322781234760863573706989896500376484291213224103652939103832419567580952752105149328705669160017228929487896496593436672) (*.f64 eps (*.f64 x 2)) (if (<=.f64 x 4321318352303853/18788340662190665823115844774314696219005460391266558965658327772257672200916867547709591987078149624255479808) (pow.f64 eps 2) (*.f64 2 (*.f64 eps x))))
(*.f64 eps (*.f64 x 2))
(*.f64 2 (*.f64 eps x))
Outputs
(+.f64 (pow.f64 eps 2) (*.f64 eps (*.f64 x 2)))
(if (<=.f64 x -5487280990934681/322781234760863573706989896500376484291213224103652939103832419567580952752105149328705669160017228929487896496593436672) (*.f64 eps (*.f64 x 2)) (if (<=.f64 x 4321318352303853/18788340662190665823115844774314696219005460391266558965658327772257672200916867547709591987078149624255479808) (pow.f64 eps 2) (*.f64 2 (*.f64 eps x))))
(*.f64 eps (*.f64 x 2))
(*.f64 2 (*.f64 eps x))
Compiler

Compiled 48 to 34 computations (29.2% saved)

soundness209.0ms (1.9%)

Algorithm
egg-herbie
Rules
1792×rational.json-simplify-1
1430×rational.json-simplify-52
1416×rational.json-simplify-2
1286×rational.json-simplify-35
938×rational.json-simplify-41
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01562945
13162753
28672747
315772747
431762747
537972747
643342747
746322747
851642747
954762747
1065892747
Stop Event
node limit
Compiler

Compiled 20 to 14 computations (30% saved)

end1.4s (12.8%)

Compiler

Compiled 42 to 27 computations (35.7% saved)

Profiling

Loading profile data...