Details

Time bar (total: 18.9s)

analyze361.0ms (1.9%)

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)

sample2.0s (10.4%)

Results
1.4s8256×body256valid
583.0ms3685×body256infinite
Bogosity

preprocess96.0ms (0.5%)

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)

simplify139.0ms (0.7%)

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

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New235
Fresh101
Picked000
Done000
Total336
Error
0.0b
Counts
6 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (-.f64 (*.f64 d1 d4) (*.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 45 to 27 computations (40% saved)

localize9.0ms (0%)

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)

series4.0ms (0%)

Counts
1 → 48
Calls

12 calls:

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

rewrite828.0ms (4.4%)

Algorithm
batch-egg-rewrite
Rules
1830×bool.json-1
1830×bool.json-2
1182×bool.json-3
900×exponential.json-3
900×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01025
110725
228425
360925
4129725
5299925
6689325
Stop Event
node limit
Counts
1 → 11
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 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) (*.f64 d1 1/2)) (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) (*.f64 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 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 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))))))))

simplify1.7s (9.1%)

Algorithm
egg-herbie
Rules
4868×rational.json-simplify-35
2366×rational.json-simplify-2
956×rational.json-simplify-53
832×exponential.json-simplify-26
764×rational.json-simplify-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0611601
11291449
22401449
34891449
417201449
534511449
642081449
745641449
847511449
949111449
1050671449
1157221449
1258001449
1358651449
1459731449
1560471449
1661181449
1763341449
1864911449
1966481449
2068051449
2169621449
2271191449
2372761449
2474331449
2574331449
2674351449
2774351449
2875921449
2977491449
3079061449
Stop Event
node limit
Counts
59 → 42
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 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) (*.f64 d1 1/2)) (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) (*.f64 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 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 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 8))) 32)
(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 (*.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 (+.f64 d2 d4) 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 (+.f64 d2 d4) 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 (+.f64 d2 d4) 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 (+.f64 d2 d4) 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 (+.f64 d2 d4) 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 (+.f64 d2 d4) 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 (+.f64 d2 d4) 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 (+.f64 d2 d4) 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 (+.f64 d2 d4) 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 d2 (-.f64 d4 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(+.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)) (*.f64 d1 (*.f64 d3 -1)))
(*.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 (+.f64 d2 d4) d1)) (*.f64 d1 (*.f64 d3 -1)))
(*.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 (+.f64 d2 d4) d1)) (*.f64 d1 (*.f64 d3 -1)))
(*.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 (*.f64 d3 -1))
(*.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 (+.f64 d2 d4) d1)) (*.f64 d1 (*.f64 d3 -1)))
(*.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 (+.f64 d2 d4) d1)) (*.f64 d1 (*.f64 d3 -1)))
(*.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 (+.f64 d2 d4) d1)) (*.f64 d1 (*.f64 d3 -1)))
(*.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 (*.f64 d3 -1))
(*.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 (+.f64 d2 d4) d1)) (*.f64 d1 (*.f64 d3 -1)))
(*.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 (+.f64 d2 d4) d1)) (*.f64 d1 (*.f64 d3 -1)))
(*.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 (+.f64 d2 d4) d1)) (*.f64 d1 (*.f64 d3 -1)))
(*.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 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 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 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 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 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 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 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 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 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 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) (*.f64 d1 1/2)) (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) (*.f64 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 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 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 8))) 32)
(*.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)))

localize10.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 35 to 9 computations (74.3% saved)

series6.0ms (0%)

Counts
2 → 72
Calls

18 calls:

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

rewrite136.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
1792×bool.json-1
1792×bool.json-2
1108×bool.json-3
978×exponential.json-3
978×rational.json-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01144
111838
231038
367738
4143838
5332738
6708438
Stop Event
node limit
Counts
2 → 37
Calls
Call 1
Inputs
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (-.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 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 (*.f64 d1 (*.f64 2 (+.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)) 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 (-.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 (*.f64 (*.f64 d1 (+.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 d1 (*.f64 2 (+.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)) 2)) 2)))) (#(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 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 1/2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (*.f64 d1 (+.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 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 2 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))) 2)))) (#(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 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))))))))
((#(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 d1 (-.f64 d1 d4))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 (-.f64 d4 d1) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d4 d1) 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d4 d1) 4)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d4 d1) 4)))) (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d4 d1) 4))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (-.f64 d4 d1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 d1 (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 (-.f64 d4 d1)))))))

simplify967.0ms (5.1%)

Algorithm
egg-herbie
Rules
2088×rational.json-simplify-2
1876×rational.json-simplify-35
1658×rational.json-simplify-1
1068×rational.json-simplify-41
780×rational.json-simplify-51
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01042959
12302695
25392587
315002587
431562587
547982587
651922587
754852587
857682587
959822587
1062222587
1172762587
1276792587
Stop Event
node limit
Counts
109 → 73
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 (*.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 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 (*.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 (*.f64 d1 (*.f64 2 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))) 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 (-.f64 d2 d3) (-.f64 d4 d1)) d1)
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4))
(*.f64 (*.f64 (*.f64 d1 (+.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 d1 (*.f64 2 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))))
(*.f64 (*.f64 d1 (/.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 2)) 2)
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))))
(*.f64 (*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) 1/2) (+.f64 d1 d1))
(*.f64 1/4 (*.f64 (*.f64 d1 (+.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 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 1)
(/.f64 (*.f64 d1 (*.f64 2 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))) 2)
(/.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4) 4)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4)))) 32)
(pow.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 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 d1 (-.f64 d1 d4))) 2)
(/.f64 (*.f64 d1 (*.f64 (-.f64 d4 d1) 4)) 4)
(/.f64 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d4 d1) 4))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d4 d1) 4)))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d4 d1) 4)))) (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d4 d1) 4))))) 32)
(pow.f64 (*.f64 d1 (-.f64 d4 d1)) 1)
Outputs
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d2 (-.f64 d4 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 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) 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 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) 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 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) 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 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) 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 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) 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 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) 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 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) 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 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) 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 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) 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 d1 (-.f64 d4 d1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))
(*.f64 d1 (+.f64 d2 (+.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 d1 (-.f64 d4 d1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))
(*.f64 d1 (+.f64 d2 (+.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 d1 (-.f64 d4 d1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))
(*.f64 d1 (+.f64 d2 (+.f64 (-.f64 d4 d1) (neg.f64 d3))))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))
(*.f64 d1 (+.f64 d2 (+.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 d1 (-.f64 d4 d1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))
(*.f64 d1 (+.f64 d2 (+.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 d1 (-.f64 d4 d1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))
(*.f64 d1 (+.f64 d2 (+.f64 (-.f64 d4 d1) (neg.f64 d3))))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))
(*.f64 d1 (+.f64 d2 (+.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 d1 (-.f64 d4 d1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))
(*.f64 d1 (+.f64 d2 (+.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 d1 (-.f64 d4 d1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))
(*.f64 d1 (+.f64 d2 (+.f64 (-.f64 d4 d1) (neg.f64 d3))))
(+.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 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))
(*.f64 d1 (+.f64 d2 (+.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 d1 (-.f64 d4 d1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))
(*.f64 d1 (+.f64 d2 (+.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 d1 (-.f64 d4 d1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))
(*.f64 d1 (+.f64 d2 (+.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))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))
(*.f64 d1 (+.f64 d2 (+.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 d1 (-.f64 d4 d1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))
(*.f64 d1 (+.f64 d2 (+.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 d1 (-.f64 d4 d1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))
(*.f64 d1 (+.f64 d2 (+.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))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d1 (*.f64 d3 -1)) (+.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))
(*.f64 d1 (+.f64 d2 (+.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 d1 (-.f64 d4 d1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))
(*.f64 d1 (+.f64 d2 (+.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 d1 (-.f64 d4 d1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))
(*.f64 d1 (+.f64 d2 (+.f64 (-.f64 d4 d1) (neg.f64 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 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(+.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) 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 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) 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 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) 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 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) 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 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) 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 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) 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 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) 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 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) 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 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) 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 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(-.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 (*.f64 d1 (*.f64 2 (+.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)) 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 (-.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 (*.f64 (*.f64 d1 (+.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 d1 (*.f64 2 (+.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)) 2)) 2)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.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 (+.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 (*.f64 d1 (+.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 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 1)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(/.f64 (*.f64 d1 (*.f64 2 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))) 2)
(*.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 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4)) 8)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4))) 16)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4)))) 32)
(*.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)))
(+.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 d1 (-.f64 d1 d4))) 2)
(*.f64 d1 (-.f64 d4 d1))
(/.f64 (*.f64 d1 (*.f64 (-.f64 d4 d1) 4)) 4)
(*.f64 d1 (-.f64 d4 d1))
(/.f64 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d4 d1) 4))) 8)
(*.f64 d1 (-.f64 d4 d1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d4 d1) 4)))) 16)
(*.f64 d1 (-.f64 d4 d1))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d4 d1) 4)))) (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d4 d1) 4))))) 32)
(*.f64 d1 (-.f64 d4 d1))
(pow.f64 (*.f64 d1 (-.f64 d4 d1)) 1)
(*.f64 d1 (-.f64 d4 d1))

localize13.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 42 to 10 computations (76.2% saved)

series3.0ms (0%)

Counts
2 → 72
Calls

18 calls:

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

rewrite97.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
998×rational.json-simplify-35
848×bool.json-1
848×bool.json-2
834×exponential.json-3
834×rational.json-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01244
113238
236338
385038
4242638
5732438
Stop Event
node limit
Counts
2 → 45
Calls
Call 1
Inputs
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))
(-.f64 (*.f64 d1 d4) (*.f64 d1 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 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 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 2))))) (#(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 (-.f64 d2 d3) (-.f64 d4 d1)) d1)))) (#(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 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 2) 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 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d4) (*.f64 d1 (neg.f64 d1)))))) (#(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 (neg.f64 d1)) (*.f64 d1 d4))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 1 (*.f64 d1 (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (-.f64 1 (*.f64 d1 d1)) (*.f64 d1 d4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (*.f64 d1 (-.f64 d4 d1))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (-.f64 d4 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (-.f64 d4 d1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 d4 d1) d1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (*.f64 d1 (-.f64 d4 d1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (*.f64 (-.f64 d4 d1) 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (/.f64 (-.f64 d4 d1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (-.f64 d1 d4)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 d4 d1) 2) (/.f64 d1 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 d1 (-.f64 d1 d4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 d1 (*.f64 (-.f64 d4 d1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 d1 2) (*.f64 (-.f64 d4 d1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 d1 (-.f64 d4 d1)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 d4 d1) 2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (-.f64 d4 d1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 (-.f64 d4 d1) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (-.f64 d1 d4)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (-.f64 d4 d1)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d4 d1)) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 d1 (-.f64 d1 d4))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d4 d1)) 4)) (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d4 d1)) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (-.f64 d4 d1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 d1 (-.f64 d1 d4)))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 d1 (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 (-.f64 d4 d1)))))))

simplify477.0ms (2.5%)

Algorithm
egg-herbie
Rules
940×rational.json-simplify-59
876×rational.json-simplify-2
834×rational.json-simplify-51
830×rational.json-simplify-19
822×rational.json-simplify-1
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01172877
12512747
25722639
316142639
433112639
557172639
672672639
Stop Event
node limit
Counts
117 → 79
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 (*.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 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(*.f64 d2 d1)
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1))) (pow.f64 d1 2))
(*.f64 d2 d1)
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1))) (pow.f64 d1 2))
(*.f64 -1 (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1))) (pow.f64 d1 2))
(*.f64 -1 (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1))) (pow.f64 d1 2))
(-.f64 (*.f64 (-.f64 d2 d3) d1) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)) (pow.f64 d1 2))
(*.f64 d1 d4)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)) (pow.f64 d1 2))
(*.f64 d1 d4)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)) (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 (*.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 (*.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 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 2))
(*.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 2) 1/2)
(*.f64 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)) d1)
(*.f64 1/2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 2))
(*.f64 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 2) 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 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4) 4)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4)) 8)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4))) 16)
(pow.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 1)
(+.f64 (*.f64 d1 d4) (*.f64 d1 (neg.f64 d1)))
(+.f64 (*.f64 d1 (-.f64 d4 d1)) 0)
(+.f64 0 (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d1 (neg.f64 d1)) (*.f64 d1 d4))
(+.f64 -1 (+.f64 1 (*.f64 d1 (-.f64 d4 d1))))
(+.f64 -1 (+.f64 (-.f64 1 (*.f64 d1 d1)) (*.f64 d1 d4)))
(+.f64 (+.f64 1 (*.f64 d1 (-.f64 d4 d1))) -1)
(*.f64 d1 (-.f64 d4 d1))
(*.f64 (*.f64 d1 (-.f64 d4 d1)) 1)
(*.f64 1 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 (-.f64 d4 d1) d1)
(*.f64 2 (/.f64 (*.f64 d1 (-.f64 d4 d1)) 2))
(*.f64 (*.f64 d1 (*.f64 (-.f64 d4 d1) 2)) 1/2)
(*.f64 (+.f64 d1 d1) (/.f64 (-.f64 d4 d1) 2))
(*.f64 (*.f64 d1 (-.f64 d1 d4)) -1)
(*.f64 (*.f64 (-.f64 d4 d1) 2) (/.f64 d1 2))
(*.f64 -1 (*.f64 d1 (-.f64 d1 d4)))
(*.f64 1/2 (*.f64 d1 (*.f64 (-.f64 d4 d1) 2)))
(*.f64 (/.f64 d1 2) (*.f64 (-.f64 d4 d1) 2))
(*.f64 (/.f64 (*.f64 d1 (-.f64 d4 d1)) 2) 2)
(*.f64 (/.f64 (-.f64 d4 d1) 2) (+.f64 d1 d1))
(/.f64 (*.f64 d1 (-.f64 d4 d1)) 1)
(/.f64 (*.f64 d1 (*.f64 (-.f64 d4 d1) 2)) 2)
(/.f64 (*.f64 d1 (-.f64 d1 d4)) -1)
(/.f64 (*.f64 (*.f64 d1 (-.f64 d4 d1)) 4) 4)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d4 d1)) 4)) 8)
(/.f64 (*.f64 2 (*.f64 d1 (-.f64 d1 d4))) -2)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d4 d1)) 4)) (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d4 d1)) 4))) 16)
(pow.f64 (*.f64 d1 (-.f64 d4 d1)) 1)
(neg.f64 (*.f64 d1 (-.f64 d1 d4)))
Outputs
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d2 (-.f64 d4 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 -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 -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 -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 -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 -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 -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 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 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1)) (*.f64 -1 (pow.f64 d1 2)))
(+.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 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1)) (*.f64 -1 (pow.f64 d1 2)))
(+.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 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d1 (*.f64 d3 -1)) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d4 (neg.f64 d3))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (-.f64 (*.f64 d1 (*.f64 d3 -1)) (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (-.f64 (*.f64 d1 (+.f64 d2 d4)) (pow.f64 d1 2)))
(-.f64 (*.f64 d1 (+.f64 (+.f64 d2 d4) (neg.f64 d3))) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3)))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (-.f64 (*.f64 d1 (*.f64 d3 -1)) (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (-.f64 (*.f64 d1 (+.f64 d2 d4)) (pow.f64 d1 2)))
(-.f64 (*.f64 d1 (+.f64 (+.f64 d2 d4) (neg.f64 d3))) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3)))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (-.f64 (*.f64 d1 (*.f64 d3 -1)) (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (-.f64 (*.f64 d1 (+.f64 d2 d4)) (pow.f64 d1 2)))
(-.f64 (*.f64 d1 (+.f64 (+.f64 d2 d4) (neg.f64 d3))) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3)))) (pow.f64 d1 2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1))) (pow.f64 d1 2))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (-.f64 (*.f64 d1 (*.f64 d3 -1)) (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (-.f64 (*.f64 d1 (+.f64 d2 d4)) (pow.f64 d1 2)))
(-.f64 (*.f64 d1 (+.f64 (+.f64 d2 d4) (neg.f64 d3))) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3)))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1))) (pow.f64 d1 2))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (-.f64 (*.f64 d1 (*.f64 d3 -1)) (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (-.f64 (*.f64 d1 (+.f64 d2 d4)) (pow.f64 d1 2)))
(-.f64 (*.f64 d1 (+.f64 (+.f64 d2 d4) (neg.f64 d3))) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3)))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1))) (pow.f64 d1 2))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (-.f64 (*.f64 d1 (*.f64 d3 -1)) (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (-.f64 (*.f64 d1 (+.f64 d2 d4)) (pow.f64 d1 2)))
(-.f64 (*.f64 d1 (+.f64 (+.f64 d2 d4) (neg.f64 d3))) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3)))) (pow.f64 d1 2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1))) (pow.f64 d1 2))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (-.f64 (*.f64 d1 (*.f64 d3 -1)) (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (-.f64 (*.f64 d1 (+.f64 d2 d4)) (pow.f64 d1 2)))
(-.f64 (*.f64 d1 (+.f64 (+.f64 d2 d4) (neg.f64 d3))) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3)))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1))) (pow.f64 d1 2))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (-.f64 (*.f64 d1 (*.f64 d3 -1)) (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (-.f64 (*.f64 d1 (+.f64 d2 d4)) (pow.f64 d1 2)))
(-.f64 (*.f64 d1 (+.f64 (+.f64 d2 d4) (neg.f64 d3))) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3)))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1))) (pow.f64 d1 2))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (-.f64 (*.f64 d1 (*.f64 d3 -1)) (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (-.f64 (*.f64 d1 (+.f64 d2 d4)) (pow.f64 d1 2)))
(-.f64 (*.f64 d1 (+.f64 (+.f64 d2 d4) (neg.f64 d3))) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3)))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1))) (pow.f64 d1 2))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (-.f64 (*.f64 d1 (*.f64 d3 -1)) (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (-.f64 (*.f64 d1 (+.f64 d2 d4)) (pow.f64 d1 2)))
(-.f64 (*.f64 d1 (+.f64 (+.f64 d2 d4) (neg.f64 d3))) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3)))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1))) (pow.f64 d1 2))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (-.f64 (*.f64 d1 (*.f64 d3 -1)) (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (-.f64 (*.f64 d1 (+.f64 d2 d4)) (pow.f64 d1 2)))
(-.f64 (*.f64 d1 (+.f64 (+.f64 d2 d4) (neg.f64 d3))) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3)))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1))) (pow.f64 d1 2))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (-.f64 (*.f64 d1 (*.f64 d3 -1)) (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (-.f64 (*.f64 d1 (+.f64 d2 d4)) (pow.f64 d1 2)))
(-.f64 (*.f64 d1 (+.f64 (+.f64 d2 d4) (neg.f64 d3))) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3)))) (pow.f64 d1 2))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (*.f64 d3 -1))
(*.f64 d1 (neg.f64 d3))
(*.f64 d3 (neg.f64 d1))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1))) (pow.f64 d1 2))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (-.f64 (*.f64 d1 (*.f64 d3 -1)) (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (-.f64 (*.f64 d1 (+.f64 d2 d4)) (pow.f64 d1 2)))
(-.f64 (*.f64 d1 (+.f64 (+.f64 d2 d4) (neg.f64 d3))) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3)))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1))) (pow.f64 d1 2))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (-.f64 (*.f64 d1 (*.f64 d3 -1)) (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (-.f64 (*.f64 d1 (+.f64 d2 d4)) (pow.f64 d1 2)))
(-.f64 (*.f64 d1 (+.f64 (+.f64 d2 d4) (neg.f64 d3))) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3)))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1))) (pow.f64 d1 2))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (-.f64 (*.f64 d1 (*.f64 d3 -1)) (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (-.f64 (*.f64 d1 (+.f64 d2 d4)) (pow.f64 d1 2)))
(-.f64 (*.f64 d1 (+.f64 (+.f64 d2 d4) (neg.f64 d3))) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3)))) (pow.f64 d1 2))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (*.f64 d3 -1))
(*.f64 d1 (neg.f64 d3))
(*.f64 d3 (neg.f64 d1))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1))) (pow.f64 d1 2))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (-.f64 (*.f64 d1 (*.f64 d3 -1)) (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (-.f64 (*.f64 d1 (+.f64 d2 d4)) (pow.f64 d1 2)))
(-.f64 (*.f64 d1 (+.f64 (+.f64 d2 d4) (neg.f64 d3))) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3)))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1))) (pow.f64 d1 2))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (-.f64 (*.f64 d1 (*.f64 d3 -1)) (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (-.f64 (*.f64 d1 (+.f64 d2 d4)) (pow.f64 d1 2)))
(-.f64 (*.f64 d1 (+.f64 (+.f64 d2 d4) (neg.f64 d3))) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3)))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1))) (pow.f64 d1 2))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) (-.f64 (*.f64 d1 (*.f64 d3 -1)) (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (-.f64 (*.f64 d1 (+.f64 d2 d4)) (pow.f64 d1 2)))
(-.f64 (*.f64 d1 (+.f64 (+.f64 d2 d4) (neg.f64 d3))) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3)))) (pow.f64 d1 2))
(-.f64 (*.f64 (-.f64 d2 d3) d1) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (-.f64 d2 d3)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (pow.f64 d1 2))
(*.f64 d1 d4)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (pow.f64 d1 2))
(*.f64 d1 d4)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (pow.f64 d1 2))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(-.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 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 2))
(*.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 (-.f64 d2 d3) (-.f64 d4 d1)) d1)
(*.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 (/.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 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 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4) 4)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4)) 8)
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 4))) 16)
(*.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)))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (neg.f64 d1)))
(*.f64 d1 (+.f64 d4 (neg.f64 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 (neg.f64 d1)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (neg.f64 d1)))
(*.f64 d1 (+.f64 d4 (neg.f64 d1)))
(+.f64 -1 (+.f64 1 (*.f64 d1 (-.f64 d4 d1))))
(*.f64 d1 (-.f64 d4 d1))
(+.f64 -1 (+.f64 (-.f64 1 (*.f64 d1 d1)) (*.f64 d1 d4)))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (neg.f64 d1)))
(*.f64 d1 (+.f64 d4 (neg.f64 d1)))
(+.f64 (+.f64 1 (*.f64 d1 (-.f64 d4 d1))) -1)
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 (*.f64 d1 (-.f64 d4 d1)) 1)
(*.f64 d1 (-.f64 d4 d1))
(*.f64 1 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 (-.f64 d4 d1) d1)
(*.f64 d1 (-.f64 d4 d1))
(*.f64 2 (/.f64 (*.f64 d1 (-.f64 d4 d1)) 2))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 (*.f64 d1 (*.f64 (-.f64 d4 d1) 2)) 1/2)
(*.f64 d1 (-.f64 d4 d1))
(*.f64 (+.f64 d1 d1) (/.f64 (-.f64 d4 d1) 2))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 (*.f64 d1 (-.f64 d1 d4)) -1)
(*.f64 d1 (-.f64 d4 d1))
(*.f64 (*.f64 (-.f64 d4 d1) 2) (/.f64 d1 2))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 -1 (*.f64 d1 (-.f64 d1 d4)))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 1/2 (*.f64 d1 (*.f64 (-.f64 d4 d1) 2)))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 (/.f64 d1 2) (*.f64 (-.f64 d4 d1) 2))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 (/.f64 (*.f64 d1 (-.f64 d4 d1)) 2) 2)
(*.f64 d1 (-.f64 d4 d1))
(*.f64 (/.f64 (-.f64 d4 d1) 2) (+.f64 d1 d1))
(*.f64 d1 (-.f64 d4 d1))
(/.f64 (*.f64 d1 (-.f64 d4 d1)) 1)
(*.f64 d1 (-.f64 d4 d1))
(/.f64 (*.f64 d1 (*.f64 (-.f64 d4 d1) 2)) 2)
(*.f64 d1 (-.f64 d4 d1))
(/.f64 (*.f64 d1 (-.f64 d1 d4)) -1)
(*.f64 d1 (-.f64 d4 d1))
(/.f64 (*.f64 (*.f64 d1 (-.f64 d4 d1)) 4) 4)
(*.f64 d1 (-.f64 d4 d1))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d4 d1)) 4)) 8)
(*.f64 d1 (-.f64 d4 d1))
(/.f64 (*.f64 2 (*.f64 d1 (-.f64 d1 d4))) -2)
(*.f64 d1 (-.f64 d4 d1))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d4 d1)) 4)) (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d4 d1)) 4))) 16)
(*.f64 d1 (-.f64 d4 d1))
(pow.f64 (*.f64 d1 (-.f64 d4 d1)) 1)
(*.f64 d1 (-.f64 d4 d1))
(neg.f64 (*.f64 d1 (-.f64 d1 d4)))
(*.f64 d1 (-.f64 d4 d1))

eval29.0ms (0.2%)

Compiler

Compiled 2278 to 730 computations (68% saved)

prune36.0ms (0.2%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New1868194
Fresh000
Picked101
Done202
Total1898197
Error
0.0b
Counts
197 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
19.2b
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
17.5b
(*.f64 (-.f64 d2 (+.f64 d1 d3)) d1)
42.5b
(*.f64 d3 (neg.f64 d1))
45.1b
(*.f64 d2 d1)
19.2b
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
16.7b
(*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))
44.7b
(*.f64 d1 d4)
Compiler

Compiled 166 to 108 computations (34.9% saved)

localize333.0ms (1.8%)

Local error

Found 2 expressions with local error:

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

Compiled 37 to 9 computations (75.7% saved)

series4.0ms (0%)

Counts
2 → 84
Calls

21 calls:

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

rewrite1.1s (6%)

Algorithm
batch-egg-rewrite
Rules
1736×bool.json-1
1736×bool.json-2
1066×bool.json-3
966×exponential.json-3
966×rational.json-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01150
111944
230944
366844
4144644
5332844
6693044
Stop Event
node limit
Counts
2 → 37
Calls
Call 1
Inputs
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(*.f64 (-.f64 d2 (+.f64 d1 d3)) d1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 d1 (/.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (*.f64 2 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (*.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (/.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) d1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) (*.f64 d1 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4)) (*.f64 d1 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (/.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) 1/2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) (*.f64 d1 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) 2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 2 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) (*.f64 d1 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) (*.f64 d1 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) (*.f64 d1 4)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) (*.f64 d1 4)))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) (*.f64 d1 4))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4)) (*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4)) (*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) (*.f64 d1 1/2)) (*.f64 (-.f64 d2 (+.f64 d1 d3)) (*.f64 d1 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 (+.f64 d1 (-.f64 d3 d2)) -2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 (-.f64 d2 (+.f64 d1 d3)) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d2 (+.f64 d1 d3)) 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d2 (+.f64 d1 d3)) 4)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d2 (+.f64 d1 d3)) 4)))) (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d2 (+.f64 d1 d3)) 4))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))))))

simplify330.0ms (1.8%)

Algorithm
egg-herbie
Rules
2478×rational.json-simplify-2
1864×rational.json-simplify-35
1410×rational.json-simplify-53
912×rational.json-simplify-48
808×rational.json-simplify-51
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01123475
12473083
25292909
312272853
428472853
540982853
645172853
747332853
849072853
950862853
1053082853
1161702853
1268312853
1377322853
1479052853
Stop Event
node limit
Counts
121 → 95
Calls
Call 1
Inputs
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(*.f64 d2 d1)
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(*.f64 d2 d1)
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(*.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 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(+.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 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 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 -1 (*.f64 (+.f64 d1 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) 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 (-.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 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 (-.f64 d2 (+.f64 d1 d3)) d4)) 0)
(*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4))
(*.f64 (*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4)) 1)
(*.f64 1 (*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4)))
(*.f64 2 (*.f64 d1 (/.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) 2)))
(*.f64 (*.f64 d1 (*.f64 2 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4))) 1/2)
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) 1/2))
(*.f64 (+.f64 d1 d1) (/.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) 2))
(*.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) d1)
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4)) 4))
(*.f64 (*.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) (*.f64 d1 4)) 1/4)
(*.f64 (*.f64 2 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4)) (*.f64 d1 1/2))
(*.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4))))
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4)))
(*.f64 (*.f64 d1 (/.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) 2)) 2)
(*.f64 (*.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) 1/2) (+.f64 d1 d1))
(*.f64 1/4 (*.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) (*.f64 d1 4)))
(*.f64 (/.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) 2) (+.f64 d1 d1))
(*.f64 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4)) 4) 4)
(/.f64 (*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4)) 1)
(/.f64 (*.f64 d1 (*.f64 2 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4))) 2)
(/.f64 (*.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) (*.f64 d1 4)) 4)
(/.f64 (*.f64 2 (*.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) (*.f64 d1 4))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) (*.f64 d1 4)))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) (*.f64 d1 4)))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) (*.f64 d1 4))))) 32)
(pow.f64 (*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4)) 1)
(+.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) 0)
(+.f64 0 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) (*.f64 d1 1/2)) (*.f64 (-.f64 d2 (+.f64 d1 d3)) (*.f64 d1 1/2)))
(-.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) 0)
(/.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) 1)
(/.f64 (*.f64 d1 (*.f64 (+.f64 d1 (-.f64 d3 d2)) -2)) 2)
(/.f64 (*.f64 d1 (*.f64 (-.f64 d2 (+.f64 d1 d3)) 4)) 4)
(/.f64 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d2 (+.f64 d1 d3)) 4))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d2 (+.f64 d1 d3)) 4)))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d2 (+.f64 d1 d3)) 4)))) (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d2 (+.f64 d1 d3)) 4))))) 32)
(pow.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) 1)
Outputs
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 d1 d4) (*.f64 (+.f64 d1 d3) (*.f64 d1 -1)))
(+.f64 (*.f64 d1 d4) (*.f64 (+.f64 d1 d3) (neg.f64 d1)))
(*.f64 d1 (+.f64 d4 (neg.f64 (+.f64 d1 d3))))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 (+.f64 d1 d3) (*.f64 d1 -1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 (+.f64 d1 d3) (neg.f64 d1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (+.f64 d2 (neg.f64 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 (+.f64 d1 d3)))))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 (+.f64 d1 d3) (*.f64 d1 -1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 (+.f64 d1 d3) (neg.f64 d1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (+.f64 d2 (neg.f64 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 (+.f64 d1 d3)))))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 (+.f64 d1 d3) (*.f64 d1 -1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 (+.f64 d1 d3) (neg.f64 d1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (+.f64 d2 (neg.f64 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 (+.f64 d1 d3)))))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 (+.f64 d1 d3) (*.f64 d1 -1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 (+.f64 d1 d3) (neg.f64 d1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (+.f64 d2 (neg.f64 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 (+.f64 d1 d3)))))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 (+.f64 d1 d3) (*.f64 d1 -1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 (+.f64 d1 d3) (neg.f64 d1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (+.f64 d2 (neg.f64 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 (+.f64 d1 d3)))))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 (+.f64 d1 d3) (*.f64 d1 -1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 (+.f64 d1 d3) (neg.f64 d1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (+.f64 d2 (neg.f64 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 (+.f64 d1 d3)))))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 (+.f64 d1 d3) (*.f64 d1 -1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 (+.f64 d1 d3) (neg.f64 d1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (+.f64 d2 (neg.f64 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 (+.f64 d1 d3)))))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 (+.f64 d1 d3) (*.f64 d1 -1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 (+.f64 d1 d3) (neg.f64 d1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (+.f64 d2 (neg.f64 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 (+.f64 d1 d3)))))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 (+.f64 d1 d3) (*.f64 d1 -1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 (+.f64 d1 d3) (neg.f64 d1)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (+.f64 d2 (neg.f64 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 (+.f64 d1 d3)))))
(*.f64 d1 (-.f64 (+.f64 d2 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 d4 (-.f64 d2 d3))) (*.f64 -1 (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 d4 (-.f64 d2 d3))) (*.f64 -1 (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 d4 (-.f64 d2 d3))) (*.f64 -1 (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 d4 (-.f64 d2 d3))) (*.f64 -1 (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 d4 (-.f64 d2 d3))) (*.f64 -1 (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 d4 (-.f64 d2 d3))) (*.f64 -1 (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 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (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 d1 (+.f64 d4 (-.f64 d2 d3))) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (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 d1 (+.f64 d4 (-.f64 d2 d3))) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d1) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(+.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) (*.f64 d1 (*.f64 d3 -1)))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 d4 (+.f64 (-.f64 d2 d1) (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(+.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) (*.f64 d1 (*.f64 d3 -1)))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 d4 (+.f64 (-.f64 d2 d1) (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(+.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) (*.f64 d1 (*.f64 d3 -1)))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 d4 (+.f64 (-.f64 d2 d1) (neg.f64 d3))))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (*.f64 d3 -1))
(*.f64 d1 (neg.f64 d3))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(+.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) (*.f64 d1 (*.f64 d3 -1)))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 d4 (+.f64 (-.f64 d2 d1) (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(+.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) (*.f64 d1 (*.f64 d3 -1)))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 d4 (+.f64 (-.f64 d2 d1) (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(+.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) (*.f64 d1 (*.f64 d3 -1)))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 d4 (+.f64 (-.f64 d2 d1) (neg.f64 d3))))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (*.f64 d3 -1))
(*.f64 d1 (neg.f64 d3))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(+.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) (*.f64 d1 (*.f64 d3 -1)))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 d4 (+.f64 (-.f64 d2 d1) (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(+.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) (*.f64 d1 (*.f64 d3 -1)))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 d4 (+.f64 (-.f64 d2 d1) (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(+.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) (*.f64 d1 (*.f64 d3 -1)))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3))))
(*.f64 d1 (+.f64 d4 (+.f64 (-.f64 d2 d1) (neg.f64 d3))))
(*.f64 d1 (-.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 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 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 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 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 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 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 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 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 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 -1 (*.f64 (+.f64 d1 d3) d1))
(*.f64 (+.f64 d1 d3) (*.f64 d1 -1))
(*.f64 (+.f64 d1 d3) (neg.f64 d1))
(*.f64 d1 (neg.f64 (+.f64 d1 d3)))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 (+.f64 d1 d3) (*.f64 d1 -1)) (*.f64 d1 d2))
(+.f64 (*.f64 (+.f64 d1 d3) (neg.f64 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 (+.f64 d1 d3))))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 (+.f64 d1 d3) (*.f64 d1 -1)) (*.f64 d1 d2))
(+.f64 (*.f64 (+.f64 d1 d3) (neg.f64 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 (+.f64 d1 d3))))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 (+.f64 d1 d3) (*.f64 d1 -1)) (*.f64 d1 d2))
(+.f64 (*.f64 (+.f64 d1 d3) (neg.f64 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 (+.f64 d1 d3))))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 (+.f64 d1 d3) (*.f64 d1 -1)) (*.f64 d1 d2))
(+.f64 (*.f64 (+.f64 d1 d3) (neg.f64 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 (+.f64 d1 d3))))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 (+.f64 d1 d3) (*.f64 d1 -1)) (*.f64 d1 d2))
(+.f64 (*.f64 (+.f64 d1 d3) (neg.f64 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 (+.f64 d1 d3))))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 (+.f64 d1 d3) (*.f64 d1 -1)) (*.f64 d1 d2))
(+.f64 (*.f64 (+.f64 d1 d3) (neg.f64 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 (+.f64 d1 d3))))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 (+.f64 d1 d3) (*.f64 d1 -1)) (*.f64 d1 d2))
(+.f64 (*.f64 (+.f64 d1 d3) (neg.f64 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 (+.f64 d1 d3))))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 (+.f64 d1 d3) (*.f64 d1 -1)) (*.f64 d1 d2))
(+.f64 (*.f64 (+.f64 d1 d3) (neg.f64 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 (+.f64 d1 d3))))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 (+.f64 d1 d3) (*.f64 d1 -1)) (*.f64 d1 d2))
(+.f64 (*.f64 (+.f64 d1 d3) (neg.f64 d1)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (neg.f64 (+.f64 d1 d3))))
(*.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 (-.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 (-.f64 d2 d1) d1)
(*.f64 d1 (-.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 (-.f64 d2 d1)) (*.f64 d1 (*.f64 d3 -1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 (-.f64 d2 d1)) (*.f64 d1 (*.f64 d3 -1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 (-.f64 d2 d1)) (*.f64 d1 (*.f64 d3 -1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (*.f64 d3 -1))
(*.f64 d1 (neg.f64 d3))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 (-.f64 d2 d1)) (*.f64 d1 (*.f64 d3 -1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 (-.f64 d2 d1)) (*.f64 d1 (*.f64 d3 -1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 (-.f64 d2 d1)) (*.f64 d1 (*.f64 d3 -1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (*.f64 d3 -1))
(*.f64 d1 (neg.f64 d3))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 (-.f64 d2 d1)) (*.f64 d1 (*.f64 d3 -1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 (-.f64 d2 d1)) (*.f64 d1 (*.f64 d3 -1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 (-.f64 d2 d1)) (*.f64 d1 (*.f64 d3 -1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) (neg.f64 d3)))
(-.f64 (*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4)) 0)
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 (*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4)) 1)
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 1 (*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4)))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 2 (*.f64 d1 (/.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) 2)))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 (*.f64 d1 (*.f64 2 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4))) 1/2)
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) 1/2))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 (+.f64 d1 d1) (/.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) 2))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) d1)
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4)) 4))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 (*.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) (*.f64 d1 4)) 1/4)
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 (*.f64 2 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4)) (*.f64 d1 1/2))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4))))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4)))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 (*.f64 d1 (/.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) 2)) 2)
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 (*.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) 1/2) (+.f64 d1 d1))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 1/4 (*.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) (*.f64 d1 4)))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 (/.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) 2) (+.f64 d1 d1))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4)) 4) 4)
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(/.f64 (*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4)) 1)
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(/.f64 (*.f64 d1 (*.f64 2 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4))) 2)
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(/.f64 (*.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) (*.f64 d1 4)) 4)
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(/.f64 (*.f64 2 (*.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) (*.f64 d1 4))) 8)
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) (*.f64 d1 4)))) 16)
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) (*.f64 d1 4)))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4) (*.f64 d1 4))))) 32)
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(pow.f64 (*.f64 d1 (+.f64 (-.f64 d2 (+.f64 d1 d3)) d4)) 1)
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) 0)
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(+.f64 0 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) (*.f64 d1 1/2)) (*.f64 (-.f64 d2 (+.f64 d1 d3)) (*.f64 d1 1/2)))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(-.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) 0)
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(/.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) 1)
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(/.f64 (*.f64 d1 (*.f64 (+.f64 d1 (-.f64 d3 d2)) -2)) 2)
(*.f64 (*.f64 (+.f64 d1 (-.f64 d3 d2)) -2) (/.f64 d1 2))
(*.f64 (*.f64 d1 (+.f64 d1 (-.f64 d3 d2))) -1)
(*.f64 d1 (neg.f64 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 (+.f64 d1 (-.f64 d3 d2)) (neg.f64 d1))
(/.f64 (*.f64 d1 (*.f64 (-.f64 d2 (+.f64 d1 d3)) 4)) 4)
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(/.f64 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d2 (+.f64 d1 d3)) 4))) 8)
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d2 (+.f64 d1 d3)) 4)))) 16)
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d2 (+.f64 d1 d3)) 4)))) (*.f64 2 (*.f64 2 (*.f64 d1 (*.f64 (-.f64 d2 (+.f64 d1 d3)) 4))))) 32)
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(pow.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) 1)
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))

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

rewrite127.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
1862×bool.json-1
1862×bool.json-2
1232×bool.json-3
908×exponential.json-3
908×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0819
18919
225719
357519
4127219
5303619
6695019
Stop Event
node limit
Counts
1 → 11
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 (+.f64 d2 (-.f64 d4 d1)) (*.f64 d1 1/2)) (*.f64 (+.f64 d2 (-.f64 d4 d1)) (*.f64 d1 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 (+.f64 d2 (-.f64 d4 d1)) (+.f64 d1 d1)) 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 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))))))

simplify1.4s (7.4%)

Algorithm
egg-herbie
Rules
4534×rational.json-simplify-35
2456×rational.json-simplify-2
1058×rational.json-simplify-53
946×rational.json-simplify-1
888×exponential.json-simplify-26
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0491043
1107901
2198901
3446901
41718901
53559901
64357901
74679901
84864901
94990901
105110901
115753901
125959901
135959901
146014901
156148901
166274901
176490901
186671901
196791901
206911901
217031901
227151901
237271901
247391901
257511901
267631901
277751901
287751901
297751901
307871901
317991901
Stop Event
node limit
Counts
47 → 29
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 (+.f64 d2 (-.f64 d4 d1)) (*.f64 d1 1/2)) (*.f64 (+.f64 d2 (-.f64 d4 d1)) (*.f64 d1 1/2)))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 0)
(/.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 1)
(/.f64 (*.f64 (+.f64 d2 (-.f64 d4 d1)) (+.f64 d1 d1)) 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 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 8))) 32)
(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 d1 (+.f64 (-.f64 d2 d1) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d1) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d1) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d1) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d1) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d1) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d1) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d1) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d1) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 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 (+.f64 d2 (-.f64 d4 d1)) (*.f64 d1 1/2)) (*.f64 (+.f64 d2 (-.f64 d4 d1)) (*.f64 d1 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 (+.f64 d2 (-.f64 d4 d1)) (+.f64 d1 d1)) 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 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 8)) (*.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)))
(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)))

localize11.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 27 to 8 computations (70.4% saved)

series3.0ms (0%)

Counts
1 → 27
Calls

9 calls:

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

rewrite91.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
1640×bool.json-1
1640×bool.json-2
1598×rational.json-1
1598×rational.json-2
1096×bool.json-3
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0925
19819
226619
358119
4121619
5275919
6616119
Stop Event
node limit
Counts
1 → 34
Calls
Call 1
Inputs
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 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 d1 (+.f64 d2 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 d1 (/.f64 (+.f64 d2 (-.f64 d4 d1)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 d1 (*.f64 (-.f64 d4 d1) 1/2)) (*.f64 d2 (*.f64 d1 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 d2 (*.f64 d1 1/2)) (*.f64 d1 (*.f64 (-.f64 d4 d1) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (*.f64 (+.f64 d2 (-.f64 d4 d1)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (/.f64 (+.f64 d2 (-.f64 d4 d1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (+.f64 (*.f64 (-.f64 d4 d1) 1/2) (*.f64 d2 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (+.f64 (*.f64 d2 1/2) (*.f64 (-.f64 d4 d1) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d2 (-.f64 d4 d1)) d1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 d2 (-.f64 d4 d1))) (*.f64 d1 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 d1 (*.f64 (-.f64 d4 d1) 2)) (*.f64 d2 (+.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 d2 (+.f64 d1 d1)) (*.f64 d1 (*.f64 (-.f64 d4 d1) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 d2 (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (+.f64 (*.f64 (-.f64 d4 d1) 2) (+.f64 d2 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d2 d2) (*.f64 (-.f64 d4 d1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (/.f64 (+.f64 d2 (-.f64 d4 d1)) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 d2 (-.f64 d4 d1)) 1/2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 d2 (-.f64 d4 d1)) 2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 4) 4)))) (#(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 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 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 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))))))

simplify541.0ms (2.9%)

Algorithm
egg-herbie
Rules
1998×rational.json-simplify-2
1792×rational.json-simplify-35
1712×rational.json-simplify-1
1074×rational.json-simplify-45
900×rational.json-simplify-51
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0981345
11931303
24581303
314771303
432031303
544931303
650961303
752361303
853401303
954411303
1055771303
1159201303
1262041303
1367931303
1473181303
1575791303
1678551303
1778851303
1879091303
1979351303
Stop Event
node limit
Counts
61 → 55
Calls
Call 1
Inputs
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d2 d1)
(*.f64 d2 d1)
(*.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 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 0)
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 1)
(*.f64 1 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))
(*.f64 2 (*.f64 d1 (/.f64 (+.f64 d2 (-.f64 d4 d1)) 2)))
(*.f64 2 (+.f64 (*.f64 d1 (*.f64 (-.f64 d4 d1) 1/2)) (*.f64 d2 (*.f64 d1 1/2))))
(*.f64 2 (+.f64 (*.f64 d2 (*.f64 d1 1/2)) (*.f64 d1 (*.f64 (-.f64 d4 d1) 1/2))))
(*.f64 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 2) 1/2)
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 d2 (-.f64 d4 d1)) 1/2))
(*.f64 (+.f64 d1 d1) (/.f64 (+.f64 d2 (-.f64 d4 d1)) 2))
(*.f64 (+.f64 d1 d1) (+.f64 (*.f64 (-.f64 d4 d1) 1/2) (*.f64 d2 1/2)))
(*.f64 (+.f64 d1 d1) (+.f64 (*.f64 d2 1/2) (*.f64 (-.f64 d4 d1) 1/2)))
(*.f64 (+.f64 d2 (-.f64 d4 d1)) d1)
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 4))
(*.f64 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 4) 1/4)
(*.f64 (*.f64 2 (+.f64 d2 (-.f64 d4 d1))) (*.f64 d1 1/2))
(*.f64 1/2 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 2))
(*.f64 1/2 (+.f64 (*.f64 d1 (*.f64 (-.f64 d4 d1) 2)) (*.f64 d2 (+.f64 d1 d1))))
(*.f64 1/2 (+.f64 (*.f64 d2 (+.f64 d1 d1)) (*.f64 d1 (*.f64 (-.f64 d4 d1) 2))))
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 d2 (-.f64 d4 d1))))
(*.f64 (*.f64 d1 1/2) (+.f64 (*.f64 (-.f64 d4 d1) 2) (+.f64 d2 d2)))
(*.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d2 d2) (*.f64 (-.f64 d4 d1) 2)))
(*.f64 (*.f64 d1 (/.f64 (+.f64 d2 (-.f64 d4 d1)) 2)) 2)
(*.f64 (*.f64 (+.f64 d2 (-.f64 d4 d1)) 1/2) (+.f64 d1 d1))
(*.f64 1/4 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 4))
(*.f64 (/.f64 (+.f64 d2 (-.f64 d4 d1)) 2) (+.f64 d1 d1))
(*.f64 (/.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 4) 4)
(/.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 1)
(/.f64 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 2) 2)
(/.f64 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 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 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 8))) 32)
(pow.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 1)
Outputs
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d2 d1)
(*.f64 d1 d2)
(*.f64 d2 d1)
(*.f64 d1 d2)
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(*.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 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(*.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 d4) (*.f64 -1 d2)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 d2) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 0)
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 1)
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 1 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 2 (*.f64 d1 (/.f64 (+.f64 d2 (-.f64 d4 d1)) 2)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 2 (+.f64 (*.f64 d1 (*.f64 (-.f64 d4 d1) 1/2)) (*.f64 d2 (*.f64 d1 1/2))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 2 (+.f64 (*.f64 d2 (*.f64 d1 1/2)) (*.f64 d1 (*.f64 (-.f64 d4 d1) 1/2))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 2) 1/2)
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 d2 (-.f64 d4 d1)) 1/2))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 (+.f64 d1 d1) (/.f64 (+.f64 d2 (-.f64 d4 d1)) 2))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 (+.f64 d1 d1) (+.f64 (*.f64 (-.f64 d4 d1) 1/2) (*.f64 d2 1/2)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 (+.f64 d1 d1) (+.f64 (*.f64 d2 1/2) (*.f64 (-.f64 d4 d1) 1/2)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 (+.f64 d2 (-.f64 d4 d1)) d1)
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 4))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 4) 1/4)
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 (*.f64 2 (+.f64 d2 (-.f64 d4 d1))) (*.f64 d1 1/2))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 1/2 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 2))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 1/2 (+.f64 (*.f64 d1 (*.f64 (-.f64 d4 d1) 2)) (*.f64 d2 (+.f64 d1 d1))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 1/2 (+.f64 (*.f64 d2 (+.f64 d1 d1)) (*.f64 d1 (*.f64 (-.f64 d4 d1) 2))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 d2 (-.f64 d4 d1))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 (*.f64 d1 1/2) (+.f64 (*.f64 (-.f64 d4 d1) 2) (+.f64 d2 d2)))
(*.f64 (*.f64 d1 1/2) (+.f64 d2 (+.f64 d2 (*.f64 (-.f64 d4 d1) 2))))
(*.f64 d1 (*.f64 1/2 (+.f64 d2 (+.f64 d2 (*.f64 (-.f64 d4 d1) 2)))))
(*.f64 (/.f64 d1 2) (+.f64 d2 (+.f64 d2 (*.f64 (-.f64 d4 d1) 2))))
(*.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d2 d2) (*.f64 (-.f64 d4 d1) 2)))
(*.f64 (*.f64 d1 1/2) (+.f64 d2 (+.f64 d2 (*.f64 (-.f64 d4 d1) 2))))
(*.f64 d1 (*.f64 1/2 (+.f64 d2 (+.f64 d2 (*.f64 (-.f64 d4 d1) 2)))))
(*.f64 (/.f64 d1 2) (+.f64 d2 (+.f64 d2 (*.f64 (-.f64 d4 d1) 2))))
(*.f64 (*.f64 d1 (/.f64 (+.f64 d2 (-.f64 d4 d1)) 2)) 2)
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 (*.f64 (+.f64 d2 (-.f64 d4 d1)) 1/2) (+.f64 d1 d1))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 1/4 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 4))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 (/.f64 (+.f64 d2 (-.f64 d4 d1)) 2) (+.f64 d1 d1))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 (/.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 4) 4)
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(/.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 1)
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(/.f64 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 2) 2)
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(/.f64 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 4) 4)
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(/.f64 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 8) 8)
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 8)) 16)
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 8))) 32)
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(pow.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 1)
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))

eval105.0ms (0.6%)

Compiler

Compiled 2211 to 784 computations (64.5% saved)

prune82.0ms (0.4%)

Pruning

11 alts after pruning (8 fresh and 3 done)

PrunedKeptTotal
New1906196
Fresh123
Picked011
Done224
Total19311204
Error
0.0b
Counts
204 → 11
Alt Table
Click to see full alt table
StatusErrorProgram
9.7b
(+.f64 (*.f64 (-.f64 d2 d3) d1) (*.f64 d1 d4))
19.3b
(+.f64 (*.f64 (-.f64 d2 d1) d1) (*.f64 d1 d4))
19.2b
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
36.2b
(*.f64 (-.f64 d2 d1) d1)
42.5b
(*.f64 d3 (neg.f64 d1))
45.1b
(*.f64 d2 d1)
9.7b
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
16.7b
(*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))
35.7b
(*.f64 d1 (-.f64 d4 d1))
28.5b
(*.f64 d1 (+.f64 d4 d2))
44.7b
(*.f64 d1 d4)
Compiler

Compiled 192 to 125 computations (34.9% saved)

localize9.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 28 to 8 computations (71.4% saved)

series4.0ms (0%)

Counts
1 → 48
Calls

12 calls:

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

rewrite93.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
1728×bool.json-1
1728×bool.json-2
1686×rational.json-1
1148×bool.json-3
992×rational.json-simplify-51
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01025
110819
228719
362019
4129719
5294119
6653019
Stop Event
node limit
Counts
1 → 34
Calls
Call 1
Inputs
(+.f64 (*.f64 (-.f64 d2 d3) d1) (*.f64 d1 d4))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (+.f64 (-.f64 d2 d3) d4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 d1 (/.f64 (+.f64 (-.f64 d2 d3) d4) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 d4 (*.f64 d1 1/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 d4 (*.f64 d1 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (*.f64 (+.f64 (-.f64 d2 d3) d4) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (/.f64 (+.f64 (-.f64 d2 d3) d4) 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 (+.f64 d1 d1) (+.f64 (*.f64 (-.f64 d2 d3) 1/2) (*.f64 d4 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 d1 d1) (+.f64 (-.f64 d2 d3) d4)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (-.f64 d2 d3) d4) d1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (-.f64 d2 d3) d4) (*.f64 d1 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 (-.f64 d2 d3) d4)) (*.f64 d1 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 d1 d1) (+.f64 (-.f64 d2 d3) d4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 d1 (+.f64 d4 d4)) (*.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 d1 (+.f64 d4 d4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 (-.f64 d2 d3) d4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d4 d4) (*.f64 (-.f64 d2 d3) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (+.f64 (*.f64 (-.f64 d2 d3) 2) (+.f64 d4 d4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (/.f64 (+.f64 (-.f64 d2 d3) d4) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (-.f64 d2 d3) d4) 1/2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (-.f64 d2 d3) d4) (*.f64 d1 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (-.f64 d2 d3) d4) 2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 d1 d1) (+.f64 (-.f64 d2 d3) d4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (-.f64 d2 d3) d4) (*.f64 d1 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 d1 (+.f64 (-.f64 d2 d3) d4))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)))))))

simplify251.0ms (1.3%)

Algorithm
egg-herbie
Rules
2048×rational.json-simplify-2
1974×rational.json-simplify-1
1458×rational.json-simplify-35
1336×rational.json-simplify-41
990×rational.json-simplify-48
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01001744
12011696
24061588
311931588
427311588
544331588
649691588
753401588
855331588
956631588
1058551588
1169571588
1279111588
Stop Event
node limit
Counts
82 → 57
Calls
Call 1
Inputs
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.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 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.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 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 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(-.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) 0)
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) 1)
(*.f64 1 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)))
(*.f64 2 (*.f64 d1 (/.f64 (+.f64 (-.f64 d2 d3) d4) 2)))
(*.f64 2 (+.f64 (*.f64 d4 (*.f64 d1 1/2)) (*.f64 (-.f64 d2 d3) (*.f64 d1 1/2))))
(*.f64 2 (+.f64 (*.f64 (-.f64 d2 d3) (*.f64 d1 1/2)) (*.f64 d4 (*.f64 d1 1/2))))
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 (-.f64 d2 d3) d4) 1/2))
(*.f64 (+.f64 d1 d1) (/.f64 (+.f64 (-.f64 d2 d3) d4) 2))
(*.f64 (+.f64 d1 d1) (+.f64 (*.f64 d4 1/2) (*.f64 (-.f64 d2 d3) 1/2)))
(*.f64 (+.f64 d1 d1) (+.f64 (*.f64 (-.f64 d2 d3) 1/2) (*.f64 d4 1/2)))
(*.f64 (*.f64 (+.f64 d1 d1) (+.f64 (-.f64 d2 d3) d4)) 1/2)
(*.f64 (+.f64 (-.f64 d2 d3) d4) d1)
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) 4))
(*.f64 (*.f64 (+.f64 (-.f64 d2 d3) d4) (*.f64 d1 4)) 1/4)
(*.f64 (*.f64 2 (+.f64 (-.f64 d2 d3) d4)) (*.f64 d1 1/2))
(*.f64 1/2 (*.f64 (+.f64 d1 d1) (+.f64 (-.f64 d2 d3) d4)))
(*.f64 1/2 (+.f64 (*.f64 d1 (+.f64 d4 d4)) (*.f64 (-.f64 d2 d3) (+.f64 d1 d1))))
(*.f64 1/2 (+.f64 (*.f64 (-.f64 d2 d3) (+.f64 d1 d1)) (*.f64 d1 (+.f64 d4 d4))))
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 (-.f64 d2 d3) d4)))
(*.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d4 d4) (*.f64 (-.f64 d2 d3) 2)))
(*.f64 (*.f64 d1 1/2) (+.f64 (*.f64 (-.f64 d2 d3) 2) (+.f64 d4 d4)))
(*.f64 (*.f64 d1 (/.f64 (+.f64 (-.f64 d2 d3) d4) 2)) 2)
(*.f64 (*.f64 (+.f64 (-.f64 d2 d3) d4) 1/2) (+.f64 d1 d1))
(*.f64 1/4 (*.f64 (+.f64 (-.f64 d2 d3) d4) (*.f64 d1 4)))
(*.f64 (/.f64 (+.f64 (-.f64 d2 d3) d4) 2) (+.f64 d1 d1))
(*.f64 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) 4) 4)
(/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) 1)
(/.f64 (*.f64 (+.f64 d1 d1) (+.f64 (-.f64 d2 d3) d4)) 2)
(/.f64 (*.f64 (+.f64 (-.f64 d2 d3) d4) (*.f64 d1 4)) 4)
(/.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) 8))) 32)
(pow.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) 1)
Outputs
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d4 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d4 d2)))
(*.f64 d1 (+.f64 (+.f64 d4 d2) (neg.f64 d3)))
(*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d4 d2)))
(*.f64 d1 (+.f64 (+.f64 d4 d2) (neg.f64 d3)))
(*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d4 d2)))
(*.f64 d1 (+.f64 (+.f64 d4 d2) (neg.f64 d3)))
(*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3))))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d4 d2)))
(*.f64 d1 (+.f64 (+.f64 d4 d2) (neg.f64 d3)))
(*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d4 d2)))
(*.f64 d1 (+.f64 (+.f64 d4 d2) (neg.f64 d3)))
(*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d4 d2)))
(*.f64 d1 (+.f64 (+.f64 d4 d2) (neg.f64 d3)))
(*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3))))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d4 d2)))
(*.f64 d1 (+.f64 (+.f64 d4 d2) (neg.f64 d3)))
(*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d4 d2)))
(*.f64 d1 (+.f64 (+.f64 d4 d2) (neg.f64 d3)))
(*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d4 d2)))
(*.f64 d1 (+.f64 (+.f64 d4 d2) (neg.f64 d3)))
(*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3))))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d4 d2)))
(*.f64 d1 (+.f64 (+.f64 d4 d2) (neg.f64 d3)))
(*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d4 d2)))
(*.f64 d1 (+.f64 (+.f64 d4 d2) (neg.f64 d3)))
(*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d4 d2)))
(*.f64 d1 (+.f64 (+.f64 d4 d2) (neg.f64 d3)))
(*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3))))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d4 d2)))
(*.f64 d1 (+.f64 (+.f64 d4 d2) (neg.f64 d3)))
(*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d4 d2)))
(*.f64 d1 (+.f64 (+.f64 d4 d2) (neg.f64 d3)))
(*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d4 d2)))
(*.f64 d1 (+.f64 (+.f64 d4 d2) (neg.f64 d3)))
(*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3))))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d4 d2)))
(*.f64 d1 (+.f64 (+.f64 d4 d2) (neg.f64 d3)))
(*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d4 d2)))
(*.f64 d1 (+.f64 (+.f64 d4 d2) (neg.f64 d3)))
(*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (+.f64 d4 d2)))
(*.f64 d1 (+.f64 (+.f64 d4 d2) (neg.f64 d3)))
(*.f64 d1 (+.f64 d4 (+.f64 d2 (neg.f64 d3))))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(-.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) 0)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) 1)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 1 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 2 (*.f64 d1 (/.f64 (+.f64 (-.f64 d2 d3) d4) 2)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 2 (+.f64 (*.f64 d4 (*.f64 d1 1/2)) (*.f64 (-.f64 d2 d3) (*.f64 d1 1/2))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 2 (+.f64 (*.f64 (-.f64 d2 d3) (*.f64 d1 1/2)) (*.f64 d4 (*.f64 d1 1/2))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 (-.f64 d2 d3) d4) 1/2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 (+.f64 d1 d1) (/.f64 (+.f64 (-.f64 d2 d3) d4) 2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 (+.f64 d1 d1) (+.f64 (*.f64 d4 1/2) (*.f64 (-.f64 d2 d3) 1/2)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 (+.f64 d1 d1) (+.f64 (*.f64 (-.f64 d2 d3) 1/2) (*.f64 d4 1/2)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 (*.f64 (+.f64 d1 d1) (+.f64 (-.f64 d2 d3) d4)) 1/2)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 (+.f64 (-.f64 d2 d3) d4) d1)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) 4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 (*.f64 (+.f64 (-.f64 d2 d3) d4) (*.f64 d1 4)) 1/4)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 (*.f64 2 (+.f64 (-.f64 d2 d3) d4)) (*.f64 d1 1/2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 1/2 (*.f64 (+.f64 d1 d1) (+.f64 (-.f64 d2 d3) d4)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 1/2 (+.f64 (*.f64 d1 (+.f64 d4 d4)) (*.f64 (-.f64 d2 d3) (+.f64 d1 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 1/2 (+.f64 (*.f64 (-.f64 d2 d3) (+.f64 d1 d1)) (*.f64 d1 (+.f64 d4 d4))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 (-.f64 d2 d3) d4)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d4 d4) (*.f64 (-.f64 d2 d3) 2)))
(*.f64 (*.f64 d1 1/2) (+.f64 d4 (+.f64 d4 (*.f64 (-.f64 d2 d3) 2))))
(*.f64 d1 (*.f64 1/2 (+.f64 d4 (+.f64 d4 (*.f64 (-.f64 d2 d3) 2)))))
(*.f64 (*.f64 d1 1/2) (+.f64 (*.f64 (-.f64 d2 d3) 2) (+.f64 d4 d4)))
(*.f64 (*.f64 d1 1/2) (+.f64 d4 (+.f64 d4 (*.f64 (-.f64 d2 d3) 2))))
(*.f64 d1 (*.f64 1/2 (+.f64 d4 (+.f64 d4 (*.f64 (-.f64 d2 d3) 2)))))
(*.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d4 d4) (*.f64 (-.f64 d2 d3) 2)))
(*.f64 (*.f64 d1 (/.f64 (+.f64 (-.f64 d2 d3) d4) 2)) 2)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 (*.f64 (+.f64 (-.f64 d2 d3) d4) 1/2) (+.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 1/4 (*.f64 (+.f64 (-.f64 d2 d3) d4) (*.f64 d1 4)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 (/.f64 (+.f64 (-.f64 d2 d3) d4) 2) (+.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) 4) 4)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) 1)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(/.f64 (*.f64 (+.f64 d1 d1) (+.f64 (-.f64 d2 d3) d4)) 2)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(/.f64 (*.f64 (+.f64 (-.f64 d2 d3) d4) (*.f64 d1 4)) 4)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(/.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) 8) 8)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) 8)) 16)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) 8))) 32)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(pow.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) 1)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))

localize4.0ms (0%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

localize6.0ms (0%)

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)

localize7.0ms (0%)

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)

series3.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite86.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
1422×bool.json-1
1422×bool.json-2
1380×exponential.json-3
1380×rational.json-1
1380×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0819
18719
224019
351719
4110619
5247919
6542219
Stop Event
node limit
Counts
1 → 11
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 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) 8)) (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))))))

simplify1.1s (5.8%)

Algorithm
egg-herbie
Rules
4550×rational.json-simplify-35
2484×rational.json-simplify-2
1036×rational.json-simplify-53
884×exponential.json-simplify-26
662×rational.json-simplify-1
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0511157
11121039
2217985
3464985
41736985
53463985
64204985
74567985
84749985
94905985
105058985
115723985
125806985
135874985
146025985
156153985
166248985
176463985
186617985
196771985
206925985
217079985
227233985
237387985
247541985
257541985
267541985
277695985
287849985
Stop Event
node limit
Counts
47 → 35
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 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 4)) 4)
(/.f64 (*.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) 8)) (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) 8))) 32)
(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 d3 (neg.f64 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 d3 (neg.f64 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 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 4)) 4)
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(/.f64 (*.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) 8) 8)
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) 8)) 16)
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) 8)) (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) 8))) 32)
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(pow.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) 1)
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))

localize8.0ms (0%)

Local error

Found 2 expressions with local error:

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

Compiled 27 to 8 computations (70.4% saved)

series3.0ms (0%)

Counts
2 → 60
Calls

15 calls:

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

rewrite170.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
1640×bool.json-1
1640×bool.json-2
1598×rational.json-1
1598×rational.json-2
1096×bool.json-3
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0938
19832
226632
358132
4121632
5275932
6616432
Stop Event
node limit
Counts
2 → 45
Calls
Call 1
Inputs
(+.f64 (*.f64 (-.f64 d2 d1) d1) (*.f64 d1 d4))
(*.f64 (-.f64 d2 d1) d1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (+.f64 (-.f64 d2 d1) d4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (-.f64 d2 d1) d4) (*.f64 d1 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 d1 (*.f64 d4 1/2)) (*.f64 (-.f64 d2 d1) (*.f64 d1 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (-.f64 d2 d1) (*.f64 d1 1/2)) (*.f64 d1 (*.f64 d4 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (*.f64 (+.f64 (-.f64 d2 d1) d4) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (/.f64 (+.f64 (-.f64 d2 d1) d4) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (+.f64 (*.f64 d4 1/2) (*.f64 (-.f64 d2 d1) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d1 d1) (+.f64 (*.f64 (-.f64 d2 d1) 1/2) (*.f64 d4 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (-.f64 d2 d1) d4) d1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 (-.f64 d2 d1) d4)) (*.f64 d1 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 d1 (+.f64 d4 d4)) (*.f64 (-.f64 d2 d1) (+.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (-.f64 d2 d1) (+.f64 d1 d1)) (*.f64 d1 (+.f64 d4 d4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 (-.f64 d2 d1) d4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d4 d4) (*.f64 (-.f64 d2 d1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 1/2) (+.f64 (*.f64 (-.f64 d2 d1) 2) (+.f64 d4 d4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (-.f64 d2 d1) d4) (*.f64 d1 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (-.f64 d2 d1) d4) 1/2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (-.f64 d2 d1) d4) 2) (+.f64 d1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 d1 (+.f64 (-.f64 d2 d1) d4))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)))))))
((#(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 (*.f64 d1 (-.f64 d2 d1)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d1)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d1)) 8)) (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d1)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (-.f64 d2 d1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 d1 (-.f64 d2 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 d1 (-.f64 d2 d1)) (*.f64 d1 (-.f64 d2 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 d1 (-.f64 d2 d1)) (*.f64 d1 (-.f64 d2 d1)))))))

simplify452.0ms (2.4%)

Algorithm
egg-herbie
Rules
2132×rational.json-simplify-2
1940×rational.json-simplify-35
1304×rational.json-simplify-1
1072×rational.json-simplify-51
954×exponential.json-simplify-26
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01172133
12372049
25902049
317622049
439692049
545592049
648572049
750692049
852222049
953702049
1063412049
1166112049
1269362049
1374162049
1477072049
1578072049
1679392049
Stop Event
node limit
Counts
105 → 67
Calls
Call 1
Inputs
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(*.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 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)))))
(*.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 -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 (-.f64 d2 d1) d4)) 0)
(*.f64 d1 (+.f64 (-.f64 d2 d1) d4))
(*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 1)
(*.f64 1 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)))
(*.f64 2 (*.f64 (+.f64 (-.f64 d2 d1) d4) (*.f64 d1 1/2)))
(*.f64 2 (+.f64 (*.f64 d1 (*.f64 d4 1/2)) (*.f64 (-.f64 d2 d1) (*.f64 d1 1/2))))
(*.f64 2 (+.f64 (*.f64 (-.f64 d2 d1) (*.f64 d1 1/2)) (*.f64 d1 (*.f64 d4 1/2))))
(*.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 2) 1/2)
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 (-.f64 d2 d1) d4) 1/2))
(*.f64 (+.f64 d1 d1) (/.f64 (+.f64 (-.f64 d2 d1) d4) 2))
(*.f64 (+.f64 d1 d1) (+.f64 (*.f64 d4 1/2) (*.f64 (-.f64 d2 d1) 1/2)))
(*.f64 (+.f64 d1 d1) (+.f64 (*.f64 (-.f64 d2 d1) 1/2) (*.f64 d4 1/2)))
(*.f64 (+.f64 (-.f64 d2 d1) d4) d1)
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 4))
(*.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 4) 1/4)
(*.f64 (*.f64 2 (+.f64 (-.f64 d2 d1) d4)) (*.f64 d1 1/2))
(*.f64 1/2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 2))
(*.f64 1/2 (+.f64 (*.f64 d1 (+.f64 d4 d4)) (*.f64 (-.f64 d2 d1) (+.f64 d1 d1))))
(*.f64 1/2 (+.f64 (*.f64 (-.f64 d2 d1) (+.f64 d1 d1)) (*.f64 d1 (+.f64 d4 d4))))
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 (-.f64 d2 d1) d4)))
(*.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d4 d4) (*.f64 (-.f64 d2 d1) 2)))
(*.f64 (*.f64 d1 1/2) (+.f64 (*.f64 (-.f64 d2 d1) 2) (+.f64 d4 d4)))
(*.f64 (*.f64 (+.f64 (-.f64 d2 d1) d4) (*.f64 d1 1/2)) 2)
(*.f64 (*.f64 (+.f64 (-.f64 d2 d1) d4) 1/2) (+.f64 d1 d1))
(*.f64 1/4 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 4))
(*.f64 (/.f64 (+.f64 (-.f64 d2 d1) d4) 2) (+.f64 d1 d1))
(*.f64 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 4) 4)
(/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 1)
(/.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 2) 2)
(/.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 4) 4)
(/.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 8))) 32)
(pow.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 1)
(+.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 (*.f64 d1 (-.f64 d2 d1)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d1)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d1)) 8)) (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d1)) 8))) 32)
(pow.f64 (*.f64 d1 (-.f64 d2 d1)) 1)
Outputs
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(*.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 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(*.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 d4) (*.f64 -1 d2)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d4 d2)))
(*.f64 (-.f64 d2 d1) d1)
(*.f64 d1 (-.f64 d2 d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.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 (-.f64 d2 d1) d4)) 0)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d1) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 1)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 1 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 2 (*.f64 (+.f64 (-.f64 d2 d1) d4) (*.f64 d1 1/2)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 2 (+.f64 (*.f64 d1 (*.f64 d4 1/2)) (*.f64 (-.f64 d2 d1) (*.f64 d1 1/2))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 2 (+.f64 (*.f64 (-.f64 d2 d1) (*.f64 d1 1/2)) (*.f64 d1 (*.f64 d4 1/2))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 2) 1/2)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 (+.f64 d1 d1) (*.f64 (+.f64 (-.f64 d2 d1) d4) 1/2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 (+.f64 d1 d1) (/.f64 (+.f64 (-.f64 d2 d1) d4) 2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 (+.f64 d1 d1) (+.f64 (*.f64 d4 1/2) (*.f64 (-.f64 d2 d1) 1/2)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 (+.f64 d1 d1) (+.f64 (*.f64 (-.f64 d2 d1) 1/2) (*.f64 d4 1/2)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 (+.f64 (-.f64 d2 d1) d4) d1)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 4 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 4) 1/4)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 (*.f64 2 (+.f64 (-.f64 d2 d1) d4)) (*.f64 d1 1/2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 1/2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 1/2 (+.f64 (*.f64 d1 (+.f64 d4 d4)) (*.f64 (-.f64 d2 d1) (+.f64 d1 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 1/2 (+.f64 (*.f64 (-.f64 d2 d1) (+.f64 d1 d1)) (*.f64 d1 (+.f64 d4 d4))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 (*.f64 d1 1/2) (*.f64 2 (+.f64 (-.f64 d2 d1) d4)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 (*.f64 d1 1/2) (+.f64 (+.f64 d4 d4) (*.f64 (-.f64 d2 d1) 2)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 (*.f64 d1 1/2) (+.f64 (*.f64 (-.f64 d2 d1) 2) (+.f64 d4 d4)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 (*.f64 (+.f64 (-.f64 d2 d1) d4) (*.f64 d1 1/2)) 2)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 (*.f64 (+.f64 (-.f64 d2 d1) d4) 1/2) (+.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 1/4 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 (/.f64 (+.f64 (-.f64 d2 d1) d4) 2) (+.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 (/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 4) 4)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(/.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 1)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(/.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 2) 2)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(/.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 4) 4)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(/.f64 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 8) 8)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 8)) 16)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 8)) (*.f64 2 (*.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 8))) 32)
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(pow.f64 (*.f64 d1 (+.f64 (-.f64 d2 d1) d4)) 1)
(*.f64 d1 (+.f64 d4 (-.f64 d2 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 (-.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 (*.f64 d1 (-.f64 d2 d1)) 8) 8)
(*.f64 d1 (-.f64 d2 d1))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d1)) 8)) 16)
(*.f64 d1 (-.f64 d2 d1))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d1)) 8)) (*.f64 2 (*.f64 (*.f64 d1 (-.f64 d2 d1)) 8))) 32)
(*.f64 d1 (-.f64 d2 d1))
(pow.f64 (*.f64 d1 (-.f64 d2 d1)) 1)
(*.f64 d1 (-.f64 d2 d1))

eval39.0ms (0.2%)

Compiler

Compiled 1788 to 688 computations (61.5% saved)

prune35.0ms (0.2%)

Pruning

14 alts after pruning (7 fresh and 7 done)

PrunedKeptTotal
New1715176
Fresh123
Picked011
Done167
Total17314187
Error
0.0b
Counts
187 → 14
Alt Table
Click to see full alt table
StatusErrorProgram
9.7b
(+.f64 (*.f64 (-.f64 d2 d3) d1) (*.f64 d1 d4))
19.3b
(+.f64 (*.f64 (-.f64 d2 d1) d1) (*.f64 d1 d4))
19.2b
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
28.5b
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
26.1b
(*.f64 (-.f64 d4 d3) d1)
26.8b
(*.f64 (-.f64 d2 d3) d1)
36.2b
(*.f64 (-.f64 d2 d1) d1)
33.5b
(*.f64 (+.f64 d3 d1) (neg.f64 d1))
9.9b
(*.f64 (*.f64 d1 1/2) (+.f64 d4 (+.f64 d4 (*.f64 (-.f64 d2 d3) 2))))
42.5b
(*.f64 d3 (neg.f64 d1))
45.1b
(*.f64 d2 d1)
35.7b
(*.f64 d1 (-.f64 d4 d1))
28.5b
(*.f64 d1 (+.f64 d4 d2))
44.7b
(*.f64 d1 d4)
Compiler

Compiled 218 to 146 computations (33% saved)

localize17.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 d4 (+.f64 d4 (*.f64 (-.f64 d2 d3) 2)))
0.3b
(*.f64 (*.f64 d1 1/2) (+.f64 d4 (+.f64 d4 (*.f64 (-.f64 d2 d3) 2))))
Compiler

Compiled 50 to 25 computations (50% saved)

series7.0ms (0%)

Counts
2 → 84
Calls

21 calls:

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

rewrite106.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
1858×bool.json-1
1104×bool.json-2
1070×exponential.json-3
1070×rational.json-1
1070×rational.json-2
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
01462
115062
236762
374750
4157144
5376638
6780538
Stop Event
node limit
Counts
2 → 29
Calls
Call 1
Inputs
(*.f64 (*.f64 d1 1/2) (+.f64 d4 (+.f64 d4 (*.f64 (-.f64 d2 d3) 2))))
(+.f64 d4 (+.f64 d4 (*.f64 (-.f64 d2 d3) 2)))
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 0 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 d1 1/2) (+.f64 d4 (-.f64 d2 d3))) (*.f64 (*.f64 d1 1/2) (+.f64 d4 (-.f64 d2 d3))))))) (#(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 d1 (+.f64 d4 (-.f64 d2 d3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 2 (+.f64 d4 (-.f64 d2 d3)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 (+.f64 d4 (-.f64 d2 d3)) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 8 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 8 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 8 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))) (*.f64 2 (*.f64 8 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 d4 (-.f64 d2 d3)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 d4 (-.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 d4 (-.f64 d2 d3)) 4) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d4 (-.f64 d2 d3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 d4 (-.f64 d2 d3)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 d4 (-.f64 d2 d3)) 2) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 d4 (-.f64 d2 d3)) 4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 4))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 2 (+.f64 d4 (-.f64 d2 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) (*.f64 2 (+.f64 d4 (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) (*.f64 2 (+.f64 d4 (-.f64 d2 d3))))))))

simplify985.0ms (5.2%)

Algorithm
egg-herbie
Rules
4140×rational.json-simplify-41
2472×rational.json-simplify-2
1868×rational.json-simplify-35
1106×rational.json-simplify-53
954×exponential.json-simplify-26
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0903467
11972533
24862425
313802425
429372425
535532425
636722425
737602425
838432425
939252425
1049282425
1155612425
1256452425
1357282425
1458112425
1558942425
1662472425
1762472425
1862472425
Stop Event
node limit
Counts
113 → 69
Calls
Call 1
Inputs
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 -2 d3)) d1))
(+.f64 (*.f64 d2 d1) (*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 -2 d3)) d1)))
(+.f64 (*.f64 d2 d1) (*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 -2 d3)) d1)))
(+.f64 (*.f64 d2 d1) (*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 -2 d3)) d1)))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 -2 d3)) d1)))
(+.f64 (*.f64 d2 d1) (*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 -2 d3)) d1)))
(+.f64 (*.f64 d2 d1) (*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 -2 d3)) d1)))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 -2 d3)) d1)))
(+.f64 (*.f64 d2 d1) (*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 -2 d3)) d1)))
(+.f64 (*.f64 d2 d1) (*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 -2 d3)) d1)))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 d2))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 d2)))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 d2)))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 d2)))))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 2 d2)) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 2 d2)) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 2 d2)) d1)))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 2 d2)) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 2 d2)) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 2 d2)) d1)))
(*.f64 2 (-.f64 d2 d3))
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(*.f64 2 d4)
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(*.f64 2 d4)
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(+.f64 (*.f64 2 d4) (*.f64 -2 d3))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 2 d2) (*.f64 -2 d3)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 2 d2) (*.f64 -2 d3)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 2 d2) (*.f64 -2 d3)))
(*.f64 2 d2)
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 -2 d3) (*.f64 2 d2)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 -2 d3) (*.f64 2 d2)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 -2 d3) (*.f64 2 d2)))
(*.f64 2 d2)
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 -2 d3) (*.f64 2 d2)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 -2 d3) (*.f64 2 d2)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 -2 d3) (*.f64 2 d2)))
(+.f64 (*.f64 2 d4) (*.f64 2 d2))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 -2 d3) (*.f64 2 d2)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 -2 d3) (*.f64 2 d2)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 -2 d3) (*.f64 2 d2)))
(*.f64 -2 d3)
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 2 d2) (*.f64 -2 d3)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 2 d2) (*.f64 -2 d3)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 2 d2) (*.f64 -2 d3)))
(*.f64 -2 d3)
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 2 d2) (*.f64 -2 d3)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 2 d2) (*.f64 -2 d3)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 2 d2) (*.f64 -2 d3)))
(+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 0)
(+.f64 0 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))
(+.f64 (*.f64 (*.f64 d1 1/2) (+.f64 d4 (-.f64 d2 d3))) (*.f64 (*.f64 d1 1/2) (+.f64 d4 (-.f64 d2 d3))))
(-.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 0)
(/.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 1)
(/.f64 (*.f64 d1 (*.f64 2 (+.f64 d4 (-.f64 d2 d3)))) 2)
(/.f64 (*.f64 d1 (*.f64 (+.f64 d4 (-.f64 d2 d3)) 4)) 4)
(/.f64 (*.f64 8 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))) 8)
(/.f64 (*.f64 2 (*.f64 8 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 8 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))) (*.f64 2 (*.f64 8 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))))) 32)
(pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 1)
(-.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 0)
(*.f64 1/2 (*.f64 (+.f64 d4 (-.f64 d2 d3)) 4))
(*.f64 2 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 1)
(*.f64 1 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))))
(*.f64 (*.f64 (+.f64 d4 (-.f64 d2 d3)) 4) 1/2)
(*.f64 (+.f64 d4 (-.f64 d2 d3)) 2)
(*.f64 4 (/.f64 (+.f64 d4 (-.f64 d2 d3)) 2))
(*.f64 (*.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 4) 1/4)
(*.f64 1/4 (*.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 4))
(*.f64 (/.f64 (+.f64 d4 (-.f64 d2 d3)) 2) 4)
(/.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 1)
(/.f64 (*.f64 (+.f64 d4 (-.f64 d2 d3)) 4) 2)
(/.f64 (*.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 4) 4)
(/.f64 (*.f64 2 (*.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 4)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 4))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 4))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 4)))) 32)
(pow.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 1)
Outputs
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 -2 d3)) d1))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 d3 -2))))
(*.f64 d1 (*.f64 1/2 (+.f64 (*.f64 2 d4) (*.f64 d3 -2))))
(*.f64 (+.f64 (*.f64 2 d4) (*.f64 d3 -2)) (*.f64 1/2 d1))
(+.f64 (*.f64 d2 d1) (*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 -2 d3)) d1)))
(+.f64 (*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 d3 -2)))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (*.f64 1/2 (+.f64 (*.f64 2 d4) (*.f64 d3 -2)))) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (*.f64 1/2 (+.f64 (*.f64 2 d4) (*.f64 d3 -2)))))
(+.f64 (*.f64 d2 d1) (*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 -2 d3)) d1)))
(+.f64 (*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 d3 -2)))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (*.f64 1/2 (+.f64 (*.f64 2 d4) (*.f64 d3 -2)))) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (*.f64 1/2 (+.f64 (*.f64 2 d4) (*.f64 d3 -2)))))
(+.f64 (*.f64 d2 d1) (*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 -2 d3)) d1)))
(+.f64 (*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 d3 -2)))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (*.f64 1/2 (+.f64 (*.f64 2 d4) (*.f64 d3 -2)))) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (*.f64 1/2 (+.f64 (*.f64 2 d4) (*.f64 d3 -2)))))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 -2 d3)) d1)))
(+.f64 (*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 d3 -2)))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (*.f64 1/2 (+.f64 (*.f64 2 d4) (*.f64 d3 -2)))) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (*.f64 1/2 (+.f64 (*.f64 2 d4) (*.f64 d3 -2)))))
(+.f64 (*.f64 d2 d1) (*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 -2 d3)) d1)))
(+.f64 (*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 d3 -2)))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (*.f64 1/2 (+.f64 (*.f64 2 d4) (*.f64 d3 -2)))) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (*.f64 1/2 (+.f64 (*.f64 2 d4) (*.f64 d3 -2)))))
(+.f64 (*.f64 d2 d1) (*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 -2 d3)) d1)))
(+.f64 (*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 d3 -2)))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (*.f64 1/2 (+.f64 (*.f64 2 d4) (*.f64 d3 -2)))) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (*.f64 1/2 (+.f64 (*.f64 2 d4) (*.f64 d3 -2)))))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 -2 d3)) d1)))
(+.f64 (*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 d3 -2)))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (*.f64 1/2 (+.f64 (*.f64 2 d4) (*.f64 d3 -2)))) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (*.f64 1/2 (+.f64 (*.f64 2 d4) (*.f64 d3 -2)))))
(+.f64 (*.f64 d2 d1) (*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 -2 d3)) d1)))
(+.f64 (*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 d3 -2)))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (*.f64 1/2 (+.f64 (*.f64 2 d4) (*.f64 d3 -2)))) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (*.f64 1/2 (+.f64 (*.f64 2 d4) (*.f64 d3 -2)))))
(+.f64 (*.f64 d2 d1) (*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 -2 d3)) d1)))
(+.f64 (*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 d3 -2)))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (*.f64 1/2 (+.f64 (*.f64 2 d4) (*.f64 d3 -2)))) (*.f64 d1 d2))
(*.f64 d1 (+.f64 d2 (*.f64 1/2 (+.f64 (*.f64 2 d4) (*.f64 d3 -2)))))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 d2))))
(*.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 d4 d2))))
(*.f64 d1 (*.f64 1/2 (*.f64 2 (+.f64 d4 d2))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 d2)))))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 d4 d2)))))
(*.f64 d1 (+.f64 (*.f64 1/2 (*.f64 2 (+.f64 d4 d2))) (neg.f64 d3)))
(*.f64 d1 (+.f64 (neg.f64 d3) (*.f64 1/2 (*.f64 2 (+.f64 d4 d2)))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 d2)))))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 d4 d2)))))
(*.f64 d1 (+.f64 (*.f64 1/2 (*.f64 2 (+.f64 d4 d2))) (neg.f64 d3)))
(*.f64 d1 (+.f64 (neg.f64 d3) (*.f64 1/2 (*.f64 2 (+.f64 d4 d2)))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 d2)))))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 d4 d2)))))
(*.f64 d1 (+.f64 (*.f64 1/2 (*.f64 2 (+.f64 d4 d2))) (neg.f64 d3)))
(*.f64 d1 (+.f64 (neg.f64 d3) (*.f64 1/2 (*.f64 2 (+.f64 d4 d2)))))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 2 d2)) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 d2)))))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 d4 d2)))))
(*.f64 d1 (+.f64 (*.f64 1/2 (*.f64 2 (+.f64 d4 d2))) (neg.f64 d3)))
(*.f64 d1 (+.f64 (neg.f64 d3) (*.f64 1/2 (*.f64 2 (+.f64 d4 d2)))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 2 d2)) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 d2)))))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 d4 d2)))))
(*.f64 d1 (+.f64 (*.f64 1/2 (*.f64 2 (+.f64 d4 d2))) (neg.f64 d3)))
(*.f64 d1 (+.f64 (neg.f64 d3) (*.f64 1/2 (*.f64 2 (+.f64 d4 d2)))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 2 d2)) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 d2)))))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 d4 d2)))))
(*.f64 d1 (+.f64 (*.f64 1/2 (*.f64 2 (+.f64 d4 d2))) (neg.f64 d3)))
(*.f64 d1 (+.f64 (neg.f64 d3) (*.f64 1/2 (*.f64 2 (+.f64 d4 d2)))))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 2 d2)) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 d2)))))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 d4 d2)))))
(*.f64 d1 (+.f64 (*.f64 1/2 (*.f64 2 (+.f64 d4 d2))) (neg.f64 d3)))
(*.f64 d1 (+.f64 (neg.f64 d3) (*.f64 1/2 (*.f64 2 (+.f64 d4 d2)))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 2 d2)) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 d2)))))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 d4 d2)))))
(*.f64 d1 (+.f64 (*.f64 1/2 (*.f64 2 (+.f64 d4 d2))) (neg.f64 d3)))
(*.f64 d1 (+.f64 (neg.f64 d3) (*.f64 1/2 (*.f64 2 (+.f64 d4 d2)))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 1/2 (*.f64 (+.f64 (*.f64 2 d4) (*.f64 2 d2)) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 d2)))))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 1/2 (*.f64 d1 (*.f64 2 (+.f64 d4 d2)))))
(*.f64 d1 (+.f64 (*.f64 1/2 (*.f64 2 (+.f64 d4 d2))) (neg.f64 d3)))
(*.f64 d1 (+.f64 (neg.f64 d3) (*.f64 1/2 (*.f64 2 (+.f64 d4 d2)))))
(*.f64 2 (-.f64 d2 d3))
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(*.f64 2 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(*.f64 2 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(*.f64 2 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 2 d4)
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(*.f64 2 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(*.f64 2 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(*.f64 2 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 2 d4)
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(*.f64 2 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(*.f64 2 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(*.f64 2 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 2 d4) (*.f64 -2 d3))
(+.f64 (*.f64 2 d4) (*.f64 d3 -2))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 2 d2) (*.f64 -2 d3)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 d3 -2) (*.f64 2 d2)))
(+.f64 (*.f64 d3 -2) (*.f64 2 (+.f64 d4 d2)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 2 d2) (*.f64 -2 d3)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 d3 -2) (*.f64 2 d2)))
(+.f64 (*.f64 d3 -2) (*.f64 2 (+.f64 d4 d2)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 2 d2) (*.f64 -2 d3)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 d3 -2) (*.f64 2 d2)))
(+.f64 (*.f64 d3 -2) (*.f64 2 (+.f64 d4 d2)))
(*.f64 2 d2)
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 -2 d3) (*.f64 2 d2)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 d3 -2) (*.f64 2 d2)))
(+.f64 (*.f64 d3 -2) (*.f64 2 (+.f64 d4 d2)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 -2 d3) (*.f64 2 d2)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 d3 -2) (*.f64 2 d2)))
(+.f64 (*.f64 d3 -2) (*.f64 2 (+.f64 d4 d2)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 -2 d3) (*.f64 2 d2)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 d3 -2) (*.f64 2 d2)))
(+.f64 (*.f64 d3 -2) (*.f64 2 (+.f64 d4 d2)))
(*.f64 2 d2)
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 -2 d3) (*.f64 2 d2)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 d3 -2) (*.f64 2 d2)))
(+.f64 (*.f64 d3 -2) (*.f64 2 (+.f64 d4 d2)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 -2 d3) (*.f64 2 d2)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 d3 -2) (*.f64 2 d2)))
(+.f64 (*.f64 d3 -2) (*.f64 2 (+.f64 d4 d2)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 -2 d3) (*.f64 2 d2)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 d3 -2) (*.f64 2 d2)))
(+.f64 (*.f64 d3 -2) (*.f64 2 (+.f64 d4 d2)))
(+.f64 (*.f64 2 d4) (*.f64 2 d2))
(*.f64 2 (+.f64 d4 d2))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 -2 d3) (*.f64 2 d2)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 d3 -2) (*.f64 2 d2)))
(+.f64 (*.f64 d3 -2) (*.f64 2 (+.f64 d4 d2)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 -2 d3) (*.f64 2 d2)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 d3 -2) (*.f64 2 d2)))
(+.f64 (*.f64 d3 -2) (*.f64 2 (+.f64 d4 d2)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 -2 d3) (*.f64 2 d2)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 d3 -2) (*.f64 2 d2)))
(+.f64 (*.f64 d3 -2) (*.f64 2 (+.f64 d4 d2)))
(*.f64 -2 d3)
(*.f64 d3 -2)
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 2 d2) (*.f64 -2 d3)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 d3 -2) (*.f64 2 d2)))
(+.f64 (*.f64 d3 -2) (*.f64 2 (+.f64 d4 d2)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 2 d2) (*.f64 -2 d3)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 d3 -2) (*.f64 2 d2)))
(+.f64 (*.f64 d3 -2) (*.f64 2 (+.f64 d4 d2)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 2 d2) (*.f64 -2 d3)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 d3 -2) (*.f64 2 d2)))
(+.f64 (*.f64 d3 -2) (*.f64 2 (+.f64 d4 d2)))
(*.f64 -2 d3)
(*.f64 d3 -2)
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 2 d2) (*.f64 -2 d3)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 d3 -2) (*.f64 2 d2)))
(+.f64 (*.f64 d3 -2) (*.f64 2 (+.f64 d4 d2)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 2 d2) (*.f64 -2 d3)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 d3 -2) (*.f64 2 d2)))
(+.f64 (*.f64 d3 -2) (*.f64 2 (+.f64 d4 d2)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 2 d2) (*.f64 -2 d3)))
(+.f64 (*.f64 2 d4) (+.f64 (*.f64 d3 -2) (*.f64 2 d2)))
(+.f64 (*.f64 d3 -2) (*.f64 2 (+.f64 d4 d2)))
(+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 0)
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 0 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 (*.f64 d1 1/2) (+.f64 d4 (-.f64 d2 d3))) (*.f64 (*.f64 d1 1/2) (+.f64 d4 (-.f64 d2 d3))))
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(-.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 0)
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(/.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 1)
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(/.f64 (*.f64 d1 (*.f64 2 (+.f64 d4 (-.f64 d2 d3)))) 2)
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(/.f64 (*.f64 d1 (*.f64 (+.f64 d4 (-.f64 d2 d3)) 4)) 4)
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(/.f64 (*.f64 8 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))) 8)
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(/.f64 (*.f64 2 (*.f64 8 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))) 16)
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(/.f64 (+.f64 (*.f64 2 (*.f64 8 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))) (*.f64 2 (*.f64 8 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))))) 32)
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 1)
(*.f64 1/2 (*.f64 d1 (+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(-.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 0)
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(*.f64 2 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 1/2 (*.f64 (+.f64 d4 (-.f64 d2 d3)) 4))
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(*.f64 2 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 2 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(*.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 1)
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(*.f64 2 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 1 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))))
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(*.f64 2 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 (*.f64 (+.f64 d4 (-.f64 d2 d3)) 4) 1/2)
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(*.f64 2 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 (+.f64 d4 (-.f64 d2 d3)) 2)
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(*.f64 2 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 4 (/.f64 (+.f64 d4 (-.f64 d2 d3)) 2))
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(*.f64 2 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 (*.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 4) 1/4)
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(*.f64 2 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 1/4 (*.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 4))
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(*.f64 2 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 (/.f64 (+.f64 d4 (-.f64 d2 d3)) 2) 4)
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(*.f64 2 (+.f64 d4 (-.f64 d2 d3)))
(/.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 1)
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(*.f64 2 (+.f64 d4 (-.f64 d2 d3)))
(/.f64 (*.f64 (+.f64 d4 (-.f64 d2 d3)) 4) 2)
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(*.f64 2 (+.f64 d4 (-.f64 d2 d3)))
(/.f64 (*.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 4) 4)
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(*.f64 2 (+.f64 d4 (-.f64 d2 d3)))
(/.f64 (*.f64 2 (*.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 4)) 8)
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(*.f64 2 (+.f64 d4 (-.f64 d2 d3)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 4))) 16)
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(*.f64 2 (+.f64 d4 (-.f64 d2 d3)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 4))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 4)))) 32)
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(*.f64 2 (+.f64 d4 (-.f64 d2 d3)))
(pow.f64 (*.f64 2 (+.f64 d4 (-.f64 d2 d3))) 1)
(+.f64 (*.f64 2 d4) (*.f64 2 (-.f64 d2 d3)))
(*.f64 2 (+.f64 d4 (-.f64 d2 d3)))

localize6.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 15 to 6 computations (60% saved)

series2.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite103.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
1638×bool.json-1
1638×bool.json-2
1606×rational.json-1
1128×rational.json-simplify-35
1026×bool.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
17713
221713
345613
493413
5202213
6419013
7692713
Stop Event
node limit
Counts
1 → 12
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 d4 d2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (+.f64 d4 d2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 d1 (+.f64 d4 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (*.f64 (+.f64 d4 d2) 1/2)) (*.f64 d1 (*.f64 (+.f64 d4 d2) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 (+.f64 d4 d2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (+.f64 d4 d2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 d4 d2) (+.f64 d1 d1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (*.f64 (+.f64 d4 d2) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (+.f64 d4 d2)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d4 d2)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d4 d2)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d4 d2)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d4 d2)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (+.f64 d4 d2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 d1 (+.f64 d4 d2))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 d1 (+.f64 d4 d2)) (*.f64 d1 (+.f64 d4 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 d1 (+.f64 d4 d2)) (*.f64 d1 (+.f64 d4 d2)))))))

simplify544.0ms (2.9%)

Algorithm
egg-herbie
Rules
2974×rational.json-simplify-35
2090×rational.json-simplify-2
1332×rational.json-simplify-1
1138×exponential.json-simplify-26
1108×rational.json-simplify-53
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
044588
198588
2208588
3493588
42195588
54205588
65154588
75550588
85792588
95960588
106805588
117052588
127055588
137055588
147280588
157467588
167646588
177811588
187955588
Stop Event
node limit
Counts
48 → 18
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 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 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 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 (*.f64 d1 (+.f64 d4 d2)) 0)
(+.f64 0 (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 d1 (*.f64 (+.f64 d4 d2) 1/2)) (*.f64 d1 (*.f64 (+.f64 d4 d2) 1/2)))
(-.f64 (*.f64 d1 (+.f64 d4 d2)) 0)
(/.f64 (*.f64 d1 (+.f64 d4 d2)) 1)
(/.f64 (*.f64 (+.f64 d4 d2) (+.f64 d1 d1)) 2)
(/.f64 (*.f64 d1 (*.f64 (+.f64 d4 d2) 4)) 4)
(/.f64 (*.f64 (*.f64 d1 (+.f64 d4 d2)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d4 d2)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d4 d2)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d4 d2)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d4 d2)) 8)))) 64)
(pow.f64 (*.f64 d1 (+.f64 d4 d2)) 1)
Outputs
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d2 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d2 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d2 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d2 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d2 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d2 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 d4))
(+.f64 (*.f64 d1 (+.f64 d4 d2)) 0)
(*.f64 d1 (+.f64 d2 d4))
(+.f64 0 (*.f64 d1 (+.f64 d4 d2)))
(*.f64 d1 (+.f64 d2 d4))
(+.f64 (*.f64 d1 (*.f64 (+.f64 d4 d2) 1/2)) (*.f64 d1 (*.f64 (+.f64 d4 d2) 1/2)))
(*.f64 d1 (+.f64 d2 d4))
(-.f64 (*.f64 d1 (+.f64 d4 d2)) 0)
(*.f64 d1 (+.f64 d2 d4))
(/.f64 (*.f64 d1 (+.f64 d4 d2)) 1)
(*.f64 d1 (+.f64 d2 d4))
(/.f64 (*.f64 (+.f64 d4 d2) (+.f64 d1 d1)) 2)
(*.f64 d1 (+.f64 d2 d4))
(/.f64 (*.f64 d1 (*.f64 (+.f64 d4 d2) 4)) 4)
(*.f64 d1 (+.f64 d2 d4))
(/.f64 (*.f64 (*.f64 d1 (+.f64 d4 d2)) 8) 8)
(*.f64 d1 (+.f64 d2 d4))
(/.f64 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d4 d2)) 8)) 16)
(*.f64 d1 (+.f64 d2 d4))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d4 d2)) 8))) 32)
(*.f64 d1 (+.f64 d2 d4))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d4 d2)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 d1 (+.f64 d4 d2)) 8)))) 64)
(*.f64 d1 (+.f64 d2 d4))
(pow.f64 (*.f64 d1 (+.f64 d4 d2)) 1)
(*.f64 d1 (+.f64 d2 d4))

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)

localize5.0ms (0%)

Compiler

Compiled 15 to 6 computations (60% saved)

localize6.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 15 to 6 computations (60% saved)

series2.0ms (0%)

Counts
1 → 24
Calls

9 calls:

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

rewrite77.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
1338×bool.json-1
1338×bool.json-2
1296×exponential.json-3
1296×rational.json-1
1296×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
17613
221813
346913
495813
5209113
6477213
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 (-.f64 d4 d3) d1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 d4 d3) d1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 d4 d3) d1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 d4 d3) (*.f64 d1 1/2)) (*.f64 (-.f64 d4 d3) (*.f64 d1 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 d4 d3) d1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 d4 d3) d1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 d4 d3) (+.f64 d1 d1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 d4 d3) (*.f64 d1 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (-.f64 d4 d3) d1) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 d4 d3) d1) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 d4 d3) d1) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 d4 d3) d1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (-.f64 d4 d3) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (-.f64 d4 d3) d1) (*.f64 (-.f64 d4 d3) d1))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (-.f64 d4 d3) d1) (*.f64 (-.f64 d4 d3) d1))))))

simplify572.0ms (3%)

Algorithm
egg-herbie
Rules
4922×rational.json-simplify-41
3390×rational.json-simplify-35
2168×rational.json-simplify-2
1042×rational.json-simplify-53
990×exponential.json-simplify-26
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
040653
197503
2204503
3461503
41961503
53914503
64613503
74992503
85184503
95350503
105512503
116023503
126024503
136099503
146192503
156262503
166442503
176606503
186768503
196930503
207092503
Stop Event
node limit
Counts
35 → 17
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 (-.f64 d4 d3) d1) 0)
(+.f64 0 (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 (-.f64 d4 d3) (*.f64 d1 1/2)) (*.f64 (-.f64 d4 d3) (*.f64 d1 1/2)))
(-.f64 (*.f64 (-.f64 d4 d3) d1) 0)
(/.f64 (*.f64 (-.f64 d4 d3) d1) 1)
(/.f64 (*.f64 (-.f64 d4 d3) (+.f64 d1 d1)) 2)
(/.f64 (*.f64 (-.f64 d4 d3) (*.f64 d1 4)) 4)
(/.f64 (*.f64 (*.f64 (-.f64 d4 d3) d1) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 d4 d3) d1) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 d4 d3) d1) 8))) 32)
(pow.f64 (*.f64 (-.f64 d4 d3) d1) 1)
Outputs
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d4 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d4 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d4 (neg.f64 d3)))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d4 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d4 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d4 (neg.f64 d3)))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d4 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d4 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d4 (neg.f64 d3)))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d4 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d4 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d4 (neg.f64 d3)))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d4 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d4 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d4 (neg.f64 d3)))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d4 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d4 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d4 (neg.f64 d3)))
(+.f64 (*.f64 (-.f64 d4 d3) d1) 0)
(*.f64 d1 (-.f64 d4 d3))
(+.f64 0 (*.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (-.f64 d4 d3))
(+.f64 (*.f64 (-.f64 d4 d3) (*.f64 d1 1/2)) (*.f64 (-.f64 d4 d3) (*.f64 d1 1/2)))
(*.f64 d1 (-.f64 d4 d3))
(-.f64 (*.f64 (-.f64 d4 d3) d1) 0)
(*.f64 d1 (-.f64 d4 d3))
(/.f64 (*.f64 (-.f64 d4 d3) d1) 1)
(*.f64 d1 (-.f64 d4 d3))
(/.f64 (*.f64 (-.f64 d4 d3) (+.f64 d1 d1)) 2)
(*.f64 d1 (-.f64 d4 d3))
(/.f64 (*.f64 (-.f64 d4 d3) (*.f64 d1 4)) 4)
(*.f64 d1 (-.f64 d4 d3))
(/.f64 (*.f64 (*.f64 (-.f64 d4 d3) d1) 8) 8)
(*.f64 d1 (-.f64 d4 d3))
(/.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 d4 d3) d1) 8)) 16)
(*.f64 d1 (-.f64 d4 d3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 d4 d3) d1) 8))) 32)
(*.f64 d1 (-.f64 d4 d3))
(pow.f64 (*.f64 (-.f64 d4 d3) d1) 1)
(*.f64 d1 (-.f64 d4 d3))

eval20.0ms (0.1%)

Compiler

Compiled 1237 to 636 computations (48.6% saved)

prune22.0ms (0.1%)

Pruning

14 alts after pruning (2 fresh and 12 done)

PrunedKeptTotal
New1171118
Fresh112
Picked011
Done01111
Total11814132
Error
0.0b
Counts
132 → 14
Alt Table
Click to see full alt table
StatusErrorProgram
9.7b
(+.f64 (*.f64 (-.f64 d2 d3) d1) (*.f64 d1 d4))
19.3b
(+.f64 (*.f64 (-.f64 d2 d1) d1) (*.f64 d1 d4))
19.2b
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
28.5b
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
26.1b
(*.f64 (-.f64 d4 d3) d1)
26.8b
(*.f64 (-.f64 d2 d3) d1)
36.2b
(*.f64 (-.f64 d2 d1) d1)
33.5b
(*.f64 (+.f64 d3 d1) (neg.f64 d1))
9.9b
(*.f64 (*.f64 d1 1/2) (+.f64 d4 (+.f64 d4 (*.f64 (-.f64 d2 d3) 2))))
42.5b
(*.f64 d3 (neg.f64 d1))
45.1b
(*.f64 d2 d1)
35.7b
(*.f64 d1 (-.f64 d4 d1))
28.5b
(*.f64 d1 (+.f64 d4 d2))
44.7b
(*.f64 d1 d4)
Compiler

Compiled 144 to 96 computations (33.3% saved)

regimes60.0ms (0.3%)

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

5 calls:

13.0ms
d4
11.0ms
d1
11.0ms
d3
11.0ms
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
10.0ms
d2
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 225 to 83 computations (63.1% saved)

regimes90.0ms (0.5%)

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

4 calls:

60.0ms
d1
9.0ms
d4
9.0ms
d3
9.0ms
d2
Results
ErrorSegmentsBranch
0.0b1d1
0.0b1d2
0.0b1d3
0.0b1d4
Compiler

Compiled 143 to 53 computations (62.9% saved)

regimes135.0ms (0.7%)

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

4 calls:

62.0ms
d3
28.0ms
d4
21.0ms
d2
21.0ms
d1
Results
ErrorSegmentsBranch
2.9b3d1
2.4b2d2
2.5b3d3
1.8b3d4
Compiler

Compiled 107 to 48 computations (55.1% saved)

bsearch27.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
13.0ms
2.616806027598657e+61
2.648278360864718e+63
14.0ms
1.8651566395803665e-19
1.0075569553284489e-17
Results
24.0ms224×body256valid
Compiler

Compiled 362 to 241 computations (33.4% saved)

regimes80.0ms (0.4%)

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

4 calls:

24.0ms
d4
18.0ms
d3
18.0ms
d1
18.0ms
d2
Results
ErrorSegmentsBranch
2.9b3d1
2.4b2d2
2.5b3d3
7.5b3d4
Compiler

Compiled 86 to 44 computations (48.8% saved)

bsearch13.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
13.0ms
-4.2818245271987605e+21
-18828475395901415000.0
Results
12.0ms112×body256valid
Compiler

Compiled 194 to 129 computations (33.5% saved)

regimes256.0ms (1.4%)

Counts
11 → 2
Calls
Call 1
Inputs
(*.f64 d1 d4)
(*.f64 d2 d1)
(*.f64 d3 (neg.f64 d1))
(*.f64 d1 (+.f64 d4 d2))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 (-.f64 d2 d1) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d4 d3) d1)
(*.f64 (+.f64 d3 d1) (neg.f64 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:

145.0ms
d1
63.0ms
d2
24.0ms
d4
22.0ms
d3
Results
ErrorSegmentsBranch
11.5b7d1
4.6b2d2
5.6b3d3
8.5b4d4
Compiler

Compiled 79 to 42 computations (46.8% saved)

bsearch15.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
15.0ms
-1.4684528835225373e+82
-1.6025612210489947e+78
Results
14.0ms128×body256valid
Compiler

Compiled 202 to 137 computations (32.2% saved)

regimes104.0ms (0.5%)

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

4 calls:

33.0ms
d1
29.0ms
d3
24.0ms
d2
15.0ms
d4
Results
ErrorSegmentsBranch
14.7b7d1
11.3b4d2
13.6b5d3
12.5b3d4
Compiler

Compiled 65 to 36 computations (44.6% saved)

bsearch40.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
15.0ms
-8.380692608095561e-106
-2.3952268377059356e-110
9.0ms
-18828475395901415000.0
-6645300936381716000.0
15.0ms
-1.5951371702276856e+48
-3.591557979944241e+45
Results
36.0ms336×body256valid
Compiler

Compiled 459 to 324 computations (29.4% saved)

regimes109.0ms (0.6%)

Counts
8 → 7
Calls
Call 1
Inputs
(*.f64 d1 d4)
(*.f64 d2 d1)
(*.f64 d3 (neg.f64 d1))
(*.f64 d1 (+.f64 d4 d2))
(*.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 d1 (-.f64 d4 d1))
(*.f64 (-.f64 d4 d3) d1)
(*.f64 d1 (-.f64 d4 d1))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (+.f64 d4 d2))
(*.f64 (-.f64 d4 d3) d1)
Calls

4 calls:

35.0ms
d1
31.0ms
d4
27.0ms
d3
14.0ms
d2
Results
ErrorSegmentsBranch
14.7b7d1
13.1b2d2
13.6b5d3
11.2b7d4
Compiler

Compiled 59 to 34 computations (42.4% saved)

bsearch104.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
9.0ms
1.0275725554758726e+92
3.4879164952787834e+92
57.0ms
6.00656232162104e+56
2.616806027598657e+61
2.0ms
9.615124002020578e+53
1.0442789088458623e+54
7.0ms
1.5675852816606648e+46
2.253509136274966e+46
15.0ms
3.4195302282622084e-5
0.008813521133909059
13.0ms
1.8651566395803665e-19
1.0075569553284489e-17
Results
98.0ms528×body256valid
Compiler

Compiled 686 to 479 computations (30.2% saved)

regimes838.0ms (4.4%)

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

4 calls:

622.0ms
d3
103.0ms
d4
85.0ms
d1
26.0ms
d2
Results
ErrorSegmentsBranch
15.3b7d1
15.7b6d2
14.7b5d3
14.4b4d4
Compiler

Compiled 54 to 32 computations (40.7% saved)

bsearch261.0ms (1.4%)

Algorithm
binary-search
Steps
TimeLeftRight
18.0ms
2.616806027598657e+61
2.648278360864718e+63
15.0ms
3.4195302282622084e-5
0.008813521133909059
229.0ms
1.8651566395803665e-19
1.0075569553284489e-17
Results
253.0ms352×body256valid
Compiler

Compiled 466 to 325 computations (30.3% saved)

regimes124.0ms (0.7%)

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

4 calls:

35.0ms
d1
33.0ms
d4
27.0ms
d2
27.0ms
d3
Results
ErrorSegmentsBranch
19.5b7d1
17.8b6d2
18.2b5d3
17.8b7d4
Compiler

Compiled 49 to 30 computations (38.8% saved)

bsearch74.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
12.0ms
8.287760154497641e-203
4.565412639709866e-202
14.0ms
3.373393811165436e-247
3.3494858769177753e-245
14.0ms
-1.6033049185369103e-191
-2.1819393988502398e-193
20.0ms
-2.3952268377059356e-110
-9.702322925132266e-123
14.0ms
-4.2818245271987605e+21
-18828475395901415000.0
Results
68.0ms592×body256valid
Compiler

Compiled 736 to 535 computations (27.3% saved)

regimes79.0ms (0.4%)

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

4 calls:

31.0ms
d4
18.0ms
d1
18.0ms
d2
12.0ms
d3
Results
ErrorSegmentsBranch
25.8b5d1
23.0b5d2
19.5b3d3
21.1b9d4
Compiler

Compiled 39 to 26 computations (33.3% saved)

bsearch41.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
20.0ms
9.743066700469241e+173
6.859971217966445e+179
20.0ms
-3.022277477071694e+59
-1.9150406390880334e+45
Results
37.0ms304×body256valid
0.0msbody256infinite
Compiler

Compiled 387 to 283 computations (26.9% saved)

regimes88.0ms (0.5%)

Counts
3 → 9
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 d2 d1)
(*.f64 d3 (neg.f64 d1))
(*.f64 d2 d1)
(*.f64 d3 (neg.f64 d1))
(*.f64 d1 d4)
Calls

4 calls:

29.0ms
d4
24.0ms
d1
22.0ms
d2
12.0ms
d3
Results
ErrorSegmentsBranch
35.7b8d1
25.9b6d2
30.6b4d3
24.1b9d4
Compiler

Compiled 34 to 24 computations (29.4% saved)

bsearch121.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
14.0ms
2.616806027598657e+61
2.648278360864718e+63
19.0ms
1.0965340406605882e-96
5.046685891780233e-85
9.0ms
9.979580100392436e-120
1.8973764887300097e-119
15.0ms
7.698247121605813e-187
2.088175927955989e-183
19.0ms
3.591290370808007e-228
3.488082891793767e-223
9.0ms
-1.977352876769317e-260
-5.170399157946492e-261
17.0ms
-2.8081352695166594e-117
-1.0246082799442953e-120
18.0ms
-2.8302528502397422e-71
-3.7140601154291297e-78
Results
109.0ms960×body256valid
Compiler

Compiled 1046 to 797 computations (23.8% saved)

regimes37.0ms (0.2%)

Accuracy

Total -28.8b remaining (-90.5%)

Threshold costs -28.8b (-90.5%)

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

4 calls:

16.0ms
d1
8.0ms
d2
6.0ms
d3
5.0ms
d4
Results
ErrorSegmentsBranch
38.9b6d1
31.9b2d2
41.9b2d3
32.3b2d4
Compiler

Compiled 30 to 22 computations (26.7% saved)

bsearch16.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
15.0ms
-1.5951371702276856e+48
-3.591557979944241e+45
Results
14.0ms128×body256valid
Compiler

Compiled 154 to 113 computations (26.6% saved)

simplify11.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0132879
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(if (<=.f64 d4 1541463129877527/162259276829213363391578010288128) (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (if (<=.f64 d4 86000000000000002783532099078165027850303318194628948198948864) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3))))
(if (<=.f64 d2 -150000000000000000000) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))
(if (<=.f64 d2 -200000000000000000053219729416734553074804802362401618196263954906979517832626176) (*.f64 (-.f64 d2 d3) d1) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))
(if (<=.f64 d2 -65000000000000000821738837564785785656487968768) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d2 -6800000000000000000) (*.f64 (-.f64 d4 d3) d1) (if (<=.f64 d2 -5024025362805889/1322111937580497197903830616065542079656809365928562438569297590548811582472622691650378420879430569695182424050046716608512) (*.f64 (+.f64 d3 d1) (neg.f64 d1)) (*.f64 (-.f64 d4 d3) d1))))
(if (<=.f64 d4 7009600759022017/5192296858534827628530496329220096) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d4 5312662293228351/147573952589676412928) (*.f64 d1 (-.f64 d4 d1)) (if (<=.f64 d4 22500000000000000479471228422922679880584790016) (*.f64 (-.f64 d4 d3) d1) (if (<=.f64 d4 1000000000000000078291540404596243842305360299886116864) (*.f64 d1 (-.f64 d4 d1)) (if (<=.f64 d4 240000000000000019965985557181861851882709115256858986151936) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d4 209999999999999985950814517206789990676764596502325684822275562632471722815316231715052060672) (*.f64 d1 (+.f64 d4 d2)) (*.f64 (-.f64 d4 d3) d1)))))))
(if (<=.f64 d4 6490371073168535/649037107316853453566312041152512) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d4 7378697629483821/147573952589676412928) (*.f64 d1 (-.f64 d4 d1)) (if (<=.f64 d4 1199999999999999996354470064727217882687812791195897543010549760) (*.f64 (-.f64 d2 d3) d1) (*.f64 d1 (+.f64 d4 d2)))))
(if (<=.f64 d2 -82000000000000000000) (*.f64 d1 (+.f64 d4 d2)) (if (<=.f64 d2 -2698025344585293/93035356709837681990313447409664580397266094167976711716030745495121828878514934185752454491361736391777602765602070775492429008462675968) (*.f64 d1 (-.f64 d4 d1)) (if (<=.f64 d2 -4109481173084667/1284212866588958375791257295625031412487875928423626430541572486100764686107685747586344369208395617975337638880902885183842634826705030240021439152991181848133599529084092919480386659639727225896311829037056) (*.f64 d3 (neg.f64 d1)) (if (<=.f64 d2 2361660589884215/492012622892544834271389790732894657662927476722860263779722814473019822087813969212041474774160597375290836201288857198210756815506783814402799101977552824568363543598917391308333275538335033741802194070267666507650193099632451067528125735714134272643866558464) (*.f64 d1 (-.f64 d4 d1)) (if (<=.f64 d2 8119040131286125/88250436209631796779659651318894620729729809745361797646356310339459182198787453122058560031100937405340558296821374893066353027058699717113329784015217065825962377858834878767894752265396985241367417483713579073929216) (*.f64 d3 (neg.f64 d1)) (*.f64 d1 (-.f64 d4 d1)))))))
(if (<=.f64 d3 -300000000000000002656736747946704173317668121422712226709504) (*.f64 d3 (neg.f64 d1)) (if (<=.f64 d3 5499999999999999830082808642196428958686979614426946663460981556817177011975071415270572726080494900041528653195431625657947200134161793606610659474844015681756814832427859968) (*.f64 d1 (+.f64 d4 d2)) (*.f64 d3 (neg.f64 d1))))
(if (<=.f64 d4 -7740736710071047/4074071952668972172536891376818756322102936787331872501272280898708762599526673412366794752) (*.f64 d2 d1) (if (<=.f64 d4 -4906161388995347/181709681073901722637330951972001133588410340171829515070372549795159822028349480831547762678440891390190630401566544483383650407153664) (*.f64 d3 (neg.f64 d1)) (if (<=.f64 d4 -6093526629081225/553956966280111321359151042308621317197106853745652161186848528428353614047320326248246548509656023453846098404449586961587736474553087989908021159880755329796288475560940755137311819879076531853615938045960455092067922915100261601864210866521544040371494407003426519343169536) (*.f64 d2 d1) (if (<=.f64 d4 3792433208700417/833501804109981784259981473840157224643094790289488520049532226470504654727204008940179025108944286342866238824179155055736100206764920635045419506541353755761894697439251819807884785738976753091120627016985825247711343504684557661395484672) (*.f64 d3 (neg.f64 d1)) (if (<=.f64 d4 8266865586734265/76545051729020975577310162521900618820659871603466655644272117978380005723696097587725184512638784526308634214455061267843403507870735540391292521535824647434568377082591826884769598224146796816367616) (*.f64 d2 d1) (if (<=.f64 d4 6178129156512659/363419362147803445274661903944002267176820680343659030140745099590319644056698961663095525356881782780381260803133088966767300814307328) (*.f64 d3 (neg.f64 d1)) (if (<=.f64 d4 7740557828966491/286687326998758938951352611912760867599570623646035140467198604923365359511060601008752319138765710819328) (*.f64 d2 d1) (if (<=.f64 d4 699999999999999967425490093363732968991123446608377323924226048) (*.f64 d3 (neg.f64 d1)) (*.f64 d1 d4)))))))))
(if (<=.f64 d2 -300000000000000013153752913522859206390214295552) (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 d4)
Outputs
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(if (<=.f64 d4 1541463129877527/162259276829213363391578010288128) (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (if (<=.f64 d4 86000000000000002783532099078165027850303318194628948198948864) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3))))
(if (<=.f64 d2 -150000000000000000000) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))
(if (<=.f64 d2 -200000000000000000053219729416734553074804802362401618196263954906979517832626176) (*.f64 (-.f64 d2 d3) d1) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))
(if (<=.f64 d2 -65000000000000000821738837564785785656487968768) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d2 -6800000000000000000) (*.f64 (-.f64 d4 d3) d1) (if (<=.f64 d2 -5024025362805889/1322111937580497197903830616065542079656809365928562438569297590548811582472622691650378420879430569695182424050046716608512) (*.f64 (+.f64 d3 d1) (neg.f64 d1)) (*.f64 (-.f64 d4 d3) d1))))
(if (<=.f64 d4 7009600759022017/5192296858534827628530496329220096) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d4 5312662293228351/147573952589676412928) (*.f64 d1 (-.f64 d4 d1)) (if (<=.f64 d4 22500000000000000479471228422922679880584790016) (*.f64 (-.f64 d4 d3) d1) (if (<=.f64 d4 1000000000000000078291540404596243842305360299886116864) (*.f64 d1 (-.f64 d4 d1)) (if (<=.f64 d4 240000000000000019965985557181861851882709115256858986151936) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d4 209999999999999985950814517206789990676764596502325684822275562632471722815316231715052060672) (*.f64 d1 (+.f64 d4 d2)) (*.f64 (-.f64 d4 d3) d1)))))))
(if (<=.f64 d4 6490371073168535/649037107316853453566312041152512) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d4 7378697629483821/147573952589676412928) (*.f64 d1 (-.f64 d4 d1)) (if (<=.f64 d4 1199999999999999996354470064727217882687812791195897543010549760) (*.f64 (-.f64 d2 d3) d1) (*.f64 d1 (+.f64 d4 d2)))))
(if (<=.f64 d2 -82000000000000000000) (*.f64 d1 (+.f64 d4 d2)) (if (<=.f64 d2 -2698025344585293/93035356709837681990313447409664580397266094167976711716030745495121828878514934185752454491361736391777602765602070775492429008462675968) (*.f64 d1 (-.f64 d4 d1)) (if (<=.f64 d2 -4109481173084667/1284212866588958375791257295625031412487875928423626430541572486100764686107685747586344369208395617975337638880902885183842634826705030240021439152991181848133599529084092919480386659639727225896311829037056) (*.f64 d3 (neg.f64 d1)) (if (<=.f64 d2 2361660589884215/492012622892544834271389790732894657662927476722860263779722814473019822087813969212041474774160597375290836201288857198210756815506783814402799101977552824568363543598917391308333275538335033741802194070267666507650193099632451067528125735714134272643866558464) (*.f64 d1 (-.f64 d4 d1)) (if (<=.f64 d2 8119040131286125/88250436209631796779659651318894620729729809745361797646356310339459182198787453122058560031100937405340558296821374893066353027058699717113329784015217065825962377858834878767894752265396985241367417483713579073929216) (*.f64 d3 (neg.f64 d1)) (*.f64 d1 (-.f64 d4 d1)))))))
(if (<=.f64 d3 -300000000000000002656736747946704173317668121422712226709504) (*.f64 d3 (neg.f64 d1)) (if (<=.f64 d3 5499999999999999830082808642196428958686979614426946663460981556817177011975071415270572726080494900041528653195431625657947200134161793606610659474844015681756814832427859968) (*.f64 d1 (+.f64 d4 d2)) (*.f64 d3 (neg.f64 d1))))
(if (<=.f64 d4 -7740736710071047/4074071952668972172536891376818756322102936787331872501272280898708762599526673412366794752) (*.f64 d2 d1) (if (<=.f64 d4 -4906161388995347/181709681073901722637330951972001133588410340171829515070372549795159822028349480831547762678440891390190630401566544483383650407153664) (*.f64 d3 (neg.f64 d1)) (if (<=.f64 d4 -6093526629081225/553956966280111321359151042308621317197106853745652161186848528428353614047320326248246548509656023453846098404449586961587736474553087989908021159880755329796288475560940755137311819879076531853615938045960455092067922915100261601864210866521544040371494407003426519343169536) (*.f64 d2 d1) (if (<=.f64 d4 3792433208700417/833501804109981784259981473840157224643094790289488520049532226470504654727204008940179025108944286342866238824179155055736100206764920635045419506541353755761894697439251819807884785738976753091120627016985825247711343504684557661395484672) (*.f64 d3 (neg.f64 d1)) (if (<=.f64 d4 8266865586734265/76545051729020975577310162521900618820659871603466655644272117978380005723696097587725184512638784526308634214455061267843403507870735540391292521535824647434568377082591826884769598224146796816367616) (*.f64 d2 d1) (if (<=.f64 d4 6178129156512659/363419362147803445274661903944002267176820680343659030140745099590319644056698961663095525356881782780381260803133088966767300814307328) (*.f64 d3 (neg.f64 d1)) (if (<=.f64 d4 7740557828966491/286687326998758938951352611912760867599570623646035140467198604923365359511060601008752319138765710819328) (*.f64 d2 d1) (if (<=.f64 d4 699999999999999967425490093363732968991123446608377323924226048) (*.f64 d3 (neg.f64 d1)) (*.f64 d1 d4)))))))))
(if (<=.f64 d2 -300000000000000013153752913522859206390214295552) (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 d4)
Compiler

Compiled 404 to 214 computations (47% saved)

soundness193.0ms (1%)

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 101 to 27 computations (73.3% saved)

end109.0ms (0.6%)

Compiler

Compiled 386 to 144 computations (62.7% saved)

Profiling

Loading profile data...