Details

Time bar (total: 3.4s)

analyze89.0ms (2.6%)

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
37.5%37.5%62.4%0.1%0%0%0%6
48%37.5%40.6%0.1%21.9%0%0%7
57.1%43.7%32.8%0.1%23.4%0%0%8
67.5%43.7%21.1%0.1%35.1%0%0%9
73.6%46.8%16.8%0.1%36.3%0%0%10
81.4%46.8%10.7%0.1%42.3%0%0%11
85.1%48.4%8.5%0.1%43%0%0%12
Compiler

Compiled 9 to 6 computations (33.3% saved)

sample1.5s (44.6%)

Results
1.3s8256×body256valid
174.0ms1136×body256infinite
Bogosity

preprocess146.0ms (4.3%)

Algorithm
egg-herbie
Rules
1088×rational.json-simplify-2
944×rational.json-simplify-19
924×rational.json-simplify-44
898×rational.json-simplify-37
812×rational.json-simplify-39
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01134
11534
22334
35934
435534
5390134
6614534
7720534
8786334
022
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(*.f64 x (exp.f64 (*.f64 y y)))
(*.f64 y (exp.f64 (*.f64 x x)))
Outputs
(*.f64 x (exp.f64 (*.f64 y y)))
(*.f64 y (exp.f64 (*.f64 x x)))
Compiler

Compiled 10 to 7 computations (30% saved)

simplify139.0ms (4.1%)

Algorithm
egg-herbie
Rules
1810×rational.json-simplify-35
1346×rational.json-simplify-53
986×rational.json-simplify-39
862×rational.json-simplify-59
608×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0817
11017
21417
33217
418017
5195817
6589817
7776317
Stop Event
node limit
Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 x (exp.f64 (*.f64 y y)))
Outputs
(*.f64 x (exp.f64 (*.f64 y y)))

eval0.0ms (0%)

Compiler

Compiled 8 to 5 computations (37.5% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
0.0b
Counts
2 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(*.f64 x (exp.f64 (*.f64 y y)))
Compiler

Compiled 8 to 5 computations (37.5% saved)

localize6.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 17 to 5 computations (70.6% saved)

series2.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite66.0ms (1.9%)

Algorithm
batch-egg-rewrite
Rules
1434×rational.json-simplify-2
1312×rational.json-1
1312×rational.json-2
1312×rational.json-4
1312×rational.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0817
15217
212017
330517
4111417
5436417
Stop Event
node limit
Counts
1 → 9
Calls
Call 1
Inputs
(*.f64 x (exp.f64 (*.f64 y y)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (exp.f64 (*.f64 y y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (exp.f64 (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (exp.f64 (*.f64 y y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (exp.f64 (*.f64 y y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (exp.f64 (*.f64 y y)) (+.f64 x x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (exp.f64 (*.f64 y y)) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (exp.f64 (*.f64 y y)) (*.f64 x 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (exp.f64 (*.f64 y y)) (*.f64 x 4))) (*.f64 2 (*.f64 (exp.f64 (*.f64 y y)) (*.f64 x 4)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (exp.f64 (*.f64 y y))) 1)))))

simplify104.0ms (3.1%)

Algorithm
egg-herbie
Rules
1512×rational.json-simplify-2
1058×rational.json-simplify-59
1048×rational.json-simplify-51
830×rational.json-simplify-1
684×rational.json-simplify-53
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
047623
1103623
2197611
3395605
41131605
54330605
66794605
Stop Event
node limit
Counts
33 → 24
Calls
Call 1
Inputs
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
x
(+.f64 (*.f64 (pow.f64 y 2) x) x)
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (+.f64 (*.f64 (pow.f64 y 2) x) x))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (+.f64 (*.f64 (pow.f64 y 2) x) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 6) x)) x)))
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(+.f64 (*.f64 x (exp.f64 (*.f64 y y))) 0)
(+.f64 0 (*.f64 x (exp.f64 (*.f64 y y))))
(-.f64 (*.f64 x (exp.f64 (*.f64 y y))) 0)
(/.f64 (*.f64 x (exp.f64 (*.f64 y y))) 1)
(/.f64 (*.f64 (exp.f64 (*.f64 y y)) (+.f64 x x)) 2)
(/.f64 (*.f64 (exp.f64 (*.f64 y y)) (*.f64 x 4)) 4)
(/.f64 (*.f64 2 (*.f64 (exp.f64 (*.f64 y y)) (*.f64 x 4))) 8)
(/.f64 (+.f64 (*.f64 2 (*.f64 (exp.f64 (*.f64 y y)) (*.f64 x 4))) (*.f64 2 (*.f64 (exp.f64 (*.f64 y y)) (*.f64 x 4)))) 16)
(pow.f64 (*.f64 x (exp.f64 (*.f64 y y))) 1)
Outputs
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
x
(+.f64 (*.f64 (pow.f64 y 2) x) x)
(+.f64 x (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (+.f64 (*.f64 (pow.f64 y 2) x) x))
(+.f64 (*.f64 (pow.f64 y 2) x) (+.f64 x (*.f64 1/2 (*.f64 x (pow.f64 y 4)))))
(+.f64 x (+.f64 (*.f64 1/2 (*.f64 x (pow.f64 y 4))) (*.f64 (pow.f64 y 2) x)))
(+.f64 x (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (+.f64 (*.f64 (pow.f64 y 2) x) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 6) x)) x)))
(+.f64 (*.f64 1/2 (*.f64 x (pow.f64 y 4))) (+.f64 (*.f64 (pow.f64 y 2) x) (+.f64 x (*.f64 1/6 (*.f64 x (pow.f64 y 6))))))
(+.f64 (*.f64 1/2 (*.f64 x (pow.f64 y 4))) (+.f64 x (+.f64 (*.f64 x (*.f64 1/6 (pow.f64 y 6))) (*.f64 (pow.f64 y 2) x))))
(+.f64 x (+.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/6 (pow.f64 y 6)))) (*.f64 (pow.f64 y 4) (*.f64 x 1/2))))
(+.f64 x (*.f64 x (+.f64 (*.f64 1/2 (pow.f64 y 4)) (+.f64 (pow.f64 y 2) (*.f64 1/6 (pow.f64 y 6))))))
(+.f64 x (*.f64 x (+.f64 (pow.f64 y 2) (+.f64 (*.f64 1/6 (pow.f64 y 6)) (*.f64 1/2 (pow.f64 y 4))))))
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(+.f64 (*.f64 x (exp.f64 (*.f64 y y))) 0)
(*.f64 x (exp.f64 (*.f64 y y)))
(+.f64 0 (*.f64 x (exp.f64 (*.f64 y y))))
(*.f64 x (exp.f64 (*.f64 y y)))
(-.f64 (*.f64 x (exp.f64 (*.f64 y y))) 0)
(*.f64 x (exp.f64 (*.f64 y y)))
(/.f64 (*.f64 x (exp.f64 (*.f64 y y))) 1)
(*.f64 x (exp.f64 (*.f64 y y)))
(/.f64 (*.f64 (exp.f64 (*.f64 y y)) (+.f64 x x)) 2)
(*.f64 x (exp.f64 (*.f64 y y)))
(/.f64 (*.f64 (exp.f64 (*.f64 y y)) (*.f64 x 4)) 4)
(*.f64 x (exp.f64 (*.f64 y y)))
(/.f64 (*.f64 2 (*.f64 (exp.f64 (*.f64 y y)) (*.f64 x 4))) 8)
(*.f64 x (exp.f64 (*.f64 y y)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (exp.f64 (*.f64 y y)) (*.f64 x 4))) (*.f64 2 (*.f64 (exp.f64 (*.f64 y y)) (*.f64 x 4)))) 16)
(*.f64 x (exp.f64 (*.f64 y y)))
(pow.f64 (*.f64 x (exp.f64 (*.f64 y y))) 1)
(*.f64 x (exp.f64 (*.f64 y y)))

eval8.0ms (0.2%)

Compiler

Compiled 310 to 186 computations (40% saved)

prune4.0ms (0.1%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New21324
Fresh000
Picked011
Done000
Total21425
Error
0b
Counts
25 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(+.f64 (*.f64 (pow.f64 y 2) x) x)
0.1b
(+.f64 x (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))
0.0b
(*.f64 x (exp.f64 (*.f64 y y)))
0.6b
x
Compiler

Compiled 35 to 24 computations (31.4% saved)

localize20.0ms (0.6%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))
7.2b
(*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))))
Compiler

Compiled 51 to 37 computations (27.5% saved)

series4.0ms (0.1%)

Counts
2 → 27
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@0
(*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))))
1.0ms
y
@0
(*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))))
1.0ms
y
@inf
(*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))))
0.0ms
y
@-inf
(*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))))
0.0ms
x
@inf
(*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))))

rewrite139.0ms (4.1%)

Algorithm
batch-egg-rewrite
Rules
1790×rational.json-simplify-35
1538×rational.json-1
1538×rational.json-2
1538×rational.json-3
1528×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01256
17756
214556
327456
448656
5110656
6271156
7468656
8586556
9751756
Stop Event
node limit
Counts
2 → 39
Calls
Call 1
Inputs
(*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))))
(+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 x 1/2)) (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 x 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 x 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 x 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 x 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 x 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 x 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 x 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (pow.f64 y 2) 1/2) (*.f64 (pow.f64 y 4) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2)))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 4 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2)))) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (pow.f64 y 2) 1/2) (*.f64 (pow.f64 y 4) 1/4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 2 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (+.f64 (*.f64 2 (pow.f64 y 4)) (*.f64 (pow.f64 y 2) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 4 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 2 (pow.f64 y 4)) (*.f64 (pow.f64 y 2) 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2)))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 4 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2)))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2)))))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2)))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) 1)))))

simplify412.0ms (12.2%)

Algorithm
egg-herbie
Rules
3384×rational.json-simplify-41
2200×rational.json-simplify-35
2006×rational.json-simplify-2
1430×rational.json-simplify-53
860×exponential.json-simplify-26
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0941932
12111932
24741932
311731932
424391932
530181932
631571932
732881932
833971932
935031932
1042551932
1151001932
1252171932
1353221932
1453221932
1556361932
1656361932
1757411932
Stop Event
node limit
Counts
66 → 49
Calls
Call 1
Inputs
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(*.f64 1/2 (*.f64 (pow.f64 y 4) x))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(*.f64 1/2 (*.f64 (pow.f64 y 4) x))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(pow.f64 y 2)
(*.f64 1/2 (pow.f64 y 4))
(*.f64 1/2 (pow.f64 y 4))
(+.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) 0)
(+.f64 0 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))
(+.f64 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 x 1/2)) (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 x 1/2)))
(-.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) 0)
(/.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) 1)
(/.f64 (*.f64 x (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2)))) 2)
(/.f64 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 x 4)) 4)
(/.f64 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 x 8)) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 x 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 x 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 x 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 x 8)))))) 128)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 x 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 x 8))))))) 256)
(pow.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) 1)
(-.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) 0)
(*.f64 2 (+.f64 (*.f64 (pow.f64 y 2) 1/2) (*.f64 (pow.f64 y 4) 1/4)))
(*.f64 1/2 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))))
(*.f64 4 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) 1/4))
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) 1)
(*.f64 1 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))))
(*.f64 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))) 1/2)
(*.f64 (*.f64 2 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2)))) 1/4)
(*.f64 (*.f64 4 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2)))) 1/8)
(*.f64 (+.f64 (*.f64 (pow.f64 y 2) 1/2) (*.f64 (pow.f64 y 4) 1/4)) 2)
(*.f64 1/4 (*.f64 2 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2)))))
(*.f64 1/4 (+.f64 (*.f64 2 (pow.f64 y 4)) (*.f64 (pow.f64 y 2) 4)))
(*.f64 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) 1/4) 4)
(*.f64 1/8 (*.f64 4 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2)))))
(*.f64 (+.f64 (*.f64 2 (pow.f64 y 4)) (*.f64 (pow.f64 y 2) 4)) 1/4)
(/.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) 1)
(/.f64 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))) 2)
(/.f64 (*.f64 2 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2)))) 4)
(/.f64 (*.f64 4 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2)))) 8)
(/.f64 (*.f64 2 (*.f64 4 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2)))))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2)))))))) 128)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2)))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))))))))) 256)
(pow.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) 1)
Outputs
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 1/2 (*.f64 (pow.f64 y 4) x))
(*.f64 (pow.f64 y 4) (*.f64 1/2 x))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 1/2 (*.f64 (pow.f64 y 4) x))
(*.f64 (pow.f64 y 4) (*.f64 1/2 x))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(pow.f64 y 2)
(*.f64 1/2 (pow.f64 y 4))
(*.f64 1/2 (pow.f64 y 4))
(+.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) 0)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(+.f64 0 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(+.f64 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 x 1/2)) (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 x 1/2)))
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(-.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) 0)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(/.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) 1)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(/.f64 (*.f64 x (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2)))) 2)
(*.f64 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))) (/.f64 x 2))
(*.f64 x (/.f64 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))) 2))
(/.f64 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 x 4)) 4)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(/.f64 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 x 8)) 8)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(/.f64 (*.f64 2 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 x 8))) 16)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 x 8)))) 32)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 x 8))))) 64)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 x 8)))))) 128)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 x 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 x 8))))))) 256)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(pow.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) 1)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(-.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) 0)
(+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))
(*.f64 2 (+.f64 (*.f64 (pow.f64 y 2) 1/2) (*.f64 (pow.f64 y 4) 1/4)))
(*.f64 1/2 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))))
(*.f64 4 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) 1/4))
(+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) 1)
(+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))
(*.f64 1 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))))
(+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))
(*.f64 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))) 1/2)
(*.f64 1/2 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))))
(*.f64 (*.f64 2 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2)))) 1/4)
(*.f64 1/2 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))))
(*.f64 (*.f64 4 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2)))) 1/8)
(*.f64 1/2 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))))
(*.f64 (+.f64 (*.f64 (pow.f64 y 2) 1/2) (*.f64 (pow.f64 y 4) 1/4)) 2)
(*.f64 2 (+.f64 (*.f64 (pow.f64 y 2) 1/2) (*.f64 (pow.f64 y 4) 1/4)))
(*.f64 1/4 (*.f64 2 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2)))))
(*.f64 1/2 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))))
(*.f64 1/4 (+.f64 (*.f64 2 (pow.f64 y 4)) (*.f64 (pow.f64 y 2) 4)))
(*.f64 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) 1/4) 4)
(+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))
(*.f64 1/8 (*.f64 4 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2)))))
(*.f64 1/2 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))))
(*.f64 (+.f64 (*.f64 2 (pow.f64 y 4)) (*.f64 (pow.f64 y 2) 4)) 1/4)
(*.f64 1/4 (+.f64 (*.f64 2 (pow.f64 y 4)) (*.f64 (pow.f64 y 2) 4)))
(/.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) 1)
(+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))
(/.f64 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))) 2)
(/.f64 (*.f64 2 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2)))) 4)
(*.f64 1/2 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))))
(/.f64 (*.f64 4 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2)))) 8)
(*.f64 1/2 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))))
(/.f64 (*.f64 2 (*.f64 4 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))))) 16)
(*.f64 1/2 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2)))))) 32)
(*.f64 1/2 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))))))) 64)
(*.f64 1/2 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2)))))))) 128)
(*.f64 1/2 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2)))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))))))))) 256)
(*.f64 1/2 (+.f64 (pow.f64 y 4) (*.f64 2 (pow.f64 y 2))))
(pow.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) 1)
(+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))

localize9.0ms (0.3%)

Local error

Found 1 expressions with local error:

NewErrorProgram
7.2b
(*.f64 (pow.f64 y 2) x)
Compiler

Compiled 20 to 12 computations (40% saved)

series1.0ms (0%)

Counts
1 → 0
Calls

6 calls:

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

rewrite216.0ms (6.4%)

Algorithm
batch-egg-rewrite
Rules
2314×rational.json-simplify-2
1668×rational.json-simplify-35
1356×rational.json-1
1356×rational.json-2
1356×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
14513
29813
319013
433413
573213
6176713
7308613
8376213
9451413
10552513
11610613
12610613
13743113
Stop Event
node limit
Counts
1 → 15
Calls
Call 1
Inputs
(*.f64 (pow.f64 y 2) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 y 2) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (pow.f64 y 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 y 2) (*.f64 x 1/2)) (*.f64 (pow.f64 y 2) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (pow.f64 y 2) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 y 2) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 y 2) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 y 2) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 y 2) (*.f64 x 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8)))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 y 2) x) 1)))))

simplify436.0ms (12.9%)

Algorithm
egg-herbie
Rules
3016×rational.json-simplify-2
2368×rational.json-simplify-35
1646×rational.json-simplify-53
1350×exponential.json-simplify-26
1012×rational.json-simplify-43
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
046195
1130195
2256195
3590195
42459195
54075195
64591195
74726195
84830195
94931195
105652195
116493195
126930195
137029195
147029195
157128195
167227195
177987195
Stop Event
node limit
Counts
15 → 16
Calls
Call 1
Inputs
(+.f64 (*.f64 (pow.f64 y 2) x) 0)
(+.f64 0 (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 (pow.f64 y 2) (*.f64 x 1/2)) (*.f64 (pow.f64 y 2) (*.f64 x 1/2)))
(-.f64 (*.f64 (pow.f64 y 2) x) 0)
(/.f64 (*.f64 (pow.f64 y 2) x) 1)
(/.f64 (*.f64 2 (*.f64 (pow.f64 y 2) x)) 2)
(/.f64 (*.f64 (pow.f64 y 2) (*.f64 x 4)) 4)
(/.f64 (*.f64 (pow.f64 y 2) (*.f64 x 8)) 8)
(/.f64 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8))))))) 256)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8)))))))) 512)
(pow.f64 (*.f64 (pow.f64 y 2) x) 1)
Outputs
(+.f64 (*.f64 (pow.f64 y 2) x) 0)
(*.f64 (pow.f64 y 2) x)
(+.f64 0 (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 (pow.f64 y 2) (*.f64 x 1/2)) (*.f64 (pow.f64 y 2) (*.f64 x 1/2)))
(*.f64 (pow.f64 y 2) x)
(-.f64 (*.f64 (pow.f64 y 2) x) 0)
(*.f64 (pow.f64 y 2) x)
(/.f64 (*.f64 (pow.f64 y 2) x) 1)
(*.f64 (pow.f64 y 2) x)
(/.f64 (*.f64 2 (*.f64 (pow.f64 y 2) x)) 2)
(*.f64 (pow.f64 y 2) x)
(/.f64 (*.f64 (pow.f64 y 2) (*.f64 x 4)) 4)
(*.f64 (pow.f64 y 2) x)
(/.f64 (*.f64 (pow.f64 y 2) (*.f64 x 8)) 8)
(*.f64 (pow.f64 y 2) x)
(/.f64 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8))) 16)
(*.f64 (pow.f64 y 2) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8)))) 32)
(*.f64 (pow.f64 y 2) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8))))) 64)
(*.f64 (pow.f64 y 2) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8)))))) 128)
(*.f64 (pow.f64 y 2) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8))))))) 256)
(*.f64 (pow.f64 y 2) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 y 2) (*.f64 x 8)))))))) 512)
(*.f64 (pow.f64 y 2) x)
(pow.f64 (*.f64 (pow.f64 y 2) x) 1)
(*.f64 (pow.f64 y 2) x)

eval21.0ms (0.6%)

Compiler

Compiled 1069 to 819 computations (23.4% saved)

prune11.0ms (0.3%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New65065
Fresh011
Picked011
Done022
Total65469
Error
0b
Counts
69 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(+.f64 (*.f64 (pow.f64 y 2) x) x)
0.1b
(+.f64 x (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))
0.0b
(*.f64 x (exp.f64 (*.f64 y y)))
0.6b
x
Compiler

Compiled 35 to 24 computations (31.4% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0.1%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done033
Total044
Error
0b
Counts
4 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(+.f64 (*.f64 (pow.f64 y 2) x) x)
0.1b
(+.f64 x (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))
0.0b
(*.f64 x (exp.f64 (*.f64 y y)))
0.6b
x
Compiler

Compiled 35 to 24 computations (31.4% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0.1%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done033
Total044
Error
0b
Counts
4 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(+.f64 (*.f64 (pow.f64 y 2) x) x)
0.1b
(+.f64 x (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))
0.0b
(*.f64 x (exp.f64 (*.f64 y y)))
0.6b
x
Compiler

Compiled 35 to 24 computations (31.4% saved)

regimes17.0ms (0.5%)

Accuracy

Total -0.5b remaining (-6973.3%)

Threshold costs -0.5b (-6973.3%)

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

5 calls:

4.0ms
y
4.0ms
(*.f64 x (exp.f64 (*.f64 y y)))
4.0ms
x
3.0ms
(*.f64 y y)
2.0ms
(exp.f64 (*.f64 y y))
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1(*.f64 x (exp.f64 (*.f64 y y)))
0.0b1(exp.f64 (*.f64 y y))
0.0b1(*.f64 y y)
Compiler

Compiled 54 to 34 computations (37% saved)

simplify2.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0818
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(*.f64 x (exp.f64 (*.f64 y y)))
x
Outputs
(*.f64 x (exp.f64 (*.f64 y y)))
x
Compiler

Compiled 11 to 7 computations (36.4% saved)

soundness0.0ms (0%)

end15.0ms (0.4%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

Profiling

Loading profile data...