Details

Time bar (total: 17.5s)

analyze306.0ms (1.7%)

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
18.8%18.7%81.1%0.1%0%0%0%8
25.6%25%72.5%0.1%2.3%0%0%9
35.6%34.3%62%0.1%3.5%0%0%10
44.1%41.3%52.5%0.1%6%0%0%11
50.9%46.8%45.1%0.1%7.9%0%0%12
Compiler

Compiled 17 to 12 computations (29.4% saved)

sample2.9s (16.7%)

Results
2.7s8226×body256valid
172.0ms1345×body256infinite
3.0ms14×body1024valid
3.0ms16×body512valid
Bogosity

preprocess10.0ms (0.1%)

Algorithm
egg-herbie
Rules
182×rational.json-simplify-1
124×rational.json-simplify-41
52×rational.json-simplify-2
36×rational.json-simplify-51
swap-d2-d3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
029124
159100
291100
315376
420276
524276
625776
033
133
Stop Event
unsound
saturated
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
2
1
Call 2
Inputs
(+.f64 (+.f64 (*.f64 d1 d2) (*.f64 (+.f64 d3 5) d1)) (*.f64 d1 32))
(+.f64 (+.f64 (*.f64 d2 d1) (*.f64 (+.f64 d3 5) d2)) (*.f64 d2 32))
(+.f64 (+.f64 (*.f64 d3 d2) (*.f64 (+.f64 d1 5) d3)) (*.f64 d3 32))
(+.f64 (+.f64 (*.f64 d1 d3) (*.f64 (+.f64 d2 5) d1)) (*.f64 d1 32))
Outputs
(+.f64 (+.f64 (*.f64 d1 d2) (*.f64 (+.f64 d3 5) d1)) (*.f64 d1 32))
(+.f64 (*.f64 d1 (+.f64 (+.f64 d3 5) d2)) (*.f64 d1 32))
(*.f64 d1 (+.f64 32 (+.f64 d2 (+.f64 d3 5))))
(*.f64 d1 (+.f64 (+.f64 d3 5) (+.f64 d2 32)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 37)))
(+.f64 (+.f64 (*.f64 d2 d1) (*.f64 (+.f64 d3 5) d2)) (*.f64 d2 32))
(+.f64 (*.f64 d2 (+.f64 (+.f64 d3 5) d1)) (*.f64 d2 32))
(*.f64 d2 (+.f64 32 (+.f64 d1 (+.f64 d3 5))))
(*.f64 d2 (+.f64 (+.f64 d3 5) (+.f64 d1 32)))
(*.f64 d2 (+.f64 d1 (+.f64 d3 37)))
(*.f64 d2 (+.f64 (+.f64 d1 d3) 37))
(+.f64 (+.f64 (*.f64 d3 d2) (*.f64 (+.f64 d1 5) d3)) (*.f64 d3 32))
(+.f64 (*.f64 d3 (+.f64 (+.f64 d1 5) d2)) (*.f64 d3 32))
(*.f64 d3 (+.f64 32 (+.f64 d2 (+.f64 d1 5))))
(*.f64 d3 (+.f64 d2 (+.f64 (+.f64 d1 5) 32)))
(*.f64 d3 (+.f64 d1 (+.f64 d2 37)))
(+.f64 (+.f64 (*.f64 d1 d3) (*.f64 (+.f64 d2 5) d1)) (*.f64 d1 32))
(+.f64 (*.f64 d1 (+.f64 (+.f64 d3 5) d2)) (*.f64 d1 32))
(*.f64 d1 (+.f64 32 (+.f64 d2 (+.f64 d3 5))))
(*.f64 d1 (+.f64 (+.f64 d3 5) (+.f64 d2 32)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 37)))
Symmetry

(sort d2 d3)

Compiler

Compiled 19 to 14 computations (26.3% saved)

simplify9.0ms (0%)

Algorithm
egg-herbie
Rules
68×rational.json-simplify-1
40×rational.json-simplify-41
14×rational.json-simplify-2
12×rational.json-simplify-51
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01331
12125
22925
34719
46619
58419
69419
Stop Event
saturated
Counts
1 → 5
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 d1 d2) (*.f64 (+.f64 d3 5) d1)) (*.f64 d1 32))
Outputs
(+.f64 (+.f64 (*.f64 d1 d2) (*.f64 (+.f64 d3 5) d1)) (*.f64 d1 32))
(+.f64 (*.f64 d1 (+.f64 (+.f64 d3 5) d2)) (*.f64 d1 32))
(*.f64 d1 (+.f64 32 (+.f64 d2 (+.f64 d3 5))))
(*.f64 d1 (+.f64 (+.f64 d3 5) (+.f64 d2 32)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 37)))

eval1.0ms (0%)

Compiler

Compiled 52 to 34 computations (34.6% saved)

prune2.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New325
Fresh101
Picked000
Done000
Total426
Error
0.0b
Counts
6 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 d1 (+.f64 (+.f64 d3 5) d2)) (*.f64 d1 32))
0.0b
(*.f64 d1 (+.f64 d2 (+.f64 d3 37)))
Compiler

Compiled 24 to 17 computations (29.2% saved)

localize8.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 d1 (+.f64 d2 (+.f64 d3 37)))
Compiler

Compiled 22 to 13 computations (40.9% saved)

series57.0ms (0.3%)

Counts
1 → 36
Calls

9 calls:

TimeVariablePointExpression
54.0ms
d2
@inf
(*.f64 d1 (+.f64 d2 (+.f64 d3 37)))
0.0ms
d1
@0
(*.f64 d1 (+.f64 d2 (+.f64 d3 37)))
0.0ms
d1
@-inf
(*.f64 d1 (+.f64 d2 (+.f64 d3 37)))
0.0ms
d1
@inf
(*.f64 d1 (+.f64 d2 (+.f64 d3 37)))
0.0ms
d3
@inf
(*.f64 d1 (+.f64 d2 (+.f64 d3 37)))

rewrite96.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
1662×bool.json-1
1662×bool.json-2
1628×rational.json-1
1628×rational.json-2
1074×bool.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
19119
224819
352919
4115819
5277919
6608319
Stop Event
node limit
Counts
1 → 10
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 d2 (+.f64 d3 37)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (+.f64 d2 (+.f64 d3 37))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 d1 (+.f64 d2 (+.f64 d3 37))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (*.f64 (+.f64 d2 (+.f64 d3 37)) 1/2)) (*.f64 d1 (*.f64 (+.f64 d2 (+.f64 d3 37)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (+.f64 d2 (+.f64 d3 37))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (+.f64 d2 (+.f64 d3 37))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 d2 (+.f64 d3 37)) (+.f64 d1 d1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 (+.f64 d2 (+.f64 d3 37)) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 d3 37))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 d3 37))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 d3 37))) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 d3 37))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 d1 (+.f64 d2 (+.f64 d3 37)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 d1 (+.f64 d2 (+.f64 d3 37))) (*.f64 d1 (+.f64 d2 (+.f64 d3 37))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 d1 (+.f64 d2 (+.f64 d3 37))) (*.f64 d1 (+.f64 d2 (+.f64 d3 37))))))))

simplify824.0ms (4.7%)

Algorithm
egg-herbie
Rules
3492×rational.json-simplify-35
3074×rational.json-simplify-1
2368×rational.json-simplify-41
2304×rational.json-simplify-2
1070×rational.json-simplify-53
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
049814
1105814
2186814
3448814
41781814
52875814
63314814
73597814
83769814
93895814
105714814
116134814
126272814
136276814
146360814
156508814
166599814
176675814
186839814
196962814
207085814
217208814
227331814
237454814
247577814
257700814
Stop Event
node limit
Counts
46 → 21
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 37 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 37 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 37 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 37 d3)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 (+.f64 37 d3) d1)
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 37 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 37 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 37 d3) d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 37 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 37 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 37 d3) d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 37 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 37 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 37 d3) d1))
(*.f64 d1 (+.f64 d2 37))
(+.f64 (*.f64 d1 (+.f64 d2 37)) (*.f64 d1 d3))
(+.f64 (*.f64 d1 (+.f64 d2 37)) (*.f64 d1 d3))
(+.f64 (*.f64 d1 (+.f64 d2 37)) (*.f64 d1 d3))
(*.f64 d1 d3)
(+.f64 (*.f64 d1 (+.f64 d2 37)) (*.f64 d1 d3))
(+.f64 (*.f64 d1 (+.f64 d2 37)) (*.f64 d1 d3))
(+.f64 (*.f64 d1 (+.f64 d2 37)) (*.f64 d1 d3))
(*.f64 d1 d3)
(+.f64 (*.f64 d1 (+.f64 d2 37)) (*.f64 d1 d3))
(+.f64 (*.f64 d1 (+.f64 d2 37)) (*.f64 d1 d3))
(+.f64 (*.f64 d1 (+.f64 d2 37)) (*.f64 d1 d3))
(+.f64 (*.f64 d1 (+.f64 d2 (+.f64 d3 37))) 0)
(+.f64 0 (*.f64 d1 (+.f64 d2 (+.f64 d3 37))))
(+.f64 (*.f64 d1 (*.f64 (+.f64 d2 (+.f64 d3 37)) 1/2)) (*.f64 d1 (*.f64 (+.f64 d2 (+.f64 d3 37)) 1/2)))
(-.f64 (*.f64 d1 (+.f64 d2 (+.f64 d3 37))) 0)
(/.f64 (*.f64 d1 (+.f64 d2 (+.f64 d3 37))) 1)
(/.f64 (*.f64 (+.f64 d2 (+.f64 d3 37)) (+.f64 d1 d1)) 2)
(/.f64 (*.f64 d1 (*.f64 (+.f64 d2 (+.f64 d3 37)) 4)) 4)
(/.f64 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 d3 37))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 d3 37))) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 d3 37))) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 d3 37))) 8))) 32)
Outputs
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 37 d3)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 37 d3)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 37 d3)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 37 d3)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 (+.f64 37 d3) d1)
(*.f64 d1 (+.f64 37 d3))
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 37 d3) d1))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 37 d3) d1))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 37 d3) d1))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 37 d3) d1))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 37 d3) d1))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 37 d3) d1))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 37 d3) d1))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 37 d3) d1))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 37 d3) d1))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 37))
(*.f64 d1 (+.f64 37 d2))
(+.f64 (*.f64 d1 (+.f64 d2 37)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(+.f64 (*.f64 d1 (+.f64 d2 37)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(+.f64 (*.f64 d1 (+.f64 d2 37)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 d3)
(+.f64 (*.f64 d1 (+.f64 d2 37)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(+.f64 (*.f64 d1 (+.f64 d2 37)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(+.f64 (*.f64 d1 (+.f64 d2 37)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 d3)
(+.f64 (*.f64 d1 (+.f64 d2 37)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(+.f64 (*.f64 d1 (+.f64 d2 37)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(+.f64 (*.f64 d1 (+.f64 d2 37)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(+.f64 (*.f64 d1 (+.f64 d2 (+.f64 d3 37))) 0)
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(+.f64 0 (*.f64 d1 (+.f64 d2 (+.f64 d3 37))))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(+.f64 (*.f64 d1 (*.f64 (+.f64 d2 (+.f64 d3 37)) 1/2)) (*.f64 d1 (*.f64 (+.f64 d2 (+.f64 d3 37)) 1/2)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(-.f64 (*.f64 d1 (+.f64 d2 (+.f64 d3 37))) 0)
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(/.f64 (*.f64 d1 (+.f64 d2 (+.f64 d3 37))) 1)
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(/.f64 (*.f64 (+.f64 d2 (+.f64 d3 37)) (+.f64 d1 d1)) 2)
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(/.f64 (*.f64 d1 (*.f64 (+.f64 d2 (+.f64 d3 37)) 4)) 4)
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(/.f64 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 d3 37))) 8) 8)
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 d3 37))) 8)) 16)
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 d3 37))) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 d3 37))) 8))) 32)
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))

localize13.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 d1 (+.f64 (+.f64 d3 5) d2))
0.1b
(+.f64 (*.f64 d1 (+.f64 (+.f64 d3 5) d2)) (*.f64 d1 32))
Compiler

Compiled 37 to 23 computations (37.8% saved)

series5.0ms (0%)

Counts
2 → 72
Calls

18 calls:

TimeVariablePointExpression
1.0ms
d1
@0
(+.f64 (*.f64 d1 (+.f64 (+.f64 d3 5) d2)) (*.f64 d1 32))
1.0ms
d1
@inf
(+.f64 (*.f64 d1 (+.f64 (+.f64 d3 5) d2)) (*.f64 d1 32))
1.0ms
d1
@-inf
(+.f64 (*.f64 d1 (+.f64 (+.f64 d3 5) d2)) (*.f64 d1 32))
0.0ms
d3
@0
(+.f64 (*.f64 d1 (+.f64 (+.f64 d3 5) d2)) (*.f64 d1 32))
0.0ms
d2
@0
(+.f64 (*.f64 d1 (+.f64 (+.f64 d3 5) d2)) (*.f64 d1 32))

rewrite89.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
1638×bool.json-1
1638×bool.json-2
1600×rational.json-1
1600×rational.json-2
1600×rational.json-3
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01250
111844
229644
364338
4145838
5315338
6599038
Stop Event
node limit
Counts
2 → 43
Calls
Call 1
Inputs
(+.f64 (*.f64 d1 (+.f64 (+.f64 d3 5) d2)) (*.f64 d1 32))
(*.f64 d1 (+.f64 (+.f64 d3 5) d2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (+.f64 (+.f64 d3 d2) 37))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 d1 (/.f64 (+.f64 (+.f64 d3 d2) 37) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 d1 16) (*.f64 (+.f64 d3 (+.f64 5 d2)) (*.f64 d1 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (+.f64 d3 (+.f64 5 d2)) (*.f64 d1 1/2)) (*.f64 d1 16)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (*.f64 (+.f64 (+.f64 d3 d2) 37) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (/.f64 (+.f64 (+.f64 d3 d2) 37) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (+.f64 16 (*.f64 (+.f64 d3 (+.f64 5 d2)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (+.f64 (*.f64 (+.f64 d3 (+.f64 5 d2)) 1/2) 16))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 d3 d2) 37) d1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (*.f64 (+.f64 (+.f64 d3 d2) 37) 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 (+.f64 d3 d2) 37)) (*.f64 d1 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 d1 64) (*.f64 d1 (*.f64 (+.f64 d3 (+.f64 5 d2)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 d1 (*.f64 (+.f64 d3 (+.f64 5 d2)) 2)) (*.f64 d1 64)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 (+.f64 d3 d2) 37)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (+.f64 64 (*.f64 (+.f64 d3 (+.f64 5 d2)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (+.f64 (*.f64 (+.f64 d3 (+.f64 5 d2)) 2) 64))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (/.f64 (+.f64 (+.f64 d3 d2) 37) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (+.f64 d3 d2) 37) 1/2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 d1 (*.f64 (+.f64 (+.f64 d3 d2) 37) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (+.f64 d3 d2) 37) 2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 (+.f64 (+.f64 d3 d2) 37) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 d1 (+.f64 (+.f64 d3 d2) 37))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (+.f64 d3 (+.f64 5 d2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 d1 (+.f64 d3 (+.f64 5 d2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 d3 (+.f64 5 d2)) (*.f64 d1 1/2)) (*.f64 (+.f64 d3 (+.f64 5 d2)) (*.f64 d1 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (+.f64 d3 (+.f64 5 d2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (+.f64 d3 (+.f64 5 d2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 (+.f64 d3 (+.f64 5 d2)) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 d3 (+.f64 5 d2)) (*.f64 d1 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (+.f64 d3 (+.f64 5 d2))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d3 (+.f64 5 d2))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d3 (+.f64 5 d2))) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d3 (+.f64 5 d2))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 d1 (+.f64 d3 (+.f64 5 d2)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 d1 (+.f64 d3 (+.f64 5 d2))) (*.f64 d1 (+.f64 d3 (+.f64 5 d2))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 d1 (+.f64 d3 (+.f64 5 d2))) (*.f64 d1 (+.f64 d3 (+.f64 5 d2))))))))

simplify1.1s (6.4%)

Algorithm
egg-herbie
Rules
3836×rational.json-simplify-35
2780×rational.json-simplify-2
1260×rational.json-simplify-1
1136×rational.json-simplify-53
888×rational.json-simplify-51
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01302281
12602221
25572209
316942209
437742209
547982209
649762209
751182209
852482209
953732209
1054942209
1160372209
1264272209
1365522209
1466402209
1566672209
1666782209
1766782209
1867982209
1969192209
2070402209
2171612209
2272822209
2375162209
2476382209
2577612209
2678852209
Stop Event
node limit
Counts
115 → 81
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 37 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 37 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 37 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 37 d3)))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 (+.f64 5 (+.f64 d2 d3))) 32)))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 (+.f64 5 (+.f64 d2 d3))) 32)))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 (+.f64 5 (+.f64 d2 d3))) 32)))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 (+.f64 5 (+.f64 d2 d3))) 32)))
(+.f64 (*.f64 32 d1) (*.f64 d1 (+.f64 d2 5)))
(+.f64 (*.f64 32 d1) (+.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 d2 5))))
(+.f64 (*.f64 32 d1) (+.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 d2 5))))
(+.f64 (*.f64 32 d1) (+.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 d2 5))))
(*.f64 d1 d3)
(+.f64 (*.f64 32 d1) (+.f64 (*.f64 d1 (+.f64 d2 5)) (*.f64 d1 d3)))
(+.f64 (*.f64 32 d1) (+.f64 (*.f64 d1 (+.f64 d2 5)) (*.f64 d1 d3)))
(+.f64 (*.f64 32 d1) (+.f64 (*.f64 d1 (+.f64 d2 5)) (*.f64 d1 d3)))
(*.f64 d1 d3)
(+.f64 (*.f64 32 d1) (+.f64 (*.f64 d1 (+.f64 d2 5)) (*.f64 d1 d3)))
(+.f64 (*.f64 32 d1) (+.f64 (*.f64 d1 (+.f64 d2 5)) (*.f64 d1 d3)))
(+.f64 (*.f64 32 d1) (+.f64 (*.f64 d1 (+.f64 d2 5)) (*.f64 d1 d3)))
(+.f64 (*.f64 32 d1) (*.f64 (+.f64 5 d3) d1))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 32 d1) (*.f64 (+.f64 5 d3) d1)))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 32 d1) (*.f64 (+.f64 5 d3) d1)))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 32 d1) (*.f64 (+.f64 5 d3) d1)))
(*.f64 d2 d1)
(+.f64 (*.f64 32 d1) (+.f64 (*.f64 d2 d1) (*.f64 (+.f64 5 d3) d1)))
(+.f64 (*.f64 32 d1) (+.f64 (*.f64 d2 d1) (*.f64 (+.f64 5 d3) d1)))
(+.f64 (*.f64 32 d1) (+.f64 (*.f64 d2 d1) (*.f64 (+.f64 5 d3) d1)))
(*.f64 d2 d1)
(+.f64 (*.f64 32 d1) (+.f64 (*.f64 d2 d1) (*.f64 (+.f64 5 d3) d1)))
(+.f64 (*.f64 32 d1) (+.f64 (*.f64 d2 d1) (*.f64 (+.f64 5 d3) d1)))
(+.f64 (*.f64 32 d1) (+.f64 (*.f64 d2 d1) (*.f64 (+.f64 5 d3) d1)))
(*.f64 (+.f64 5 (+.f64 d2 d3)) d1)
(*.f64 (+.f64 5 (+.f64 d2 d3)) d1)
(*.f64 (+.f64 5 (+.f64 d2 d3)) d1)
(*.f64 (+.f64 5 (+.f64 d2 d3)) d1)
(*.f64 (+.f64 5 (+.f64 d2 d3)) d1)
(*.f64 (+.f64 5 (+.f64 d2 d3)) d1)
(*.f64 (+.f64 5 (+.f64 d2 d3)) d1)
(*.f64 (+.f64 5 (+.f64 d2 d3)) d1)
(*.f64 d1 (+.f64 d2 (+.f64 5 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 5 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 5 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 5 d3)))
(*.f64 d1 (+.f64 5 d2))
(+.f64 (*.f64 d1 (+.f64 5 d2)) (*.f64 d1 d3))
(+.f64 (*.f64 d1 (+.f64 5 d2)) (*.f64 d1 d3))
(+.f64 (*.f64 d1 (+.f64 5 d2)) (*.f64 d1 d3))
(*.f64 d1 d3)
(+.f64 (*.f64 d1 (+.f64 5 d2)) (*.f64 d1 d3))
(+.f64 (*.f64 d1 (+.f64 5 d2)) (*.f64 d1 d3))
(+.f64 (*.f64 d1 (+.f64 5 d2)) (*.f64 d1 d3))
(*.f64 d1 d3)
(+.f64 (*.f64 d1 (+.f64 5 d2)) (*.f64 d1 d3))
(+.f64 (*.f64 d1 (+.f64 5 d2)) (*.f64 d1 d3))
(+.f64 (*.f64 d1 (+.f64 5 d2)) (*.f64 d1 d3))
(*.f64 (+.f64 5 d3) d1)
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 5 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 5 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 5 d3) d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 5 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 5 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 5 d3) d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 5 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 5 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 5 d3) d1))
(-.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 0)
(*.f64 d1 (+.f64 (+.f64 d3 d2) 37))
(*.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 1)
(*.f64 1 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)))
(*.f64 2 (*.f64 d1 (/.f64 (+.f64 (+.f64 d3 d2) 37) 2)))
(*.f64 2 (+.f64 (*.f64 d1 16) (*.f64 (+.f64 d3 (+.f64 5 d2)) (*.f64 d1 1/2))))
(*.f64 2 (+.f64 (*.f64 (+.f64 d3 (+.f64 5 d2)) (*.f64 d1 1/2)) (*.f64 d1 16)))
(*.f64 (*.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 2) 1/2)
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 (+.f64 d3 d2) 37) 1/2))
(*.f64 (+.f64 d1 d1) (/.f64 (+.f64 (+.f64 d3 d2) 37) 2))
(*.f64 (+.f64 d1 d1) (+.f64 16 (*.f64 (+.f64 d3 (+.f64 5 d2)) 1/2)))
(*.f64 (+.f64 d1 d1) (+.f64 (*.f64 (+.f64 d3 (+.f64 5 d2)) 1/2) 16))
(*.f64 (+.f64 (+.f64 d3 d2) 37) d1)
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 4))
(*.f64 (*.f64 d1 (*.f64 (+.f64 (+.f64 d3 d2) 37) 4)) 1/4)
(*.f64 (*.f64 2 (+.f64 (+.f64 d3 d2) 37)) (*.f64 d1 1/2))
(*.f64 1/2 (*.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 2))
(*.f64 1/2 (+.f64 (*.f64 d1 64) (*.f64 d1 (*.f64 (+.f64 d3 (+.f64 5 d2)) 2))))
(*.f64 1/2 (+.f64 (*.f64 d1 (*.f64 (+.f64 d3 (+.f64 5 d2)) 2)) (*.f64 d1 64)))
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 (+.f64 d3 d2) 37)))
(*.f64 (*.f64 d1 1/2) (+.f64 64 (*.f64 (+.f64 d3 (+.f64 5 d2)) 2)))
(*.f64 (*.f64 d1 1/2) (+.f64 (*.f64 (+.f64 d3 (+.f64 5 d2)) 2) 64))
(*.f64 (*.f64 d1 (/.f64 (+.f64 (+.f64 d3 d2) 37) 2)) 2)
(*.f64 (*.f64 (+.f64 (+.f64 d3 d2) 37) 1/2) (+.f64 d1 d1))
(*.f64 1/4 (*.f64 d1 (*.f64 (+.f64 (+.f64 d3 d2) 37) 4)))
(*.f64 (/.f64 (+.f64 (+.f64 d3 d2) 37) 2) (+.f64 d1 d1))
(*.f64 (/.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 4) 4)
(/.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 1)
(/.f64 (*.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 2) 2)
(/.f64 (*.f64 d1 (*.f64 (+.f64 (+.f64 d3 d2) 37) 4)) 4)
(/.f64 (*.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 8))) 32)
(+.f64 (*.f64 d1 (+.f64 d3 (+.f64 5 d2))) 0)
(+.f64 0 (*.f64 d1 (+.f64 d3 (+.f64 5 d2))))
(+.f64 (*.f64 (+.f64 d3 (+.f64 5 d2)) (*.f64 d1 1/2)) (*.f64 (+.f64 d3 (+.f64 5 d2)) (*.f64 d1 1/2)))
(-.f64 (*.f64 d1 (+.f64 d3 (+.f64 5 d2))) 0)
(/.f64 (*.f64 d1 (+.f64 d3 (+.f64 5 d2))) 1)
(/.f64 (*.f64 d1 (*.f64 (+.f64 d3 (+.f64 5 d2)) 2)) 2)
(/.f64 (*.f64 (+.f64 d3 (+.f64 5 d2)) (*.f64 d1 4)) 4)
(/.f64 (*.f64 (*.f64 d1 (+.f64 d3 (+.f64 5 d2))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d3 (+.f64 5 d2))) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d3 (+.f64 5 d2))) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d3 (+.f64 5 d2))) 8))) 32)
Outputs
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 d1 (+.f64 d2 (+.f64 37 d3)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 d1 (+.f64 d2 (+.f64 37 d3)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 d1 (+.f64 d2 (+.f64 37 d3)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 d1 (+.f64 d2 (+.f64 37 d3)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 (+.f64 5 (+.f64 d2 d3))) 32)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 (+.f64 5 (+.f64 d2 d3))) 32)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 (+.f64 5 (+.f64 d2 d3))) 32)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 (+.f64 5 (+.f64 d2 d3))) 32)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(+.f64 (*.f64 32 d1) (*.f64 d1 (+.f64 d2 5)))
(+.f64 (*.f64 d1 32) (*.f64 d1 (+.f64 d2 5)))
(*.f64 d1 (+.f64 (+.f64 d2 5) 32))
(*.f64 d1 (+.f64 37 d2))
(+.f64 (*.f64 32 d1) (+.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 d2 5))))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(+.f64 (*.f64 32 d1) (+.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 d2 5))))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(+.f64 (*.f64 32 d1) (+.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 d2 5))))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 d1 d3)
(+.f64 (*.f64 32 d1) (+.f64 (*.f64 d1 (+.f64 d2 5)) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(+.f64 (*.f64 32 d1) (+.f64 (*.f64 d1 (+.f64 d2 5)) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(+.f64 (*.f64 32 d1) (+.f64 (*.f64 d1 (+.f64 d2 5)) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 d1 d3)
(+.f64 (*.f64 32 d1) (+.f64 (*.f64 d1 (+.f64 d2 5)) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(+.f64 (*.f64 32 d1) (+.f64 (*.f64 d1 (+.f64 d2 5)) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(+.f64 (*.f64 32 d1) (+.f64 (*.f64 d1 (+.f64 d2 5)) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(+.f64 (*.f64 32 d1) (*.f64 (+.f64 5 d3) d1))
(+.f64 (*.f64 d1 32) (*.f64 d1 (+.f64 d3 5)))
(*.f64 d1 (+.f64 (+.f64 d3 5) 32))
(*.f64 d1 (+.f64 37 d3))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 32 d1) (*.f64 (+.f64 5 d3) d1)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 32 d1) (*.f64 (+.f64 5 d3) d1)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 32 d1) (*.f64 (+.f64 5 d3) d1)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 32 d1) (+.f64 (*.f64 d2 d1) (*.f64 (+.f64 5 d3) d1)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(+.f64 (*.f64 32 d1) (+.f64 (*.f64 d2 d1) (*.f64 (+.f64 5 d3) d1)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(+.f64 (*.f64 32 d1) (+.f64 (*.f64 d2 d1) (*.f64 (+.f64 5 d3) d1)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 32 d1) (+.f64 (*.f64 d2 d1) (*.f64 (+.f64 5 d3) d1)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(+.f64 (*.f64 32 d1) (+.f64 (*.f64 d2 d1) (*.f64 (+.f64 5 d3) d1)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(+.f64 (*.f64 32 d1) (+.f64 (*.f64 d2 d1) (*.f64 (+.f64 5 d3) d1)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 (+.f64 5 (+.f64 d2 d3)) d1)
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(*.f64 (+.f64 5 (+.f64 d2 d3)) d1)
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(*.f64 (+.f64 5 (+.f64 d2 d3)) d1)
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(*.f64 (+.f64 5 (+.f64 d2 d3)) d1)
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(*.f64 (+.f64 5 (+.f64 d2 d3)) d1)
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(*.f64 (+.f64 5 (+.f64 d2 d3)) d1)
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(*.f64 (+.f64 5 (+.f64 d2 d3)) d1)
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(*.f64 (+.f64 5 (+.f64 d2 d3)) d1)
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(*.f64 d1 (+.f64 d2 (+.f64 5 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(*.f64 d1 (+.f64 d2 (+.f64 5 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(*.f64 d1 (+.f64 d2 (+.f64 5 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(*.f64 d1 (+.f64 d2 (+.f64 5 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(*.f64 d1 (+.f64 5 d2))
(*.f64 d1 (+.f64 d2 5))
(+.f64 (*.f64 d1 (+.f64 5 d2)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(+.f64 (*.f64 d1 (+.f64 5 d2)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(+.f64 (*.f64 d1 (+.f64 5 d2)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(*.f64 d1 d3)
(+.f64 (*.f64 d1 (+.f64 5 d2)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(+.f64 (*.f64 d1 (+.f64 5 d2)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(+.f64 (*.f64 d1 (+.f64 5 d2)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(*.f64 d1 d3)
(+.f64 (*.f64 d1 (+.f64 5 d2)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(+.f64 (*.f64 d1 (+.f64 5 d2)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(+.f64 (*.f64 d1 (+.f64 5 d2)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(*.f64 (+.f64 5 d3) d1)
(*.f64 d1 (+.f64 d3 5))
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 5 d3) d1))
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 5 d3) d1))
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 5 d3) d1))
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 5 d3) d1))
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 5 d3) d1))
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 5 d3) d1))
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 5 d3) d1))
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 5 d3) d1))
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(+.f64 (*.f64 d2 d1) (*.f64 (+.f64 5 d3) d1))
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(-.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 0)
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 d1 (+.f64 (+.f64 d3 d2) 37))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 1)
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 1 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 2 (*.f64 d1 (/.f64 (+.f64 (+.f64 d3 d2) 37) 2)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 2 (+.f64 (*.f64 d1 16) (*.f64 (+.f64 d3 (+.f64 5 d2)) (*.f64 d1 1/2))))
(*.f64 2 (+.f64 (*.f64 d1 16) (*.f64 d1 (*.f64 (+.f64 d3 (+.f64 d2 5)) 1/2))))
(*.f64 2 (*.f64 d1 (+.f64 16 (*.f64 (+.f64 d3 (+.f64 d2 5)) 1/2))))
(*.f64 d1 (*.f64 (+.f64 16 (*.f64 (+.f64 d2 (+.f64 d3 5)) 1/2)) 2))
(*.f64 d1 (*.f64 2 (+.f64 16 (*.f64 (+.f64 d2 (+.f64 d3 5)) 1/2))))
(*.f64 d1 (*.f64 2 (+.f64 16 (*.f64 (+.f64 d3 (+.f64 d2 5)) 1/2))))
(*.f64 2 (+.f64 (*.f64 (+.f64 d3 (+.f64 5 d2)) (*.f64 d1 1/2)) (*.f64 d1 16)))
(*.f64 2 (+.f64 (*.f64 d1 16) (*.f64 d1 (*.f64 (+.f64 d3 (+.f64 d2 5)) 1/2))))
(*.f64 2 (*.f64 d1 (+.f64 16 (*.f64 (+.f64 d3 (+.f64 d2 5)) 1/2))))
(*.f64 d1 (*.f64 (+.f64 16 (*.f64 (+.f64 d2 (+.f64 d3 5)) 1/2)) 2))
(*.f64 d1 (*.f64 2 (+.f64 16 (*.f64 (+.f64 d2 (+.f64 d3 5)) 1/2))))
(*.f64 d1 (*.f64 2 (+.f64 16 (*.f64 (+.f64 d3 (+.f64 d2 5)) 1/2))))
(*.f64 (*.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 2) 1/2)
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 (+.f64 d3 d2) 37) 1/2))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 (+.f64 d1 d1) (/.f64 (+.f64 (+.f64 d3 d2) 37) 2))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 (+.f64 d1 d1) (+.f64 16 (*.f64 (+.f64 d3 (+.f64 5 d2)) 1/2)))
(*.f64 2 (+.f64 (*.f64 d1 16) (*.f64 d1 (*.f64 (+.f64 d3 (+.f64 d2 5)) 1/2))))
(*.f64 2 (*.f64 d1 (+.f64 16 (*.f64 (+.f64 d3 (+.f64 d2 5)) 1/2))))
(*.f64 d1 (*.f64 (+.f64 16 (*.f64 (+.f64 d2 (+.f64 d3 5)) 1/2)) 2))
(*.f64 d1 (*.f64 2 (+.f64 16 (*.f64 (+.f64 d2 (+.f64 d3 5)) 1/2))))
(*.f64 d1 (*.f64 2 (+.f64 16 (*.f64 (+.f64 d3 (+.f64 d2 5)) 1/2))))
(*.f64 (+.f64 d1 d1) (+.f64 (*.f64 (+.f64 d3 (+.f64 5 d2)) 1/2) 16))
(*.f64 2 (+.f64 (*.f64 d1 16) (*.f64 d1 (*.f64 (+.f64 d3 (+.f64 d2 5)) 1/2))))
(*.f64 2 (*.f64 d1 (+.f64 16 (*.f64 (+.f64 d3 (+.f64 d2 5)) 1/2))))
(*.f64 d1 (*.f64 (+.f64 16 (*.f64 (+.f64 d2 (+.f64 d3 5)) 1/2)) 2))
(*.f64 d1 (*.f64 2 (+.f64 16 (*.f64 (+.f64 d2 (+.f64 d3 5)) 1/2))))
(*.f64 d1 (*.f64 2 (+.f64 16 (*.f64 (+.f64 d3 (+.f64 d2 5)) 1/2))))
(*.f64 (+.f64 (+.f64 d3 d2) 37) d1)
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 4))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 (*.f64 d1 (*.f64 (+.f64 (+.f64 d3 d2) 37) 4)) 1/4)
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 (*.f64 2 (+.f64 (+.f64 d3 d2) 37)) (*.f64 d1 1/2))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 1/2 (*.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 2))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 1/2 (+.f64 (*.f64 d1 64) (*.f64 d1 (*.f64 (+.f64 d3 (+.f64 5 d2)) 2))))
(*.f64 1/2 (+.f64 (*.f64 d1 64) (*.f64 (+.f64 d3 (+.f64 d2 5)) (*.f64 2 d1))))
(*.f64 d1 (*.f64 1/2 (+.f64 64 (*.f64 2 (+.f64 d3 (+.f64 d2 5))))))
(*.f64 1/2 (*.f64 d1 (+.f64 64 (*.f64 2 (+.f64 d2 (+.f64 d3 5))))))
(*.f64 1/2 (*.f64 d1 (+.f64 64 (*.f64 2 (+.f64 d3 (+.f64 d2 5))))))
(*.f64 1/2 (+.f64 (*.f64 d1 (*.f64 (+.f64 d3 (+.f64 5 d2)) 2)) (*.f64 d1 64)))
(*.f64 1/2 (+.f64 (*.f64 d1 64) (*.f64 (+.f64 d3 (+.f64 d2 5)) (*.f64 2 d1))))
(*.f64 d1 (*.f64 1/2 (+.f64 64 (*.f64 2 (+.f64 d3 (+.f64 d2 5))))))
(*.f64 1/2 (*.f64 d1 (+.f64 64 (*.f64 2 (+.f64 d2 (+.f64 d3 5))))))
(*.f64 1/2 (*.f64 d1 (+.f64 64 (*.f64 2 (+.f64 d3 (+.f64 d2 5))))))
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 (+.f64 d3 d2) 37)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 (*.f64 d1 1/2) (+.f64 64 (*.f64 (+.f64 d3 (+.f64 5 d2)) 2)))
(*.f64 1/2 (+.f64 (*.f64 d1 64) (*.f64 (+.f64 d3 (+.f64 d2 5)) (*.f64 2 d1))))
(*.f64 d1 (*.f64 1/2 (+.f64 64 (*.f64 2 (+.f64 d3 (+.f64 d2 5))))))
(*.f64 1/2 (*.f64 d1 (+.f64 64 (*.f64 2 (+.f64 d2 (+.f64 d3 5))))))
(*.f64 1/2 (*.f64 d1 (+.f64 64 (*.f64 2 (+.f64 d3 (+.f64 d2 5))))))
(*.f64 (*.f64 d1 1/2) (+.f64 (*.f64 (+.f64 d3 (+.f64 5 d2)) 2) 64))
(*.f64 1/2 (+.f64 (*.f64 d1 64) (*.f64 (+.f64 d3 (+.f64 d2 5)) (*.f64 2 d1))))
(*.f64 d1 (*.f64 1/2 (+.f64 64 (*.f64 2 (+.f64 d3 (+.f64 d2 5))))))
(*.f64 1/2 (*.f64 d1 (+.f64 64 (*.f64 2 (+.f64 d2 (+.f64 d3 5))))))
(*.f64 1/2 (*.f64 d1 (+.f64 64 (*.f64 2 (+.f64 d3 (+.f64 d2 5))))))
(*.f64 (*.f64 d1 (/.f64 (+.f64 (+.f64 d3 d2) 37) 2)) 2)
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 (*.f64 (+.f64 (+.f64 d3 d2) 37) 1/2) (+.f64 d1 d1))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 1/4 (*.f64 d1 (*.f64 (+.f64 (+.f64 d3 d2) 37) 4)))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 (/.f64 (+.f64 (+.f64 d3 d2) 37) 2) (+.f64 d1 d1))
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(*.f64 (/.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 4) 4)
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(/.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 1)
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(/.f64 (*.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 2) 2)
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(/.f64 (*.f64 d1 (*.f64 (+.f64 (+.f64 d3 d2) 37) 4)) 4)
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(/.f64 (*.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 8) 8)
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 8)) 16)
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (+.f64 d3 d2) 37)) 8))) 32)
(*.f64 d1 (+.f64 37 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 37)))
(+.f64 (*.f64 d1 (+.f64 d3 (+.f64 5 d2))) 0)
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(+.f64 0 (*.f64 d1 (+.f64 d3 (+.f64 5 d2))))
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(+.f64 (*.f64 (+.f64 d3 (+.f64 5 d2)) (*.f64 d1 1/2)) (*.f64 (+.f64 d3 (+.f64 5 d2)) (*.f64 d1 1/2)))
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(-.f64 (*.f64 d1 (+.f64 d3 (+.f64 5 d2))) 0)
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(/.f64 (*.f64 d1 (+.f64 d3 (+.f64 5 d2))) 1)
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(/.f64 (*.f64 d1 (*.f64 (+.f64 d3 (+.f64 5 d2)) 2)) 2)
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(/.f64 (*.f64 (+.f64 d3 (+.f64 5 d2)) (*.f64 d1 4)) 4)
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(/.f64 (*.f64 (*.f64 d1 (+.f64 d3 (+.f64 5 d2))) 8) 8)
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d3 (+.f64 5 d2))) 8)) 16)
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d3 (+.f64 5 d2))) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d3 (+.f64 5 d2))) 8))) 32)
(*.f64 d1 (+.f64 d3 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 (+.f64 d3 5)))

eval20.0ms (0.1%)

Compiler

Compiled 1125 to 732 computations (34.9% saved)

prune99.0ms (0.6%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New966102
Fresh000
Picked101
Done011
Total977104
Error
0.0b
Counts
104 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
25.1b
(+.f64 (*.f64 (+.f64 5 d3) d1) (*.f64 d1 32))
17.5b
(+.f64 (*.f64 d1 (+.f64 d2 5)) (*.f64 d1 32))
25.1b
(*.f64 (+.f64 37 d3) d1)
38.7b
(*.f64 d2 d1)
0.0b
(*.f64 d1 (+.f64 d2 (+.f64 d3 37)))
17.5b
(*.f64 d1 (+.f64 d2 37))
45.2b
(*.f64 d1 d3)
Compiler

Compiled 114 to 83 computations (27.2% saved)

localize7.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 d1 (+.f64 d2 37))
Compiler

Compiled 14 to 9 computations (35.7% saved)

series2.0ms (0%)

Counts
1 → 20
Calls

6 calls:

TimeVariablePointExpression
1.0ms
d1
@inf
(*.f64 d1 (+.f64 d2 37))
0.0ms
d1
@0
(*.f64 d1 (+.f64 d2 37))
0.0ms
d1
@-inf
(*.f64 d1 (+.f64 d2 37))
0.0ms
d2
@-inf
(*.f64 d1 (+.f64 d2 37))
0.0ms
d2
@inf
(*.f64 d1 (+.f64 d2 37))

rewrite326.0ms (1.9%)

Algorithm
batch-egg-rewrite
Rules
1604×bool.json-1
1604×bool.json-2
1564×rational.json-1
1564×rational.json-2
1564×rational.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
17013
219313
340113
482113
5178113
6386413
7639913
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 d2 37))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (+.f64 d2 37)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 d1 (+.f64 d2 37)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 d2 37) (*.f64 d1 1/2)) (*.f64 (+.f64 d2 37) (*.f64 d1 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (+.f64 d2 37)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (+.f64 d2 37)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 d2 37) (+.f64 d1 d1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 (+.f64 d2 37) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (+.f64 d2 37)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 37)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 37)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 37)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 37)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 d1 (+.f64 d2 37))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 d1 (+.f64 d2 37)) (*.f64 d1 (+.f64 d2 37)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 d1 (+.f64 d2 37)) (*.f64 d1 (+.f64 d2 37)))))))

simplify1.5s (8.8%)

Algorithm
egg-herbie
Rules
5364×rational.json-simplify-35
2492×rational.json-simplify-2
1068×rational.json-simplify-53
974×rational.json-simplify-1
736×rational.json-simplify-43
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
042385
194385
2183385
3448385
41877385
53676385
64583385
74895385
85056385
95209385
105360385
115695385
125700385
135771385
145814385
155825385
165976385
176127385
186278385
196429385
206580385
216731385
226882385
237033385
247131385
257146385
267193385
277226385
287227385
297227385
307378385
317529385
327680385
337831385
347982385
Stop Event
node limit
Counts
31 → 17
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 37 d1)
(+.f64 (*.f64 37 d1) (*.f64 d2 d1))
(+.f64 (*.f64 37 d1) (*.f64 d2 d1))
(+.f64 (*.f64 37 d1) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 37 d1) (*.f64 d2 d1))
(+.f64 (*.f64 37 d1) (*.f64 d2 d1))
(+.f64 (*.f64 37 d1) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 37 d1) (*.f64 d2 d1))
(+.f64 (*.f64 37 d1) (*.f64 d2 d1))
(+.f64 (*.f64 37 d1) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (+.f64 d2 37)) 0)
(+.f64 0 (*.f64 d1 (+.f64 d2 37)))
(+.f64 (*.f64 (+.f64 d2 37) (*.f64 d1 1/2)) (*.f64 (+.f64 d2 37) (*.f64 d1 1/2)))
(-.f64 (*.f64 d1 (+.f64 d2 37)) 0)
(/.f64 (*.f64 d1 (+.f64 d2 37)) 1)
(/.f64 (*.f64 (+.f64 d2 37) (+.f64 d1 d1)) 2)
(/.f64 (*.f64 d1 (*.f64 (+.f64 d2 37) 4)) 4)
(/.f64 (*.f64 (*.f64 d1 (+.f64 d2 37)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 37)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 37)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 37)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 37)) 8)))) 64)
Outputs
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 37 d1)
(*.f64 d1 37)
(+.f64 (*.f64 37 d1) (*.f64 d2 d1))
(*.f64 d1 (+.f64 37 d2))
(+.f64 (*.f64 37 d1) (*.f64 d2 d1))
(*.f64 d1 (+.f64 37 d2))
(+.f64 (*.f64 37 d1) (*.f64 d2 d1))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 37 d1) (*.f64 d2 d1))
(*.f64 d1 (+.f64 37 d2))
(+.f64 (*.f64 37 d1) (*.f64 d2 d1))
(*.f64 d1 (+.f64 37 d2))
(+.f64 (*.f64 37 d1) (*.f64 d2 d1))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 37 d1) (*.f64 d2 d1))
(*.f64 d1 (+.f64 37 d2))
(+.f64 (*.f64 37 d1) (*.f64 d2 d1))
(*.f64 d1 (+.f64 37 d2))
(+.f64 (*.f64 37 d1) (*.f64 d2 d1))
(*.f64 d1 (+.f64 37 d2))
(+.f64 (*.f64 d1 (+.f64 d2 37)) 0)
(*.f64 d1 (+.f64 37 d2))
(+.f64 0 (*.f64 d1 (+.f64 d2 37)))
(*.f64 d1 (+.f64 37 d2))
(+.f64 (*.f64 (+.f64 d2 37) (*.f64 d1 1/2)) (*.f64 (+.f64 d2 37) (*.f64 d1 1/2)))
(*.f64 d1 (+.f64 37 d2))
(-.f64 (*.f64 d1 (+.f64 d2 37)) 0)
(*.f64 d1 (+.f64 37 d2))
(/.f64 (*.f64 d1 (+.f64 d2 37)) 1)
(*.f64 d1 (+.f64 37 d2))
(/.f64 (*.f64 (+.f64 d2 37) (+.f64 d1 d1)) 2)
(*.f64 d1 (+.f64 37 d2))
(/.f64 (*.f64 d1 (*.f64 (+.f64 d2 37) 4)) 4)
(*.f64 d1 (+.f64 37 d2))
(/.f64 (*.f64 (*.f64 d1 (+.f64 d2 37)) 8) 8)
(*.f64 d1 (+.f64 37 d2))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 37)) 8)) 16)
(*.f64 d1 (+.f64 37 d2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 37)) 8))) 32)
(*.f64 d1 (+.f64 37 d2))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 37)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 37)) 8)))) 64)
(*.f64 d1 (+.f64 37 d2))

localize3.0ms (0%)

Compiler

Compiled 8 to 4 computations (50% saved)

localize3.0ms (0%)

Compiler

Compiled 8 to 4 computations (50% saved)

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (+.f64 37 d3) d1)
Compiler

Compiled 14 to 9 computations (35.7% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

6 calls:

TimeVariablePointExpression
0.0ms
d1
@inf
(*.f64 (+.f64 37 d3) d1)
0.0ms
d1
@-inf
(*.f64 (+.f64 37 d3) d1)
0.0ms
d1
@0
(*.f64 (+.f64 37 d3) d1)
0.0ms
d3
@0
(*.f64 (+.f64 37 d3) d1)
0.0ms
d3
@-inf
(*.f64 (+.f64 37 d3) d1)

rewrite98.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
1604×bool.json-1
1604×bool.json-2
1564×rational.json-1
1564×rational.json-2
1564×rational.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
17013
219313
340113
482113
5178213
6386713
7640213
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 (+.f64 37 d3) d1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 37 d3) d1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 37 d3) d1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 37 d3) (/.f64 d1 2)) (*.f64 (+.f64 37 d3) (/.f64 d1 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 37 d3) d1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 37 d3) d1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 37 d3) (+.f64 d1 d1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 37 d3) (*.f64 d1 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 8) (+.f64 37 d3)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 8) (+.f64 37 d3))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 8) (+.f64 37 d3)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 8) (+.f64 37 d3)))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 8) (+.f64 37 d3))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (+.f64 37 d3) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (+.f64 37 d3) d1) (*.f64 (+.f64 37 d3) d1))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (+.f64 37 d3) d1) (*.f64 (+.f64 37 d3) d1))))))

simplify2.5s (14.5%)

Algorithm
egg-herbie
Rules
5344×rational.json-simplify-35
2850×rational.json-simplify-2
1642×rational.json-simplify-53
1058×rational.json-simplify-1
732×rational.json-simplify-41
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
040401
192281
2180281
3409281
41287281
52690281
63652281
73775281
83861281
93944281
104027281
114110281
124664281
134945281
145184281
155373281
165374281
175374281
185457281
195540281
205623281
215706281
225963281
236276281
246422281
256509281
266592281
276675281
286758281
296841281
306924281
317007281
327090281
337090281
347090281
357173281
367256281
377339281
387422281
397505281
407588281
417671281
427754281
437837281
447920281
Stop Event
node limit
Counts
23 → 15
Calls
Call 1
Inputs
(*.f64 37 d1)
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
(*.f64 d1 d3)
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
(*.f64 d1 d3)
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
(+.f64 (*.f64 (+.f64 37 d3) d1) 0)
(+.f64 0 (*.f64 (+.f64 37 d3) d1))
(+.f64 (*.f64 (+.f64 37 d3) (/.f64 d1 2)) (*.f64 (+.f64 37 d3) (/.f64 d1 2)))
(-.f64 (*.f64 (+.f64 37 d3) d1) 0)
(/.f64 (*.f64 (+.f64 37 d3) d1) 1)
(/.f64 (*.f64 (+.f64 37 d3) (+.f64 d1 d1)) 2)
(/.f64 (*.f64 (+.f64 37 d3) (*.f64 d1 4)) 4)
(/.f64 (*.f64 (*.f64 d1 8) (+.f64 37 d3)) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 8) (+.f64 37 d3))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 8) (+.f64 37 d3)))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 8) (+.f64 37 d3)))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 8) (+.f64 37 d3))))) 64)
Outputs
(*.f64 37 d1)
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 37 d3))
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 37 d3))
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 37 d3))
(*.f64 d1 d3)
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 37 d3))
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 37 d3))
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 37 d3))
(*.f64 d1 d3)
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 37 d3))
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 37 d3))
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 37 d3))
(+.f64 (*.f64 (+.f64 37 d3) d1) 0)
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 37 d3))
(+.f64 0 (*.f64 (+.f64 37 d3) d1))
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 37 d3))
(+.f64 (*.f64 (+.f64 37 d3) (/.f64 d1 2)) (*.f64 (+.f64 37 d3) (/.f64 d1 2)))
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 37 d3))
(-.f64 (*.f64 (+.f64 37 d3) d1) 0)
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 37 d3))
(/.f64 (*.f64 (+.f64 37 d3) d1) 1)
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 37 d3))
(/.f64 (*.f64 (+.f64 37 d3) (+.f64 d1 d1)) 2)
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 37 d3))
(/.f64 (*.f64 (+.f64 37 d3) (*.f64 d1 4)) 4)
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 37 d3))
(/.f64 (*.f64 (*.f64 d1 8) (+.f64 37 d3)) 8)
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 37 d3))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 8) (+.f64 37 d3))) 16)
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 37 d3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 8) (+.f64 37 d3)))) 32)
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 37 d3))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 8) (+.f64 37 d3)))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 8) (+.f64 37 d3))))) 64)
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 37 d3))

localize11.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 d1 (+.f64 d2 5))
0.1b
(+.f64 (*.f64 d1 (+.f64 d2 5)) (*.f64 d1 32))
Compiler

Compiled 27 to 18 computations (33.3% saved)

series2.0ms (0%)

Counts
2 → 44
Calls

12 calls:

TimeVariablePointExpression
1.0ms
d1
@-inf
(+.f64 (*.f64 d1 (+.f64 d2 5)) (*.f64 d1 32))
0.0ms
d1
@0
(+.f64 (*.f64 d1 (+.f64 d2 5)) (*.f64 d1 32))
0.0ms
d2
@inf
(+.f64 (*.f64 d1 (+.f64 d2 5)) (*.f64 d1 32))
0.0ms
d2
@0
(+.f64 (*.f64 d1 (+.f64 d2 5)) (*.f64 d1 32))
0.0ms
d2
@-inf
(+.f64 (*.f64 d1 (+.f64 d2 5)) (*.f64 d1 32))

rewrite263.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
1502×bool.json-1
1502×bool.json-2
1458×rational.json-1
1458×rational.json-2
1458×rational.json-4
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01038
19932
225326
353326
4113326
5252826
6539526
Stop Event
node limit
Counts
2 → 43
Calls
Call 1
Inputs
(+.f64 (*.f64 d1 (+.f64 d2 5)) (*.f64 d1 32))
(*.f64 d1 (+.f64 d2 5))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (+.f64 d2 37)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (+.f64 d2 37))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (+.f64 d2 37)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 d1 (+.f64 d2 37)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 d1 (/.f64 (+.f64 d2 37) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 d1 16) (*.f64 (+.f64 d2 5) (*.f64 d1 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (+.f64 d2 5) (*.f64 d1 1/2)) (*.f64 d1 16)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (*.f64 (+.f64 d2 37) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (/.f64 (+.f64 d2 37) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (+.f64 16 (*.f64 (+.f64 d2 5) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (+.f64 (*.f64 (+.f64 d2 5) 1/2) 16))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (*.f64 2 (+.f64 d2 37))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d2 37) d1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 d1 (+.f64 d2 37)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (*.f64 (+.f64 d2 37) 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 d2 37)) (*.f64 d1 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 d2 37))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 d1 64) (*.f64 (+.f64 d2 5) (+.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (+.f64 d2 5) (+.f64 d1 d1)) (*.f64 d1 64)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 d2 37)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (+.f64 64 (+.f64 d2 (+.f64 d2 10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d2 (+.f64 d2 10)) 64))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (/.f64 (+.f64 d2 37) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 d2 37) 1/2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 d1 (*.f64 (+.f64 d2 37) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 d2 37) 2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 d1 (+.f64 d2 37)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (+.f64 d2 37)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 2 (+.f64 d2 37))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 (+.f64 d2 37) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (+.f64 d2 37)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 37)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 37)) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 37)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 d1 (+.f64 d2 37))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 d1 (+.f64 d2 37)) (*.f64 d1 (+.f64 d2 37)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 d1 (+.f64 d2 37)) (*.f64 d1 (+.f64 d2 37)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (+.f64 d2 5)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 d1 (+.f64 d2 5)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 d2 5) (*.f64 d1 1/2)) (*.f64 (+.f64 d2 5) (*.f64 d1 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (+.f64 d2 5)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (+.f64 d2 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 d2 5) (+.f64 d1 d1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 (+.f64 d2 5) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (+.f64 d2 5)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 5)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 5)) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 5)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 d1 (+.f64 d2 5))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 d1 (+.f64 d2 5)) (*.f64 d1 (+.f64 d2 5)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 d1 (+.f64 d2 5)) (*.f64 d1 (+.f64 d2 5)))))))

simplify452.0ms (2.6%)

Algorithm
egg-herbie
Rules
5232×rational.json-simplify-41
2840×rational.json-simplify-35
2426×rational.json-simplify-2
1076×rational.json-simplify-53
820×rational.json-simplify-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01141203
12251167
24871167
314261167
430721167
539471167
643751167
745341167
846861167
948481167
1050001167
1154701167
1256101167
1358411167
1458771167
1559141167
1659221167
1760621167
1862041167
1963461167
Stop Event
node limit
Counts
87 → 60
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 d2 37))
(*.f64 d1 (+.f64 d2 37))
(*.f64 d1 (+.f64 d2 37))
(*.f64 d1 (+.f64 d2 37))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (+.f64 d2 5)) 32) d1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (+.f64 d2 5)) 32) d1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (+.f64 d2 5)) 32) d1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (+.f64 d2 5)) 32) d1))
(+.f64 (*.f64 5 d1) (*.f64 32 d1))
(+.f64 (*.f64 5 d1) (+.f64 (*.f64 d2 d1) (*.f64 32 d1)))
(+.f64 (*.f64 5 d1) (+.f64 (*.f64 d2 d1) (*.f64 32 d1)))
(+.f64 (*.f64 5 d1) (+.f64 (*.f64 d2 d1) (*.f64 32 d1)))
(*.f64 d2 d1)
(+.f64 (*.f64 5 d1) (+.f64 (*.f64 32 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 5 d1) (+.f64 (*.f64 32 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 5 d1) (+.f64 (*.f64 32 d1) (*.f64 d2 d1)))
(*.f64 d2 d1)
(+.f64 (*.f64 5 d1) (+.f64 (*.f64 32 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 5 d1) (+.f64 (*.f64 32 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 5 d1) (+.f64 (*.f64 32 d1) (*.f64 d2 d1)))
(*.f64 d1 (+.f64 5 d2))
(*.f64 d1 (+.f64 5 d2))
(*.f64 d1 (+.f64 5 d2))
(*.f64 d1 (+.f64 5 d2))
(*.f64 d1 (+.f64 5 d2))
(*.f64 d1 (+.f64 5 d2))
(*.f64 d1 (+.f64 5 d2))
(*.f64 d1 (+.f64 5 d2))
(*.f64 5 d1)
(+.f64 (*.f64 5 d1) (*.f64 d2 d1))
(+.f64 (*.f64 5 d1) (*.f64 d2 d1))
(+.f64 (*.f64 5 d1) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 5 d1) (*.f64 d2 d1))
(+.f64 (*.f64 5 d1) (*.f64 d2 d1))
(+.f64 (*.f64 5 d1) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 5 d1) (*.f64 d2 d1))
(+.f64 (*.f64 5 d1) (*.f64 d2 d1))
(+.f64 (*.f64 5 d1) (*.f64 d2 d1))
(-.f64 (*.f64 d1 (+.f64 d2 37)) 0)
(*.f64 d1 (+.f64 d2 37))
(*.f64 (*.f64 d1 (+.f64 d2 37)) 1)
(*.f64 1 (*.f64 d1 (+.f64 d2 37)))
(*.f64 2 (*.f64 d1 (/.f64 (+.f64 d2 37) 2)))
(*.f64 2 (+.f64 (*.f64 d1 16) (*.f64 (+.f64 d2 5) (*.f64 d1 1/2))))
(*.f64 2 (+.f64 (*.f64 (+.f64 d2 5) (*.f64 d1 1/2)) (*.f64 d1 16)))
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 d2 37) 1/2))
(*.f64 (+.f64 d1 d1) (/.f64 (+.f64 d2 37) 2))
(*.f64 (+.f64 d1 d1) (+.f64 16 (*.f64 (+.f64 d2 5) 1/2)))
(*.f64 (+.f64 d1 d1) (+.f64 (*.f64 (+.f64 d2 5) 1/2) 16))
(*.f64 (*.f64 d1 (*.f64 2 (+.f64 d2 37))) 1/2)
(*.f64 (+.f64 d2 37) d1)
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 d2 37)) 4))
(*.f64 (*.f64 d1 (*.f64 (+.f64 d2 37) 4)) 1/4)
(*.f64 (*.f64 2 (+.f64 d2 37)) (*.f64 d1 1/2))
(*.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 d2 37))))
(*.f64 1/2 (+.f64 (*.f64 d1 64) (*.f64 (+.f64 d2 5) (+.f64 d1 d1))))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 d2 5) (+.f64 d1 d1)) (*.f64 d1 64)))
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 d2 37)))
(*.f64 (*.f64 d1 1/2) (+.f64 64 (+.f64 d2 (+.f64 d2 10))))
(*.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d2 (+.f64 d2 10)) 64))
(*.f64 (*.f64 d1 (/.f64 (+.f64 d2 37) 2)) 2)
(*.f64 (*.f64 (+.f64 d2 37) 1/2) (+.f64 d1 d1))
(*.f64 1/4 (*.f64 d1 (*.f64 (+.f64 d2 37) 4)))
(*.f64 (/.f64 (+.f64 d2 37) 2) (+.f64 d1 d1))
(*.f64 (/.f64 (*.f64 d1 (+.f64 d2 37)) 4) 4)
(/.f64 (*.f64 d1 (+.f64 d2 37)) 1)
(/.f64 (*.f64 d1 (*.f64 2 (+.f64 d2 37))) 2)
(/.f64 (*.f64 d1 (*.f64 (+.f64 d2 37) 4)) 4)
(/.f64 (*.f64 (*.f64 d1 (+.f64 d2 37)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 37)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 37)) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 37)) 8))) 32)
(+.f64 (*.f64 d1 (+.f64 d2 5)) 0)
(+.f64 0 (*.f64 d1 (+.f64 d2 5)))
(+.f64 (*.f64 (+.f64 d2 5) (*.f64 d1 1/2)) (*.f64 (+.f64 d2 5) (*.f64 d1 1/2)))
(-.f64 (*.f64 d1 (+.f64 d2 5)) 0)
(/.f64 (*.f64 d1 (+.f64 d2 5)) 1)
(/.f64 (*.f64 (+.f64 d2 5) (+.f64 d1 d1)) 2)
(/.f64 (*.f64 d1 (*.f64 (+.f64 d2 5) 4)) 4)
(/.f64 (*.f64 (*.f64 d1 (+.f64 d2 5)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 5)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 5)) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 5)) 8))) 32)
Outputs
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 d2 37))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 d2 37))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 d2 37))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 d2 37))
(*.f64 d1 (+.f64 37 d2))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (+.f64 d2 5)) 32) d1))
(*.f64 d1 (+.f64 37 d2))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (+.f64 d2 5)) 32) d1))
(*.f64 d1 (+.f64 37 d2))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (+.f64 d2 5)) 32) d1))
(*.f64 d1 (+.f64 37 d2))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (+.f64 d2 5)) 32) d1))
(*.f64 d1 (+.f64 37 d2))
(+.f64 (*.f64 5 d1) (*.f64 32 d1))
(+.f64 (*.f64 d1 5) (*.f64 d1 32))
(*.f64 d1 37)
(+.f64 (*.f64 5 d1) (+.f64 (*.f64 d2 d1) (*.f64 32 d1)))
(*.f64 d1 (+.f64 37 d2))
(+.f64 (*.f64 5 d1) (+.f64 (*.f64 d2 d1) (*.f64 32 d1)))
(*.f64 d1 (+.f64 37 d2))
(+.f64 (*.f64 5 d1) (+.f64 (*.f64 d2 d1) (*.f64 32 d1)))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 5 d1) (+.f64 (*.f64 32 d1) (*.f64 d2 d1)))
(*.f64 d1 (+.f64 37 d2))
(+.f64 (*.f64 5 d1) (+.f64 (*.f64 32 d1) (*.f64 d2 d1)))
(*.f64 d1 (+.f64 37 d2))
(+.f64 (*.f64 5 d1) (+.f64 (*.f64 32 d1) (*.f64 d2 d1)))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 5 d1) (+.f64 (*.f64 32 d1) (*.f64 d2 d1)))
(*.f64 d1 (+.f64 37 d2))
(+.f64 (*.f64 5 d1) (+.f64 (*.f64 32 d1) (*.f64 d2 d1)))
(*.f64 d1 (+.f64 37 d2))
(+.f64 (*.f64 5 d1) (+.f64 (*.f64 32 d1) (*.f64 d2 d1)))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 5 d2))
(*.f64 d1 (+.f64 d2 5))
(*.f64 d1 (+.f64 5 d2))
(*.f64 d1 (+.f64 d2 5))
(*.f64 d1 (+.f64 5 d2))
(*.f64 d1 (+.f64 d2 5))
(*.f64 d1 (+.f64 5 d2))
(*.f64 d1 (+.f64 d2 5))
(*.f64 d1 (+.f64 5 d2))
(*.f64 d1 (+.f64 d2 5))
(*.f64 d1 (+.f64 5 d2))
(*.f64 d1 (+.f64 d2 5))
(*.f64 d1 (+.f64 5 d2))
(*.f64 d1 (+.f64 d2 5))
(*.f64 d1 (+.f64 5 d2))
(*.f64 d1 (+.f64 d2 5))
(*.f64 5 d1)
(*.f64 d1 5)
(+.f64 (*.f64 5 d1) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 5))
(+.f64 (*.f64 5 d1) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 5))
(+.f64 (*.f64 5 d1) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 5))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 5 d1) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 5))
(+.f64 (*.f64 5 d1) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 5))
(+.f64 (*.f64 5 d1) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 5))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 5 d1) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 5))
(+.f64 (*.f64 5 d1) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 5))
(+.f64 (*.f64 5 d1) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 5))
(-.f64 (*.f64 d1 (+.f64 d2 37)) 0)
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 d2 37))
(*.f64 d1 (+.f64 37 d2))
(*.f64 (*.f64 d1 (+.f64 d2 37)) 1)
(*.f64 d1 (+.f64 37 d2))
(*.f64 1 (*.f64 d1 (+.f64 d2 37)))
(*.f64 d1 (+.f64 37 d2))
(*.f64 2 (*.f64 d1 (/.f64 (+.f64 d2 37) 2)))
(*.f64 d1 (+.f64 37 d2))
(*.f64 2 (+.f64 (*.f64 d1 16) (*.f64 (+.f64 d2 5) (*.f64 d1 1/2))))
(*.f64 2 (*.f64 d1 (+.f64 16 (*.f64 (+.f64 d2 5) 1/2))))
(*.f64 d1 (*.f64 (+.f64 16 (*.f64 (+.f64 d2 5) 1/2)) 2))
(*.f64 d1 (*.f64 2 (+.f64 16 (*.f64 (+.f64 d2 5) 1/2))))
(*.f64 2 (+.f64 (*.f64 (+.f64 d2 5) (*.f64 d1 1/2)) (*.f64 d1 16)))
(*.f64 2 (+.f64 (*.f64 d1 16) (*.f64 (+.f64 d2 5) (*.f64 d1 1/2))))
(*.f64 2 (*.f64 d1 (+.f64 16 (*.f64 (+.f64 d2 5) 1/2))))
(*.f64 d1 (*.f64 (+.f64 16 (*.f64 (+.f64 d2 5) 1/2)) 2))
(*.f64 d1 (*.f64 2 (+.f64 16 (*.f64 (+.f64 d2 5) 1/2))))
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 d2 37) 1/2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 (+.f64 d1 d1) (/.f64 (+.f64 d2 37) 2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 (+.f64 d1 d1) (+.f64 16 (*.f64 (+.f64 d2 5) 1/2)))
(*.f64 2 (+.f64 (*.f64 d1 16) (*.f64 (+.f64 d2 5) (*.f64 d1 1/2))))
(*.f64 2 (*.f64 d1 (+.f64 16 (*.f64 (+.f64 d2 5) 1/2))))
(*.f64 d1 (*.f64 (+.f64 16 (*.f64 (+.f64 d2 5) 1/2)) 2))
(*.f64 d1 (*.f64 2 (+.f64 16 (*.f64 (+.f64 d2 5) 1/2))))
(*.f64 (+.f64 d1 d1) (+.f64 (*.f64 (+.f64 d2 5) 1/2) 16))
(*.f64 2 (+.f64 (*.f64 d1 16) (*.f64 (+.f64 d2 5) (*.f64 d1 1/2))))
(*.f64 2 (*.f64 d1 (+.f64 16 (*.f64 (+.f64 d2 5) 1/2))))
(*.f64 d1 (*.f64 (+.f64 16 (*.f64 (+.f64 d2 5) 1/2)) 2))
(*.f64 d1 (*.f64 2 (+.f64 16 (*.f64 (+.f64 d2 5) 1/2))))
(*.f64 (*.f64 d1 (*.f64 2 (+.f64 d2 37))) 1/2)
(*.f64 d1 (+.f64 37 d2))
(*.f64 (+.f64 d2 37) d1)
(*.f64 d1 (+.f64 37 d2))
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 d2 37)) 4))
(*.f64 d1 (+.f64 37 d2))
(*.f64 (*.f64 d1 (*.f64 (+.f64 d2 37) 4)) 1/4)
(*.f64 d1 (+.f64 37 d2))
(*.f64 (*.f64 2 (+.f64 d2 37)) (*.f64 d1 1/2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 d2 37))))
(*.f64 d1 (+.f64 37 d2))
(*.f64 1/2 (+.f64 (*.f64 d1 64) (*.f64 (+.f64 d2 5) (+.f64 d1 d1))))
(*.f64 d1 (+.f64 37 d2))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 d2 5) (+.f64 d1 d1)) (*.f64 d1 64)))
(*.f64 d1 (+.f64 37 d2))
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 d2 37)))
(*.f64 d1 (+.f64 37 d2))
(*.f64 (*.f64 d1 1/2) (+.f64 64 (+.f64 d2 (+.f64 d2 10))))
(*.f64 d1 (+.f64 37 d2))
(*.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d2 (+.f64 d2 10)) 64))
(*.f64 d1 (+.f64 37 d2))
(*.f64 (*.f64 d1 (/.f64 (+.f64 d2 37) 2)) 2)
(*.f64 d1 (+.f64 37 d2))
(*.f64 (*.f64 (+.f64 d2 37) 1/2) (+.f64 d1 d1))
(*.f64 d1 (+.f64 37 d2))
(*.f64 1/4 (*.f64 d1 (*.f64 (+.f64 d2 37) 4)))
(*.f64 d1 (+.f64 37 d2))
(*.f64 (/.f64 (+.f64 d2 37) 2) (+.f64 d1 d1))
(*.f64 d1 (+.f64 37 d2))
(*.f64 (/.f64 (*.f64 d1 (+.f64 d2 37)) 4) 4)
(*.f64 d1 (+.f64 37 d2))
(/.f64 (*.f64 d1 (+.f64 d2 37)) 1)
(*.f64 d1 (+.f64 37 d2))
(/.f64 (*.f64 d1 (*.f64 2 (+.f64 d2 37))) 2)
(*.f64 d1 (+.f64 37 d2))
(/.f64 (*.f64 d1 (*.f64 (+.f64 d2 37) 4)) 4)
(*.f64 d1 (+.f64 37 d2))
(/.f64 (*.f64 (*.f64 d1 (+.f64 d2 37)) 8) 8)
(*.f64 d1 (+.f64 37 d2))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 37)) 8)) 16)
(*.f64 d1 (+.f64 37 d2))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 37)) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 37)) 8))) 32)
(*.f64 d1 (+.f64 37 d2))
(+.f64 (*.f64 d1 (+.f64 d2 5)) 0)
(*.f64 d1 (+.f64 d2 5))
(+.f64 0 (*.f64 d1 (+.f64 d2 5)))
(*.f64 d1 (+.f64 d2 5))
(+.f64 (*.f64 (+.f64 d2 5) (*.f64 d1 1/2)) (*.f64 (+.f64 d2 5) (*.f64 d1 1/2)))
(*.f64 d1 (+.f64 d2 5))
(-.f64 (*.f64 d1 (+.f64 d2 5)) 0)
(*.f64 d1 (+.f64 d2 5))
(/.f64 (*.f64 d1 (+.f64 d2 5)) 1)
(*.f64 d1 (+.f64 d2 5))
(/.f64 (*.f64 (+.f64 d2 5) (+.f64 d1 d1)) 2)
(*.f64 d1 (+.f64 d2 5))
(/.f64 (*.f64 d1 (*.f64 (+.f64 d2 5) 4)) 4)
(*.f64 d1 (+.f64 d2 5))
(/.f64 (*.f64 (*.f64 d1 (+.f64 d2 5)) 8) 8)
(*.f64 d1 (+.f64 d2 5))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 5)) 8)) 16)
(*.f64 d1 (+.f64 d2 5))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 5)) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 5)) 8))) 32)
(*.f64 d1 (+.f64 d2 5))

eval19.0ms (0.1%)

Compiler

Compiled 881 to 633 computations (28.1% saved)

prune14.0ms (0.1%)

Pruning

9 alts after pruning (3 fresh and 6 done)

PrunedKeptTotal
New89392
Fresh101
Picked011
Done055
Total90999
Error
0.0b
Counts
99 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
17.5b
(+.f64 (*.f64 d1 (+.f64 d2 5)) (*.f64 d1 32))
17.5b
(+.f64 (*.f64 37 d1) (*.f64 d2 d1))
25.1b
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
25.1b
(*.f64 (+.f64 37 d3) d1)
38.7b
(*.f64 d2 d1)
0.0b
(*.f64 d1 (+.f64 d2 (+.f64 d3 37)))
17.5b
(*.f64 d1 (+.f64 d2 37))
45.2b
(*.f64 d1 d3)
42.1b
(*.f64 d1 37)
Compiler

Compiled 76 to 55 computations (27.6% saved)

localize4.0ms (0%)

Compiler

Compiled 8 to 6 computations (25% saved)

localize7.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
Compiler

Compiled 19 to 10 computations (47.4% saved)

series2.0ms (0%)

Counts
1 → 15
Calls

6 calls:

TimeVariablePointExpression
1.0ms
d1
@0
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
0.0ms
d1
@-inf
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
0.0ms
d3
@-inf
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
0.0ms
d3
@inf
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
0.0ms
d3
@0
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))

rewrite174.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
2018×bool.json-1
1266×bool.json-2
1222×rational.json-1
1222×rational.json-2
1222×rational.json-4
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0819
18013
221713
346713
496613
5213413
6453313
7772413
Stop Event
node limit
Counts
1 → 31
Calls
Call 1
Inputs
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (+.f64 37 d3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (+.f64 37 d3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (+.f64 37 d3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 d1 (+.f64 37 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 d1 (/.f64 (+.f64 37 d3) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 d1 37/2) (*.f64 d1 (/.f64 d3 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 (+.f64 37 d3) 1/2) d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (*.f64 2 (+.f64 37 d3))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (*.f64 (+.f64 37 d3) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (/.f64 (+.f64 37 d3) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (+.f64 37/2 (/.f64 d3 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 37 d3) d1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 d1 (+.f64 37 d3)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (*.f64 (+.f64 37 d3) 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 37 d3)) (*.f64 d1 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 37 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 d1 74) (*.f64 d1 (+.f64 d3 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (/.f64 (+.f64 37 d3) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 37 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d3 d3) 74))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 37 d3) 1/2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 d1 (*.f64 (+.f64 37 d3) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 37 d3) 2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 d1 (+.f64 37 d3)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (+.f64 37 d3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 2 (+.f64 37 d3))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 (+.f64 37 d3) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (+.f64 37 d3)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 37 d3)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 37 d3)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 37 d3)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 37 d3)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 d1 (+.f64 37 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 d1 (+.f64 37 d3)) (*.f64 d1 (+.f64 37 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 d1 (+.f64 37 d3)) (*.f64 d1 (+.f64 37 d3)))))))

simplify2.2s (12.8%)

Algorithm
egg-herbie
Rules
5586×rational.json-simplify-35
1824×rational.json-simplify-2
1288×rational.json-simplify-1
892×rational.json-simplify-41
672×rational.json-simplify-53
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
081664
1174636
2354636
31166620
42299604
53437604
64217604
74389604
84513604
94605604
104691604
114771604
125059604
135159604
145259604
155337604
165415604
175493604
185493604
195547604
205603604
215607604
225687604
235765604
245843604
255921604
265999604
276077604
286155604
296233604
306311604
316389604
326467604
336545604
346623604
356701604
366779604
376857604
386935604
396935604
406935604
417013604
427091604
437169604
447247604
457325604
467403604
477481604
487559604
497637604
507715604
517793604
527871604
537949604
Stop Event
node limit
Counts
46 → 40
Calls
Call 1
Inputs
(*.f64 (+.f64 37 d3) d1)
(*.f64 (+.f64 37 d3) d1)
(*.f64 (+.f64 37 d3) d1)
(*.f64 (+.f64 37 d3) d1)
(*.f64 (+.f64 37 d3) d1)
(*.f64 (+.f64 37 d3) d1)
(*.f64 (+.f64 37 d3) d1)
(*.f64 (+.f64 37 d3) d1)
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d3) 37)))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d3) 37)))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d3) 37)))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d3) 37)))
(*.f64 37 d1)
(*.f64 d1 d3)
(*.f64 d1 d3)
(-.f64 (*.f64 d1 (+.f64 37 d3)) 0)
(*.f64 d1 (+.f64 37 d3))
(*.f64 (*.f64 d1 (+.f64 37 d3)) 1)
(*.f64 1 (*.f64 d1 (+.f64 37 d3)))
(*.f64 2 (*.f64 d1 (/.f64 (+.f64 37 d3) 2)))
(*.f64 2 (+.f64 (*.f64 d1 37/2) (*.f64 d1 (/.f64 d3 2))))
(*.f64 2 (*.f64 (*.f64 (+.f64 37 d3) 1/2) d1))
(*.f64 (*.f64 d1 (*.f64 2 (+.f64 37 d3))) 1/2)
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 37 d3) 1/2))
(*.f64 (+.f64 d1 d1) (/.f64 (+.f64 37 d3) 2))
(*.f64 (+.f64 d1 d1) (+.f64 37/2 (/.f64 d3 2)))
(*.f64 (+.f64 37 d3) d1)
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 37 d3)) 4))
(*.f64 (*.f64 d1 (*.f64 (+.f64 37 d3) 4)) 1/4)
(*.f64 (*.f64 2 (+.f64 37 d3)) (*.f64 d1 1/2))
(*.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 37 d3))))
(*.f64 1/2 (+.f64 (*.f64 d1 74) (*.f64 d1 (+.f64 d3 d3))))
(*.f64 (*.f64 d1 (/.f64 (+.f64 37 d3) 2)) 2)
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 37 d3)))
(*.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d3 d3) 74))
(*.f64 (*.f64 (+.f64 37 d3) 1/2) (+.f64 d1 d1))
(*.f64 1/4 (*.f64 d1 (*.f64 (+.f64 37 d3) 4)))
(*.f64 (/.f64 (+.f64 37 d3) 2) (+.f64 d1 d1))
(*.f64 (/.f64 (*.f64 d1 (+.f64 37 d3)) 4) 4)
(/.f64 (*.f64 d1 (+.f64 37 d3)) 1)
(/.f64 (*.f64 d1 (*.f64 2 (+.f64 37 d3))) 2)
(/.f64 (*.f64 d1 (*.f64 (+.f64 37 d3) 4)) 4)
(/.f64 (*.f64 (*.f64 d1 (+.f64 37 d3)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 37 d3)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 37 d3)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 37 d3)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 37 d3)) 8)))) 64)
Outputs
(*.f64 (+.f64 37 d3) d1)
(*.f64 (+.f64 37 d3) d1)
(*.f64 (+.f64 37 d3) d1)
(*.f64 (+.f64 37 d3) d1)
(*.f64 (+.f64 37 d3) d1)
(*.f64 (+.f64 37 d3) d1)
(*.f64 (+.f64 37 d3) d1)
(*.f64 (+.f64 37 d3) d1)
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d3) 37)))
(*.f64 d1 (*.f64 (-.f64 (*.f64 d3 -1) 37) -1))
(*.f64 d1 (neg.f64 (-.f64 (neg.f64 d3) 37)))
(*.f64 d1 (neg.f64 (-.f64 -37 d3)))
(*.f64 d1 (-.f64 d3 -37))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d3) 37)))
(*.f64 d1 (*.f64 (-.f64 (*.f64 d3 -1) 37) -1))
(*.f64 d1 (neg.f64 (-.f64 (neg.f64 d3) 37)))
(*.f64 d1 (neg.f64 (-.f64 -37 d3)))
(*.f64 d1 (-.f64 d3 -37))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d3) 37)))
(*.f64 d1 (*.f64 (-.f64 (*.f64 d3 -1) 37) -1))
(*.f64 d1 (neg.f64 (-.f64 (neg.f64 d3) 37)))
(*.f64 d1 (neg.f64 (-.f64 -37 d3)))
(*.f64 d1 (-.f64 d3 -37))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d3) 37)))
(*.f64 d1 (*.f64 (-.f64 (*.f64 d3 -1) 37) -1))
(*.f64 d1 (neg.f64 (-.f64 (neg.f64 d3) 37)))
(*.f64 d1 (neg.f64 (-.f64 -37 d3)))
(*.f64 d1 (-.f64 d3 -37))
(*.f64 37 d1)
(*.f64 d1 d3)
(*.f64 d3 d1)
(*.f64 d1 d3)
(*.f64 d3 d1)
(-.f64 (*.f64 d1 (+.f64 37 d3)) 0)
(*.f64 (+.f64 37 d3) d1)
(*.f64 d1 (+.f64 37 d3))
(*.f64 (+.f64 37 d3) d1)
(*.f64 (*.f64 d1 (+.f64 37 d3)) 1)
(*.f64 (+.f64 37 d3) d1)
(*.f64 1 (*.f64 d1 (+.f64 37 d3)))
(*.f64 (+.f64 37 d3) d1)
(*.f64 2 (*.f64 d1 (/.f64 (+.f64 37 d3) 2)))
(*.f64 (+.f64 37 d3) d1)
(*.f64 2 (+.f64 (*.f64 d1 37/2) (*.f64 d1 (/.f64 d3 2))))
(*.f64 2 (*.f64 d1 (+.f64 37/2 (/.f64 d3 2))))
(*.f64 2 (*.f64 (*.f64 (+.f64 37 d3) 1/2) d1))
(*.f64 (+.f64 37 d3) d1)
(*.f64 (*.f64 d1 (*.f64 2 (+.f64 37 d3))) 1/2)
(*.f64 (+.f64 37 d3) d1)
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 37 d3) 1/2))
(*.f64 (+.f64 37 d3) d1)
(*.f64 (+.f64 d1 d1) (/.f64 (+.f64 37 d3) 2))
(*.f64 (+.f64 37 d3) d1)
(*.f64 (+.f64 d1 d1) (+.f64 37/2 (/.f64 d3 2)))
(*.f64 2 (+.f64 (*.f64 d1 37/2) (*.f64 d1 (/.f64 d3 2))))
(*.f64 2 (*.f64 d1 (+.f64 37/2 (/.f64 d3 2))))
(*.f64 (+.f64 37 d3) d1)
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 37 d3)) 4))
(*.f64 (+.f64 37 d3) d1)
(*.f64 (*.f64 d1 (*.f64 (+.f64 37 d3) 4)) 1/4)
(*.f64 (+.f64 37 d3) d1)
(*.f64 (*.f64 2 (+.f64 37 d3)) (*.f64 d1 1/2))
(*.f64 (+.f64 37 d3) d1)
(*.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 37 d3))))
(*.f64 (+.f64 37 d3) d1)
(*.f64 1/2 (+.f64 (*.f64 d1 74) (*.f64 d1 (+.f64 d3 d3))))
(*.f64 (+.f64 37 d3) d1)
(*.f64 (*.f64 d1 (/.f64 (+.f64 37 d3) 2)) 2)
(*.f64 (+.f64 37 d3) d1)
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 37 d3)))
(*.f64 (+.f64 37 d3) d1)
(*.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d3 d3) 74))
(*.f64 (+.f64 37 d3) d1)
(*.f64 (*.f64 (+.f64 37 d3) 1/2) (+.f64 d1 d1))
(*.f64 (+.f64 37 d3) d1)
(*.f64 1/4 (*.f64 d1 (*.f64 (+.f64 37 d3) 4)))
(*.f64 (+.f64 37 d3) d1)
(*.f64 (/.f64 (+.f64 37 d3) 2) (+.f64 d1 d1))
(*.f64 (+.f64 37 d3) d1)
(*.f64 (/.f64 (*.f64 d1 (+.f64 37 d3)) 4) 4)
(*.f64 (+.f64 37 d3) d1)
(/.f64 (*.f64 d1 (+.f64 37 d3)) 1)
(*.f64 (+.f64 37 d3) d1)
(/.f64 (*.f64 d1 (*.f64 2 (+.f64 37 d3))) 2)
(*.f64 (+.f64 37 d3) d1)
(/.f64 (*.f64 d1 (*.f64 (+.f64 37 d3) 4)) 4)
(*.f64 (+.f64 37 d3) d1)
(/.f64 (*.f64 (*.f64 d1 (+.f64 37 d3)) 8) 8)
(*.f64 (+.f64 37 d3) d1)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 37 d3)) 8)) 16)
(*.f64 (+.f64 37 d3) d1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 37 d3)) 8))) 32)
(*.f64 (+.f64 37 d3) d1)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 37 d3)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 37 d3)) 8)))) 64)
(*.f64 (+.f64 37 d3) d1)

localize8.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 37 d1) (*.f64 d2 d1))
Compiler

Compiled 19 to 10 computations (47.4% saved)

series1.0ms (0%)

Counts
1 → 15
Calls

6 calls:

TimeVariablePointExpression
0.0ms
d1
@-inf
(+.f64 (*.f64 37 d1) (*.f64 d2 d1))
0.0ms
d1
@0
(+.f64 (*.f64 37 d1) (*.f64 d2 d1))
0.0ms
d2
@0
(+.f64 (*.f64 37 d1) (*.f64 d2 d1))
0.0ms
d2
@inf
(+.f64 (*.f64 37 d1) (*.f64 d2 d1))
0.0ms
d2
@-inf
(+.f64 (*.f64 37 d1) (*.f64 d2 d1))

rewrite106.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
2018×bool.json-1
1266×bool.json-2
1222×rational.json-1
1222×rational.json-2
1222×rational.json-4
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0819
18013
221713
346713
496513
5213213
6453213
7772313
Stop Event
node limit
Counts
1 → 31
Calls
Call 1
Inputs
(+.f64 (*.f64 37 d1) (*.f64 d2 d1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (+.f64 37 d2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (+.f64 37 d2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (+.f64 37 d2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 d1 (+.f64 37 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 37 d2) (*.f64 d1 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 d1 37/2) (*.f64 d1 (*.f64 d2 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 (+.f64 37 d2) 1/2) d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (*.f64 2 (+.f64 37 d2))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (*.f64 (+.f64 37 d2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (/.f64 (+.f64 37 d2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (+.f64 37/2 (*.f64 d2 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 37 d2) d1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 d1 (+.f64 37 d2)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 37 d2) (*.f64 d1 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 37 d2)) (*.f64 d1 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 37 d2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 d1 74) (*.f64 d1 (+.f64 d2 d2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 37 d2) (*.f64 d1 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 37 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d2 d2) 74))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 37 d2) 1/2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 37 d2) (*.f64 d1 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 37 d2) 2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 d1 (+.f64 37 d2)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (+.f64 37 d2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 2 (+.f64 37 d2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 37 d2) (*.f64 d1 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (+.f64 37 d2)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 37 d2)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 37 d2)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 37 d2)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 37 d2)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 d1 (+.f64 37 d2))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 d1 (+.f64 37 d2)) (*.f64 d1 (+.f64 37 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 d1 (+.f64 37 d2)) (*.f64 d1 (+.f64 37 d2)))))))

simplify2.0s (11.5%)

Algorithm
egg-herbie
Rules
5128×rational.json-simplify-35
2166×rational.json-simplify-2
1236×rational.json-simplify-1
936×rational.json-simplify-53
872×rational.json-simplify-41
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
083664
1175636
2350636
31140620
42269604
53402604
64196604
74430604
84522604
94601604
104679604
114756604
125078604
135222604
145470604
155666604
165765604
175847604
185924604
195924604
205924604
216001604
226078604
236155604
246232604
256309604
266386604
276463604
286540604
296617604
306694604
316771604
326848604
336925604
347002604
357079604
367156604
377233604
387233604
397310604
407387604
417464604
427541604
437618604
447695604
457772604
467849604
477926604
Stop Event
node limit
Counts
46 → 45
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 d2 37))
(*.f64 d1 (+.f64 d2 37))
(*.f64 d1 (+.f64 d2 37))
(*.f64 d1 (+.f64 d2 37))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) 37)))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) 37)))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) 37)))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) 37)))
(*.f64 37 d1)
(*.f64 d2 d1)
(*.f64 d2 d1)
(-.f64 (*.f64 d1 (+.f64 37 d2)) 0)
(*.f64 d1 (+.f64 37 d2))
(*.f64 (*.f64 d1 (+.f64 37 d2)) 1)
(*.f64 1 (*.f64 d1 (+.f64 37 d2)))
(*.f64 2 (*.f64 (+.f64 37 d2) (*.f64 d1 1/2)))
(*.f64 2 (+.f64 (*.f64 d1 37/2) (*.f64 d1 (*.f64 d2 1/2))))
(*.f64 2 (*.f64 (*.f64 (+.f64 37 d2) 1/2) d1))
(*.f64 (*.f64 d1 (*.f64 2 (+.f64 37 d2))) 1/2)
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 37 d2) 1/2))
(*.f64 (+.f64 d1 d1) (/.f64 (+.f64 37 d2) 2))
(*.f64 (+.f64 d1 d1) (+.f64 37/2 (*.f64 d2 1/2)))
(*.f64 (+.f64 37 d2) d1)
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 37 d2)) 4))
(*.f64 (*.f64 (+.f64 37 d2) (*.f64 d1 4)) 1/4)
(*.f64 (*.f64 2 (+.f64 37 d2)) (*.f64 d1 1/2))
(*.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 37 d2))))
(*.f64 1/2 (+.f64 (*.f64 d1 74) (*.f64 d1 (+.f64 d2 d2))))
(*.f64 (*.f64 (+.f64 37 d2) (*.f64 d1 1/2)) 2)
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 37 d2)))
(*.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d2 d2) 74))
(*.f64 (*.f64 (+.f64 37 d2) 1/2) (+.f64 d1 d1))
(*.f64 1/4 (*.f64 (+.f64 37 d2) (*.f64 d1 4)))
(*.f64 (/.f64 (+.f64 37 d2) 2) (+.f64 d1 d1))
(*.f64 (/.f64 (*.f64 d1 (+.f64 37 d2)) 4) 4)
(/.f64 (*.f64 d1 (+.f64 37 d2)) 1)
(/.f64 (*.f64 d1 (*.f64 2 (+.f64 37 d2))) 2)
(/.f64 (*.f64 (+.f64 37 d2) (*.f64 d1 4)) 4)
(/.f64 (*.f64 (*.f64 d1 (+.f64 37 d2)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 37 d2)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 37 d2)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 37 d2)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 37 d2)) 8)))) 64)
Outputs
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 d2 37))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 d2 37))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 d2 37))
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 d2 37))
(*.f64 d1 (+.f64 37 d2))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) 37)))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 d2 -1) 37)))
(*.f64 d1 (neg.f64 (-.f64 (neg.f64 d2) 37)))
(*.f64 (-.f64 (neg.f64 d2) 37) (neg.f64 d1))
(*.f64 (-.f64 -37 d2) (neg.f64 d1))
(*.f64 d1 (-.f64 d2 -37))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) 37)))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 d2 -1) 37)))
(*.f64 d1 (neg.f64 (-.f64 (neg.f64 d2) 37)))
(*.f64 (-.f64 (neg.f64 d2) 37) (neg.f64 d1))
(*.f64 (-.f64 -37 d2) (neg.f64 d1))
(*.f64 d1 (-.f64 d2 -37))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) 37)))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 d2 -1) 37)))
(*.f64 d1 (neg.f64 (-.f64 (neg.f64 d2) 37)))
(*.f64 (-.f64 (neg.f64 d2) 37) (neg.f64 d1))
(*.f64 (-.f64 -37 d2) (neg.f64 d1))
(*.f64 d1 (-.f64 d2 -37))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) 37)))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 d2 -1) 37)))
(*.f64 d1 (neg.f64 (-.f64 (neg.f64 d2) 37)))
(*.f64 (-.f64 (neg.f64 d2) 37) (neg.f64 d1))
(*.f64 (-.f64 -37 d2) (neg.f64 d1))
(*.f64 d1 (-.f64 d2 -37))
(*.f64 37 d1)
(*.f64 d1 37)
(*.f64 d2 d1)
(*.f64 d1 d2)
(*.f64 d2 d1)
(*.f64 d1 d2)
(-.f64 (*.f64 d1 (+.f64 37 d2)) 0)
(*.f64 d1 (+.f64 37 d2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 (*.f64 d1 (+.f64 37 d2)) 1)
(*.f64 d1 (+.f64 37 d2))
(*.f64 1 (*.f64 d1 (+.f64 37 d2)))
(*.f64 d1 (+.f64 37 d2))
(*.f64 2 (*.f64 (+.f64 37 d2) (*.f64 d1 1/2)))
(*.f64 d1 (+.f64 37 d2))
(*.f64 2 (+.f64 (*.f64 d1 37/2) (*.f64 d1 (*.f64 d2 1/2))))
(*.f64 2 (*.f64 d1 (+.f64 37/2 (*.f64 d2 1/2))))
(*.f64 d1 (*.f64 (+.f64 37/2 (*.f64 d2 1/2)) 2))
(*.f64 d1 (*.f64 2 (+.f64 37/2 (*.f64 d2 1/2))))
(*.f64 2 (*.f64 (*.f64 (+.f64 37 d2) 1/2) d1))
(*.f64 d1 (+.f64 37 d2))
(*.f64 (*.f64 d1 (*.f64 2 (+.f64 37 d2))) 1/2)
(*.f64 d1 (+.f64 37 d2))
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 37 d2) 1/2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 (+.f64 d1 d1) (/.f64 (+.f64 37 d2) 2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 (+.f64 d1 d1) (+.f64 37/2 (*.f64 d2 1/2)))
(*.f64 2 (+.f64 (*.f64 d1 37/2) (*.f64 d1 (*.f64 d2 1/2))))
(*.f64 2 (*.f64 d1 (+.f64 37/2 (*.f64 d2 1/2))))
(*.f64 d1 (*.f64 (+.f64 37/2 (*.f64 d2 1/2)) 2))
(*.f64 d1 (*.f64 2 (+.f64 37/2 (*.f64 d2 1/2))))
(*.f64 (+.f64 37 d2) d1)
(*.f64 d1 (+.f64 37 d2))
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 37 d2)) 4))
(*.f64 d1 (+.f64 37 d2))
(*.f64 (*.f64 (+.f64 37 d2) (*.f64 d1 4)) 1/4)
(*.f64 d1 (+.f64 37 d2))
(*.f64 (*.f64 2 (+.f64 37 d2)) (*.f64 d1 1/2))
(*.f64 d1 (+.f64 37 d2))
(*.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 37 d2))))
(*.f64 d1 (+.f64 37 d2))
(*.f64 1/2 (+.f64 (*.f64 d1 74) (*.f64 d1 (+.f64 d2 d2))))
(*.f64 d1 (+.f64 37 d2))
(*.f64 (*.f64 (+.f64 37 d2) (*.f64 d1 1/2)) 2)
(*.f64 d1 (+.f64 37 d2))
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 37 d2)))
(*.f64 d1 (+.f64 37 d2))
(*.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d2 d2) 74))
(*.f64 d1 (+.f64 37 d2))
(*.f64 (*.f64 (+.f64 37 d2) 1/2) (+.f64 d1 d1))
(*.f64 d1 (+.f64 37 d2))
(*.f64 1/4 (*.f64 (+.f64 37 d2) (*.f64 d1 4)))
(*.f64 d1 (+.f64 37 d2))
(*.f64 (/.f64 (+.f64 37 d2) 2) (+.f64 d1 d1))
(*.f64 d1 (+.f64 37 d2))
(*.f64 (/.f64 (*.f64 d1 (+.f64 37 d2)) 4) 4)
(*.f64 d1 (+.f64 37 d2))
(/.f64 (*.f64 d1 (+.f64 37 d2)) 1)
(*.f64 d1 (+.f64 37 d2))
(/.f64 (*.f64 d1 (*.f64 2 (+.f64 37 d2))) 2)
(*.f64 d1 (+.f64 37 d2))
(/.f64 (*.f64 (+.f64 37 d2) (*.f64 d1 4)) 4)
(*.f64 d1 (+.f64 37 d2))
(/.f64 (*.f64 (*.f64 d1 (+.f64 37 d2)) 8) 8)
(*.f64 d1 (+.f64 37 d2))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 37 d2)) 8)) 16)
(*.f64 d1 (+.f64 37 d2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 37 d2)) 8))) 32)
(*.f64 d1 (+.f64 37 d2))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 37 d2)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 37 d2)) 8)))) 64)
(*.f64 d1 (+.f64 37 d2))

eval68.0ms (0.4%)

Compiler

Compiled 722 to 520 computations (28% saved)

prune1.0s (5.9%)

Pruning

9 alts after pruning (0 fresh and 9 done)

PrunedKeptTotal
New85085
Fresh000
Picked011
Done088
Total85994
Error
0.0b
Counts
94 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
17.5b
(+.f64 (*.f64 d1 (+.f64 d2 5)) (*.f64 d1 32))
17.5b
(+.f64 (*.f64 37 d1) (*.f64 d2 d1))
25.1b
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
25.1b
(*.f64 (+.f64 37 d3) d1)
38.7b
(*.f64 d2 d1)
0.0b
(*.f64 d1 (+.f64 d2 (+.f64 d3 37)))
17.5b
(*.f64 d1 (+.f64 d2 37))
45.2b
(*.f64 d1 d3)
42.1b
(*.f64 d1 37)
Compiler

Compiled 76 to 55 computations (27.6% saved)

regimes35.0ms (0.2%)

Counts
12 → 1
Calls
Call 1
Inputs
(*.f64 d1 37)
(*.f64 d1 d3)
(*.f64 d2 d1)
(*.f64 d1 (+.f64 d2 37))
(*.f64 (+.f64 37 d3) d1)
(*.f64 d1 (+.f64 d2 (+.f64 d3 37)))
(+.f64 (*.f64 37 d1) (*.f64 d1 d3))
(+.f64 (*.f64 37 d1) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (+.f64 d2 5)) (*.f64 d1 32))
(+.f64 (*.f64 (+.f64 5 d3) d1) (*.f64 d1 32))
(+.f64 (*.f64 d1 (+.f64 (+.f64 d3 5) d2)) (*.f64 d1 32))
(+.f64 (+.f64 (*.f64 d1 d2) (*.f64 (+.f64 d3 5) d1)) (*.f64 d1 32))
Outputs
(*.f64 d1 (+.f64 d2 (+.f64 d3 37)))
Calls

5 calls:

8.0ms
(+.f64 (+.f64 (*.f64 d1 d2) (*.f64 (+.f64 d3 5) d1)) (*.f64 d1 32))
7.0ms
d2
7.0ms
d1
6.0ms
d3
3.0ms
(+.f64 d3 5)
Results
ErrorSegmentsBranch
0.0b1d1
0.0b1d2
0.0b1d3
0.0b1(+.f64 (+.f64 (*.f64 d1 d2) (*.f64 (+.f64 d3 5) d1)) (*.f64 d1 32))
0.0b1(+.f64 d3 5)
Compiler

Compiled 119 to 75 computations (37% saved)

regimes80.0ms (0.5%)

Counts
5 → 2
Calls
Call 1
Inputs
(*.f64 d1 37)
(*.f64 d1 d3)
(*.f64 d2 d1)
(*.f64 d1 (+.f64 d2 37))
(*.f64 (+.f64 37 d3) d1)
Outputs
(*.f64 d1 (+.f64 d2 37))
(*.f64 (+.f64 37 d3) d1)
Calls

3 calls:

66.0ms
d3
8.0ms
d2
5.0ms
d1
Results
ErrorSegmentsBranch
17.5b1d1
3.1b2d2
3.6b2d3
Compiler

Compiled 34 to 22 computations (35.3% saved)

bsearch68.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
67.0ms
-5.751902211463193e-10
-2.0084504755016584e-16
Results
66.0ms144×body256valid
Compiler

Compiled 184 to 142 computations (22.8% saved)

regimes85.0ms (0.5%)

Counts
4 → 2
Calls
Call 1
Inputs
(*.f64 d1 37)
(*.f64 d1 d3)
(*.f64 d2 d1)
(*.f64 d1 (+.f64 d2 37))
Outputs
(*.f64 d1 (+.f64 d2 37))
(*.f64 d1 d3)
Calls

3 calls:

72.0ms
d2
7.0ms
d3
5.0ms
d1
Results
ErrorSegmentsBranch
17.5b1d1
11.5b4d2
4.7b2d3
Compiler

Compiled 29 to 19 computations (34.5% saved)

bsearch14.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
14.0ms
35.37222327286704
603039.7030815742
Results
13.0ms128×body256valid
Compiler

Compiled 150 to 112 computations (25.3% saved)

regimes252.0ms (1.4%)

Counts
3 → 5
Calls
Call 1
Inputs
(*.f64 d1 37)
(*.f64 d1 d3)
(*.f64 d2 d1)
Outputs
(*.f64 d2 d1)
(*.f64 d1 37)
(*.f64 d1 d3)
(*.f64 d1 37)
(*.f64 d1 d3)
Calls

3 calls:

167.0ms
d3
63.0ms
d2
21.0ms
d1
Results
ErrorSegmentsBranch
31.3b7d1
12.8b5d2
17.4b7d3
Compiler

Compiled 24 to 16 computations (33.3% saved)

bsearch255.0ms (1.5%)

Algorithm
binary-search
Steps
TimeLeftRight
160.0ms
1.0961060834332642e-190
6.074560856425606e-173
66.0ms
-1.6365555506664185e-47
-4.643050109641823e-48
12.0ms
-8.764283688414497e-29
-3.698047275035257e-30
16.0ms
-11796732.096846698
-35.72728131445914
Results
249.0ms496×body256valid
Compiler

Compiled 456 to 357 computations (21.7% saved)

regimes81.0ms (0.5%)

Accuracy

Total -34.9b remaining (-132.1%)

Threshold costs -34.9b (-132.1%)

Counts
2 → 2
Calls
Call 1
Inputs
(*.f64 d1 37)
(*.f64 d1 d3)
Outputs
(*.f64 d1 37)
(*.f64 d1 d3)
Calls

3 calls:

61.0ms
d1
13.0ms
d2
5.0ms
d3
Results
ErrorSegmentsBranch
36.4b7d1
33.4b5d2
26.4b2d3
Compiler

Compiled 21 to 15 computations (28.6% saved)

bsearch16.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
16.0ms
35.37222327286704
603039.7030815742
Results
14.0ms128×body256valid
Compiler

Compiled 134 to 104 computations (22.4% saved)

simplify4.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
040184
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 d2 (+.f64 d3 37)))
(if (<=.f64 d2 -5029131409596857/9671406556917033397649408) (*.f64 d1 (+.f64 d2 37)) (*.f64 (+.f64 37 d3) d1))
(if (<=.f64 d3 600000) (*.f64 d1 (+.f64 d2 37)) (*.f64 d1 d3))
(if (<=.f64 d2 -38) (*.f64 d2 d1) (if (<=.f64 d2 -825127572345633/44601490397061246283071436545296723011960832) (*.f64 d1 37) (if (<=.f64 d2 -822752278660603/51422017416287688817342786954917203280710495801049370729644032) (*.f64 d1 d3) (if (<=.f64 d2 840949054640123/18687756769780511615554238896948393266762663965690101475652372553315431084886742575128218875155953253493318900013442692344580934538753794040842900765582189315080170186179645235539452691442089066496) (*.f64 d1 37) (*.f64 d1 d3)))))
(if (<=.f64 d3 36) (*.f64 d1 37) (*.f64 d1 d3))
(*.f64 d1 37)
Outputs
(*.f64 d1 (+.f64 d2 (+.f64 d3 37)))
(if (<=.f64 d2 -5029131409596857/9671406556917033397649408) (*.f64 d1 (+.f64 d2 37)) (*.f64 (+.f64 37 d3) d1))
(if (<=.f64 d3 600000) (*.f64 d1 (+.f64 d2 37)) (*.f64 d1 d3))
(if (<=.f64 d2 -38) (*.f64 d2 d1) (if (<=.f64 d2 -825127572345633/44601490397061246283071436545296723011960832) (*.f64 d1 37) (if (<=.f64 d2 -822752278660603/51422017416287688817342786954917203280710495801049370729644032) (*.f64 d1 d3) (if (<=.f64 d2 840949054640123/18687756769780511615554238896948393266762663965690101475652372553315431084886742575128218875155953253493318900013442692344580934538753794040842900765582189315080170186179645235539452691442089066496) (*.f64 d1 37) (*.f64 d1 d3)))))
(if (<=.f64 d3 36) (*.f64 d1 37) (*.f64 d1 d3))
(*.f64 d1 37)
Compiler

Compiled 95 to 64 computations (32.6% saved)

soundness12.0ms (0.1%)

Algorithm
egg-herbie
Rules
68×rational.json-simplify-1
40×rational.json-simplify-41
14×rational.json-simplify-2
12×rational.json-simplify-51
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01331
12125
22925
34719
46619
58419
69419
Stop Event
saturated
Compiler

Compiled 72 to 47 computations (34.7% saved)

end85.0ms (0.5%)

Remove

(sort d2 d3)

Compiler

Compiled 100 to 61 computations (39% saved)

Profiling

Loading profile data...