Details

Time bar (total: 1.2s)

analyze101.0ms (8.6%)

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)

sample788.0ms (67%)

Results
734.0ms8118×body256valid
18.0ms213×body256infinite
17.0ms87×body1024valid
7.0ms51×body512valid
Bogosity

preprocess6.0ms (0.5%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01662
12662
23462
34262
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 (*.f64 d1 20) (*.f64 d1 10)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 d2) (*.f64 d1 20)))
(+.f64 (+.f64 (*.f64 d2 10) (*.f64 d2 d1)) (*.f64 d2 20))
(+.f64 (+.f64 (*.f64 d1 d2) (*.f64 10 d2)) (*.f64 d2 20))
Compiler

Compiled 15 to 11 computations (26.7% saved)

simplify4.0ms (0.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01131
11631
22031
32431
Stop Event
saturated
Counts
1 → 3
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 (*.f64 d1 20) (*.f64 d1 10)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 d2) (*.f64 d1 20)))

eval1.0ms (0.1%)

Compiler

Compiled 35 to 21 computations (40% saved)

prune2.0ms (0.2%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New123
Fresh011
Picked000
Done000
Total134
Error
0.2b
Counts
4 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(+.f64 (+.f64 (*.f64 d1 20) (*.f64 d1 10)) (*.f64 d1 d2))
0.2b
(+.f64 (+.f64 (*.f64 d1 10) (*.f64 d1 d2)) (*.f64 d1 20))
Compiler

Compiled 26 to 18 computations (30.8% saved)

localize11.0ms (0.9%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 d1 10) (*.f64 d1 d2))
0.1b
(+.f64 (+.f64 (*.f64 d1 10) (*.f64 d1 d2)) (*.f64 d1 20))
Compiler

Compiled 33 to 18 computations (45.5% saved)

series3.0ms (0.3%)

Counts
2 → 48
Calls

12 calls:

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

rewrite6.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
42×rational.json-simplify-1
38×bool.json-1
32×rational.json-simplify-2
30×rational.json-1
30×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01150
15350
28750
310750
411750
Stop Event
saturated
Counts
2 → 4
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 d1 10) (*.f64 d1 d2)) (*.f64 d1 20))
(+.f64 (*.f64 d1 10) (*.f64 d1 d2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 d2) (*.f64 d1 20))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 d2) (*.f64 d1 20))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 d2) (*.f64 d1 20))) (+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 d2) (*.f64 d1 20))))))))
((#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 d1 10) (*.f64 d1 d2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 d1 10) (*.f64 d1 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 d1 10) (*.f64 d1 d2)) (+.f64 (*.f64 d1 10) (*.f64 d1 d2)))))))

simplify23.0ms (2%)

Algorithm
egg-herbie
Rules
122×rational.json-simplify-2
112×rational.json-simplify-31
34×rational.json-simplify-1
24×rational.json-simplify-27
18×rational.json-simplify-9
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0401036
1761036
293988
3119988
4144988
5190988
6221988
7230988
8231988
Stop Event
saturated
Counts
52 → 31
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 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 (*.f64 20 d1) (*.f64 10 d1))
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(*.f64 d2 d1)
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(*.f64 d2 d1)
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(*.f64 (+.f64 10 d2) d1)
(*.f64 (+.f64 10 d2) d1)
(*.f64 (+.f64 10 d2) d1)
(*.f64 (+.f64 10 d2) d1)
(*.f64 d1 (+.f64 d2 10))
(*.f64 d1 (+.f64 d2 10))
(*.f64 d1 (+.f64 d2 10))
(*.f64 d1 (+.f64 d2 10))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) 10)))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) 10)))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) 10)))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) 10)))
(*.f64 10 d1)
(+.f64 (*.f64 10 d1) (*.f64 d2 d1))
(+.f64 (*.f64 10 d1) (*.f64 d2 d1))
(+.f64 (*.f64 10 d1) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 10 d1) (*.f64 d2 d1))
(+.f64 (*.f64 10 d1) (*.f64 d2 d1))
(+.f64 (*.f64 10 d1) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 10 d1) (*.f64 d2 d1))
(+.f64 (*.f64 10 d1) (*.f64 d2 d1))
(+.f64 (*.f64 10 d1) (*.f64 d2 d1))
(*.f64 (+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 d2) (*.f64 d1 20))) 1)
(*.f64 1 (+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 d2) (*.f64 d1 20))))
(*.f64 (+.f64 (*.f64 d1 10) (*.f64 d1 d2)) 1)
(*.f64 1 (+.f64 (*.f64 d1 10) (*.f64 d1 d2)))
Outputs
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 30) d1))
(*.f64 -1 (*.f64 d1 (+.f64 -30 (*.f64 d2 -1))))
(*.f64 d1 (*.f64 -1 (+.f64 (*.f64 d2 -1) -30)))
(*.f64 d1 (-.f64 30 (*.f64 d2 -1)))
(*.f64 d1 (+.f64 30 (*.f64 d2 1)))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 30) d1))
(*.f64 -1 (*.f64 d1 (+.f64 -30 (*.f64 d2 -1))))
(*.f64 d1 (*.f64 -1 (+.f64 (*.f64 d2 -1) -30)))
(*.f64 d1 (-.f64 30 (*.f64 d2 -1)))
(*.f64 d1 (+.f64 30 (*.f64 d2 1)))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 30) d1))
(*.f64 -1 (*.f64 d1 (+.f64 -30 (*.f64 d2 -1))))
(*.f64 d1 (*.f64 -1 (+.f64 (*.f64 d2 -1) -30)))
(*.f64 d1 (-.f64 30 (*.f64 d2 -1)))
(*.f64 d1 (+.f64 30 (*.f64 d2 1)))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 30) d1))
(*.f64 -1 (*.f64 d1 (+.f64 -30 (*.f64 d2 -1))))
(*.f64 d1 (*.f64 -1 (+.f64 (*.f64 d2 -1) -30)))
(*.f64 d1 (-.f64 30 (*.f64 d2 -1)))
(*.f64 d1 (+.f64 30 (*.f64 d2 1)))
(+.f64 (*.f64 20 d1) (*.f64 10 d1))
(+.f64 (*.f64 d1 20) (*.f64 d1 10))
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 20) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 20) (+.f64 (*.f64 d1 10) (*.f64 d1 d2)))
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 20) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 20) (+.f64 (*.f64 d1 10) (*.f64 d1 d2)))
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 20) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 20) (+.f64 (*.f64 d1 10) (*.f64 d1 d2)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 20) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 20) (+.f64 (*.f64 d1 10) (*.f64 d1 d2)))
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 20) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 20) (+.f64 (*.f64 d1 10) (*.f64 d1 d2)))
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 20) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 20) (+.f64 (*.f64 d1 10) (*.f64 d1 d2)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 20) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 20) (+.f64 (*.f64 d1 10) (*.f64 d1 d2)))
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 20) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 20) (+.f64 (*.f64 d1 10) (*.f64 d1 d2)))
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 20) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 20) (+.f64 (*.f64 d1 10) (*.f64 d1 d2)))
(*.f64 (+.f64 10 d2) d1)
(*.f64 d1 (+.f64 d2 10))
(*.f64 (+.f64 10 d2) d1)
(*.f64 d1 (+.f64 d2 10))
(*.f64 (+.f64 10 d2) d1)
(*.f64 d1 (+.f64 d2 10))
(*.f64 (+.f64 10 d2) d1)
(*.f64 d1 (+.f64 d2 10))
(*.f64 d1 (+.f64 d2 10))
(*.f64 d1 (+.f64 d2 10))
(*.f64 d1 (+.f64 d2 10))
(*.f64 d1 (+.f64 d2 10))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) 10)))
(*.f64 -1 (*.f64 d1 (+.f64 -10 (*.f64 d2 -1))))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 d2 -1) -10)))
(*.f64 d1 (-.f64 10 (*.f64 d2 -1)))
(*.f64 d1 (+.f64 10 (*.f64 d2 1)))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) 10)))
(*.f64 -1 (*.f64 d1 (+.f64 -10 (*.f64 d2 -1))))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 d2 -1) -10)))
(*.f64 d1 (-.f64 10 (*.f64 d2 -1)))
(*.f64 d1 (+.f64 10 (*.f64 d2 1)))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) 10)))
(*.f64 -1 (*.f64 d1 (+.f64 -10 (*.f64 d2 -1))))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 d2 -1) -10)))
(*.f64 d1 (-.f64 10 (*.f64 d2 -1)))
(*.f64 d1 (+.f64 10 (*.f64 d2 1)))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) 10)))
(*.f64 -1 (*.f64 d1 (+.f64 -10 (*.f64 d2 -1))))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 d2 -1) -10)))
(*.f64 d1 (-.f64 10 (*.f64 d2 -1)))
(*.f64 d1 (+.f64 10 (*.f64 d2 1)))
(*.f64 10 d1)
(*.f64 d1 10)
(+.f64 (*.f64 10 d1) (*.f64 d2 d1))
(+.f64 (*.f64 d1 10) (*.f64 d1 d2))
(+.f64 (*.f64 10 d1) (*.f64 d2 d1))
(+.f64 (*.f64 d1 10) (*.f64 d1 d2))
(+.f64 (*.f64 10 d1) (*.f64 d2 d1))
(+.f64 (*.f64 d1 10) (*.f64 d1 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 10 d1) (*.f64 d2 d1))
(+.f64 (*.f64 d1 10) (*.f64 d1 d2))
(+.f64 (*.f64 10 d1) (*.f64 d2 d1))
(+.f64 (*.f64 d1 10) (*.f64 d1 d2))
(+.f64 (*.f64 10 d1) (*.f64 d2 d1))
(+.f64 (*.f64 d1 10) (*.f64 d1 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 10 d1) (*.f64 d2 d1))
(+.f64 (*.f64 d1 10) (*.f64 d1 d2))
(+.f64 (*.f64 10 d1) (*.f64 d2 d1))
(+.f64 (*.f64 d1 10) (*.f64 d1 d2))
(+.f64 (*.f64 10 d1) (*.f64 d2 d1))
(+.f64 (*.f64 d1 10) (*.f64 d1 d2))
(*.f64 (+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 d2) (*.f64 d1 20))) 1)
(*.f64 (+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 20) (*.f64 d1 d2))) 1)
(*.f64 (+.f64 (*.f64 d1 20) (+.f64 (*.f64 d1 10) (*.f64 d1 d2))) 1)
(*.f64 1 (+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 d2) (*.f64 d1 20))))
(*.f64 (+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 20) (*.f64 d1 d2))) 1)
(*.f64 (+.f64 (*.f64 d1 20) (+.f64 (*.f64 d1 10) (*.f64 d1 d2))) 1)
(*.f64 (+.f64 (*.f64 d1 10) (*.f64 d1 d2)) 1)
(*.f64 1 (+.f64 (*.f64 d1 10) (*.f64 d1 d2)))
(*.f64 1 (+.f64 (*.f64 d1 10) (*.f64 d1 d2)))

localize11.0ms (1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (+.f64 (*.f64 d1 20) (*.f64 d1 10)) (*.f64 d1 d2))
0.3b
(+.f64 (*.f64 d1 20) (*.f64 d1 10))
Compiler

Compiled 33 to 20 computations (39.4% saved)

series1.0ms (0.1%)

Counts
2 → 36
Calls

9 calls:

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

rewrite7.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
42×rational.json-simplify-1
38×bool.json-1
32×rational.json-simplify-2
30×rational.json-1
30×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01150
15350
28750
310750
411750
Stop Event
saturated
Counts
2 → 4
Calls
Call 1
Inputs
(+.f64 (*.f64 d1 20) (*.f64 d1 10))
(+.f64 (+.f64 (*.f64 d1 20) (*.f64 d1 10)) (*.f64 d1 d2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 d1 20) (*.f64 d1 10)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 d1 20) (*.f64 d1 10)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 d1 20) (*.f64 d1 10)) (+.f64 (*.f64 d1 20) (*.f64 d1 10)))))))
((#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 d1 20) (+.f64 (*.f64 d1 10) (*.f64 d1 d2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 d1 20) (+.f64 (*.f64 d1 10) (*.f64 d1 d2))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 d1 20) (+.f64 (*.f64 d1 10) (*.f64 d1 d2))) (+.f64 (*.f64 d1 20) (+.f64 (*.f64 d1 10) (*.f64 d1 d2))))))))

simplify17.0ms (1.5%)

Algorithm
egg-herbie
Rules
96×rational.json-simplify-31
84×rational.json-simplify-2
28×rational.json-simplify-1
12×rational.json-simplify-27
12×rational.json-simplify-9
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
034724
154724
266700
384700
499700
5129700
6168700
7179700
8180700
Stop Event
saturated
Counts
40 → 22
Calls
Call 1
Inputs
(*.f64 30 d1)
(*.f64 30 d1)
(*.f64 30 d1)
(*.f64 30 d1)
(*.f64 30 d1)
(*.f64 30 d1)
(*.f64 30 d1)
(*.f64 30 d1)
(*.f64 30 d1)
(*.f64 30 d1)
(*.f64 30 d1)
(*.f64 30 d1)
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.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 (*.f64 20 d1) (*.f64 10 d1))
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(*.f64 d2 d1)
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(*.f64 d2 d1)
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(*.f64 (+.f64 (*.f64 d1 20) (*.f64 d1 10)) 1)
(*.f64 1 (+.f64 (*.f64 d1 20) (*.f64 d1 10)))
(*.f64 (+.f64 (*.f64 d1 20) (+.f64 (*.f64 d1 10) (*.f64 d1 d2))) 1)
(*.f64 1 (+.f64 (*.f64 d1 20) (+.f64 (*.f64 d1 10) (*.f64 d1 d2))))
Outputs
(*.f64 30 d1)
(*.f64 30 d1)
(*.f64 30 d1)
(*.f64 30 d1)
(*.f64 30 d1)
(*.f64 30 d1)
(*.f64 30 d1)
(*.f64 30 d1)
(*.f64 30 d1)
(*.f64 30 d1)
(*.f64 30 d1)
(*.f64 30 d1)
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 30) d1))
(*.f64 -1 (*.f64 d1 (+.f64 -30 (*.f64 d2 -1))))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 d2 -1) -30)))
(*.f64 d1 (-.f64 30 (*.f64 d2 -1)))
(*.f64 d1 (+.f64 30 (*.f64 d2 1)))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 30) d1))
(*.f64 -1 (*.f64 d1 (+.f64 -30 (*.f64 d2 -1))))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 d2 -1) -30)))
(*.f64 d1 (-.f64 30 (*.f64 d2 -1)))
(*.f64 d1 (+.f64 30 (*.f64 d2 1)))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 30) d1))
(*.f64 -1 (*.f64 d1 (+.f64 -30 (*.f64 d2 -1))))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 d2 -1) -30)))
(*.f64 d1 (-.f64 30 (*.f64 d2 -1)))
(*.f64 d1 (+.f64 30 (*.f64 d2 1)))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 30) d1))
(*.f64 -1 (*.f64 d1 (+.f64 -30 (*.f64 d2 -1))))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 d2 -1) -30)))
(*.f64 d1 (-.f64 30 (*.f64 d2 -1)))
(*.f64 d1 (+.f64 30 (*.f64 d2 1)))
(+.f64 (*.f64 20 d1) (*.f64 10 d1))
(+.f64 (*.f64 d1 20) (*.f64 d1 10))
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 d1 20) (+.f64 (*.f64 d1 10) (*.f64 d1 d2)))
(+.f64 (+.f64 (*.f64 d1 20) (*.f64 d1 d2)) (*.f64 d1 10))
(+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 20) (*.f64 d1 d2)))
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 d1 20) (+.f64 (*.f64 d1 10) (*.f64 d1 d2)))
(+.f64 (+.f64 (*.f64 d1 20) (*.f64 d1 d2)) (*.f64 d1 10))
(+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 20) (*.f64 d1 d2)))
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 d1 20) (+.f64 (*.f64 d1 10) (*.f64 d1 d2)))
(+.f64 (+.f64 (*.f64 d1 20) (*.f64 d1 d2)) (*.f64 d1 10))
(+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 20) (*.f64 d1 d2)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 d1 20) (+.f64 (*.f64 d1 10) (*.f64 d1 d2)))
(+.f64 (+.f64 (*.f64 d1 20) (*.f64 d1 d2)) (*.f64 d1 10))
(+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 20) (*.f64 d1 d2)))
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 d1 20) (+.f64 (*.f64 d1 10) (*.f64 d1 d2)))
(+.f64 (+.f64 (*.f64 d1 20) (*.f64 d1 d2)) (*.f64 d1 10))
(+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 20) (*.f64 d1 d2)))
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 d1 20) (+.f64 (*.f64 d1 10) (*.f64 d1 d2)))
(+.f64 (+.f64 (*.f64 d1 20) (*.f64 d1 d2)) (*.f64 d1 10))
(+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 20) (*.f64 d1 d2)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 d1 20) (+.f64 (*.f64 d1 10) (*.f64 d1 d2)))
(+.f64 (+.f64 (*.f64 d1 20) (*.f64 d1 d2)) (*.f64 d1 10))
(+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 20) (*.f64 d1 d2)))
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 d1 20) (+.f64 (*.f64 d1 10) (*.f64 d1 d2)))
(+.f64 (+.f64 (*.f64 d1 20) (*.f64 d1 d2)) (*.f64 d1 10))
(+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 20) (*.f64 d1 d2)))
(+.f64 (*.f64 20 d1) (+.f64 (*.f64 10 d1) (*.f64 d2 d1)))
(+.f64 (*.f64 d1 20) (+.f64 (*.f64 d1 10) (*.f64 d1 d2)))
(+.f64 (+.f64 (*.f64 d1 20) (*.f64 d1 d2)) (*.f64 d1 10))
(+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 20) (*.f64 d1 d2)))
(*.f64 (+.f64 (*.f64 d1 20) (*.f64 d1 10)) 1)
(*.f64 1 (+.f64 (*.f64 d1 20) (*.f64 d1 10)))
(*.f64 (+.f64 (*.f64 d1 20) (*.f64 d1 10)) 1)
(*.f64 (+.f64 (*.f64 d1 20) (+.f64 (*.f64 d1 10) (*.f64 d1 d2))) 1)
(*.f64 1 (+.f64 (*.f64 d1 20) (+.f64 (*.f64 d1 10) (*.f64 d1 d2))))
(*.f64 1 (+.f64 (+.f64 (*.f64 d1 20) (*.f64 d1 d2)) (*.f64 d1 10)))
(*.f64 1 (+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 20) (*.f64 d1 d2))))
(*.f64 1 (+.f64 (*.f64 d1 20) (+.f64 (*.f64 d1 10) (*.f64 d1 d2))))
(*.f64 1 (+.f64 (+.f64 (*.f64 d1 20) (*.f64 d1 d2)) (*.f64 d1 10)))
(*.f64 1 (+.f64 (*.f64 d1 10) (+.f64 (*.f64 d1 20) (*.f64 d1 d2))))

eval11.0ms (0.9%)

Compiler

Compiled 499 to 319 computations (36.1% saved)

prune6.0ms (0.5%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New50353
Fresh000
Picked101
Done101
Total52355
Error
0.0b
Counts
55 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
35.5b
(*.f64 d2 d1)
0.0b
(*.f64 d1 (+.f64 d2 30))
Compiler

Compiled 21 to 14 computations (33.3% saved)

localize5.0ms (0.4%)

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

Counts
1 → 20
Calls

6 calls:

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

rewrite5.0ms (0.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
13413
25813
36313
Stop Event
saturated
Counts
1 → 2
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 or (*.f64 d1 (+.f64 d2 30)) (*.f64 d1 (+.f64 d2 30)))))))

simplify7.0ms (0.6%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
015334
119334
Stop Event
saturated
Counts
22 → 10
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)))
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 (*.f64 d1 30) (*.f64 d1 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d1 30) (*.f64 d1 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d1 30) (*.f64 d1 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d1 30) (*.f64 d1 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d1 30) (*.f64 d1 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d1 30) (*.f64 d1 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d1 30) (*.f64 d1 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d1 30) (*.f64 d1 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d1 30) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (+.f64 d2 30)) 0)
(+.f64 (*.f64 d1 (+.f64 30 d2)) 0)
(+.f64 0 (*.f64 d1 (+.f64 d2 30)))
(+.f64 (*.f64 d1 (+.f64 30 d2)) 0)

localize3.0ms (0.2%)

Compiler

Compiled 7 to 3 computations (57.1% saved)

localize6.0ms (0.5%)

Local error

Found 1 expressions with local error:

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

Compiled 18 to 9 computations (50% saved)

series1.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite5.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
24×bool.json-1
22×rational.json-simplify-2
20×rational.json-simplify-1
18×rational.json-1
18×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0819
13919
26519
37019
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 30 d1) (*.f64 d1 d2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 30 d1) (*.f64 d1 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 30 d1) (*.f64 d1 d2)) (+.f64 (*.f64 30 d1) (*.f64 d1 d2)))))))

simplify13.0ms (1.1%)

Algorithm
egg-herbie
Rules
78×rational.json-simplify-2
70×rational.json-simplify-31
14×rational.json-simplify-1
12×rational.json-simplify-27
12×rational.json-simplify-9
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
020446
136446
245422
361422
476422
5105422
6126422
7133422
8134422
Stop Event
saturated
Counts
26 → 15
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 (*.f64 30 d1) (*.f64 d1 d2)) 1)
(*.f64 1 (+.f64 (*.f64 30 d1) (*.f64 d1 d2)))
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 -30 (*.f64 d2 -1)) (*.f64 -1 d1))
(*.f64 d1 (*.f64 -1 (+.f64 (*.f64 d2 -1) -30)))
(*.f64 d1 (-.f64 30 (*.f64 d2 -1)))
(*.f64 d1 (+.f64 30 (*.f64 d2 1)))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 30) d1))
(*.f64 (+.f64 -30 (*.f64 d2 -1)) (*.f64 -1 d1))
(*.f64 d1 (*.f64 -1 (+.f64 (*.f64 d2 -1) -30)))
(*.f64 d1 (-.f64 30 (*.f64 d2 -1)))
(*.f64 d1 (+.f64 30 (*.f64 d2 1)))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 30) d1))
(*.f64 (+.f64 -30 (*.f64 d2 -1)) (*.f64 -1 d1))
(*.f64 d1 (*.f64 -1 (+.f64 (*.f64 d2 -1) -30)))
(*.f64 d1 (-.f64 30 (*.f64 d2 -1)))
(*.f64 d1 (+.f64 30 (*.f64 d2 1)))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 30) d1))
(*.f64 (+.f64 -30 (*.f64 d2 -1)) (*.f64 -1 d1))
(*.f64 d1 (*.f64 -1 (+.f64 (*.f64 d2 -1) -30)))
(*.f64 d1 (-.f64 30 (*.f64 d2 -1)))
(*.f64 d1 (+.f64 30 (*.f64 d2 1)))
(*.f64 30 d1)
(*.f64 d1 30)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d1 30) (*.f64 d1 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d1 30) (*.f64 d1 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d1 30) (*.f64 d1 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d1 30) (*.f64 d1 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d1 30) (*.f64 d1 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d1 30) (*.f64 d1 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d1 30) (*.f64 d1 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d1 30) (*.f64 d1 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d1 30) (*.f64 d1 d2))
(*.f64 (+.f64 (*.f64 30 d1) (*.f64 d1 d2)) 1)
(*.f64 (+.f64 (*.f64 d1 30) (*.f64 d1 d2)) 1)
(*.f64 1 (+.f64 (*.f64 30 d1) (*.f64 d1 d2)))
(*.f64 (+.f64 (*.f64 d1 30) (*.f64 d1 d2)) 1)

eval5.0ms (0.4%)

Compiler

Compiled 153 to 91 computations (40.5% saved)

prune3.0ms (0.3%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New24125
Fresh000
Picked011
Done022
Total24428
Error
0.0b
Counts
28 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
35.5b
(*.f64 d2 d1)
0.0b
(*.f64 d1 (+.f64 d2 30))
27.3b
(*.f64 d1 30)
Compiler

Compiled 26 to 18 computations (30.8% saved)

localize3.0ms (0.2%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0.1%)

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

Compiled 26 to 18 computations (30.8% saved)

regimes16.0ms (1.3%)

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

3 calls:

5.0ms
d2
5.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 61 to 37 computations (39.3% saved)

regimes7.0ms (0.6%)

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

2 calls:

3.0ms
d1
3.0ms
d2
Results
ErrorSegmentsBranch
0.0b1d1
0.0b1d2
Compiler

Compiled 19 to 12 computations (36.8% saved)

regimes32.0ms (2.7%)

Accuracy

Total -60.1b remaining (-4559.2%)

Threshold costs -60.1b (-4559.2%)

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:

21.0ms
d1
11.0ms
d2
Results
ErrorSegmentsBranch
21.2b7d1
1.3b3d2
Compiler

Compiled 14 to 9 computations (35.7% saved)

bsearch31.0ms (2.6%)

Algorithm
binary-search
Steps
TimeLeftRight
17.0ms
0.6967476852531951
428956890433.1118
14.0ms
-127.74691702725845
-3.0671274927251856e-6
Results
28.0ms304×body256valid
Compiler

Compiled 246 to 184 computations (25.2% saved)

simplify2.0ms (0.2%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02078
Stop Event
done
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 30 d1) (*.f64 d1 d2))
(*.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 (*.f64 30 d1) (*.f64 d1 d2))
(*.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 40 to 26 computations (35% saved)

soundness5.0ms (0.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01131
11631
22031
32431
Stop Event
saturated
Compiler

Compiled 35 to 21 computations (40% saved)

end25.0ms (2.1%)

Compiler

Compiled 34 to 20 computations (41.2% saved)

Profiling

Loading profile data...