Details

Time bar (total: 7.8s)

analyze1.2s (15.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
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)

sample3.1s (39.8%)

Results
3.0s8256×body256valid
114.0ms1171×body256infinite
Bogosity

preprocess95.0ms (1.2%)

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)

simplify130.0ms (1.7%)

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)

localize10.0ms (0.1%)

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)

series5.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

TimeVariablePointExpression
2.0ms
y
@-inf
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
1.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))

rewrite72.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
1766×bool.json-1
1766×bool.json-2
1738×rational.json-1
1360×bool.json-3
886×rational.json-simplify-35
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01025
19925
227225
363925
4194125
5587725
Stop Event
node limit
Counts
1 → 22
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 (*.f64 x x) (-.f64 (*.f64 y (*.f64 4 z)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 x x) (-.f64 (*.f64 y (*.f64 4 z)) 1)) -1)))) (#(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 (*.f64 2 (*.f64 4 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))))) (*.f64 2 (*.f64 4 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z)))))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (*.f64 y (*.f64 4 z)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))))))) (#(struct:change #<rule egg-rr> (2) ((x or (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))) (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))))))))

simplify124.0ms (1.6%)

Algorithm
egg-herbie
Rules
1002×rational.json-simplify-19
860×rational.json-simplify-2
828×rational.json-simplify-48
822×rational.json-simplify-1
732×rational.json-simplify-39
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0561406
11041318
22191318
34331318
412361318
533451318
647711318
762471318
Stop Event
node limit
Counts
58 → 31
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 (*.f64 x x) (-.f64 (*.f64 y (*.f64 4 z)) 1)))
(+.f64 (-.f64 (*.f64 x x) (-.f64 (*.f64 y (*.f64 4 z)) 1)) -1)
(*.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 (*.f64 2 (*.f64 4 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))))) (*.f64 2 (*.f64 4 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z)))))) 16)
(neg.f64 (-.f64 (*.f64 y (*.f64 4 z)) (*.f64 x x)))
Outputs
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 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 y (*.f64 -4 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 y (*.f64 -4 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 y (*.f64 -4 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 y (*.f64 -4 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 y (*.f64 -4 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 y (*.f64 -4 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 y (*.f64 -4 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 y (*.f64 -4 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 y (*.f64 -4 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 y (*.f64 -4 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 y (*.f64 -4 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 y (*.f64 -4 z)))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 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 y (*.f64 -4 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 y (*.f64 -4 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 y (*.f64 -4 z)))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 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 y (*.f64 -4 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 y (*.f64 -4 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 y (*.f64 -4 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 y (*.f64 -4 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 y (*.f64 -4 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 y (*.f64 -4 z)))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 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 y (*.f64 -4 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 y (*.f64 -4 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 y (*.f64 -4 z)))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 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 y (*.f64 -4 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 y (*.f64 -4 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 y (*.f64 -4 z)))
(+.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 x x) (*.f64 y (*.f64 -4 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 (*.f64 x x) (*.f64 y (*.f64 -4 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 (*.f64 x x) (*.f64 y (*.f64 -4 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 (*.f64 x x) (*.f64 y (*.f64 -4 z)))
(+.f64 -1 (-.f64 (*.f64 x x) (-.f64 (*.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 x x) (*.f64 y (*.f64 -4 z)))
(+.f64 (-.f64 (*.f64 x x) (-.f64 (*.f64 y (*.f64 4 z)) 1)) -1)
(+.f64 (*.f64 x x) (neg.f64 (*.f64 y (*.f64 z 4))))
(+.f64 (*.f64 x x) (*.f64 -4 (*.f64 y z)))
(+.f64 (*.f64 x x) (*.f64 y (*.f64 -4 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 x x) (*.f64 y (*.f64 -4 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 (*.f64 x x) (*.f64 y (*.f64 -4 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 x x) (*.f64 y (*.f64 -4 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 x x) (*.f64 y (*.f64 -4 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 x x) (*.f64 y (*.f64 -4 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 (*.f64 x x) (*.f64 y (*.f64 -4 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 x x) (*.f64 y (*.f64 -4 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 x x) (*.f64 y (*.f64 -4 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 x x) (*.f64 y (*.f64 -4 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 x x) (*.f64 y (*.f64 -4 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 x x) (*.f64 y (*.f64 -4 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 x x) (*.f64 y (*.f64 -4 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 x x) (*.f64 y (*.f64 -4 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 x x) (*.f64 y (*.f64 -4 z)))
(/.f64 (+.f64 (*.f64 2 (*.f64 4 (-.f64 (*.f64 x x) (*.f64 y (*.f64 4 z))))) (*.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 x x) (*.f64 y (*.f64 -4 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)))
(+.f64 (*.f64 x x) (*.f64 y (*.f64 -4 z)))

eval7.0ms (0.1%)

Compiler

Compiled 350 to 204 computations (41.7% saved)

prune5.0ms (0.1%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New29231
Fresh000
Picked011
Done000
Total29332
Error
0.0b
Counts
32 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
26.3b
(*.f64 y (*.f64 -4 z))
26.3b
(*.f64 -4 (*.f64 y z))
Compiler

Compiled 28 to 20 computations (28.6% saved)

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

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
z
@inf
(*.f64 -4 (*.f64 y z))
0.0ms
y
@inf
(*.f64 -4 (*.f64 y z))

rewrite100.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
1898×bool.json-1
1898×bool.json-2
1108×rational.json-1
1108×rational.json-2
1108×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
17213
221113
345913
491913
5200913
6427513
7731513
Stop Event
node limit
Counts
1 → 11
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 (*.f64 y (*.f64 z -2)) (*.f64 y (*.f64 z -2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 -4 (*.f64 y z)) 0)))) (#(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 y (*.f64 z -16)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 z z) (*.f64 -16 y)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 z z) (*.f64 -16 y))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z z) (*.f64 -16 y)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z z) (*.f64 -16 y)))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 z z) (*.f64 -16 y))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 -4 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 -4 (*.f64 y z)) (*.f64 -4 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 -4 (*.f64 y z)) (*.f64 -4 (*.f64 y z)))))))

simplify784.0ms (10%)

Algorithm
egg-herbie
Rules
6056×rational.json-simplify-35
5138×rational.json-simplify-49
1942×rational.json-simplify-2
836×rational.json-simplify-1
556×rational.json-simplify-53
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
041143
1100143
2218143
3562143
41598143
52763143
63620143
73966143
84240143
94453143
104657143
114659143
124877143
134888143
144900143
154900143
165091143
175283143
185476143
195669143
205862143
216055143
226055143
236248143
246441143
256634143
266827143
277020143
287213143
Stop Event
node limit
Counts
11 → 12
Calls
Call 1
Inputs
(+.f64 (*.f64 -4 (*.f64 y z)) 0)
(+.f64 0 (*.f64 -4 (*.f64 y z)))
(+.f64 (*.f64 y (*.f64 z -2)) (*.f64 y (*.f64 z -2)))
(-.f64 (*.f64 -4 (*.f64 y z)) 0)
(/.f64 (*.f64 -4 (*.f64 y z)) 1)
(/.f64 (*.f64 y (*.f64 z -8)) 2)
(/.f64 (*.f64 y (*.f64 z -16)) 4)
(/.f64 (*.f64 (+.f64 z z) (*.f64 -16 y)) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 z z) (*.f64 -16 y))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z z) (*.f64 -16 y)))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z z) (*.f64 -16 y)))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 z z) (*.f64 -16 y))))) 64)
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 (*.f64 y (*.f64 z -2)) (*.f64 y (*.f64 z -2)))
(*.f64 -4 (*.f64 y z))
(-.f64 (*.f64 -4 (*.f64 y z)) 0)
(*.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 y (*.f64 z -16)) 4)
(*.f64 -4 (*.f64 y z))
(/.f64 (*.f64 (+.f64 z z) (*.f64 -16 y)) 8)
(*.f64 -4 (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 (+.f64 z z) (*.f64 -16 y))) 16)
(*.f64 -4 (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z z) (*.f64 -16 y)))) 32)
(*.f64 -4 (*.f64 y z))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z z) (*.f64 -16 y)))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 z z) (*.f64 -16 y))))) 64)
(*.f64 -4 (*.f64 y z))

localize6.0ms (0.1%)

Compiler

Compiled 14 to 9 computations (35.7% saved)

eval2.0ms (0%)

Compiler

Compiled 119 to 78 computations (34.5% saved)

prune5.0ms (0.1%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New11112
Fresh000
Picked011
Done022
Total11415
Error
0.0b
Counts
15 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
26.6b
(/.f64 (*.f64 y (*.f64 z -8)) 2)
0.0b
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
26.3b
(*.f64 y (*.f64 -4 z))
26.3b
(*.f64 -4 (*.f64 y z))
Compiler

Compiled 38 to 28 computations (26.3% saved)

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.2b
(/.f64 (*.f64 y (*.f64 z -8)) 2)
Compiler

Compiled 22 to 15 computations (31.8% saved)

series0.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
y
@0
(/.f64 (*.f64 y (*.f64 z -8)) 2)
0.0ms
z
@-inf
(/.f64 (*.f64 y (*.f64 z -8)) 2)
0.0ms
y
@inf
(/.f64 (*.f64 y (*.f64 z -8)) 2)
0.0ms
z
@inf
(/.f64 (*.f64 y (*.f64 z -8)) 2)
0.0ms
y
@-inf
(/.f64 (*.f64 y (*.f64 z -8)) 2)

rewrite83.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
1492×bool.json-1
1492×bool.json-2
1436×rational.json-1
1436×rational.json-2
1436×rational.json-4
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0919
19619
229413
367313
4150213
5328713
6595913
Stop Event
node limit
Counts
1 → 97
Calls
Call 1
Inputs
(/.f64 (*.f64 y (*.f64 z -8)) 2)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 y -4)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (*.f64 y -4)))))) (#(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 (*.f64 z (*.f64 y -4)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (*.f64 z -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z (*.f64 y -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -8 (*.f64 y (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z -8) (*.f64 y 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (*.f64 z -8)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 y (*.f64 z -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (*.f64 y -4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 z (*.f64 y -4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (*.f64 y -16)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 y (*.f64 z -8)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (*.f64 y 1/2) (*.f64 z -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (*.f64 y 1/4) (*.f64 z -4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (*.f64 z -4) (*.f64 y 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (/.f64 (*.f64 z -2) 2) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (/.f64 y 8) (*.f64 z -8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (*.f64 y -2) (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y -8) (*.f64 z 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 1/2) (*.f64 z -8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (*.f64 z -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y z) -32) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (/.f64 (*.f64 z -2) 2) (*.f64 y 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (/.f64 y 8) (*.f64 z -4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (*.f64 z -2) (*.f64 y 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (/.f64 (*.f64 z -8) 16) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (/.f64 y 16) (*.f64 z -8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (*.f64 y 1/4) (*.f64 z -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z -16) (*.f64 y 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z z) (*.f64 y -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z z) (*.f64 (*.f64 y 1/2) -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y z) -4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 y (*.f64 z -8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z 1/2) (*.f64 y -8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z -4) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 z (*.f64 y -16)) 4) 1/16)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 4) (/.f64 (*.f64 z -2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 4) (*.f64 1/4 (*.f64 z -4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 4) (*.f64 1/8 (*.f64 z -8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 4) (*.f64 1/2 (*.f64 z -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 4) (*.f64 -2 (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y -16) (*.f64 z 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z -32) (/.f64 y 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z -32) (*.f64 (*.f64 y 1/2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z -32) (*.f64 1/2 (*.f64 y 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z -32) (*.f64 1/8 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z 4) (/.f64 (*.f64 y -8) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z 4) (*.f64 (*.f64 y 1/2) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z 4) (*.f64 -4 (*.f64 y 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z 4) (*.f64 -1 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y -4) z)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (*.f64 z 1/2)) -8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (+.f64 y y)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -4 (*.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 1/4) (*.f64 z -16))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z -2) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 z (*.f64 y -16)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -16 (/.f64 (*.f64 y z) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -16 (*.f64 (*.f64 y 1/2) (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -16 (*.f64 z (*.f64 y 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -16 (*.f64 y (*.f64 z 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 y 4)) (*.f64 1/8 (*.f64 z -4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 y 4)) (*.f64 1/16 (*.f64 z -8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 y 4)) (*.f64 1/4 (*.f64 z -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 z -32)) (*.f64 1/8 (*.f64 y 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 z -32)) (*.f64 1/4 (*.f64 y 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 z -32)) (*.f64 1/16 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 y -16)) (/.f64 z 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 y -16)) (*.f64 1/4 (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 z (+.f64 y y))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z 1/4) (*.f64 y -16))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (*.f64 z (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y -2) (+.f64 z z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (*.f64 z -2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (*.f64 y z) -32))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 y (*.f64 z -8)) 8) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y 8) (*.f64 z -32))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 y z) 4) -16)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 z -2) 2) (*.f64 y 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 z 8) (*.f64 2 (*.f64 y -16)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 2 (*.f64 z (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 y -8) 8) (*.f64 z 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/16 (*.f64 (*.f64 z (*.f64 y -16)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -32 (*.f64 (*.f64 y 1/2) (*.f64 z 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -32 (*.f64 (*.f64 y 1/4) (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -32 (*.f64 (*.f64 z 1/2) (*.f64 y 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -32 (*.f64 (/.f64 z 8) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y 1/2) (*.f64 z 1/4)) -32)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y 1/2) (*.f64 z 1/2)) -16)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y 1/2) 1/4) (*.f64 z -32))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y 1/2) -4) (+.f64 z z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (*.f64 z 1/4)) -16)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y 1/2) (*.f64 z -2)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y 1/2) -2) (*.f64 z 4))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 2 (*.f64 z (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 z (*.f64 y -4))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 z (*.f64 y -4)) (*.f64 z (*.f64 y -4)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 z (*.f64 y -4)) (*.f64 z (*.f64 y -4)))))))

simplify362.0ms (4.6%)

Algorithm
egg-herbie
Rules
3900×rational.json-simplify-35
2052×rational.json-simplify-53
1996×rational.json-simplify-2
1320×rational.json-simplify-1
1008×rational.json-simplify-41
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01921573
14751573
210161573
314451573
422411573
526631573
638691573
742481573
846041573
946091573
1060791573
1160841573
1265091573
1365241573
1468401573
1571551573
1674671573
1777791573
Stop Event
node limit
Counts
121 → 98
Calls
Call 1
Inputs
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(+.f64 (*.f64 z (*.f64 y -4)) 0)
(+.f64 0 (*.f64 z (*.f64 y -4)))
(+.f64 (*.f64 y (*.f64 z -2)) (*.f64 y (*.f64 z -2)))
(-.f64 (*.f64 z (*.f64 y -4)) 0)
(*.f64 y (*.f64 z -4))
(*.f64 z (*.f64 y -4))
(*.f64 -8 (*.f64 y (*.f64 z 1/2)))
(*.f64 (*.f64 z -8) (*.f64 y 1/2))
(*.f64 (*.f64 y (*.f64 z -8)) 1/2)
(*.f64 2 (*.f64 y (*.f64 z -2)))
(*.f64 (*.f64 z (*.f64 y -4)) 1)
(*.f64 1 (*.f64 z (*.f64 y -4)))
(*.f64 (*.f64 z (*.f64 y -16)) 1/4)
(*.f64 4 (/.f64 (*.f64 y (*.f64 z -8)) 8))
(*.f64 4 (*.f64 (*.f64 y 1/2) (*.f64 z -2)))
(*.f64 4 (*.f64 (*.f64 y 1/4) (*.f64 z -4)))
(*.f64 4 (*.f64 (*.f64 z -4) (*.f64 y 1/4)))
(*.f64 4 (*.f64 (/.f64 (*.f64 z -2) 2) y))
(*.f64 4 (*.f64 (/.f64 y 8) (*.f64 z -8)))
(*.f64 4 (*.f64 (*.f64 y -2) (*.f64 z 1/2)))
(*.f64 (*.f64 y -8) (*.f64 z 1/2))
(*.f64 (*.f64 y 1/2) (*.f64 z -8))
(*.f64 (+.f64 y y) (*.f64 z -2))
(*.f64 (*.f64 (*.f64 y z) -32) 1/8)
(*.f64 8 (*.f64 (/.f64 (*.f64 z -2) 2) (*.f64 y 1/2)))
(*.f64 8 (*.f64 (/.f64 y 8) (*.f64 z -4)))
(*.f64 8 (*.f64 (*.f64 z -2) (*.f64 y 1/4)))
(*.f64 8 (*.f64 (/.f64 (*.f64 z -8) 16) y))
(*.f64 8 (*.f64 (/.f64 y 16) (*.f64 z -8)))
(*.f64 8 (*.f64 (*.f64 y 1/4) (*.f64 z -2)))
(*.f64 (*.f64 z -16) (*.f64 y 1/4))
(*.f64 (+.f64 z z) (*.f64 y -2))
(*.f64 (+.f64 z z) (*.f64 (*.f64 y 1/2) -4))
(*.f64 (*.f64 y z) -4)
(*.f64 1/2 (*.f64 y (*.f64 z -8)))
(*.f64 (*.f64 z 1/2) (*.f64 y -8))
(*.f64 (*.f64 z -4) y)
(*.f64 (*.f64 (*.f64 z (*.f64 y -16)) 4) 1/16)
(*.f64 (*.f64 y 4) (/.f64 (*.f64 z -2) 2))
(*.f64 (*.f64 y 4) (*.f64 1/4 (*.f64 z -4)))
(*.f64 (*.f64 y 4) (*.f64 1/8 (*.f64 z -8)))
(*.f64 (*.f64 y 4) (*.f64 1/2 (*.f64 z -2)))
(*.f64 (*.f64 y 4) (*.f64 -2 (*.f64 z 1/2)))
(*.f64 (*.f64 y -16) (*.f64 z 1/4))
(*.f64 (*.f64 z -32) (/.f64 y 8))
(*.f64 (*.f64 z -32) (*.f64 (*.f64 y 1/2) 1/4))
(*.f64 (*.f64 z -32) (*.f64 1/2 (*.f64 y 1/4)))
(*.f64 (*.f64 z -32) (*.f64 1/8 y))
(*.f64 (*.f64 z 4) (/.f64 (*.f64 y -8) 8))
(*.f64 (*.f64 z 4) (*.f64 (*.f64 y 1/2) -2))
(*.f64 (*.f64 z 4) (*.f64 -4 (*.f64 y 1/4)))
(*.f64 (*.f64 z 4) (*.f64 -1 y))
(*.f64 (*.f64 y -4) z)
(*.f64 (*.f64 y (*.f64 z 1/2)) -8)
(*.f64 (*.f64 z (+.f64 y y)) -2)
(*.f64 -4 (*.f64 y z))
(*.f64 (*.f64 y 1/4) (*.f64 z -16))
(*.f64 (*.f64 z -2) (+.f64 y y))
(*.f64 1/4 (*.f64 z (*.f64 y -16)))
(*.f64 -16 (/.f64 (*.f64 y z) 4))
(*.f64 -16 (*.f64 (*.f64 y 1/2) (*.f64 z 1/2)))
(*.f64 -16 (*.f64 z (*.f64 y 1/4)))
(*.f64 -16 (*.f64 y (*.f64 z 1/4)))
(*.f64 (*.f64 2 (*.f64 y 4)) (*.f64 1/8 (*.f64 z -4)))
(*.f64 (*.f64 2 (*.f64 y 4)) (*.f64 1/16 (*.f64 z -8)))
(*.f64 (*.f64 2 (*.f64 y 4)) (*.f64 1/4 (*.f64 z -2)))
(*.f64 (*.f64 2 (*.f64 z -32)) (*.f64 1/8 (*.f64 y 1/2)))
(*.f64 (*.f64 2 (*.f64 z -32)) (*.f64 1/4 (*.f64 y 1/4)))
(*.f64 (*.f64 2 (*.f64 z -32)) (*.f64 1/16 y))
(*.f64 (*.f64 2 (*.f64 y -16)) (/.f64 z 8))
(*.f64 (*.f64 2 (*.f64 y -16)) (*.f64 1/4 (*.f64 z 1/2)))
(*.f64 (*.f64 2 (*.f64 z (+.f64 y y))) -1)
(*.f64 (*.f64 z 1/4) (*.f64 y -16))
(*.f64 -2 (*.f64 z (+.f64 y y)))
(*.f64 (*.f64 y -2) (+.f64 z z))
(*.f64 (*.f64 y (*.f64 z -2)) 2)
(*.f64 1/8 (*.f64 (*.f64 y z) -32))
(*.f64 (/.f64 (*.f64 y (*.f64 z -8)) 8) 4)
(*.f64 (/.f64 y 8) (*.f64 z -32))
(*.f64 (/.f64 (*.f64 y z) 4) -16)
(*.f64 (/.f64 (*.f64 z -2) 2) (*.f64 y 4))
(*.f64 (/.f64 z 8) (*.f64 2 (*.f64 y -16)))
(*.f64 -1 (*.f64 2 (*.f64 z (+.f64 y y))))
(*.f64 (/.f64 (*.f64 y -8) 8) (*.f64 z 4))
(*.f64 1/16 (*.f64 (*.f64 z (*.f64 y -16)) 4))
(*.f64 -32 (*.f64 (*.f64 y 1/2) (*.f64 z 1/4)))
(*.f64 -32 (*.f64 (*.f64 y 1/4) (*.f64 z 1/2)))
(*.f64 -32 (*.f64 (*.f64 z 1/2) (*.f64 y 1/4)))
(*.f64 -32 (*.f64 (/.f64 z 8) y))
(*.f64 (*.f64 (*.f64 y 1/2) (*.f64 z 1/4)) -32)
(*.f64 (*.f64 (*.f64 y 1/2) (*.f64 z 1/2)) -16)
(*.f64 (*.f64 (*.f64 y 1/2) 1/4) (*.f64 z -32))
(*.f64 (*.f64 (*.f64 y 1/2) -4) (+.f64 z z))
(*.f64 (*.f64 y (*.f64 z 1/4)) -16)
(*.f64 (*.f64 (*.f64 y 1/2) (*.f64 z -2)) 4)
(*.f64 (*.f64 (*.f64 y 1/2) -2) (*.f64 z 4))
(neg.f64 (*.f64 2 (*.f64 z (+.f64 y y))))
Outputs
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(+.f64 (*.f64 z (*.f64 y -4)) 0)
(*.f64 y (*.f64 -4 z))
(+.f64 0 (*.f64 z (*.f64 y -4)))
(*.f64 y (*.f64 -4 z))
(+.f64 (*.f64 y (*.f64 z -2)) (*.f64 y (*.f64 z -2)))
(*.f64 y (*.f64 -4 z))
(-.f64 (*.f64 z (*.f64 y -4)) 0)
(*.f64 y (*.f64 -4 z))
(*.f64 y (*.f64 z -4))
(*.f64 y (*.f64 -4 z))
(*.f64 z (*.f64 y -4))
(*.f64 y (*.f64 -4 z))
(*.f64 -8 (*.f64 y (*.f64 z 1/2)))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 z -8) (*.f64 y 1/2))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 y (*.f64 z -8)) 1/2)
(*.f64 y (*.f64 -4 z))
(*.f64 2 (*.f64 y (*.f64 z -2)))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 z (*.f64 y -4)) 1)
(*.f64 y (*.f64 -4 z))
(*.f64 1 (*.f64 z (*.f64 y -4)))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 z (*.f64 y -16)) 1/4)
(*.f64 y (*.f64 -4 z))
(*.f64 4 (/.f64 (*.f64 y (*.f64 z -8)) 8))
(*.f64 y (*.f64 -4 z))
(*.f64 4 (*.f64 (*.f64 y 1/2) (*.f64 z -2)))
(*.f64 y (*.f64 -4 z))
(*.f64 4 (*.f64 (*.f64 y 1/4) (*.f64 z -4)))
(*.f64 y (*.f64 -4 z))
(*.f64 4 (*.f64 (*.f64 z -4) (*.f64 y 1/4)))
(*.f64 y (*.f64 -4 z))
(*.f64 4 (*.f64 (/.f64 (*.f64 z -2) 2) y))
(*.f64 y (*.f64 -4 z))
(*.f64 4 (*.f64 (/.f64 y 8) (*.f64 z -8)))
(*.f64 y (*.f64 -4 z))
(*.f64 4 (*.f64 (*.f64 y -2) (*.f64 z 1/2)))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 y -8) (*.f64 z 1/2))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 y 1/2) (*.f64 z -8))
(*.f64 y (*.f64 -4 z))
(*.f64 (+.f64 y y) (*.f64 z -2))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 (*.f64 y z) -32) 1/8)
(*.f64 y (*.f64 -4 z))
(*.f64 8 (*.f64 (/.f64 (*.f64 z -2) 2) (*.f64 y 1/2)))
(*.f64 y (*.f64 -4 z))
(*.f64 8 (*.f64 (/.f64 y 8) (*.f64 z -4)))
(*.f64 y (*.f64 -4 z))
(*.f64 8 (*.f64 (*.f64 z -2) (*.f64 y 1/4)))
(*.f64 y (*.f64 -4 z))
(*.f64 8 (*.f64 (/.f64 (*.f64 z -8) 16) y))
(*.f64 y (*.f64 -4 z))
(*.f64 8 (*.f64 (/.f64 y 16) (*.f64 z -8)))
(*.f64 y (*.f64 -4 z))
(*.f64 8 (*.f64 (*.f64 y 1/4) (*.f64 z -2)))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 z -16) (*.f64 y 1/4))
(*.f64 y (*.f64 -4 z))
(*.f64 (+.f64 z z) (*.f64 y -2))
(*.f64 y (*.f64 -4 z))
(*.f64 (+.f64 z z) (*.f64 (*.f64 y 1/2) -4))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 y z) -4)
(*.f64 y (*.f64 -4 z))
(*.f64 1/2 (*.f64 y (*.f64 z -8)))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 z 1/2) (*.f64 y -8))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 z -4) y)
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 (*.f64 z (*.f64 y -16)) 4) 1/16)
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 y 4) (/.f64 (*.f64 z -2) 2))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 y 4) (*.f64 1/4 (*.f64 z -4)))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 y 4) (*.f64 1/8 (*.f64 z -8)))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 y 4) (*.f64 1/2 (*.f64 z -2)))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 y 4) (*.f64 -2 (*.f64 z 1/2)))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 y -16) (*.f64 z 1/4))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 z -32) (/.f64 y 8))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 z -32) (*.f64 (*.f64 y 1/2) 1/4))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 z -32) (*.f64 1/2 (*.f64 y 1/4)))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 z -32) (*.f64 1/8 y))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 z 4) (/.f64 (*.f64 y -8) 8))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 z 4) (*.f64 (*.f64 y 1/2) -2))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 z 4) (*.f64 -4 (*.f64 y 1/4)))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 z 4) (*.f64 -1 y))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 y -4) z)
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 y (*.f64 z 1/2)) -8)
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 z (+.f64 y y)) -2)
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 y 1/4) (*.f64 z -16))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 z -2) (+.f64 y y))
(*.f64 y (*.f64 -4 z))
(*.f64 1/4 (*.f64 z (*.f64 y -16)))
(*.f64 y (*.f64 -4 z))
(*.f64 -16 (/.f64 (*.f64 y z) 4))
(*.f64 y (*.f64 -4 z))
(*.f64 -16 (*.f64 (*.f64 y 1/2) (*.f64 z 1/2)))
(*.f64 y (*.f64 -4 z))
(*.f64 -16 (*.f64 z (*.f64 y 1/4)))
(*.f64 y (*.f64 -4 z))
(*.f64 -16 (*.f64 y (*.f64 z 1/4)))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 2 (*.f64 y 4)) (*.f64 1/8 (*.f64 z -4)))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 2 (*.f64 y 4)) (*.f64 1/16 (*.f64 z -8)))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 2 (*.f64 y 4)) (*.f64 1/4 (*.f64 z -2)))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 2 (*.f64 z -32)) (*.f64 1/8 (*.f64 y 1/2)))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 2 (*.f64 z -32)) (*.f64 1/4 (*.f64 y 1/4)))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 2 (*.f64 z -32)) (*.f64 1/16 y))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 2 (*.f64 y -16)) (/.f64 z 8))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 2 (*.f64 y -16)) (*.f64 1/4 (*.f64 z 1/2)))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 2 (*.f64 z (+.f64 y y))) -1)
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 z 1/4) (*.f64 y -16))
(*.f64 y (*.f64 -4 z))
(*.f64 -2 (*.f64 z (+.f64 y y)))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 y -2) (+.f64 z z))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 y (*.f64 z -2)) 2)
(*.f64 y (*.f64 -4 z))
(*.f64 1/8 (*.f64 (*.f64 y z) -32))
(*.f64 y (*.f64 -4 z))
(*.f64 (/.f64 (*.f64 y (*.f64 z -8)) 8) 4)
(*.f64 y (*.f64 -4 z))
(*.f64 (/.f64 y 8) (*.f64 z -32))
(*.f64 y (*.f64 -4 z))
(*.f64 (/.f64 (*.f64 y z) 4) -16)
(*.f64 y (*.f64 -4 z))
(*.f64 (/.f64 (*.f64 z -2) 2) (*.f64 y 4))
(*.f64 y (*.f64 -4 z))
(*.f64 (/.f64 z 8) (*.f64 2 (*.f64 y -16)))
(*.f64 y (*.f64 -4 z))
(*.f64 -1 (*.f64 2 (*.f64 z (+.f64 y y))))
(*.f64 y (*.f64 -4 z))
(*.f64 (/.f64 (*.f64 y -8) 8) (*.f64 z 4))
(*.f64 y (*.f64 -4 z))
(*.f64 1/16 (*.f64 (*.f64 z (*.f64 y -16)) 4))
(*.f64 y (*.f64 -4 z))
(*.f64 -32 (*.f64 (*.f64 y 1/2) (*.f64 z 1/4)))
(*.f64 y (*.f64 -4 z))
(*.f64 -32 (*.f64 (*.f64 y 1/4) (*.f64 z 1/2)))
(*.f64 y (*.f64 -4 z))
(*.f64 -32 (*.f64 (*.f64 z 1/2) (*.f64 y 1/4)))
(*.f64 y (*.f64 -4 z))
(*.f64 -32 (*.f64 (/.f64 z 8) y))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 (*.f64 y 1/2) (*.f64 z 1/4)) -32)
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 (*.f64 y 1/2) (*.f64 z 1/2)) -16)
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 (*.f64 y 1/2) 1/4) (*.f64 z -32))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 (*.f64 y 1/2) -4) (+.f64 z z))
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 y (*.f64 z 1/4)) -16)
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 (*.f64 y 1/2) (*.f64 z -2)) 4)
(*.f64 y (*.f64 -4 z))
(*.f64 (*.f64 (*.f64 y 1/2) -2) (*.f64 z 4))
(*.f64 y (*.f64 -4 z))
(neg.f64 (*.f64 2 (*.f64 z (+.f64 y y))))
(*.f64 y (*.f64 -4 z))

eval18.0ms (0.2%)

Compiler

Compiled 794 to 567 computations (28.6% saved)

prune16.0ms (0.2%)

Pruning

5 alts after pruning (2 fresh and 3 done)

PrunedKeptTotal
New96298
Fresh000
Picked101
Done033
Total975102
Error
0.0b
Counts
102 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
26.3b
(*.f64 (*.f64 y (*.f64 z 1/4)) -16)
26.3b
(*.f64 y (*.f64 -4 z))
26.3b
(*.f64 -4 (*.f64 y z))
26.3b
(*.f64 -32 (*.f64 (/.f64 z 8) y))
Compiler

Compiled 48 to 36 computations (25% saved)

localize9.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(*.f64 -32 (*.f64 (/.f64 z 8) y))
Compiler

Compiled 22 to 15 computations (31.8% saved)

series0.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
z
@0
(*.f64 -32 (*.f64 (/.f64 z 8) y))
0.0ms
z
@inf
(*.f64 -32 (*.f64 (/.f64 z 8) y))
0.0ms
z
@-inf
(*.f64 -32 (*.f64 (/.f64 z 8) y))
0.0ms
y
@inf
(*.f64 -32 (*.f64 (/.f64 z 8) y))
0.0ms
y
@-inf
(*.f64 -32 (*.f64 (/.f64 z 8) y))

rewrite81.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
1614×bool.json-1
1614×bool.json-2
1530×rational.json-1
1530×rational.json-2
1090×bool.json-3
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0919
19419
227413
359813
4127813
5304113
6648313
Stop Event
node limit
Counts
1 → 10
Calls
Call 1
Inputs
(*.f64 -32 (*.f64 (/.f64 z 8) y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 y -4)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (*.f64 y -4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 y -2)) (*.f64 z (*.f64 y -2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (*.f64 y -4)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 y -4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 y -8)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 y -16)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -32 (*.f64 z y)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 y -64)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 z (*.f64 y -64)) (*.f64 z (*.f64 y -64))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 z (*.f64 y -4))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 z (*.f64 y -4)) (*.f64 z (*.f64 y -4)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 z (*.f64 y -4)) (*.f64 z (*.f64 y -4)))))))

simplify733.0ms (9.4%)

Algorithm
egg-herbie
Rules
4022×rational.json-simplify-2
3038×rational.json-simplify-35
2146×rational.json-simplify-53
940×rational.json-simplify-43
800×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
042442
195442
2185442
3403442
41028442
52993442
63495442
73633442
83725442
93811442
103895442
115169442
125255442
135338442
145419442
155502442
165585442
175585442
186887442
197521442
207619442
217717442
227809442
237901442
247993442
Stop Event
node limit
Counts
34 → 13
Calls
Call 1
Inputs
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(+.f64 (*.f64 z (*.f64 y -4)) 0)
(+.f64 0 (*.f64 z (*.f64 y -4)))
(+.f64 (*.f64 z (*.f64 y -2)) (*.f64 z (*.f64 y -2)))
(-.f64 (*.f64 z (*.f64 y -4)) 0)
(/.f64 (*.f64 z (*.f64 y -4)) 1)
(/.f64 (*.f64 z (*.f64 y -8)) 2)
(/.f64 (*.f64 z (*.f64 y -16)) 4)
(/.f64 (*.f64 -32 (*.f64 z y)) 8)
(/.f64 (*.f64 z (*.f64 y -64)) 16)
(/.f64 (+.f64 (*.f64 z (*.f64 y -64)) (*.f64 z (*.f64 y -64))) 32)
Outputs
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 z -4))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 z -4))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 z -4))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 z -4))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 z -4))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 z -4))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 z -4))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 z -4))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 z -4))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 z -4))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 z -4))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 z -4))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 z -4))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 z -4))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 z -4))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 z -4))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 z -4))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 z -4))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 z -4))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 z -4))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 z -4))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 z -4))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 z -4))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 z -4))
(*.f64 y (*.f64 -4 z))
(+.f64 (*.f64 z (*.f64 y -4)) 0)
(*.f64 y (*.f64 z -4))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(+.f64 0 (*.f64 z (*.f64 y -4)))
(*.f64 y (*.f64 z -4))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(+.f64 (*.f64 z (*.f64 y -2)) (*.f64 z (*.f64 y -2)))
(*.f64 y (*.f64 z -4))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(-.f64 (*.f64 z (*.f64 y -4)) 0)
(*.f64 y (*.f64 z -4))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(/.f64 (*.f64 z (*.f64 y -4)) 1)
(*.f64 y (*.f64 z -4))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(/.f64 (*.f64 z (*.f64 y -8)) 2)
(*.f64 y (*.f64 z -4))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(/.f64 (*.f64 z (*.f64 y -16)) 4)
(*.f64 y (*.f64 z -4))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(/.f64 (*.f64 -32 (*.f64 z y)) 8)
(*.f64 y (*.f64 z -4))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(/.f64 (*.f64 z (*.f64 y -64)) 16)
(*.f64 y (*.f64 z -4))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(/.f64 (+.f64 (*.f64 z (*.f64 y -64)) (*.f64 z (*.f64 y -64))) 32)
(*.f64 y (*.f64 z -4))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))

localize9.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (*.f64 y (*.f64 z 1/4)) -16)
Compiler

Compiled 22 to 15 computations (31.8% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
y
@0
(*.f64 (*.f64 y (*.f64 z 1/4)) -16)
0.0ms
z
@-inf
(*.f64 (*.f64 y (*.f64 z 1/4)) -16)
0.0ms
y
@inf
(*.f64 (*.f64 y (*.f64 z 1/4)) -16)
0.0ms
z
@inf
(*.f64 (*.f64 y (*.f64 z 1/4)) -16)
0.0ms
y
@-inf
(*.f64 (*.f64 y (*.f64 z 1/4)) -16)

rewrite76.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
1568×bool.json-1
1568×bool.json-2
1506×rational.json-1
1506×rational.json-2
1122×bool.json-3
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0919
19119
225319
356813
4121313
5285113
6595913
Stop Event
node limit
Counts
1 → 10
Calls
Call 1
Inputs
(*.f64 (*.f64 y (*.f64 z 1/4)) -16)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 z -4)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (*.f64 z -4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (/.f64 (*.f64 z -4) 2)) (*.f64 y (/.f64 (*.f64 z -4) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (*.f64 z -4)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 z -4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 z -8)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 y -16)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 y -32)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 z (*.f64 y -32))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 z (*.f64 y -32))) (*.f64 2 (*.f64 z (*.f64 y -32)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 y (*.f64 z -4))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 y (*.f64 z -4)) (*.f64 y (*.f64 z -4)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 y (*.f64 z -4)) (*.f64 y (*.f64 z -4)))))))

simplify510.0ms (6.5%)

Algorithm
egg-herbie
Rules
3364×rational.json-simplify-2
3146×rational.json-simplify-35
3124×rational.json-simplify-53
1148×rational.json-simplify-51
1008×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
039442
193442
2199442
3453442
41181442
52833442
63853442
74061442
84241442
94390442
104539442
115477442
126184442
136203442
146204442
156204442
166349442
176496442
186643442
197228442
Stop Event
node limit
Counts
34 → 12
Calls
Call 1
Inputs
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(*.f64 -4 (*.f64 y z))
(+.f64 (*.f64 y (*.f64 z -4)) 0)
(+.f64 0 (*.f64 y (*.f64 z -4)))
(+.f64 (*.f64 y (/.f64 (*.f64 z -4) 2)) (*.f64 y (/.f64 (*.f64 z -4) 2)))
(-.f64 (*.f64 y (*.f64 z -4)) 0)
(/.f64 (*.f64 y (*.f64 z -4)) 1)
(/.f64 (*.f64 y (*.f64 z -8)) 2)
(/.f64 (*.f64 z (*.f64 y -16)) 4)
(/.f64 (*.f64 z (*.f64 y -32)) 8)
(/.f64 (*.f64 2 (*.f64 z (*.f64 y -32))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 z (*.f64 y -32))) (*.f64 2 (*.f64 z (*.f64 y -32)))) 32)
Outputs
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(+.f64 (*.f64 y (*.f64 z -4)) 0)
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(+.f64 0 (*.f64 y (*.f64 z -4)))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(+.f64 (*.f64 y (/.f64 (*.f64 z -4) 2)) (*.f64 y (/.f64 (*.f64 z -4) 2)))
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(-.f64 (*.f64 y (*.f64 z -4)) 0)
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(/.f64 (*.f64 y (*.f64 z -4)) 1)
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(/.f64 (*.f64 y (*.f64 z -8)) 2)
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(/.f64 (*.f64 z (*.f64 y -16)) 4)
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(/.f64 (*.f64 z (*.f64 y -32)) 8)
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 z (*.f64 y -32))) 16)
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))
(/.f64 (+.f64 (*.f64 2 (*.f64 z (*.f64 y -32))) (*.f64 2 (*.f64 z (*.f64 y -32)))) 32)
(*.f64 y (*.f64 -4 z))
(*.f64 -4 (*.f64 y z))

eval4.0ms (0.1%)

Compiler

Compiled 198 to 139 computations (29.8% saved)

prune5.0ms (0.1%)

Pruning

5 alts after pruning (0 fresh and 5 done)

PrunedKeptTotal
New25025
Fresh000
Picked011
Done044
Total25530
Error
0.0b
Counts
30 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
26.3b
(*.f64 (*.f64 y (*.f64 z 1/4)) -16)
26.3b
(*.f64 y (*.f64 -4 z))
26.3b
(*.f64 -4 (*.f64 y z))
26.3b
(*.f64 -32 (*.f64 (/.f64 z 8) y))
Compiler

Compiled 48 to 36 computations (25% saved)

regimes204.0ms (2.6%)

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

7 calls:

175.0ms
x
5.0ms
y
5.0ms
(-.f64 (*.f64 x x) (*.f64 (*.f64 y 4) z))
4.0ms
(*.f64 y 4)
4.0ms
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 87 to 61 computations (29.9% saved)

regimes28.0ms (0.4%)

Accuracy

Total -0.3b remaining (-1%)

Threshold costs -0.3b (-1%)

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

3 calls:

18.0ms
y
4.0ms
z
4.0ms
x
Results
ErrorSegmentsBranch
26.3b1x
26.3b1y
26.3b1z
Compiler

Compiled 46 to 33 computations (28.3% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

Compiled 28 to 20 computations (28.6% saved)

soundness0.0ms (0%)

end23.0ms (0.3%)

Remove

(sort y z)

Compiler

Compiled 46 to 30 computations (34.8% saved)

Profiling

Loading profile data...