Details

Time bar (total: 1.5s)

analyze6.0ms (0.4%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%50%50%0%0%0%0
0%0%50%50%0%0%0%1
0%0%50%50%0%0%0%2
0%0%50%50%0%0%0%3
62.5%31.2%18.7%50%0%0%0%4
81.3%40.6%9.4%50%0%0%0%5
90.6%45.3%4.7%50%0%0%0%6
95.3%47.6%2.3%50%0%0%0%7
97.7%48.8%1.2%50%0%0%0%8
98.8%49.4%0.6%50%0%0%0%9
99.4%49.7%0.3%50%0%0%0%10
99.7%49.8%0.1%50%0%0%0%11
99.9%49.9%0.1%50%0%0%0%12
Compiler

Compiled 29 to 19 computations (34.5% saved)

sample1.0s (67.3%)

Results
1.0s8256×body256valid
Bogosity

preprocess24.0ms (1.6%)

Algorithm
egg-herbie
Rules
1580×rational.json-simplify-31
572×rational.json-simplify-2
24×rational.json-simplify-9
12×rational.json-simplify-27
rational.json-simplify-28
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01273
12673
24373
37261
412961
523661
646261
757461
858061
958461
1058561
1158561
1258561
13110461
14130961
011
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(/.f64 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 (*.f64 2 i) (*.f64 2 i))) (-.f64 (*.f64 (*.f64 2 i) (*.f64 2 i)) 1))
Outputs
(/.f64 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 (*.f64 2 i) (*.f64 2 i))) (-.f64 (*.f64 (*.f64 2 i) (*.f64 2 i)) 1))
(/.f64 (/.f64 (*.f64 i (*.f64 (*.f64 i i) i)) (*.f64 (*.f64 i 2) (*.f64 i 2))) (+.f64 (*.f64 (*.f64 i 2) (*.f64 i 2)) -1))
(/.f64 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 (*.f64 i 2) 2))) (+.f64 (*.f64 i (*.f64 (*.f64 i 2) 2)) -1))
(/.f64 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 i (*.f64 2 (*.f64 i 2)))) (+.f64 (*.f64 i (*.f64 2 (*.f64 i 2))) -1))
(/.f64 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 i (*.f64 i 4))) (+.f64 (*.f64 i (*.f64 i 4)) -1))
(/.f64 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 (*.f64 i i) 4)) (+.f64 (*.f64 (*.f64 i i) 4) -1))
(/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 (-.f64 -1 (*.f64 (*.f64 i i) -4)) (*.f64 i (*.f64 i 4))))
(/.f64 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 (*.f64 i i) -4)) (+.f64 1 (*.f64 (*.f64 i i) -4)))
(/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 (+.f64 -1 (*.f64 (*.f64 i i) 4)) (*.f64 (*.f64 i i) 4)))
Compiler

Compiled 27 to 18 computations (33.3% saved)

simplify26.0ms (1.7%)

Algorithm
egg-herbie
Rules
1580×rational.json-simplify-31
572×rational.json-simplify-2
24×rational.json-simplify-9
12×rational.json-simplify-27
rational.json-simplify-28
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01273
12673
24373
37261
412961
523661
646261
757461
858061
958461
1058561
1158561
1258561
13110461
14130961
Stop Event
saturated
Counts
1 → 9
Calls
Call 1
Inputs
(/.f64 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 (*.f64 2 i) (*.f64 2 i))) (-.f64 (*.f64 (*.f64 2 i) (*.f64 2 i)) 1))
Outputs
(/.f64 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 (*.f64 2 i) (*.f64 2 i))) (-.f64 (*.f64 (*.f64 2 i) (*.f64 2 i)) 1))
(/.f64 (/.f64 (*.f64 i (*.f64 (*.f64 i i) i)) (*.f64 (*.f64 i 2) (*.f64 i 2))) (+.f64 (*.f64 (*.f64 i 2) (*.f64 i 2)) -1))
(/.f64 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 (*.f64 i 2) 2))) (+.f64 (*.f64 i (*.f64 (*.f64 i 2) 2)) -1))
(/.f64 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 i (*.f64 2 (*.f64 i 2)))) (+.f64 (*.f64 i (*.f64 2 (*.f64 i 2))) -1))
(/.f64 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 i (*.f64 i 4))) (+.f64 (*.f64 i (*.f64 i 4)) -1))
(/.f64 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 (*.f64 i i) 4)) (+.f64 (*.f64 (*.f64 i i) 4) -1))
(/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 (-.f64 -1 (*.f64 (*.f64 i i) -4)) (*.f64 i (*.f64 i 4))))
(/.f64 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 (*.f64 i i) -4)) (+.f64 1 (*.f64 (*.f64 i i) -4)))
(/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 (+.f64 -1 (*.f64 (*.f64 i i) 4)) (*.f64 (*.f64 i i) 4)))

eval2.0ms (0.1%)

Compiler

Compiled 206 to 106 computations (48.5% saved)

prune2.0ms (0.1%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New729
Fresh101
Picked000
Done000
Total8210
Error
47.2b
Counts
10 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
47.3b
(/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 (-.f64 -1 (*.f64 (*.f64 i i) -4)) (*.f64 i (*.f64 i 4))))
47.3b
(/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 (+.f64 -1 (*.f64 (*.f64 i i) 4)) (*.f64 (*.f64 i i) 4)))
Compiler

Compiled 44 to 24 computations (45.5% saved)

localize19.0ms (1.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (+.f64 -1 (*.f64 (*.f64 i i) 4)) (*.f64 (*.f64 i i) 4))
0.1b
(*.f64 i (*.f64 i (*.f64 i i)))
0.1b
(*.f64 i (*.f64 i i))
46.2b
(/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 (+.f64 -1 (*.f64 (*.f64 i i) 4)) (*.f64 (*.f64 i i) 4)))
Compiler

Compiled 65 to 27 computations (58.5% saved)

series3.0ms (0.2%)

Counts
4 → 48
Calls

12 calls:

TimeVariablePointExpression
0.0ms
i
@inf
(*.f64 (+.f64 -1 (*.f64 (*.f64 i i) 4)) (*.f64 (*.f64 i i) 4))
0.0ms
i
@inf
(/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 (+.f64 -1 (*.f64 (*.f64 i i) 4)) (*.f64 (*.f64 i i) 4)))
0.0ms
i
@0
(*.f64 (+.f64 -1 (*.f64 (*.f64 i i) 4)) (*.f64 (*.f64 i i) 4))
0.0ms
i
@-inf
(*.f64 i (*.f64 i i))
0.0ms
i
@0
(/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 (+.f64 -1 (*.f64 (*.f64 i i) 4)) (*.f64 (*.f64 i i) 4)))

rewrite10.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
62×rational.json-simplify-2
44×bool.json-1
36×rational.json-1
36×rational.json-2
36×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
012130
159130
2101130
3128130
4150130
5154130
Stop Event
saturated
Counts
4 → 10
Calls
Call 1
Inputs
(/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 (+.f64 -1 (*.f64 (*.f64 i i) 4)) (*.f64 (*.f64 i i) 4)))
(*.f64 i (*.f64 i i))
(*.f64 i (*.f64 i (*.f64 i i)))
(*.f64 (+.f64 -1 (*.f64 (*.f64 i i) 4)) (*.f64 (*.f64 i i) 4))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 i (*.f64 (+.f64 -1 (*.f64 i (*.f64 i 4))) (*.f64 i 4)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 i (*.f64 (+.f64 -1 (*.f64 i (*.f64 i 4))) (*.f64 i 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 i (*.f64 (+.f64 -1 (*.f64 i (*.f64 i 4))) (*.f64 i 4)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 i (*.f64 (+.f64 -1 (*.f64 i (*.f64 i 4))) (*.f64 i 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x or (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 i (*.f64 (+.f64 -1 (*.f64 i (*.f64 i 4))) (*.f64 i 4)))) (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 i (*.f64 (+.f64 -1 (*.f64 i (*.f64 i 4))) (*.f64 i 4)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 i (*.f64 i i)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 i (*.f64 i i)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 i (*.f64 i i)) (*.f64 i (*.f64 i i)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 i i) (*.f64 i i)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (*.f64 i i) (*.f64 i i)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 (*.f64 i i) (*.f64 i i)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 i (*.f64 (+.f64 -1 (*.f64 i (*.f64 i 4))) (*.f64 i 4))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 i (*.f64 (+.f64 -1 (*.f64 i (*.f64 i 4))) (*.f64 i 4))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 i (*.f64 (+.f64 -1 (*.f64 i (*.f64 i 4))) (*.f64 i 4))) (*.f64 i (*.f64 (+.f64 -1 (*.f64 i (*.f64 i 4))) (*.f64 i 4))))))))

simplify23.0ms (1.5%)

Algorithm
egg-herbie
Rules
118×rational.json-simplify-1
66×rational.json-simplify-33
58×rational.json-simplify-2
22×rational.json-simplify-31
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0651384
11021384
21401384
31821384
42061384
52081384
Stop Event
saturated
Counts
58 → 40
Calls
Call 1
Inputs
(*.f64 -1/4 (pow.f64 i 2))
(+.f64 (*.f64 -1 (pow.f64 i 4)) (*.f64 -1/4 (pow.f64 i 2)))
(+.f64 (*.f64 -1 (pow.f64 i 4)) (+.f64 (*.f64 -1/4 (pow.f64 i 2)) (*.f64 -4 (pow.f64 i 6))))
(+.f64 (*.f64 -16 (pow.f64 i 8)) (+.f64 (*.f64 -1 (pow.f64 i 4)) (+.f64 (*.f64 -1/4 (pow.f64 i 2)) (*.f64 -4 (pow.f64 i 6)))))
1/16
(+.f64 1/16 (*.f64 1/64 (/.f64 1 (pow.f64 i 2))))
(+.f64 (*.f64 1/256 (/.f64 1 (pow.f64 i 4))) (+.f64 1/16 (*.f64 1/64 (/.f64 1 (pow.f64 i 2)))))
(+.f64 (*.f64 1/256 (/.f64 1 (pow.f64 i 4))) (+.f64 1/16 (+.f64 (*.f64 1/1024 (/.f64 1 (pow.f64 i 6))) (*.f64 1/64 (/.f64 1 (pow.f64 i 2))))))
1/16
(+.f64 1/16 (*.f64 1/64 (/.f64 1 (pow.f64 i 2))))
(+.f64 (*.f64 1/256 (/.f64 1 (pow.f64 i 4))) (+.f64 1/16 (*.f64 1/64 (/.f64 1 (pow.f64 i 2)))))
(+.f64 (*.f64 1/256 (/.f64 1 (pow.f64 i 4))) (+.f64 1/16 (+.f64 (*.f64 1/1024 (/.f64 1 (pow.f64 i 6))) (*.f64 1/64 (/.f64 1 (pow.f64 i 2))))))
(pow.f64 i 3)
(pow.f64 i 3)
(pow.f64 i 3)
(pow.f64 i 3)
(pow.f64 i 3)
(pow.f64 i 3)
(pow.f64 i 3)
(pow.f64 i 3)
(pow.f64 i 3)
(pow.f64 i 3)
(pow.f64 i 3)
(pow.f64 i 3)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(*.f64 -4 (pow.f64 i 2))
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(*.f64 16 (pow.f64 i 4))
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(*.f64 16 (pow.f64 i 4))
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(+.f64 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 i (*.f64 (+.f64 -1 (*.f64 i (*.f64 i 4))) (*.f64 i 4)))) 0)
(+.f64 0 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 i (*.f64 (+.f64 -1 (*.f64 i (*.f64 i 4))) (*.f64 i 4)))))
(*.f64 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 i (*.f64 (+.f64 -1 (*.f64 i (*.f64 i 4))) (*.f64 i 4)))) 1)
(*.f64 1 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 i (*.f64 (+.f64 -1 (*.f64 i (*.f64 i 4))) (*.f64 i 4)))))
(+.f64 (*.f64 i (*.f64 i i)) 0)
(+.f64 0 (*.f64 i (*.f64 i i)))
(+.f64 (*.f64 (*.f64 i i) (*.f64 i i)) 0)
(+.f64 0 (*.f64 (*.f64 i i) (*.f64 i i)))
(+.f64 (*.f64 i (*.f64 (+.f64 -1 (*.f64 i (*.f64 i 4))) (*.f64 i 4))) 0)
(+.f64 0 (*.f64 i (*.f64 (+.f64 -1 (*.f64 i (*.f64 i 4))) (*.f64 i 4))))
Outputs
(*.f64 -1/4 (pow.f64 i 2))
(+.f64 (*.f64 -1 (pow.f64 i 4)) (*.f64 -1/4 (pow.f64 i 2)))
(+.f64 (*.f64 -1/4 (pow.f64 i 2)) (*.f64 -1 (pow.f64 i 4)))
(+.f64 (*.f64 -1 (pow.f64 i 4)) (+.f64 (*.f64 -1/4 (pow.f64 i 2)) (*.f64 -4 (pow.f64 i 6))))
(+.f64 (*.f64 -16 (pow.f64 i 8)) (+.f64 (*.f64 -1 (pow.f64 i 4)) (+.f64 (*.f64 -1/4 (pow.f64 i 2)) (*.f64 -4 (pow.f64 i 6)))))
(+.f64 (+.f64 (*.f64 -1 (pow.f64 i 4)) (+.f64 (*.f64 -1/4 (pow.f64 i 2)) (*.f64 -4 (pow.f64 i 6)))) (*.f64 -16 (pow.f64 i 8)))
(+.f64 (+.f64 (*.f64 -1/4 (pow.f64 i 2)) (*.f64 -4 (pow.f64 i 6))) (+.f64 (*.f64 -1 (pow.f64 i 4)) (*.f64 -16 (pow.f64 i 8))))
(+.f64 (*.f64 -1/4 (pow.f64 i 2)) (+.f64 (*.f64 -4 (pow.f64 i 6)) (+.f64 (*.f64 -1 (pow.f64 i 4)) (*.f64 -16 (pow.f64 i 8)))))
(+.f64 (*.f64 -1 (pow.f64 i 4)) (+.f64 (+.f64 (*.f64 -1/4 (pow.f64 i 2)) (*.f64 -4 (pow.f64 i 6))) (*.f64 -16 (pow.f64 i 8))))
1/16
(+.f64 1/16 (*.f64 1/64 (/.f64 1 (pow.f64 i 2))))
(+.f64 (*.f64 1/256 (/.f64 1 (pow.f64 i 4))) (+.f64 1/16 (*.f64 1/64 (/.f64 1 (pow.f64 i 2)))))
(+.f64 (+.f64 1/16 (*.f64 1/64 (/.f64 1 (pow.f64 i 2)))) (*.f64 1/256 (/.f64 1 (pow.f64 i 4))))
(+.f64 (*.f64 1/256 (/.f64 1 (pow.f64 i 4))) (+.f64 1/16 (+.f64 (*.f64 1/1024 (/.f64 1 (pow.f64 i 6))) (*.f64 1/64 (/.f64 1 (pow.f64 i 2))))))
(+.f64 (*.f64 1/256 (/.f64 1 (pow.f64 i 4))) (+.f64 1/16 (+.f64 (*.f64 1/64 (/.f64 1 (pow.f64 i 2))) (*.f64 1/1024 (/.f64 1 (pow.f64 i 6))))))
1/16
(+.f64 1/16 (*.f64 1/64 (/.f64 1 (pow.f64 i 2))))
(+.f64 (*.f64 1/256 (/.f64 1 (pow.f64 i 4))) (+.f64 1/16 (*.f64 1/64 (/.f64 1 (pow.f64 i 2)))))
(+.f64 (+.f64 1/16 (*.f64 1/64 (/.f64 1 (pow.f64 i 2)))) (*.f64 1/256 (/.f64 1 (pow.f64 i 4))))
(+.f64 (*.f64 1/256 (/.f64 1 (pow.f64 i 4))) (+.f64 1/16 (+.f64 (*.f64 1/1024 (/.f64 1 (pow.f64 i 6))) (*.f64 1/64 (/.f64 1 (pow.f64 i 2))))))
(+.f64 (*.f64 1/256 (/.f64 1 (pow.f64 i 4))) (+.f64 1/16 (+.f64 (*.f64 1/64 (/.f64 1 (pow.f64 i 2))) (*.f64 1/1024 (/.f64 1 (pow.f64 i 6))))))
(pow.f64 i 3)
(pow.f64 i 3)
(pow.f64 i 3)
(pow.f64 i 3)
(pow.f64 i 3)
(pow.f64 i 3)
(pow.f64 i 3)
(pow.f64 i 3)
(pow.f64 i 3)
(pow.f64 i 3)
(pow.f64 i 3)
(pow.f64 i 3)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(*.f64 -4 (pow.f64 i 2))
(*.f64 (pow.f64 i 2) -4)
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(+.f64 (*.f64 (pow.f64 i 2) -4) (*.f64 (pow.f64 i 4) 16))
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(+.f64 (*.f64 (pow.f64 i 2) -4) (*.f64 (pow.f64 i 4) 16))
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(+.f64 (*.f64 (pow.f64 i 2) -4) (*.f64 (pow.f64 i 4) 16))
(*.f64 16 (pow.f64 i 4))
(*.f64 (pow.f64 i 4) 16)
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(+.f64 (*.f64 (pow.f64 i 2) -4) (*.f64 (pow.f64 i 4) 16))
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(+.f64 (*.f64 (pow.f64 i 2) -4) (*.f64 (pow.f64 i 4) 16))
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(+.f64 (*.f64 (pow.f64 i 2) -4) (*.f64 (pow.f64 i 4) 16))
(*.f64 16 (pow.f64 i 4))
(*.f64 (pow.f64 i 4) 16)
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(+.f64 (*.f64 (pow.f64 i 2) -4) (*.f64 (pow.f64 i 4) 16))
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(+.f64 (*.f64 (pow.f64 i 2) -4) (*.f64 (pow.f64 i 4) 16))
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(+.f64 (*.f64 (pow.f64 i 2) -4) (*.f64 (pow.f64 i 4) 16))
(+.f64 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 i (*.f64 (+.f64 -1 (*.f64 i (*.f64 i 4))) (*.f64 i 4)))) 0)
(+.f64 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 (+.f64 -1 (*.f64 i (*.f64 i 4))) 4)))) 0)
(+.f64 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 4 (+.f64 -1 (*.f64 i (*.f64 i 4))))))) 0)
(+.f64 0 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 i (*.f64 (+.f64 -1 (*.f64 i (*.f64 i 4))) (*.f64 i 4)))))
(+.f64 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 (+.f64 -1 (*.f64 i (*.f64 i 4))) 4)))) 0)
(+.f64 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 4 (+.f64 -1 (*.f64 i (*.f64 i 4))))))) 0)
(*.f64 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 i (*.f64 (+.f64 -1 (*.f64 i (*.f64 i 4))) (*.f64 i 4)))) 1)
(*.f64 1 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 (+.f64 -1 (*.f64 i (*.f64 i 4))) 4)))))
(*.f64 1 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 4 (+.f64 -1 (*.f64 i (*.f64 i 4))))))))
(*.f64 1 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 i (*.f64 (+.f64 -1 (*.f64 i (*.f64 i 4))) (*.f64 i 4)))))
(*.f64 1 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 (+.f64 -1 (*.f64 i (*.f64 i 4))) 4)))))
(*.f64 1 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 4 (+.f64 -1 (*.f64 i (*.f64 i 4))))))))
(+.f64 (*.f64 i (*.f64 i i)) 0)
(+.f64 0 (*.f64 i (*.f64 i i)))
(+.f64 0 (*.f64 i (*.f64 i i)))
(+.f64 (*.f64 (*.f64 i i) (*.f64 i i)) 0)
(+.f64 (*.f64 i (*.f64 i (*.f64 i i))) 0)
(+.f64 0 (*.f64 (*.f64 i i) (*.f64 i i)))
(+.f64 (*.f64 i (*.f64 i (*.f64 i i))) 0)
(+.f64 (*.f64 i (*.f64 (+.f64 -1 (*.f64 i (*.f64 i 4))) (*.f64 i 4))) 0)
(+.f64 (*.f64 i (*.f64 i (*.f64 (+.f64 -1 (*.f64 i (*.f64 i 4))) 4))) 0)
(+.f64 (*.f64 i (*.f64 i (*.f64 4 (+.f64 -1 (*.f64 i (*.f64 i 4)))))) 0)
(+.f64 0 (*.f64 i (*.f64 (+.f64 -1 (*.f64 i (*.f64 i 4))) (*.f64 i 4))))
(+.f64 (*.f64 i (*.f64 i (*.f64 (+.f64 -1 (*.f64 i (*.f64 i 4))) 4))) 0)
(+.f64 (*.f64 i (*.f64 i (*.f64 4 (+.f64 -1 (*.f64 i (*.f64 i 4)))))) 0)

localize22.0ms (1.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (*.f64 i i) -4)
0.1b
(*.f64 (-.f64 -1 (*.f64 (*.f64 i i) -4)) (*.f64 i (*.f64 i 4)))
0.1b
(*.f64 (*.f64 i i) (*.f64 i i))
46.2b
(/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 (-.f64 -1 (*.f64 (*.f64 i i) -4)) (*.f64 i (*.f64 i 4))))
Compiler

Compiled 69 to 34 computations (50.7% saved)

series2.0ms (0.1%)

Counts
4 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
i
@0
(*.f64 (-.f64 -1 (*.f64 (*.f64 i i) -4)) (*.f64 i (*.f64 i 4)))
0.0ms
i
@0
(/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 (-.f64 -1 (*.f64 (*.f64 i i) -4)) (*.f64 i (*.f64 i 4))))
0.0ms
i
@inf
(*.f64 (*.f64 i i) -4)
0.0ms
i
@0
(*.f64 (*.f64 i i) -4)
0.0ms
i
@inf
(/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 (-.f64 -1 (*.f64 (*.f64 i i) -4)) (*.f64 i (*.f64 i 4))))

rewrite21.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
342×rational.json-simplify-31
244×rational.json-simplify-2
126×bool.json-1
116×rational.json-1
116×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
014130
173130
2143130
3204130
4286130
5409130
6538130
7551130
8555130
9555130
10581130
11615130
12619130
Stop Event
saturated
Counts
4 → 13
Calls
Call 1
Inputs
(/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 (-.f64 -1 (*.f64 (*.f64 i i) -4)) (*.f64 i (*.f64 i 4))))
(*.f64 (*.f64 i i) (*.f64 i i))
(*.f64 (-.f64 -1 (*.f64 (*.f64 i i) -4)) (*.f64 i (*.f64 i 4)))
(*.f64 (*.f64 i i) -4)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 (*.f64 i i) -4)))))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 (*.f64 i i) -4)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 (*.f64 i i) -4)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 (*.f64 i i) -4)))))))))) (#(struct:change #<rule egg-rr> (2) ((x or (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 (*.f64 i i) -4)))))) (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 (*.f64 i i) -4)))))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 i (*.f64 i (*.f64 i i))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 i (*.f64 i (*.f64 i i))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 i i))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 (*.f64 i i) -4))))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 (*.f64 i i) -4))))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 (*.f64 i i) -4))))) (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 (*.f64 i i) -4))))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (*.f64 i i) -4))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 i i) -4) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 i (*.f64 i 4)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (*.f64 i i) -4) 0)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 i (*.f64 i 4)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (*.f64 i i) -4) (*.f64 (*.f64 i i) -4))))))

simplify44.0ms (2.9%)

Algorithm
egg-herbie
Rules
602×rational.json-simplify-31
336×rational.json-simplify-2
124×rational.json-simplify-1
66×rational.json-simplify-33
rational.json-simplify-9
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0691483
11141483
21661483
32241483
42631483
53111483
64421483
76521483
86711483
96711483
107331483
Stop Event
saturated
Counts
61 → 56
Calls
Call 1
Inputs
(*.f64 -1/4 (pow.f64 i 2))
(+.f64 (*.f64 -1 (pow.f64 i 4)) (*.f64 -1/4 (pow.f64 i 2)))
(+.f64 (*.f64 -1 (pow.f64 i 4)) (+.f64 (*.f64 -1/4 (pow.f64 i 2)) (*.f64 -4 (pow.f64 i 6))))
(+.f64 (*.f64 -16 (pow.f64 i 8)) (+.f64 (*.f64 -1 (pow.f64 i 4)) (+.f64 (*.f64 -1/4 (pow.f64 i 2)) (*.f64 -4 (pow.f64 i 6)))))
1/16
(+.f64 1/16 (*.f64 1/64 (/.f64 1 (pow.f64 i 2))))
(+.f64 (*.f64 1/256 (/.f64 1 (pow.f64 i 4))) (+.f64 1/16 (*.f64 1/64 (/.f64 1 (pow.f64 i 2)))))
(+.f64 (*.f64 1/256 (/.f64 1 (pow.f64 i 4))) (+.f64 1/16 (+.f64 (*.f64 1/1024 (/.f64 1 (pow.f64 i 6))) (*.f64 1/64 (/.f64 1 (pow.f64 i 2))))))
1/16
(+.f64 1/16 (*.f64 1/64 (/.f64 1 (pow.f64 i 2))))
(+.f64 (*.f64 1/256 (/.f64 1 (pow.f64 i 4))) (+.f64 1/16 (*.f64 1/64 (/.f64 1 (pow.f64 i 2)))))
(+.f64 (*.f64 1/256 (/.f64 1 (pow.f64 i 4))) (+.f64 1/16 (+.f64 (*.f64 1/1024 (/.f64 1 (pow.f64 i 6))) (*.f64 1/64 (/.f64 1 (pow.f64 i 2))))))
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(*.f64 -4 (pow.f64 i 2))
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(*.f64 16 (pow.f64 i 4))
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(*.f64 16 (pow.f64 i 4))
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(*.f64 -4 (pow.f64 i 2))
(*.f64 -4 (pow.f64 i 2))
(*.f64 -4 (pow.f64 i 2))
(*.f64 -4 (pow.f64 i 2))
(*.f64 -4 (pow.f64 i 2))
(*.f64 -4 (pow.f64 i 2))
(*.f64 -4 (pow.f64 i 2))
(*.f64 -4 (pow.f64 i 2))
(*.f64 -4 (pow.f64 i 2))
(*.f64 -4 (pow.f64 i 2))
(*.f64 -4 (pow.f64 i 2))
(*.f64 -4 (pow.f64 i 2))
(+.f64 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 (*.f64 i i) -4)))))) 0)
(+.f64 0 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 (*.f64 i i) -4)))))))
(*.f64 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 (*.f64 i i) -4)))))) 1)
(*.f64 1 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 (*.f64 i i) -4)))))))
(+.f64 (*.f64 i (*.f64 i (*.f64 i i))) 0)
(+.f64 0 (*.f64 i (*.f64 i (*.f64 i i))))
(+.f64 (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 (*.f64 i i) -4))))) 0)
(+.f64 0 (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 (*.f64 i i) -4))))))
(+.f64 0 (*.f64 (*.f64 i i) -4))
(+.f64 (*.f64 (*.f64 i i) -4) 0)
(-.f64 0 (*.f64 i (*.f64 i 4)))
(-.f64 (*.f64 (*.f64 i i) -4) 0)
(neg.f64 (*.f64 i (*.f64 i 4)))
Outputs
(*.f64 -1/4 (pow.f64 i 2))
(+.f64 (*.f64 -1 (pow.f64 i 4)) (*.f64 -1/4 (pow.f64 i 2)))
(+.f64 (*.f64 -1/4 (pow.f64 i 2)) (*.f64 -1 (pow.f64 i 4)))
(+.f64 (*.f64 -1 (pow.f64 i 4)) (+.f64 (*.f64 -1/4 (pow.f64 i 2)) (*.f64 -4 (pow.f64 i 6))))
(+.f64 (*.f64 -1/4 (pow.f64 i 2)) (+.f64 (*.f64 -1 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 6))))
(+.f64 (*.f64 -16 (pow.f64 i 8)) (+.f64 (*.f64 -1 (pow.f64 i 4)) (+.f64 (*.f64 -1/4 (pow.f64 i 2)) (*.f64 -4 (pow.f64 i 6)))))
(+.f64 (+.f64 (*.f64 -1 (pow.f64 i 4)) (+.f64 (*.f64 -1/4 (pow.f64 i 2)) (*.f64 -4 (pow.f64 i 6)))) (*.f64 -16 (pow.f64 i 8)))
(+.f64 (+.f64 (*.f64 -1/4 (pow.f64 i 2)) (*.f64 -4 (pow.f64 i 6))) (+.f64 (*.f64 -1 (pow.f64 i 4)) (*.f64 -16 (pow.f64 i 8))))
(+.f64 (*.f64 -1 (pow.f64 i 4)) (+.f64 (+.f64 (*.f64 -1/4 (pow.f64 i 2)) (*.f64 -4 (pow.f64 i 6))) (*.f64 -16 (pow.f64 i 8))))
(+.f64 (*.f64 -1/4 (pow.f64 i 2)) (+.f64 (*.f64 -4 (pow.f64 i 6)) (+.f64 (*.f64 -1 (pow.f64 i 4)) (*.f64 -16 (pow.f64 i 8)))))
(+.f64 (*.f64 -1/4 (pow.f64 i 2)) (+.f64 (*.f64 -1 (pow.f64 i 4)) (+.f64 (*.f64 -4 (pow.f64 i 6)) (*.f64 -16 (pow.f64 i 8)))))
(+.f64 (*.f64 -1/4 (pow.f64 i 2)) (+.f64 (*.f64 -16 (pow.f64 i 8)) (+.f64 (*.f64 -1 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 6)))))
1/16
(+.f64 1/16 (*.f64 1/64 (/.f64 1 (pow.f64 i 2))))
(+.f64 (*.f64 1/256 (/.f64 1 (pow.f64 i 4))) (+.f64 1/16 (*.f64 1/64 (/.f64 1 (pow.f64 i 2)))))
(+.f64 (+.f64 1/16 (*.f64 1/64 (/.f64 1 (pow.f64 i 2)))) (*.f64 1/256 (/.f64 1 (pow.f64 i 4))))
(+.f64 1/16 (+.f64 (*.f64 1/64 (/.f64 1 (pow.f64 i 2))) (*.f64 1/256 (/.f64 1 (pow.f64 i 4)))))
(+.f64 (*.f64 1/256 (/.f64 1 (pow.f64 i 4))) (+.f64 1/16 (+.f64 (*.f64 1/1024 (/.f64 1 (pow.f64 i 6))) (*.f64 1/64 (/.f64 1 (pow.f64 i 2))))))
(+.f64 (*.f64 1/256 (/.f64 1 (pow.f64 i 4))) (+.f64 1/16 (+.f64 (*.f64 1/64 (/.f64 1 (pow.f64 i 2))) (*.f64 1/1024 (/.f64 1 (pow.f64 i 6))))))
(+.f64 1/16 (+.f64 (*.f64 1/64 (/.f64 1 (pow.f64 i 2))) (+.f64 (*.f64 1/256 (/.f64 1 (pow.f64 i 4))) (*.f64 1/1024 (/.f64 1 (pow.f64 i 6))))))
1/16
(+.f64 1/16 (*.f64 1/64 (/.f64 1 (pow.f64 i 2))))
(+.f64 (*.f64 1/256 (/.f64 1 (pow.f64 i 4))) (+.f64 1/16 (*.f64 1/64 (/.f64 1 (pow.f64 i 2)))))
(+.f64 (+.f64 1/16 (*.f64 1/64 (/.f64 1 (pow.f64 i 2)))) (*.f64 1/256 (/.f64 1 (pow.f64 i 4))))
(+.f64 1/16 (+.f64 (*.f64 1/64 (/.f64 1 (pow.f64 i 2))) (*.f64 1/256 (/.f64 1 (pow.f64 i 4)))))
(+.f64 (*.f64 1/256 (/.f64 1 (pow.f64 i 4))) (+.f64 1/16 (+.f64 (*.f64 1/1024 (/.f64 1 (pow.f64 i 6))) (*.f64 1/64 (/.f64 1 (pow.f64 i 2))))))
(+.f64 (*.f64 1/256 (/.f64 1 (pow.f64 i 4))) (+.f64 1/16 (+.f64 (*.f64 1/64 (/.f64 1 (pow.f64 i 2))) (*.f64 1/1024 (/.f64 1 (pow.f64 i 6))))))
(+.f64 1/16 (+.f64 (*.f64 1/64 (/.f64 1 (pow.f64 i 2))) (+.f64 (*.f64 1/256 (/.f64 1 (pow.f64 i 4))) (*.f64 1/1024 (/.f64 1 (pow.f64 i 6))))))
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(pow.f64 i 4)
(*.f64 -4 (pow.f64 i 2))
(*.f64 (pow.f64 i 2) -4)
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(+.f64 (*.f64 (pow.f64 i 2) -4) (*.f64 (pow.f64 i 4) 16))
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(+.f64 (*.f64 (pow.f64 i 2) -4) (*.f64 (pow.f64 i 4) 16))
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(+.f64 (*.f64 (pow.f64 i 2) -4) (*.f64 (pow.f64 i 4) 16))
(*.f64 16 (pow.f64 i 4))
(*.f64 (pow.f64 i 4) 16)
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(+.f64 (*.f64 (pow.f64 i 2) -4) (*.f64 (pow.f64 i 4) 16))
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(+.f64 (*.f64 (pow.f64 i 2) -4) (*.f64 (pow.f64 i 4) 16))
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(+.f64 (*.f64 (pow.f64 i 2) -4) (*.f64 (pow.f64 i 4) 16))
(*.f64 16 (pow.f64 i 4))
(*.f64 (pow.f64 i 4) 16)
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(+.f64 (*.f64 (pow.f64 i 2) -4) (*.f64 (pow.f64 i 4) 16))
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(+.f64 (*.f64 (pow.f64 i 2) -4) (*.f64 (pow.f64 i 4) 16))
(+.f64 (*.f64 16 (pow.f64 i 4)) (*.f64 -4 (pow.f64 i 2)))
(+.f64 (*.f64 (pow.f64 i 2) -4) (*.f64 (pow.f64 i 4) 16))
(*.f64 -4 (pow.f64 i 2))
(*.f64 (pow.f64 i 2) -4)
(*.f64 -4 (pow.f64 i 2))
(*.f64 (pow.f64 i 2) -4)
(*.f64 -4 (pow.f64 i 2))
(*.f64 (pow.f64 i 2) -4)
(*.f64 -4 (pow.f64 i 2))
(*.f64 (pow.f64 i 2) -4)
(*.f64 -4 (pow.f64 i 2))
(*.f64 (pow.f64 i 2) -4)
(*.f64 -4 (pow.f64 i 2))
(*.f64 (pow.f64 i 2) -4)
(*.f64 -4 (pow.f64 i 2))
(*.f64 (pow.f64 i 2) -4)
(*.f64 -4 (pow.f64 i 2))
(*.f64 (pow.f64 i 2) -4)
(*.f64 -4 (pow.f64 i 2))
(*.f64 (pow.f64 i 2) -4)
(*.f64 -4 (pow.f64 i 2))
(*.f64 (pow.f64 i 2) -4)
(*.f64 -4 (pow.f64 i 2))
(*.f64 (pow.f64 i 2) -4)
(*.f64 -4 (pow.f64 i 2))
(*.f64 (pow.f64 i 2) -4)
(+.f64 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 (*.f64 i i) -4)))))) 0)
(+.f64 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 -4 (*.f64 i i))))))) 0)
(+.f64 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 i (*.f64 -4 i))))))) 0)
(+.f64 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 i (*.f64 i -4))))))) 0)
(+.f64 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 i (*.f64 (+.f64 1 (*.f64 i (*.f64 i -4))) (*.f64 i -4)))) 0)
(+.f64 0 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 (*.f64 i i) -4)))))))
(+.f64 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 -4 (*.f64 i i))))))) 0)
(+.f64 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 i (*.f64 -4 i))))))) 0)
(+.f64 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 i (*.f64 i -4))))))) 0)
(+.f64 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 i (*.f64 (+.f64 1 (*.f64 i (*.f64 i -4))) (*.f64 i -4)))) 0)
(*.f64 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 (*.f64 i i) -4)))))) 1)
(*.f64 1 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 -4 (*.f64 i i))))))))
(*.f64 1 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 i (*.f64 -4 i))))))))
(*.f64 1 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 i (*.f64 i -4))))))))
(*.f64 1 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 i (*.f64 (+.f64 1 (*.f64 i (*.f64 i -4))) (*.f64 i -4)))))
(*.f64 1 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 (*.f64 i i) -4)))))))
(*.f64 1 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 -4 (*.f64 i i))))))))
(*.f64 1 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 i (*.f64 -4 i))))))))
(*.f64 1 (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 i (*.f64 i -4))))))))
(*.f64 1 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 i (*.f64 (+.f64 1 (*.f64 i (*.f64 i -4))) (*.f64 i -4)))))
(+.f64 (*.f64 i (*.f64 i (*.f64 i i))) 0)
(+.f64 (*.f64 (*.f64 i i) (*.f64 i i)) 0)
(+.f64 0 (*.f64 i (*.f64 i (*.f64 i i))))
(+.f64 (*.f64 i (*.f64 i (*.f64 i i))) 0)
(+.f64 (*.f64 (*.f64 i i) (*.f64 i i)) 0)
(+.f64 (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 (*.f64 i i) -4))))) 0)
(+.f64 (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 -4 (*.f64 i i)))))) 0)
(+.f64 (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 i (*.f64 -4 i)))))) 0)
(+.f64 (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 i (*.f64 i -4)))))) 0)
(+.f64 (*.f64 i (*.f64 (+.f64 1 (*.f64 i (*.f64 i -4))) (*.f64 i -4))) 0)
(+.f64 0 (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 (*.f64 i i) -4))))))
(+.f64 (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 -4 (*.f64 i i)))))) 0)
(+.f64 (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 i (*.f64 -4 i)))))) 0)
(+.f64 (*.f64 i (*.f64 i (*.f64 -4 (+.f64 1 (*.f64 i (*.f64 i -4)))))) 0)
(+.f64 (*.f64 i (*.f64 (+.f64 1 (*.f64 i (*.f64 i -4))) (*.f64 i -4))) 0)
(+.f64 0 (*.f64 (*.f64 i i) -4))
(*.f64 -4 (*.f64 i i))
(*.f64 i (*.f64 -4 i))
(*.f64 i (*.f64 i -4))
(+.f64 (*.f64 (*.f64 i i) -4) 0)
(*.f64 -4 (*.f64 i i))
(*.f64 i (*.f64 -4 i))
(*.f64 i (*.f64 i -4))
(-.f64 0 (*.f64 i (*.f64 i 4)))
(*.f64 -4 (*.f64 i i))
(*.f64 i (*.f64 -4 i))
(*.f64 i (*.f64 i -4))
(-.f64 (*.f64 (*.f64 i i) -4) 0)
(*.f64 -4 (*.f64 i i))
(*.f64 i (*.f64 -4 i))
(*.f64 i (*.f64 i -4))
(neg.f64 (*.f64 i (*.f64 i 4)))
(*.f64 -4 (*.f64 i i))
(*.f64 i (*.f64 -4 i))
(*.f64 i (*.f64 i -4))

eval27.0ms (1.8%)

Compiler

Compiled 1896 to 1155 computations (39.1% saved)

prune12.0ms (0.8%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New94296
Fresh000
Picked011
Done011
Total94498
Error
0.0b
Counts
98 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
47.3b
(/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 (-.f64 -1 (*.f64 (*.f64 i i) -4)) (*.f64 i (*.f64 i 4))))
47.3b
(/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 (+.f64 -1 (*.f64 (*.f64 i i) 4)) (*.f64 (*.f64 i i) 4)))
34.6b
(*.f64 -1/4 (pow.f64 i 2))
29.6b
1/16
Compiler

Compiled 52 to 31 computations (40.4% saved)

localize5.0ms (0.3%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.6b
(*.f64 -1/4 (pow.f64 i 2))
Compiler

Compiled 12 to 9 computations (25% saved)

series1.0ms (0%)

Counts
1 → 0
Calls

3 calls:

TimeVariablePointExpression
0.0ms
i
@inf
(*.f64 -1/4 (pow.f64 i 2))
0.0ms
i
@0
(*.f64 -1/4 (pow.f64 i 2))
0.0ms
i
@-inf
(*.f64 -1/4 (pow.f64 i 2))

rewrite7.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
22×bool.json-1
16×rational.json-simplify-2
14×rational.json-1
14×rational.json-2
14×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
13313
25513
36013
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 -1/4 (pow.f64 i 2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -1/4 (pow.f64 i 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -1/4 (pow.f64 i 2)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 -1/4 (pow.f64 i 2)) (*.f64 -1/4 (pow.f64 i 2)))))))

simplify4.0ms (0.3%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01038
11138
Stop Event
saturated
Counts
2 → 2
Calls
Call 1
Inputs
(+.f64 (*.f64 -1/4 (pow.f64 i 2)) 0)
(+.f64 0 (*.f64 -1/4 (pow.f64 i 2)))
Outputs
(+.f64 (*.f64 -1/4 (pow.f64 i 2)) 0)
(+.f64 0 (*.f64 -1/4 (pow.f64 i 2)))
(+.f64 (*.f64 -1/4 (pow.f64 i 2)) 0)

eval1.0ms (0%)

Compiler

Compiled 15 to 13 computations (13.3% saved)

prune2.0ms (0.1%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New202
Fresh011
Picked011
Done022
Total246
Error
0.0b
Counts
6 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
47.3b
(/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 (-.f64 -1 (*.f64 (*.f64 i i) -4)) (*.f64 i (*.f64 i 4))))
47.3b
(/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 (+.f64 -1 (*.f64 (*.f64 i i) 4)) (*.f64 (*.f64 i i) 4)))
34.6b
(*.f64 -1/4 (pow.f64 i 2))
29.6b
1/16
Compiler

Compiled 52 to 31 computations (40.4% saved)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune2.0ms (0.1%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done033
Total044
Error
0.0b
Counts
4 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
47.3b
(/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 (-.f64 -1 (*.f64 (*.f64 i i) -4)) (*.f64 i (*.f64 i 4))))
47.3b
(/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 (+.f64 -1 (*.f64 (*.f64 i i) 4)) (*.f64 (*.f64 i i) 4)))
34.6b
(*.f64 -1/4 (pow.f64 i 2))
29.6b
1/16
Compiler

Compiled 52 to 31 computations (40.4% saved)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune2.0ms (0.1%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done033
Total044
Error
0.0b
Counts
4 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
47.3b
(/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 (-.f64 -1 (*.f64 (*.f64 i i) -4)) (*.f64 i (*.f64 i 4))))
47.3b
(/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 (+.f64 -1 (*.f64 (*.f64 i i) 4)) (*.f64 (*.f64 i i) 4)))
34.6b
(*.f64 -1/4 (pow.f64 i 2))
29.6b
1/16
Compiler

Compiled 52 to 31 computations (40.4% saved)

regimes21.0ms (1.4%)

Counts
5 → 3
Calls
Call 1
Inputs
1/16
(/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 (+.f64 -1 (*.f64 (*.f64 i i) 4)) (*.f64 (*.f64 i i) 4)))
(/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 (-.f64 -1 (*.f64 (*.f64 i i) -4)) (*.f64 i (*.f64 i 4))))
(/.f64 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 (*.f64 2 i) (*.f64 2 i))) (-.f64 (*.f64 (*.f64 2 i) (*.f64 2 i)) 1))
(*.f64 -1/4 (pow.f64 i 2))
Outputs
(*.f64 -1/4 (pow.f64 i 2))
(/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 (+.f64 -1 (*.f64 (*.f64 i i) 4)) (*.f64 (*.f64 i i) 4)))
1/16
Calls

2 calls:

12.0ms
i
8.0ms
(/.f64 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 (*.f64 2 i) (*.f64 2 i))) (-.f64 (*.f64 (*.f64 2 i) (*.f64 2 i)) 1))
Results
ErrorSegmentsBranch
0.0b3i
16.4b2(/.f64 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 (*.f64 2 i) (*.f64 2 i))) (-.f64 (*.f64 (*.f64 2 i) (*.f64 2 i)) 1))
Compiler

Compiled 102 to 59 computations (42.2% saved)

bsearch9.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
2.0ms
125454.83914769307
264623824737.84637
6.0ms
7.919444227186461e-16
1.6404637156560337e-11
Results
8.0ms48×body256valid
Compiler

Compiled 116 to 74 computations (36.2% saved)

regimes13.0ms (0.8%)

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

2 calls:

7.0ms
i
5.0ms
(/.f64 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 (*.f64 2 i) (*.f64 2 i))) (-.f64 (*.f64 (*.f64 2 i) (*.f64 2 i)) 1))
Results
ErrorSegmentsBranch
20.5b2i
20.0b2(/.f64 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 (*.f64 2 i) (*.f64 2 i))) (-.f64 (*.f64 (*.f64 2 i) (*.f64 2 i)) 1))
Compiler

Compiled 97 to 55 computations (43.3% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.06278568778622785
+inf
Compiler

Compiled 30 to 20 computations (33.3% saved)

regimes8.0ms (0.6%)

Accuracy

Total -36.3b remaining (-176.9%)

Threshold costs -36.3b (-176.9%)

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

1 calls:

8.0ms
i
Results
ErrorSegmentsBranch
20.5b2i
Compiler

Compiled 25 to 14 computations (44% saved)

bsearch2.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
2.0ms
125454.83914769307
264623824737.84637
Results
2.0ms16×body256valid
Compiler

Compiled 56 to 36 computations (35.7% saved)

simplify4.0ms (0.3%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
043308
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(if (<=.f64 i 3961408125713217/19807040628566084398385987584) (*.f64 -1/4 (pow.f64 i 2)) (if (<=.f64 i 200000) (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 (+.f64 -1 (*.f64 (*.f64 i i) 4)) (*.f64 (*.f64 i i) 4))) 1/16))
(if (<=.f64 (/.f64 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 (*.f64 2 i) (*.f64 2 i))) (-.f64 (*.f64 (*.f64 2 i) (*.f64 2 i)) 1)) 3602879701896397/36028797018963968) (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 (-.f64 -1 (*.f64 (*.f64 i i) -4)) (*.f64 i (*.f64 i 4)))) 1/16)
(if (<=.f64 i 200000) (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 (+.f64 -1 (*.f64 (*.f64 i i) 4)) (*.f64 (*.f64 i i) 4))) 1/16)
1/16
Outputs
(if (<=.f64 i 3961408125713217/19807040628566084398385987584) (*.f64 -1/4 (pow.f64 i 2)) (if (<=.f64 i 200000) (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 (+.f64 -1 (*.f64 (*.f64 i i) 4)) (*.f64 (*.f64 i i) 4))) 1/16))
(if (<=.f64 (/.f64 (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 (*.f64 2 i) (*.f64 2 i))) (-.f64 (*.f64 (*.f64 2 i) (*.f64 2 i)) 1)) 3602879701896397/36028797018963968) (/.f64 (*.f64 (*.f64 i i) (*.f64 i i)) (*.f64 (-.f64 -1 (*.f64 (*.f64 i i) -4)) (*.f64 i (*.f64 i 4)))) 1/16)
(if (<=.f64 i 200000) (/.f64 (*.f64 i (*.f64 i (*.f64 i i))) (*.f64 (+.f64 -1 (*.f64 (*.f64 i i) 4)) (*.f64 (*.f64 i i) 4))) 1/16)
1/16
Compiler

Compiled 116 to 71 computations (38.8% saved)

soundness125.0ms (8.3%)

Algorithm
egg-herbie
Rules
1580×rational.json-simplify-31
1580×rational.json-simplify-31
1580×rational.json-simplify-31
572×rational.json-simplify-2
572×rational.json-simplify-2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01273
12673
24373
37261
412961
523661
646261
757461
858061
958461
1058561
1158561
1258561
13110461
14130961
01273
12673
24373
37261
412961
523661
646261
757461
858061
958461
1058561
1158561
1258561
13110461
14130961
01273
12673
24373
37261
412961
523661
646261
757461
858061
958461
1058561
1158561
1258561
13110461
14130961
Stop Event
saturated
saturated
saturated
Compiler

Compiled 1314 to 699 computations (46.8% saved)

end44.0ms (2.9%)

Compiler

Compiled 113 to 64 computations (43.4% saved)

Profiling

Loading profile data...