Details

Time bar (total: 4.9s)

analyze284.0ms (5.8%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.8%0.2%0%0%0%0
0%0%99.8%0.2%0%0%0%1
0%0%99.8%0.2%0%0%0%2
0%0%99.8%0.2%0%0%0%3
0%0%99.8%0.2%0%0%0%4
0%0%99.8%0.2%0%0%0%5
0%0%99.8%0.2%0%0%0%6
0%0%99.8%0.2%0%0%0%7
0%0%99.8%0.2%0%0%0%8
6.3%6.2%93.6%0.2%0%0%0%9
9.4%9.4%90.4%0.2%0%0%0%10
11.8%10.9%81.9%0.2%7%0%0%11
17.1%15.6%75.4%0.2%8.8%0%0%12
Compiler

Compiled 14 to 9 computations (35.7% saved)

sample1.1s (22.2%)

Results
825.0ms8256×body256valid
237.0ms2304×body256infinite
Bogosity

preprocess15.0ms (0.3%)

Algorithm
egg-herbie
Rules
28×rational.json-simplify-1
24×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
033175
160175
044
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
2
3
Outputs
0
1
2
3
Call 2
Inputs
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
(+.f64 (*.f64 (+.f64 (*.f64 y x) z) x) t)
(+.f64 (*.f64 (+.f64 (*.f64 z y) x) y) t)
(+.f64 (*.f64 (+.f64 (*.f64 t y) z) y) x)
(+.f64 (*.f64 (+.f64 (*.f64 x z) y) z) t)
(+.f64 (*.f64 (+.f64 (*.f64 x t) z) t) y)
(+.f64 (*.f64 (+.f64 (*.f64 x y) t) y) z)
Outputs
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
(+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t)
(+.f64 (*.f64 (+.f64 (*.f64 y x) z) x) t)
(+.f64 t (*.f64 x (+.f64 (*.f64 x y) z)))
(+.f64 (*.f64 (+.f64 (*.f64 z y) x) y) t)
(+.f64 t (*.f64 y (+.f64 x (*.f64 y z))))
(+.f64 (*.f64 (+.f64 (*.f64 t y) z) y) x)
(+.f64 x (*.f64 y (+.f64 z (*.f64 y t))))
(+.f64 (*.f64 (+.f64 (*.f64 x z) y) z) t)
(+.f64 t (*.f64 z (+.f64 y (*.f64 x z))))
(+.f64 (*.f64 (+.f64 (*.f64 x t) z) t) y)
(+.f64 y (*.f64 t (+.f64 z (*.f64 x t))))
(+.f64 (*.f64 (+.f64 (*.f64 x y) t) y) z)
(+.f64 z (*.f64 y (+.f64 (*.f64 x y) t)))
Compiler

Compiled 17 to 12 computations (29.4% saved)

simplify9.0ms (0.2%)

Algorithm
egg-herbie
Rules
rational.json-simplify-2
rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01025
11425
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
Outputs
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
(+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t)

eval0.0ms (0%)

Compiler

Compiled 22 to 10 computations (54.5% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
0.1b
Counts
3 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
Compiler

Compiled 13 to 8 computations (38.5% saved)

localize9.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
0.1b
(*.f64 (+.f64 (*.f64 x y) z) y)
Compiler

Compiled 32 to 8 computations (75% saved)

series5.0ms (0.1%)

Counts
2 → 84
Calls

21 calls:

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

rewrite241.0ms (4.9%)

Algorithm
batch-egg-rewrite
Rules
3006×rational.json-simplify-35
1456×rational.json-simplify-1
1292×rational.json-1
1292×rational.json-2
1292×rational.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01044
16644
213444
328244
454244
5127144
6254944
7401744
8534344
9664344
10728244
11728244
12728244
Stop Event
node limit
Counts
2 → 39
Calls
Call 1
Inputs
(*.f64 (+.f64 (*.f64 x y) z) y)
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (+.f64 (*.f64 x y) z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (+.f64 (*.f64 x y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 1/2)) (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (+.f64 (*.f64 x y) z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 (*.f64 x y) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x y) z) (+.f64 y y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8)))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (+.f64 (*.f64 x y) z)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) (+.f64 y y)) (+.f64 t t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) (+.f64 y y)) (+.f64 t t)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 1)))))

simplify520.0ms (10.7%)

Algorithm
egg-herbie
Rules
4402×rational.json-simplify-41
2258×rational.json-simplify-35
2116×rational.json-simplify-2
790×rational.json-simplify-51
708×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01002805
12332805
25402805
315352805
430162805
538082805
641472805
744432805
846402805
947562805
1048612805
1151952805
1253362805
1353842805
1454372805
1555312805
1656202805
1756442805
1857482805
1958522805
Stop Event
node limit
Counts
123 → 52
Calls
Call 1
Inputs
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) t)
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
t
(+.f64 (*.f64 y z) t)
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 t (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(*.f64 (+.f64 (*.f64 y x) z) y)
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y))
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y))
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y))
t
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y))
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y))
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y))
t
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y))
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y))
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y))
(+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) 0)
(+.f64 0 (*.f64 y (+.f64 (*.f64 x y) z)))
(+.f64 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 1/2)) (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 1/2)))
(-.f64 (*.f64 y (+.f64 (*.f64 x y) z)) 0)
(/.f64 (*.f64 y (+.f64 (*.f64 x y) z)) 1)
(/.f64 (*.f64 (+.f64 (*.f64 x y) z) (+.f64 y y)) 2)
(/.f64 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 4)) 4)
(/.f64 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8)) 8)
(/.f64 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8))))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8)))))))) 512)
(pow.f64 (*.f64 y (+.f64 (*.f64 x y) z)) 1)
(-.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 0)
(*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 1)
(*.f64 1 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t))
(*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 1/2))
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 4))
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 2))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) (+.f64 y y)) (+.f64 t t)))
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 4))
(*.f64 (/.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 4) 4)
(*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) (+.f64 y y)) (+.f64 t t)) 1/2)
(/.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 1)
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8)))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8))))))) 512)
(pow.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 1)
Outputs
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) t)
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t))
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t))
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t))
t
(+.f64 (*.f64 y z) t)
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t))
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t))
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t))
(+.f64 t (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 (pow.f64 y 2) x) t)
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t))
(*.f64 y z)
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t))
(+.f64 (*.f64 y z) (+.f64 t (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (pow.f64 y 2) x) t))
(*.f64 (+.f64 (*.f64 y x) z) y)
(*.f64 y (+.f64 z (*.f64 y x)))
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y))
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y))
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y))
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
t
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y))
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y))
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y))
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
t
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y))
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y))
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
(+.f64 t (*.f64 (+.f64 (*.f64 y x) z) y))
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
(+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) 0)
(*.f64 y (+.f64 z (*.f64 y x)))
(+.f64 0 (*.f64 y (+.f64 (*.f64 x y) z)))
(*.f64 y (+.f64 z (*.f64 y x)))
(+.f64 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 1/2)) (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 1/2)))
(*.f64 y (+.f64 z (*.f64 y x)))
(-.f64 (*.f64 y (+.f64 (*.f64 x y) z)) 0)
(*.f64 y (+.f64 z (*.f64 y x)))
(/.f64 (*.f64 y (+.f64 (*.f64 x y) z)) 1)
(*.f64 y (+.f64 z (*.f64 y x)))
(/.f64 (*.f64 (+.f64 (*.f64 x y) z) (+.f64 y y)) 2)
(*.f64 y (+.f64 z (*.f64 y x)))
(/.f64 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 4)) 4)
(*.f64 y (+.f64 z (*.f64 y x)))
(/.f64 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8)) 8)
(*.f64 y (+.f64 z (*.f64 y x)))
(/.f64 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8))) 16)
(*.f64 y (+.f64 z (*.f64 y x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8)))) 32)
(*.f64 y (+.f64 z (*.f64 y x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8))))) 64)
(*.f64 y (+.f64 z (*.f64 y x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8)))))) 128)
(*.f64 y (+.f64 z (*.f64 y x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8))))))) 256)
(*.f64 y (+.f64 z (*.f64 y x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 (*.f64 x y) z) 8)))))))) 512)
(*.f64 y (+.f64 z (*.f64 y x)))
(pow.f64 (*.f64 y (+.f64 (*.f64 x y) z)) 1)
(*.f64 y (+.f64 z (*.f64 y x)))
(-.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 0)
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
(*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 1)
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
(*.f64 1 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t))
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
(*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 1/2))
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 2) 1/2)
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
(*.f64 4 (/.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 4))
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 4) 1/4)
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 2))
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) (+.f64 y y)) (+.f64 t t)))
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
(*.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 1/2) 2)
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 4))
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
(*.f64 (/.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 4) 4)
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
(*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) (+.f64 y y)) (+.f64 t t)) 1/2)
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
(/.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 1)
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 2) 2)
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 4) 4)
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
(/.f64 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8) 8)
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8)) 16)
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8))) 32)
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8)))) 64)
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8))))) 128)
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8)))))) 256)
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 8))))))) 512)
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))
(pow.f64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) t) 1)
(+.f64 t (*.f64 y (+.f64 z (*.f64 y x))))

eval10.0ms (0.2%)

Compiler

Compiled 722 to 311 computations (56.9% saved)

prune9.0ms (0.2%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New48452
Fresh000
Picked011
Done000
Total48553
Error
0.0b
Counts
53 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
18.7b
(+.f64 (*.f64 (pow.f64 y 2) x) t)
0.1b
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
16.4b
(+.f64 (*.f64 y z) t)
34.6b
(*.f64 (+.f64 (*.f64 y x) z) y)
29.1b
t
Compiler

Compiled 49 to 33 computations (32.7% saved)

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (+.f64 (*.f64 y x) z) y)
Compiler

Compiled 22 to 7 computations (68.2% saved)

series1.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite203.0ms (4.2%)

Algorithm
batch-egg-rewrite
Rules
1650×rational.json-simplify-35
1550×rational.json-simplify-1
1416×rational.json-simplify-53
1274×exponential.json-3
1274×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0819
15319
211319
323719
444119
5101319
6246019
7445319
8535619
9645719
10730219
11730219
Stop Event
node limit
Counts
1 → 14
Calls
Call 1
Inputs
(*.f64 (+.f64 (*.f64 y x) z) y)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (+.f64 (*.f64 y x) z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (+.f64 (*.f64 y x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 1/2)) (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (+.f64 (*.f64 y x) z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 (*.f64 y x) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 (+.f64 (*.f64 y x) z) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (+.f64 (*.f64 y x) z)) 1)))))

simplify554.0ms (11.4%)

Algorithm
egg-herbie
Rules
2960×rational.json-simplify-2
2546×rational.json-simplify-35
2284×rational.json-simplify-53
1056×exponential.json-simplify-26
886×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0501034
11331034
22471034
35821034
421101034
539671034
644771034
746121034
847111034
948101034
1049071034
1159321034
1264461034
1365791034
1465791034
1565791034
1666751034
1767711034
1872371034
1975421034
Stop Event
node limit
Counts
50 → 18
Calls
Call 1
Inputs
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y (+.f64 (*.f64 y x) z)) 0)
(+.f64 0 (*.f64 y (+.f64 (*.f64 y x) z)))
(+.f64 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 1/2)) (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 1/2)))
(-.f64 (*.f64 y (+.f64 (*.f64 y x) z)) 0)
(/.f64 (*.f64 y (+.f64 (*.f64 y x) z)) 1)
(/.f64 (*.f64 y (*.f64 (+.f64 (*.f64 y x) z) 2)) 2)
(/.f64 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 4)) 4)
(/.f64 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8)) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8))))))) 256)
(pow.f64 (*.f64 y (+.f64 (*.f64 y x) z)) 1)
Outputs
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y z) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 y (+.f64 (*.f64 y x) z)) 0)
(*.f64 y (+.f64 z (*.f64 y x)))
(+.f64 0 (*.f64 y (+.f64 (*.f64 y x) z)))
(*.f64 y (+.f64 z (*.f64 y x)))
(+.f64 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 1/2)) (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 1/2)))
(*.f64 y (+.f64 z (*.f64 y x)))
(-.f64 (*.f64 y (+.f64 (*.f64 y x) z)) 0)
(*.f64 y (+.f64 z (*.f64 y x)))
(/.f64 (*.f64 y (+.f64 (*.f64 y x) z)) 1)
(*.f64 y (+.f64 z (*.f64 y x)))
(/.f64 (*.f64 y (*.f64 (+.f64 (*.f64 y x) z) 2)) 2)
(*.f64 y (+.f64 z (*.f64 y x)))
(/.f64 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 4)) 4)
(*.f64 y (+.f64 z (*.f64 y x)))
(/.f64 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8)) 8)
(*.f64 y (+.f64 z (*.f64 y x)))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8))) 16)
(*.f64 y (+.f64 z (*.f64 y x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8)))) 32)
(*.f64 y (+.f64 z (*.f64 y x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8))))) 64)
(*.f64 y (+.f64 z (*.f64 y x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8)))))) 128)
(*.f64 y (+.f64 z (*.f64 y x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) z) (*.f64 y 8))))))) 256)
(*.f64 y (+.f64 z (*.f64 y x)))
(pow.f64 (*.f64 y (+.f64 (*.f64 y x) z)) 1)
(*.f64 y (+.f64 z (*.f64 y x)))

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 y z) t)
Compiler

Compiled 15 to 6 computations (60% saved)

series1.0ms (0%)

Counts
1 → 9
Calls

9 calls:

TimeVariablePointExpression
0.0ms
y
@0
(+.f64 (*.f64 y z) t)
0.0ms
z
@inf
(+.f64 (*.f64 y z) t)
0.0ms
y
@-inf
(+.f64 (*.f64 y z) t)
0.0ms
y
@inf
(+.f64 (*.f64 y z) t)
0.0ms
z
@-inf
(+.f64 (*.f64 y z) t)

rewrite195.0ms (4%)

Algorithm
batch-egg-rewrite
Rules
1524×rational.json-simplify-35
1424×rational.json-simplify-1
1386×exponential.json-3
1386×rational.json-1
1386×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
14613
210213
321413
439713
589613
6231413
7416913
8535313
9686413
10767513
11767513
Stop Event
node limit
Counts
1 → 23
Calls
Call 1
Inputs
(+.f64 (*.f64 y z) t)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 y z) t) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y z) t) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 y z) t))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y z) t) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (*.f64 y z) t) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y z) t) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y z) t) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 y z) t) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y z) t) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 y z) t) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y z) t) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (*.f64 y z) t) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 y z) t) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y z) t) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y z) t) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y z) t) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 y z) t) 1)))))

simplify802.0ms (16.5%)

Algorithm
egg-herbie
Rules
6176×rational.json-simplify-51
3534×rational.json-simplify-35
1360×rational.json-simplify-49
1156×rational.json-simplify-2
1124×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
053338
1121338
2423338
31174338
41878338
52772338
63259338
73333338
83381338
93413338
103445338
113477338
123509338
133541338
143573338
153605338
163637338
173669338
183701338
194608338
204867338
214960338
225049338
235136338
245222338
255435338
265435338
275521338
285607338
295693338
305779338
315865338
325951338
336037338
346123338
356209338
Stop Event
node limit
Counts
32 → 26
Calls
Call 1
Inputs
t
(*.f64 y z)
(*.f64 y z)
t
(*.f64 y z)
(*.f64 y z)
(*.f64 y z)
t
t
(-.f64 (+.f64 (*.f64 y z) t) 0)
(*.f64 (+.f64 (*.f64 y z) t) 1)
(*.f64 1 (+.f64 (*.f64 y z) t))
(*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 1/2))
(*.f64 (*.f64 (+.f64 (*.f64 y z) t) 2) 1/2)
(*.f64 4 (*.f64 (+.f64 (*.f64 y z) t) 1/4))
(*.f64 (*.f64 (+.f64 (*.f64 y z) t) 4) 1/4)
(*.f64 (*.f64 (+.f64 (*.f64 y z) t) 8) 1/8)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y z) t) 2))
(*.f64 (*.f64 (+.f64 (*.f64 y z) t) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y z) t) 4))
(*.f64 (*.f64 (+.f64 (*.f64 y z) t) 1/4) 4)
(*.f64 1/8 (*.f64 (+.f64 (*.f64 y z) t) 8))
(/.f64 (+.f64 (*.f64 y z) t) 1)
(/.f64 (*.f64 (+.f64 (*.f64 y z) t) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 y z) t) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 y z) t) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 8)))))) 256)
(pow.f64 (+.f64 (*.f64 y z) t) 1)
Outputs
t
(*.f64 y z)
(*.f64 y z)
t
(*.f64 y z)
(*.f64 y z)
(*.f64 y z)
t
t
(-.f64 (+.f64 (*.f64 y z) t) 0)
(+.f64 t (*.f64 y z))
(*.f64 (+.f64 (*.f64 y z) t) 1)
(+.f64 t (*.f64 y z))
(*.f64 1 (+.f64 (*.f64 y z) t))
(+.f64 t (*.f64 y z))
(*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 1/2))
(+.f64 t (*.f64 y z))
(*.f64 (*.f64 (+.f64 (*.f64 y z) t) 2) 1/2)
(+.f64 t (*.f64 y z))
(*.f64 4 (*.f64 (+.f64 (*.f64 y z) t) 1/4))
(+.f64 t (*.f64 y z))
(*.f64 (*.f64 (+.f64 (*.f64 y z) t) 4) 1/4)
(+.f64 t (*.f64 y z))
(*.f64 (*.f64 (+.f64 (*.f64 y z) t) 8) 1/8)
(+.f64 t (*.f64 y z))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y z) t) 2))
(+.f64 t (*.f64 y z))
(*.f64 (*.f64 (+.f64 (*.f64 y z) t) 1/2) 2)
(+.f64 t (*.f64 y z))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y z) t) 4))
(+.f64 t (*.f64 y z))
(*.f64 (*.f64 (+.f64 (*.f64 y z) t) 1/4) 4)
(+.f64 t (*.f64 y z))
(*.f64 1/8 (*.f64 (+.f64 (*.f64 y z) t) 8))
(+.f64 t (*.f64 y z))
(/.f64 (+.f64 (*.f64 y z) t) 1)
(+.f64 t (*.f64 y z))
(/.f64 (*.f64 (+.f64 (*.f64 y z) t) 2) 2)
(+.f64 t (*.f64 y z))
(/.f64 (*.f64 (+.f64 (*.f64 y z) t) 4) 4)
(+.f64 t (*.f64 y z))
(/.f64 (*.f64 (+.f64 (*.f64 y z) t) 8) 8)
(+.f64 t (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 8)) 16)
(+.f64 t (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 8))) 32)
(+.f64 t (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 8)))) 64)
(+.f64 t (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 8))))) 128)
(+.f64 t (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y z) t) 8)))))) 256)
(+.f64 t (*.f64 y z))
(pow.f64 (+.f64 (*.f64 y z) t) 1)
(+.f64 t (*.f64 y z))

localize9.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 23 to 14 computations (39.1% saved)

series2.0ms (0%)

Counts
1 → 0
Calls

6 calls:

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

rewrite214.0ms (4.4%)

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

Useful iterations: 0 (0.0ms)

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

simplify436.0ms (9%)

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

Useful iterations: 0 (0.0ms)

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

eval12.0ms (0.3%)

Compiler

Compiled 656 to 378 computations (42.4% saved)

prune11.0ms (0.2%)

Pruning

6 alts after pruning (3 fresh and 3 done)

PrunedKeptTotal
New58260
Fresh011
Picked101
Done033
Total59665
Error
0.0b
Counts
65 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
16.4b
(+.f64 (*.f64 y z) t)
51.2b
(*.f64 (pow.f64 y 2) x)
34.6b
(*.f64 (+.f64 (*.f64 y x) z) y)
50.0b
(*.f64 y z)
29.1b
t
Compiler

Compiled 54 to 37 computations (31.5% saved)

localize3.0ms (0.1%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 15 to 10 computations (33.3% saved)

eval5.0ms (0.1%)

Compiler

Compiled 182 to 148 computations (18.7% saved)

prune5.0ms (0.1%)

Pruning

6 alts after pruning (1 fresh and 5 done)

PrunedKeptTotal
New16016
Fresh011
Picked011
Done044
Total16622
Error
0.0b
Counts
22 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
16.4b
(+.f64 (*.f64 y z) t)
51.2b
(*.f64 (pow.f64 y 2) x)
34.6b
(*.f64 (+.f64 (*.f64 y x) z) y)
50.0b
(*.f64 y z)
29.1b
t
Compiler

Compiled 54 to 37 computations (31.5% saved)

eval0.0ms (0%)

Compiler

Compiled 4 to 4 computations (0% saved)

prune2.0ms (0%)

Pruning

6 alts after pruning (1 fresh and 5 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done055
Total066
Error
0.0b
Counts
6 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
16.4b
(+.f64 (*.f64 y z) t)
51.2b
(*.f64 (pow.f64 y 2) x)
34.6b
(*.f64 (+.f64 (*.f64 y x) z) y)
50.0b
(*.f64 y z)
29.1b
t
Compiler

Compiled 54 to 37 computations (31.5% saved)

regimes33.0ms (0.7%)

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

6 calls:

6.0ms
(*.f64 (+.f64 (*.f64 x y) z) y)
6.0ms
t
5.0ms
y
5.0ms
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
5.0ms
z
Results
ErrorSegmentsBranch
0.1b1x
0.1b1y
0.1b1z
0.1b1t
0.1b1(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
0.1b1(*.f64 (+.f64 (*.f64 x y) z) y)
Compiler

Compiled 85 to 51 computations (40% saved)

regimes41.0ms (0.9%)

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

4 calls:

14.0ms
y
11.0ms
z
11.0ms
t
4.0ms
x
Results
ErrorSegmentsBranch
16.4b1x
7.7b3y
15.0b3z
11.7b3t
Compiler

Compiled 40 to 25 computations (37.5% saved)

bsearch23.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
12.0ms
13879.143820949903
692974.7639915938
10.0ms
-175928.56472731344
-30596.122585945945
Results
20.0ms208×body256valid
1.0msbody256infinite
Compiler

Compiled 306 to 209 computations (31.7% saved)

regimes15.0ms (0.3%)

Counts
3 → 1
Calls
Call 1
Inputs
t
(*.f64 y z)
(+.f64 (*.f64 y z) t)
Outputs
(+.f64 (*.f64 y z) t)
Calls

4 calls:

4.0ms
z
3.0ms
t
3.0ms
y
3.0ms
x
Results
ErrorSegmentsBranch
16.4b1x
16.4b1y
16.4b1z
16.4b1t
Compiler

Compiled 33 to 22 computations (33.3% saved)

regimes40.0ms (0.8%)

Accuracy

Total -37.5b remaining (-152.3%)

Threshold costs -37.5b (-152.3%)

Counts
2 → 3
Calls
Call 1
Inputs
t
(*.f64 y z)
Outputs
t
(*.f64 y z)
t
Calls

4 calls:

14.0ms
y
9.0ms
x
9.0ms
t
8.0ms
z
Results
ErrorSegmentsBranch
27.9b3x
26.6b4y
27.5b2z
24.6b3t
Compiler

Compiled 28 to 21 computations (25% saved)

bsearch24.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
17.0ms
3.1467564376486585e-167
1.902789951923398e-148
7.0ms
-1.8288356495424239e-155
-1.2890721187267004e-155
Results
21.0ms224×body256valid
Compiler

Compiled 216 to 168 computations (22.2% saved)

simplify4.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
030135
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
(if (<=.f64 y -70000) (*.f64 (+.f64 (*.f64 y x) z) y) (if (<=.f64 y 420000) (+.f64 (*.f64 y z) t) (*.f64 (+.f64 (*.f64 y x) z) y)))
(+.f64 (*.f64 y z) t)
(if (<=.f64 t -7729075046034517/483067190377157293086918986366498418037365916213304374832154406431439892786195053067024220822740322245307952003937772147170634832630373456967863584183385093587122601852928) t (if (<=.f64 t 8695209426788831/966134380754314586173837972732996836074731832426608749664308812862879785572390106134048441645480644490615904007875544294341269665260746913935727168366770187174245203705856) (*.f64 y z) t))
t
Outputs
(+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) t)
(if (<=.f64 y -70000) (*.f64 (+.f64 (*.f64 y x) z) y) (if (<=.f64 y 420000) (+.f64 (*.f64 y z) t) (*.f64 (+.f64 (*.f64 y x) z) y)))
(+.f64 (*.f64 y z) t)
(if (<=.f64 t -7729075046034517/483067190377157293086918986366498418037365916213304374832154406431439892786195053067024220822740322245307952003937772147170634832630373456967863584183385093587122601852928) t (if (<=.f64 t 8695209426788831/966134380754314586173837972732996836074731832426608749664308812862879785572390106134048441645480644490615904007875544294341269665260746913935727168366770187174245203705856) (*.f64 y z) t))
t
Compiler

Compiled 75 to 44 computations (41.3% saved)

soundness0.0ms (0%)

end32.0ms (0.7%)

Compiler

Compiled 59 to 25 computations (57.6% saved)

Profiling

Loading profile data...