Details

Time bar (total: 6.9s)

analyze462.0ms (6.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.4%25%73.3%0.1%1.6%0%0%9
35.3%34.3%62.8%0.1%2.7%0%0%10
43.9%41.3%52.9%0.1%5.7%0%0%11
50.6%46.8%45.7%0.1%7.3%0%0%12
Compiler

Compiled 15 to 10 computations (33.3% saved)

sample1.5s (21.8%)

Results
1.1s7904×body256valid
218.0ms211×body512valid
162.0ms1443×body256infinite
32.0ms141×body1024valid
Bogosity

preprocess13.0ms (0.2%)

Algorithm
egg-herbie
Rules
66×rational.json-simplify-1
38×rational.json-simplify-2
36×rational.json-simplify-51
26×rational.json-simplify-41
swap-d2-d3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
023124
140100
26676
39776
411776
512276
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 3) (*.f64 d1 d2)) (*.f64 d1 d3))
(+.f64 (+.f64 (*.f64 d2 3) (*.f64 d2 d1)) (*.f64 d2 d3))
(+.f64 (+.f64 (*.f64 d3 3) (*.f64 d3 d2)) (*.f64 d3 d1))
(+.f64 (+.f64 (*.f64 d1 3) (*.f64 d1 d3)) (*.f64 d1 d2))
Outputs
(+.f64 (+.f64 (*.f64 d1 3) (*.f64 d1 d2)) (*.f64 d1 d3))
(+.f64 (*.f64 d1 d2) (*.f64 d1 (+.f64 d3 3)))
(*.f64 d1 (+.f64 d3 (+.f64 3 d2)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (+.f64 (*.f64 d2 3) (*.f64 d2 d1)) (*.f64 d2 d3))
(+.f64 (+.f64 (*.f64 d1 d2) (*.f64 3 d2)) (*.f64 d2 d3))
(+.f64 (*.f64 d2 (+.f64 3 d1)) (*.f64 d2 d3))
(*.f64 d2 (+.f64 d3 (+.f64 d1 3)))
(*.f64 d2 (+.f64 3 (+.f64 d1 d3)))
(+.f64 (+.f64 (*.f64 d3 3) (*.f64 d3 d2)) (*.f64 d3 d1))
(+.f64 (*.f64 d1 d3) (+.f64 (*.f64 3 d3) (*.f64 d2 d3)))
(+.f64 (*.f64 d1 d3) (*.f64 d3 (+.f64 d2 3)))
(*.f64 d3 (+.f64 d1 (+.f64 3 d2)))
(+.f64 (+.f64 (*.f64 d1 3) (*.f64 d1 d3)) (*.f64 d1 d2))
(+.f64 (+.f64 (*.f64 d1 3) (*.f64 d1 d2)) (*.f64 d1 d3))
(+.f64 (*.f64 d1 d2) (*.f64 d1 (+.f64 d3 3)))
(*.f64 d1 (+.f64 d3 (+.f64 3 d2)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
Symmetry

(sort d2 d3)

Compiler

Compiled 17 to 12 computations (29.4% saved)

simplify8.0ms (0.1%)

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

Useful iterations: 2 (0.0ms)

IterNodesCost
01131
11625
22419
33519
44319
54519
Stop Event
saturated
Counts
1 → 4
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 d1 3) (*.f64 d1 d2)) (*.f64 d1 d3))
Outputs
(+.f64 (+.f64 (*.f64 d1 3) (*.f64 d1 d2)) (*.f64 d1 d3))
(+.f64 (*.f64 d1 (+.f64 d2 3)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 d3 (+.f64 3 d2)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))

eval1.0ms (0%)

Compiler

Compiled 37 to 21 computations (43.2% saved)

prune2.0ms (0%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New134
Fresh011
Picked000
Done000
Total145
Error
0.0b
Counts
5 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (+.f64 (*.f64 d1 3) (*.f64 d1 d2)) (*.f64 d1 d3))
0.0b
(+.f64 (*.f64 d1 (+.f64 d2 3)) (*.f64 d1 d3))
0.0b
(*.f64 d1 (+.f64 d3 (+.f64 3 d2)))
Compiler

Compiled 36 to 24 computations (33.3% saved)

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 22 to 13 computations (40.9% saved)

series6.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

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

rewrite81.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
1646×bool.json-1
1646×bool.json-2
1616×rational.json-1
1616×rational.json-2
1616×rational.json-3
Iterations

Useful iterations: 0 (0.0ms)

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

simplify422.0ms (6.1%)

Algorithm
egg-herbie
Rules
3384×rational.json-simplify-41
2416×rational.json-simplify-2
2240×rational.json-simplify-35
1134×rational.json-simplify-53
660×rational.json-simplify-43
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
049814
1108814
2208814
3555814
42122814
53152814
63671814
73767814
83849814
93931814
104011814
114440814
124669814
134983814
145162814
155241814
165320814
175320814
187750814
197841814
207928814
Stop Event
node limit
Counts
46 → 20
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 3 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 3 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 3 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 3 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 (+.f64 d2 3) d1)
(+.f64 (*.f64 (+.f64 d2 3) d1) (*.f64 d1 d3))
(+.f64 (*.f64 (+.f64 d2 3) d1) (*.f64 d1 d3))
(+.f64 (*.f64 (+.f64 d2 3) d1) (*.f64 d1 d3))
(*.f64 d1 d3)
(+.f64 (*.f64 (+.f64 d2 3) d1) (*.f64 d1 d3))
(+.f64 (*.f64 (+.f64 d2 3) d1) (*.f64 d1 d3))
(+.f64 (*.f64 (+.f64 d2 3) d1) (*.f64 d1 d3))
(*.f64 d1 d3)
(+.f64 (*.f64 (+.f64 d2 3) d1) (*.f64 d1 d3))
(+.f64 (*.f64 (+.f64 d2 3) d1) (*.f64 d1 d3))
(+.f64 (*.f64 (+.f64 d2 3) d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 d3))
(+.f64 (*.f64 d1 (+.f64 3 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (+.f64 3 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (+.f64 3 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d1 (+.f64 3 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (+.f64 3 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (+.f64 3 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d1 (+.f64 3 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (+.f64 3 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (+.f64 3 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (+.f64 d3 (+.f64 3 d2))) 0)
(+.f64 0 (*.f64 d1 (+.f64 d3 (+.f64 3 d2))))
(+.f64 (*.f64 (+.f64 d3 (+.f64 3 d2)) (*.f64 d1 1/2)) (*.f64 (+.f64 d3 (+.f64 3 d2)) (*.f64 d1 1/2)))
(-.f64 (*.f64 d1 (+.f64 d3 (+.f64 3 d2))) 0)
(/.f64 (*.f64 d1 (+.f64 d3 (+.f64 3 d2))) 1)
(/.f64 (*.f64 d1 (*.f64 (+.f64 d3 (+.f64 3 d2)) 2)) 2)
(/.f64 (*.f64 d1 (*.f64 (+.f64 d3 (+.f64 3 d2)) 4)) 4)
(/.f64 (*.f64 (*.f64 d1 (+.f64 d3 (+.f64 3 d2))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d3 (+.f64 3 d2))) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d3 (+.f64 3 d2))) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d3 (+.f64 3 d2))) 8))) 32)
Outputs
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 3 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 3 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 3 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 3 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 (+.f64 d2 3) d1)
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 (+.f64 d2 3) d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 (+.f64 d2 3) d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 (+.f64 d2 3) d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 d3)
(+.f64 (*.f64 (+.f64 d2 3) d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 (+.f64 d2 3) d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 (+.f64 d2 3) d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 d3)
(+.f64 (*.f64 (+.f64 d2 3) d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 (+.f64 d2 3) d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 (+.f64 d2 3) d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 3 d3))
(+.f64 (*.f64 d1 (+.f64 3 d3)) (*.f64 d2 d1))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 d1 (+.f64 3 d3)) (*.f64 d2 d1))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 d1 (+.f64 3 d3)) (*.f64 d2 d1))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d1 (+.f64 3 d3)) (*.f64 d2 d1))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 d1 (+.f64 3 d3)) (*.f64 d2 d1))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 d1 (+.f64 3 d3)) (*.f64 d2 d1))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d1 (+.f64 3 d3)) (*.f64 d2 d1))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 d1 (+.f64 3 d3)) (*.f64 d2 d1))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 d1 (+.f64 3 d3)) (*.f64 d2 d1))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 d1 (+.f64 d3 (+.f64 3 d2))) 0)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 0 (*.f64 d1 (+.f64 d3 (+.f64 3 d2))))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 (+.f64 d3 (+.f64 3 d2)) (*.f64 d1 1/2)) (*.f64 (+.f64 d3 (+.f64 3 d2)) (*.f64 d1 1/2)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(-.f64 (*.f64 d1 (+.f64 d3 (+.f64 3 d2))) 0)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(/.f64 (*.f64 d1 (+.f64 d3 (+.f64 3 d2))) 1)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(/.f64 (*.f64 d1 (*.f64 (+.f64 d3 (+.f64 3 d2)) 2)) 2)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(/.f64 (*.f64 d1 (*.f64 (+.f64 d3 (+.f64 3 d2)) 4)) 4)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(/.f64 (*.f64 (*.f64 d1 (+.f64 d3 (+.f64 3 d2))) 8) 8)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d3 (+.f64 3 d2))) 8)) 16)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d3 (+.f64 3 d2))) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d3 (+.f64 3 d2))) 8))) 32)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))

localize10.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 27 to 14 computations (48.1% saved)

series4.0ms (0.1%)

Counts
2 → 60
Calls

15 calls:

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

rewrite83.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
1558×bool.json-1
1558×bool.json-2
1528×rational.json-1
1528×rational.json-2
1528×rational.json-4
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01038
19932
225632
354532
4116032
5260532
6560932
Stop Event
node limit
Counts
2 → 43
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 d2 3))
(+.f64 (*.f64 d1 (+.f64 d2 3)) (*.f64 d1 d3))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (+.f64 d2 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 d1 (+.f64 d2 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 d2 3) (*.f64 d1 1/2)) (*.f64 (+.f64 d2 3) (*.f64 d1 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (+.f64 d2 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (+.f64 d2 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 d2 3) (+.f64 d1 d1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 (+.f64 d2 3) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (+.f64 d2 3)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 3)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 3)) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 3)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 d1 (+.f64 d2 3))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 d1 (+.f64 d2 3)) (*.f64 d1 (+.f64 d2 3)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 d1 (+.f64 d2 3)) (*.f64 d1 (+.f64 d2 3)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (+.f64 d2 (+.f64 3 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 d1 (*.f64 d3 1/2)) (*.f64 (+.f64 d2 3) (*.f64 d1 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (+.f64 d2 3) (*.f64 d1 1/2)) (*.f64 d1 (*.f64 d3 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (*.f64 (+.f64 d2 (+.f64 3 d3)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (/.f64 (+.f64 d2 (+.f64 3 d3)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (+.f64 (*.f64 d3 1/2) (*.f64 (+.f64 d2 3) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (+.f64 (*.f64 (+.f64 d2 3) 1/2) (*.f64 d3 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d2 (+.f64 3 d3)) d1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 d2 (+.f64 3 d3))) (*.f64 d1 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 d1 (+.f64 d3 d3)) (*.f64 (+.f64 d2 3) (+.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (+.f64 d2 3) (+.f64 d1 d1)) (*.f64 d1 (+.f64 d3 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 d2 (+.f64 3 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d3 d3) (+.f64 d2 (+.f64 d2 6))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d2 (+.f64 d2 6)) (+.f64 d3 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 d2 (+.f64 3 d3)) 1/2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 d2 (+.f64 3 d3)) 2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 d1 (+.f64 d2 (+.f64 3 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) (*.f64 d1 (+.f64 d2 (+.f64 3 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) (*.f64 d1 (+.f64 d2 (+.f64 3 d3))))))))

simplify296.0ms (4.3%)

Algorithm
egg-herbie
Rules
2282×rational.json-simplify-2
1826×rational.json-simplify-35
1578×rational.json-simplify-1
944×rational.json-simplify-48
904×rational.json-simplify-51
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01171681
12351675
25811675
317101675
437331675
544981675
648031675
750221675
851951675
953571675
1060941675
1165881675
1271821675
1376261675
Stop Event
node limit
Counts
103 → 58
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 3 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 (+.f64 d2 3) d1)
(*.f64 (+.f64 d2 3) d1)
(*.f64 (+.f64 d2 3) d1)
(*.f64 (+.f64 d2 3) d1)
(*.f64 d1 (+.f64 3 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 3 d1)
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 3 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 3 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 3 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 3 d3)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 d3) (*.f64 -1 (+.f64 d2 3))) d1))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 d3) (*.f64 -1 (+.f64 d2 3))) d1))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 d3) (*.f64 -1 (+.f64 d2 3))) d1))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 d3) (*.f64 -1 (+.f64 d2 3))) d1))
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d2 d1)
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d2 d1)
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 3 d2)))
(+.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 3 d2)))
(+.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 3 d2)))
(*.f64 d1 d3)
(+.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 3 d2)))
(+.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 3 d2)))
(+.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 3 d2)))
(*.f64 d1 d3)
(+.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 3 d2)))
(+.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 3 d2)))
(+.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 3 d2)))
(+.f64 (*.f64 d1 (+.f64 d2 3)) 0)
(+.f64 0 (*.f64 d1 (+.f64 d2 3)))
(+.f64 (*.f64 (+.f64 d2 3) (*.f64 d1 1/2)) (*.f64 (+.f64 d2 3) (*.f64 d1 1/2)))
(-.f64 (*.f64 d1 (+.f64 d2 3)) 0)
(/.f64 (*.f64 d1 (+.f64 d2 3)) 1)
(/.f64 (*.f64 (+.f64 d2 3) (+.f64 d1 d1)) 2)
(/.f64 (*.f64 d1 (*.f64 (+.f64 d2 3) 4)) 4)
(/.f64 (*.f64 (*.f64 d1 (+.f64 d2 3)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 3)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 3)) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 3)) 8))) 32)
(-.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 0)
(*.f64 d1 (+.f64 d2 (+.f64 3 d3)))
(*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 1)
(*.f64 1 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))))
(*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 1/2))
(*.f64 2 (+.f64 (*.f64 d1 (*.f64 d3 1/2)) (*.f64 (+.f64 d2 3) (*.f64 d1 1/2))))
(*.f64 2 (+.f64 (*.f64 (+.f64 d2 3) (*.f64 d1 1/2)) (*.f64 d1 (*.f64 d3 1/2))))
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 d2 (+.f64 3 d3)) 1/2))
(*.f64 (+.f64 d1 d1) (/.f64 (+.f64 d2 (+.f64 3 d3)) 2))
(*.f64 (+.f64 d1 d1) (+.f64 (*.f64 d3 1/2) (*.f64 (+.f64 d2 3) 1/2)))
(*.f64 (+.f64 d1 d1) (+.f64 (*.f64 (+.f64 d2 3) 1/2) (*.f64 d3 1/2)))
(*.f64 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 2) 1/2)
(*.f64 (+.f64 d2 (+.f64 3 d3)) d1)
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 4))
(*.f64 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 4) 1/4)
(*.f64 (*.f64 2 (+.f64 d2 (+.f64 3 d3))) (*.f64 d1 1/2))
(*.f64 1/2 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 2))
(*.f64 1/2 (+.f64 (*.f64 d1 (+.f64 d3 d3)) (*.f64 (+.f64 d2 3) (+.f64 d1 d1))))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 d2 3) (+.f64 d1 d1)) (*.f64 d1 (+.f64 d3 d3))))
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 d2 (+.f64 3 d3))))
(*.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d3 d3) (+.f64 d2 (+.f64 d2 6))))
(*.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d2 (+.f64 d2 6)) (+.f64 d3 d3)))
(*.f64 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 1/2) 2)
(*.f64 (*.f64 (+.f64 d2 (+.f64 3 d3)) 1/2) (+.f64 d1 d1))
(*.f64 1/4 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 4))
(*.f64 (/.f64 (+.f64 d2 (+.f64 3 d3)) 2) (+.f64 d1 d1))
(*.f64 (/.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 4) 4)
(/.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 1)
(/.f64 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 2) 2)
(/.f64 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 4) 4)
(/.f64 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 8))) 32)
Outputs
(*.f64 d1 (+.f64 3 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 (+.f64 d2 3) d1)
(*.f64 d1 (+.f64 3 d2))
(*.f64 (+.f64 d2 3) d1)
(*.f64 d1 (+.f64 3 d2))
(*.f64 (+.f64 d2 3) d1)
(*.f64 d1 (+.f64 3 d2))
(*.f64 (+.f64 d2 3) d1)
(*.f64 d1 (+.f64 3 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 3 d1)
(*.f64 d1 3)
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(*.f64 d1 (+.f64 3 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(*.f64 d1 (+.f64 3 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(*.f64 d1 (+.f64 3 d2))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 3 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 3 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 3 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 3 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 d3) (*.f64 -1 (+.f64 d2 3))) d1))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 d3) (*.f64 -1 (+.f64 d2 3))) d1))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 d3) (*.f64 -1 (+.f64 d2 3))) d1))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 d3) (*.f64 -1 (+.f64 d2 3))) d1))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(+.f64 (*.f64 d1 3) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 d3))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 3 d2)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 3 d2)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 3 d2)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 d3)
(+.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 3 d2)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 3 d2)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 3 d2)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 d3)
(+.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 3 d2)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 3 d2)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 3 d2)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 d1 (+.f64 d2 3)) 0)
(*.f64 d1 (+.f64 3 d2))
(+.f64 0 (*.f64 d1 (+.f64 d2 3)))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 (+.f64 d2 3) (*.f64 d1 1/2)) (*.f64 (+.f64 d2 3) (*.f64 d1 1/2)))
(*.f64 d1 (+.f64 3 d2))
(-.f64 (*.f64 d1 (+.f64 d2 3)) 0)
(*.f64 d1 (+.f64 3 d2))
(/.f64 (*.f64 d1 (+.f64 d2 3)) 1)
(*.f64 d1 (+.f64 3 d2))
(/.f64 (*.f64 (+.f64 d2 3) (+.f64 d1 d1)) 2)
(*.f64 d1 (+.f64 3 d2))
(/.f64 (*.f64 d1 (*.f64 (+.f64 d2 3) 4)) 4)
(*.f64 d1 (+.f64 3 d2))
(/.f64 (*.f64 (*.f64 d1 (+.f64 d2 3)) 8) 8)
(*.f64 d1 (+.f64 3 d2))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 3)) 8)) 16)
(*.f64 d1 (+.f64 3 d2))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 3)) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 3)) 8))) 32)
(*.f64 d1 (+.f64 3 d2))
(-.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 0)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 3 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 1)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 1 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 1/2))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 2 (+.f64 (*.f64 d1 (*.f64 d3 1/2)) (*.f64 (+.f64 d2 3) (*.f64 d1 1/2))))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 2 (+.f64 (*.f64 (+.f64 d2 3) (*.f64 d1 1/2)) (*.f64 d1 (*.f64 d3 1/2))))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 d2 (+.f64 3 d3)) 1/2))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 (+.f64 d1 d1) (/.f64 (+.f64 d2 (+.f64 3 d3)) 2))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 (+.f64 d1 d1) (+.f64 (*.f64 d3 1/2) (*.f64 (+.f64 d2 3) 1/2)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 (+.f64 d1 d1) (+.f64 (*.f64 (+.f64 d2 3) 1/2) (*.f64 d3 1/2)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 2) 1/2)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 (+.f64 d2 (+.f64 3 d3)) d1)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 4))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 4) 1/4)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 (*.f64 2 (+.f64 d2 (+.f64 3 d3))) (*.f64 d1 1/2))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 1/2 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 2))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 1/2 (+.f64 (*.f64 d1 (+.f64 d3 d3)) (*.f64 (+.f64 d2 3) (+.f64 d1 d1))))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 d2 3) (+.f64 d1 d1)) (*.f64 d1 (+.f64 d3 d3))))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 d2 (+.f64 3 d3))))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d3 d3) (+.f64 d2 (+.f64 d2 6))))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d2 (+.f64 d2 6)) (+.f64 d3 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 1/2) 2)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 (*.f64 (+.f64 d2 (+.f64 3 d3)) 1/2) (+.f64 d1 d1))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 1/4 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 4))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 (/.f64 (+.f64 d2 (+.f64 3 d3)) 2) (+.f64 d1 d1))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 (/.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 4) 4)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(/.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 1)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(/.f64 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 2) 2)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(/.f64 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 4) 4)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(/.f64 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 8) 8)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 8)) 16)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (+.f64 3 d3))) 8))) 32)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))

localize11.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 34 to 15 computations (55.9% saved)

series3.0ms (0%)

Counts
2 → 60
Calls

15 calls:

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

rewrite115.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
1808×bool.json-1
1808×bool.json-2
1102×bool.json-3
1094×rational.json-1
1094×rational.json-2
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01150
110938
228032
361932
4138932
5343732
6707832
Stop Event
node limit
Counts
2 → 48
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 d1 3) (*.f64 d1 d2)) (*.f64 d1 d3))
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (+.f64 3 (+.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (*.f64 2 (+.f64 3 (+.f64 d2 d3)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (*.f64 (+.f64 3 (+.f64 d2 d3)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 3 (+.f64 d2 d3)) d1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 3 (+.f64 d2 d3))) (*.f64 d1 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 3 (+.f64 d2 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 3 (+.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 3 (+.f64 d2 d3)) 1/2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 2 (+.f64 3 (+.f64 d2 d3)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 4))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 d1 (+.f64 3 (+.f64 d2 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) (*.f64 d1 (+.f64 3 (+.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) (*.f64 d1 (+.f64 3 (+.f64 d2 d3))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (+.f64 3 d2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (+.f64 3 d2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (+.f64 3 d2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 d1 (+.f64 3 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 d1 (/.f64 (+.f64 3 d2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (*.f64 2 (+.f64 3 d2))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (*.f64 (+.f64 3 d2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (/.f64 (+.f64 3 d2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 3 d2) d1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 d1 (+.f64 3 d2)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 3 d2) (*.f64 d1 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 3 d2)) (*.f64 d1 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 3 d2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (/.f64 (+.f64 3 d2) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 3 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 3 d2) 1/2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 3 d2) (*.f64 d1 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 3 d2) 2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 d1 (+.f64 3 d2)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (+.f64 3 d2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 2 (+.f64 3 d2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 3 d2) (*.f64 d1 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 3 d2) (*.f64 d1 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 3 d2) (*.f64 d1 4)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 3 d2) (*.f64 d1 4)))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 3 d2) (*.f64 d1 4))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 d1 (+.f64 3 d2))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 d1 (+.f64 3 d2)) (*.f64 d1 (+.f64 3 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 d1 (+.f64 3 d2)) (*.f64 d1 (+.f64 3 d2)))))))

simplify397.0ms (5.8%)

Algorithm
egg-herbie
Rules
3990×rational.json-simplify-41
2538×rational.json-simplify-2
2044×rational.json-simplify-35
1048×rational.json-simplify-53
850×rational.json-simplify-51
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
01102064
12351752
25601752
316351728
432161696
539481680
643231680
744671680
846091680
947371680
1048521680
1152371680
1254621680
1357711680
1458861680
1559791680
1659961680
1759971680
1859971680
Stop Event
node limit
Counts
108 → 75
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 3 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 3 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 3 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 3 d3)))
(*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d3) (*.f64 -1 d2)) 3)))
(*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d3) (*.f64 -1 d2)) 3)))
(*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d3) (*.f64 -1 d2)) 3)))
(*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d3) (*.f64 -1 d2)) 3)))
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d2 d1)
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d2 d1)
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d1 d3)
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d1 d3)
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 3 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 (+.f64 d2 3) d1)
(*.f64 (+.f64 d2 3) d1)
(*.f64 (+.f64 d2 3) d1)
(*.f64 (+.f64 d2 3) d1)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 3) d1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 3) d1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 3) d1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 3) d1))
(*.f64 3 d1)
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(-.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 0)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 1)
(*.f64 1 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))))
(*.f64 2 (*.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 1/2))
(*.f64 (*.f64 d1 (*.f64 2 (+.f64 3 (+.f64 d2 d3)))) 1/2)
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 3 (+.f64 d2 d3)) 1/2))
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 4))
(*.f64 (*.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 4) 1/4)
(*.f64 (+.f64 3 (+.f64 d2 d3)) d1)
(*.f64 (*.f64 2 (+.f64 3 (+.f64 d2 d3))) (*.f64 d1 1/2))
(*.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 3 (+.f64 d2 d3)))))
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 3 (+.f64 d2 d3))))
(*.f64 (*.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 1/2) 2)
(*.f64 (*.f64 (+.f64 3 (+.f64 d2 d3)) 1/2) (+.f64 d1 d1))
(*.f64 1/4 (*.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 4))
(*.f64 (/.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 4) 4)
(/.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 1)
(/.f64 (*.f64 d1 (*.f64 2 (+.f64 3 (+.f64 d2 d3)))) 2)
(/.f64 (*.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 4) 4)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 4)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 4))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 4))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 4)))) 32)
(-.f64 (*.f64 d1 (+.f64 3 d2)) 0)
(*.f64 d1 (+.f64 3 d2))
(*.f64 (*.f64 d1 (+.f64 3 d2)) 1)
(*.f64 1 (*.f64 d1 (+.f64 3 d2)))
(*.f64 2 (*.f64 d1 (/.f64 (+.f64 3 d2) 2)))
(*.f64 (*.f64 d1 (*.f64 2 (+.f64 3 d2))) 1/2)
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 3 d2) 1/2))
(*.f64 (+.f64 d1 d1) (/.f64 (+.f64 3 d2) 2))
(*.f64 (+.f64 3 d2) d1)
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 3 d2)) 4))
(*.f64 (*.f64 (+.f64 3 d2) (*.f64 d1 4)) 1/4)
(*.f64 (*.f64 2 (+.f64 3 d2)) (*.f64 d1 1/2))
(*.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 3 d2))))
(*.f64 (*.f64 d1 (/.f64 (+.f64 3 d2) 2)) 2)
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 3 d2)))
(*.f64 (*.f64 (+.f64 3 d2) 1/2) (+.f64 d1 d1))
(*.f64 1/4 (*.f64 (+.f64 3 d2) (*.f64 d1 4)))
(*.f64 (/.f64 (+.f64 3 d2) 2) (+.f64 d1 d1))
(*.f64 (/.f64 (*.f64 d1 (+.f64 3 d2)) 4) 4)
(/.f64 (*.f64 d1 (+.f64 3 d2)) 1)
(/.f64 (*.f64 d1 (*.f64 2 (+.f64 3 d2))) 2)
(/.f64 (*.f64 (+.f64 3 d2) (*.f64 d1 4)) 4)
(/.f64 (*.f64 2 (*.f64 (+.f64 3 d2) (*.f64 d1 4))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 3 d2) (*.f64 d1 4)))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 3 d2) (*.f64 d1 4)))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 3 d2) (*.f64 d1 4))))) 32)
Outputs
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 3 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 3 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 3 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 3 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d3) (*.f64 -1 d2)) 3)))
(*.f64 d1 (*.f64 (+.f64 (*.f64 d2 -1) (-.f64 (*.f64 d3 -1) 3)) -1))
(*.f64 (-.f64 (*.f64 -1 (+.f64 d2 d3)) 3) (neg.f64 d1))
(*.f64 d1 (neg.f64 (-.f64 (*.f64 (+.f64 d2 d3) -1) 3)))
(*.f64 (+.f64 (neg.f64 d2) (-.f64 -3 d3)) (neg.f64 d1))
(*.f64 d1 (-.f64 3 (neg.f64 (+.f64 d2 d3))))
(*.f64 d1 (-.f64 (+.f64 d2 d3) -3))
(*.f64 d1 (+.f64 d3 (-.f64 d2 -3)))
(*.f64 d1 (+.f64 d2 (-.f64 d3 -3)))
(*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d3) (*.f64 -1 d2)) 3)))
(*.f64 d1 (*.f64 (+.f64 (*.f64 d2 -1) (-.f64 (*.f64 d3 -1) 3)) -1))
(*.f64 (-.f64 (*.f64 -1 (+.f64 d2 d3)) 3) (neg.f64 d1))
(*.f64 d1 (neg.f64 (-.f64 (*.f64 (+.f64 d2 d3) -1) 3)))
(*.f64 (+.f64 (neg.f64 d2) (-.f64 -3 d3)) (neg.f64 d1))
(*.f64 d1 (-.f64 3 (neg.f64 (+.f64 d2 d3))))
(*.f64 d1 (-.f64 (+.f64 d2 d3) -3))
(*.f64 d1 (+.f64 d3 (-.f64 d2 -3)))
(*.f64 d1 (+.f64 d2 (-.f64 d3 -3)))
(*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d3) (*.f64 -1 d2)) 3)))
(*.f64 d1 (*.f64 (+.f64 (*.f64 d2 -1) (-.f64 (*.f64 d3 -1) 3)) -1))
(*.f64 (-.f64 (*.f64 -1 (+.f64 d2 d3)) 3) (neg.f64 d1))
(*.f64 d1 (neg.f64 (-.f64 (*.f64 (+.f64 d2 d3) -1) 3)))
(*.f64 (+.f64 (neg.f64 d2) (-.f64 -3 d3)) (neg.f64 d1))
(*.f64 d1 (-.f64 3 (neg.f64 (+.f64 d2 d3))))
(*.f64 d1 (-.f64 (+.f64 d2 d3) -3))
(*.f64 d1 (+.f64 d3 (-.f64 d2 -3)))
(*.f64 d1 (+.f64 d2 (-.f64 d3 -3)))
(*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d3) (*.f64 -1 d2)) 3)))
(*.f64 d1 (*.f64 (+.f64 (*.f64 d2 -1) (-.f64 (*.f64 d3 -1) 3)) -1))
(*.f64 (-.f64 (*.f64 -1 (+.f64 d2 d3)) 3) (neg.f64 d1))
(*.f64 d1 (neg.f64 (-.f64 (*.f64 (+.f64 d2 d3) -1) 3)))
(*.f64 (+.f64 (neg.f64 d2) (-.f64 -3 d3)) (neg.f64 d1))
(*.f64 d1 (-.f64 3 (neg.f64 (+.f64 d2 d3))))
(*.f64 d1 (-.f64 (+.f64 d2 d3) -3))
(*.f64 d1 (+.f64 d3 (-.f64 d2 -3)))
(*.f64 d1 (+.f64 d2 (-.f64 d3 -3)))
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(+.f64 (*.f64 d1 3) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 d3))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 d3)
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 d3)
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(+.f64 (*.f64 3 d1) (+.f64 (*.f64 d2 d1) (*.f64 d1 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 (+.f64 d2 3) d1)
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 (+.f64 d2 3) d1)
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 (+.f64 d2 3) d1)
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 (+.f64 d2 3) d1)
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 3) d1))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 d2 -1) 3)))
(*.f64 (-.f64 (neg.f64 d2) 3) (neg.f64 d1))
(*.f64 (-.f64 -3 d2) (neg.f64 d1))
(*.f64 d1 (-.f64 d2 -3))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 3) d1))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 d2 -1) 3)))
(*.f64 (-.f64 (neg.f64 d2) 3) (neg.f64 d1))
(*.f64 (-.f64 -3 d2) (neg.f64 d1))
(*.f64 d1 (-.f64 d2 -3))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 3) d1))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 d2 -1) 3)))
(*.f64 (-.f64 (neg.f64 d2) 3) (neg.f64 d1))
(*.f64 (-.f64 -3 d2) (neg.f64 d1))
(*.f64 d1 (-.f64 d2 -3))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 3) d1))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 d2 -1) 3)))
(*.f64 (-.f64 (neg.f64 d2) 3) (neg.f64 d1))
(*.f64 (-.f64 -3 d2) (neg.f64 d1))
(*.f64 d1 (-.f64 d2 -3))
(*.f64 3 d1)
(*.f64 d1 3)
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(-.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 0)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 1)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 1 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 2 (*.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 1/2))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 (*.f64 d1 (*.f64 2 (+.f64 3 (+.f64 d2 d3)))) 1/2)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 3 (+.f64 d2 d3)) 1/2))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 4))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 (*.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 4) 1/4)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 (+.f64 3 (+.f64 d2 d3)) d1)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 (*.f64 2 (+.f64 3 (+.f64 d2 d3))) (*.f64 d1 1/2))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 3 (+.f64 d2 d3)))))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 3 (+.f64 d2 d3))))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 (*.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 1/2) 2)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 (*.f64 (+.f64 3 (+.f64 d2 d3)) 1/2) (+.f64 d1 d1))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 1/4 (*.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 4))
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(*.f64 (/.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 4) 4)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(/.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 1)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(/.f64 (*.f64 d1 (*.f64 2 (+.f64 3 (+.f64 d2 d3)))) 2)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(/.f64 (*.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 4) 4)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 4)) 8)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 4))) 16)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 4))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 3 (+.f64 d2 d3))) 4)))) 32)
(*.f64 d1 (+.f64 3 (+.f64 d2 d3)))
(-.f64 (*.f64 d1 (+.f64 3 d2)) 0)
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 (*.f64 d1 (+.f64 3 d2)) 1)
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 1 (*.f64 d1 (+.f64 3 d2)))
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 2 (*.f64 d1 (/.f64 (+.f64 3 d2) 2)))
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 (*.f64 d1 (*.f64 2 (+.f64 3 d2))) 1/2)
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 3 d2) 1/2))
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 (+.f64 d1 d1) (/.f64 (+.f64 3 d2) 2))
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 (+.f64 3 d2) d1)
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 3 d2)) 4))
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 (*.f64 (+.f64 3 d2) (*.f64 d1 4)) 1/4)
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 (*.f64 2 (+.f64 3 d2)) (*.f64 d1 1/2))
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 3 d2))))
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 (*.f64 d1 (/.f64 (+.f64 3 d2) 2)) 2)
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 3 d2)))
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 (*.f64 (+.f64 3 d2) 1/2) (+.f64 d1 d1))
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 1/4 (*.f64 (+.f64 3 d2) (*.f64 d1 4)))
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 (/.f64 (+.f64 3 d2) 2) (+.f64 d1 d1))
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 (/.f64 (*.f64 d1 (+.f64 3 d2)) 4) 4)
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(/.f64 (*.f64 d1 (+.f64 3 d2)) 1)
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(/.f64 (*.f64 d1 (*.f64 2 (+.f64 3 d2))) 2)
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(/.f64 (*.f64 (+.f64 3 d2) (*.f64 d1 4)) 4)
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(/.f64 (*.f64 2 (*.f64 (+.f64 3 d2) (*.f64 d1 4))) 8)
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 3 d2) (*.f64 d1 4)))) 16)
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 3 d2) (*.f64 d1 4)))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 3 d2) (*.f64 d1 4))))) 32)
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))

eval87.0ms (1.3%)

Compiler

Compiled 1644 to 980 computations (40.4% saved)

prune49.0ms (0.7%)

Pruning

6 alts after pruning (6 fresh and 0 done)

PrunedKeptTotal
New1476153
Fresh000
Picked101
Done202
Total1506156
Error
0.0b
Counts
156 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
18.8b
(+.f64 (*.f64 d2 d1) (*.f64 d1 d3))
21.7b
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
21.7b
(*.f64 (+.f64 d2 3) d1)
40.3b
(*.f64 d2 d1)
23.0b
(*.f64 d1 (+.f64 3 d3))
40.4b
(*.f64 d1 d3)
Compiler

Compiled 96 to 66 computations (31.3% saved)

localize6.0ms (0.1%)

Compiler

Compiled 19 to 6 computations (68.4% saved)

localize5.0ms (0.1%)

Compiler

Compiled 8 to 4 computations (50% saved)

localize3.0ms (0%)

Compiler

Compiled 8 to 4 computations (50% saved)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 9 computations (35.7% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

6 calls:

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

rewrite94.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
1596×bool.json-1
1596×bool.json-2
1560×rational.json-1
1560×rational.json-2
1560×rational.json-3
Iterations

Useful iterations: 0 (0.0ms)

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

simplify1.3s (18.9%)

Algorithm
egg-herbie
Rules
5840×rational.json-simplify-35
2014×rational.json-simplify-2
1048×rational.json-simplify-1
814×rational.json-simplify-53
750×rational.json-simplify-41
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
042401
197281
2191281
3425281
41823281
53552281
64431281
74753281
84943281
95091281
105237281
115523281
125524281
135524281
145543281
155719281
165883281
176053281
186216281
196360281
206504281
216648281
226792281
236936281
246936281
257080281
267224281
277368281
287512281
297656281
307800281
317944281
Stop Event
node limit
Counts
23 → 15
Calls
Call 1
Inputs
(*.f64 3 d1)
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(*.f64 d1 d3)
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(*.f64 d1 d3)
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(+.f64 (*.f64 d1 (+.f64 3 d3)) 0)
(+.f64 0 (*.f64 d1 (+.f64 3 d3)))
(+.f64 (*.f64 d1 (*.f64 (+.f64 3 d3) 1/2)) (*.f64 d1 (*.f64 (+.f64 3 d3) 1/2)))
(-.f64 (*.f64 d1 (+.f64 3 d3)) 0)
(/.f64 (*.f64 d1 (+.f64 3 d3)) 1)
(/.f64 (*.f64 d1 (+.f64 d3 (+.f64 d3 6))) 2)
(/.f64 (*.f64 d1 (*.f64 (+.f64 3 d3) 4)) 4)
(/.f64 (*.f64 (*.f64 d1 (+.f64 3 d3)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 3 d3)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 3 d3)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 3 d3)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 3 d3)) 8)))) 64)
Outputs
(*.f64 3 d1)
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 d3))
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 d3))
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 d3))
(*.f64 d1 d3)
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 d3))
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 d3))
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 d3))
(*.f64 d1 d3)
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 d3))
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 d3))
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 d3))
(+.f64 (*.f64 d1 (+.f64 3 d3)) 0)
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 d3))
(+.f64 0 (*.f64 d1 (+.f64 3 d3)))
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 d3))
(+.f64 (*.f64 d1 (*.f64 (+.f64 3 d3) 1/2)) (*.f64 d1 (*.f64 (+.f64 3 d3) 1/2)))
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 d3))
(-.f64 (*.f64 d1 (+.f64 3 d3)) 0)
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 d3))
(/.f64 (*.f64 d1 (+.f64 3 d3)) 1)
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 d3))
(/.f64 (*.f64 d1 (+.f64 d3 (+.f64 d3 6))) 2)
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 d3))
(/.f64 (*.f64 d1 (*.f64 (+.f64 3 d3) 4)) 4)
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 d3))
(/.f64 (*.f64 (*.f64 d1 (+.f64 3 d3)) 8) 8)
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 d3))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 3 d3)) 8)) 16)
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 d3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 3 d3)) 8))) 32)
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 d3))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 3 d3)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 3 d3)) 8)))) 64)
(+.f64 (*.f64 3 d1) (*.f64 d1 d3))
(*.f64 d1 (+.f64 3 d3))

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 9 computations (35.7% saved)

series0.0ms (0%)

Counts
1 → 20
Calls

6 calls:

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

rewrite92.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
1596×bool.json-1
1596×bool.json-2
1560×rational.json-1
1560×rational.json-2
1560×rational.json-3
Iterations

Useful iterations: 0 (0.0ms)

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

simplify1.3s (18.3%)

Algorithm
egg-herbie
Rules
5140×rational.json-simplify-35
2504×rational.json-simplify-2
1112×rational.json-simplify-53
1004×rational.json-simplify-1
782×rational.json-simplify-43
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
042553
194385
2185385
3450385
41907385
53683385
64560385
74898385
85048385
95194385
105338385
115672385
125675385
135747385
145888385
155916385
166104385
176261385
186405385
196549385
206693385
216837385
226981385
237125385
247269385
257370385
267370385
277514385
287658385
297802385
307946385
Stop Event
node limit
Counts
31 → 17
Calls
Call 1
Inputs
(*.f64 3 d1)
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(*.f64 d1 (+.f64 3 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 (+.f64 d2 3) d1) 0)
(+.f64 0 (*.f64 (+.f64 d2 3) d1))
(+.f64 (*.f64 (+.f64 d2 3) (*.f64 d1 1/2)) (*.f64 (+.f64 d2 3) (*.f64 d1 1/2)))
(-.f64 (*.f64 (+.f64 d2 3) d1) 0)
(/.f64 (*.f64 (+.f64 d2 3) d1) 1)
(/.f64 (*.f64 (+.f64 d2 3) (+.f64 d1 d1)) 2)
(/.f64 (*.f64 (+.f64 d2 3) (*.f64 d1 4)) 4)
(/.f64 (*.f64 (*.f64 (+.f64 d2 3) d1) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 d2 3) d1) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 d2 3) d1) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 d2 3) d1) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 d2 3) d1) 8)))) 64)
Outputs
(*.f64 3 d1)
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 3 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 3 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 3 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 3 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 3 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 3 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 3 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 3 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 3 d1) (*.f64 d2 d1))
(+.f64 (*.f64 3 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 3 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 3 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 3 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 3 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 3 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 3 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 3 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 3 d1) (*.f64 d1 d2))
(+.f64 (*.f64 (+.f64 d2 3) d1) 0)
(+.f64 (*.f64 3 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(+.f64 0 (*.f64 (+.f64 d2 3) d1))
(+.f64 (*.f64 3 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(+.f64 (*.f64 (+.f64 d2 3) (*.f64 d1 1/2)) (*.f64 (+.f64 d2 3) (*.f64 d1 1/2)))
(+.f64 (*.f64 3 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(-.f64 (*.f64 (+.f64 d2 3) d1) 0)
(+.f64 (*.f64 3 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(/.f64 (*.f64 (+.f64 d2 3) d1) 1)
(+.f64 (*.f64 3 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(/.f64 (*.f64 (+.f64 d2 3) (+.f64 d1 d1)) 2)
(+.f64 (*.f64 3 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(/.f64 (*.f64 (+.f64 d2 3) (*.f64 d1 4)) 4)
(+.f64 (*.f64 3 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(/.f64 (*.f64 (*.f64 (+.f64 d2 3) d1) 8) 8)
(+.f64 (*.f64 3 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 d2 3) d1) 8)) 16)
(+.f64 (*.f64 3 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 d2 3) d1) 8))) 32)
(+.f64 (*.f64 3 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 d2 3) d1) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 d2 3) d1) 8)))) 64)
(+.f64 (*.f64 3 d1) (*.f64 d1 d2))
(*.f64 d1 (+.f64 3 d2))

eval7.0ms (0.1%)

Compiler

Compiled 287 to 209 computations (27.2% saved)

prune7.0ms (0.1%)

Pruning

7 alts after pruning (2 fresh and 5 done)

PrunedKeptTotal
New31132
Fresh011
Picked011
Done044
Total31738
Error
0.0b
Counts
38 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
18.8b
(+.f64 (*.f64 d2 d1) (*.f64 d1 d3))
21.7b
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
21.7b
(*.f64 (+.f64 d2 3) d1)
40.3b
(*.f64 d2 d1)
23.0b
(*.f64 d1 (+.f64 3 d3))
40.4b
(*.f64 d1 d3)
44.7b
(*.f64 3 d1)
Compiler

Compiled 54 to 38 computations (29.6% saved)

localize3.0ms (0%)

Compiler

Compiled 8 to 6 computations (25% saved)

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 19 to 10 computations (47.4% saved)

eval6.0ms (0.1%)

Compiler

Compiled 276 to 204 computations (26.1% saved)

prune6.0ms (0.1%)

Pruning

7 alts after pruning (0 fresh and 7 done)

PrunedKeptTotal
New32032
Fresh000
Picked011
Done066
Total32739
Error
0.0b
Counts
39 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
18.8b
(+.f64 (*.f64 d2 d1) (*.f64 d1 d3))
21.7b
(+.f64 (*.f64 d1 3) (*.f64 d1 d2))
21.7b
(*.f64 (+.f64 d2 3) d1)
40.3b
(*.f64 d2 d1)
23.0b
(*.f64 d1 (+.f64 3 d3))
40.4b
(*.f64 d1 d3)
44.7b
(*.f64 3 d1)
Compiler

Compiled 54 to 38 computations (29.6% saved)

regimes31.0ms (0.5%)

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

4 calls:

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

Compiled 89 to 48 computations (46.1% saved)

regimes23.0ms (0.3%)

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

3 calls:

9.0ms
d1
7.0ms
d3
5.0ms
d2
Results
ErrorSegmentsBranch
0.0b1d1
0.0b1d2
0.0b1d3
Compiler

Compiled 55 to 31 computations (43.6% saved)

regimes52.0ms (0.7%)

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

3 calls:

33.0ms
d1
9.0ms
d2
8.0ms
d3
Results
ErrorSegmentsBranch
14.8b7d1
2.3b2d2
3.6b2d3
Compiler

Compiled 34 to 22 computations (35.3% saved)

bsearch5.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
5.0ms
-0.009498845877674564
-0.007059520320335026
Results
5.0ms48×body256valid
Compiler

Compiled 74 to 56 computations (24.3% saved)

regimes52.0ms (0.8%)

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

3 calls:

26.0ms
d1
18.0ms
d3
7.0ms
d2
Results
ErrorSegmentsBranch
18.7b7d1
3.1b2d2
15.0b4d3
Compiler

Compiled 29 to 19 computations (34.5% saved)

bsearch18.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
18.0ms
-1579.5472283959575
-0.009498845877674564
Results
16.0ms144×body256valid
Compiler

Compiled 164 to 122 computations (25.6% saved)

regimes79.0ms (1.1%)

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

3 calls:

31.0ms
d1
28.0ms
d2
19.0ms
d3
Results
ErrorSegmentsBranch
28.6b9d1
11.9b7d2
14.7b6d3
Compiler

Compiled 24 to 16 computations (33.3% saved)

bsearch89.0ms (1.3%)

Algorithm
binary-search
Steps
TimeLeftRight
9.0ms
4.908791067289762e-240
1.5516333103896733e-239
19.0ms
9.243163735703369e-281
4.61438003297003e-269
12.0ms
-1.5270414945362947e-273
-1.5513871983664626e-274
13.0ms
-5.482944542215848e-161
-1.0291241078708897e-162
18.0ms
-3.2892413067221183e-143
-2.100802094572594e-150
17.0ms
-1579.5472283959575
-0.009498845877674564
Results
67.0ms679×body256valid
8.0ms29×body1024valid
6.0ms28×body512valid
Compiler

Compiled 664 to 520 computations (21.7% saved)

regimes42.0ms (0.6%)

Accuracy

Total -37.6b remaining (-157.4%)

Threshold costs -37.6b (-157.4%)

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

3 calls:

23.0ms
d2
13.0ms
d1
6.0ms
d3
Results
ErrorSegmentsBranch
34.6b3d1
31.3b7d2
23.9b2d3
Compiler

Compiled 21 to 15 computations (28.6% saved)

bsearch12.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
12.0ms
0.038522605420135685
1.832742424760773
Results
11.0ms112×body256valid
Compiler

Compiled 118 to 91 computations (22.9% saved)

simplify5.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
048241
Stop Event
done
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 d1 (+.f64 d2 3)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 d3 (+.f64 3 d2)))
(if (<=.f64 d2 -4496393867966703/576460752303423488) (*.f64 (+.f64 d2 3) d1) (*.f64 d1 (+.f64 3 d3)))
(if (<=.f64 d2 -350) (*.f64 d2 d1) (*.f64 d1 (+.f64 3 d3)))
(if (<=.f64 d2 -3) (*.f64 d2 d1) (if (<=.f64 d2 -2948408144391829/921377545122446619199598286374089084696513969828232526459034741270904336521520715841339532514076847544303802497745079321233052888165232576308943909041185557531590656) (*.f64 3 d1) (if (<=.f64 d2 -2912562807747279/63316582777114760719488645381029680648993625369910231018000142359781689627272157995600998671678219517337003885060131670873949448782528309751691815706084650986651333670066978816) (*.f64 d1 d3) (if (<=.f64 d2 -6431907247523999/9745314011399999080353382387875188310876226857595007526867906457212948690766426102465615065882010259225304916231408668183459169865203094046577987296312653419531277699956473029870789655490053648352799593479218378873685597925394874945746363615468965612827738803104277547081828589991914110976) (*.f64 3 d1) (if (<=.f64 d2 480279012086435/5109351192408882717840314145374306729132675226714771306246520940639262443184548008409492391661147394788716663921132787824569441250287599771492279803609168436019214522754779331884896566897569247187592593266032445422926874765109428195555469487226993043218229521601935466604437747789680665415385088) (*.f64 d1 d3) (if (<=.f64 d2 7132140987364465/938439603600587528746394711938657107663969949193687942084737423845328945327403963493426274822541422606069252398088182827397836333287780407720182613329988145004965865323862822167078543736143176539997470989737828269291292380585577139908076735904949708259328) (*.f64 3 d1) (*.f64 d1 d3)))))))
(if (<=.f64 d3 8106479329266893/4503599627370496) (*.f64 3 d1) (*.f64 d1 d3))
(*.f64 3 d1)
Outputs
(+.f64 (*.f64 d1 (+.f64 d2 3)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 d3 (+.f64 3 d2)))
(if (<=.f64 d2 -4496393867966703/576460752303423488) (*.f64 (+.f64 d2 3) d1) (*.f64 d1 (+.f64 3 d3)))
(if (<=.f64 d2 -350) (*.f64 d2 d1) (*.f64 d1 (+.f64 3 d3)))
(if (<=.f64 d2 -3) (*.f64 d2 d1) (if (<=.f64 d2 -2948408144391829/921377545122446619199598286374089084696513969828232526459034741270904336521520715841339532514076847544303802497745079321233052888165232576308943909041185557531590656) (*.f64 3 d1) (if (<=.f64 d2 -2912562807747279/63316582777114760719488645381029680648993625369910231018000142359781689627272157995600998671678219517337003885060131670873949448782528309751691815706084650986651333670066978816) (*.f64 d1 d3) (if (<=.f64 d2 -6431907247523999/9745314011399999080353382387875188310876226857595007526867906457212948690766426102465615065882010259225304916231408668183459169865203094046577987296312653419531277699956473029870789655490053648352799593479218378873685597925394874945746363615468965612827738803104277547081828589991914110976) (*.f64 3 d1) (if (<=.f64 d2 480279012086435/5109351192408882717840314145374306729132675226714771306246520940639262443184548008409492391661147394788716663921132787824569441250287599771492279803609168436019214522754779331884896566897569247187592593266032445422926874765109428195555469487226993043218229521601935466604437747789680665415385088) (*.f64 d1 d3) (if (<=.f64 d2 7132140987364465/938439603600587528746394711938657107663969949193687942084737423845328945327403963493426274822541422606069252398088182827397836333287780407720182613329988145004965865323862822167078543736143176539997470989737828269291292380585577139908076735904949708259328) (*.f64 3 d1) (*.f64 d1 d3)))))))
(if (<=.f64 d3 8106479329266893/4503599627370496) (*.f64 3 d1) (*.f64 d1 d3))
(*.f64 3 d1)
Compiler

Compiled 121 to 80 computations (33.9% saved)

soundness9.0ms (0.1%)

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

Useful iterations: 2 (0.0ms)

IterNodesCost
01131
11625
22419
33519
44319
54519
Stop Event
saturated
Compiler

Compiled 34 to 18 computations (47.1% saved)

end106.0ms (1.5%)

Remove

(sort d2 d3)

Compiler

Compiled 127 to 75 computations (40.9% saved)

Profiling

Loading profile data...