Details

Time bar (total: 15.6s)

analyze498.0ms (3.2%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.8%0.2%0%0%0%0
0%0%99.8%0.2%0%0%0%1
0%0%99.8%0.2%0%0%0%2
0%0%99.8%0.2%0%0%0%3
0%0%99.8%0.2%0%0%0%4
0%0%99.8%0.2%0%0%0%5
0%0%99.8%0.2%0%0%0%6
0%0%99.8%0.2%0%0%0%7
0%0%99.8%0.2%0%0%0%8
6.3%6.2%93.6%0.2%0%0%0%9
6.5%6.2%90.4%0.2%3.1%0%0%10
9.7%9.4%87.3%0.2%3.1%0%0%11
14.5%14%82.7%0.2%3.1%0%0%12
Compiler

Compiled 20 to 12 computations (40% saved)

sample3.0s (19.3%)

Results
2.4s8256×body256valid
570.0ms3714×body256infinite
Bogosity

preprocess90.0ms (0.6%)

Algorithm
egg-herbie
Rules
1582×rational.json-simplify-51
1290×rational.json-simplify-46
1160×rational.json-simplify-49
936×rational.json-simplify-19
896×rational.json-simplify-37
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
041301
180259
2139217
3267175
4940175
54386175
66927175
044
144
Stop Event
unsound
node limit
Calls
Call 1
Inputs
0
1
2
3
Outputs
0
1
2
3
1
Call 2
Inputs
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
(-.f64 (+.f64 (-.f64 (*.f64 d2 d1) (*.f64 d2 d3)) (*.f64 d4 d2)) (*.f64 d2 d2))
(-.f64 (+.f64 (-.f64 (*.f64 d3 d2) (*.f64 d3 d1)) (*.f64 d4 d3)) (*.f64 d3 d3))
(-.f64 (+.f64 (-.f64 (*.f64 d4 d2) (*.f64 d4 d3)) (*.f64 d1 d4)) (*.f64 d4 d4))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 d2)) (*.f64 d4 d1)) (*.f64 d1 d1))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (*.f64 d2 d1)) (*.f64 d1 d1))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d4)) (*.f64 d3 d1)) (*.f64 d1 d1))
Outputs
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
(+.f64 (*.f64 d1 d4) (-.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (-.f64 (+.f64 d4 (-.f64 d2 d3)) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 (-.f64 d4 d3) d1)))
(-.f64 (+.f64 (-.f64 (*.f64 d2 d1) (*.f64 d2 d3)) (*.f64 d4 d2)) (*.f64 d2 d2))
(+.f64 (*.f64 d2 d4) (-.f64 (-.f64 (*.f64 d1 d2) (*.f64 d2 d3)) (*.f64 d2 d2)))
(+.f64 (*.f64 d2 (-.f64 d1 d3)) (-.f64 (*.f64 d2 d4) (*.f64 d2 d2)))
(+.f64 (*.f64 d2 (-.f64 d1 d3)) (*.f64 d2 (-.f64 d4 d2)))
(*.f64 d2 (+.f64 d4 (-.f64 (-.f64 d1 d3) d2)))
(*.f64 d2 (+.f64 (-.f64 d1 d3) (-.f64 d4 d2)))
(-.f64 (+.f64 (-.f64 (*.f64 d3 d2) (*.f64 d3 d1)) (*.f64 d4 d3)) (*.f64 d3 d3))
(+.f64 (*.f64 d3 d4) (-.f64 (-.f64 (*.f64 d2 d3) (*.f64 d1 d3)) (*.f64 d3 d3)))
(+.f64 (*.f64 d3 d4) (-.f64 (*.f64 d3 (-.f64 d2 d1)) (*.f64 d3 d3)))
(+.f64 (*.f64 d3 (-.f64 d2 d1)) (*.f64 d3 (-.f64 d4 d3)))
(*.f64 d3 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d3 (+.f64 (-.f64 d2 d1) (-.f64 d4 d3)))
(*.f64 d3 (+.f64 d2 (-.f64 (-.f64 d4 d3) d1)))
(-.f64 (+.f64 (-.f64 (*.f64 d4 d2) (*.f64 d4 d3)) (*.f64 d1 d4)) (*.f64 d4 d4))
(+.f64 (*.f64 d1 d4) (-.f64 (-.f64 (*.f64 d2 d4) (*.f64 d3 d4)) (*.f64 d4 d4)))
(+.f64 (*.f64 d4 (-.f64 d2 d3)) (-.f64 (*.f64 d1 d4) (*.f64 d4 d4)))
(+.f64 (*.f64 d4 (-.f64 d2 d3)) (*.f64 d4 (-.f64 d1 d4)))
(*.f64 d4 (+.f64 d1 (-.f64 (-.f64 d2 d3) d4)))
(*.f64 d4 (+.f64 (-.f64 d2 d3) (-.f64 d1 d4)))
(*.f64 d4 (+.f64 d1 (-.f64 (-.f64 d2 d4) d3)))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 d2)) (*.f64 d4 d1)) (*.f64 d1 d1))
(+.f64 (*.f64 d1 d4) (-.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 d2)) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 (-.f64 d3 d2)) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 (-.f64 d3 d2) d1)))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d3 d2) d1)))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d3 d1) d2)))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (*.f64 d2 d1)) (*.f64 d1 d1))
(+.f64 (*.f64 d1 d4) (-.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (-.f64 (+.f64 d4 (-.f64 d2 d3)) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 (-.f64 d4 d3) d1)))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d4)) (*.f64 d3 d1)) (*.f64 d1 d1))
(+.f64 (*.f64 d1 d3) (-.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d4)) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 d3) (-.f64 (*.f64 d1 (-.f64 d2 d4)) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 (-.f64 d2 d4) d1)))
(*.f64 d1 (+.f64 d3 (-.f64 (-.f64 d2 d1) d4)))
(*.f64 d1 (+.f64 (-.f64 d2 d4) (-.f64 d3 d1)))
(*.f64 d1 (+.f64 d3 (-.f64 (-.f64 d2 d4) d1)))
Symmetry

(sort d2 d4)

Compiler

Compiled 23 to 15 computations (34.8% saved)

simplify211.0ms (1.4%)

Algorithm
egg-herbie
Rules
1812×rational.json-simplify-35
1346×rational.json-simplify-53
982×rational.json-simplify-39
864×rational.json-simplify-59
640×rational.json-simplify-1
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01343
12137
23231
36025
422125
5199525
6593925
7776125
Stop Event
node limit
Counts
1 → 5
Calls
Call 1
Inputs
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
Outputs
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
(+.f64 (*.f64 d1 d4) (-.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))

eval1.0ms (0%)

Compiler

Compiled 67 to 23 computations (65.7% saved)

prune2.0ms (0%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New235
Fresh011
Picked000
Done000
Total246
Error
0b
Counts
6 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
0.0b
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 (-.f64 d4 d1)))
0.0b
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
Compiler

Compiled 47 to 28 computations (40.4% saved)

localize9.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 30 to 8 computations (73.3% saved)

series441.0ms (2.8%)

Counts
1 → 48
Calls

12 calls:

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

rewrite115.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
1594×rational.json-1
1594×rational.json-2
1270×rational.json-3
1264×exponential.json-3
1264×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01025
16425
213625
330225
459025
5147925
6332325
7568825
8772625
Stop Event
node limit
Counts
1 → 12
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 1/2)) (*.f64 d1 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) (+.f64 d1 d1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) (*.f64 d1 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 d1 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 1)))))

simplify1.2s (7.9%)

Algorithm
egg-herbie
Rules
3040×rational.json-simplify-2
2832×rational.json-simplify-35
2192×rational.json-simplify-53
1162×exponential.json-simplify-26
732×rational.json-simplify-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0651626
11491474
22671474
35461474
418351474
534761474
639491474
741131474
842341474
943531474
1044711474
1154821474
1261431474
1364501474
1464501474
1564501474
1665691474
1766881474
1873051474
1975711474
Stop Event
node limit
Counts
60 → 45
Calls
Call 1
Inputs
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(*.f64 (-.f64 d2 (+.f64 d1 d3)) d1)
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (*.f64 d1 d4))
(+.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (*.f64 d1 d4))
(+.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(+.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 0)
(+.f64 0 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))))
(+.f64 (*.f64 d1 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 1/2)) (*.f64 d1 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 1/2)))
(-.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 0)
(/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 1)
(/.f64 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) (+.f64 d1 d1)) 2)
(/.f64 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) (*.f64 d1 4)) 4)
(/.f64 (*.f64 d1 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 8)) 8)
(/.f64 (*.f64 2 (*.f64 d1 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 8))))) 64)
(pow.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 1)
Outputs
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (neg.f64 (pow.f64 d1 2)))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (neg.f64 (pow.f64 d1 2)))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (neg.f64 (pow.f64 d1 2)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d1))) (*.f64 -1 (*.f64 d1 d3)))
(*.f64 d1 (+.f64 (+.f64 d2 (-.f64 d4 d1)) (neg.f64 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 (-.f64 d4 d1) (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d1))) (*.f64 -1 (*.f64 d1 d3)))
(*.f64 d1 (+.f64 (+.f64 d2 (-.f64 d4 d1)) (neg.f64 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 (-.f64 d4 d1) (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d1))) (*.f64 -1 (*.f64 d1 d3)))
(*.f64 d1 (+.f64 (+.f64 d2 (-.f64 d4 d1)) (neg.f64 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 (-.f64 d4 d1) (neg.f64 d3))))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d1))) (*.f64 -1 (*.f64 d1 d3)))
(*.f64 d1 (+.f64 (+.f64 d2 (-.f64 d4 d1)) (neg.f64 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 (-.f64 d4 d1) (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d1))) (*.f64 -1 (*.f64 d1 d3)))
(*.f64 d1 (+.f64 (+.f64 d2 (-.f64 d4 d1)) (neg.f64 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 (-.f64 d4 d1) (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d1))) (*.f64 -1 (*.f64 d1 d3)))
(*.f64 d1 (+.f64 (+.f64 d2 (-.f64 d4 d1)) (neg.f64 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 (-.f64 d4 d1) (neg.f64 d3))))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d1))) (*.f64 -1 (*.f64 d1 d3)))
(*.f64 d1 (+.f64 (+.f64 d2 (-.f64 d4 d1)) (neg.f64 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 (-.f64 d4 d1) (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d1))) (*.f64 -1 (*.f64 d1 d3)))
(*.f64 d1 (+.f64 (+.f64 d2 (-.f64 d4 d1)) (neg.f64 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 (-.f64 d4 d1) (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d1))) (*.f64 -1 (*.f64 d1 d3)))
(*.f64 d1 (+.f64 (+.f64 d2 (-.f64 d4 d1)) (neg.f64 d3)))
(*.f64 d1 (+.f64 d2 (+.f64 (-.f64 d4 d1) (neg.f64 d3))))
(*.f64 (-.f64 d2 (+.f64 d1 d3)) d1)
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 d4)
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 0)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(+.f64 0 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(+.f64 (*.f64 d1 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 1/2)) (*.f64 d1 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 1/2)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(-.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 0)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 1)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(/.f64 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) (+.f64 d1 d1)) 2)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(/.f64 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) (*.f64 d1 4)) 4)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(/.f64 (*.f64 d1 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 8)) 8)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(/.f64 (*.f64 2 (*.f64 d1 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 8))) 16)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 8)))) 32)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 8))))) 64)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(pow.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 1)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))

localize11.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

Compiled 35 to 9 computations (74.3% saved)

series8.0ms (0.1%)

Counts
3 → 108
Calls

27 calls:

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

rewrite188.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
1514×rational.json-1
1514×rational.json-2
1514×rational.json-3
1488×exponential.json-3
1488×rational.json-4
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01157
17151
215151
334351
466851
5167251
6379251
7612451
Stop Event
node limit
Counts
3 → 66
Calls
Call 1
Inputs
(*.f64 d1 (-.f64 d2 d3))
(*.f64 d1 (-.f64 d4 d1))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 (-.f64 d4 d1)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d2 d3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 d1 (-.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 d2 d3) (*.f64 d1 1/2)) (*.f64 (-.f64 d2 d3) (*.f64 d1 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (-.f64 d2 d3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (-.f64 d2 d3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 d2 d3) (+.f64 d1 d1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 d2 d3) (*.f64 d1 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (-.f64 d2 d3)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d4 d1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (/.f64 (-.f64 d1 d4) -2)) (*.f64 d1 (/.f64 (-.f64 d1 d4) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (-.f64 d4 d1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (-.f64 d4 d1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -2 (*.f64 (-.f64 d1 d4) d1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -4 (*.f64 (-.f64 d1 d4) d1)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (-.f64 d4 d1)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d4 d1)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d4 d1)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d4 d1)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (-.f64 d4 d1)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 d1 (/.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 d1 (/.f64 (-.f64 d1 d4) -2)) (*.f64 (-.f64 d2 d3) (*.f64 d1 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (-.f64 d2 d3) (*.f64 d1 1/2)) (*.f64 d1 (/.f64 (-.f64 d1 d4) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 1/2) d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (/.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (+.f64 (/.f64 (-.f64 d1 d4) -2) (*.f64 (-.f64 d2 d3) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (+.f64 (*.f64 (-.f64 d2 d3) 1/2) (/.f64 (-.f64 d1 d4) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) d1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (/.f64 (-.f64 d1 d4) -2) (*.f64 (-.f64 d2 d3) 1/2)) (*.f64 d1 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (*.f64 (-.f64 d2 d3) 1/2) (/.f64 (-.f64 d1 d4) -2)) (*.f64 d1 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) (*.f64 d1 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 -2 (*.f64 (-.f64 d1 d4) d1)) (*.f64 (-.f64 d2 d3) (+.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (-.f64 d2 d3) (+.f64 d1 d1)) (*.f64 -2 (*.f64 (-.f64 d1 d4) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (+.f64 (*.f64 (-.f64 d1 d4) -2) (*.f64 (-.f64 d2 d3) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (+.f64 (*.f64 (-.f64 d2 d3) 2) (*.f64 (-.f64 d1 d4) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (/.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (*.f64 (+.f64 (-.f64 d1 d4) (-.f64 d3 d2)) (*.f64 d1 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (*.f64 (+.f64 (-.f64 d3 d2) (-.f64 d1 d4)) (*.f64 d1 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 1/2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 d1 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (-.f64 d1 d4) -2) (*.f64 (-.f64 d2 d3) 2)) (*.f64 d1 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (-.f64 d2 d3) 2) (*.f64 (-.f64 d1 d4) -2)) (*.f64 d1 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 1)))))

simplify507.0ms (3.3%)

Algorithm
egg-herbie
Rules
2776×rational.json-simplify-41
2440×rational.json-simplify-2
1606×rational.json-simplify-35
1282×rational.json-simplify-51
908×rational.json-simplify-53
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01664506
13834056
28673932
323033896
446753896
556563896
661673896
762303896
862873896
972213896
Stop Event
node limit
Counts
174 → 115
Calls
Call 1
Inputs
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) 0)
(+.f64 0 (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (*.f64 (-.f64 d2 d3) (*.f64 d1 1/2)) (*.f64 (-.f64 d2 d3) (*.f64 d1 1/2)))
(-.f64 (*.f64 d1 (-.f64 d2 d3)) 0)
(/.f64 (*.f64 d1 (-.f64 d2 d3)) 1)
(/.f64 (*.f64 (-.f64 d2 d3) (+.f64 d1 d1)) 2)
(/.f64 (*.f64 (-.f64 d2 d3) (*.f64 d1 4)) 4)
(/.f64 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 8)))) 64)
(pow.f64 (*.f64 d1 (-.f64 d2 d3)) 1)
(+.f64 (*.f64 d1 (-.f64 d4 d1)) 0)
(+.f64 0 (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d1 (/.f64 (-.f64 d1 d4) -2)) (*.f64 d1 (/.f64 (-.f64 d1 d4) -2)))
(-.f64 (*.f64 d1 (-.f64 d4 d1)) 0)
(/.f64 (*.f64 d1 (-.f64 d4 d1)) 1)
(/.f64 (*.f64 -2 (*.f64 (-.f64 d1 d4) d1)) 2)
(/.f64 (*.f64 -4 (*.f64 (-.f64 d1 d4) d1)) 4)
(/.f64 (*.f64 (*.f64 d1 (-.f64 d4 d1)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d4 d1)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d4 d1)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d4 d1)) 8)))) 64)
(pow.f64 (*.f64 d1 (-.f64 d4 d1)) 1)
(-.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 0)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 1)
(*.f64 1 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))))
(*.f64 2 (*.f64 d1 (/.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 2)))
(*.f64 2 (+.f64 (*.f64 d1 (/.f64 (-.f64 d1 d4) -2)) (*.f64 (-.f64 d2 d3) (*.f64 d1 1/2))))
(*.f64 2 (+.f64 (*.f64 (-.f64 d2 d3) (*.f64 d1 1/2)) (*.f64 d1 (/.f64 (-.f64 d1 d4) -2))))
(*.f64 2 (*.f64 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 1/2) d1))
(*.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 2) 1/2)
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 1/2))
(*.f64 (+.f64 d1 d1) (/.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 2))
(*.f64 (+.f64 d1 d1) (+.f64 (/.f64 (-.f64 d1 d4) -2) (*.f64 (-.f64 d2 d3) 1/2)))
(*.f64 (+.f64 d1 d1) (+.f64 (*.f64 (-.f64 d2 d3) 1/2) (/.f64 (-.f64 d1 d4) -2)))
(*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) d1)
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4))
(*.f64 4 (*.f64 (+.f64 (/.f64 (-.f64 d1 d4) -2) (*.f64 (-.f64 d2 d3) 1/2)) (*.f64 d1 1/2)))
(*.f64 4 (*.f64 (+.f64 (*.f64 (-.f64 d2 d3) 1/2) (/.f64 (-.f64 d1 d4) -2)) (*.f64 d1 1/2)))
(*.f64 (*.f64 d1 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 4)) 1/4)
(*.f64 (*.f64 2 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) (*.f64 d1 1/2))
(*.f64 1/2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 2))
(*.f64 1/2 (+.f64 (*.f64 -2 (*.f64 (-.f64 d1 d4) d1)) (*.f64 (-.f64 d2 d3) (+.f64 d1 d1))))
(*.f64 1/2 (+.f64 (*.f64 (-.f64 d2 d3) (+.f64 d1 d1)) (*.f64 -2 (*.f64 (-.f64 d1 d4) d1))))
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))))
(*.f64 (*.f64 d1 1/2) (+.f64 (*.f64 (-.f64 d1 d4) -2) (*.f64 (-.f64 d2 d3) 2)))
(*.f64 (*.f64 d1 1/2) (+.f64 (*.f64 (-.f64 d2 d3) 2) (*.f64 (-.f64 d1 d4) -2)))
(*.f64 (*.f64 d1 (/.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 2)) 2)
(*.f64 -2 (*.f64 (+.f64 (-.f64 d1 d4) (-.f64 d3 d2)) (*.f64 d1 1/2)))
(*.f64 -2 (*.f64 (+.f64 (-.f64 d3 d2) (-.f64 d1 d4)) (*.f64 d1 1/2)))
(*.f64 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 1/2) (+.f64 d1 d1))
(*.f64 1/4 (*.f64 d1 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 4)))
(*.f64 (/.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 2) (+.f64 d1 d1))
(*.f64 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4) 4)
(*.f64 (+.f64 (*.f64 (-.f64 d1 d4) -2) (*.f64 (-.f64 d2 d3) 2)) (*.f64 d1 1/2))
(*.f64 (+.f64 (*.f64 (-.f64 d2 d3) 2) (*.f64 (-.f64 d1 d4) -2)) (*.f64 d1 1/2))
(/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 1)
(/.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 2) 2)
(/.f64 (*.f64 d1 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 4)) 4)
(/.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 8)))) 64)
(pow.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 1)
Outputs
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (*.f64 d3 -1))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (*.f64 d3 -1))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (*.f64 d3 -1))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 d4) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 d4) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 d4) (neg.f64 (pow.f64 d1 2)))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 d4) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 d4) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 d4) (neg.f64 (pow.f64 d1 2)))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 d4) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 d4) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 d4) (neg.f64 (pow.f64 d1 2)))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 d4) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 d4) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 d4) (neg.f64 (pow.f64 d1 2)))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 d4) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 d4) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 d4) (neg.f64 (pow.f64 d1 2)))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 d4) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 d4) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 d4) (neg.f64 (pow.f64 d1 2)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d3 (neg.f64 d1)) (*.f64 d1 (+.f64 (-.f64 d4 d1) d2)))
(*.f64 d1 (+.f64 d2 (+.f64 (-.f64 d4 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (+.f64 d2 (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d3 (neg.f64 d1)) (*.f64 d1 (+.f64 (-.f64 d4 d1) d2)))
(*.f64 d1 (+.f64 d2 (+.f64 (-.f64 d4 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (+.f64 d2 (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d3 (neg.f64 d1)) (*.f64 d1 (+.f64 (-.f64 d4 d1) d2)))
(*.f64 d1 (+.f64 d2 (+.f64 (-.f64 d4 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (+.f64 d2 (neg.f64 d3))))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d3 (neg.f64 d1)) (*.f64 d1 (+.f64 (-.f64 d4 d1) d2)))
(*.f64 d1 (+.f64 d2 (+.f64 (-.f64 d4 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (+.f64 d2 (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d3 (neg.f64 d1)) (*.f64 d1 (+.f64 (-.f64 d4 d1) d2)))
(*.f64 d1 (+.f64 d2 (+.f64 (-.f64 d4 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (+.f64 d2 (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d3 (neg.f64 d1)) (*.f64 d1 (+.f64 (-.f64 d4 d1) d2)))
(*.f64 d1 (+.f64 d2 (+.f64 (-.f64 d4 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (+.f64 d2 (neg.f64 d3))))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d3 (neg.f64 d1)) (*.f64 d1 (+.f64 (-.f64 d4 d1) d2)))
(*.f64 d1 (+.f64 d2 (+.f64 (-.f64 d4 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (+.f64 d2 (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d3 (neg.f64 d1)) (*.f64 d1 (+.f64 (-.f64 d4 d1) d2)))
(*.f64 d1 (+.f64 d2 (+.f64 (-.f64 d4 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (+.f64 d2 (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d3 (neg.f64 d1)) (*.f64 d1 (+.f64 (-.f64 d4 d1) d2)))
(*.f64 d1 (+.f64 d2 (+.f64 (-.f64 d4 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (+.f64 d2 (neg.f64 d3))))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d3 (neg.f64 d1)) (*.f64 d1 (+.f64 (-.f64 d4 d1) d2)))
(*.f64 d1 (+.f64 d2 (+.f64 (-.f64 d4 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (+.f64 d2 (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d3 (neg.f64 d1)) (*.f64 d1 (+.f64 (-.f64 d4 d1) d2)))
(*.f64 d1 (+.f64 d2 (+.f64 (-.f64 d4 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (+.f64 d2 (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d3 (neg.f64 d1)) (*.f64 d1 (+.f64 (-.f64 d4 d1) d2)))
(*.f64 d1 (+.f64 d2 (+.f64 (-.f64 d4 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (+.f64 d2 (neg.f64 d3))))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (*.f64 d3 -1))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d3 (neg.f64 d1)) (*.f64 d1 (+.f64 (-.f64 d4 d1) d2)))
(*.f64 d1 (+.f64 d2 (+.f64 (-.f64 d4 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (+.f64 d2 (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d3 (neg.f64 d1)) (*.f64 d1 (+.f64 (-.f64 d4 d1) d2)))
(*.f64 d1 (+.f64 d2 (+.f64 (-.f64 d4 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (+.f64 d2 (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d3 (neg.f64 d1)) (*.f64 d1 (+.f64 (-.f64 d4 d1) d2)))
(*.f64 d1 (+.f64 d2 (+.f64 (-.f64 d4 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (+.f64 d2 (neg.f64 d3))))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (*.f64 d3 -1))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d3 (neg.f64 d1)) (*.f64 d1 (+.f64 (-.f64 d4 d1) d2)))
(*.f64 d1 (+.f64 d2 (+.f64 (-.f64 d4 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (+.f64 d2 (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d3 (neg.f64 d1)) (*.f64 d1 (+.f64 (-.f64 d4 d1) d2)))
(*.f64 d1 (+.f64 d2 (+.f64 (-.f64 d4 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (+.f64 d2 (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d3 (neg.f64 d1)) (*.f64 d1 (+.f64 (-.f64 d4 d1) d2)))
(*.f64 d1 (+.f64 d2 (+.f64 (-.f64 d4 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (+.f64 d2 (neg.f64 d3))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) 0)
(*.f64 (-.f64 d2 d3) d1)
(+.f64 0 (*.f64 d1 (-.f64 d2 d3)))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 (-.f64 d2 d3) (*.f64 d1 1/2)) (*.f64 (-.f64 d2 d3) (*.f64 d1 1/2)))
(*.f64 (-.f64 d2 d3) d1)
(-.f64 (*.f64 d1 (-.f64 d2 d3)) 0)
(*.f64 (-.f64 d2 d3) d1)
(/.f64 (*.f64 d1 (-.f64 d2 d3)) 1)
(*.f64 (-.f64 d2 d3) d1)
(/.f64 (*.f64 (-.f64 d2 d3) (+.f64 d1 d1)) 2)
(*.f64 (-.f64 d2 d3) d1)
(/.f64 (*.f64 (-.f64 d2 d3) (*.f64 d1 4)) 4)
(*.f64 (-.f64 d2 d3) d1)
(/.f64 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 8) 8)
(*.f64 (-.f64 d2 d3) d1)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 8)) 16)
(*.f64 (-.f64 d2 d3) d1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 8))) 32)
(*.f64 (-.f64 d2 d3) d1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 8)))) 64)
(*.f64 (-.f64 d2 d3) d1)
(pow.f64 (*.f64 d1 (-.f64 d2 d3)) 1)
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 d1 (-.f64 d4 d1)) 0)
(*.f64 d1 (-.f64 d4 d1))
(+.f64 0 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (-.f64 d4 d1))
(+.f64 (*.f64 d1 (/.f64 (-.f64 d1 d4) -2)) (*.f64 d1 (/.f64 (-.f64 d1 d4) -2)))
(*.f64 (/.f64 (-.f64 d1 d4) -2) (+.f64 d1 d1))
(*.f64 (+.f64 d1 d1) (/.f64 (-.f64 d1 d4) -2))
(*.f64 2 (*.f64 d1 (/.f64 (-.f64 d1 d4) -2)))
(-.f64 (*.f64 d1 (-.f64 d4 d1)) 0)
(*.f64 d1 (-.f64 d4 d1))
(/.f64 (*.f64 d1 (-.f64 d4 d1)) 1)
(*.f64 d1 (-.f64 d4 d1))
(/.f64 (*.f64 -2 (*.f64 (-.f64 d1 d4) d1)) 2)
(*.f64 d1 (-.f64 d4 d1))
(/.f64 (*.f64 -4 (*.f64 (-.f64 d1 d4) d1)) 4)
(*.f64 d1 (-.f64 d4 d1))
(/.f64 (*.f64 (*.f64 d1 (-.f64 d4 d1)) 8) 8)
(*.f64 d1 (-.f64 d4 d1))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d4 d1)) 8)) 16)
(*.f64 d1 (-.f64 d4 d1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d4 d1)) 8))) 32)
(*.f64 d1 (-.f64 d4 d1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d4 d1)) 8)))) 64)
(*.f64 d1 (-.f64 d4 d1))
(pow.f64 (*.f64 d1 (-.f64 d4 d1)) 1)
(*.f64 d1 (-.f64 d4 d1))
(-.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 0)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 1)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 1 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 2 (*.f64 d1 (/.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 2)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 2 (+.f64 (*.f64 d1 (/.f64 (-.f64 d1 d4) -2)) (*.f64 (-.f64 d2 d3) (*.f64 d1 1/2))))
(*.f64 2 (+.f64 (*.f64 (-.f64 d2 d3) (*.f64 d1 1/2)) (*.f64 d1 (/.f64 (-.f64 d1 d4) -2))))
(*.f64 2 (*.f64 d1 (+.f64 (/.f64 (-.f64 d1 d4) -2) (*.f64 (-.f64 d2 d3) 1/2))))
(*.f64 d1 (*.f64 2 (+.f64 (/.f64 (-.f64 d1 d4) -2) (*.f64 (-.f64 d2 d3) 1/2))))
(*.f64 2 (+.f64 (*.f64 (-.f64 d2 d3) (*.f64 d1 1/2)) (*.f64 d1 (/.f64 (-.f64 d1 d4) -2))))
(*.f64 2 (*.f64 d1 (+.f64 (/.f64 (-.f64 d1 d4) -2) (*.f64 (-.f64 d2 d3) 1/2))))
(*.f64 d1 (*.f64 2 (+.f64 (/.f64 (-.f64 d1 d4) -2) (*.f64 (-.f64 d2 d3) 1/2))))
(*.f64 2 (*.f64 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 1/2) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 2) 1/2)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 1/2))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 (+.f64 d1 d1) (/.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 2))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 (+.f64 d1 d1) (+.f64 (/.f64 (-.f64 d1 d4) -2) (*.f64 (-.f64 d2 d3) 1/2)))
(*.f64 2 (+.f64 (*.f64 (-.f64 d2 d3) (*.f64 d1 1/2)) (*.f64 d1 (/.f64 (-.f64 d1 d4) -2))))
(*.f64 2 (*.f64 d1 (+.f64 (/.f64 (-.f64 d1 d4) -2) (*.f64 (-.f64 d2 d3) 1/2))))
(*.f64 d1 (*.f64 2 (+.f64 (/.f64 (-.f64 d1 d4) -2) (*.f64 (-.f64 d2 d3) 1/2))))
(*.f64 (+.f64 d1 d1) (+.f64 (*.f64 (-.f64 d2 d3) 1/2) (/.f64 (-.f64 d1 d4) -2)))
(*.f64 2 (+.f64 (*.f64 (-.f64 d2 d3) (*.f64 d1 1/2)) (*.f64 d1 (/.f64 (-.f64 d1 d4) -2))))
(*.f64 2 (*.f64 d1 (+.f64 (/.f64 (-.f64 d1 d4) -2) (*.f64 (-.f64 d2 d3) 1/2))))
(*.f64 d1 (*.f64 2 (+.f64 (/.f64 (-.f64 d1 d4) -2) (*.f64 (-.f64 d2 d3) 1/2))))
(*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) d1)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 4 (*.f64 (+.f64 (/.f64 (-.f64 d1 d4) -2) (*.f64 (-.f64 d2 d3) 1/2)) (*.f64 d1 1/2)))
(*.f64 2 (+.f64 (*.f64 (-.f64 d2 d3) (*.f64 d1 1/2)) (*.f64 d1 (/.f64 (-.f64 d1 d4) -2))))
(*.f64 2 (*.f64 d1 (+.f64 (/.f64 (-.f64 d1 d4) -2) (*.f64 (-.f64 d2 d3) 1/2))))
(*.f64 d1 (*.f64 2 (+.f64 (/.f64 (-.f64 d1 d4) -2) (*.f64 (-.f64 d2 d3) 1/2))))
(*.f64 4 (*.f64 (+.f64 (*.f64 (-.f64 d2 d3) 1/2) (/.f64 (-.f64 d1 d4) -2)) (*.f64 d1 1/2)))
(*.f64 2 (+.f64 (*.f64 (-.f64 d2 d3) (*.f64 d1 1/2)) (*.f64 d1 (/.f64 (-.f64 d1 d4) -2))))
(*.f64 2 (*.f64 d1 (+.f64 (/.f64 (-.f64 d1 d4) -2) (*.f64 (-.f64 d2 d3) 1/2))))
(*.f64 d1 (*.f64 2 (+.f64 (/.f64 (-.f64 d1 d4) -2) (*.f64 (-.f64 d2 d3) 1/2))))
(*.f64 (*.f64 d1 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 4)) 1/4)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 (*.f64 2 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) (*.f64 d1 1/2))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 1/2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 2))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 1/2 (+.f64 (*.f64 -2 (*.f64 (-.f64 d1 d4) d1)) (*.f64 (-.f64 d2 d3) (+.f64 d1 d1))))
(*.f64 1/2 (+.f64 (*.f64 (-.f64 d2 d3) (+.f64 d1 d1)) (*.f64 (-.f64 d1 d4) (*.f64 d1 -2))))
(*.f64 1/2 (+.f64 (*.f64 -2 (*.f64 d1 (-.f64 d1 d4))) (*.f64 (-.f64 d2 d3) (+.f64 d1 d1))))
(*.f64 1/2 (+.f64 (*.f64 (-.f64 d1 d4) (*.f64 d1 -2)) (*.f64 (-.f64 d2 d3) (+.f64 d1 d1))))
(*.f64 d1 (*.f64 1/2 (+.f64 (*.f64 (-.f64 d1 d4) -2) (*.f64 (-.f64 d2 d3) 2))))
(*.f64 1/2 (+.f64 (*.f64 (-.f64 d2 d3) (+.f64 d1 d1)) (*.f64 -2 (*.f64 (-.f64 d1 d4) d1))))
(*.f64 1/2 (+.f64 (*.f64 (-.f64 d2 d3) (+.f64 d1 d1)) (*.f64 (-.f64 d1 d4) (*.f64 d1 -2))))
(*.f64 1/2 (+.f64 (*.f64 -2 (*.f64 d1 (-.f64 d1 d4))) (*.f64 (-.f64 d2 d3) (+.f64 d1 d1))))
(*.f64 1/2 (+.f64 (*.f64 (-.f64 d1 d4) (*.f64 d1 -2)) (*.f64 (-.f64 d2 d3) (+.f64 d1 d1))))
(*.f64 d1 (*.f64 1/2 (+.f64 (*.f64 (-.f64 d1 d4) -2) (*.f64 (-.f64 d2 d3) 2))))
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 (*.f64 d1 1/2) (+.f64 (*.f64 (-.f64 d1 d4) -2) (*.f64 (-.f64 d2 d3) 2)))
(*.f64 1/2 (+.f64 (*.f64 (-.f64 d2 d3) (+.f64 d1 d1)) (*.f64 (-.f64 d1 d4) (*.f64 d1 -2))))
(*.f64 1/2 (+.f64 (*.f64 -2 (*.f64 d1 (-.f64 d1 d4))) (*.f64 (-.f64 d2 d3) (+.f64 d1 d1))))
(*.f64 1/2 (+.f64 (*.f64 (-.f64 d1 d4) (*.f64 d1 -2)) (*.f64 (-.f64 d2 d3) (+.f64 d1 d1))))
(*.f64 d1 (*.f64 1/2 (+.f64 (*.f64 (-.f64 d1 d4) -2) (*.f64 (-.f64 d2 d3) 2))))
(*.f64 (*.f64 d1 1/2) (+.f64 (*.f64 (-.f64 d2 d3) 2) (*.f64 (-.f64 d1 d4) -2)))
(*.f64 1/2 (+.f64 (*.f64 (-.f64 d2 d3) (+.f64 d1 d1)) (*.f64 (-.f64 d1 d4) (*.f64 d1 -2))))
(*.f64 1/2 (+.f64 (*.f64 -2 (*.f64 d1 (-.f64 d1 d4))) (*.f64 (-.f64 d2 d3) (+.f64 d1 d1))))
(*.f64 1/2 (+.f64 (*.f64 (-.f64 d1 d4) (*.f64 d1 -2)) (*.f64 (-.f64 d2 d3) (+.f64 d1 d1))))
(*.f64 d1 (*.f64 1/2 (+.f64 (*.f64 (-.f64 d1 d4) -2) (*.f64 (-.f64 d2 d3) 2))))
(*.f64 (*.f64 d1 (/.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 2)) 2)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 -2 (*.f64 (+.f64 (-.f64 d1 d4) (-.f64 d3 d2)) (*.f64 d1 1/2)))
(*.f64 -2 (*.f64 (*.f64 d1 1/2) (+.f64 (-.f64 d1 d4) (-.f64 d3 d2))))
(*.f64 (*.f64 d1 1/2) (*.f64 (+.f64 (-.f64 d1 d4) (-.f64 d3 d2)) -2))
(*.f64 (+.f64 (-.f64 d1 d4) (-.f64 d3 d2)) (neg.f64 d1))
(*.f64 (+.f64 (-.f64 d3 d2) (-.f64 d1 d4)) (neg.f64 d1))
(*.f64 -2 (*.f64 (+.f64 (-.f64 d3 d2) (-.f64 d1 d4)) (*.f64 d1 1/2)))
(*.f64 -2 (*.f64 (*.f64 d1 1/2) (+.f64 (-.f64 d1 d4) (-.f64 d3 d2))))
(*.f64 (*.f64 d1 1/2) (*.f64 (+.f64 (-.f64 d1 d4) (-.f64 d3 d2)) -2))
(*.f64 (+.f64 (-.f64 d1 d4) (-.f64 d3 d2)) (neg.f64 d1))
(*.f64 (+.f64 (-.f64 d3 d2) (-.f64 d1 d4)) (neg.f64 d1))
(*.f64 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 1/2) (+.f64 d1 d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 1/4 (*.f64 d1 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 4)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 (/.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 2) (+.f64 d1 d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4) 4)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 (+.f64 (*.f64 (-.f64 d1 d4) -2) (*.f64 (-.f64 d2 d3) 2)) (*.f64 d1 1/2))
(*.f64 1/2 (+.f64 (*.f64 (-.f64 d2 d3) (+.f64 d1 d1)) (*.f64 (-.f64 d1 d4) (*.f64 d1 -2))))
(*.f64 1/2 (+.f64 (*.f64 -2 (*.f64 d1 (-.f64 d1 d4))) (*.f64 (-.f64 d2 d3) (+.f64 d1 d1))))
(*.f64 1/2 (+.f64 (*.f64 (-.f64 d1 d4) (*.f64 d1 -2)) (*.f64 (-.f64 d2 d3) (+.f64 d1 d1))))
(*.f64 d1 (*.f64 1/2 (+.f64 (*.f64 (-.f64 d1 d4) -2) (*.f64 (-.f64 d2 d3) 2))))
(*.f64 (+.f64 (*.f64 (-.f64 d2 d3) 2) (*.f64 (-.f64 d1 d4) -2)) (*.f64 d1 1/2))
(*.f64 1/2 (+.f64 (*.f64 (-.f64 d2 d3) (+.f64 d1 d1)) (*.f64 (-.f64 d1 d4) (*.f64 d1 -2))))
(*.f64 1/2 (+.f64 (*.f64 -2 (*.f64 d1 (-.f64 d1 d4))) (*.f64 (-.f64 d2 d3) (+.f64 d1 d1))))
(*.f64 1/2 (+.f64 (*.f64 (-.f64 d1 d4) (*.f64 d1 -2)) (*.f64 (-.f64 d2 d3) (+.f64 d1 d1))))
(*.f64 d1 (*.f64 1/2 (+.f64 (*.f64 (-.f64 d1 d4) -2) (*.f64 (-.f64 d2 d3) 2))))
(/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 1)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(/.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 2) 2)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(/.f64 (*.f64 d1 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 4)) 4)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(/.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 8) 8)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 8)) 16)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 8))) 32)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 8)))) 64)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(pow.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 1)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))

localize14.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 53 to 11 computations (79.2% saved)

series5.0ms (0%)

Counts
2 → 84
Calls

21 calls:

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

rewrite100.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
1466×rational.json-1
1466×rational.json-2
1466×rational.json-3
1448×exponential.json-3
1448×rational.json-4
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01150
17238
214832
333232
466532
5164832
6361932
7603932
Stop Event
node limit
Counts
2 → 84
Calls
Call 1
Inputs
(+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 (-.f64 d2 d3)) 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (+.f64 d4 (-.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 d1 (/.f64 (+.f64 d4 (-.f64 d2 d3)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 d1 (*.f64 (-.f64 d2 d3) 1/2)) (*.f64 d1 (*.f64 d4 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 (+.f64 d4 (-.f64 d2 d3)) 1/2) d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 d1 d1) (+.f64 d4 (-.f64 d2 d3))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (*.f64 (+.f64 d4 (-.f64 d2 d3)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (+.f64 (*.f64 d4 1/2) (*.f64 (-.f64 d2 d3) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (*.f64 4 (+.f64 d4 (-.f64 d2 d3)))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d4 (-.f64 d2 d3)) d1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) (*.f64 d1 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 d1 d1) (+.f64 d4 (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 2) (*.f64 d1 (+.f64 d4 d4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (/.f64 (+.f64 d4 (-.f64 d2 d3)) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 d4 (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d4 d4) (*.f64 2 (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 d4 (-.f64 d2 d3)) 1/2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 d1 (*.f64 4 (+.f64 d4 (-.f64 d2 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 d1 d1) (+.f64 d4 (-.f64 d2 d3))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 4 (+.f64 d4 (-.f64 d2 d3)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d2) (neg.f64 (*.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d2 d3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 d1 (-.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (+.f64 (*.f64 d1 (-.f64 d2 d3)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (*.f64 d1 d3)) (*.f64 d1 d2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (*.f64 d1 (-.f64 d2 d3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 d1 (-.f64 d2 d3)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (*.f64 (-.f64 d2 d3) 1/2)) (*.f64 d1 (*.f64 (-.f64 d2 d3) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d2 (*.f64 d1 1/2)) (*.f64 d1 (-.f64 (*.f64 d2 1/2) d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d2) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (+.f64 (*.f64 d1 (-.f64 d2 d3)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 d1 d2) 1) (-.f64 -1 (*.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 d1 (-.f64 d2 d3)) 2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (-.f64 d2 d3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (-.f64 d2 d3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 d1 (-.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 d1 (*.f64 (-.f64 d2 d3) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (*.f64 (-.f64 d2 d3) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (-.f64 (*.f64 d2 1/2) (*.f64 2 (/.f64 d3 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (-.f64 d3 d2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 d2 d3) d1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 d1 (-.f64 d2 d3)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (-.f64 (/.f64 (*.f64 d1 d2) 4) (/.f64 (*.f64 d1 d3) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (*.f64 (-.f64 d2 d3) 1/2) (*.f64 d1 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (-.f64 (*.f64 (*.f64 d2 1/2) (*.f64 d1 1/2)) (/.f64 (*.f64 d1 d3) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (-.f64 (*.f64 (*.f64 d1 1/2) (*.f64 d2 1/2)) (/.f64 (*.f64 d1 d3) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (*.f64 (-.f64 d2 d3) 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 d3 d2) (neg.f64 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 d1 (-.f64 d3 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (-.f64 d2 d3)) (*.f64 d1 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (*.f64 (-.f64 d2 d3) 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (*.f64 2 (-.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (-.f64 d3 d2)) (*.f64 -1 (*.f64 d1 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (*.f64 d1 (*.f64 (-.f64 d3 d2) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 d2 d3) 1/2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 d1 (*.f64 (-.f64 d2 d3) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 d1) (-.f64 d3 d2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 d1 (-.f64 d2 d3)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (-.f64 d2 d3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (-.f64 d3 d2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 (-.f64 d2 d3) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 d1 d1) (-.f64 d3 d2)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 4) (-.f64 d3 d2)) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 4) (-.f64 d3 d2))) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (-.f64 d2 d3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 d1 (-.f64 d3 d2)))))))

simplify590.0ms (3.8%)

Algorithm
egg-herbie
Rules
2272×rational.json-simplify-2
1622×rational.json-simplify-35
880×rational.json-simplify-49
798×rational.json-simplify-1
780×rational.json-simplify-48
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02023146
14782642
210822642
327332630
444792630
555322630
662022630
765872630
870572630
976932630
Stop Event
node limit
Counts
168 → 111
Calls
Call 1
Inputs
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)) (*.f64 -1 d3))))
(*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)) (*.f64 -1 d3))))
(*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)) (*.f64 -1 d3))))
(*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)) (*.f64 -1 d3))))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(*.f64 d2 d1)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 d2 d1)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(-.f64 (*.f64 d2 d1) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 d1 d4)
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(*.f64 d1 d4)
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 0)
(-.f64 (+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 (-.f64 d2 d3)) 1)) 1)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 1)
(*.f64 1 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))
(*.f64 2 (*.f64 d1 (/.f64 (+.f64 d4 (-.f64 d2 d3)) 2)))
(*.f64 2 (+.f64 (*.f64 d1 (*.f64 (-.f64 d2 d3) 1/2)) (*.f64 d1 (*.f64 d4 1/2))))
(*.f64 2 (*.f64 (*.f64 (+.f64 d4 (-.f64 d2 d3)) 1/2) d1))
(*.f64 (*.f64 (+.f64 d1 d1) (+.f64 d4 (-.f64 d2 d3))) 1/2)
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 d4 (-.f64 d2 d3)) 1/2))
(*.f64 (+.f64 d1 d1) (+.f64 (*.f64 d4 1/2) (*.f64 (-.f64 d2 d3) 1/2)))
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 4))
(*.f64 (*.f64 d1 (*.f64 4 (+.f64 d4 (-.f64 d2 d3)))) 1/4)
(*.f64 (+.f64 d4 (-.f64 d2 d3)) d1)
(*.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) (*.f64 d1 1/2))
(*.f64 1/2 (*.f64 (+.f64 d1 d1) (+.f64 d4 (-.f64 d2 d3))))
(*.f64 1/2 (+.f64 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 2) (*.f64 d1 (+.f64 d4 d4))))
(*.f64 (*.f64 d1 (/.f64 (+.f64 d4 (-.f64 d2 d3)) 2)) 2)
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 d4 (-.f64 d2 d3))))
(*.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d4 d4) (*.f64 2 (-.f64 d2 d3))))
(*.f64 (*.f64 (+.f64 d4 (-.f64 d2 d3)) 1/2) (+.f64 d1 d1))
(*.f64 1/4 (*.f64 d1 (*.f64 4 (+.f64 d4 (-.f64 d2 d3)))))
(*.f64 (/.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 4) 4)
(/.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 1)
(/.f64 (*.f64 (+.f64 d1 d1) (+.f64 d4 (-.f64 d2 d3))) 2)
(/.f64 (*.f64 d1 (*.f64 4 (+.f64 d4 (-.f64 d2 d3)))) 4)
(/.f64 (*.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 8)))) 64)
(pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 1)
(+.f64 (*.f64 d1 d2) (neg.f64 (*.f64 d1 d3)))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) 0)
(+.f64 0 (*.f64 d1 (-.f64 d2 d3)))
(+.f64 1 (+.f64 (*.f64 d1 (-.f64 d2 d3)) -1))
(+.f64 (neg.f64 (*.f64 d1 d3)) (*.f64 d1 d2))
(+.f64 -1 (+.f64 (*.f64 d1 (-.f64 d2 d3)) 1))
(+.f64 (+.f64 (*.f64 d1 (-.f64 d2 d3)) 1) -1)
(+.f64 (*.f64 d1 (*.f64 (-.f64 d2 d3) 1/2)) (*.f64 d1 (*.f64 (-.f64 d2 d3) 1/2)))
(+.f64 (*.f64 d2 (*.f64 d1 1/2)) (*.f64 d1 (-.f64 (*.f64 d2 1/2) d3)))
(+.f64 (-.f64 1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d2) -1))
(+.f64 -2 (+.f64 (*.f64 d1 (-.f64 d2 d3)) 2))
(+.f64 (+.f64 (*.f64 d1 d2) 1) (-.f64 -1 (*.f64 d1 d3)))
(+.f64 (+.f64 (*.f64 d1 (-.f64 d2 d3)) 2) -2)
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (*.f64 d1 (-.f64 d2 d3)) 1)
(*.f64 1 (*.f64 d1 (-.f64 d2 d3)))
(*.f64 2 (*.f64 d1 (*.f64 (-.f64 d2 d3) 1/2)))
(*.f64 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 2) 1/2)
(*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d2 d3) 1/2))
(*.f64 (+.f64 d1 d1) (-.f64 (*.f64 d2 1/2) (*.f64 2 (/.f64 d3 4))))
(*.f64 (*.f64 d1 (-.f64 d3 d2)) -1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 4 (/.f64 (*.f64 d1 (-.f64 d2 d3)) 4))
(*.f64 4 (-.f64 (/.f64 (*.f64 d1 d2) 4) (/.f64 (*.f64 d1 d3) 4)))
(*.f64 4 (*.f64 (*.f64 (-.f64 d2 d3) 1/2) (*.f64 d1 1/2)))
(*.f64 4 (-.f64 (*.f64 (*.f64 d2 1/2) (*.f64 d1 1/2)) (/.f64 (*.f64 d1 d3) 4)))
(*.f64 4 (-.f64 (*.f64 (*.f64 d1 1/2) (*.f64 d2 1/2)) (/.f64 (*.f64 d1 d3) 4)))
(*.f64 (*.f64 d1 (*.f64 (-.f64 d2 d3) 4)) 1/4)
(*.f64 (-.f64 d3 d2) (neg.f64 d1))
(*.f64 -1 (*.f64 d1 (-.f64 d3 d2)))
(*.f64 (*.f64 2 (-.f64 d2 d3)) (*.f64 d1 1/2))
(*.f64 1/2 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 2))
(*.f64 (*.f64 d1 (*.f64 (-.f64 d2 d3) 1/2)) 2)
(*.f64 (*.f64 d1 1/2) (*.f64 2 (-.f64 d2 d3)))
(*.f64 (*.f64 2 (-.f64 d3 d2)) (*.f64 -1 (*.f64 d1 1/2)))
(*.f64 -2 (*.f64 d1 (*.f64 (-.f64 d3 d2) 1/2)))
(*.f64 (*.f64 (-.f64 d2 d3) 1/2) (+.f64 d1 d1))
(*.f64 1/4 (*.f64 d1 (*.f64 (-.f64 d2 d3) 4)))
(*.f64 (neg.f64 d1) (-.f64 d3 d2))
(*.f64 (/.f64 (*.f64 d1 (-.f64 d2 d3)) 4) 4)
(/.f64 (*.f64 d1 (-.f64 d2 d3)) 1)
(/.f64 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 2) 2)
(/.f64 (*.f64 d1 (-.f64 d3 d2)) -1)
(/.f64 (*.f64 d1 (*.f64 (-.f64 d2 d3) 4)) 4)
(/.f64 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 8) 8)
(/.f64 (*.f64 (+.f64 d1 d1) (-.f64 d3 d2)) -2)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 8)) 16)
(/.f64 (*.f64 (*.f64 d1 4) (-.f64 d3 d2)) -4)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 4) (-.f64 d3 d2))) -8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 8)))) 64)
(pow.f64 (*.f64 d1 (-.f64 d2 d3)) 1)
(neg.f64 (*.f64 d1 (-.f64 d3 d2)))
Outputs
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)) (*.f64 -1 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)) (*.f64 -1 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)) (*.f64 -1 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)) (*.f64 -1 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d4 d3))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(-.f64 (*.f64 d2 d1) (*.f64 d1 d3))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 d4)
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 d4)
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 (-.f64 d2 d3) d1)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(-.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 0)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 (-.f64 d2 d3)) 1)) 1)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 1)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 1 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 2 (*.f64 d1 (/.f64 (+.f64 d4 (-.f64 d2 d3)) 2)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 2 (+.f64 (*.f64 d1 (*.f64 (-.f64 d2 d3) 1/2)) (*.f64 d1 (*.f64 d4 1/2))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 2 (*.f64 (*.f64 (+.f64 d4 (-.f64 d2 d3)) 1/2) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 (*.f64 (+.f64 d1 d1) (+.f64 d4 (-.f64 d2 d3))) 1/2)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 d4 (-.f64 d2 d3)) 1/2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 (+.f64 d1 d1) (+.f64 (*.f64 d4 1/2) (*.f64 (-.f64 d2 d3) 1/2)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 (*.f64 d1 (*.f64 4 (+.f64 d4 (-.f64 d2 d3)))) 1/4)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 (+.f64 d4 (-.f64 d2 d3)) d1)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) (*.f64 d1 1/2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 1/2 (*.f64 (+.f64 d1 d1) (+.f64 d4 (-.f64 d2 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 1/2 (+.f64 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 2) (*.f64 d1 (+.f64 d4 d4))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 (*.f64 d1 (/.f64 (+.f64 d4 (-.f64 d2 d3)) 2)) 2)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 d4 (-.f64 d2 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d4 d4) (*.f64 2 (-.f64 d2 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 (*.f64 (+.f64 d4 (-.f64 d2 d3)) 1/2) (+.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 1/4 (*.f64 d1 (*.f64 4 (+.f64 d4 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 (/.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 4) 4)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(/.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 1)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(/.f64 (*.f64 (+.f64 d1 d1) (+.f64 d4 (-.f64 d2 d3))) 2)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(/.f64 (*.f64 d1 (*.f64 4 (+.f64 d4 (-.f64 d2 d3)))) 4)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(/.f64 (*.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 8) 8)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 8)) 16)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 8))) 32)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 8)))) 64)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 1)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(+.f64 (*.f64 d1 d2) (neg.f64 (*.f64 d1 d3)))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) 0)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 0 (*.f64 d1 (-.f64 d2 d3)))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 1 (+.f64 (*.f64 d1 (-.f64 d2 d3)) -1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (neg.f64 (*.f64 d1 d3)) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 -1 (+.f64 (*.f64 d1 (-.f64 d2 d3)) 1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (+.f64 (*.f64 d1 (-.f64 d2 d3)) 1) -1)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 d1 (*.f64 (-.f64 d2 d3) 1/2)) (*.f64 d1 (*.f64 (-.f64 d2 d3) 1/2)))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 d2 (*.f64 d1 1/2)) (*.f64 d1 (-.f64 (*.f64 d2 1/2) d3)))
(+.f64 (*.f64 d1 (*.f64 d2 1/2)) (*.f64 d1 (-.f64 (*.f64 d2 1/2) d3)))
(*.f64 d1 (+.f64 (-.f64 (*.f64 d2 1/2) d3) (*.f64 d2 1/2)))
(*.f64 d1 (+.f64 (*.f64 d2 1/2) (-.f64 (*.f64 d2 1/2) d3)))
(+.f64 (-.f64 1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d2) -1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 -2 (+.f64 (*.f64 d1 (-.f64 d2 d3)) 2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (+.f64 (*.f64 d1 d2) 1) (-.f64 -1 (*.f64 d1 d3)))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (+.f64 (*.f64 d1 (-.f64 d2 d3)) 2) -2)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 d1 (-.f64 d2 d3))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 (*.f64 d1 (-.f64 d2 d3)) 1)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 1 (*.f64 d1 (-.f64 d2 d3)))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 2 (*.f64 d1 (*.f64 (-.f64 d2 d3) 1/2)))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 2) 1/2)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d2 d3) 1/2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (+.f64 d1 d1) (-.f64 (*.f64 d2 1/2) (*.f64 2 (/.f64 d3 4))))
(*.f64 (*.f64 d1 (-.f64 d3 d2)) -1)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 4 (/.f64 (*.f64 d1 (-.f64 d2 d3)) 4))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 4 (-.f64 (/.f64 (*.f64 d1 d2) 4) (/.f64 (*.f64 d1 d3) 4)))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 4 (*.f64 (*.f64 (-.f64 d2 d3) 1/2) (*.f64 d1 1/2)))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 4 (-.f64 (*.f64 (*.f64 d2 1/2) (*.f64 d1 1/2)) (/.f64 (*.f64 d1 d3) 4)))
(*.f64 4 (-.f64 (*.f64 d1 (*.f64 1/2 (*.f64 d2 1/2))) (*.f64 d3 (/.f64 d1 4))))
(*.f64 4 (-.f64 (*.f64 d1 (*.f64 d2 1/4)) (*.f64 d1 (/.f64 d3 4))))
(*.f64 4 (*.f64 d1 (-.f64 (*.f64 d2 1/4) (/.f64 d3 4))))
(*.f64 4 (-.f64 (*.f64 (*.f64 d1 1/2) (*.f64 d2 1/2)) (/.f64 (*.f64 d1 d3) 4)))
(*.f64 4 (-.f64 (*.f64 d1 (*.f64 1/2 (*.f64 d2 1/2))) (*.f64 d3 (/.f64 d1 4))))
(*.f64 4 (-.f64 (*.f64 d1 (*.f64 d2 1/4)) (*.f64 d1 (/.f64 d3 4))))
(*.f64 4 (*.f64 d1 (-.f64 (*.f64 d2 1/4) (/.f64 d3 4))))
(*.f64 (*.f64 d1 (*.f64 (-.f64 d2 d3) 4)) 1/4)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d3 d2) (neg.f64 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 (-.f64 d3 d2)))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (*.f64 2 (-.f64 d2 d3)) (*.f64 d1 1/2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 1/2 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (*.f64 d1 (*.f64 (-.f64 d2 d3) 1/2)) 2)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (*.f64 d1 1/2) (*.f64 2 (-.f64 d2 d3)))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (*.f64 2 (-.f64 d3 d2)) (*.f64 -1 (*.f64 d1 1/2)))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -2 (*.f64 d1 (*.f64 (-.f64 d3 d2) 1/2)))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (*.f64 (-.f64 d2 d3) 1/2) (+.f64 d1 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 1/4 (*.f64 d1 (*.f64 (-.f64 d2 d3) 4)))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (neg.f64 d1) (-.f64 d3 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (/.f64 (*.f64 d1 (-.f64 d2 d3)) 4) 4)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 d1 (-.f64 d2 d3)) 1)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 2) 2)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 d1 (-.f64 d3 d2)) -1)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 d1 (*.f64 (-.f64 d2 d3) 4)) 4)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 8) 8)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 (+.f64 d1 d1) (-.f64 d3 d2)) -2)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 8)) 16)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 (*.f64 d1 4) (-.f64 d3 d2)) -4)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 8))) 32)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 4) (-.f64 d3 d2))) -8)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 8)))) 64)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(pow.f64 (*.f64 d1 (-.f64 d2 d3)) 1)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(neg.f64 (*.f64 d1 (-.f64 d3 d2)))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))

eval224.0ms (1.4%)

Compiler

Compiled 3736 to 1294 computations (65.4% saved)

prune354.0ms (2.3%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New2638271
Fresh000
Picked101
Done202
Total2668274
Error
0b
Counts
274 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
16.9b
(-.f64 (-.f64 (*.f64 d2 d1) (*.f64 d1 d3)) (*.f64 d1 d1))
34.0b
(-.f64 (*.f64 d2 d1) (*.f64 d1 d1))
16.9b
(*.f64 (-.f64 d2 (+.f64 d1 d3)) d1)
43.6b
(*.f64 d3 (neg.f64 d1))
42.0b
(*.f64 d2 d1)
17.2b
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
19.2b
(*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))
43.8b
(*.f64 d1 d4)
Compiler

Compiled 162 to 106 computations (34.6% saved)

localize10.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 34 to 9 computations (73.5% saved)

series2.0ms (0%)

Counts
2 → 72
Calls

18 calls:

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

rewrite95.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
1398×rational.json-1
1398×rational.json-2
1398×rational.json-4
1398×rational.json-3
1392×exponential.json-3
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01050
16838
216532
344232
4145932
5469732
Stop Event
node limit
Counts
2 → 74
Calls
Call 1
Inputs
(-.f64 (-.f64 (*.f64 d2 d1) (*.f64 d1 d3)) (*.f64 d1 d1))
(-.f64 (*.f64 d2 d1) (*.f64 d1 d3))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 (neg.f64 d1)) (neg.f64 (*.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d2 d1) (-.f64 (neg.f64 (*.f64 d1 d3)) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d2 d1) (-.f64 (*.f64 d1 (neg.f64 d1)) (*.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d2 d1) (neg.f64 (+.f64 (*.f64 d1 d3) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d2 d1)) (neg.f64 (*.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (neg.f64 d1)) (*.f64 d1 (-.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d2 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 1 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (*.f64 d1 (neg.f64 d1)) (+.f64 1 (*.f64 d1 (-.f64 d2 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (*.f64 d1 (-.f64 d2 d3)) (-.f64 1 (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (neg.f64 (*.f64 d1 d3)) (+.f64 1 (*.f64 d1 (-.f64 d2 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (*.f64 d1 d1)) (+.f64 (*.f64 d1 (-.f64 d2 d3)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (*.f64 d1 (-.f64 d2 d3))) (-.f64 -1 (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (*.f64 d1 (-.f64 d2 d1))) (-.f64 -1 (*.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 (*.f64 d1 d1)) (+.f64 1 (*.f64 d1 (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 (*.f64 d1 d3)) (+.f64 1 (*.f64 d1 (-.f64 d2 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 d1 (-.f64 d2 d3)) -1) (-.f64 1 (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (*.f64 d1 d3)) (-.f64 -1 (*.f64 d1 (-.f64 d1 d2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 (*.f64 d1 (-.f64 d1 d2))) (-.f64 1 (*.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 d1 (neg.f64 d1)) (neg.f64 (*.f64 d1 d3))) (*.f64 d2 d1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 d1 (neg.f64 d1)) (+.f64 1 (*.f64 d1 (-.f64 d2 d3)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 d1 (-.f64 d2 d3)) (-.f64 1 (*.f64 d1 d1))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (neg.f64 (*.f64 d1 d3)) (+.f64 1 (*.f64 d1 (-.f64 d2 d1)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (neg.f64 (*.f64 d1 d3)) (*.f64 d1 d1)) (*.f64 d2 d1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 d1 (neg.f64 d1)) (*.f64 d1 d3)) (*.f64 d2 d1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (+.f64 (*.f64 d1 d3) (*.f64 d1 d1))) (*.f64 d2 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (-.f64 (-.f64 d2 d3) d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (*.f64 2 (-.f64 (-.f64 d2 d3) d1))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (+.f64 d1 (-.f64 d3 d2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (-.f64 d2 d3) d1) d1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 d1 (+.f64 d1 (-.f64 d3 d2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 d1 (*.f64 2 (-.f64 (-.f64 d2 d3) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 2 (-.f64 (-.f64 d2 d3) d1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (+.f64 d1 (-.f64 d3 d2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 d1 (+.f64 d1 (-.f64 d3 d2)))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)) 4)) (*.f64 2 (*.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 d1 (+.f64 d1 (-.f64 d3 d2))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d2 d1) (neg.f64 (*.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d2 d3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 d1 (-.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (*.f64 d1 d3)) (*.f64 d2 d1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 1 (*.f64 d1 (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (*.f64 d1 (-.f64 d2 d3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (-.f64 d2 d3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (-.f64 d2 d3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 d1 (-.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (*.f64 d1 (-.f64 d2 d3)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (*.f64 2 (-.f64 d2 d3))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (-.f64 d3 d2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 d2 d3) d1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 d1 (-.f64 d3 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 d1 (*.f64 2 (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 d1 (-.f64 d2 d3)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (-.f64 d2 d3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 2 (-.f64 d2 d3))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (-.f64 d3 d2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 d1 d1) (-.f64 d3 d2)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 4)) (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (-.f64 d2 d3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 d1 (-.f64 d3 d2)))))))

simplify260.0ms (1.7%)

Algorithm
egg-herbie
Rules
1232×rational.json-simplify-1
942×rational.json-simplify-59
864×rational.json-simplify-2
810×rational.json-simplify-35
752×rational.json-simplify-41
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01533322
13212962
27262898
318882882
438752882
565942882
Stop Event
node limit
Counts
146 → 112
Calls
Call 1
Inputs
(*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3)))))
(-.f64 (*.f64 d2 d1) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1)) (pow.f64 d1 2))
(*.f64 -1 (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1)) (pow.f64 d1 2))
(*.f64 -1 (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1)) (pow.f64 d1 2))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 (neg.f64 d1)) (neg.f64 (*.f64 d1 d3))))
(+.f64 (*.f64 d2 d1) (-.f64 (neg.f64 (*.f64 d1 d3)) (*.f64 d1 d1)))
(+.f64 (*.f64 d2 d1) (-.f64 (*.f64 d1 (neg.f64 d1)) (*.f64 d1 d3)))
(+.f64 (*.f64 d2 d1) (neg.f64 (+.f64 (*.f64 d1 d3) (*.f64 d1 d1))))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 (neg.f64 d1)))
(+.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)) 0)
(+.f64 0 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)))
(+.f64 (*.f64 d1 (-.f64 d2 d1)) (neg.f64 (*.f64 d1 d3)))
(+.f64 (*.f64 d1 (neg.f64 d1)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (neg.f64 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d2 d1)))
(+.f64 -1 (+.f64 1 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1))))
(+.f64 -1 (+.f64 (*.f64 d1 (neg.f64 d1)) (+.f64 1 (*.f64 d1 (-.f64 d2 d3)))))
(+.f64 -1 (+.f64 (*.f64 d1 (-.f64 d2 d3)) (-.f64 1 (*.f64 d1 d1))))
(+.f64 -1 (+.f64 (neg.f64 (*.f64 d1 d3)) (+.f64 1 (*.f64 d1 (-.f64 d2 d1)))))
(+.f64 (-.f64 1 (*.f64 d1 d1)) (+.f64 (*.f64 d1 (-.f64 d2 d3)) -1))
(+.f64 (+.f64 1 (*.f64 d1 (-.f64 d2 d3))) (-.f64 -1 (*.f64 d1 d1)))
(+.f64 (+.f64 1 (*.f64 d1 (-.f64 d2 d1))) (-.f64 -1 (*.f64 d1 d3)))
(+.f64 (-.f64 -1 (*.f64 d1 d1)) (+.f64 1 (*.f64 d1 (-.f64 d2 d3))))
(+.f64 (+.f64 1 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1))) -1)
(+.f64 (-.f64 -1 (*.f64 d1 d3)) (+.f64 1 (*.f64 d1 (-.f64 d2 d1))))
(+.f64 (+.f64 (*.f64 d1 (-.f64 d2 d3)) -1) (-.f64 1 (*.f64 d1 d1)))
(+.f64 (-.f64 1 (*.f64 d1 d3)) (-.f64 -1 (*.f64 d1 (-.f64 d1 d2))))
(+.f64 (-.f64 -1 (*.f64 d1 (-.f64 d1 d2))) (-.f64 1 (*.f64 d1 d3)))
(+.f64 (+.f64 (*.f64 d1 (neg.f64 d1)) (neg.f64 (*.f64 d1 d3))) (*.f64 d2 d1))
(+.f64 (+.f64 (*.f64 d1 (neg.f64 d1)) (+.f64 1 (*.f64 d1 (-.f64 d2 d3)))) -1)
(+.f64 (+.f64 (*.f64 d1 (-.f64 d2 d3)) (-.f64 1 (*.f64 d1 d1))) -1)
(+.f64 (+.f64 (neg.f64 (*.f64 d1 d3)) (+.f64 1 (*.f64 d1 (-.f64 d2 d1)))) -1)
(+.f64 (-.f64 (neg.f64 (*.f64 d1 d3)) (*.f64 d1 d1)) (*.f64 d2 d1))
(+.f64 (-.f64 (*.f64 d1 (neg.f64 d1)) (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (neg.f64 (+.f64 (*.f64 d1 d3) (*.f64 d1 d1))) (*.f64 d2 d1))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(*.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)) 1)
(*.f64 1 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)))
(*.f64 2 (/.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)) 2))
(*.f64 (*.f64 d1 (*.f64 2 (-.f64 (-.f64 d2 d3) d1))) 1/2)
(*.f64 (*.f64 d1 (+.f64 d1 (-.f64 d3 d2))) -1)
(*.f64 (-.f64 (-.f64 d2 d3) d1) d1)
(*.f64 -1 (*.f64 d1 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 1/2 (*.f64 d1 (*.f64 2 (-.f64 (-.f64 d2 d3) d1))))
(*.f64 (/.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)) 2) 2)
(/.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)) 1)
(/.f64 (*.f64 d1 (*.f64 2 (-.f64 (-.f64 d2 d3) d1))) 2)
(/.f64 (*.f64 d1 (+.f64 d1 (-.f64 d3 d2))) -1)
(/.f64 (*.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)) 4) 4)
(/.f64 (*.f64 2 (*.f64 d1 (+.f64 d1 (-.f64 d3 d2)))) -2)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)) 4)) 8)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)) 4)) (*.f64 2 (*.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)) 4))) 16)
(pow.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)) 1)
(neg.f64 (*.f64 d1 (+.f64 d1 (-.f64 d3 d2))))
(+.f64 (*.f64 d2 d1) (neg.f64 (*.f64 d1 d3)))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) 0)
(+.f64 0 (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (neg.f64 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 -1 (+.f64 1 (*.f64 d1 (-.f64 d2 d3))))
(+.f64 (+.f64 1 (*.f64 d1 (-.f64 d2 d3))) -1)
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (*.f64 d1 (-.f64 d2 d3)) 1)
(*.f64 1 (*.f64 d1 (-.f64 d2 d3)))
(*.f64 2 (/.f64 (*.f64 d1 (-.f64 d2 d3)) 2))
(*.f64 (*.f64 d1 (*.f64 2 (-.f64 d2 d3))) 1/2)
(*.f64 (*.f64 d1 (-.f64 d3 d2)) -1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 -1 (*.f64 d1 (-.f64 d3 d2)))
(*.f64 1/2 (*.f64 d1 (*.f64 2 (-.f64 d2 d3))))
(*.f64 (/.f64 (*.f64 d1 (-.f64 d2 d3)) 2) 2)
(/.f64 (*.f64 d1 (-.f64 d2 d3)) 1)
(/.f64 (*.f64 d1 (*.f64 2 (-.f64 d2 d3))) 2)
(/.f64 (*.f64 d1 (-.f64 d3 d2)) -1)
(/.f64 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 4) 4)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 4)) 8)
(/.f64 (*.f64 (+.f64 d1 d1) (-.f64 d3 d2)) -2)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 4)) (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 4))) 16)
(pow.f64 (*.f64 d1 (-.f64 d2 d3)) 1)
(neg.f64 (*.f64 d1 (-.f64 d3 d2)))
Outputs
(*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(neg.f64 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))) (*.f64 d1 d2))
(+.f64 (neg.f64 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))) (*.f64 d1 d2))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))) (*.f64 d1 d2))
(+.f64 (neg.f64 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))) (*.f64 d1 d2))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))) (*.f64 d1 d2))
(+.f64 (neg.f64 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))) (*.f64 d1 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))) (*.f64 d1 d2))
(+.f64 (neg.f64 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))) (*.f64 d1 d2))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))) (*.f64 d1 d2))
(+.f64 (neg.f64 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))) (*.f64 d1 d2))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))) (*.f64 d1 d2))
(+.f64 (neg.f64 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))) (*.f64 d1 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))) (*.f64 d1 d2))
(+.f64 (neg.f64 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))) (*.f64 d1 d2))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))) (*.f64 d1 d2))
(+.f64 (neg.f64 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))) (*.f64 d1 d2))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))) (*.f64 d1 d2))
(+.f64 (neg.f64 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))) (*.f64 d1 d2))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(-.f64 (*.f64 d2 d1) (pow.f64 d1 2))
(-.f64 (*.f64 d1 d2) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1)) (pow.f64 d1 2))
(+.f64 (*.f64 d1 d2) (-.f64 (neg.f64 (*.f64 d1 d3)) (pow.f64 d1 2)))
(-.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1)) (pow.f64 d1 2))
(+.f64 (*.f64 d1 d2) (-.f64 (neg.f64 (*.f64 d1 d3)) (pow.f64 d1 2)))
(-.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1)) (pow.f64 d1 2))
(+.f64 (*.f64 d1 d2) (-.f64 (neg.f64 (*.f64 d1 d3)) (pow.f64 d1 2)))
(-.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) (pow.f64 d1 2))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(*.f64 d3 (neg.f64 d1))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1)) (pow.f64 d1 2))
(+.f64 (*.f64 d1 d2) (-.f64 (neg.f64 (*.f64 d1 d3)) (pow.f64 d1 2)))
(-.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1)) (pow.f64 d1 2))
(+.f64 (*.f64 d1 d2) (-.f64 (neg.f64 (*.f64 d1 d3)) (pow.f64 d1 2)))
(-.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1)) (pow.f64 d1 2))
(+.f64 (*.f64 d1 d2) (-.f64 (neg.f64 (*.f64 d1 d3)) (pow.f64 d1 2)))
(-.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) (pow.f64 d1 2))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(*.f64 d3 (neg.f64 d1))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1)) (pow.f64 d1 2))
(+.f64 (*.f64 d1 d2) (-.f64 (neg.f64 (*.f64 d1 d3)) (pow.f64 d1 2)))
(-.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1)) (pow.f64 d1 2))
(+.f64 (*.f64 d1 d2) (-.f64 (neg.f64 (*.f64 d1 d3)) (pow.f64 d1 2)))
(-.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1)) (pow.f64 d1 2))
(+.f64 (*.f64 d1 d2) (-.f64 (neg.f64 (*.f64 d1 d3)) (pow.f64 d1 2)))
(-.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) (pow.f64 d1 2))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (neg.f64 (*.f64 d1 d3)))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (neg.f64 (*.f64 d1 d3)))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (neg.f64 (*.f64 d1 d3)))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (neg.f64 (*.f64 d1 d3)))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (neg.f64 (*.f64 d1 d3)))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (neg.f64 (*.f64 d1 d3)))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (neg.f64 (*.f64 d1 d3)))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (neg.f64 (*.f64 d1 d3)))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (neg.f64 (*.f64 d1 d3)))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (neg.f64 (*.f64 d1 d3)))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (neg.f64 (*.f64 d1 d3)))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (neg.f64 (*.f64 d1 d3)))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (neg.f64 (*.f64 d1 d3)))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (neg.f64 (*.f64 d1 d3)))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (neg.f64 (*.f64 d1 d3)))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (neg.f64 (*.f64 d1 d3)))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (neg.f64 (*.f64 d1 d3)))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (neg.f64 (*.f64 d1 d3)))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 (neg.f64 d1)) (neg.f64 (*.f64 d1 d3))))
(+.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 (neg.f64 d1)) (neg.f64 (*.f64 d1 d3))))
(+.f64 (*.f64 d1 d2) (*.f64 d1 (+.f64 (neg.f64 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 d2 (*.f64 -1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d2 (neg.f64 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d2 (-.f64 (neg.f64 d1) d3)))
(+.f64 (*.f64 d2 d1) (-.f64 (neg.f64 (*.f64 d1 d3)) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 (neg.f64 d1)) (neg.f64 (*.f64 d1 d3))))
(+.f64 (*.f64 d1 d2) (*.f64 d1 (+.f64 (neg.f64 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 d2 (*.f64 -1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d2 (neg.f64 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d2 (-.f64 (neg.f64 d1) d3)))
(+.f64 (*.f64 d2 d1) (-.f64 (*.f64 d1 (neg.f64 d1)) (*.f64 d1 d3)))
(+.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 (neg.f64 d1)) (neg.f64 (*.f64 d1 d3))))
(+.f64 (*.f64 d1 d2) (*.f64 d1 (+.f64 (neg.f64 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 d2 (*.f64 -1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d2 (neg.f64 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d2 (-.f64 (neg.f64 d1) d3)))
(+.f64 (*.f64 d2 d1) (neg.f64 (+.f64 (*.f64 d1 d3) (*.f64 d1 d1))))
(+.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 (neg.f64 d1)) (neg.f64 (*.f64 d1 d3))))
(+.f64 (*.f64 d1 d2) (*.f64 d1 (+.f64 (neg.f64 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 d2 (*.f64 -1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d2 (neg.f64 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d2 (-.f64 (neg.f64 d1) d3)))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 (neg.f64 d1)))
(+.f64 (*.f64 d1 (neg.f64 d1)) (*.f64 d1 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (neg.f64 d1)))
(+.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)) 0)
(*.f64 d1 (-.f64 (-.f64 d2 d1) d3))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(+.f64 0 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)))
(*.f64 d1 (-.f64 (-.f64 d2 d1) d3))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 (-.f64 d2 d1)) (neg.f64 (*.f64 d1 d3)))
(+.f64 (neg.f64 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(*.f64 d1 (+.f64 (neg.f64 d3) (-.f64 d2 d1)))
(+.f64 (*.f64 d1 (neg.f64 d1)) (*.f64 d1 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (neg.f64 d1)))
(+.f64 (neg.f64 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(*.f64 d1 (+.f64 (neg.f64 d3) (-.f64 d2 d1)))
(+.f64 -1 (+.f64 1 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1))))
(*.f64 d1 (-.f64 (-.f64 d2 d1) d3))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(+.f64 -1 (+.f64 (*.f64 d1 (neg.f64 d1)) (+.f64 1 (*.f64 d1 (-.f64 d2 d3)))))
(+.f64 (*.f64 d1 (neg.f64 d1)) (*.f64 d1 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (neg.f64 d1)))
(+.f64 -1 (+.f64 (*.f64 d1 (-.f64 d2 d3)) (-.f64 1 (*.f64 d1 d1))))
(+.f64 (*.f64 d1 (neg.f64 d1)) (*.f64 d1 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (neg.f64 d1)))
(+.f64 -1 (+.f64 (neg.f64 (*.f64 d1 d3)) (+.f64 1 (*.f64 d1 (-.f64 d2 d1)))))
(+.f64 (neg.f64 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(*.f64 d1 (+.f64 (neg.f64 d3) (-.f64 d2 d1)))
(+.f64 (-.f64 1 (*.f64 d1 d1)) (+.f64 (*.f64 d1 (-.f64 d2 d3)) -1))
(+.f64 (*.f64 d1 (neg.f64 d1)) (*.f64 d1 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (neg.f64 d1)))
(+.f64 (+.f64 1 (*.f64 d1 (-.f64 d2 d3))) (-.f64 -1 (*.f64 d1 d1)))
(+.f64 (*.f64 d1 (neg.f64 d1)) (*.f64 d1 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (neg.f64 d1)))
(+.f64 (+.f64 1 (*.f64 d1 (-.f64 d2 d1))) (-.f64 -1 (*.f64 d1 d3)))
(+.f64 (neg.f64 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(*.f64 d1 (+.f64 (neg.f64 d3) (-.f64 d2 d1)))
(+.f64 (-.f64 -1 (*.f64 d1 d1)) (+.f64 1 (*.f64 d1 (-.f64 d2 d3))))
(+.f64 (*.f64 d1 (neg.f64 d1)) (*.f64 d1 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (neg.f64 d1)))
(+.f64 (+.f64 1 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1))) -1)
(*.f64 d1 (-.f64 (-.f64 d2 d1) d3))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(+.f64 (-.f64 -1 (*.f64 d1 d3)) (+.f64 1 (*.f64 d1 (-.f64 d2 d1))))
(+.f64 (neg.f64 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(*.f64 d1 (+.f64 (neg.f64 d3) (-.f64 d2 d1)))
(+.f64 (+.f64 (*.f64 d1 (-.f64 d2 d3)) -1) (-.f64 1 (*.f64 d1 d1)))
(+.f64 (*.f64 d1 (neg.f64 d1)) (*.f64 d1 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (neg.f64 d1)))
(+.f64 (-.f64 1 (*.f64 d1 d3)) (-.f64 -1 (*.f64 d1 (-.f64 d1 d2))))
(+.f64 (-.f64 -1 (*.f64 d1 (-.f64 d1 d2))) (-.f64 1 (*.f64 d1 d3)))
(+.f64 (-.f64 1 (*.f64 d1 d3)) (-.f64 -1 (*.f64 d1 (-.f64 d1 d2))))
(+.f64 (+.f64 (*.f64 d1 (neg.f64 d1)) (neg.f64 (*.f64 d1 d3))) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 (neg.f64 d1)) (neg.f64 (*.f64 d1 d3))))
(+.f64 (*.f64 d1 d2) (*.f64 d1 (+.f64 (neg.f64 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 d2 (*.f64 -1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d2 (neg.f64 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d2 (-.f64 (neg.f64 d1) d3)))
(+.f64 (+.f64 (*.f64 d1 (neg.f64 d1)) (+.f64 1 (*.f64 d1 (-.f64 d2 d3)))) -1)
(+.f64 (*.f64 d1 (neg.f64 d1)) (*.f64 d1 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (neg.f64 d1)))
(+.f64 (+.f64 (*.f64 d1 (-.f64 d2 d3)) (-.f64 1 (*.f64 d1 d1))) -1)
(+.f64 (*.f64 d1 (neg.f64 d1)) (*.f64 d1 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (neg.f64 d1)))
(+.f64 (+.f64 (neg.f64 (*.f64 d1 d3)) (+.f64 1 (*.f64 d1 (-.f64 d2 d1)))) -1)
(+.f64 (neg.f64 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(*.f64 d1 (+.f64 (neg.f64 d3) (-.f64 d2 d1)))
(+.f64 (-.f64 (neg.f64 (*.f64 d1 d3)) (*.f64 d1 d1)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 (neg.f64 d1)) (neg.f64 (*.f64 d1 d3))))
(+.f64 (*.f64 d1 d2) (*.f64 d1 (+.f64 (neg.f64 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 d2 (*.f64 -1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d2 (neg.f64 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d2 (-.f64 (neg.f64 d1) d3)))
(+.f64 (-.f64 (*.f64 d1 (neg.f64 d1)) (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 (neg.f64 d1)) (neg.f64 (*.f64 d1 d3))))
(+.f64 (*.f64 d1 d2) (*.f64 d1 (+.f64 (neg.f64 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 d2 (*.f64 -1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d2 (neg.f64 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d2 (-.f64 (neg.f64 d1) d3)))
(+.f64 (neg.f64 (+.f64 (*.f64 d1 d3) (*.f64 d1 d1))) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 (neg.f64 d1)) (neg.f64 (*.f64 d1 d3))))
(+.f64 (*.f64 d1 d2) (*.f64 d1 (+.f64 (neg.f64 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 d2 (*.f64 -1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d2 (neg.f64 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d2 (-.f64 (neg.f64 d1) d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(*.f64 d1 (-.f64 (-.f64 d2 d1) d3))
(*.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)) 1)
(*.f64 d1 (-.f64 (-.f64 d2 d1) d3))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(*.f64 1 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)))
(*.f64 d1 (-.f64 (-.f64 d2 d1) d3))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(*.f64 2 (/.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)) 2))
(*.f64 d1 (-.f64 (-.f64 d2 d1) d3))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(*.f64 (*.f64 d1 (*.f64 2 (-.f64 (-.f64 d2 d3) d1))) 1/2)
(*.f64 d1 (-.f64 (-.f64 d2 d1) d3))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(*.f64 (*.f64 d1 (+.f64 d1 (-.f64 d3 d2))) -1)
(*.f64 (+.f64 d1 (-.f64 d3 d2)) (neg.f64 d1))
(*.f64 (neg.f64 d1) (+.f64 d1 (-.f64 d3 d2)))
(*.f64 d1 (neg.f64 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 (-.f64 (-.f64 d2 d3) d1) d1)
(*.f64 d1 (-.f64 (-.f64 d2 d1) d3))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(*.f64 -1 (*.f64 d1 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 (+.f64 d1 (-.f64 d3 d2)) (neg.f64 d1))
(*.f64 (neg.f64 d1) (+.f64 d1 (-.f64 d3 d2)))
(*.f64 d1 (neg.f64 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 1/2 (*.f64 d1 (*.f64 2 (-.f64 (-.f64 d2 d3) d1))))
(*.f64 d1 (-.f64 (-.f64 d2 d1) d3))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(*.f64 (/.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)) 2) 2)
(*.f64 d1 (-.f64 (-.f64 d2 d1) d3))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(/.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)) 1)
(*.f64 d1 (-.f64 (-.f64 d2 d1) d3))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(/.f64 (*.f64 d1 (*.f64 2 (-.f64 (-.f64 d2 d3) d1))) 2)
(*.f64 d1 (-.f64 (-.f64 d2 d1) d3))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(/.f64 (*.f64 d1 (+.f64 d1 (-.f64 d3 d2))) -1)
(*.f64 (+.f64 d1 (-.f64 d3 d2)) (neg.f64 d1))
(*.f64 (neg.f64 d1) (+.f64 d1 (-.f64 d3 d2)))
(*.f64 d1 (neg.f64 (+.f64 d1 (-.f64 d3 d2))))
(/.f64 (*.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)) 4) 4)
(*.f64 d1 (-.f64 (-.f64 d2 d1) d3))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(/.f64 (*.f64 2 (*.f64 d1 (+.f64 d1 (-.f64 d3 d2)))) -2)
(*.f64 (+.f64 d1 (-.f64 d3 d2)) (neg.f64 d1))
(*.f64 (neg.f64 d1) (+.f64 d1 (-.f64 d3 d2)))
(*.f64 d1 (neg.f64 (+.f64 d1 (-.f64 d3 d2))))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)) 4)) 8)
(*.f64 d1 (-.f64 (-.f64 d2 d1) d3))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)) 4)) (*.f64 2 (*.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)) 4))) 16)
(*.f64 d1 (-.f64 (-.f64 d2 d1) d3))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(pow.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d1)) 1)
(*.f64 d1 (-.f64 (-.f64 d2 d1) d3))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(neg.f64 (*.f64 d1 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 (+.f64 d1 (-.f64 d3 d2)) (neg.f64 d1))
(*.f64 (neg.f64 d1) (+.f64 d1 (-.f64 d3 d2)))
(*.f64 d1 (neg.f64 (+.f64 d1 (-.f64 d3 d2))))
(+.f64 (*.f64 d2 d1) (neg.f64 (*.f64 d1 d3)))
(+.f64 (*.f64 d1 d2) (neg.f64 (*.f64 d1 d3)))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) 0)
(*.f64 d1 (-.f64 d2 d3))
(+.f64 0 (*.f64 d1 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (neg.f64 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (neg.f64 (*.f64 d1 d3)))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 -1 (+.f64 1 (*.f64 d1 (-.f64 d2 d3))))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (+.f64 1 (*.f64 d1 (-.f64 d2 d3))) -1)
(*.f64 d1 (-.f64 d2 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (*.f64 d1 (-.f64 d2 d3)) 1)
(*.f64 d1 (-.f64 d2 d3))
(*.f64 1 (*.f64 d1 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 2 (/.f64 (*.f64 d1 (-.f64 d2 d3)) 2))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (*.f64 d1 (*.f64 2 (-.f64 d2 d3))) 1/2)
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (*.f64 d1 (-.f64 d3 d2)) -1)
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 (-.f64 d3 d2)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 1/2 (*.f64 d1 (*.f64 2 (-.f64 d2 d3))))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (/.f64 (*.f64 d1 (-.f64 d2 d3)) 2) 2)
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 d1 (-.f64 d2 d3)) 1)
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 d1 (*.f64 2 (-.f64 d2 d3))) 2)
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 d1 (-.f64 d3 d2)) -1)
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 4) 4)
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 4)) 8)
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 (+.f64 d1 d1) (-.f64 d3 d2)) -2)
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 4)) (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 4))) 16)
(*.f64 d1 (-.f64 d2 d3))
(pow.f64 (*.f64 d1 (-.f64 d2 d3)) 1)
(*.f64 d1 (-.f64 d2 d3))
(neg.f64 (*.f64 d1 (-.f64 d3 d2)))
(*.f64 d1 (-.f64 d2 d3))

localize4.0ms (0%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

localize5.0ms (0%)

Compiler

Compiled 12 to 6 computations (50% saved)

localize7.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 22 to 7 computations (68.2% saved)

series2.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite117.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
1582×rational.json-1
1582×rational.json-2
1582×rational.json-3
1406×exponential.json-3
1406×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0819
15419
212719
329119
461119
5157619
6375619
7593719
8782219
Stop Event
node limit
Counts
1 → 12
Calls
Call 1
Inputs
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (*.f64 (-.f64 d1 (+.f64 d2 d4)) -1/2)) (*.f64 d1 (*.f64 (-.f64 d1 (+.f64 d2 d4)) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 (-.f64 d1 (+.f64 d2 d4)) -2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 d2 (-.f64 d4 d1)) (*.f64 d1 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 1)))))

simplify480.0ms (3.1%)

Algorithm
egg-herbie
Rules
3460×rational.json-simplify-35
2472×rational.json-simplify-2
1188×exponential.json-simplify-26
1066×rational.json-simplify-53
762×rational.json-simplify-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0541122
1128920
2245920
3512920
41968920
54039920
64789920
75092920
85559920
95942920
105989920
116973920
127000920
137064920
147072920
157329920
167572920
177836920
Stop Event
node limit
Counts
48 → 28
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 d2 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (-.f64 d4 d1))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 (-.f64 d2 d1) d1)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 0)
(+.f64 0 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))
(+.f64 (*.f64 d1 (*.f64 (-.f64 d1 (+.f64 d2 d4)) -1/2)) (*.f64 d1 (*.f64 (-.f64 d1 (+.f64 d2 d4)) -1/2)))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 0)
(/.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 1)
(/.f64 (*.f64 d1 (*.f64 (-.f64 d1 (+.f64 d2 d4)) -2)) 2)
(/.f64 (*.f64 (+.f64 d2 (-.f64 d4 d1)) (*.f64 d1 4)) 4)
(/.f64 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 8)))) 64)
(pow.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 1)
Outputs
(*.f64 d1 (+.f64 d2 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (neg.f64 (pow.f64 d1 2)))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (neg.f64 (pow.f64 d1 2)))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (neg.f64 (pow.f64 d1 2)))
(*.f64 d1 (-.f64 d4 d1))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 (-.f64 d2 d1) d1)
(*.f64 d1 (-.f64 d2 d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(+.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 0)
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(+.f64 0 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(+.f64 (*.f64 d1 (*.f64 (-.f64 d1 (+.f64 d2 d4)) -1/2)) (*.f64 d1 (*.f64 (-.f64 d1 (+.f64 d2 d4)) -1/2)))
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 0)
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(/.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 1)
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(/.f64 (*.f64 d1 (*.f64 (-.f64 d1 (+.f64 d2 d4)) -2)) 2)
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(/.f64 (*.f64 (+.f64 d2 (-.f64 d4 d1)) (*.f64 d1 4)) 4)
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(/.f64 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 8) 8)
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 8)) 16)
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 8))) 32)
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 8)))) 64)
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(pow.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 1)
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))

localize7.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (*.f64 d2 d1) (*.f64 d1 d1))
Compiler

Compiled 19 to 7 computations (63.2% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite65.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
1996×rational.json-simplify-35
1370×rational.json-1
1370×rational.json-2
1370×rational.json-4
1370×rational.json-3
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0719
14713
211813
330913
4115413
5449313
Stop Event
node limit
Counts
1 → 33
Calls
Call 1
Inputs
(-.f64 (*.f64 d2 d1) (*.f64 d1 d1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d2 d1) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d2 d1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 d1 (-.f64 d2 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (neg.f64 d1)) (*.f64 d2 d1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 1 (*.f64 d1 (-.f64 d2 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (*.f64 d2 d1) (-.f64 1 (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (*.f64 d1 (-.f64 d2 d1))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (*.f64 d1 (-.f64 d2 d1)) 2) (/.f64 (*.f64 d1 (-.f64 d2 d1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 d2 d1) (-.f64 1 (*.f64 d1 d1))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (-.f64 d2 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (-.f64 d2 d1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 d1 (-.f64 d2 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (*.f64 d1 (-.f64 d2 d1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (/.f64 (*.f64 d1 (-.f64 d2 d1)) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (/.f64 d1 2) (-.f64 d2 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 d1 d1) (-.f64 d2 d1)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (*.f64 1/2 (-.f64 d2 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (-.f64 d1 d2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 d2 d1) d1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 d1 (-.f64 d1 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 d1 d1) (-.f64 d2 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 d1 (-.f64 d2 d1)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (-.f64 d2 d1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 d1 d1) (-.f64 d2 d1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (-.f64 d1 d2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (-.f64 d2 d1)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 d1 (-.f64 d1 d2))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d1)) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d1)) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 d1 (-.f64 d1 d2)))) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d1)) 4))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d1)) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (-.f64 d2 d1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 d1 (-.f64 d1 d2)))))))

simplify130.0ms (0.8%)

Algorithm
egg-herbie
Rules
1248×rational.json-simplify-2
912×rational.json-simplify-61
756×rational.json-simplify-1
678×exponential.json-simplify-26
644×rational.json-simplify-35
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
075955
1169913
2413913
31313913
42767913
55513913
66326913
77342913
Stop Event
node limit
Counts
57 → 41
Calls
Call 1
Inputs
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (neg.f64 d1)))
(+.f64 (*.f64 d1 (-.f64 d2 d1)) 0)
(+.f64 0 (*.f64 d1 (-.f64 d2 d1)))
(+.f64 (*.f64 d1 (neg.f64 d1)) (*.f64 d2 d1))
(+.f64 -1 (+.f64 1 (*.f64 d1 (-.f64 d2 d1))))
(+.f64 -1 (+.f64 (*.f64 d2 d1) (-.f64 1 (*.f64 d1 d1))))
(+.f64 (+.f64 1 (*.f64 d1 (-.f64 d2 d1))) -1)
(+.f64 (/.f64 (*.f64 d1 (-.f64 d2 d1)) 2) (/.f64 (*.f64 d1 (-.f64 d2 d1)) 2))
(+.f64 (+.f64 (*.f64 d2 d1) (-.f64 1 (*.f64 d1 d1))) -1)
(*.f64 d1 (-.f64 d2 d1))
(*.f64 (*.f64 d1 (-.f64 d2 d1)) 1)
(*.f64 1 (*.f64 d1 (-.f64 d2 d1)))
(*.f64 2 (/.f64 (*.f64 d1 (-.f64 d2 d1)) 2))
(*.f64 2 (*.f64 (/.f64 (*.f64 d1 (-.f64 d2 d1)) 2) 1))
(*.f64 2 (*.f64 (/.f64 d1 2) (-.f64 d2 d1)))
(*.f64 (*.f64 (+.f64 d1 d1) (-.f64 d2 d1)) 1/2)
(*.f64 (+.f64 d1 d1) (*.f64 1/2 (-.f64 d2 d1)))
(*.f64 (*.f64 d1 (-.f64 d1 d2)) -1)
(*.f64 (-.f64 d2 d1) d1)
(*.f64 -1 (*.f64 d1 (-.f64 d1 d2)))
(*.f64 1/2 (*.f64 (+.f64 d1 d1) (-.f64 d2 d1)))
(*.f64 (/.f64 (*.f64 d1 (-.f64 d2 d1)) 2) 2)
(/.f64 (*.f64 d1 (-.f64 d2 d1)) 1)
(/.f64 (*.f64 (+.f64 d1 d1) (-.f64 d2 d1)) 2)
(/.f64 (*.f64 d1 (-.f64 d1 d2)) -1)
(/.f64 (*.f64 (*.f64 d1 (-.f64 d2 d1)) 4) 4)
(/.f64 (*.f64 2 (*.f64 d1 (-.f64 d1 d2))) -2)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d1)) 4)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d1)) 4))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 d1 (-.f64 d1 d2)))) -4)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d1)) 4))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d1)) 4)))) 32)
(pow.f64 (*.f64 d1 (-.f64 d2 d1)) 1)
(neg.f64 (*.f64 d1 (-.f64 d1 d2)))
Outputs
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (neg.f64 d1)))
(*.f64 d1 (+.f64 d2 (neg.f64 d1)))
(+.f64 (*.f64 d1 (-.f64 d2 d1)) 0)
(*.f64 d1 (-.f64 d2 d1))
(+.f64 0 (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d1)) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 (neg.f64 d1)))
(+.f64 -1 (+.f64 1 (*.f64 d1 (-.f64 d2 d1))))
(*.f64 d1 (-.f64 d2 d1))
(+.f64 -1 (+.f64 (*.f64 d2 d1) (-.f64 1 (*.f64 d1 d1))))
(*.f64 d1 (+.f64 d2 (neg.f64 d1)))
(+.f64 (+.f64 1 (*.f64 d1 (-.f64 d2 d1))) -1)
(*.f64 d1 (-.f64 d2 d1))
(+.f64 (/.f64 (*.f64 d1 (-.f64 d2 d1)) 2) (/.f64 (*.f64 d1 (-.f64 d2 d1)) 2))
(*.f64 d1 (-.f64 d2 d1))
(+.f64 (+.f64 (*.f64 d2 d1) (-.f64 1 (*.f64 d1 d1))) -1)
(*.f64 d1 (+.f64 d2 (neg.f64 d1)))
(*.f64 d1 (-.f64 d2 d1))
(*.f64 (*.f64 d1 (-.f64 d2 d1)) 1)
(*.f64 d1 (-.f64 d2 d1))
(*.f64 1 (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 d2 d1))
(*.f64 2 (/.f64 (*.f64 d1 (-.f64 d2 d1)) 2))
(*.f64 d1 (-.f64 d2 d1))
(*.f64 2 (*.f64 (/.f64 (*.f64 d1 (-.f64 d2 d1)) 2) 1))
(*.f64 d1 (-.f64 d2 d1))
(*.f64 2 (*.f64 (/.f64 d1 2) (-.f64 d2 d1)))
(*.f64 d1 (-.f64 d2 d1))
(*.f64 (*.f64 (+.f64 d1 d1) (-.f64 d2 d1)) 1/2)
(*.f64 d1 (-.f64 d2 d1))
(*.f64 (+.f64 d1 d1) (*.f64 1/2 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 d2 d1))
(*.f64 (*.f64 d1 (-.f64 d1 d2)) -1)
(*.f64 d1 (-.f64 d2 d1))
(*.f64 (-.f64 d2 d1) d1)
(*.f64 d1 (-.f64 d2 d1))
(*.f64 -1 (*.f64 d1 (-.f64 d1 d2)))
(*.f64 d1 (-.f64 d2 d1))
(*.f64 1/2 (*.f64 (+.f64 d1 d1) (-.f64 d2 d1)))
(*.f64 d1 (-.f64 d2 d1))
(*.f64 (/.f64 (*.f64 d1 (-.f64 d2 d1)) 2) 2)
(*.f64 d1 (-.f64 d2 d1))
(/.f64 (*.f64 d1 (-.f64 d2 d1)) 1)
(*.f64 d1 (-.f64 d2 d1))
(/.f64 (*.f64 (+.f64 d1 d1) (-.f64 d2 d1)) 2)
(*.f64 d1 (-.f64 d2 d1))
(/.f64 (*.f64 d1 (-.f64 d1 d2)) -1)
(*.f64 d1 (-.f64 d2 d1))
(/.f64 (*.f64 (*.f64 d1 (-.f64 d2 d1)) 4) 4)
(*.f64 d1 (-.f64 d2 d1))
(/.f64 (*.f64 2 (*.f64 d1 (-.f64 d1 d2))) -2)
(*.f64 d1 (-.f64 d2 d1))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d1)) 4)) 8)
(*.f64 d1 (-.f64 d2 d1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d1)) 4))) 16)
(*.f64 d1 (-.f64 d2 d1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 d1 (-.f64 d1 d2)))) -4)
(*.f64 d1 (-.f64 d2 d1))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d1)) 4))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d1)) 4)))) 32)
(*.f64 d1 (-.f64 d2 d1))
(pow.f64 (*.f64 d1 (-.f64 d2 d1)) 1)
(*.f64 d1 (-.f64 d2 d1))
(neg.f64 (*.f64 d1 (-.f64 d1 d2)))
(*.f64 d1 (-.f64 d2 d1))

eval42.0ms (0.3%)

Compiler

Compiled 1802 to 643 computations (64.3% saved)

prune79.0ms (0.5%)

Pruning

10 alts after pruning (7 fresh and 3 done)

PrunedKeptTotal
New1765181
Fresh123
Picked011
Done224
Total17910189
Error
0b
Counts
189 → 10
Alt Table
Click to see full alt table
StatusErrorProgram
34.0b
(-.f64 (*.f64 d2 d1) (*.f64 d1 d1))
16.9b
(+.f64 (*.f64 d1 (-.f64 d2 d1)) (neg.f64 (*.f64 d1 d3)))
24.8b
(*.f64 (-.f64 d2 d3) d1)
34.0b
(*.f64 (-.f64 d2 d1) d1)
43.6b
(*.f64 d3 (neg.f64 d1))
42.0b
(*.f64 d2 d1)
19.2b
(*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))
36.0b
(*.f64 d1 (-.f64 d4 d1))
25.2b
(*.f64 d1 (+.f64 d2 d4))
43.8b
(*.f64 d1 d4)
Compiler

Compiled 162 to 108 computations (33.3% saved)

localize10.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 32 to 9 computations (71.9% saved)

series5.0ms (0%)

Counts
2 → 60
Calls

15 calls:

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

rewrite130.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
1498×exponential.json-3
1498×rational.json-1
1498×rational.json-2
1498×rational.json-4
1498×rational.json-3
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01142
17542
216636
338336
482936
5211236
6396536
7579636
8770836
Stop Event
node limit
Counts
2 → 41
Calls
Call 1
Inputs
(*.f64 d1 (-.f64 d2 d1))
(+.f64 (*.f64 d1 (-.f64 d2 d1)) (neg.f64 (*.f64 d1 d3)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d2 d1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 d1 (-.f64 d2 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 d2 d1) (*.f64 d1 1/2)) (*.f64 (-.f64 d2 d1) (*.f64 d1 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (-.f64 d2 d1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (-.f64 d2 d1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 d2 d1) (+.f64 d1 d1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 (-.f64 d2 d1) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d2 d1) 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d2 d1) 4)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d2 d1) 4))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d2 d1) 4)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (-.f64 d2 d1)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 d1 (-.f64 d2 d1)) (-.f64 1 (*.f64 d1 d3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 d1 (/.f64 (+.f64 (-.f64 d2 d1) (neg.f64 d3)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 (+.f64 (-.f64 d2 d1) (neg.f64 d3)) 1/2) d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 -2 (*.f64 (+.f64 d3 (-.f64 d1 d2)) d1)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (*.f64 (+.f64 (-.f64 d2 d1) (neg.f64 d3)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (*.f64 (+.f64 d3 (-.f64 d1 d2)) (*.f64 d1 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (-.f64 d2 d1) (neg.f64 d3)) d1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) (*.f64 d1 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 -2 (*.f64 (+.f64 d3 (-.f64 d1 d2)) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (/.f64 (+.f64 (-.f64 d2 d1) (neg.f64 d3)) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 (-.f64 d2 d1) (neg.f64 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (-.f64 d2 d1) (neg.f64 d3)) 1/2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 d3 (-.f64 d1 d2))) (*.f64 d1 -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -2 (*.f64 (+.f64 d3 (-.f64 d1 d2)) d1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 4))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 1)))))

simplify327.0ms (2.1%)

Algorithm
egg-herbie
Rules
2238×rational.json-simplify-2
1764×rational.json-simplify-35
1358×rational.json-simplify-1
864×rational.json-simplify-51
750×exponential.json-simplify-26
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01132449
12672127
26092127
316592127
434942127
542232127
646372127
749922127
854052127
960832127
1069152127
1173952127
1275642127
1377222127
1478732127
Stop Event
node limit
Counts
101 → 66
Calls
Call 1
Inputs
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3)))))
(-.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 d2 d1)
(-.f64 (+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 d2 d1)
(-.f64 (+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 (-.f64 d2 d1) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 (-.f64 d2 d1)) 0)
(+.f64 0 (*.f64 d1 (-.f64 d2 d1)))
(+.f64 (*.f64 (-.f64 d2 d1) (*.f64 d1 1/2)) (*.f64 (-.f64 d2 d1) (*.f64 d1 1/2)))
(-.f64 (*.f64 d1 (-.f64 d2 d1)) 0)
(/.f64 (*.f64 d1 (-.f64 d2 d1)) 1)
(/.f64 (*.f64 (-.f64 d2 d1) (+.f64 d1 d1)) 2)
(/.f64 (*.f64 d1 (*.f64 (-.f64 d2 d1) 4)) 4)
(/.f64 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d2 d1) 4))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d2 d1) 4)))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d2 d1) 4))))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d2 d1) 4)))))) 64)
(pow.f64 (*.f64 d1 (-.f64 d2 d1)) 1)
(-.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 0)
(-.f64 (+.f64 (*.f64 d1 (-.f64 d2 d1)) (-.f64 1 (*.f64 d1 d3))) 1)
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 1)
(*.f64 1 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))))
(*.f64 2 (*.f64 d1 (/.f64 (+.f64 (-.f64 d2 d1) (neg.f64 d3)) 2)))
(*.f64 2 (*.f64 (*.f64 (+.f64 (-.f64 d2 d1) (neg.f64 d3)) 1/2) d1))
(*.f64 (*.f64 -2 (*.f64 (+.f64 d3 (-.f64 d1 d2)) d1)) 1/2)
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 (-.f64 d2 d1) (neg.f64 d3)) 1/2))
(*.f64 -2 (*.f64 (+.f64 d3 (-.f64 d1 d2)) (*.f64 d1 1/2)))
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 4))
(*.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 4) 1/4)
(*.f64 (+.f64 (-.f64 d2 d1) (neg.f64 d3)) d1)
(*.f64 (*.f64 2 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) (*.f64 d1 1/2))
(*.f64 1/2 (*.f64 -2 (*.f64 (+.f64 d3 (-.f64 d1 d2)) d1)))
(*.f64 (*.f64 d1 (/.f64 (+.f64 (-.f64 d2 d1) (neg.f64 d3)) 2)) 2)
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 (-.f64 d2 d1) (neg.f64 d3))))
(*.f64 (*.f64 (+.f64 (-.f64 d2 d1) (neg.f64 d3)) 1/2) (+.f64 d1 d1))
(*.f64 1/4 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 4))
(*.f64 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 4) 4)
(*.f64 (*.f64 2 (+.f64 d3 (-.f64 d1 d2))) (*.f64 d1 -1/2))
(/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 1)
(/.f64 (*.f64 -2 (*.f64 (+.f64 d3 (-.f64 d1 d2)) d1)) 2)
(/.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 4) 4)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 4)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 4))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 4)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 4))))) 64)
(pow.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 1)
Outputs
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d2 d1) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d2 d1) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d2 d1) (neg.f64 (pow.f64 d1 2)))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d2 d1) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d2 d1) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d2 d1) (neg.f64 (pow.f64 d1 2)))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d2 d1) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d2 d1) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d2 d1) (neg.f64 (pow.f64 d1 2)))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d2 d1) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d2 d1) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d2 d1) (neg.f64 (pow.f64 d1 2)))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d2 d1) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d2 d1) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d2 d1) (neg.f64 (pow.f64 d1 2)))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d2 d1) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d2 d1) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d2 d1) (neg.f64 (pow.f64 d1 2)))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(-.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d3))
(-.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d3))
(-.f64 (*.f64 d1 (neg.f64 d3)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1)) (*.f64 d1 d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(-.f64 (+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1)) (*.f64 d1 d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(-.f64 (+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1)) (*.f64 d1 d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(*.f64 d2 d1)
(-.f64 (+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1)) (*.f64 d1 d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(-.f64 (+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1)) (*.f64 d1 d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(-.f64 (+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1)) (*.f64 d1 d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(*.f64 d2 d1)
(-.f64 (+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1)) (*.f64 d1 d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(-.f64 (+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1)) (*.f64 d1 d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(-.f64 (+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1)) (*.f64 d1 d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 d2 d3)))
(*.f64 (-.f64 d2 d1) d1)
(*.f64 d1 (-.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(+.f64 (*.f64 d1 (-.f64 d2 d1)) 0)
(*.f64 d1 (-.f64 d2 d1))
(+.f64 0 (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 d2 d1))
(+.f64 (*.f64 (-.f64 d2 d1) (*.f64 d1 1/2)) (*.f64 (-.f64 d2 d1) (*.f64 d1 1/2)))
(*.f64 d1 (-.f64 d2 d1))
(-.f64 (*.f64 d1 (-.f64 d2 d1)) 0)
(*.f64 d1 (-.f64 d2 d1))
(/.f64 (*.f64 d1 (-.f64 d2 d1)) 1)
(*.f64 d1 (-.f64 d2 d1))
(/.f64 (*.f64 (-.f64 d2 d1) (+.f64 d1 d1)) 2)
(*.f64 d1 (-.f64 d2 d1))
(/.f64 (*.f64 d1 (*.f64 (-.f64 d2 d1) 4)) 4)
(*.f64 d1 (-.f64 d2 d1))
(/.f64 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d2 d1) 4))) 8)
(*.f64 d1 (-.f64 d2 d1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d2 d1) 4)))) 16)
(*.f64 d1 (-.f64 d2 d1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d2 d1) 4))))) 32)
(*.f64 d1 (-.f64 d2 d1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d2 d1) 4)))))) 64)
(*.f64 d1 (-.f64 d2 d1))
(pow.f64 (*.f64 d1 (-.f64 d2 d1)) 1)
(*.f64 d1 (-.f64 d2 d1))
(-.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 0)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(-.f64 (+.f64 (*.f64 d1 (-.f64 d2 d1)) (-.f64 1 (*.f64 d1 d3))) 1)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 1)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(*.f64 1 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(*.f64 2 (*.f64 d1 (/.f64 (+.f64 (-.f64 d2 d1) (neg.f64 d3)) 2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(*.f64 2 (*.f64 (*.f64 (+.f64 (-.f64 d2 d1) (neg.f64 d3)) 1/2) d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(*.f64 (*.f64 -2 (*.f64 (+.f64 d3 (-.f64 d1 d2)) d1)) 1/2)
(*.f64 1/2 (*.f64 (+.f64 d3 (-.f64 d1 d2)) (*.f64 d1 -2)))
(neg.f64 (*.f64 d1 (+.f64 d3 (-.f64 d1 d2))))
(*.f64 d1 (neg.f64 (+.f64 d3 (-.f64 d1 d2))))
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 (-.f64 d2 d1) (neg.f64 d3)) 1/2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(*.f64 -2 (*.f64 (+.f64 d3 (-.f64 d1 d2)) (*.f64 d1 1/2)))
(*.f64 1/2 (*.f64 (+.f64 d3 (-.f64 d1 d2)) (*.f64 d1 -2)))
(neg.f64 (*.f64 d1 (+.f64 d3 (-.f64 d1 d2))))
(*.f64 d1 (neg.f64 (+.f64 d3 (-.f64 d1 d2))))
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 4))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(*.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 4) 1/4)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(*.f64 (+.f64 (-.f64 d2 d1) (neg.f64 d3)) d1)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(*.f64 (*.f64 2 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) (*.f64 d1 1/2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(*.f64 1/2 (*.f64 -2 (*.f64 (+.f64 d3 (-.f64 d1 d2)) d1)))
(*.f64 1/2 (*.f64 (+.f64 d3 (-.f64 d1 d2)) (*.f64 d1 -2)))
(neg.f64 (*.f64 d1 (+.f64 d3 (-.f64 d1 d2))))
(*.f64 d1 (neg.f64 (+.f64 d3 (-.f64 d1 d2))))
(*.f64 (*.f64 d1 (/.f64 (+.f64 (-.f64 d2 d1) (neg.f64 d3)) 2)) 2)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 (-.f64 d2 d1) (neg.f64 d3))))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(*.f64 (*.f64 (+.f64 (-.f64 d2 d1) (neg.f64 d3)) 1/2) (+.f64 d1 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(*.f64 1/4 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 4))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(*.f64 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 4) 4)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(*.f64 (*.f64 2 (+.f64 d3 (-.f64 d1 d2))) (*.f64 d1 -1/2))
(*.f64 1/2 (*.f64 (+.f64 d3 (-.f64 d1 d2)) (*.f64 d1 -2)))
(neg.f64 (*.f64 d1 (+.f64 d3 (-.f64 d1 d2))))
(*.f64 d1 (neg.f64 (+.f64 d3 (-.f64 d1 d2))))
(/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 1)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(/.f64 (*.f64 -2 (*.f64 (+.f64 d3 (-.f64 d1 d2)) d1)) 2)
(*.f64 1/2 (*.f64 (+.f64 d3 (-.f64 d1 d2)) (*.f64 d1 -2)))
(neg.f64 (*.f64 d1 (+.f64 d3 (-.f64 d1 d2))))
(*.f64 d1 (neg.f64 (+.f64 d3 (-.f64 d1 d2))))
(/.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 4) 4)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 4)) 8)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 4))) 16)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 4)))) 32)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 4))))) 64)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(pow.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))) 1)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))

localize4.0ms (0%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 15 to 6 computations (60% saved)

series2.0ms (0%)

Counts
1 → 24
Calls

9 calls:

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

rewrite172.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
2520×rational.json-simplify-2
1526×rational.json-simplify-35
1258×rational.json-simplify-1
1232×exponential.json-3
1232×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
14613
210213
321413
439713
589613
6231513
7418313
8508813
9616213
10697713
11697713
Stop Event
node limit
Counts
1 → 14
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 d2 d4))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (+.f64 d2 d4)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 d1 (+.f64 d2 d4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (*.f64 (+.f64 d2 d4) 1/2)) (*.f64 d1 (*.f64 (+.f64 d2 d4) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (+.f64 d2 d4)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (+.f64 d2 d4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 (+.f64 d2 d4) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 (+.f64 d2 d4) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 d2 d4) (*.f64 d1 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 d2 d4) (*.f64 d1 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 d2 d4) (*.f64 d1 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 d2 d4) (*.f64 d1 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 d2 d4) (*.f64 d1 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 d2 d4) (*.f64 d1 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (+.f64 d2 d4)) 1)))))

simplify442.0ms (2.8%)

Algorithm
egg-herbie
Rules
2830×rational.json-simplify-2
2090×rational.json-simplify-35
1532×rational.json-simplify-53
1406×rational.json-simplify-1
1044×rational.json-simplify-41
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
049458
1130458
2256458
3616458
42267458
54479458
64699458
74814458
84912458
95010458
105106458
116665458
127216458
137422458
147422458
157422458
167518458
177614458
Stop Event
node limit
Counts
38 → 20
Calls
Call 1
Inputs
(*.f64 d1 d4)
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d2 d1)
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 d4)
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) 0)
(+.f64 0 (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 d1 (*.f64 (+.f64 d2 d4) 1/2)) (*.f64 d1 (*.f64 (+.f64 d2 d4) 1/2)))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) 0)
(/.f64 (*.f64 d1 (+.f64 d2 d4)) 1)
(/.f64 (*.f64 d1 (*.f64 (+.f64 d2 d4) 2)) 2)
(/.f64 (*.f64 d1 (*.f64 (+.f64 d2 d4) 4)) 4)
(/.f64 (*.f64 (+.f64 d2 d4) (*.f64 d1 8)) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 d2 d4) (*.f64 d1 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 d2 d4) (*.f64 d1 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 d2 d4) (*.f64 d1 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 d2 d4) (*.f64 d1 8)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 d2 d4) (*.f64 d1 8))))))) 256)
(pow.f64 (*.f64 d1 (+.f64 d2 d4)) 1)
Outputs
(*.f64 d1 d4)
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d4 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d4 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d4 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d4 d2))
(*.f64 d1 d4)
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d4 d2))
(*.f64 d1 d4)
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) 0)
(*.f64 d1 (+.f64 d4 d2))
(+.f64 0 (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d1 (*.f64 (+.f64 d2 d4) 1/2)) (*.f64 d1 (*.f64 (+.f64 d2 d4) 1/2)))
(*.f64 d1 (+.f64 d4 d2))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) 0)
(*.f64 d1 (+.f64 d4 d2))
(/.f64 (*.f64 d1 (+.f64 d2 d4)) 1)
(*.f64 d1 (+.f64 d4 d2))
(/.f64 (*.f64 d1 (*.f64 (+.f64 d2 d4) 2)) 2)
(*.f64 d1 (+.f64 d4 d2))
(/.f64 (*.f64 d1 (*.f64 (+.f64 d2 d4) 4)) 4)
(*.f64 d1 (+.f64 d4 d2))
(/.f64 (*.f64 (+.f64 d2 d4) (*.f64 d1 8)) 8)
(*.f64 d1 (+.f64 d4 d2))
(/.f64 (*.f64 2 (*.f64 (+.f64 d2 d4) (*.f64 d1 8))) 16)
(*.f64 d1 (+.f64 d4 d2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 d2 d4) (*.f64 d1 8)))) 32)
(*.f64 d1 (+.f64 d4 d2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 d2 d4) (*.f64 d1 8))))) 64)
(*.f64 d1 (+.f64 d4 d2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 d2 d4) (*.f64 d1 8)))))) 128)
(*.f64 d1 (+.f64 d4 d2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 d2 d4) (*.f64 d1 8))))))) 256)
(*.f64 d1 (+.f64 d4 d2))
(pow.f64 (*.f64 d1 (+.f64 d2 d4)) 1)
(*.f64 d1 (+.f64 d4 d2))

localize63.0ms (0.4%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 d1 (-.f64 d4 d1))
Compiler

Compiled 14 to 6 computations (57.1% saved)

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (-.f64 d2 d1) d1)
Compiler

Compiled 14 to 6 computations (57.1% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite126.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
1520×rational.json-1
1520×rational.json-2
1312×rational.json-3
1306×exponential.json-3
1306×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
13913
29313
320313
437313
585713
6237813
7465113
8617713
9785813
Stop Event
node limit
Counts
1 → 23
Calls
Call 1
Inputs
(*.f64 (-.f64 d2 d1) d1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d2 d1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 d1 (-.f64 d2 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (*.f64 d1 (-.f64 d1 d2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d1 d2) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (*.f64 (-.f64 d1 d2) -1/2)) (*.f64 d1 (*.f64 (-.f64 d1 d2) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (-.f64 d2 d1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 d1 (-.f64 d1 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d1 d2) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (-.f64 d1 d2)) (*.f64 d1 (*.f64 (-.f64 d2 d1) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d1 d2) 1/2)) (*.f64 2 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d1 d2) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (-.f64 d2 d1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 (-.f64 d1 d2) -2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 d1 d2) (*.f64 d1 -4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 d2 d1) (*.f64 d1 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 d2 d1) (*.f64 d1 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 d2 d1) (*.f64 d1 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (-.f64 d1 d2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d1 d2) 1/2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 d2 d1) (*.f64 d1 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 d2 d1) (*.f64 d1 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (-.f64 d2 d1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 d1 (-.f64 d1 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d1 d2) 1/2)))))))

simplify172.0ms (1.1%)

Algorithm
egg-herbie
Rules
3042×rational.json-simplify-2
1794×rational.json-simplify-52
1726×rational.json-simplify-35
1036×exponential.json-simplify-26
880×rational.json-simplify-43
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
070809
1171767
2338767
3727767
42260767
53749767
64705767
75689767
87768767
97926767
Stop Event
node limit
Counts
47 → 31
Calls
Call 1
Inputs
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (-.f64 d2 d1)) 0)
(+.f64 0 (*.f64 d1 (-.f64 d2 d1)))
(+.f64 -1 (-.f64 1 (*.f64 d1 (-.f64 d1 d2))))
(+.f64 -1 (-.f64 1 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d1 d2) 1/2))))
(+.f64 (*.f64 d1 (*.f64 (-.f64 d1 d2) -1/2)) (*.f64 d1 (*.f64 (-.f64 d1 d2) -1/2)))
(-.f64 (*.f64 d1 (-.f64 d2 d1)) 0)
(-.f64 0 (*.f64 d1 (-.f64 d1 d2)))
(-.f64 0 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d1 d2) 1/2)))
(-.f64 (*.f64 d1 (-.f64 d1 d2)) (*.f64 d1 (*.f64 (-.f64 d2 d1) -2)))
(-.f64 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d1 d2) 1/2)) (*.f64 2 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d1 d2) 1/2))))
(/.f64 (*.f64 d1 (-.f64 d2 d1)) 1)
(/.f64 (*.f64 d1 (*.f64 (-.f64 d1 d2) -2)) 2)
(/.f64 (*.f64 (-.f64 d1 d2) (*.f64 d1 -4)) 4)
(/.f64 (*.f64 (-.f64 d2 d1) (*.f64 d1 8)) 8)
(/.f64 (*.f64 2 (*.f64 (-.f64 d2 d1) (*.f64 d1 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 d2 d1) (*.f64 d1 8)))) 32)
(/.f64 (*.f64 d1 (-.f64 d1 d2)) -1)
(/.f64 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d1 d2) 1/2)) -1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 d2 d1) (*.f64 d1 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 d2 d1) (*.f64 d1 8)))))) 128)
(pow.f64 (*.f64 d1 (-.f64 d2 d1)) 1)
(neg.f64 (*.f64 d1 (-.f64 d1 d2)))
(neg.f64 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d1 d2) 1/2)))
Outputs
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (-.f64 d2 d1)) 0)
(*.f64 d1 (-.f64 d2 d1))
(+.f64 0 (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 d2 d1))
(+.f64 -1 (-.f64 1 (*.f64 d1 (-.f64 d1 d2))))
(*.f64 d1 (-.f64 d2 d1))
(+.f64 -1 (-.f64 1 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d1 d2) 1/2))))
(*.f64 d1 (-.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 (-.f64 d1 d2) -1/2)) (*.f64 d1 (*.f64 (-.f64 d1 d2) -1/2)))
(*.f64 d1 (-.f64 d2 d1))
(-.f64 (*.f64 d1 (-.f64 d2 d1)) 0)
(*.f64 d1 (-.f64 d2 d1))
(-.f64 0 (*.f64 d1 (-.f64 d1 d2)))
(*.f64 d1 (-.f64 d2 d1))
(-.f64 0 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d1 d2) 1/2)))
(*.f64 d1 (-.f64 d2 d1))
(-.f64 (*.f64 d1 (-.f64 d1 d2)) (*.f64 d1 (*.f64 (-.f64 d2 d1) -2)))
(*.f64 d1 (-.f64 d2 d1))
(-.f64 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d1 d2) 1/2)) (*.f64 2 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d1 d2) 1/2))))
(*.f64 d1 (-.f64 d2 d1))
(/.f64 (*.f64 d1 (-.f64 d2 d1)) 1)
(*.f64 d1 (-.f64 d2 d1))
(/.f64 (*.f64 d1 (*.f64 (-.f64 d1 d2) -2)) 2)
(*.f64 d1 (-.f64 d2 d1))
(/.f64 (*.f64 (-.f64 d1 d2) (*.f64 d1 -4)) 4)
(*.f64 d1 (-.f64 d2 d1))
(/.f64 (*.f64 (-.f64 d2 d1) (*.f64 d1 8)) 8)
(*.f64 d1 (-.f64 d2 d1))
(/.f64 (*.f64 2 (*.f64 (-.f64 d2 d1) (*.f64 d1 8))) 16)
(*.f64 d1 (-.f64 d2 d1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 d2 d1) (*.f64 d1 8)))) 32)
(*.f64 d1 (-.f64 d2 d1))
(/.f64 (*.f64 d1 (-.f64 d1 d2)) -1)
(*.f64 d1 (-.f64 d2 d1))
(/.f64 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d1 d2) 1/2)) -1)
(*.f64 d1 (-.f64 d2 d1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 d2 d1) (*.f64 d1 8))))) 64)
(*.f64 d1 (-.f64 d2 d1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 d2 d1) (*.f64 d1 8)))))) 128)
(*.f64 d1 (-.f64 d2 d1))
(pow.f64 (*.f64 d1 (-.f64 d2 d1)) 1)
(*.f64 d1 (-.f64 d2 d1))
(neg.f64 (*.f64 d1 (-.f64 d1 d2)))
(*.f64 d1 (-.f64 d2 d1))
(neg.f64 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d1 d2) 1/2)))
(*.f64 d1 (-.f64 d2 d1))

eval22.0ms (0.1%)

Compiler

Compiled 1419 to 631 computations (55.5% saved)

prune24.0ms (0.2%)

Pruning

10 alts after pruning (3 fresh and 7 done)

PrunedKeptTotal
New1381139
Fresh022
Picked011
Done167
Total13910149
Error
0b
Counts
149 → 10
Alt Table
Click to see full alt table
StatusErrorProgram
34.0b
(-.f64 (*.f64 d2 d1) (*.f64 d1 d1))
24.8b
(+.f64 (*.f64 d2 d1) (neg.f64 (*.f64 d1 d3)))
24.8b
(*.f64 (-.f64 d2 d3) d1)
34.0b
(*.f64 (-.f64 d2 d1) d1)
43.6b
(*.f64 d3 (neg.f64 d1))
42.0b
(*.f64 d2 d1)
19.2b
(*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))
36.0b
(*.f64 d1 (-.f64 d4 d1))
25.2b
(*.f64 d1 (+.f64 d2 d4))
43.8b
(*.f64 d1 d4)
Compiler

Compiled 92 to 62 computations (32.6% saved)

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 22 to 7 computations (68.2% saved)

series2.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite106.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
1652×rational.json-1
1652×rational.json-2
1652×rational.json-3
1516×rational.json-simplify-35
1184×exponential.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0819
15219
211419
325219
449819
5117619
6293719
7510919
8737619
Stop Event
node limit
Counts
1 → 13
Calls
Call 1
Inputs
(*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 1/2)) (*.f64 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 d4 (+.f64 d1 d3)) (+.f64 d1 d1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 (+.f64 d1 (-.f64 d3 d4)) -4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 (-.f64 d4 (+.f64 d1 d3)) 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d4 (+.f64 d1 d3)) 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d4 (+.f64 d1 d3)) 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d4 (+.f64 d1 d3)) 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d4 (+.f64 d1 d3)) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d4 (+.f64 d1 d3)) 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) 1)))))

simplify613.0ms (3.9%)

Algorithm
egg-herbie
Rules
3632×rational.json-simplify-35
2840×rational.json-simplify-2
1572×rational.json-simplify-53
1072×exponential.json-simplify-26
714×rational.json-simplify-1
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0611207
11401089
22581029
35421027
416381027
533411027
646181027
749181027
851051027
952861027
1054661027
1160331027
1265671027
1366921027
1466921027
1566921027
1668731027
1770541027
1872351027
1974161027
2075971027
Stop Event
node limit
Counts
49 → 44
Calls
Call 1
Inputs
(*.f64 (-.f64 d4 d3) d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(*.f64 -1 (*.f64 (+.f64 d1 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(*.f64 d1 (-.f64 d4 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) 0)
(+.f64 0 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))
(+.f64 (*.f64 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 1/2)) (*.f64 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 1/2)))
(-.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) 0)
(/.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) 1)
(/.f64 (*.f64 (-.f64 d4 (+.f64 d1 d3)) (+.f64 d1 d1)) 2)
(/.f64 (*.f64 d1 (*.f64 (+.f64 d1 (-.f64 d3 d4)) -4)) 4)
(/.f64 (*.f64 d1 (*.f64 (-.f64 d4 (+.f64 d1 d3)) 8)) 8)
(/.f64 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d4 (+.f64 d1 d3)) 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d4 (+.f64 d1 d3)) 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d4 (+.f64 d1 d3)) 8))))) 64)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d4 (+.f64 d1 d3)) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d4 (+.f64 d1 d3)) 8)))))) 128)
(pow.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) 1)
Outputs
(*.f64 (-.f64 d4 d3) d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 (-.f64 d4 d3) d1) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 (-.f64 d4 d3) d1) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 (-.f64 d4 d3) d1) (neg.f64 (pow.f64 d1 2)))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 (-.f64 d4 d3) d1) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 (-.f64 d4 d3) d1) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 (-.f64 d4 d3) d1) (neg.f64 (pow.f64 d1 2)))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 (-.f64 d4 d3) d1) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 (-.f64 d4 d3) d1) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 (-.f64 d4 d3) d1) (neg.f64 (pow.f64 d1 2)))
(*.f64 -1 (*.f64 (+.f64 d1 d3) d1))
(*.f64 -1 (*.f64 d1 (+.f64 d3 d1)))
(*.f64 (+.f64 d3 d1) (neg.f64 d1))
(*.f64 d1 (neg.f64 (+.f64 d3 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 (+.f64 d3 d1))) (*.f64 d4 d1))
(+.f64 (*.f64 (+.f64 d3 d1) (neg.f64 d1)) (*.f64 d4 d1))
(*.f64 d1 (+.f64 d4 (neg.f64 (+.f64 d3 d1))))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 (+.f64 d3 d1))) (*.f64 d4 d1))
(+.f64 (*.f64 (+.f64 d3 d1) (neg.f64 d1)) (*.f64 d4 d1))
(*.f64 d1 (+.f64 d4 (neg.f64 (+.f64 d3 d1))))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 (+.f64 d3 d1))) (*.f64 d4 d1))
(+.f64 (*.f64 (+.f64 d3 d1) (neg.f64 d1)) (*.f64 d4 d1))
(*.f64 d1 (+.f64 d4 (neg.f64 (+.f64 d3 d1))))
(*.f64 d1 d4)
(*.f64 d4 d1)
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 (+.f64 d3 d1))) (*.f64 d4 d1))
(+.f64 (*.f64 (+.f64 d3 d1) (neg.f64 d1)) (*.f64 d4 d1))
(*.f64 d1 (+.f64 d4 (neg.f64 (+.f64 d3 d1))))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 (+.f64 d3 d1))) (*.f64 d4 d1))
(+.f64 (*.f64 (+.f64 d3 d1) (neg.f64 d1)) (*.f64 d4 d1))
(*.f64 d1 (+.f64 d4 (neg.f64 (+.f64 d3 d1))))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 (+.f64 d3 d1))) (*.f64 d4 d1))
(+.f64 (*.f64 (+.f64 d3 d1) (neg.f64 d1)) (*.f64 d4 d1))
(*.f64 d1 (+.f64 d4 (neg.f64 (+.f64 d3 d1))))
(*.f64 d1 d4)
(*.f64 d4 d1)
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 (+.f64 d3 d1))) (*.f64 d4 d1))
(+.f64 (*.f64 (+.f64 d3 d1) (neg.f64 d1)) (*.f64 d4 d1))
(*.f64 d1 (+.f64 d4 (neg.f64 (+.f64 d3 d1))))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 (+.f64 d3 d1))) (*.f64 d4 d1))
(+.f64 (*.f64 (+.f64 d3 d1) (neg.f64 d1)) (*.f64 d4 d1))
(*.f64 d1 (+.f64 d4 (neg.f64 (+.f64 d3 d1))))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 (+.f64 d3 d1))) (*.f64 d4 d1))
(+.f64 (*.f64 (+.f64 d3 d1) (neg.f64 d1)) (*.f64 d4 d1))
(*.f64 d1 (+.f64 d4 (neg.f64 (+.f64 d3 d1))))
(*.f64 d1 (-.f64 d4 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 (*.f64 d3 -1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 (*.f64 d3 -1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 (*.f64 d3 -1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (neg.f64 d3)))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (*.f64 d3 -1))
(*.f64 d1 (neg.f64 d3))
(*.f64 d3 (neg.f64 d1))
(neg.f64 (*.f64 d3 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 (*.f64 d3 -1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 (*.f64 d3 -1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 (*.f64 d3 -1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (neg.f64 d3)))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (*.f64 d3 -1))
(*.f64 d1 (neg.f64 d3))
(*.f64 d3 (neg.f64 d1))
(neg.f64 (*.f64 d3 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 (*.f64 d3 -1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 (*.f64 d3 -1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 (*.f64 d3 -1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (neg.f64 d3)))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) 0)
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(+.f64 0 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(+.f64 (*.f64 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 1/2)) (*.f64 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 1/2)))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(-.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) 0)
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(/.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) 1)
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(/.f64 (*.f64 (-.f64 d4 (+.f64 d1 d3)) (+.f64 d1 d1)) 2)
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(/.f64 (*.f64 d1 (*.f64 (+.f64 d1 (-.f64 d3 d4)) -4)) 4)
(*.f64 (*.f64 (+.f64 d1 (-.f64 d3 d4)) -4) (/.f64 d1 4))
(*.f64 d1 (/.f64 (*.f64 (+.f64 d1 (-.f64 d3 d4)) -4) 4))
(*.f64 d1 (*.f64 (+.f64 d1 (-.f64 d3 d4)) -1))
(*.f64 (+.f64 d1 (-.f64 d3 d4)) (neg.f64 d1))
(*.f64 d1 (neg.f64 (+.f64 d1 (-.f64 d3 d4))))
(/.f64 (*.f64 d1 (*.f64 (-.f64 d4 (+.f64 d1 d3)) 8)) 8)
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(/.f64 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d4 (+.f64 d1 d3)) 8))) 16)
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d4 (+.f64 d1 d3)) 8)))) 32)
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d4 (+.f64 d1 d3)) 8))))) 64)
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d4 (+.f64 d1 d3)) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d4 (+.f64 d1 d3)) 8)))))) 128)
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(pow.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) 1)
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 15 to 6 computations (60% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

9 calls:

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

rewrite105.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
1388×rational.json-1
1388×rational.json-2
1388×rational.json-3
1384×exponential.json-3
1384×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
14513
210313
322313
441013
594313
6257213
7500413
8657913
Stop Event
node limit
Counts
1 → 23
Calls
Call 1
Inputs
(*.f64 (-.f64 d2 d3) d1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 d2 d3) d1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 d2 d3) d1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d3 d2) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (*.f64 d1 (-.f64 d3 d2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 d2 d3) (*.f64 d1 1/2)) (*.f64 (-.f64 d2 d3) (*.f64 d1 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 d2 d3) d1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d3 d2) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 d1 (-.f64 d3 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d3 d2) 1/2)) (*.f64 2 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d3 d2) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (-.f64 d3 d2)) (*.f64 (-.f64 d2 d3) (*.f64 d1 -2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 d2 d3) d1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 d2 d3) (+.f64 d1 d1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 d2 d3) (*.f64 d1 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 d2 d3) (*.f64 d1 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 d2 d3) (*.f64 d1 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 d2 d3) (*.f64 d1 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d3 d2) 1/2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (-.f64 d3 d2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 d2 d3) (*.f64 d1 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 d2 d3) (*.f64 d1 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 d2 d3) d1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d3 d2) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 d1 (-.f64 d3 d2)))))))

simplify187.0ms (1.2%)

Algorithm
egg-herbie
Rules
2448×rational.json-simplify-2
1650×rational.json-simplify-35
1110×rational.json-simplify-43
938×rational.json-simplify-52
850×rational.json-simplify-1
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
068833
1169683
2339677
3751677
42544677
54291677
64962677
75289677
85532677
95818677
106993677
Stop Event
node limit
Counts
47 → 34
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 (-.f64 d2 d3) d1) 0)
(+.f64 0 (*.f64 (-.f64 d2 d3) d1))
(+.f64 -1 (-.f64 1 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d3 d2) 1/2))))
(+.f64 -1 (-.f64 1 (*.f64 d1 (-.f64 d3 d2))))
(+.f64 (*.f64 (-.f64 d2 d3) (*.f64 d1 1/2)) (*.f64 (-.f64 d2 d3) (*.f64 d1 1/2)))
(-.f64 (*.f64 (-.f64 d2 d3) d1) 0)
(-.f64 0 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d3 d2) 1/2)))
(-.f64 0 (*.f64 d1 (-.f64 d3 d2)))
(-.f64 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d3 d2) 1/2)) (*.f64 2 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d3 d2) 1/2))))
(-.f64 (*.f64 d1 (-.f64 d3 d2)) (*.f64 (-.f64 d2 d3) (*.f64 d1 -2)))
(/.f64 (*.f64 (-.f64 d2 d3) d1) 1)
(/.f64 (*.f64 (-.f64 d2 d3) (+.f64 d1 d1)) 2)
(/.f64 (*.f64 (-.f64 d2 d3) (*.f64 d1 4)) 4)
(/.f64 (*.f64 (-.f64 d2 d3) (*.f64 d1 8)) 8)
(/.f64 (*.f64 2 (*.f64 (-.f64 d2 d3) (*.f64 d1 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 d2 d3) (*.f64 d1 8)))) 32)
(/.f64 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d3 d2) 1/2)) -1)
(/.f64 (*.f64 d1 (-.f64 d3 d2)) -1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 d2 d3) (*.f64 d1 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 d2 d3) (*.f64 d1 8)))))) 128)
(pow.f64 (*.f64 (-.f64 d2 d3) d1) 1)
(neg.f64 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d3 d2) 1/2)))
(neg.f64 (*.f64 d1 (-.f64 d3 d2)))
Outputs
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 (-.f64 d2 d3) d1) 0)
(*.f64 d1 (-.f64 d2 d3))
(+.f64 0 (*.f64 (-.f64 d2 d3) d1))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 -1 (-.f64 1 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d3 d2) 1/2))))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 -1 (-.f64 1 (*.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 (-.f64 d2 d3) (*.f64 d1 1/2)) (*.f64 (-.f64 d2 d3) (*.f64 d1 1/2)))
(*.f64 d1 (-.f64 d2 d3))
(-.f64 (*.f64 (-.f64 d2 d3) d1) 0)
(*.f64 d1 (-.f64 d2 d3))
(-.f64 0 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d3 d2) 1/2)))
(*.f64 d1 (-.f64 d2 d3))
(-.f64 0 (*.f64 d1 (-.f64 d3 d2)))
(*.f64 d1 (-.f64 d2 d3))
(-.f64 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d3 d2) 1/2)) (*.f64 2 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d3 d2) 1/2))))
(*.f64 d1 (-.f64 d2 d3))
(-.f64 (*.f64 d1 (-.f64 d3 d2)) (*.f64 (-.f64 d2 d3) (*.f64 d1 -2)))
(-.f64 (*.f64 d1 (-.f64 d3 d2)) (*.f64 d1 (*.f64 -2 (-.f64 d2 d3))))
(-.f64 (*.f64 d1 (-.f64 d3 d2)) (*.f64 d1 (*.f64 (-.f64 d2 d3) -2)))
(*.f64 d1 (-.f64 (-.f64 d3 d2) (*.f64 (-.f64 d2 d3) -2)))
(/.f64 (*.f64 (-.f64 d2 d3) d1) 1)
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 (-.f64 d2 d3) (+.f64 d1 d1)) 2)
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 (-.f64 d2 d3) (*.f64 d1 4)) 4)
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 (-.f64 d2 d3) (*.f64 d1 8)) 8)
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 2 (*.f64 (-.f64 d2 d3) (*.f64 d1 8))) 16)
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 d2 d3) (*.f64 d1 8)))) 32)
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d3 d2) 1/2)) -1)
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 d1 (-.f64 d3 d2)) -1)
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 d2 d3) (*.f64 d1 8))))) 64)
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 d2 d3) (*.f64 d1 8)))))) 128)
(*.f64 d1 (-.f64 d2 d3))
(pow.f64 (*.f64 (-.f64 d2 d3) d1) 1)
(*.f64 d1 (-.f64 d2 d3))
(neg.f64 (*.f64 (+.f64 d1 d1) (*.f64 (-.f64 d3 d2) 1/2)))
(*.f64 d1 (-.f64 d2 d3))
(neg.f64 (*.f64 d1 (-.f64 d3 d2)))
(*.f64 d1 (-.f64 d2 d3))

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 25 to 8 computations (68% saved)

series1.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite192.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
1482×rational.json-1
1482×rational.json-2
1482×rational.json-3
1406×exponential.json-3
1406×rational.json-4
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01023
16923
215417
334917
475117
5190117
6388017
7590517
8742917
9768717
10793917
Stop Event
node limit
Counts
1 → 33
Calls
Call 1
Inputs
(+.f64 (*.f64 d2 d1) (neg.f64 (*.f64 d1 d3)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 d2 d1) (-.f64 1 (*.f64 d1 d3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (+.f64 d2 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 d1 (+.f64 d2 (neg.f64 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 d1 (/.f64 (+.f64 d2 (neg.f64 d3)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 d2 (*.f64 d1 1/2)) (*.f64 d1 (*.f64 d3 -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 (+.f64 d2 (neg.f64 d3)) 1/2) d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (*.f64 2 (+.f64 d2 (neg.f64 d3)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (*.f64 (+.f64 d2 (neg.f64 d3)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (+.f64 (*.f64 d2 1/2) (*.f64 d3 -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (*.f64 d2 1/2) (*.f64 d3 -1/2)) (*.f64 d1 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (*.f64 4 (+.f64 d2 (neg.f64 d3)))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d2 (neg.f64 d3)) d1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 d2 (neg.f64 d3))) (*.f64 d1 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 d2 (neg.f64 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 d2 (+.f64 d1 d1)) (*.f64 d1 (*.f64 d3 -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 d2 (neg.f64 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d2 d2) (*.f64 d3 -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (/.f64 (+.f64 d2 (neg.f64 d3)) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 d2 (neg.f64 d3)) 1/2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 d1 (*.f64 4 (+.f64 d2 (neg.f64 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 d2 d2) (*.f64 d3 -2)) (*.f64 d1 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 2 (+.f64 d2 (neg.f64 d3)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 4 (+.f64 d2 (neg.f64 d3)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) 1)))))

simplify211.0ms (1.4%)

Algorithm
egg-herbie
Rules
2108×rational.json-simplify-2
1440×rational.json-simplify-35
1430×rational.json-simplify-1
946×rational.json-simplify-41
904×rational.json-simplify-48
Iterations

Useful iterations: 8 (0.0ms)

IterNodesCost
0951559
12221187
24681187
314921187
430761187
545261187
653911187
757601187
86156951
96816951
107391951
Stop Event
node limit
Counts
69 → 47
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) 0)
(-.f64 (+.f64 (*.f64 d2 d1) (-.f64 1 (*.f64 d1 d3))) 1)
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) 1)
(*.f64 1 (*.f64 d1 (+.f64 d2 (neg.f64 d3))))
(*.f64 2 (*.f64 d1 (/.f64 (+.f64 d2 (neg.f64 d3)) 2)))
(*.f64 2 (+.f64 (*.f64 d2 (*.f64 d1 1/2)) (*.f64 d1 (*.f64 d3 -1/2))))
(*.f64 2 (*.f64 (*.f64 (+.f64 d2 (neg.f64 d3)) 1/2) d1))
(*.f64 (*.f64 d1 (*.f64 2 (+.f64 d2 (neg.f64 d3)))) 1/2)
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 d2 (neg.f64 d3)) 1/2))
(*.f64 (+.f64 d1 d1) (+.f64 (*.f64 d2 1/2) (*.f64 d3 -1/2)))
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) 4))
(*.f64 4 (*.f64 (+.f64 (*.f64 d2 1/2) (*.f64 d3 -1/2)) (*.f64 d1 1/2)))
(*.f64 (*.f64 d1 (*.f64 4 (+.f64 d2 (neg.f64 d3)))) 1/4)
(*.f64 (+.f64 d2 (neg.f64 d3)) d1)
(*.f64 (*.f64 2 (+.f64 d2 (neg.f64 d3))) (*.f64 d1 1/2))
(*.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 d2 (neg.f64 d3)))))
(*.f64 1/2 (+.f64 (*.f64 d2 (+.f64 d1 d1)) (*.f64 d1 (*.f64 d3 -2))))
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 d2 (neg.f64 d3))))
(*.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d2 d2) (*.f64 d3 -2)))
(*.f64 (*.f64 d1 (/.f64 (+.f64 d2 (neg.f64 d3)) 2)) 2)
(*.f64 (*.f64 (+.f64 d2 (neg.f64 d3)) 1/2) (+.f64 d1 d1))
(*.f64 1/4 (*.f64 d1 (*.f64 4 (+.f64 d2 (neg.f64 d3)))))
(*.f64 (/.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) 4) 4)
(*.f64 (+.f64 (+.f64 d2 d2) (*.f64 d3 -2)) (*.f64 d1 1/2))
(/.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) 1)
(/.f64 (*.f64 d1 (*.f64 2 (+.f64 d2 (neg.f64 d3)))) 2)
(/.f64 (*.f64 d1 (*.f64 4 (+.f64 d2 (neg.f64 d3)))) 4)
(/.f64 (*.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) 8)))) 64)
(pow.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) 1)
Outputs
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(-.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) 0)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(-.f64 (+.f64 (*.f64 d2 d1) (-.f64 1 (*.f64 d1 d3))) 1)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) 1)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 1 (*.f64 d1 (+.f64 d2 (neg.f64 d3))))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 2 (*.f64 d1 (/.f64 (+.f64 d2 (neg.f64 d3)) 2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 2 (+.f64 (*.f64 d2 (*.f64 d1 1/2)) (*.f64 d1 (*.f64 d3 -1/2))))
(*.f64 2 (*.f64 d1 (+.f64 (*.f64 d3 -1/2) (*.f64 d2 1/2))))
(*.f64 d1 (*.f64 (+.f64 (*.f64 d3 -1/2) (*.f64 d2 1/2)) 2))
(*.f64 d1 (*.f64 2 (+.f64 (*.f64 d3 -1/2) (*.f64 d2 1/2))))
(*.f64 2 (*.f64 (*.f64 (+.f64 d2 (neg.f64 d3)) 1/2) d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (*.f64 d1 (*.f64 2 (+.f64 d2 (neg.f64 d3)))) 1/2)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 d2 (neg.f64 d3)) 1/2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (+.f64 d1 d1) (+.f64 (*.f64 d2 1/2) (*.f64 d3 -1/2)))
(*.f64 2 (+.f64 (*.f64 d2 (*.f64 d1 1/2)) (*.f64 d1 (*.f64 d3 -1/2))))
(*.f64 2 (*.f64 d1 (+.f64 (*.f64 d3 -1/2) (*.f64 d2 1/2))))
(*.f64 d1 (*.f64 (+.f64 (*.f64 d3 -1/2) (*.f64 d2 1/2)) 2))
(*.f64 d1 (*.f64 2 (+.f64 (*.f64 d3 -1/2) (*.f64 d2 1/2))))
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) 4))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 4 (*.f64 (+.f64 (*.f64 d2 1/2) (*.f64 d3 -1/2)) (*.f64 d1 1/2)))
(*.f64 2 (+.f64 (*.f64 d2 (*.f64 d1 1/2)) (*.f64 d1 (*.f64 d3 -1/2))))
(*.f64 2 (*.f64 d1 (+.f64 (*.f64 d3 -1/2) (*.f64 d2 1/2))))
(*.f64 d1 (*.f64 (+.f64 (*.f64 d3 -1/2) (*.f64 d2 1/2)) 2))
(*.f64 d1 (*.f64 2 (+.f64 (*.f64 d3 -1/2) (*.f64 d2 1/2))))
(*.f64 (*.f64 d1 (*.f64 4 (+.f64 d2 (neg.f64 d3)))) 1/4)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (+.f64 d2 (neg.f64 d3)) d1)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (*.f64 2 (+.f64 d2 (neg.f64 d3))) (*.f64 d1 1/2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 d2 (neg.f64 d3)))))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 1/2 (+.f64 (*.f64 d2 (+.f64 d1 d1)) (*.f64 d1 (*.f64 d3 -2))))
(*.f64 1/2 (+.f64 (*.f64 d2 (+.f64 d1 d1)) (*.f64 -2 (*.f64 d1 d3))))
(*.f64 1/2 (+.f64 (*.f64 d2 (+.f64 d1 d1)) (*.f64 (*.f64 d1 d3) -2)))
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 d2 (neg.f64 d3))))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d2 d2) (*.f64 d3 -2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (*.f64 d1 (/.f64 (+.f64 d2 (neg.f64 d3)) 2)) 2)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (*.f64 (+.f64 d2 (neg.f64 d3)) 1/2) (+.f64 d1 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 1/4 (*.f64 d1 (*.f64 4 (+.f64 d2 (neg.f64 d3)))))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (/.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) 4) 4)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (+.f64 (+.f64 d2 d2) (*.f64 d3 -2)) (*.f64 d1 1/2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) 1)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 d1 (*.f64 2 (+.f64 d2 (neg.f64 d3)))) 2)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 d1 (*.f64 4 (+.f64 d2 (neg.f64 d3)))) 4)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) 8) 8)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) 8)) 16)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) 8))) 32)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) 8)))) 64)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))
(pow.f64 (*.f64 d1 (+.f64 d2 (neg.f64 d3))) 1)
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (-.f64 d2 d3))

eval20.0ms (0.1%)

Compiler

Compiled 1179 to 521 computations (55.8% saved)

prune715.0ms (4.6%)

Pruning

10 alts after pruning (1 fresh and 9 done)

PrunedKeptTotal
New1241125
Fresh000
Picked011
Done189
Total12510135
Error
0b
Counts
135 → 10
Alt Table
Click to see full alt table
StatusErrorProgram
34.0b
(-.f64 (*.f64 d2 d1) (*.f64 d1 d1))
24.8b
(+.f64 (*.f64 d2 d1) (neg.f64 (*.f64 d1 d3)))
27.0b
(*.f64 (-.f64 d4 d3) d1)
24.8b
(*.f64 (-.f64 d2 d3) d1)
34.0b
(*.f64 (-.f64 d2 d1) d1)
43.6b
(*.f64 d3 (neg.f64 d1))
42.0b
(*.f64 d2 d1)
36.0b
(*.f64 d1 (-.f64 d4 d1))
25.2b
(*.f64 d1 (+.f64 d2 d4))
43.8b
(*.f64 d1 d4)
Compiler

Compiled 90 to 61 computations (32.2% saved)

regimes56.0ms (0.4%)

Counts
18 → 1
Calls
Call 1
Inputs
(*.f64 d1 d4)
(*.f64 d2 d1)
(*.f64 d3 (neg.f64 d1))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 (-.f64 d2 d1) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d4 d3) d1)
(*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 (-.f64 d2 (+.f64 d1 d3)) d1)
(-.f64 (*.f64 d2 d1) (*.f64 d1 d1))
(+.f64 (*.f64 d2 d1) (neg.f64 (*.f64 d1 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(+.f64 (*.f64 d1 (-.f64 d2 d1)) (neg.f64 (*.f64 d1 d3)))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 (-.f64 d4 d1)))
(-.f64 (-.f64 (*.f64 d2 d1) (*.f64 d1 d3)) (*.f64 d1 d1))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
Outputs
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
Calls

5 calls:

13.0ms
d4
11.0ms
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
10.0ms
d2
10.0ms
d1
9.0ms
d3
Results
ErrorSegmentsBranch
0.0b1d1
0.0b1d2
0.0b1d3
0.0b1d4
0.0b1(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
Compiler

Compiled 170 to 70 computations (58.8% saved)

regimes205.0ms (1.3%)

Counts
13 → 4
Calls
Call 1
Inputs
(*.f64 d1 d4)
(*.f64 d2 d1)
(*.f64 d3 (neg.f64 d1))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 (-.f64 d2 d1) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d4 d3) d1)
(*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 (-.f64 d2 (+.f64 d1 d3)) d1)
(-.f64 (*.f64 d2 d1) (*.f64 d1 d1))
(+.f64 (*.f64 d2 d1) (neg.f64 (*.f64 d1 d3)))
Outputs
(*.f64 (-.f64 d2 (+.f64 d1 d3)) d1)
(*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))
Calls

4 calls:

133.0ms
d1
34.0ms
d4
21.0ms
d3
14.0ms
d2
Results
ErrorSegmentsBranch
8.7b9d1
3.4b2d2
5.8b3d3
3.0b4d4
Compiler

Compiled 95 to 46 computations (51.6% saved)

bsearch41.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
13.0ms
1.9589331986278994e+114
3.289264222750763e+116
14.0ms
1.0428134109947384e+80
1.3398559250491456e+82
13.0ms
907820220614.1705
29521774360678.367
Results
37.0ms336×body256valid
Compiler

Compiled 530 to 353 computations (33.4% saved)

regimes231.0ms (1.5%)

Counts
10 → 2
Calls
Call 1
Inputs
(*.f64 d1 d4)
(*.f64 d2 d1)
(*.f64 d3 (neg.f64 d1))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 (-.f64 d2 d1) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d4 d3) d1)
(*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
Outputs
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))
Calls

4 calls:

81.0ms
d1
73.0ms
d3
63.0ms
d4
11.0ms
d2
Results
ErrorSegmentsBranch
10.0b6d1
5.3b2d2
7.3b3d3
7.4b6d4
Compiler

Compiled 73 to 39 computations (46.6% saved)

bsearch15.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
15.0ms
-5.436228413756758e+21
-213579747506923940.0
Results
14.0ms128×body256valid
Compiler

Compiled 202 to 137 computations (32.2% saved)

regimes298.0ms (1.9%)

Counts
8 → 4
Calls
Call 1
Inputs
(*.f64 d1 d4)
(*.f64 d2 d1)
(*.f64 d3 (neg.f64 d1))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 (-.f64 d2 d1) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d4 d3) d1)
Outputs
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d4 d3) d1)
(*.f64 d1 (+.f64 d2 d4))
(*.f64 (-.f64 d4 d3) d1)
Calls

4 calls:

119.0ms
d1
84.0ms
d4
70.0ms
d2
24.0ms
d3
Results
ErrorSegmentsBranch
12.0b10d1
11.3b2d2
12.4b5d3
10.9b4d4
Compiler

Compiled 59 to 34 computations (42.4% saved)

bsearch53.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
13.0ms
1.9589331986278994e+114
3.289264222750763e+116
27.0ms
1.0428134109947384e+80
1.3398559250491456e+82
13.0ms
907820220614.1705
29521774360678.367
Results
49.0ms336×body256valid
Compiler

Compiled 446 to 311 computations (30.3% saved)

regimes192.0ms (1.2%)

Counts
7 → 2
Calls
Call 1
Inputs
(*.f64 d1 d4)
(*.f64 d2 d1)
(*.f64 d3 (neg.f64 d1))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 (-.f64 d2 d1) d1)
(*.f64 (-.f64 d2 d3) d1)
Outputs
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (+.f64 d2 d4))
Calls

4 calls:

85.0ms
d2
60.0ms
d1
27.0ms
d3
18.0ms
d4
Results
ErrorSegmentsBranch
13.1b10d1
16.2b2d2
12.6b5d3
12.2b2d4
Compiler

Compiled 54 to 32 computations (40.7% saved)

bsearch13.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
13.0ms
1.7184153182020282e+66
4.194288116840027e+66
Results
12.0ms80×body256valid
Compiler

Compiled 126 to 87 computations (31% saved)

regimes159.0ms (1%)

Counts
6 → 7
Calls
Call 1
Inputs
(*.f64 d1 d4)
(*.f64 d2 d1)
(*.f64 d3 (neg.f64 d1))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 (-.f64 d2 d1) d1)
Outputs
(*.f64 (-.f64 d2 d1) d1)
(*.f64 d3 (neg.f64 d1))
(*.f64 (-.f64 d2 d1) d1)
(*.f64 d3 (neg.f64 d1))
(*.f64 (-.f64 d2 d1) d1)
(*.f64 d3 (neg.f64 d1))
(*.f64 d1 (+.f64 d2 d4))
Calls

4 calls:

69.0ms
d4
36.0ms
d3
32.0ms
d1
20.0ms
d2
Results
ErrorSegmentsBranch
17.6b7d1
17.6b4d2
15.5b7d3
15.3b7d4
Compiler

Compiled 49 to 30 computations (38.8% saved)

bsearch87.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
10.0ms
1.7184153182020282e+66
4.194288116840027e+66
21.0ms
9194920929784034.0
1.722787890607787e+32
7.0ms
1.65924894067769e-65
3.074186200458904e-65
16.0ms
5.35511576229485e-174
6.645939220657509e-170
14.0ms
3.553384246835752e-279
4.2727309572688945e-278
18.0ms
1.5536697776443293e-306
1.7325124404355505e-300
Results
78.0ms672×body256valid
Compiler

Compiled 824 to 605 computations (26.6% saved)

regimes105.0ms (0.7%)

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

4 calls:

46.0ms
d4
30.0ms
d1
18.0ms
d3
8.0ms
d2
Results
ErrorSegmentsBranch
18.5b7d1
19.4b2d2
17.8b3d3
19.5b8d4
Compiler

Compiled 44 to 28 computations (36.4% saved)

bsearch29.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
14.0ms
9.721442572819997e+55
3.022382630086803e+57
15.0ms
-3.526674942480903e+136
-3.268001167669983e+134
Results
27.0ms224×body256valid
Compiler

Compiled 292 to 213 computations (27.1% saved)

regimes106.0ms (0.7%)

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

4 calls:

40.0ms
d1
25.0ms
d3
23.0ms
d2
16.0ms
d4
Results
ErrorSegmentsBranch
32.3b10d1
23.1b7d2
29.8b5d3
24.3b5d4
Compiler

Compiled 34 to 24 computations (29.4% saved)

bsearch79.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
9.0ms
4.35090142907637e-265
1.4998998513620971e-264
15.0ms
-1.2378369099837589e-211
-3.3971052588210635e-213
16.0ms
-2.8373890848090047e-188
-1.6672001674573692e-192
14.0ms
-2.8144005164819497e-5
-7.666349018281986e-7
19.0ms
-1.94180986887534e+68
-7.142049943877213e+56
6.0ms
-9.721005385008198e+127
-8.0515455589033055e+127
Results
72.0ms640×body256valid
Compiler

Compiled 706 to 537 computations (23.9% saved)

regimes58.0ms (0.4%)

Accuracy

Total -32.3b remaining (-114.7%)

Threshold costs -32.3b (-114.7%)

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

4 calls:

26.0ms
d1
12.0ms
d3
12.0ms
d4
7.0ms
d2
Results
ErrorSegmentsBranch
35.7b9d1
28.3b2d2
40.1b3d3
28.1b4d4
Compiler

Compiled 30 to 22 computations (26.7% saved)

bsearch181.0ms (1.2%)

Algorithm
binary-search
Steps
TimeLeftRight
8.0ms
3.289264222750763e+116
6.202465797178196e+116
160.0ms
1.0428134109947384e+80
1.3398559250491456e+82
13.0ms
907820220614.1705
29521774360678.367
Results
178.0ms288×body256valid
Compiler

Compiled 314 to 233 computations (25.8% saved)

simplify516.0ms (3.3%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0105652
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(if (<=.f64 d4 15000000000000) (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (if (<=.f64 d4 184999999999999998074622780925032211008231423116400890852261119528660217976848384) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (if (<=.f64 d4 7000000000000000108915912906267901169877409778447430033588394063015836468153289922854897729405332133733443966074880) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))))
(if (<=.f64 d2 -4800000000000000000000) (*.f64 (-.f64 d2 d3) d1) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))
(if (<=.f64 d4 29000000000000) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d4 119999999999999989500702670794322062053080113050397739028248832889276585268477952) (*.f64 (-.f64 d4 d3) d1) (if (<=.f64 d4 66000000000000001026921464544811639601701292196790054602404858308435029556873876415489035734393131546629614537277440) (*.f64 d1 (+.f64 d2 d4)) (*.f64 (-.f64 d4 d3) d1))))
(if (<=.f64 d4 1950000000000000183340475889533656966744881622451984552835407675392) (*.f64 (-.f64 d2 d3) d1) (*.f64 d1 (+.f64 d2 d4)))
(if (<=.f64 d4 5127248624301375/3016028602530220424421062271578867838525126125874252890898307532480811172246863646685486789069132871854112712507200418582406770249989531589552959798883475511096677545853948017425342019529539590198394174553047792145043723038206885734470238620775335376572758801465612196212014773714996912064944617579072807182486470656) (*.f64 (-.f64 d2 d1) d1) (if (<=.f64 d4 2299208036583997/638668899051110339730039268171788341141584403339346413280815117579907805398068501051186548957643424348589582990141598478071180156285949971436534975451146054502401815344347416485612070862196155898449074158254055677865859345638678524444433685903374130402278690200241933325554718473710083176923136) (*.f64 d3 (neg.f64 d1)) (if (<=.f64 d4 8838136200471005/135971326161092377264534580877431968596375838138120172339057699379303311324378174141225600579898697131235668348479104259928724310439093053288837114564246362097620805333860664072122400768) (*.f64 (-.f64 d2 d1) d1) (if (<=.f64 d4 281606361025153/14821387422376473014217086081112052205218558037201992197050570753012880593911808) (*.f64 d3 (neg.f64 d1)) (if (<=.f64 d4 95000000000000007800013870596096) (*.f64 (-.f64 d2 d1) d1) (if (<=.f64 d4 1749999999999999857546031874844135587473966850616127239175381450752) (*.f64 d3 (neg.f64 d1)) (*.f64 d1 (+.f64 d2 d4))))))))
(if (<=.f64 d3 -7800000000000000638337169372660894685174735474050728625792502063543306552748131133259058320388770624122318422778114050027127678913478656) (*.f64 d3 (neg.f64 d1)) (if (<=.f64 d3 2600000000000000021166656382327217573625147196276142505984) (*.f64 d1 (+.f64 d2 d4)) (*.f64 d3 (neg.f64 d1))))
(if (<=.f64 d2 -80999999999999996469503021196353997389873229763420601161319916962500849527571812181899662319482216442378444974134447013655216128) (*.f64 d2 d1) (if (<=.f64 d2 -1360000000000000023937604029908057927859145229195421564272640) (*.f64 d3 (neg.f64 d1)) (if (<=.f64 d2 -5312662293228351/590295810358705651712) (*.f64 d2 d1) (if (<=.f64 d2 -3009873906067871/10032913020226237310869197622070557910061530690809581488606035047662224110216294903018315384440590765432325303757053790498770584583633048750167493382743608188543746320969475933440520778435368952314936164352) (*.f64 d3 (neg.f64 d1)) (if (<=.f64 d2 -4245166658634751/379032737378102767370356320425415662904513187772631008578870126471203845870697482014374611530431269030880793627229265919475483409207718357286202948008100864063587640630090308972232735749901964068667724412528434753635948938919936) (*.f64 d1 d4) (if (<=.f64 d2 4084213920990005/9076030935533343889148330677184451660957398691768765008885326289770145612551296225251271450782204288267814476258502032778653474399077793626653018683486295323382390383590453332169716856898789897889643528945016096228440849041002686084943230837088977557446564364344140092918489677824) (*.f64 d3 (neg.f64 d1)) (*.f64 d1 d4)))))))
(if (<=.f64 d4 29000000000000) (*.f64 d2 d1) (if (<=.f64 d4 619999999999999976469715535766510107500338658497597744657021795088086473061171200) (*.f64 d1 d4) (if (<=.f64 d4 340000000000000022788207282282822023231206291894131810171077444492182977002181790389719026166123517998015551679496192) (*.f64 d2 d1) (*.f64 d1 d4))))
(*.f64 d1 d4)
Outputs
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(if (<=.f64 d4 15000000000000) (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (if (<=.f64 d4 184999999999999998074622780925032211008231423116400890852261119528660217976848384) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (if (<=.f64 d4 7000000000000000108915912906267901169877409778447430033588394063015836468153289922854897729405332133733443966074880) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))))
(if (<=.f64 d2 -4800000000000000000000) (*.f64 (-.f64 d2 d3) d1) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))
(if (<=.f64 d4 29000000000000) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d4 119999999999999989500702670794322062053080113050397739028248832889276585268477952) (*.f64 (-.f64 d4 d3) d1) (if (<=.f64 d4 66000000000000001026921464544811639601701292196790054602404858308435029556873876415489035734393131546629614537277440) (*.f64 d1 (+.f64 d2 d4)) (*.f64 (-.f64 d4 d3) d1))))
(if (<=.f64 d4 1950000000000000183340475889533656966744881622451984552835407675392) (*.f64 (-.f64 d2 d3) d1) (*.f64 d1 (+.f64 d2 d4)))
(if (<=.f64 d4 5127248624301375/3016028602530220424421062271578867838525126125874252890898307532480811172246863646685486789069132871854112712507200418582406770249989531589552959798883475511096677545853948017425342019529539590198394174553047792145043723038206885734470238620775335376572758801465612196212014773714996912064944617579072807182486470656) (*.f64 (-.f64 d2 d1) d1) (if (<=.f64 d4 2299208036583997/638668899051110339730039268171788341141584403339346413280815117579907805398068501051186548957643424348589582990141598478071180156285949971436534975451146054502401815344347416485612070862196155898449074158254055677865859345638678524444433685903374130402278690200241933325554718473710083176923136) (*.f64 d3 (neg.f64 d1)) (if (<=.f64 d4 8838136200471005/135971326161092377264534580877431968596375838138120172339057699379303311324378174141225600579898697131235668348479104259928724310439093053288837114564246362097620805333860664072122400768) (*.f64 (-.f64 d2 d1) d1) (if (<=.f64 d4 281606361025153/14821387422376473014217086081112052205218558037201992197050570753012880593911808) (*.f64 d3 (neg.f64 d1)) (if (<=.f64 d4 95000000000000007800013870596096) (*.f64 (-.f64 d2 d1) d1) (if (<=.f64 d4 1749999999999999857546031874844135587473966850616127239175381450752) (*.f64 d3 (neg.f64 d1)) (*.f64 d1 (+.f64 d2 d4))))))))
(if (<=.f64 d3 -7800000000000000638337169372660894685174735474050728625792502063543306552748131133259058320388770624122318422778114050027127678913478656) (*.f64 d3 (neg.f64 d1)) (if (<=.f64 d3 2600000000000000021166656382327217573625147196276142505984) (*.f64 d1 (+.f64 d2 d4)) (*.f64 d3 (neg.f64 d1))))
(if (<=.f64 d2 -80999999999999996469503021196353997389873229763420601161319916962500849527571812181899662319482216442378444974134447013655216128) (*.f64 d2 d1) (if (<=.f64 d2 -1360000000000000023937604029908057927859145229195421564272640) (*.f64 d3 (neg.f64 d1)) (if (<=.f64 d2 -5312662293228351/590295810358705651712) (*.f64 d2 d1) (if (<=.f64 d2 -3009873906067871/10032913020226237310869197622070557910061530690809581488606035047662224110216294903018315384440590765432325303757053790498770584583633048750167493382743608188543746320969475933440520778435368952314936164352) (*.f64 d3 (neg.f64 d1)) (if (<=.f64 d2 -4245166658634751/379032737378102767370356320425415662904513187772631008578870126471203845870697482014374611530431269030880793627229265919475483409207718357286202948008100864063587640630090308972232735749901964068667724412528434753635948938919936) (*.f64 d1 d4) (if (<=.f64 d2 4084213920990005/9076030935533343889148330677184451660957398691768765008885326289770145612551296225251271450782204288267814476258502032778653474399077793626653018683486295323382390383590453332169716856898789897889643528945016096228440849041002686084943230837088977557446564364344140092918489677824) (*.f64 d3 (neg.f64 d1)) (*.f64 d1 d4)))))))
(if (<=.f64 d4 29000000000000) (*.f64 d2 d1) (if (<=.f64 d4 619999999999999976469715535766510107500338658497597744657021795088086473061171200) (*.f64 d1 d4) (if (<=.f64 d4 340000000000000022788207282282822023231206291894131810171077444492182977002181790389719026166123517998015551679496192) (*.f64 d2 d1) (*.f64 d1 d4))))
(*.f64 d1 d4)
Compiler

Compiled 303 to 159 computations (47.5% saved)

soundness196.0ms (1.3%)

Algorithm
egg-herbie
Rules
1812×rational.json-simplify-35
1346×rational.json-simplify-53
982×rational.json-simplify-39
864×rational.json-simplify-59
640×rational.json-simplify-1
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01343
12137
23231
36025
422125
5199525
6593925
7776125
Stop Event
node limit
Compiler

Compiled 76 to 27 computations (64.5% saved)

end354.0ms (2.3%)

Remove

(sort d2 d4)

Compiler

Compiled 293 to 117 computations (60.1% saved)

Profiling

Loading profile data...