Details

Time bar (total: 3.6s)

analyze428.0ms (11.9%)

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.6s (44.2%)

Results
1.5s8145×body256valid
51.0ms200×body256infinite
16.0ms80×body1024valid
4.0ms31×body512valid
Bogosity

preprocess5.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)

simplify9.0ms (0.3%)

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))

eval4.0ms (0.1%)

Compiler

Compiled 34 to 21 computations (38.2% saved)

prune1.0ms (0%)

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

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))

rewrite209.0ms (5.8%)

Algorithm
batch-egg-rewrite
Rules
2428×rational.json-simplify-35
1520×rational.json-simplify-53
1482×rational.json-simplify-1
1242×exponential.json-3
1242×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
14613
29913
320113
436913
582013
6206313
7365013
8475613
9615313
10689213
11689213
12689213
Stop Event
node limit
Counts
1 → 15
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 d1 (*.f64 (+.f64 d2 30) 1/2)) (*.f64 d1 (*.f64 (+.f64 d2 30) 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 (+.f64 d2 30) (*.f64 d1 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 (+.f64 d2 30) 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 d2 30) 8) (*.f64 d1 8))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (+.f64 d2 30) 8) (*.f64 d1 8)) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 16 (*.f64 d1 (+.f64 d2 30))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 d2 30) (*.f64 8 (*.f64 d1 4))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 d2 30) 8) (*.f64 d1 8)))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 d2 30) 8) (*.f64 d1 8)))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 d2 30) 8) (*.f64 d1 8))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (+.f64 d2 30)) 1)))))

simplify550.0ms (15.3%)

Algorithm
egg-herbie
Rules
3338×rational.json-simplify-35
2310×rational.json-simplify-2
1622×rational.json-simplify-53
1348×rational.json-simplify-1
914×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
055437
1139437
2291437
3729437
42321437
54532437
65304437
75537437
85708437
95860437
106009437
117308437
127382437
137382437
147529437
157676437
167823437
177970437
Stop Event
node limit
Counts
35 → 21
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 d1 (*.f64 (+.f64 d2 30) 1/2)) (*.f64 d1 (*.f64 (+.f64 d2 30) 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 (+.f64 d2 30) (*.f64 d1 4)) 4)
(/.f64 (*.f64 d1 (*.f64 (+.f64 d2 30) 8)) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 d2 30) 8) (*.f64 d1 8))) 128)
(/.f64 (*.f64 (*.f64 (+.f64 d2 30) 8) (*.f64 d1 8)) 64)
(/.f64 (*.f64 16 (*.f64 d1 (+.f64 d2 30))) 16)
(/.f64 (*.f64 (+.f64 d2 30) (*.f64 8 (*.f64 d1 4))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 d2 30) 8) (*.f64 d1 8)))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 d2 30) 8) (*.f64 d1 8)))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 d2 30) 8) (*.f64 d1 8))))) 512)
(pow.f64 (*.f64 d1 (+.f64 d2 30)) 1)
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 d1 (*.f64 (+.f64 d2 30) 1/2)) (*.f64 d1 (*.f64 (+.f64 d2 30) 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 (+.f64 d2 30) (*.f64 d1 4)) 4)
(*.f64 d1 (+.f64 30 d2))
(/.f64 (*.f64 d1 (*.f64 (+.f64 d2 30) 8)) 8)
(*.f64 d1 (+.f64 30 d2))
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 d2 30) 8) (*.f64 d1 8))) 128)
(*.f64 d1 (+.f64 30 d2))
(/.f64 (*.f64 (*.f64 (+.f64 d2 30) 8) (*.f64 d1 8)) 64)
(*.f64 d1 (+.f64 30 d2))
(/.f64 (*.f64 16 (*.f64 d1 (+.f64 d2 30))) 16)
(*.f64 d1 (+.f64 30 d2))
(/.f64 (*.f64 (+.f64 d2 30) (*.f64 8 (*.f64 d1 4))) 32)
(*.f64 d1 (+.f64 30 d2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 d2 30) 8) (*.f64 d1 8)))) 256)
(*.f64 d1 (+.f64 30 d2))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 d2 30) 8) (*.f64 d1 8)))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 d2 30) 8) (*.f64 d1 8))))) 512)
(*.f64 d1 (+.f64 30 d2))
(pow.f64 (*.f64 d1 (+.f64 d2 30)) 1)
(*.f64 d1 (+.f64 30 d2))

localize9.0ms (0.2%)

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)

series2.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
d2
@0
(+.f64 (*.f64 d1 d2) (*.f64 d1 30))
1.0ms
d1
@inf
(+.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))

rewrite194.0ms (5.4%)

Algorithm
batch-egg-rewrite
Rules
1714×rational.json-simplify-35
1708×rational.json-simplify-1
1416×exponential.json-3
1416×rational.json-1
1416×rational.json-2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0819
15313
211413
324513
445713
5104913
6260213
7470013
8558713
9687513
10785213
11785213
Stop Event
node limit
Counts
1 → 44
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) 1/2)))))) (#(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 1/2) 15))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (*.f64 1/4 (+.f64 d2 (+.f64 d2 60))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (+.f64 d2 (+.f64 d2 60))) 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)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (/.f64 d1 8) (+.f64 d2 (+.f64 d2 60))))))) (#(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 d1 4) (/.f64 (+.f64 d2 30) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 4) (*.f64 (+.f64 d2 30) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 4) (*.f64 1/8 (+.f64 d2 (+.f64 d2 60))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (/.f64 d1 8) (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d2 (+.f64 d2 60)) (*.f64 d1 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 8) (*.f64 1/8 (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 d1 (+.f64 d2 (+.f64 d2 60))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (+.f64 d2 (+.f64 d2 60)))))) (#(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 d1 (*.f64 (+.f64 d2 30) 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 d1 8)) (*.f64 1/16 (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 d2 30) 4) (*.f64 d1 1/4))))) (#(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) 1/2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 d1 (+.f64 d2 30)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/4) (*.f64 (+.f64 d2 30) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 d2 30) 4) (*.f64 d1 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 d2 1/2) 15) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 d2 d2) 60) (*.f64 d1 1/2))))) (#(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 d2 (+.f64 d2 60))) 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 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (+.f64 d2 30)) 1)))))

simplify192.0ms (5.3%)

Algorithm
egg-herbie
Rules
2738×rational.json-simplify-2
1682×rational.json-simplify-1
1604×rational.json-simplify-35
1292×rational.json-simplify-51
1146×rational.json-simplify-41
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0107938
1247922
2563922
32065906
44761890
56002890
66185890
76309890
86437890
96562890
107377890
Stop Event
node limit
Counts
68 → 54
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) 1/2)))
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 d2 30) 1/2))
(*.f64 (+.f64 d1 d1) (+.f64 (*.f64 d2 1/2) 15))
(*.f64 (+.f64 d1 d1) (*.f64 1/4 (+.f64 d2 (+.f64 d2 60))))
(*.f64 (*.f64 d1 (+.f64 d2 (+.f64 d2 60))) 1/2)
(*.f64 (+.f64 d2 30) d1)
(*.f64 4 (*.f64 (*.f64 d1 (+.f64 d2 30)) 1/4))
(*.f64 4 (*.f64 (/.f64 d1 8) (+.f64 d2 (+.f64 d2 60))))
(*.f64 (*.f64 (+.f64 d2 30) (*.f64 d1 4)) 1/4)
(*.f64 (*.f64 d1 4) (/.f64 (+.f64 d2 30) 4))
(*.f64 (*.f64 d1 4) (*.f64 (+.f64 d2 30) 1/4))
(*.f64 (*.f64 d1 4) (*.f64 1/8 (+.f64 d2 (+.f64 d2 60))))
(*.f64 8 (*.f64 (/.f64 d1 8) (+.f64 d2 30)))
(*.f64 (+.f64 d2 (+.f64 d2 60)) (*.f64 d1 1/2))
(*.f64 (*.f64 d1 8) (*.f64 1/8 (+.f64 d2 30)))
(*.f64 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8) 1/8)
(*.f64 1/2 (*.f64 d1 (+.f64 d2 (+.f64 d2 60))))
(*.f64 (*.f64 d1 1/2) (+.f64 d2 (+.f64 d2 60)))
(*.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d2 d2) 60))
(*.f64 (*.f64 d1 (*.f64 (+.f64 d2 30) 1/2)) 2)
(*.f64 (*.f64 2 (*.f64 d1 8)) (*.f64 1/16 (+.f64 d2 30)))
(*.f64 (*.f64 (+.f64 d2 30) 4) (*.f64 d1 1/4))
(*.f64 1/4 (*.f64 (+.f64 d2 30) (*.f64 d1 4)))
(*.f64 (*.f64 (+.f64 d2 30) 1/2) (+.f64 d1 d1))
(*.f64 (*.f64 (*.f64 d1 (+.f64 d2 30)) 1/4) 4)
(*.f64 (*.f64 d1 1/4) (*.f64 (+.f64 d2 30) 4))
(*.f64 1/8 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8))
(*.f64 (/.f64 (+.f64 d2 30) 4) (*.f64 d1 4))
(*.f64 (+.f64 (*.f64 d2 1/2) 15) (+.f64 d1 d1))
(*.f64 (+.f64 (+.f64 d2 d2) 60) (*.f64 d1 1/2))
(/.f64 (*.f64 d1 (+.f64 d2 30)) 1)
(/.f64 (*.f64 d1 (+.f64 d2 (+.f64 d2 60))) 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 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8)))))) 256)
(pow.f64 (*.f64 d1 (+.f64 d2 30)) 1)
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 (-.f64 (*.f64 d2 -1) 30) (*.f64 d1 -1))
(*.f64 (-.f64 (neg.f64 d2) 30) (neg.f64 d1))
(*.f64 d1 (neg.f64 (-.f64 -30 d2)))
(*.f64 d1 (-.f64 d2 -30))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 30) d1))
(*.f64 (-.f64 (*.f64 d2 -1) 30) (*.f64 d1 -1))
(*.f64 (-.f64 (neg.f64 d2) 30) (neg.f64 d1))
(*.f64 d1 (neg.f64 (-.f64 -30 d2)))
(*.f64 d1 (-.f64 d2 -30))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 30) d1))
(*.f64 (-.f64 (*.f64 d2 -1) 30) (*.f64 d1 -1))
(*.f64 (-.f64 (neg.f64 d2) 30) (neg.f64 d1))
(*.f64 d1 (neg.f64 (-.f64 -30 d2)))
(*.f64 d1 (-.f64 d2 -30))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 30) d1))
(*.f64 (-.f64 (*.f64 d2 -1) 30) (*.f64 d1 -1))
(*.f64 (-.f64 (neg.f64 d2) 30) (neg.f64 d1))
(*.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) 1/2)))
(*.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 1/2) 15))
(*.f64 (+.f64 d1 d1) (*.f64 1/4 (+.f64 d2 (+.f64 d2 60))))
(*.f64 d1 (+.f64 d2 30))
(*.f64 (*.f64 d1 (+.f64 d2 (+.f64 d2 60))) 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)) 1/4))
(*.f64 d1 (+.f64 d2 30))
(*.f64 4 (*.f64 (/.f64 d1 8) (+.f64 d2 (+.f64 d2 60))))
(*.f64 d1 (+.f64 d2 30))
(*.f64 (*.f64 (+.f64 d2 30) (*.f64 d1 4)) 1/4)
(*.f64 d1 (+.f64 d2 30))
(*.f64 (*.f64 d1 4) (/.f64 (+.f64 d2 30) 4))
(*.f64 d1 (+.f64 d2 30))
(*.f64 (*.f64 d1 4) (*.f64 (+.f64 d2 30) 1/4))
(*.f64 d1 (+.f64 d2 30))
(*.f64 (*.f64 d1 4) (*.f64 1/8 (+.f64 d2 (+.f64 d2 60))))
(*.f64 d1 (+.f64 d2 30))
(*.f64 8 (*.f64 (/.f64 d1 8) (+.f64 d2 30)))
(*.f64 d1 (+.f64 d2 30))
(*.f64 (+.f64 d2 (+.f64 d2 60)) (*.f64 d1 1/2))
(*.f64 d1 (+.f64 d2 30))
(*.f64 (*.f64 d1 8) (*.f64 1/8 (+.f64 d2 30)))
(*.f64 d1 (+.f64 d2 30))
(*.f64 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8) 1/8)
(*.f64 d1 (+.f64 d2 30))
(*.f64 1/2 (*.f64 d1 (+.f64 d2 (+.f64 d2 60))))
(*.f64 d1 (+.f64 d2 30))
(*.f64 (*.f64 d1 1/2) (+.f64 d2 (+.f64 d2 60)))
(*.f64 d1 (+.f64 d2 30))
(*.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d2 d2) 60))
(*.f64 d1 (+.f64 d2 30))
(*.f64 (*.f64 d1 (*.f64 (+.f64 d2 30) 1/2)) 2)
(*.f64 d1 (+.f64 d2 30))
(*.f64 (*.f64 2 (*.f64 d1 8)) (*.f64 1/16 (+.f64 d2 30)))
(*.f64 d1 (+.f64 d2 30))
(*.f64 (*.f64 (+.f64 d2 30) 4) (*.f64 d1 1/4))
(*.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) 1/2) (+.f64 d1 d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 (*.f64 (*.f64 d1 (+.f64 d2 30)) 1/4) 4)
(*.f64 d1 (+.f64 d2 30))
(*.f64 (*.f64 d1 1/4) (*.f64 (+.f64 d2 30) 4))
(*.f64 d1 (+.f64 d2 30))
(*.f64 1/8 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8))
(*.f64 d1 (+.f64 d2 30))
(*.f64 (/.f64 (+.f64 d2 30) 4) (*.f64 d1 4))
(*.f64 d1 (+.f64 d2 30))
(*.f64 (+.f64 (*.f64 d2 1/2) 15) (+.f64 d1 d1))
(*.f64 (+.f64 d1 d1) (+.f64 (*.f64 d2 1/2) 15))
(*.f64 (+.f64 (+.f64 d2 d2) 60) (*.f64 d1 1/2))
(*.f64 d1 (+.f64 d2 30))
(/.f64 (*.f64 d1 (+.f64 d2 30)) 1)
(*.f64 d1 (+.f64 d2 30))
(/.f64 (*.f64 d1 (+.f64 d2 (+.f64 d2 60))) 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 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8)))) 64)
(*.f64 d1 (+.f64 d2 30))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8))))) 128)
(*.f64 d1 (+.f64 d2 30))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 30)) 8)))))) 256)
(*.f64 d1 (+.f64 d2 30))
(pow.f64 (*.f64 d1 (+.f64 d2 30)) 1)
(*.f64 d1 (+.f64 d2 30))

eval58.0ms (1.6%)

Compiler

Compiled 662 to 484 computations (26.9% saved)

prune10.0ms (0.3%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New73275
Fresh000
Picked011
Done011
Total73477
Error
0.0b
Counts
77 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 d1 d2) (*.f64 d1 30))
35.1b
(*.f64 d2 d1)
0.0b
(*.f64 d1 (+.f64 d2 30))
27.5b
(*.f64 d1 30)
Compiler

Compiled 26 to 18 computations (30.8% saved)

localize3.0ms (0.1%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

localize3.0ms (0.1%)

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))
35.1b
(*.f64 d2 d1)
0.0b
(*.f64 d1 (+.f64 d2 30))
27.5b
(*.f64 d1 30)
Compiler

Compiled 26 to 18 computations (30.8% saved)

regimes80.0ms (2.2%)

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:

70.0ms
d1
4.0ms
(+.f64 (+.f64 (*.f64 d1 10) (*.f64 d1 d2)) (*.f64 d1 20))
4.0ms
d2
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)

regimes139.0ms (3.9%)

Accuracy

Total -60.0b remaining (-4552%)

Threshold costs -60.0b (-4552%)

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:

130.0ms
d1
8.0ms
d2
Results
ErrorSegmentsBranch
19.3b9d1
1.3b3d2
Compiler

Compiled 14 to 9 computations (35.7% saved)

bsearch69.0ms (1.9%)

Algorithm
binary-search
Steps
TimeLeftRight
55.0ms
15.94224775082924
778601237.8769906
14.0ms
-3629.7583810947435
-0.0014842709281326415
Results
66.0ms288×body256valid
Compiler

Compiled 234 to 175 computations (25.2% saved)

simplify2.0ms (0.1%)

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

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

Compiler

Compiled 27 to 16 computations (40.7% saved)

Profiling

Loading profile data...