Details

Time bar (total: 5.9s)

analyze62.0ms (1.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)

sample3.2s (54.1%)

Results
3.1s8256×body256valid
124.0ms468×body256infinite
Bogosity

preprocess293.0ms (5%)

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)

simplify136.0ms (2.3%)

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)

prune2.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 20 to 13 computations (35% saved)

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 27 to 8 computations (70.4% saved)

series3.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

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

rewrite115.0ms (2%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
0944
16132
213632
332532
4118632
5397132
Stop Event
node limit
Counts
2 → 37
Calls
Call 1
Inputs
(+.f64 (*.f64 x x) (*.f64 x y))
(*.f64 2 (+.f64 (*.f64 x x) (*.f64 x y)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (*.f64 x (+.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 2 (+.f64 x y))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (+.f64 x y)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x y) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 x (+.f64 x y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 x y)) (/.f64 x 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 x (*.f64 2 (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (+.f64 x y)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x 2) (*.f64 2 (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (+.f64 x y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (*.f64 x (+.f64 x y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 2 (+.f64 x y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 x y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 x y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 x y)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x x) (*.f64 x (+.f64 x (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x y) (*.f64 x (+.f64 x (+.f64 x y))))))) (#(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 2 (+.f64 x y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 2 (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 x (+.f64 y y))) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 x (+.f64 x y))) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 2 (+.f64 x y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 2 (+.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 x y)) 4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 x y)) 8) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 2 (+.f64 x y))) 1)))))

simplify244.0ms (4.1%)

Algorithm
egg-herbie
Rules
936×rational.json-simplify-59
934×rational.json-simplify-51
898×rational.json-simplify-41
874×rational.json-simplify-2
830×rational.json-simplify-19
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0751681
11581573
24071483
314321483
432721483
560341483
674891483
Stop Event
node limit
Counts
85 → 53
Calls
Call 1
Inputs
(*.f64 y x)
(+.f64 (*.f64 y x) (pow.f64 x 2))
(+.f64 (*.f64 y x) (pow.f64 x 2))
(+.f64 (*.f64 y x) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 y x) (pow.f64 x 2))
(+.f64 (*.f64 y x) (pow.f64 x 2))
(+.f64 (*.f64 y x) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 y x) (pow.f64 x 2))
(+.f64 (*.f64 y x) (pow.f64 x 2))
(+.f64 (*.f64 y x) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 y x) (pow.f64 x 2))
(+.f64 (*.f64 y x) (pow.f64 x 2))
(+.f64 (*.f64 y x) (pow.f64 x 2))
(*.f64 y x)
(+.f64 (*.f64 y x) (pow.f64 x 2))
(+.f64 (*.f64 y x) (pow.f64 x 2))
(+.f64 (*.f64 y x) (pow.f64 x 2))
(*.f64 y x)
(+.f64 (*.f64 y x) (pow.f64 x 2))
(+.f64 (*.f64 y x) (pow.f64 x 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 (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 x y)) 0)
(*.f64 x (+.f64 x y))
(*.f64 (*.f64 x (+.f64 x y)) 1)
(*.f64 2 (/.f64 (*.f64 x (+.f64 x y)) 2))
(*.f64 (*.f64 x (*.f64 2 (+.f64 x y))) 1/2)
(*.f64 1 (*.f64 x (+.f64 x y)))
(*.f64 (*.f64 (*.f64 x (+.f64 x y)) 4) 1/4)
(*.f64 (+.f64 x y) x)
(*.f64 4 (/.f64 (*.f64 x (+.f64 x y)) 4))
(*.f64 (*.f64 2 (+.f64 x y)) (/.f64 x 2))
(*.f64 1/2 (*.f64 x (*.f64 2 (+.f64 x y))))
(*.f64 (/.f64 (*.f64 x (+.f64 x y)) 2) 2)
(*.f64 (/.f64 x 2) (*.f64 2 (+.f64 x y)))
(*.f64 (/.f64 (*.f64 x (+.f64 x y)) 4) 4)
(*.f64 1/4 (*.f64 (*.f64 x (+.f64 x y)) 4))
(/.f64 (*.f64 x (+.f64 x y)) 1)
(/.f64 (*.f64 x (*.f64 2 (+.f64 x y))) 2)
(/.f64 (*.f64 (*.f64 x (+.f64 x y)) 4) 4)
(/.f64 (*.f64 (*.f64 x (+.f64 x y)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 8))) 32)
(pow.f64 (*.f64 x (+.f64 x y)) 1)
(+.f64 (*.f64 x x) (*.f64 x (+.f64 x (+.f64 y y))))
(+.f64 (*.f64 x y) (*.f64 x (+.f64 x (+.f64 x y))))
(+.f64 (*.f64 x (+.f64 x y)) (*.f64 x (+.f64 x y)))
(+.f64 (*.f64 x (*.f64 2 (+.f64 x y))) 0)
(+.f64 0 (*.f64 x (*.f64 2 (+.f64 x y))))
(+.f64 (*.f64 x (+.f64 x (+.f64 y y))) (*.f64 x x))
(+.f64 (*.f64 x (+.f64 x (+.f64 x y))) (*.f64 x y))
(-.f64 (*.f64 x (*.f64 2 (+.f64 x y))) 0)
(/.f64 (*.f64 x (*.f64 2 (+.f64 x y))) 1)
(/.f64 (*.f64 (*.f64 x (+.f64 x y)) 4) 2)
(/.f64 (*.f64 (*.f64 x (+.f64 x y)) 8) 4)
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 8)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 8))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 8)))) 32)
(pow.f64 (*.f64 x (*.f64 2 (+.f64 x y))) 1)
Outputs
(*.f64 y x)
(+.f64 (*.f64 y x) (pow.f64 x 2))
(+.f64 (*.f64 y x) (pow.f64 x 2))
(+.f64 (*.f64 y x) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 y x) (pow.f64 x 2))
(+.f64 (*.f64 y x) (pow.f64 x 2))
(+.f64 (*.f64 y x) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 y x) (pow.f64 x 2))
(+.f64 (*.f64 y x) (pow.f64 x 2))
(+.f64 (*.f64 y x) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 y x) (pow.f64 x 2))
(+.f64 (*.f64 y x) (pow.f64 x 2))
(+.f64 (*.f64 y x) (pow.f64 x 2))
(*.f64 y x)
(+.f64 (*.f64 y x) (pow.f64 x 2))
(+.f64 (*.f64 y x) (pow.f64 x 2))
(+.f64 (*.f64 y x) (pow.f64 x 2))
(*.f64 y x)
(+.f64 (*.f64 y x) (pow.f64 x 2))
(+.f64 (*.f64 y x) (pow.f64 x 2))
(+.f64 (*.f64 y x) (pow.f64 x 2))
(*.f64 2 (*.f64 y x))
(*.f64 y (*.f64 x 2))
(*.f64 x (*.f64 y 2))
(*.f64 y (+.f64 x x))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x)))
(+.f64 (*.f64 y (*.f64 x 2)) (*.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 y (*.f64 x 2)) (*.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 y (*.f64 x 2)) (*.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 (*.f64 y (*.f64 x 2)) (*.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 (*.f64 y (*.f64 x 2)) (*.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 (*.f64 y (*.f64 x 2)) (*.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 (*.f64 y (*.f64 x 2)) (*.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 (*.f64 y (*.f64 x 2)) (*.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 (*.f64 y (*.f64 x 2)) (*.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 (*.f64 y (*.f64 x 2)) (*.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 (*.f64 y (*.f64 x 2)) (*.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 (*.f64 y (*.f64 x 2)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2)))
(*.f64 2 (*.f64 y x))
(*.f64 y (*.f64 x 2))
(*.f64 x (*.f64 y 2))
(*.f64 y (+.f64 x x))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x)))
(+.f64 (*.f64 y (*.f64 x 2)) (*.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 y (*.f64 x 2)) (*.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 y (*.f64 x 2)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2)))
(*.f64 2 (*.f64 y x))
(*.f64 y (*.f64 x 2))
(*.f64 x (*.f64 y 2))
(*.f64 y (+.f64 x x))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 2 (*.f64 y x)))
(+.f64 (*.f64 y (*.f64 x 2)) (*.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 y (*.f64 x 2)) (*.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 y (*.f64 x 2)) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (+.f64 (*.f64 y x) (pow.f64 x 2)))
(-.f64 (*.f64 x (+.f64 x y)) 0)
(*.f64 x (+.f64 y x))
(*.f64 x (+.f64 x y))
(*.f64 x (+.f64 y x))
(*.f64 (*.f64 x (+.f64 x y)) 1)
(*.f64 x (+.f64 y x))
(*.f64 2 (/.f64 (*.f64 x (+.f64 x y)) 2))
(*.f64 x (+.f64 y x))
(*.f64 (*.f64 x (*.f64 2 (+.f64 x y))) 1/2)
(*.f64 x (+.f64 y x))
(*.f64 1 (*.f64 x (+.f64 x y)))
(*.f64 x (+.f64 y x))
(*.f64 (*.f64 (*.f64 x (+.f64 x y)) 4) 1/4)
(*.f64 x (+.f64 y x))
(*.f64 (+.f64 x y) x)
(*.f64 x (+.f64 y x))
(*.f64 4 (/.f64 (*.f64 x (+.f64 x y)) 4))
(*.f64 x (+.f64 y x))
(*.f64 (*.f64 2 (+.f64 x y)) (/.f64 x 2))
(*.f64 x (+.f64 y x))
(*.f64 1/2 (*.f64 x (*.f64 2 (+.f64 x y))))
(*.f64 x (+.f64 y x))
(*.f64 (/.f64 (*.f64 x (+.f64 x y)) 2) 2)
(*.f64 x (+.f64 y x))
(*.f64 (/.f64 x 2) (*.f64 2 (+.f64 x y)))
(*.f64 x (+.f64 y x))
(*.f64 (/.f64 (*.f64 x (+.f64 x y)) 4) 4)
(*.f64 x (+.f64 y x))
(*.f64 1/4 (*.f64 (*.f64 x (+.f64 x y)) 4))
(*.f64 x (+.f64 y x))
(/.f64 (*.f64 x (+.f64 x y)) 1)
(*.f64 x (+.f64 y x))
(/.f64 (*.f64 x (*.f64 2 (+.f64 x y))) 2)
(*.f64 x (+.f64 y x))
(/.f64 (*.f64 (*.f64 x (+.f64 x y)) 4) 4)
(*.f64 x (+.f64 y x))
(/.f64 (*.f64 (*.f64 x (+.f64 x y)) 8) 8)
(*.f64 x (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 8)) 16)
(*.f64 x (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 8))) 32)
(*.f64 x (+.f64 y x))
(pow.f64 (*.f64 x (+.f64 x y)) 1)
(*.f64 x (+.f64 y x))
(+.f64 (*.f64 x x) (*.f64 x (+.f64 x (+.f64 y y))))
(*.f64 x (+.f64 x (+.f64 x (+.f64 y y))))
(*.f64 x (+.f64 (+.f64 y y) (+.f64 x x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 x y) (*.f64 x (+.f64 x (+.f64 x y))))
(*.f64 x (+.f64 x (+.f64 x (+.f64 y y))))
(*.f64 x (+.f64 (+.f64 y y) (+.f64 x x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 x (+.f64 x y)) (*.f64 x (+.f64 x y)))
(*.f64 x (+.f64 x (+.f64 x (+.f64 y y))))
(*.f64 x (+.f64 (+.f64 y y) (+.f64 x x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 x (*.f64 2 (+.f64 x y))) 0)
(*.f64 x (+.f64 x (+.f64 x (+.f64 y y))))
(*.f64 x (+.f64 (+.f64 y y) (+.f64 x x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 0 (*.f64 x (*.f64 2 (+.f64 x y))))
(*.f64 x (+.f64 x (+.f64 x (+.f64 y y))))
(*.f64 x (+.f64 (+.f64 y y) (+.f64 x x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 x (+.f64 x (+.f64 y y))) (*.f64 x x))
(*.f64 x (+.f64 x (+.f64 x (+.f64 y y))))
(*.f64 x (+.f64 (+.f64 y y) (+.f64 x x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 x (+.f64 x (+.f64 x y))) (*.f64 x y))
(*.f64 x (+.f64 x (+.f64 x (+.f64 y y))))
(*.f64 x (+.f64 (+.f64 y y) (+.f64 x x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(-.f64 (*.f64 x (*.f64 2 (+.f64 x y))) 0)
(*.f64 x (+.f64 x (+.f64 x (+.f64 y y))))
(*.f64 x (+.f64 (+.f64 y y) (+.f64 x x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(/.f64 (*.f64 x (*.f64 2 (+.f64 x y))) 1)
(*.f64 x (+.f64 x (+.f64 x (+.f64 y y))))
(*.f64 x (+.f64 (+.f64 y y) (+.f64 x x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(/.f64 (*.f64 (*.f64 x (+.f64 x y)) 4) 2)
(*.f64 x (+.f64 x (+.f64 x (+.f64 y y))))
(*.f64 x (+.f64 (+.f64 y y) (+.f64 x x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(/.f64 (*.f64 (*.f64 x (+.f64 x y)) 8) 4)
(*.f64 x (+.f64 x (+.f64 x (+.f64 y y))))
(*.f64 x (+.f64 (+.f64 y y) (+.f64 x x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 8)) 8)
(*.f64 x (+.f64 x (+.f64 x (+.f64 y y))))
(*.f64 x (+.f64 (+.f64 y y) (+.f64 x x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 8))) 16)
(*.f64 x (+.f64 x (+.f64 x (+.f64 y y))))
(*.f64 x (+.f64 (+.f64 y y) (+.f64 x x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 x y)) 8)))) 32)
(*.f64 x (+.f64 x (+.f64 x (+.f64 y y))))
(*.f64 x (+.f64 (+.f64 y y) (+.f64 x x)))
(*.f64 x (*.f64 2 (+.f64 y x)))
(pow.f64 (*.f64 x (*.f64 2 (+.f64 x y))) 1)
(*.f64 x (+.f64 x (+.f64 x (+.f64 y y))))
(*.f64 x (+.f64 (+.f64 y y) (+.f64 x x)))
(*.f64 x (*.f64 2 (+.f64 y x)))

localize6.0ms (0.1%)

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%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(*.f64 (+.f64 x y) (*.f64 x 2))
0.0ms
x
@-inf
(*.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
y
@-inf
(*.f64 (+.f64 x y) (*.f64 x 2))

rewrite193.0ms (3.3%)

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)))))

simplify653.0ms (11.1%)

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))

eval88.0ms (1.5%)

Compiler

Compiled 744 to 395 computations (46.9% saved)

prune9.0ms (0.2%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New73174
Fresh000
Picked011
Done011
Total73376
Error
0.0b
Counts
76 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(*.f64 (+.f64 x y) (*.f64 x 2))
23.0b
(*.f64 y (+.f64 x x))
0.0b
(*.f64 2 (+.f64 (*.f64 x x) (*.f64 x y)))
Compiler

Compiled 27 to 17 computations (37% saved)

localize4.0ms (0.1%)

Compiler

Compiled 12 to 4 computations (66.7% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0%)

Pruning

3 alts after pruning (0 fresh and 3 done)

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

Compiled 27 to 17 computations (37% saved)

regimes14.0ms (0.2%)

Accuracy

Total -22.9b remaining (-195819%)

Threshold costs -22.9b (-195819%)

Counts
3 → 1
Calls
Call 1
Inputs
(*.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:

3.0ms
(*.f64 2 (+.f64 (*.f64 x x) (*.f64 x y)))
3.0ms
x
3.0ms
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 49 to 29 computations (40.8% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

Compiled 16 to 10 computations (37.5% saved)

soundness743.0ms (12.6%)

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)

end120.0ms (2%)

Compiler

Compiled 14 to 8 computations (42.9% saved)

Profiling

Loading profile data...