Details

Time bar (total: 3.5s)

analyze172.0ms (4.9%)

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
0%0%99.9%0.1%0%0%0%5
0%0%99.9%0.1%0%0%0%6
12.5%12.5%87.4%0.1%0%0%0%7
14.8%12.5%71.8%0.1%15.6%0%0%8
22.6%18.7%64%0.1%17.2%0%0%9
32.7%25%51.5%0.1%23.4%0%0%10
41%31.2%44.9%0.1%23.8%0%0%11
49.5%37.1%37.8%0.1%25%0%0%12
Compiler

Compiled 13 to 9 computations (30.8% saved)

sample893.0ms (25.6%)

Results
768.0ms8256×body256valid
113.0ms1182×body256infinite
Bogosity

preprocess100.0ms (2.9%)

Algorithm
egg-herbie
Rules
1158×rational.json-simplify-51
1086×rational.json-simplify-19
972×rational.json-simplify-46
898×rational.json-simplify-54
874×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
020100
131100
253100
3115100
4558100
53939100
66485100
033
133
Stop Event
unsound
node limit
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
2
1
Call 2
Inputs
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
(-.f64 (*.f64 y y) (*.f64 (*.f64 x 4) z))
(-.f64 (*.f64 z z) (*.f64 (*.f64 y 4) x))
(-.f64 (*.f64 x x) (*.f64 (*.f64 z 4) y))
Outputs
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
(-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z)))
(-.f64 (*.f64 x x) (*.f64 4 (*.f64 y z)))
(-.f64 (*.f64 y y) (*.f64 (*.f64 x 4) z))
(-.f64 (*.f64 y y) (*.f64 z (*.f64 x 4)))
(-.f64 (*.f64 y y) (*.f64 x (*.f64 4 z)))
(-.f64 (*.f64 y y) (*.f64 4 (*.f64 x z)))
(-.f64 (*.f64 z z) (*.f64 (*.f64 y 4) x))
(-.f64 (*.f64 z z) (*.f64 x (*.f64 y 4)))
(-.f64 (*.f64 z z) (*.f64 4 (*.f64 y x)))
(-.f64 (*.f64 z z) (*.f64 4 (*.f64 x y)))
(-.f64 (*.f64 x x) (*.f64 (*.f64 z 4) y))
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
(-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z)))
(-.f64 (*.f64 x x) (*.f64 4 (*.f64 y z)))
Symmetry

(sort y z)

Compiler

Compiled 15 to 11 computations (26.7% saved)

simplify134.0ms (3.8%)

Algorithm
egg-herbie
Rules
1812×rational.json-simplify-35
1350×rational.json-simplify-53
996×rational.json-simplify-39
864×rational.json-simplify-59
638×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01025
11425
22225
34425
419325
5198825
6595525
7784425
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
Outputs
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
(-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z)))

eval1.0ms (0%)

Compiler

Compiled 21 to 12 computations (42.9% 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 (*.f64 x x) (*.f64 (*.f64 y 4) z))
Compiler

Compiled 12 to 8 computations (33.3% saved)

localize9.0ms (0.3%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
Compiler

Compiled 27 to 14 computations (48.1% saved)

series4.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

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

rewrite61.0ms (1.7%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01025
16625
214825
336725
4125525
5405325
Stop Event
node limit
Counts
1 → 27
Calls
Call 1
Inputs
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x x) (neg.f64 (*.f64 y (*.f64 4 z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (*.f64 y (*.f64 4 z))) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 1 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 2) (/.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 (*.f64 y (*.f64 4 z))) (-.f64 1 (*.f64 x (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 y (*.f64 4 z)) (*.f64 x x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 (*.f64 y (*.f64 4 z)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 y (*.f64 4 z)) (*.f64 x x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (-.f64 (*.f64 y (*.f64 4 z)) (*.f64 x x))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 4 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 4 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z)))))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (-.f64 (*.f64 y (*.f64 4 z)) (*.f64 x x)))) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 4 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z)))))) (*.f64 2 (*.f64 2 (*.f64 4 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (*.f64 y (*.f64 4 z)) (*.f64 x x)))))))

simplify104.0ms (3%)

Algorithm
egg-herbie
Rules
1172×rational.json-simplify-45
950×rational.json-simplify-51
810×rational.json-simplify-1
626×rational.json-simplify-59
616×rational.json-simplify-53
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0671551
11371443
22801443
36151443
418191443
541571443
657291443
Stop Event
node limit
Counts
63 → 33
Calls
Call 1
Inputs
(*.f64 -4 (*.f64 y z))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(*.f64 -4 (*.f64 y z))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(*.f64 -4 (*.f64 y z))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(*.f64 -4 (*.f64 y z))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(*.f64 -4 (*.f64 y z))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (*.f64 x x) (neg.f64 (*.f64 y (*.f64 4 z))))
(+.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 0)
(+.f64 0 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))))
(+.f64 (neg.f64 (*.f64 y (*.f64 4 z))) (*.f64 x x))
(+.f64 -1 (+.f64 1 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z)))))
(+.f64 (+.f64 1 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z)))) -1)
(+.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 2) (/.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 2))
(+.f64 (-.f64 -1 (*.f64 y (*.f64 4 z))) (-.f64 1 (*.f64 x (neg.f64 x))))
(*.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 1)
(*.f64 1 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))))
(*.f64 2 (/.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 2))
(*.f64 (*.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 2) 1/2)
(*.f64 (-.f64 (*.f64 y (*.f64 4 z)) (*.f64 x x)) -1)
(*.f64 -1 (-.f64 (*.f64 y (*.f64 4 z)) (*.f64 x x)))
(*.f64 1/2 (*.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 2))
(*.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 2) 2)
(/.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 1)
(/.f64 (*.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 2) 2)
(/.f64 (-.f64 (*.f64 y (*.f64 4 z)) (*.f64 x x)) -1)
(/.f64 (*.f64 4 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z)))) 4)
(/.f64 (*.f64 2 (-.f64 (*.f64 y (*.f64 4 z)) (*.f64 x x))) -2)
(/.f64 (*.f64 2 (*.f64 4 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 4 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z)))))) 16)
(/.f64 (*.f64 2 (*.f64 2 (-.f64 (*.f64 y (*.f64 4 z)) (*.f64 x x)))) -4)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 4 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z)))))) (*.f64 2 (*.f64 2 (*.f64 4 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))))))) 32)
(pow.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 1)
(neg.f64 (-.f64 (*.f64 y (*.f64 4 z)) (*.f64 x x)))
Outputs
(*.f64 -4 (*.f64 y z))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (*.f64 -4 (*.f64 y z)) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (*.f64 -4 (*.f64 y z)) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (*.f64 -4 (*.f64 y z)) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (*.f64 -4 (*.f64 y z)) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (*.f64 -4 (*.f64 y z)) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (*.f64 -4 (*.f64 y z)) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (*.f64 -4 (*.f64 y z)) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (*.f64 -4 (*.f64 y z)) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (*.f64 -4 (*.f64 y z)) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (*.f64 -4 (*.f64 y z)) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (*.f64 -4 (*.f64 y z)) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (*.f64 -4 (*.f64 y z)) (pow.f64 x 2))
(*.f64 -4 (*.f64 y z))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (*.f64 -4 (*.f64 y z)) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (*.f64 -4 (*.f64 y z)) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (*.f64 -4 (*.f64 y z)) (pow.f64 x 2))
(*.f64 -4 (*.f64 y z))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (*.f64 -4 (*.f64 y z)) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (*.f64 -4 (*.f64 y z)) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (*.f64 -4 (*.f64 y z)) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (*.f64 -4 (*.f64 y z)) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (*.f64 -4 (*.f64 y z)) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (*.f64 -4 (*.f64 y z)) (pow.f64 x 2))
(*.f64 -4 (*.f64 y z))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (*.f64 -4 (*.f64 y z)) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (*.f64 -4 (*.f64 y z)) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (*.f64 -4 (*.f64 y z)) (pow.f64 x 2))
(*.f64 -4 (*.f64 y z))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (*.f64 -4 (*.f64 y z)) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (*.f64 -4 (*.f64 y z)) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (*.f64 -4 (*.f64 y z)))
(+.f64 (*.f64 -4 (*.f64 y z)) (pow.f64 x 2))
(+.f64 (*.f64 x x) (neg.f64 (*.f64 y (*.f64 4 z))))
(+.f64 (*.f64 x x) (neg.f64 (*.f64 y (*.f64 z 4))))
(+.f64 (*.f64 x x) (*.f64 -4 (*.f64 y z)))
(+.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 0)
(+.f64 (*.f64 x x) (neg.f64 (*.f64 y (*.f64 z 4))))
(+.f64 (*.f64 x x) (*.f64 -4 (*.f64 y z)))
(+.f64 0 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))))
(+.f64 (*.f64 x x) (neg.f64 (*.f64 y (*.f64 z 4))))
(+.f64 (*.f64 x x) (*.f64 -4 (*.f64 y z)))
(+.f64 (neg.f64 (*.f64 y (*.f64 4 z))) (*.f64 x x))
(+.f64 (*.f64 x x) (neg.f64 (*.f64 y (*.f64 z 4))))
(+.f64 (*.f64 x x) (*.f64 -4 (*.f64 y z)))
(+.f64 -1 (+.f64 1 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z)))))
(+.f64 (*.f64 x x) (neg.f64 (*.f64 y (*.f64 z 4))))
(+.f64 (*.f64 x x) (*.f64 -4 (*.f64 y z)))
(+.f64 (+.f64 1 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z)))) -1)
(+.f64 (*.f64 x x) (neg.f64 (*.f64 y (*.f64 z 4))))
(+.f64 (*.f64 x x) (*.f64 -4 (*.f64 y z)))
(+.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 2) (/.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 2))
(+.f64 (*.f64 x x) (neg.f64 (*.f64 y (*.f64 z 4))))
(+.f64 (*.f64 x x) (*.f64 -4 (*.f64 y z)))
(+.f64 (-.f64 -1 (*.f64 y (*.f64 4 z))) (-.f64 1 (*.f64 x (neg.f64 x))))
(+.f64 (*.f64 x x) (neg.f64 (*.f64 y (*.f64 z 4))))
(+.f64 (*.f64 x x) (*.f64 -4 (*.f64 y z)))
(*.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 1)
(+.f64 (*.f64 x x) (neg.f64 (*.f64 y (*.f64 z 4))))
(+.f64 (*.f64 x x) (*.f64 -4 (*.f64 y z)))
(*.f64 1 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))))
(+.f64 (*.f64 x x) (neg.f64 (*.f64 y (*.f64 z 4))))
(+.f64 (*.f64 x x) (*.f64 -4 (*.f64 y z)))
(*.f64 2 (/.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 2))
(+.f64 (*.f64 x x) (neg.f64 (*.f64 y (*.f64 z 4))))
(+.f64 (*.f64 x x) (*.f64 -4 (*.f64 y z)))
(*.f64 (*.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 2) 1/2)
(+.f64 (*.f64 x x) (neg.f64 (*.f64 y (*.f64 z 4))))
(+.f64 (*.f64 x x) (*.f64 -4 (*.f64 y z)))
(*.f64 (-.f64 (*.f64 y (*.f64 4 z)) (*.f64 x x)) -1)
(+.f64 (*.f64 x x) (neg.f64 (*.f64 y (*.f64 z 4))))
(+.f64 (*.f64 x x) (*.f64 -4 (*.f64 y z)))
(*.f64 -1 (-.f64 (*.f64 y (*.f64 4 z)) (*.f64 x x)))
(+.f64 (*.f64 x x) (neg.f64 (*.f64 y (*.f64 z 4))))
(+.f64 (*.f64 x x) (*.f64 -4 (*.f64 y z)))
(*.f64 1/2 (*.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 2))
(+.f64 (*.f64 x x) (neg.f64 (*.f64 y (*.f64 z 4))))
(+.f64 (*.f64 x x) (*.f64 -4 (*.f64 y z)))
(*.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 2) 2)
(+.f64 (*.f64 x x) (neg.f64 (*.f64 y (*.f64 z 4))))
(+.f64 (*.f64 x x) (*.f64 -4 (*.f64 y z)))
(/.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 1)
(+.f64 (*.f64 x x) (neg.f64 (*.f64 y (*.f64 z 4))))
(+.f64 (*.f64 x x) (*.f64 -4 (*.f64 y z)))
(/.f64 (*.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 2) 2)
(+.f64 (*.f64 x x) (neg.f64 (*.f64 y (*.f64 z 4))))
(+.f64 (*.f64 x x) (*.f64 -4 (*.f64 y z)))
(/.f64 (-.f64 (*.f64 y (*.f64 4 z)) (*.f64 x x)) -1)
(+.f64 (*.f64 x x) (neg.f64 (*.f64 y (*.f64 z 4))))
(+.f64 (*.f64 x x) (*.f64 -4 (*.f64 y z)))
(/.f64 (*.f64 4 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z)))) 4)
(+.f64 (*.f64 x x) (neg.f64 (*.f64 y (*.f64 z 4))))
(+.f64 (*.f64 x x) (*.f64 -4 (*.f64 y z)))
(/.f64 (*.f64 2 (-.f64 (*.f64 y (*.f64 4 z)) (*.f64 x x))) -2)
(+.f64 (*.f64 x x) (neg.f64 (*.f64 y (*.f64 z 4))))
(+.f64 (*.f64 x x) (*.f64 -4 (*.f64 y z)))
(/.f64 (*.f64 2 (*.f64 4 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))))) 8)
(+.f64 (*.f64 x x) (neg.f64 (*.f64 y (*.f64 z 4))))
(+.f64 (*.f64 x x) (*.f64 -4 (*.f64 y z)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 4 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z)))))) 16)
(+.f64 (*.f64 x x) (neg.f64 (*.f64 y (*.f64 z 4))))
(+.f64 (*.f64 x x) (*.f64 -4 (*.f64 y z)))
(/.f64 (*.f64 2 (*.f64 2 (-.f64 (*.f64 y (*.f64 4 z)) (*.f64 x x)))) -4)
(+.f64 (*.f64 x x) (neg.f64 (*.f64 y (*.f64 z 4))))
(+.f64 (*.f64 x x) (*.f64 -4 (*.f64 y z)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 4 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z)))))) (*.f64 2 (*.f64 2 (*.f64 4 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))))))) 32)
(+.f64 (*.f64 x x) (neg.f64 (*.f64 y (*.f64 z 4))))
(+.f64 (*.f64 x x) (*.f64 -4 (*.f64 y z)))
(pow.f64 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) 1)
(+.f64 (*.f64 x x) (neg.f64 (*.f64 y (*.f64 z 4))))
(+.f64 (*.f64 x x) (*.f64 -4 (*.f64 y z)))
(neg.f64 (-.f64 (*.f64 y (*.f64 4 z)) (*.f64 x x)))
(+.f64 (*.f64 x x) (neg.f64 (*.f64 y (*.f64 z 4))))
(+.f64 (*.f64 x x) (*.f64 -4 (*.f64 y z)))

eval6.0ms (0.2%)

Compiler

Compiled 411 to 246 computations (40.1% saved)

prune108.0ms (3.1%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New32133
Fresh000
Picked011
Done000
Total32234
Error
0.0b
Counts
34 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
23.2b
(*.f64 -4 (*.f64 y z))
Compiler

Compiled 20 to 14 computations (30% saved)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 -4 (*.f64 y z))
Compiler

Compiled 14 to 7 computations (50% saved)

series2.0ms (0.1%)

Counts
1 → 0
Calls

6 calls:

TimeVariablePointExpression
1.0ms
y
@-inf
(*.f64 -4 (*.f64 y z))
0.0ms
y
@0
(*.f64 -4 (*.f64 y z))
0.0ms
z
@0
(*.f64 -4 (*.f64 y z))
0.0ms
y
@inf
(*.f64 -4 (*.f64 y z))
0.0ms
z
@inf
(*.f64 -4 (*.f64 y z))

rewrite385.0ms (11%)

Algorithm
batch-egg-rewrite
Rules
2344×rational.json-simplify-35
1436×rational.json-1
1436×rational.json-2
1436×rational.json-3
1244×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
14813
211413
323913
443313
598313
6218013
7373513
8463813
9558913
10640613
11643313
12647713
13656113
14659713
15760013
Stop Event
node limit
Counts
1 → 27
Calls
Call 1
Inputs
(*.f64 -4 (*.f64 y z))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -4 (*.f64 y z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -4 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (-.f64 1 (+.f64 (*.f64 (*.f64 y z) 4) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 z -2)) (*.f64 y (*.f64 z -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (*.f64 (*.f64 y z) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (*.f64 (*.f64 y z) 4)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (+.f64 (*.f64 (*.f64 y z) 4) -1)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 -4 (*.f64 y z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 (*.f64 y z) 4))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 1 (+.f64 1 (*.f64 (*.f64 y z) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 -1 (+.f64 (*.f64 (*.f64 y z) 4) -1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 1 (*.f64 (*.f64 y z) 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -4 (*.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 z -8)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y z) 4) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 z -16)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y z) 8) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y (*.f64 z -8)) 4) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 y z) 8)) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 y (*.f64 z -8)) 4)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z -8)) 4))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z -8)) 4)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z -8)) 4))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z -8)) 4)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z -8)) 4)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z -8)) 4))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -4 (*.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (*.f64 y z) 4))))))

simplify223.0ms (6.4%)

Algorithm
egg-herbie
Rules
2448×rational.json-simplify-2
1416×rational.json-simplify-35
1308×rational.json-simplify-1
1018×exponential.json-simplify-26
942×rational.json-simplify-43
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
070411
1175411
2349411
3905411
43037411
54675411
65838411
76088411
86267411
96522411
Stop Event
node limit
Counts
27 → 30
Calls
Call 1
Inputs
(+.f64 (*.f64 -4 (*.f64 y z)) 0)
(+.f64 0 (*.f64 -4 (*.f64 y z)))
(+.f64 -2 (-.f64 1 (+.f64 (*.f64 (*.f64 y z) 4) -1)))
(+.f64 (*.f64 y (*.f64 z -2)) (*.f64 y (*.f64 z -2)))
(+.f64 -1 (-.f64 1 (*.f64 (*.f64 y z) 4)))
(+.f64 (-.f64 1 (*.f64 (*.f64 y z) 4)) -1)
(+.f64 (-.f64 1 (+.f64 (*.f64 (*.f64 y z) 4) -1)) -2)
(-.f64 (*.f64 -4 (*.f64 y z)) 0)
(-.f64 0 (*.f64 (*.f64 y z) 4))
(-.f64 1 (+.f64 1 (*.f64 (*.f64 y z) 4)))
(-.f64 -1 (+.f64 (*.f64 (*.f64 y z) 4) -1))
(-.f64 (-.f64 1 (*.f64 (*.f64 y z) 4)) 1)
(/.f64 (*.f64 -4 (*.f64 y z)) 1)
(/.f64 (*.f64 y (*.f64 z -8)) 2)
(/.f64 (*.f64 (*.f64 y z) 4) -1)
(/.f64 (*.f64 y (*.f64 z -16)) 4)
(/.f64 (*.f64 (*.f64 y z) 8) -2)
(/.f64 (*.f64 (*.f64 y (*.f64 z -8)) 4) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 y z) 8)) -4)
(/.f64 (*.f64 2 (*.f64 (*.f64 y (*.f64 z -8)) 4)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z -8)) 4))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z -8)) 4)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z -8)) 4))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z -8)) 4)))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z -8)) 4)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z -8)) 4))))))) 512)
(pow.f64 (*.f64 -4 (*.f64 y z)) 1)
(neg.f64 (*.f64 (*.f64 y z) 4))
Outputs
(+.f64 (*.f64 -4 (*.f64 y z)) 0)
(*.f64 -4 (*.f64 y z))
(+.f64 0 (*.f64 -4 (*.f64 y z)))
(*.f64 -4 (*.f64 y z))
(+.f64 -2 (-.f64 1 (+.f64 (*.f64 (*.f64 y z) 4) -1)))
(+.f64 -2 (-.f64 1 (+.f64 (*.f64 y (*.f64 z 4)) -1)))
(+.f64 (*.f64 y (*.f64 z -2)) (*.f64 y (*.f64 z -2)))
(*.f64 -4 (*.f64 y z))
(+.f64 -1 (-.f64 1 (*.f64 (*.f64 y z) 4)))
(*.f64 -4 (*.f64 y z))
(+.f64 (-.f64 1 (*.f64 (*.f64 y z) 4)) -1)
(*.f64 -4 (*.f64 y z))
(+.f64 (-.f64 1 (+.f64 (*.f64 (*.f64 y z) 4) -1)) -2)
(+.f64 -2 (-.f64 1 (+.f64 (*.f64 (*.f64 y z) 4) -1)))
(+.f64 -2 (-.f64 1 (+.f64 (*.f64 y (*.f64 z 4)) -1)))
(-.f64 (*.f64 -4 (*.f64 y z)) 0)
(*.f64 -4 (*.f64 y z))
(-.f64 0 (*.f64 (*.f64 y z) 4))
(*.f64 -4 (*.f64 y z))
(-.f64 1 (+.f64 1 (*.f64 (*.f64 y z) 4)))
(-.f64 1 (+.f64 1 (*.f64 y (*.f64 z 4))))
(-.f64 -1 (+.f64 (*.f64 (*.f64 y z) 4) -1))
(-.f64 1 (+.f64 1 (*.f64 (*.f64 y z) 4)))
(-.f64 1 (+.f64 1 (*.f64 y (*.f64 z 4))))
(-.f64 (-.f64 1 (*.f64 (*.f64 y z) 4)) 1)
(*.f64 -4 (*.f64 y z))
(/.f64 (*.f64 -4 (*.f64 y z)) 1)
(*.f64 -4 (*.f64 y z))
(/.f64 (*.f64 y (*.f64 z -8)) 2)
(*.f64 -4 (*.f64 y z))
(/.f64 (*.f64 (*.f64 y z) 4) -1)
(*.f64 -4 (*.f64 y z))
(/.f64 (*.f64 y (*.f64 z -16)) 4)
(*.f64 -4 (*.f64 y z))
(/.f64 (*.f64 (*.f64 y z) 8) -2)
(*.f64 -4 (*.f64 y z))
(/.f64 (*.f64 (*.f64 y (*.f64 z -8)) 4) 8)
(*.f64 -4 (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 (*.f64 y z) 8)) -4)
(*.f64 -4 (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 (*.f64 y (*.f64 z -8)) 4)) 16)
(*.f64 -4 (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z -8)) 4))) 32)
(*.f64 -4 (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z -8)) 4)))) 64)
(*.f64 -4 (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z -8)) 4))))) 128)
(*.f64 -4 (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z -8)) 4)))))) 256)
(*.f64 -4 (*.f64 y z))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z -8)) 4)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z -8)) 4))))))) 512)
(*.f64 -4 (*.f64 y z))
(pow.f64 (*.f64 -4 (*.f64 y z)) 1)
(*.f64 -4 (*.f64 y z))
(neg.f64 (*.f64 (*.f64 y z) 4))
(*.f64 -4 (*.f64 y z))

eval6.0ms (0.2%)

Compiler

Compiled 312 to 231 computations (26% saved)

prune41.0ms (1.2%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New29130
Fresh000
Picked011
Done011
Total29332
Error
0.0b
Counts
32 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
23.4b
(/.f64 (*.f64 y (*.f64 z -16)) 4)
0.0b
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
23.2b
(*.f64 -4 (*.f64 y z))
Compiler

Compiled 30 to 22 computations (26.7% saved)

localize8.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.2b
(*.f64 y (*.f64 z -16))
Compiler

Compiled 22 to 15 computations (31.8% saved)

series2.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
z
@0
(*.f64 y (*.f64 z -16))
0.0ms
y
@0
(*.f64 y (*.f64 z -16))
0.0ms
y
@inf
(*.f64 y (*.f64 z -16))
0.0ms
z
@inf
(*.f64 y (*.f64 z -16))
0.0ms
y
@-inf
(*.f64 y (*.f64 z -16))

rewrite241.0ms (6.9%)

Algorithm
batch-egg-rewrite
Rules
2400×rational.json-simplify-35
1454×rational.json-1
1454×rational.json-2
1216×rational.json-simplify-1
1148×exponential.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
14813
211413
323913
443313
599313
6220413
7389713
8494213
9594013
10686313
11686313
12686313
13773913
Stop Event
node limit
Counts
1 → 15
Calls
Call 1
Inputs
(*.f64 y (*.f64 z -16))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 z -16)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (*.f64 z -16)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 z -8)) (*.f64 y (*.f64 z -8)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (*.f64 z -16)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 z -16)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 y -32)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 z -64)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -128 (*.f64 y z)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 -128 (*.f64 y z))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 -128 (*.f64 y z)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 -128 (*.f64 y z))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 -128 (*.f64 y z)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 -128 (*.f64 y z))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 -128 (*.f64 y z))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 -128 (*.f64 y z)))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (*.f64 z -16)) 1)))))

simplify919.0ms (26.3%)

Algorithm
egg-herbie
Rules
4280×rational.json-simplify-35
2608×rational.json-simplify-2
1104×rational.json-simplify-53
976×rational.json-simplify-1
828×exponential.json-simplify-26
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
052507
1134507
2282507
3703507
41995507
53488507
64265507
74716507
84953507
95155507
105342507
115596507
125644507
135750507
145809507
155978507
166297507
176485507
186659507
196833507
207007507
217252507
227608507
237784507
247810507
257823507
267823507
277823507
Stop Event
node limit
Counts
39 → 17
Calls
Call 1
Inputs
(*.f64 -16 (*.f64 y z))
(*.f64 -16 (*.f64 y z))
(*.f64 -16 (*.f64 y z))
(*.f64 -16 (*.f64 y z))
(*.f64 -16 (*.f64 y z))
(*.f64 -16 (*.f64 y z))
(*.f64 -16 (*.f64 y z))
(*.f64 -16 (*.f64 y z))
(*.f64 -16 (*.f64 y z))
(*.f64 -16 (*.f64 y z))
(*.f64 -16 (*.f64 y z))
(*.f64 -16 (*.f64 y z))
(*.f64 -16 (*.f64 y z))
(*.f64 -16 (*.f64 y z))
(*.f64 -16 (*.f64 y z))
(*.f64 -16 (*.f64 y z))
(*.f64 -16 (*.f64 y z))
(*.f64 -16 (*.f64 y z))
(*.f64 -16 (*.f64 y z))
(*.f64 -16 (*.f64 y z))
(*.f64 -16 (*.f64 y z))
(*.f64 -16 (*.f64 y z))
(*.f64 -16 (*.f64 y z))
(*.f64 -16 (*.f64 y z))
(+.f64 (*.f64 y (*.f64 z -16)) 0)
(+.f64 0 (*.f64 y (*.f64 z -16)))
(+.f64 (*.f64 y (*.f64 z -8)) (*.f64 y (*.f64 z -8)))
(-.f64 (*.f64 y (*.f64 z -16)) 0)
(/.f64 (*.f64 y (*.f64 z -16)) 1)
(/.f64 (*.f64 z (*.f64 y -32)) 2)
(/.f64 (*.f64 y (*.f64 z -64)) 4)
(/.f64 (*.f64 -128 (*.f64 y z)) 8)
(/.f64 (*.f64 2 (*.f64 -128 (*.f64 y z))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 -128 (*.f64 y z)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 -128 (*.f64 y z))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 -128 (*.f64 y z)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 -128 (*.f64 y z))))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 -128 (*.f64 y z))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 -128 (*.f64 y z)))))))) 512)
(pow.f64 (*.f64 y (*.f64 z -16)) 1)
Outputs
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(+.f64 (*.f64 y (*.f64 z -16)) 0)
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(+.f64 0 (*.f64 y (*.f64 z -16)))
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(+.f64 (*.f64 y (*.f64 z -8)) (*.f64 y (*.f64 z -8)))
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(-.f64 (*.f64 y (*.f64 z -16)) 0)
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(/.f64 (*.f64 y (*.f64 z -16)) 1)
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(/.f64 (*.f64 z (*.f64 y -32)) 2)
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(/.f64 (*.f64 y (*.f64 z -64)) 4)
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(/.f64 (*.f64 -128 (*.f64 y z)) 8)
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(/.f64 (*.f64 2 (*.f64 -128 (*.f64 y z))) 16)
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 -128 (*.f64 y z)))) 32)
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 -128 (*.f64 y z))))) 64)
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 -128 (*.f64 y z)))))) 128)
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 -128 (*.f64 y z))))))) 256)
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 -128 (*.f64 y z))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 -128 (*.f64 y z)))))))) 512)
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))
(pow.f64 (*.f64 y (*.f64 z -16)) 1)
(*.f64 -16 (*.f64 y z))
(*.f64 y (*.f64 -16 z))

eval4.0ms (0.1%)

Compiler

Compiled 212 to 166 computations (21.7% saved)

prune4.0ms (0.1%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New17017
Fresh000
Picked011
Done022
Total17320
Error
0.0b
Counts
20 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
23.4b
(/.f64 (*.f64 y (*.f64 z -16)) 4)
0.0b
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
23.2b
(*.f64 -4 (*.f64 y z))
Compiler

Compiled 30 to 22 computations (26.7% saved)

regimes24.0ms (0.7%)

Counts
3 → 1
Calls
Call 1
Inputs
(*.f64 -4 (*.f64 y z))
(/.f64 (*.f64 y (*.f64 z -16)) 4)
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
Outputs
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
Calls

7 calls:

5.0ms
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
3.0ms
x
3.0ms
z
3.0ms
(*.f64 y 4)
3.0ms
(*.f64 (*.f64 y 4) z)
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1z
0.0b1(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
0.0b1(*.f64 x x)
0.0b1(*.f64 (*.f64 y 4) z)
0.0b1(*.f64 y 4)
Compiler

Compiled 68 to 48 computations (29.4% saved)

regimes11.0ms (0.3%)

Accuracy

Total -0.2b remaining (-1.1%)

Threshold costs -0.2b (-1.1%)

Counts
2 → 1
Calls
Call 1
Inputs
(*.f64 -4 (*.f64 y z))
(/.f64 (*.f64 y (*.f64 z -16)) 4)
Outputs
(*.f64 -4 (*.f64 y z))
Calls

3 calls:

4.0ms
z
3.0ms
y
3.0ms
x
Results
ErrorSegmentsBranch
23.2b1x
23.2b1y
23.2b1z
Compiler

Compiled 27 to 20 computations (25.9% saved)

simplify2.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01338
Stop Event
done
saturated
Calls
Call 1
Inputs
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
(*.f64 -4 (*.f64 y z))
Outputs
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
(*.f64 -4 (*.f64 y z))
Compiler

Compiled 20 to 14 computations (30% saved)

soundness0.0ms (0%)

end20.0ms (0.6%)

Remove

(sort y z)

Compiler

Compiled 41 to 27 computations (34.1% saved)

Profiling

Loading profile data...