Details

Time bar (total: 3.0s)

analyze62.0ms (2.1%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
0%0%99.9%0.1%0%0%0%4
25%25%74.9%0.1%0%0%0%5
28.6%25%62.4%0.1%12.5%0%0%6
42.9%37.5%50%0.1%12.5%0%0%7
55.6%46.8%37.5%0.1%15.6%0%0%8
63.6%53.1%30.4%0.1%16.4%0%0%9
73.9%58.5%20.7%0.1%20.7%0%0%10
79.3%62%16.2%0.1%21.7%0%0%11
85.7%65%10.8%0.1%24.1%0%0%12
Compiler

Compiled 12 to 8 computations (33.3% saved)

sample804.0ms (27.1%)

Results
727.0ms8256×body256valid
65.0ms501×body256infinite
Bogosity

preprocess142.0ms (4.8%)

Algorithm
egg-herbie
Rules
1106×rational.json-simplify-2
918×rational.json-simplify-44
904×rational.json-simplify-37
824×rational.json-simplify-47
824×rational.json-simplify-39
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01350
12238
23638
37738
438438
5395438
6624838
7732238
8798038
022
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(*.f64 2 (+.f64 (*.f64 x x) (*.f64 x y)))
(*.f64 2 (+.f64 (*.f64 y y) (*.f64 y x)))
Outputs
(*.f64 2 (+.f64 (*.f64 x x) (*.f64 x y)))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 2 (*.f64 x (+.f64 x y)))
(*.f64 (+.f64 x y) (*.f64 x 2))
(*.f64 2 (+.f64 (*.f64 y y) (*.f64 y x)))
(*.f64 2 (+.f64 (*.f64 y y) (*.f64 x y)))
(*.f64 2 (*.f64 y (+.f64 y x)))
(*.f64 2 (*.f64 y (+.f64 x y)))
Compiler

Compiled 13 to 9 computations (30.8% saved)

simplify131.0ms (4.4%)

Algorithm
egg-herbie
Rules
1814×rational.json-simplify-35
1346×rational.json-simplify-53
1020×rational.json-simplify-39
866×rational.json-simplify-59
654×rational.json-simplify-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0925
11419
22219
34319
419819
5198119
6596819
7784519
Stop Event
node limit
Counts
1 → 5
Calls
Call 1
Inputs
(*.f64 2 (+.f64 (*.f64 x x) (*.f64 x y)))
Outputs
(*.f64 2 (+.f64 (*.f64 x x) (*.f64 x y)))
(*.f64 2 (*.f64 x (+.f64 y x)))
(*.f64 2 (*.f64 x (+.f64 x y)))
(*.f64 (+.f64 x y) (*.f64 x 2))
(*.f64 (+.f64 x y) (*.f64 2 x))

eval1.0ms (0%)

Compiler

Compiled 39 to 21 computations (46.2% saved)

prune1.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New415
Fresh101
Picked000
Done000
Total516
Error
0.0b
Counts
6 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(*.f64 (+.f64 x y) (*.f64 x 2))
Compiler

Compiled 9 to 6 computations (33.3% saved)

localize6.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 18 to 9 computations (50% saved)

series2.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite121.0ms (4.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0819
15519
212419
325019
444719
5100219
6244019
7459319
8578519
9700919
Stop Event
node limit
Counts
1 → 14
Calls
Call 1
Inputs
(*.f64 (+.f64 x y) (*.f64 x 2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 (+.f64 x y) 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 (+.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 x y)) (*.f64 x (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 (+.f64 x y) 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 x y) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) (*.f64 x 4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) (*.f64 x 8)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 x y)) 16) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 16)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 16))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 16)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 16))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 16))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 16)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 (+.f64 x y) 2)) 1)))))

simplify616.0ms (20.7%)

Algorithm
egg-herbie
Rules
3176×rational.json-simplify-35
2976×rational.json-simplify-2
1358×rational.json-simplify-53
958×rational.json-simplify-1
902×exponential.json-simplify-26
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
048902
1123794
2250794
3556794
41954794
54093794
65016794
75252794
85390794
95502794
105614794
116235794
126628794
136904794
147005794
157190794
167190794
177300794
187410794
197525794
207635794
217745794
Stop Event
node limit
Counts
38 → 21
Calls
Call 1
Inputs
(*.f64 2 (*.f64 y x))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x)))
(*.f64 2 (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (*.f64 y x))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x)))
(*.f64 2 (*.f64 y x))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x)))
(+.f64 (*.f64 x (*.f64 (+.f64 x y) 2)) 0)
(+.f64 0 (*.f64 x (*.f64 (+.f64 x y) 2)))
(+.f64 (*.f64 x (+.f64 x y)) (*.f64 x (+.f64 x y)))
(-.f64 (*.f64 x (*.f64 (+.f64 x y) 2)) 0)
(/.f64 (*.f64 x (*.f64 (+.f64 x y) 2)) 1)
(/.f64 (*.f64 (+.f64 x y) (*.f64 x 4)) 2)
(/.f64 (*.f64 (+.f64 x y) (*.f64 x 8)) 4)
(/.f64 (*.f64 (*.f64 x (+.f64 x y)) 16) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 16)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 16))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 16)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 16))))) 128)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 16))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 16)))))) 256)
(pow.f64 (*.f64 x (*.f64 (+.f64 x y) 2)) 1)
Outputs
(*.f64 2 (*.f64 y x))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2)))
(*.f64 2 (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2)))
(*.f64 2 (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2)))
(*.f64 2 (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2)))
(*.f64 2 (*.f64 y x))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2)))
(*.f64 2 (*.f64 y x))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x)))
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2)))
(+.f64 (*.f64 x (*.f64 (+.f64 x y) 2)) 0)
(*.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 (+.f64 y x) (+.f64 x x))
(+.f64 0 (*.f64 x (*.f64 (+.f64 x y) 2)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 (+.f64 y x) (+.f64 x x))
(+.f64 (*.f64 x (+.f64 x y)) (*.f64 x (+.f64 x y)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 (+.f64 y x) (+.f64 x x))
(-.f64 (*.f64 x (*.f64 (+.f64 x y) 2)) 0)
(*.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 (+.f64 y x) (+.f64 x x))
(/.f64 (*.f64 x (*.f64 (+.f64 x y) 2)) 1)
(*.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 (+.f64 y x) (+.f64 x x))
(/.f64 (*.f64 (+.f64 x y) (*.f64 x 4)) 2)
(*.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 (+.f64 y x) (+.f64 x x))
(/.f64 (*.f64 (+.f64 x y) (*.f64 x 8)) 4)
(*.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 (+.f64 y x) (+.f64 x x))
(/.f64 (*.f64 (*.f64 x (+.f64 x y)) 16) 8)
(*.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 (+.f64 y x) (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 16)) 16)
(*.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 (+.f64 y x) (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 16))) 32)
(*.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 (+.f64 y x) (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 16)))) 64)
(*.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 (+.f64 y x) (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 16))))) 128)
(*.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 (+.f64 y x) (+.f64 x x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 16))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 16)))))) 256)
(*.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 (+.f64 y x) (+.f64 x x))
(pow.f64 (*.f64 x (*.f64 (+.f64 x y) 2)) 1)
(*.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 (+.f64 y x) (+.f64 x x))

eval4.0ms (0.1%)

Compiler

Compiled 229 to 135 computations (41% saved)

prune4.0ms (0.1%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New20121
Fresh000
Picked011
Done000
Total20222
Error
0.0b
Counts
22 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(*.f64 (+.f64 x y) (*.f64 x 2))
22.4b
(*.f64 2 (*.f64 y x))
Compiler

Compiled 16 to 11 computations (31.3% saved)

localize4.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 6 computations (53.8% saved)

series3.0ms (0.1%)

Counts
1 → 0
Calls

6 calls:

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

rewrite206.0ms (6.9%)

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 y x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y x) (*.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 2 (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 2 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 x 1/2)) (*.f64 y (*.f64 x 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 x 3/2)) (*.f64 y (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 2 (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 x 4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 x 8)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 16 (*.f64 y x)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 16 (*.f64 y x))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 y x)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 y x))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 y x)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 y 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 y x)))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 2 (*.f64 y x)) 1)))))

simplify508.0ms (17.1%)

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 y x) (*.f64 y x))
(+.f64 (*.f64 2 (*.f64 y x)) 0)
(+.f64 0 (*.f64 2 (*.f64 y x)))
(+.f64 (*.f64 y (*.f64 x 1/2)) (*.f64 y (*.f64 x 3/2)))
(+.f64 (*.f64 y (*.f64 x 3/2)) (*.f64 y (*.f64 x 1/2)))
(-.f64 (*.f64 2 (*.f64 y x)) 0)
(/.f64 (*.f64 2 (*.f64 y x)) 1)
(/.f64 (*.f64 y (*.f64 x 4)) 2)
(/.f64 (*.f64 y (*.f64 x 8)) 4)
(/.f64 (*.f64 16 (*.f64 y x)) 8)
(/.f64 (*.f64 2 (*.f64 16 (*.f64 y x))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 y x)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 y x))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 y x)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 y x))))))) 256)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 y x)))))))) 512)
(pow.f64 (*.f64 2 (*.f64 y x)) 1)
Outputs
(+.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (+.f64 x x))
(*.f64 y (*.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) 0)
(+.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (+.f64 x x))
(*.f64 y (*.f64 x 2))
(+.f64 0 (*.f64 2 (*.f64 y x)))
(+.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (+.f64 x x))
(*.f64 y (*.f64 x 2))
(+.f64 (*.f64 y (*.f64 x 1/2)) (*.f64 y (*.f64 x 3/2)))
(+.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (+.f64 x x))
(*.f64 y (*.f64 x 2))
(+.f64 (*.f64 y (*.f64 x 3/2)) (*.f64 y (*.f64 x 1/2)))
(+.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (+.f64 x x))
(*.f64 y (*.f64 x 2))
(-.f64 (*.f64 2 (*.f64 y x)) 0)
(+.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (+.f64 x x))
(*.f64 y (*.f64 x 2))
(/.f64 (*.f64 2 (*.f64 y x)) 1)
(+.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (+.f64 x x))
(*.f64 y (*.f64 x 2))
(/.f64 (*.f64 y (*.f64 x 4)) 2)
(+.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (+.f64 x x))
(*.f64 y (*.f64 x 2))
(/.f64 (*.f64 y (*.f64 x 8)) 4)
(+.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (+.f64 x x))
(*.f64 y (*.f64 x 2))
(/.f64 (*.f64 16 (*.f64 y x)) 8)
(+.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (+.f64 x x))
(*.f64 y (*.f64 x 2))
(/.f64 (*.f64 2 (*.f64 16 (*.f64 y x))) 16)
(+.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (+.f64 x x))
(*.f64 y (*.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 y x)))) 32)
(+.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (+.f64 x x))
(*.f64 y (*.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 y x))))) 64)
(+.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (+.f64 x x))
(*.f64 y (*.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 y x)))))) 128)
(+.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (+.f64 x x))
(*.f64 y (*.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 y x))))))) 256)
(+.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (+.f64 x x))
(*.f64 y (*.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 y x)))))))) 512)
(+.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (+.f64 x x))
(*.f64 y (*.f64 x 2))
(pow.f64 (*.f64 2 (*.f64 y x)) 1)
(+.f64 (*.f64 y x) (*.f64 y x))
(*.f64 y (+.f64 x x))
(*.f64 y (*.f64 x 2))

eval3.0ms (0.1%)

Compiler

Compiled 181 to 123 computations (32% saved)

prune3.0ms (0.1%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New18119
Fresh000
Picked101
Done011
Total19221
Error
0.0b
Counts
21 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(*.f64 (+.f64 x y) (*.f64 x 2))
22.4b
(*.f64 y (+.f64 x x))
Compiler

Compiled 16 to 10 computations (37.5% saved)

localize5.0ms (0.2%)

Compiler

Compiled 12 to 4 computations (66.7% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New000
Fresh000
Picked011
Done011
Total022
Error
0.0b
Counts
2 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(*.f64 (+.f64 x y) (*.f64 x 2))
22.4b
(*.f64 y (+.f64 x x))
Compiler

Compiled 16 to 10 computations (37.5% saved)

regimes16.0ms (0.6%)

Counts
4 → 1
Calls
Call 1
Inputs
(*.f64 2 (*.f64 y x))
(*.f64 y (+.f64 x x))
(*.f64 (+.f64 x y) (*.f64 x 2))
(*.f64 2 (+.f64 (*.f64 x x) (*.f64 x y)))
Outputs
(*.f64 (+.f64 x y) (*.f64 x 2))
Calls

4 calls:

5.0ms
y
4.0ms
x
3.0ms
(*.f64 2 (+.f64 (*.f64 x x) (*.f64 x y)))
3.0ms
(+.f64 (*.f64 x x) (*.f64 x y))
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1(*.f64 2 (+.f64 (*.f64 x x) (*.f64 x y)))
0.0b1(+.f64 (*.f64 x x) (*.f64 x y))
Compiler

Compiled 54 to 32 computations (40.7% saved)

regimes7.0ms (0.2%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0.0b (-0%)

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

2 calls:

3.0ms
x
3.0ms
y
Results
ErrorSegmentsBranch
22.4b1x
22.4b1y
Compiler

Compiled 18 to 11 computations (38.9% saved)

simplify2.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01245
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 (+.f64 x y) (*.f64 x 2))
(*.f64 y (+.f64 x x))
(*.f64 2 (*.f64 y x))
Outputs
(*.f64 (+.f64 x y) (*.f64 x 2))
(*.f64 y (+.f64 x x))
(*.f64 2 (*.f64 y x))
Compiler

Compiled 23 to 15 computations (34.8% saved)

soundness210.0ms (7.1%)

Algorithm
egg-herbie
Rules
1814×rational.json-simplify-35
1346×rational.json-simplify-53
1020×rational.json-simplify-39
866×rational.json-simplify-59
654×rational.json-simplify-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0925
11419
22219
34319
419819
5198119
6596819
7784519
Stop Event
node limit
Compiler

Compiled 48 to 25 computations (47.9% saved)

end106.0ms (3.6%)

Compiler

Compiled 19 to 11 computations (42.1% saved)

Profiling

Loading profile data...