Details

Time bar (total: 6.1s)

analyze60.0ms (1%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
0%0%99.9%0.1%0%0%0%4
25%25%74.9%0.1%0%0%0%5
37.5%37.5%62.4%0.1%0%0%0%6
51.6%50%46.8%0.1%3.1%0%0%7
62.3%59.3%35.9%0.1%4.7%0%0%8
72.3%67.1%25.8%0.1%7%0%0%9
79.1%72.6%19.1%0.1%8.2%0%0%10
85.1%76.9%13.5%0.1%9.6%0%0%11
89%79.8%9.9%0.1%10.2%0%0%12
Compiler

Compiled 14 to 10 computations (28.6% saved)

sample1.1s (17.3%)

Results
1.0s8138×body256valid
21.0ms247×body256infinite
15.0ms74×body1024valid
6.0ms40×body512valid
1.0msbody2048valid
Bogosity

preprocess4.0ms (0.1%)

Algorithm
egg-herbie
Rules
44×rational.json-simplify-1
26×rational.json-simplify-2
20×rational.json-simplify-51
16×rational.json-simplify-41
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01662
12650
24238
36426
47926
58326
022
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(+.f64 (+.f64 (*.f64 d1 10) (*.f64 d1 d2)) (*.f64 d1 20))
(+.f64 (+.f64 (*.f64 d2 10) (*.f64 d2 d1)) (*.f64 d2 20))
Outputs
(+.f64 (+.f64 (*.f64 d1 10) (*.f64 d1 d2)) (*.f64 d1 20))
(+.f64 (*.f64 d1 (+.f64 d2 10)) (*.f64 d1 20))
(+.f64 (*.f64 d1 d2) (*.f64 d1 30))
(*.f64 d1 (+.f64 d2 30))
(+.f64 (+.f64 (*.f64 d2 10) (*.f64 d2 d1)) (*.f64 d2 20))
(+.f64 (+.f64 (*.f64 d1 d2) (*.f64 10 d2)) (*.f64 d2 20))
(+.f64 (*.f64 d2 (+.f64 10 d1)) (*.f64 d2 20))
(+.f64 (*.f64 d1 d2) (*.f64 d2 30))
(*.f64 d2 (+.f64 d1 30))
Compiler

Compiled 15 to 11 computations (26.7% saved)

simplify8.0ms (0.1%)

Algorithm
egg-herbie
Rules
22×rational.json-simplify-1
14×rational.json-simplify-2
10×rational.json-simplify-51
rational.json-simplify-41
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01131
11625
22419
33613
44413
54613
Stop Event
saturated
Counts
1 → 4
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 d1 10) (*.f64 d1 d2)) (*.f64 d1 20))
Outputs
(+.f64 (+.f64 (*.f64 d1 10) (*.f64 d1 d2)) (*.f64 d1 20))
(+.f64 (*.f64 d1 (+.f64 d2 10)) (*.f64 d1 20))
(+.f64 (*.f64 d1 d2) (*.f64 d1 30))
(*.f64 d1 (+.f64 d2 30))

eval1.0ms (0%)

Compiler

Compiled 34 to 21 computations (38.2% saved)

prune42.0ms (0.7%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New224
Fresh101
Picked000
Done000
Total325
Error
0.0b
Counts
5 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 d1 d2) (*.f64 d1 30))
0.0b
(*.f64 d1 (+.f64 d2 30))
Compiler

Compiled 16 to 11 computations (31.3% saved)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 8 computations (38.5% saved)

series2.0ms (0%)

Counts
1 → 20
Calls

6 calls:

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

rewrite91.0ms (1.5%)

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 30))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (+.f64 d2 30)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 d1 (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 d2 30) (*.f64 d1 1/2)) (*.f64 (+.f64 d2 30) (*.f64 d1 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (+.f64 d2 30)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (+.f64 d2 30)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 d2 30) (+.f64 d1 d1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 (+.f64 d2 30) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 d1 (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 d1 (+.f64 d2 30)) (*.f64 d1 (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 d1 (+.f64 d2 30)) (*.f64 d1 (+.f64 d2 30)))))))

simplify1.5s (25%)

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 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 30 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d1 (+.f64 d2 30)) 0)
(+.f64 0 (*.f64 d1 (+.f64 d2 30)))
(+.f64 (*.f64 (+.f64 d2 30) (*.f64 d1 1/2)) (*.f64 (+.f64 d2 30) (*.f64 d1 1/2)))
(-.f64 (*.f64 d1 (+.f64 d2 30)) 0)
(/.f64 (*.f64 d1 (+.f64 d2 30)) 1)
(/.f64 (*.f64 (+.f64 d2 30) (+.f64 d1 d1)) 2)
(/.f64 (*.f64 d1 (*.f64 (+.f64 d2 30) 4)) 4)
(/.f64 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8)))) 64)
Outputs
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 30 d1)
(*.f64 d1 30)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d1 (+.f64 d2 30)) 0)
(*.f64 d1 (+.f64 30 d2))
(+.f64 0 (*.f64 d1 (+.f64 d2 30)))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 (+.f64 d2 30) (*.f64 d1 1/2)) (*.f64 (+.f64 d2 30) (*.f64 d1 1/2)))
(*.f64 d1 (+.f64 30 d2))
(-.f64 (*.f64 d1 (+.f64 d2 30)) 0)
(*.f64 d1 (+.f64 30 d2))
(/.f64 (*.f64 d1 (+.f64 d2 30)) 1)
(*.f64 d1 (+.f64 30 d2))
(/.f64 (*.f64 (+.f64 d2 30) (+.f64 d1 d1)) 2)
(*.f64 d1 (+.f64 30 d2))
(/.f64 (*.f64 d1 (*.f64 (+.f64 d2 30) 4)) 4)
(*.f64 d1 (+.f64 30 d2))
(/.f64 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8) 8)
(*.f64 d1 (+.f64 30 d2))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8)) 16)
(*.f64 d1 (+.f64 30 d2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8))) 32)
(*.f64 d1 (+.f64 30 d2))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8)))) 64)
(*.f64 d1 (+.f64 30 d2))

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 18 to 9 computations (50% saved)

series3.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite105.0ms (1.7%)

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
5213313
6453313
7772613
Stop Event
node limit
Counts
1 → 31
Calls
Call 1
Inputs
(+.f64 (*.f64 d1 d2) (*.f64 d1 30))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (+.f64 d2 30)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (+.f64 d2 30))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (+.f64 d2 30)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 d1 (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 d1 (/.f64 (+.f64 d2 30) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (*.f64 d1 d2) 1/2) (*.f64 d1 15)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 (+.f64 d2 30) 1/2) d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (*.f64 (+.f64 d2 30) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (/.f64 (+.f64 d2 30) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (+.f64 (*.f64 d2 1/2) 15))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (*.f64 2 (+.f64 d2 30))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d2 30) d1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 d1 (+.f64 d2 30)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 d2 30) (*.f64 d1 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 d2 30)) (*.f64 d1 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 d2 (+.f64 d1 d1)) (*.f64 d1 60)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (/.f64 (+.f64 d2 30) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d2 d2) 60))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 d2 30) 1/2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 d2 30) (*.f64 d1 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 d2 30) 2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 d1 (+.f64 d2 30)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (+.f64 d2 30)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 2 (+.f64 d2 30))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 d2 30) (*.f64 d1 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 d1 (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 d1 (+.f64 d2 30)) (*.f64 d1 (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 d1 (+.f64 d2 30)) (*.f64 d1 (+.f64 d2 30)))))))

simplify1.8s (29.1%)

Algorithm
egg-herbie
Rules
5186×rational.json-simplify-35
1970×rational.json-simplify-2
1310×rational.json-simplify-1
918×rational.json-simplify-41
814×rational.json-simplify-53
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
083793
1178777
2358771
31143755
42285739
53445739
64256739
74469739
84613739
94730739
104827739
114918739
125262739
135350739
145438739
155526739
165614739
175637739
185729739
195806739
205814739
215814739
225902739
235990739
246078739
256166739
266254739
276342739
286430739
296518739
306606739
316694739
326782739
336870739
346958739
357046739
367134739
377222739
387222739
397222739
407310739
417398739
427486739
437574739
447662739
457750739
467838739
477926739
Stop Event
node limit
Counts
55 → 45
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 30) d1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 30) d1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 30) d1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 30) d1))
(*.f64 30 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(-.f64 (*.f64 d1 (+.f64 d2 30)) 0)
(*.f64 d1 (+.f64 d2 30))
(*.f64 (*.f64 d1 (+.f64 d2 30)) 1)
(*.f64 1 (*.f64 d1 (+.f64 d2 30)))
(*.f64 2 (*.f64 d1 (/.f64 (+.f64 d2 30) 2)))
(*.f64 2 (+.f64 (*.f64 (*.f64 d1 d2) 1/2) (*.f64 d1 15)))
(*.f64 2 (*.f64 (*.f64 (+.f64 d2 30) 1/2) d1))
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 d2 30) 1/2))
(*.f64 (+.f64 d1 d1) (/.f64 (+.f64 d2 30) 2))
(*.f64 (+.f64 d1 d1) (+.f64 (*.f64 d2 1/2) 15))
(*.f64 (*.f64 d1 (*.f64 2 (+.f64 d2 30))) 1/2)
(*.f64 (+.f64 d2 30) d1)
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 d2 30)) 4))
(*.f64 (*.f64 (+.f64 d2 30) (*.f64 d1 4)) 1/4)
(*.f64 (*.f64 2 (+.f64 d2 30)) (*.f64 d1 1/2))
(*.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 d2 30))))
(*.f64 1/2 (+.f64 (*.f64 d2 (+.f64 d1 d1)) (*.f64 d1 60)))
(*.f64 (*.f64 d1 (/.f64 (+.f64 d2 30) 2)) 2)
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 d2 30)))
(*.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d2 d2) 60))
(*.f64 (*.f64 (+.f64 d2 30) 1/2) (+.f64 d1 d1))
(*.f64 1/4 (*.f64 (+.f64 d2 30) (*.f64 d1 4)))
(*.f64 (/.f64 (+.f64 d2 30) 2) (+.f64 d1 d1))
(*.f64 (/.f64 (*.f64 d1 (+.f64 d2 30)) 4) 4)
(/.f64 (*.f64 d1 (+.f64 d2 30)) 1)
(/.f64 (*.f64 d1 (*.f64 2 (+.f64 d2 30))) 2)
(/.f64 (*.f64 (+.f64 d2 30) (*.f64 d1 4)) 4)
(/.f64 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8)))) 64)
Outputs
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 30) d1))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 d2 -1) 30)))
(*.f64 (-.f64 (neg.f64 d2) 30) (neg.f64 d1))
(*.f64 d1 (neg.f64 (-.f64 (neg.f64 d2) 30)))
(*.f64 d1 (neg.f64 (-.f64 -30 d2)))
(*.f64 d1 (-.f64 d2 -30))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 30) d1))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 d2 -1) 30)))
(*.f64 (-.f64 (neg.f64 d2) 30) (neg.f64 d1))
(*.f64 d1 (neg.f64 (-.f64 (neg.f64 d2) 30)))
(*.f64 d1 (neg.f64 (-.f64 -30 d2)))
(*.f64 d1 (-.f64 d2 -30))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 30) d1))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 d2 -1) 30)))
(*.f64 (-.f64 (neg.f64 d2) 30) (neg.f64 d1))
(*.f64 d1 (neg.f64 (-.f64 (neg.f64 d2) 30)))
(*.f64 d1 (neg.f64 (-.f64 -30 d2)))
(*.f64 d1 (-.f64 d2 -30))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 30) d1))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 d2 -1) 30)))
(*.f64 (-.f64 (neg.f64 d2) 30) (neg.f64 d1))
(*.f64 d1 (neg.f64 (-.f64 (neg.f64 d2) 30)))
(*.f64 d1 (neg.f64 (-.f64 -30 d2)))
(*.f64 d1 (-.f64 d2 -30))
(*.f64 30 d1)
(*.f64 d1 30)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(-.f64 (*.f64 d1 (+.f64 d2 30)) 0)
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 (*.f64 d1 (+.f64 d2 30)) 1)
(*.f64 d1 (+.f64 d2 30))
(*.f64 1 (*.f64 d1 (+.f64 d2 30)))
(*.f64 d1 (+.f64 d2 30))
(*.f64 2 (*.f64 d1 (/.f64 (+.f64 d2 30) 2)))
(*.f64 d1 (+.f64 d2 30))
(*.f64 2 (+.f64 (*.f64 (*.f64 d1 d2) 1/2) (*.f64 d1 15)))
(*.f64 2 (+.f64 (*.f64 d2 (*.f64 d1 1/2)) (*.f64 d1 15)))
(*.f64 2 (*.f64 d1 (+.f64 15 (*.f64 d2 1/2))))
(*.f64 2 (*.f64 (*.f64 (+.f64 d2 30) 1/2) d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 d2 30) 1/2))
(*.f64 d1 (+.f64 d2 30))
(*.f64 (+.f64 d1 d1) (/.f64 (+.f64 d2 30) 2))
(*.f64 d1 (+.f64 d2 30))
(*.f64 (+.f64 d1 d1) (+.f64 (*.f64 d2 1/2) 15))
(*.f64 (+.f64 d1 d1) (+.f64 15 (*.f64 d2 1/2)))
(*.f64 (*.f64 d1 (*.f64 2 (+.f64 d2 30))) 1/2)
(*.f64 d1 (+.f64 d2 30))
(*.f64 (+.f64 d2 30) d1)
(*.f64 d1 (+.f64 d2 30))
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 d2 30)) 4))
(*.f64 d1 (+.f64 d2 30))
(*.f64 (*.f64 (+.f64 d2 30) (*.f64 d1 4)) 1/4)
(*.f64 d1 (+.f64 d2 30))
(*.f64 (*.f64 2 (+.f64 d2 30)) (*.f64 d1 1/2))
(*.f64 d1 (+.f64 d2 30))
(*.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 d2 30))))
(*.f64 d1 (+.f64 d2 30))
(*.f64 1/2 (+.f64 (*.f64 d2 (+.f64 d1 d1)) (*.f64 d1 60)))
(*.f64 (*.f64 d1 (/.f64 (+.f64 d2 30) 2)) 2)
(*.f64 d1 (+.f64 d2 30))
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 d2 30)))
(*.f64 d1 (+.f64 d2 30))
(*.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d2 d2) 60))
(*.f64 d1 (+.f64 d2 30))
(*.f64 (*.f64 (+.f64 d2 30) 1/2) (+.f64 d1 d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 1/4 (*.f64 (+.f64 d2 30) (*.f64 d1 4)))
(*.f64 d1 (+.f64 d2 30))
(*.f64 (/.f64 (+.f64 d2 30) 2) (+.f64 d1 d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 (/.f64 (*.f64 d1 (+.f64 d2 30)) 4) 4)
(*.f64 d1 (+.f64 d2 30))
(/.f64 (*.f64 d1 (+.f64 d2 30)) 1)
(*.f64 d1 (+.f64 d2 30))
(/.f64 (*.f64 d1 (*.f64 2 (+.f64 d2 30))) 2)
(*.f64 d1 (+.f64 d2 30))
(/.f64 (*.f64 (+.f64 d2 30) (*.f64 d1 4)) 4)
(*.f64 d1 (+.f64 d2 30))
(/.f64 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8) 8)
(*.f64 d1 (+.f64 d2 30))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8)) 16)
(*.f64 d1 (+.f64 d2 30))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8))) 32)
(*.f64 d1 (+.f64 d2 30))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8)))) 64)
(*.f64 d1 (+.f64 d2 30))

eval10.0ms (0.2%)

Compiler

Compiled 525 to 372 computations (29.1% saved)

prune10.0ms (0.2%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New60262
Fresh000
Picked011
Done011
Total60464
Error
0.0b
Counts
64 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 d1 d2) (*.f64 d1 30))
32.5b
(*.f64 d2 d1)
0.0b
(*.f64 d1 (+.f64 d2 30))
30.5b
(*.f64 d1 30)
Compiler

Compiled 26 to 18 computations (30.8% saved)

localize3.0ms (0%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

localize3.0ms (0%)

Compiler

Compiled 7 to 3 computations (57.1% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0%)

Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New000
Fresh000
Picked011
Done033
Total044
Error
0.0b
Counts
4 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 d1 d2) (*.f64 d1 30))
32.5b
(*.f64 d2 d1)
0.0b
(*.f64 d1 (+.f64 d2 30))
30.5b
(*.f64 d1 30)
Compiler

Compiled 26 to 18 computations (30.8% saved)

regimes16.0ms (0.3%)

Counts
5 → 1
Calls
Call 1
Inputs
(*.f64 d1 30)
(*.f64 d2 d1)
(*.f64 d1 (+.f64 d2 30))
(+.f64 (*.f64 d1 d2) (*.f64 d1 30))
(+.f64 (+.f64 (*.f64 d1 10) (*.f64 d1 d2)) (*.f64 d1 20))
Outputs
(*.f64 d1 (+.f64 d2 30))
Calls

3 calls:

6.0ms
d2
4.0ms
(+.f64 (+.f64 (*.f64 d1 10) (*.f64 d1 d2)) (*.f64 d1 20))
4.0ms
d1
Results
ErrorSegmentsBranch
0.0b1d1
0.0b1d2
0.0b1(+.f64 (+.f64 (*.f64 d1 10) (*.f64 d1 d2)) (*.f64 d1 20))
Compiler

Compiled 50 to 31 computations (38% saved)

regimes83.0ms (1.4%)

Accuracy

Total -60.0b remaining (-3890.5%)

Threshold costs -60.0b (-3890.5%)

Counts
2 → 3
Calls
Call 1
Inputs
(*.f64 d1 30)
(*.f64 d2 d1)
Outputs
(*.f64 d2 d1)
(*.f64 d1 30)
(*.f64 d2 d1)
Calls

2 calls:

74.0ms
d1
8.0ms
d2
Results
ErrorSegmentsBranch
20.1b9d1
1.5b3d2
Compiler

Compiled 14 to 9 computations (35.7% saved)

bsearch1.3s (20.7%)

Algorithm
binary-search
Steps
TimeLeftRight
1.3s
2.9276207722601546e-5
3765.3763719110193
13.0ms
-7042.936500257853
-0.9597340962405021
Results
1.3s272×body256valid
Compiler

Compiled 222 to 166 computations (25.2% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01759
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 d2 30))
(if (<=.f64 d2 -30) (*.f64 d2 d1) (if (<=.f64 d2 30) (*.f64 d1 30) (*.f64 d2 d1)))
(*.f64 d1 30)
Outputs
(*.f64 d1 (+.f64 d2 30))
(if (<=.f64 d2 -30) (*.f64 d2 d1) (if (<=.f64 d2 30) (*.f64 d1 30) (*.f64 d2 d1)))
(*.f64 d1 30)
Compiler

Compiled 31 to 20 computations (35.5% saved)

soundness11.0ms (0.2%)

Algorithm
egg-herbie
Rules
22×rational.json-simplify-1
14×rational.json-simplify-2
10×rational.json-simplify-51
rational.json-simplify-41
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01131
11625
22419
33613
44413
54613
Stop Event
saturated
Compiler

Compiled 79 to 51 computations (35.4% saved)

end21.0ms (0.3%)

Compiler

Compiled 27 to 16 computations (40.7% saved)

Profiling

Loading profile data...