Details

Time bar (total: 7.7s)

analyze3.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
0%0%100%0%0%0%0%2
50%50%50%0%0%0%0%3
66.7%50%25%0%25%0%0%4
83.3%62.5%12.5%0%25%0%0%5
91.7%68.7%6.2%0%25%0%0%6
95.8%71.8%3.1%0%25%0%0%7
97.9%73.4%1.6%0%25%0%0%8
99%74.2%0.8%0%25%0%0%9
99.5%74.6%0.4%0%25%0%0%10
99.7%74.8%0.2%0%25%0%0%11
99.9%74.9%0.1%0%25%0%0%12
Compiler

Compiled 7 to 5 computations (28.6% saved)

sample1.1s (14.9%)

Results
1.1s8256×body256valid
0.0msbody256infinite
Bogosity

preprocess4.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
1913
21013
011
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(*.f64 x (-.f64 x 1))
Outputs
(*.f64 x (-.f64 x 1))
(*.f64 x (+.f64 x -1))
Compiler

Compiled 7 to 5 computations (28.6% saved)

simplify11.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
1913
21013
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 x (-.f64 x 1))
Outputs
(*.f64 x (-.f64 x 1))
(*.f64 x (+.f64 x -1))

eval0.0ms (0%)

Compiler

Compiled 11 to 7 computations (36.4% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

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

Compiled 6 to 4 computations (33.3% saved)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 11 to 7 computations (36.4% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite2.0s (25.8%)

Algorithm
batch-egg-rewrite
Rules
1488×rational.json-simplify-53
1358×rational.json-simplify-35
1320×exponential.json-3
1320×rational.json-1
1320×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
15113
212513
322113
440413
585513
6216713
7379413
8493513
9637613
10715713
11715713
12763013
Stop Event
node limit
Counts
1 → 14
Calls
Call 1
Inputs
(*.f64 x (-.f64 x 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 x -1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (+.f64 x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 (+.f64 x -1) 1/2)) (*.f64 x (*.f64 (+.f64 x -1) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 x -1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 x -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 (+.f64 x x) -2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -1) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 x -1) 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 16 (*.f64 x (+.f64 x -1))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 16 (*.f64 x (+.f64 (+.f64 x x) -2))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 16 (*.f64 (+.f64 x -1) (*.f64 x 4))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 16 (*.f64 (+.f64 x -1) (*.f64 x 4)))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 (+.f64 x -1) (*.f64 x 4))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 x -1)) 1)))))

simplify2.0s (25.9%)

Algorithm
egg-herbie
Rules
2362×rational.json-simplify-2
2294×rational.json-simplify-35
1456×exponential.json-simplify-26
1152×rational.json-simplify-53
1042×rational.json-simplify-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
049374
1133354
2272354
3629354
42300354
54153354
65169354
75736354
85903354
96009354
106936354
117616354
127624354
137934354
Stop Event
node limit
Counts
26 → 20
Calls
Call 1
Inputs
(*.f64 -1 x)
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(+.f64 (*.f64 x (+.f64 x -1)) 0)
(+.f64 0 (*.f64 x (+.f64 x -1)))
(+.f64 (*.f64 x (*.f64 (+.f64 x -1) 1/2)) (*.f64 x (*.f64 (+.f64 x -1) 1/2)))
(-.f64 (*.f64 x (+.f64 x -1)) 0)
(/.f64 (*.f64 x (+.f64 x -1)) 1)
(/.f64 (*.f64 x (+.f64 (+.f64 x x) -2)) 2)
(/.f64 (*.f64 (+.f64 x -1) (*.f64 x 4)) 4)
(/.f64 (*.f64 x (*.f64 (+.f64 x -1) 8)) 8)
(/.f64 (*.f64 16 (*.f64 x (+.f64 x -1))) 16)
(/.f64 (*.f64 16 (*.f64 x (+.f64 (+.f64 x x) -2))) 32)
(/.f64 (*.f64 16 (*.f64 (+.f64 x -1) (*.f64 x 4))) 64)
(/.f64 (*.f64 2 (*.f64 16 (*.f64 (+.f64 x -1) (*.f64 x 4)))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 (+.f64 x -1) (*.f64 x 4))))) 256)
(pow.f64 (*.f64 x (+.f64 x -1)) 1)
Outputs
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(+.f64 (neg.f64 x) (pow.f64 x 2))
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(+.f64 (neg.f64 x) (pow.f64 x 2))
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(+.f64 (neg.f64 x) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(+.f64 (neg.f64 x) (pow.f64 x 2))
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(+.f64 (neg.f64 x) (pow.f64 x 2))
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(+.f64 (neg.f64 x) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(+.f64 (neg.f64 x) (pow.f64 x 2))
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(+.f64 (neg.f64 x) (pow.f64 x 2))
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(+.f64 (neg.f64 x) (pow.f64 x 2))
(+.f64 (*.f64 x (+.f64 x -1)) 0)
(*.f64 x (+.f64 -1 x))
(+.f64 0 (*.f64 x (+.f64 x -1)))
(*.f64 x (+.f64 -1 x))
(+.f64 (*.f64 x (*.f64 (+.f64 x -1) 1/2)) (*.f64 x (*.f64 (+.f64 x -1) 1/2)))
(*.f64 x (+.f64 -1 x))
(-.f64 (*.f64 x (+.f64 x -1)) 0)
(*.f64 x (+.f64 -1 x))
(/.f64 (*.f64 x (+.f64 x -1)) 1)
(*.f64 x (+.f64 -1 x))
(/.f64 (*.f64 x (+.f64 (+.f64 x x) -2)) 2)
(*.f64 x (+.f64 -1 x))
(/.f64 (*.f64 (+.f64 x -1) (*.f64 x 4)) 4)
(*.f64 x (+.f64 -1 x))
(/.f64 (*.f64 x (*.f64 (+.f64 x -1) 8)) 8)
(*.f64 x (+.f64 -1 x))
(/.f64 (*.f64 16 (*.f64 x (+.f64 x -1))) 16)
(*.f64 x (+.f64 -1 x))
(/.f64 (*.f64 16 (*.f64 x (+.f64 (+.f64 x x) -2))) 32)
(*.f64 x (+.f64 -1 x))
(/.f64 (*.f64 16 (*.f64 (+.f64 x -1) (*.f64 x 4))) 64)
(*.f64 x (+.f64 -1 x))
(/.f64 (*.f64 2 (*.f64 16 (*.f64 (+.f64 x -1) (*.f64 x 4)))) 128)
(*.f64 x (+.f64 -1 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 (+.f64 x -1) (*.f64 x 4))))) 256)
(*.f64 x (+.f64 -1 x))
(pow.f64 (*.f64 x (+.f64 x -1)) 1)
(*.f64 x (+.f64 -1 x))

eval4.0ms (0.1%)

Compiler

Compiled 163 to 120 computations (26.4% saved)

prune3.0ms (0%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New18220
Fresh000
Picked011
Done000
Total18321
Error
0b
Counts
21 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (neg.f64 x) (pow.f64 x 2))
0.0b
(*.f64 x (-.f64 x 1))
22.7b
(neg.f64 x)
Compiler

Compiled 16 to 11 computations (31.3% saved)

localize2.0ms (0%)

Compiler

Compiled 4 to 2 computations (50% saved)

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 8 computations (42.9% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite2.0s (25.7%)

Algorithm
batch-egg-rewrite
Rules
2384×rational.json-simplify-2
1748×rational.json-simplify-35
1276×exponential.json-3
1276×rational.json-1
1276×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0817
15517
212517
325017
450617
5121517
6275517
7425517
8525917
9631017
10710317
11731217
12753217
Stop Event
node limit
Counts
1 → 26
Calls
Call 1
Inputs
(+.f64 (neg.f64 x) (pow.f64 x 2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (pow.f64 x 2) (-.f64 1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (neg.f64 x) (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 (neg.f64 x) (pow.f64 x 2))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 2 (+.f64 (neg.f64 x) (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 x -2) (*.f64 2 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x -2) (*.f64 2 (pow.f64 x 2))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (neg.f64 x) (pow.f64 x 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 1)))))

simplify522.0ms (6.8%)

Algorithm
egg-herbie
Rules
3012×rational.json-simplify-1
2404×rational.json-simplify-48
2030×rational.json-simplify-35
1326×rational.json-simplify-49
1190×rational.json-simplify-41
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
065642
1141642
2435642
31243642
41978642
53181642
63267642
73377642
83466642
93553642
103616642
114331642
124430642
134671642
145292642
155392642
165429642
175466642
185503642
196385642
207230642
217390642
227483642
237574642
247665642
Stop Event
node limit
Counts
38 → 32
Calls
Call 1
Inputs
(*.f64 -1 x)
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(-.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 0)
(-.f64 (+.f64 (pow.f64 x 2) (-.f64 1 x)) 1)
(*.f64 2 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 1/2))
(*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 1)
(*.f64 1 (+.f64 (neg.f64 x) (pow.f64 x 2)))
(*.f64 (*.f64 2 (+.f64 (neg.f64 x) (pow.f64 x 2))) 1/2)
(*.f64 4 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 1/4))
(*.f64 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 4) 1/4)
(*.f64 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 8) 1/8)
(*.f64 1/2 (*.f64 2 (+.f64 (neg.f64 x) (pow.f64 x 2))))
(*.f64 1/2 (+.f64 (*.f64 x -2) (*.f64 2 (pow.f64 x 2))))
(*.f64 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 4))
(*.f64 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 1/4) 4)
(*.f64 1/8 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 8))
(*.f64 (+.f64 (*.f64 x -2) (*.f64 2 (pow.f64 x 2))) 1/2)
(/.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 1)
(/.f64 (*.f64 2 (+.f64 (neg.f64 x) (pow.f64 x 2))) 2)
(/.f64 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 4) 4)
(/.f64 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 8)))))) 256)
(pow.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 1)
Outputs
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (neg.f64 x))
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (neg.f64 x))
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (neg.f64 x))
(pow.f64 x 2)
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (neg.f64 x))
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (neg.f64 x))
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (neg.f64 x))
(pow.f64 x 2)
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (neg.f64 x))
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (neg.f64 x))
(+.f64 (*.f64 -1 x) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (neg.f64 x))
(-.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 0)
(+.f64 (pow.f64 x 2) (neg.f64 x))
(-.f64 (+.f64 (pow.f64 x 2) (-.f64 1 x)) 1)
(+.f64 (pow.f64 x 2) (neg.f64 x))
(*.f64 2 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 1/2))
(+.f64 (pow.f64 x 2) (neg.f64 x))
(*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 1)
(+.f64 (pow.f64 x 2) (neg.f64 x))
(*.f64 1 (+.f64 (neg.f64 x) (pow.f64 x 2)))
(+.f64 (pow.f64 x 2) (neg.f64 x))
(*.f64 (*.f64 2 (+.f64 (neg.f64 x) (pow.f64 x 2))) 1/2)
(+.f64 (pow.f64 x 2) (neg.f64 x))
(*.f64 4 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 1/4))
(+.f64 (pow.f64 x 2) (neg.f64 x))
(*.f64 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 4) 1/4)
(+.f64 (pow.f64 x 2) (neg.f64 x))
(*.f64 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 8) 1/8)
(+.f64 (pow.f64 x 2) (neg.f64 x))
(*.f64 1/2 (*.f64 2 (+.f64 (neg.f64 x) (pow.f64 x 2))))
(+.f64 (pow.f64 x 2) (neg.f64 x))
(*.f64 1/2 (+.f64 (*.f64 x -2) (*.f64 2 (pow.f64 x 2))))
(*.f64 1/2 (+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 x -2)))
(*.f64 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 1/2) 2)
(+.f64 (pow.f64 x 2) (neg.f64 x))
(*.f64 1/4 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 4))
(+.f64 (pow.f64 x 2) (neg.f64 x))
(*.f64 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 1/4) 4)
(+.f64 (pow.f64 x 2) (neg.f64 x))
(*.f64 1/8 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 8))
(+.f64 (pow.f64 x 2) (neg.f64 x))
(*.f64 (+.f64 (*.f64 x -2) (*.f64 2 (pow.f64 x 2))) 1/2)
(*.f64 1/2 (+.f64 (*.f64 x -2) (*.f64 2 (pow.f64 x 2))))
(*.f64 1/2 (+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 x -2)))
(/.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 1)
(+.f64 (pow.f64 x 2) (neg.f64 x))
(/.f64 (*.f64 2 (+.f64 (neg.f64 x) (pow.f64 x 2))) 2)
(+.f64 (pow.f64 x 2) (neg.f64 x))
(/.f64 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 4) 4)
(+.f64 (pow.f64 x 2) (neg.f64 x))
(/.f64 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 8) 8)
(+.f64 (pow.f64 x 2) (neg.f64 x))
(/.f64 (*.f64 2 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 8)) 16)
(+.f64 (pow.f64 x 2) (neg.f64 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 8))) 32)
(+.f64 (pow.f64 x 2) (neg.f64 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 8)))) 64)
(+.f64 (pow.f64 x 2) (neg.f64 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 8))))) 128)
(+.f64 (pow.f64 x 2) (neg.f64 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 8)))))) 256)
(+.f64 (pow.f64 x 2) (neg.f64 x))
(pow.f64 (+.f64 (neg.f64 x) (pow.f64 x 2)) 1)
(+.f64 (pow.f64 x 2) (neg.f64 x))

eval7.0ms (0.1%)

Compiler

Compiled 314 to 229 computations (27.1% saved)

prune4.0ms (0.1%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New32032
Fresh000
Picked011
Done022
Total32335
Error
0b
Counts
35 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (neg.f64 x) (pow.f64 x 2))
0.0b
(*.f64 x (-.f64 x 1))
22.7b
(neg.f64 x)
Compiler

Compiled 16 to 11 computations (31.3% saved)

regimes9.0ms (0.1%)

Accuracy

Total -22.7b remaining (-582038.9%)

Threshold costs -22.7b (-582038.9%)

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

2 calls:

5.0ms
(*.f64 x (-.f64 x 1))
3.0ms
x
Results
ErrorSegmentsBranch
0.0b1x
0.0b1(*.f64 x (-.f64 x 1))
Compiler

Compiled 22 to 13 computations (40.9% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0818
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 x (-.f64 x 1))
(neg.f64 x)
Outputs
(*.f64 x (-.f64 x 1))
(neg.f64 x)
Compiler

Compiled 9 to 6 computations (33.3% saved)

soundness0.0ms (0%)

end14.0ms (0.2%)

Compiler

Compiled 8 to 5 computations (37.5% saved)

Profiling

Loading profile data...