Details

Time bar (total: 3.6s)

analyze344.0ms (9.5%)

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)

sample1.4s (37.5%)

Results
922.0ms8256×body256valid
415.0ms3713×body256infinite
Bogosity

preprocess127.0ms (3.5%)

Algorithm
egg-herbie
Rules
2080×rational.json-simplify-27
1474×rational.json-simplify-41
1458×rational.json-simplify-1
1200×rational.json-simplify-40
1196×rational.json-simplify-33
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
041301
1111301
2246301
3729301
42212301
54741301
65012301
75305301
85397301
95397301
106713301
117278301
127381301
137385301
147385301
157385301
167397301
044
144
Stop Event
unsound
saturated
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 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d1 d4)) (*.f64 d1 d1))
(-.f64 (+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (*.f64 d1 d3))) (*.f64 d1 d1))
(-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (-.f64 (*.f64 d1 d1) (*.f64 d1 d2)))
(-.f64 (+.f64 (-.f64 (*.f64 d2 d1) (*.f64 d2 d3)) (*.f64 d4 d2)) (*.f64 d2 d2))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d2 d3)) (*.f64 d2 d4)) (*.f64 d2 d2))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d2 d2)) (*.f64 d2 d4)) (*.f64 d2 d3))
(-.f64 (*.f64 d1 d2) (+.f64 (*.f64 d2 d3) (-.f64 (*.f64 d2 d2) (*.f64 d2 d4))))
(+.f64 (*.f64 d1 d2) (-.f64 (-.f64 (*.f64 d2 d4) (*.f64 d2 d2)) (*.f64 d2 d3)))
(-.f64 (+.f64 (-.f64 (*.f64 d3 d2) (*.f64 d3 d1)) (*.f64 d4 d3)) (*.f64 d3 d3))
(-.f64 (+.f64 (-.f64 (*.f64 d2 d3) (*.f64 d1 d3)) (*.f64 d3 d4)) (*.f64 d3 d3))
(+.f64 (-.f64 (*.f64 d2 d3) (*.f64 d1 d3)) (-.f64 (*.f64 d3 d4) (*.f64 d3 d3)))
(+.f64 (*.f64 d2 d3) (-.f64 (*.f64 d3 d4) (+.f64 (*.f64 d1 d3) (*.f64 d3 d3))))
(-.f64 (+.f64 (-.f64 (*.f64 d4 d2) (*.f64 d4 d3)) (*.f64 d1 d4)) (*.f64 d4 d4))
(-.f64 (+.f64 (-.f64 (*.f64 d2 d4) (*.f64 d3 d4)) (*.f64 d1 d4)) (*.f64 d4 d4))
(+.f64 (-.f64 (*.f64 d2 d4) (*.f64 d3 d4)) (-.f64 (*.f64 d1 d4) (*.f64 d4 d4)))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 d2)) (*.f64 d4 d1)) (*.f64 d1 d1))
(-.f64 (+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d3) (*.f64 d1 d2))) (*.f64 d1 d1))
(-.f64 (+.f64 (*.f64 d1 d3) (-.f64 (*.f64 d1 d4) (*.f64 d1 d2))) (*.f64 d1 d1))
(+.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 d1)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d2)))
(+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d2)) (-.f64 (*.f64 d1 d3) (*.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 d3)) (*.f64 d1 d4)) (*.f64 d1 d1))
(-.f64 (+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (*.f64 d1 d3))) (*.f64 d1 d1))
(-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (-.f64 (*.f64 d1 d1) (*.f64 d1 d2)))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d4)) (*.f64 d3 d1)) (*.f64 d1 d1))
(-.f64 (+.f64 (*.f64 d1 d3) (-.f64 (*.f64 d1 d2) (*.f64 d1 d4))) (*.f64 d1 d1))
(-.f64 (+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d3) (*.f64 d1 d4))) (*.f64 d1 d1))
(+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d4)) (-.f64 (*.f64 d1 d3) (*.f64 d1 d1)))
Symmetry

(sort d2 d4)

Compiler

Compiled 23 to 15 computations (34.8% saved)

simplify34.0ms (0.9%)

Algorithm
egg-herbie
Rules
554×rational.json-simplify-27
526×rational.json-simplify-29
444×rational.json-simplify-41
412×rational.json-simplify-33
394×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01343
12643
24943
312743
436243
578343
6147743
7208443
8240243
9250243
10253143
11253943
12253943
Stop Event
saturated
Counts
1 → 4
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 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d1 d4)) (*.f64 d1 d1))
(+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))
(-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (-.f64 (*.f64 d1 d3) (*.f64 d1 d2)))

eval1.0ms (0%)

Compiler

Compiled 64 to 18 computations (71.9% saved)

prune1.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New314
Fresh101
Picked000
Done000
Total415
Error
0.0b
Counts
5 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (-.f64 (*.f64 d1 d3) (*.f64 d1 d2)))
Compiler

Compiled 19 to 11 computations (42.1% saved)

localize13.0ms (0.3%)

Local error

Found 3 expressions with local error:

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

Compiled 49 to 11 computations (77.6% saved)

series7.0ms (0.2%)

Counts
3 → 108
Calls

27 calls:

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

rewrite29.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
248×bool.json-1
242×rational.json-1
242×rational.json-2
198×rational.json-simplify-1
184×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01381
17981
222781
351281
490981
5117581
6122481
7124681
Stop Event
saturated
Counts
3 → 39
Calls
Call 1
Inputs
(-.f64 (*.f64 d1 d3) (*.f64 d1 d2))
(-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (-.f64 (*.f64 d1 d3) (*.f64 d1 d2)))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d3) (neg.f64 (*.f64 d1 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 d2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (*.f64 d1 d3) (*.f64 d1 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (*.f64 d1 d2)) (*.f64 d1 d3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 d2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (*.f64 d1 d3) (*.f64 d1 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x or (-.f64 (*.f64 d1 d3) (*.f64 d1 d2)) (-.f64 (*.f64 d1 d3) (*.f64 d1 d2)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d4) (-.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (*.f64 d1 d3))) (neg.f64 (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1))) (neg.f64 (*.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (*.f64 d1 d1)) (+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (*.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d1)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 d1 d2) (*.f64 d1 d4)) (-.f64 (neg.f64 (*.f64 d1 d1)) (*.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (*.f64 d1 d1))) (*.f64 d1 d2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d1 d1)) (*.f64 d1 d4))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (neg.f64 (*.f64 d1 d1)) (*.f64 d1 d3)) (+.f64 (*.f64 d1 d2) (*.f64 d1 d4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 d1 d3) (+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 (*.f64 d1 d3) (+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (*.f64 d1 d3) (+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d3))) (+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d3))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d4) (neg.f64 (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (*.f64 d1 d1)) (*.f64 d1 d4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 d1 d1) (*.f64 d1 d4)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 (*.f64 d1 d1) (*.f64 d1 d4)))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (*.f64 d1 d1) (*.f64 d1 d4)))))) (#(struct:change #<rule egg-rr> (2) ((x or (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))))))

simplify177.0ms (4.9%)

Algorithm
egg-herbie
Rules
1068×rational.json-simplify-27
944×rational.json-simplify-1
750×rational.json-simplify-33
742×rational.json-simplify-41
558×rational.json-simplify-40
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01054025
12203961
24403889
38933889
417383889
528193889
632933889
735733889
836093889
936443889
1036853889
1137823889
1238523889
1339723889
1439733889
Stop Event
saturated
Counts
147 → 83
Calls
Call 1
Inputs
(*.f64 d1 (-.f64 d3 d2))
(*.f64 d1 (-.f64 d3 d2))
(*.f64 d1 (-.f64 d3 d2))
(*.f64 d1 (-.f64 d3 d2))
(*.f64 d1 (-.f64 d3 d2))
(*.f64 d1 (-.f64 d3 d2))
(*.f64 d1 (-.f64 d3 d2))
(*.f64 d1 (-.f64 d3 d2))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d3) (*.f64 -1 d2))))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d3) (*.f64 -1 d2))))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d3) (*.f64 -1 d2))))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d3) (*.f64 -1 d2))))
(*.f64 -1 (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 d1 d3)
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 d1 d3)
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 d1 d3)
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 -1 (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 -1 (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(*.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 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)) (*.f64 -1 d3)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)) (*.f64 -1 d3)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)) (*.f64 -1 d3)))))
(-.f64 (*.f64 d2 d1) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(*.f64 d1 d4)
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(*.f64 d1 d4)
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (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 -1 (*.f64 d1 d3))
(-.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 -1 (*.f64 d1 d3))
(-.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 (*.f64 d1 d4) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(*.f64 d2 d1)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(*.f64 d2 d1)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(*.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 d3) (neg.f64 (*.f64 d1 d2)))
(+.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 d2)) 0)
(+.f64 0 (-.f64 (*.f64 d1 d3) (*.f64 d1 d2)))
(+.f64 (neg.f64 (*.f64 d1 d2)) (*.f64 d1 d3))
(*.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 d2)) 1)
(*.f64 1 (-.f64 (*.f64 d1 d3) (*.f64 d1 d2)))
(*.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) -1)
(*.f64 -1 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)))
(neg.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)))
(+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (*.f64 d1 d1))))
(+.f64 (*.f64 d1 d4) (-.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d1 d1)))
(+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)))
(+.f64 (+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d3))) 0)
(+.f64 0 (+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d3))))
(+.f64 (+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (*.f64 d1 d3))) (neg.f64 (*.f64 d1 d1)))
(+.f64 (+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1))) (neg.f64 (*.f64 d1 d3)))
(+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))
(+.f64 (neg.f64 (*.f64 d1 d1)) (+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (*.f64 d1 d3))))
(+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1)))
(+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d1)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)))
(+.f64 (+.f64 (*.f64 d1 d2) (*.f64 d1 d4)) (-.f64 (neg.f64 (*.f64 d1 d1)) (*.f64 d1 d3)))
(+.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (*.f64 d1 d1))) (*.f64 d1 d2))
(+.f64 (neg.f64 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1))))
(+.f64 (-.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d1 d1)) (*.f64 d1 d4))
(+.f64 (-.f64 (neg.f64 (*.f64 d1 d1)) (*.f64 d1 d3)) (+.f64 (*.f64 d1 d2) (*.f64 d1 d4)))
(*.f64 (+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d3))) 1)
(*.f64 1 (+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d3))))
(*.f64 (-.f64 (*.f64 d1 d3) (+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))) -1)
(*.f64 -1 (-.f64 (*.f64 d1 d3) (+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))))
(neg.f64 (-.f64 (*.f64 d1 d3) (+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))))
(+.f64 (*.f64 d1 d4) (neg.f64 (*.f64 d1 d1)))
(+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) 0)
(+.f64 0 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))
(+.f64 (neg.f64 (*.f64 d1 d1)) (*.f64 d1 d4))
(*.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) 1)
(*.f64 1 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))
(*.f64 (-.f64 (*.f64 d1 d1) (*.f64 d1 d4)) -1)
(*.f64 -1 (-.f64 (*.f64 d1 d1) (*.f64 d1 d4)))
(neg.f64 (-.f64 (*.f64 d1 d1) (*.f64 d1 d4)))
Outputs
(*.f64 d1 (-.f64 d3 d2))
(*.f64 d1 (-.f64 d3 d2))
(*.f64 d1 (-.f64 d3 d2))
(*.f64 d1 (-.f64 d3 d2))
(*.f64 d1 (-.f64 d3 d2))
(*.f64 d1 (-.f64 d3 d2))
(*.f64 d1 (-.f64 d3 d2))
(*.f64 d1 (-.f64 d3 d2))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d3) (*.f64 -1 d2))))
(*.f64 d1 (-.f64 d3 d2))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d3) (*.f64 -1 d2))))
(*.f64 d1 (-.f64 d3 d2))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d3) (*.f64 -1 d2))))
(*.f64 d1 (-.f64 d3 d2))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d3) (*.f64 -1 d2))))
(*.f64 d1 (-.f64 d3 d2))
(*.f64 -1 (*.f64 d2 d1))
(neg.f64 (*.f64 d1 d2))
(*.f64 d1 (neg.f64 d2))
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (*.f64 d1 d3) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (*.f64 d1 d3) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 d3)
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (*.f64 d1 d3) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (*.f64 d1 d3) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 d3)
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (*.f64 d1 d3) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (*.f64 d1 d3) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 d3)
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (*.f64 d1 d3) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (*.f64 d1 d3) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 -1 (*.f64 d2 d1))
(neg.f64 (*.f64 d1 d2))
(*.f64 d1 (neg.f64 d2))
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (*.f64 d1 d3) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (*.f64 d1 d3) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 -1 (*.f64 d2 d1))
(neg.f64 (*.f64 d1 d2))
(*.f64 d1 (neg.f64 d2))
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (*.f64 d1 d3) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (*.f64 d1 d3) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(+.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 (-.f64 d2 d3) d4)) (neg.f64 (pow.f64 d1 2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)))
(+.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 (-.f64 d2 d3) d4)) (neg.f64 (pow.f64 d1 2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)))
(+.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 (-.f64 d2 d3) d4)) (neg.f64 (pow.f64 d1 2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)))
(*.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 (-.f64 d2 d3) d4)) (neg.f64 (pow.f64 d1 2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)))
(+.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 (-.f64 d2 d3) d4)) (neg.f64 (pow.f64 d1 2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)))
(+.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 (-.f64 d2 d3) d4)) (neg.f64 (pow.f64 d1 2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)))
(*.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 (*.f64 -1 d4) (*.f64 -1 d2)) (*.f64 -1 d3)))))
(+.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) (neg.f64 (pow.f64 d1 2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)) (*.f64 -1 d3)))))
(+.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) (neg.f64 (pow.f64 d1 2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)) (*.f64 -1 d3)))))
(+.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)) (neg.f64 (pow.f64 d1 2)))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 (+.f64 (-.f64 d2 d3) d4)))
(-.f64 (*.f64 d2 d1) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2)))
(+.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2)))
(+.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2)))
(+.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))))
(*.f64 d1 d4)
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2)))
(+.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2)))
(+.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2)))
(+.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))))
(*.f64 d1 d4)
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2)))
(+.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2)))
(+.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2)))
(+.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)) (pow.f64 d1 2))
(+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (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 d1 d4) (*.f64 d1 d2)) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2)))
(+.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 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 (*.f64 d1 d4) (*.f64 d1 d2)) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2)))
(+.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 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 (*.f64 d1 d4) (*.f64 d1 d2)) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2)))
(+.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2)))
(+.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 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 (*.f64 d1 d4) (*.f64 d1 d2)) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2)))
(+.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 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 (*.f64 d1 d4) (*.f64 d1 d2)) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2)))
(+.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2)))
(+.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 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 (*.f64 d1 d4) (*.f64 d1 d2)) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2)))
(+.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 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 (*.f64 d1 d4) (*.f64 d1 d2)) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2)))
(+.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))))
(-.f64 (*.f64 d1 d4) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2)))
(+.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2)))
(+.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2)))
(+.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))))
(*.f64 d2 d1)
(*.f64 d1 d2)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2)))
(+.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2)))
(+.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2)))
(+.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))))
(*.f64 d2 d1)
(*.f64 d1 d2)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2)))
(+.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2)))
(+.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2)))
(+.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (pow.f64 d1 2))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 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 d1 d4) (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 d1 d4) (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 d1 d4) (pow.f64 d1 2))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (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 d1 d4) (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 d1 d4) (pow.f64 d1 2))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (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 d1 d4) (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 d1 d4) (pow.f64 d1 2))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (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 d1 d4) (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 d1 d4) (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 d4) (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 d1 d4) (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 d1 d4) (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 d4) (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 d1 d4) (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 d1 d4) (pow.f64 d1 2))
(+.f64 (*.f64 d1 d3) (neg.f64 (*.f64 d1 d2)))
(-.f64 (*.f64 d1 d3) (*.f64 d1 d2))
(+.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 d2)) 0)
(+.f64 0 (-.f64 (*.f64 d1 d3) (*.f64 d1 d2)))
(+.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 d2)) 0)
(+.f64 (neg.f64 (*.f64 d1 d2)) (*.f64 d1 d3))
(-.f64 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 d2)) 1)
(-.f64 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 1 (-.f64 (*.f64 d1 d3) (*.f64 d1 d2)))
(-.f64 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) -1)
(-.f64 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 -1 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)))
(-.f64 (*.f64 d1 d3) (*.f64 d1 d2))
(neg.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)))
(-.f64 (*.f64 d1 d3) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (*.f64 d1 d1))))
(+.f64 (*.f64 d1 d2) (-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (*.f64 d1 d3)))
(+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 d4) (-.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 d2) (-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (*.f64 d1 d3)))
(+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (*.f64 d1 d1))))
(+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)))
(+.f64 (*.f64 d1 d2) (-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (*.f64 d1 d3)))
(+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (*.f64 d1 d1))))
(+.f64 (+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d3))) 0)
(+.f64 0 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1))))
(+.f64 0 (+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1))))
(+.f64 0 (+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (*.f64 d1 d1)))))
(+.f64 0 (+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d3))))
(+.f64 0 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1))))
(+.f64 0 (+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1))))
(+.f64 0 (+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (*.f64 d1 d1)))))
(+.f64 (+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (*.f64 d1 d3))) (neg.f64 (*.f64 d1 d1)))
(+.f64 (*.f64 d1 d2) (-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (*.f64 d1 d3)))
(+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (*.f64 d1 d1))))
(+.f64 (+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1))) (neg.f64 (*.f64 d1 d3)))
(+.f64 (*.f64 d1 d2) (-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (*.f64 d1 d3)))
(+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (*.f64 d1 d1))))
(+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 d2) (-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (*.f64 d1 d3)))
(+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (*.f64 d1 d1))))
(+.f64 (neg.f64 (*.f64 d1 d1)) (+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (*.f64 d1 d3))))
(+.f64 (*.f64 d1 d2) (-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (*.f64 d1 d3)))
(+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (*.f64 d1 d1))))
(+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 d2) (-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (*.f64 d1 d3)))
(+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (*.f64 d1 d1))))
(+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d1)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)))
(+.f64 (*.f64 d1 d2) (-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (*.f64 d1 d3)))
(+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (*.f64 d1 d1))))
(+.f64 (+.f64 (*.f64 d1 d2) (*.f64 d1 d4)) (-.f64 (neg.f64 (*.f64 d1 d1)) (*.f64 d1 d3)))
(+.f64 (*.f64 d1 d2) (-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (*.f64 d1 d3)))
(+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (*.f64 d1 d1))))
(+.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (*.f64 d1 d1))) (*.f64 d1 d2))
(+.f64 (*.f64 d1 d2) (-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (*.f64 d1 d3)))
(+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (*.f64 d1 d1))))
(+.f64 (neg.f64 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1))))
(+.f64 (*.f64 d1 d2) (-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (*.f64 d1 d3)))
(+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (*.f64 d1 d1))))
(+.f64 (-.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d1 d1)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d2) (-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (*.f64 d1 d3)))
(+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (*.f64 d1 d1))))
(+.f64 (-.f64 (neg.f64 (*.f64 d1 d1)) (*.f64 d1 d3)) (+.f64 (*.f64 d1 d2) (*.f64 d1 d4)))
(+.f64 (*.f64 d1 d2) (-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (*.f64 d1 d3)))
(+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (*.f64 d1 d1))))
(*.f64 (+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d3))) 1)
(+.f64 (*.f64 d1 d2) (-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (*.f64 d1 d3)))
(+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (*.f64 d1 d1))))
(*.f64 1 (+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d3))))
(+.f64 (*.f64 d1 d2) (-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (*.f64 d1 d3)))
(+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (*.f64 d1 d1))))
(*.f64 (-.f64 (*.f64 d1 d3) (+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))) -1)
(+.f64 (*.f64 d1 d2) (-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (*.f64 d1 d3)))
(+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (*.f64 d1 d1))))
(*.f64 -1 (-.f64 (*.f64 d1 d3) (+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))))
(+.f64 (*.f64 d1 d2) (-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (*.f64 d1 d3)))
(+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (*.f64 d1 d1))))
(neg.f64 (-.f64 (*.f64 d1 d3) (+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))))
(+.f64 (*.f64 d1 d2) (-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (*.f64 d1 d3)))
(+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1)))
(+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (*.f64 d1 d1))))
(+.f64 (*.f64 d1 d4) (neg.f64 (*.f64 d1 d1)))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d1))
(+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) 0)
(+.f64 0 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))
(+.f64 0 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))
(+.f64 (neg.f64 (*.f64 d1 d1)) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d1))
(*.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) 1)
(-.f64 (*.f64 d1 d4) (*.f64 d1 d1))
(*.f64 1 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d1))
(*.f64 (-.f64 (*.f64 d1 d1) (*.f64 d1 d4)) -1)
(-.f64 (*.f64 d1 d4) (*.f64 d1 d1))
(*.f64 -1 (-.f64 (*.f64 d1 d1) (*.f64 d1 d4)))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d1))
(neg.f64 (-.f64 (*.f64 d1 d1) (*.f64 d1 d4)))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d1))

eval11.0ms (0.3%)

Compiler

Compiled 1164 to 256 computations (78% saved)

prune16.0ms (0.5%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New77683
Fresh000
Picked011
Done000
Total77784
Error
0.0b
Counts
84 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (-.f64 (*.f64 d1 d3) (*.f64 d1 d2)))
20.0b
(-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (*.f64 d1 (neg.f64 d2)))
18.4b
(-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (*.f64 d1 d3))
43.2b
(*.f64 d2 d1)
8.9b
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
41.8b
(*.f64 d1 (neg.f64 d3))
46.0b
(*.f64 d1 d4)
Compiler

Compiled 147 to 95 computations (35.4% saved)

localize9.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 23 to 7 computations (69.6% saved)

series4.0ms (0.1%)

Counts
1 → 36
Calls

12 calls:

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

rewrite11.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
110×bool.json-1
104×rational.json-1
104×rational.json-2
100×rational.json-simplify-2
78×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
14719
210619
319219
430919
542519
645519
747019
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 d2 (-.f64 d4 d3)) d1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 d2 (-.f64 d4 d3)) d1))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (+.f64 d2 (-.f64 d4 d3)) d1) (*.f64 (+.f64 d2 (-.f64 d4 d3)) d1))))))

simplify27.0ms (0.7%)

Algorithm
egg-herbie
Rules
224×rational.json-simplify-31
166×rational.json-simplify-2
76×rational.json-simplify-27
70×rational.json-simplify-1
60×rational.json-simplify-41
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
027872
150850
267850
390850
4128850
5173850
6241850
7342850
8393850
9419850
10425850
Stop Event
saturated
Counts
38 → 24
Calls
Call 1
Inputs
(*.f64 (-.f64 d4 d3) d1)
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d3) d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d3) d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 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 d1 (+.f64 d2 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 (+.f64 d2 (-.f64 d4 d3)) d1) 0)
(+.f64 0 (*.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
Outputs
(*.f64 (-.f64 d4 d3) d1)
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 d1 d2) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 d1 d2) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 d1 d2) (*.f64 (-.f64 d4 d3) d1))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 d1 d2) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 d1 d2) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 d1 d2) (*.f64 (-.f64 d4 d3) d1))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(+.f64 (*.f64 d1 d2) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(+.f64 (*.f64 d1 d2) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(+.f64 (*.f64 d1 d2) (*.f64 (-.f64 d4 d3) d1))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d4 d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d4 d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d4 d1))
(*.f64 d1 d4)
(*.f64 d4 d1)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d4 d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d4 d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d4 d1))
(*.f64 d1 d4)
(*.f64 d4 d1)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d4 d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d4 d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d4 d1))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 d1 (+.f64 d4 d2)) (*.f64 d1 (*.f64 -1 d3)))
(+.f64 (*.f64 d1 (+.f64 d4 d2)) (*.f64 d1 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 d1 (+.f64 d4 d2)) (*.f64 d1 (*.f64 -1 d3)))
(+.f64 (*.f64 d1 (+.f64 d4 d2)) (*.f64 d1 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 d1 (+.f64 d4 d2)) (*.f64 d1 (*.f64 -1 d3)))
(+.f64 (*.f64 d1 (+.f64 d4 d2)) (*.f64 d1 (neg.f64 d3)))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (*.f64 -1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 d1 (+.f64 d4 d2)) (*.f64 d1 (*.f64 -1 d3)))
(+.f64 (*.f64 d1 (+.f64 d4 d2)) (*.f64 d1 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 d1 (+.f64 d4 d2)) (*.f64 d1 (*.f64 -1 d3)))
(+.f64 (*.f64 d1 (+.f64 d4 d2)) (*.f64 d1 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 d1 (+.f64 d4 d2)) (*.f64 d1 (*.f64 -1 d3)))
(+.f64 (*.f64 d1 (+.f64 d4 d2)) (*.f64 d1 (neg.f64 d3)))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (*.f64 -1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 d1 (+.f64 d4 d2)) (*.f64 d1 (*.f64 -1 d3)))
(+.f64 (*.f64 d1 (+.f64 d4 d2)) (*.f64 d1 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 d1 (+.f64 d4 d2)) (*.f64 d1 (*.f64 -1 d3)))
(+.f64 (*.f64 d1 (+.f64 d4 d2)) (*.f64 d1 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 d1 (+.f64 d4 d2)) (*.f64 d1 (*.f64 -1 d3)))
(+.f64 (*.f64 d1 (+.f64 d4 d2)) (*.f64 d1 (neg.f64 d3)))
(+.f64 (*.f64 (+.f64 d2 (-.f64 d4 d3)) d1) 0)
(+.f64 (*.f64 d1 (+.f64 (-.f64 d4 d3) d2)) 0)
(+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 0)
(+.f64 0 (*.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(+.f64 (*.f64 d1 (+.f64 (-.f64 d4 d3) d2)) 0)
(+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 0)

localize4.0ms (0.1%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

localize6.0ms (0.2%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

localize5.0ms (0.1%)

Compiler

Compiled 12 to 6 computations (50% saved)

localize9.0ms (0.3%)

Local error

Found 2 expressions with local error:

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

Compiled 34 to 9 computations (73.5% saved)

series1.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite15.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
108×rational.json-simplify-2
108×bool.json-1
102×rational.json-1
102×rational.json-2
76×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01031
15731
214331
325431
434531
540631
642731
746031
Stop Event
saturated
Counts
1 → 13
Calls
Call 1
Inputs
(-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (*.f64 d1 d3))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d4) (-.f64 (neg.f64 (*.f64 d1 d3)) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (neg.f64 (*.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d1) (*.f64 d1 d3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d1) (*.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (neg.f64 (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (*.f64 d1 d3)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (*.f64 d1 d1)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (neg.f64 (*.f64 d1 d3)) (*.f64 d1 d1)) (*.f64 d1 d4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d1) (*.f64 d1 d3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d1) (*.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 d1 d1) (-.f64 (*.f64 d1 d3) (*.f64 d1 d4))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (+.f64 (*.f64 d1 d1) (-.f64 (*.f64 d1 d3) (*.f64 d1 d4))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 (*.f64 d1 d1) (-.f64 (*.f64 d1 d3) (*.f64 d1 d4))))))) (#(struct:change #<rule egg-rr> (2) ((x or (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d1) (*.f64 d1 d3))) (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d1) (*.f64 d1 d3))))))))

simplify45.0ms (1.2%)

Algorithm
egg-herbie
Rules
318×rational.json-simplify-27
294×rational.json-simplify-1
234×rational.json-simplify-31
228×rational.json-simplify-41
220×rational.json-simplify-2
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0531523
11101457
21871457
33261457
45351347
57841347
610481347
712611347
812861347
912891347
Stop Event
saturated
Counts
49 → 41
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 -1 (*.f64 (-.f64 (*.f64 -1 d4) (*.f64 -1 d3)) d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d4) (*.f64 -1 d3)) d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d4) (*.f64 -1 d3)) d1)))
(*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(-.f64 (*.f64 d1 d4) (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 d1 d4)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(*.f64 -1 (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (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 d1 d4)) (pow.f64 d1 2))
(*.f64 -1 (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (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 d1 d4)) (pow.f64 d1 2))
(+.f64 (*.f64 d1 d4) (-.f64 (neg.f64 (*.f64 d1 d3)) (*.f64 d1 d1)))
(+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (neg.f64 (*.f64 d1 d3)))
(+.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d1) (*.f64 d1 d3))) 0)
(+.f64 0 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d1) (*.f64 d1 d3))))
(+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (neg.f64 (*.f64 d1 d1)))
(+.f64 (neg.f64 (*.f64 d1 d3)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))
(+.f64 (neg.f64 (*.f64 d1 d1)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)))
(+.f64 (-.f64 (neg.f64 (*.f64 d1 d3)) (*.f64 d1 d1)) (*.f64 d1 d4))
(*.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d1) (*.f64 d1 d3))) 1)
(*.f64 1 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d1) (*.f64 d1 d3))))
(*.f64 (+.f64 (*.f64 d1 d1) (-.f64 (*.f64 d1 d3) (*.f64 d1 d4))) -1)
(*.f64 -1 (+.f64 (*.f64 d1 d1) (-.f64 (*.f64 d1 d3) (*.f64 d1 d4))))
(neg.f64 (+.f64 (*.f64 d1 d1) (-.f64 (*.f64 d1 d3) (*.f64 d1 d4))))
Outputs
(*.f64 (-.f64 d4 d3) d1)
(*.f64 d1 (-.f64 d4 d3))
(+.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 d1 (-.f64 d4 d3)) (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 d1 (-.f64 d4 d3)) (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 d1 (-.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 (-.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 d1 (-.f64 d4 d3)) (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 d1 (-.f64 d4 d3)) (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 d1 (-.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 -1 (*.f64 (-.f64 (*.f64 -1 d4) (*.f64 -1 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 d1 (-.f64 d4 d3)) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d4) (*.f64 -1 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 d1 (-.f64 d4 d3)) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d4) (*.f64 -1 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 d1 (-.f64 d4 d3)) (neg.f64 (pow.f64 d1 2)))
(*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d3 d1)))
(-.f64 (neg.f64 (pow.f64 d1 2)) (*.f64 d3 d1))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d3 d1))) (*.f64 d4 d1))
(-.f64 (*.f64 d4 d1) (+.f64 (pow.f64 d1 2) (*.f64 d3 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d3 d1))) (*.f64 d4 d1))
(-.f64 (*.f64 d4 d1) (+.f64 (pow.f64 d1 2) (*.f64 d3 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d3 d1))) (*.f64 d4 d1))
(-.f64 (*.f64 d4 d1) (+.f64 (pow.f64 d1 2) (*.f64 d3 d1)))
(*.f64 d1 d4)
(*.f64 d4 d1)
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d3 d1))) (*.f64 d4 d1))
(-.f64 (*.f64 d4 d1) (+.f64 (pow.f64 d1 2) (*.f64 d3 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d3 d1))) (*.f64 d4 d1))
(-.f64 (*.f64 d4 d1) (+.f64 (pow.f64 d1 2) (*.f64 d3 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d3 d1))) (*.f64 d4 d1))
(-.f64 (*.f64 d4 d1) (+.f64 (pow.f64 d1 2) (*.f64 d3 d1)))
(*.f64 d1 d4)
(*.f64 d4 d1)
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d3 d1))) (*.f64 d4 d1))
(-.f64 (*.f64 d4 d1) (+.f64 (pow.f64 d1 2) (*.f64 d3 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d3 d1))) (*.f64 d4 d1))
(-.f64 (*.f64 d4 d1) (+.f64 (pow.f64 d1 2) (*.f64 d3 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 d3))))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d3 d1))) (*.f64 d4 d1))
(-.f64 (*.f64 d4 d1) (+.f64 (pow.f64 d1 2) (*.f64 d3 d1)))
(-.f64 (*.f64 d1 d4) (pow.f64 d1 2))
(-.f64 (*.f64 d4 d1) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d3 d1))) (*.f64 d4 d1))
(-.f64 (*.f64 d4 d1) (+.f64 (pow.f64 d1 2) (*.f64 d3 d1)))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d3 d1))) (*.f64 d4 d1))
(-.f64 (*.f64 d4 d1) (+.f64 (pow.f64 d1 2) (*.f64 d3 d1)))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d3 d1))) (*.f64 d4 d1))
(-.f64 (*.f64 d4 d1) (+.f64 (pow.f64 d1 2) (*.f64 d3 d1)))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d3 d1))
(*.f64 d1 (neg.f64 d3))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d3 d1))) (*.f64 d4 d1))
(-.f64 (*.f64 d4 d1) (+.f64 (pow.f64 d1 2) (*.f64 d3 d1)))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d3 d1))) (*.f64 d4 d1))
(-.f64 (*.f64 d4 d1) (+.f64 (pow.f64 d1 2) (*.f64 d3 d1)))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d3 d1))) (*.f64 d4 d1))
(-.f64 (*.f64 d4 d1) (+.f64 (pow.f64 d1 2) (*.f64 d3 d1)))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d3 d1))
(*.f64 d1 (neg.f64 d3))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d3 d1))) (*.f64 d4 d1))
(-.f64 (*.f64 d4 d1) (+.f64 (pow.f64 d1 2) (*.f64 d3 d1)))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d3 d1))) (*.f64 d4 d1))
(-.f64 (*.f64 d4 d1) (+.f64 (pow.f64 d1 2) (*.f64 d3 d1)))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d3 d1))) (*.f64 d4 d1))
(-.f64 (*.f64 d4 d1) (+.f64 (pow.f64 d1 2) (*.f64 d3 d1)))
(+.f64 (*.f64 d1 d4) (-.f64 (neg.f64 (*.f64 d1 d3)) (*.f64 d1 d1)))
(+.f64 (*.f64 d4 d1) (-.f64 (neg.f64 (*.f64 d3 d1)) (*.f64 d1 d1)))
(-.f64 (*.f64 d4 d1) (+.f64 (*.f64 d3 d1) (*.f64 d1 d1)))
(-.f64 (-.f64 (*.f64 d4 d1) (*.f64 d3 d1)) (*.f64 d1 d1))
(+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (neg.f64 (*.f64 d1 d3)))
(+.f64 (*.f64 d4 d1) (-.f64 (neg.f64 (*.f64 d3 d1)) (*.f64 d1 d1)))
(-.f64 (*.f64 d4 d1) (+.f64 (*.f64 d3 d1) (*.f64 d1 d1)))
(-.f64 (-.f64 (*.f64 d4 d1) (*.f64 d3 d1)) (*.f64 d1 d1))
(+.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d1) (*.f64 d1 d3))) 0)
(+.f64 (-.f64 (*.f64 d4 d1) (+.f64 (*.f64 d3 d1) (*.f64 d1 d1))) 0)
(+.f64 (-.f64 (-.f64 (*.f64 d4 d1) (*.f64 d3 d1)) (*.f64 d1 d1)) 0)
(+.f64 0 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d1) (*.f64 d1 d3))))
(+.f64 (-.f64 (*.f64 d4 d1) (+.f64 (*.f64 d3 d1) (*.f64 d1 d1))) 0)
(+.f64 (-.f64 (-.f64 (*.f64 d4 d1) (*.f64 d3 d1)) (*.f64 d1 d1)) 0)
(+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (neg.f64 (*.f64 d1 d1)))
(+.f64 (*.f64 d4 d1) (-.f64 (neg.f64 (*.f64 d3 d1)) (*.f64 d1 d1)))
(-.f64 (*.f64 d4 d1) (+.f64 (*.f64 d3 d1) (*.f64 d1 d1)))
(-.f64 (-.f64 (*.f64 d4 d1) (*.f64 d3 d1)) (*.f64 d1 d1))
(+.f64 (neg.f64 (*.f64 d1 d3)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))
(+.f64 (*.f64 d4 d1) (-.f64 (neg.f64 (*.f64 d3 d1)) (*.f64 d1 d1)))
(-.f64 (*.f64 d4 d1) (+.f64 (*.f64 d3 d1) (*.f64 d1 d1)))
(-.f64 (-.f64 (*.f64 d4 d1) (*.f64 d3 d1)) (*.f64 d1 d1))
(+.f64 (neg.f64 (*.f64 d1 d1)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)))
(+.f64 (*.f64 d4 d1) (-.f64 (neg.f64 (*.f64 d3 d1)) (*.f64 d1 d1)))
(-.f64 (*.f64 d4 d1) (+.f64 (*.f64 d3 d1) (*.f64 d1 d1)))
(-.f64 (-.f64 (*.f64 d4 d1) (*.f64 d3 d1)) (*.f64 d1 d1))
(+.f64 (-.f64 (neg.f64 (*.f64 d1 d3)) (*.f64 d1 d1)) (*.f64 d1 d4))
(+.f64 (*.f64 d4 d1) (-.f64 (neg.f64 (*.f64 d3 d1)) (*.f64 d1 d1)))
(-.f64 (*.f64 d4 d1) (+.f64 (*.f64 d3 d1) (*.f64 d1 d1)))
(-.f64 (-.f64 (*.f64 d4 d1) (*.f64 d3 d1)) (*.f64 d1 d1))
(*.f64 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d1) (*.f64 d1 d3))) 1)
(+.f64 (*.f64 d4 d1) (-.f64 (neg.f64 (*.f64 d3 d1)) (*.f64 d1 d1)))
(-.f64 (*.f64 d4 d1) (+.f64 (*.f64 d3 d1) (*.f64 d1 d1)))
(-.f64 (-.f64 (*.f64 d4 d1) (*.f64 d3 d1)) (*.f64 d1 d1))
(*.f64 1 (-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d1) (*.f64 d1 d3))))
(+.f64 (*.f64 d4 d1) (-.f64 (neg.f64 (*.f64 d3 d1)) (*.f64 d1 d1)))
(-.f64 (*.f64 d4 d1) (+.f64 (*.f64 d3 d1) (*.f64 d1 d1)))
(-.f64 (-.f64 (*.f64 d4 d1) (*.f64 d3 d1)) (*.f64 d1 d1))
(*.f64 (+.f64 (*.f64 d1 d1) (-.f64 (*.f64 d1 d3) (*.f64 d1 d4))) -1)
(+.f64 (*.f64 d4 d1) (-.f64 (neg.f64 (*.f64 d3 d1)) (*.f64 d1 d1)))
(-.f64 (*.f64 d4 d1) (+.f64 (*.f64 d3 d1) (*.f64 d1 d1)))
(-.f64 (-.f64 (*.f64 d4 d1) (*.f64 d3 d1)) (*.f64 d1 d1))
(*.f64 -1 (+.f64 (*.f64 d1 d1) (-.f64 (*.f64 d1 d3) (*.f64 d1 d4))))
(+.f64 (*.f64 d4 d1) (-.f64 (neg.f64 (*.f64 d3 d1)) (*.f64 d1 d1)))
(-.f64 (*.f64 d4 d1) (+.f64 (*.f64 d3 d1) (*.f64 d1 d1)))
(-.f64 (-.f64 (*.f64 d4 d1) (*.f64 d3 d1)) (*.f64 d1 d1))
(neg.f64 (+.f64 (*.f64 d1 d1) (-.f64 (*.f64 d1 d3) (*.f64 d1 d4))))
(+.f64 (*.f64 d4 d1) (-.f64 (neg.f64 (*.f64 d3 d1)) (*.f64 d1 d1)))
(-.f64 (*.f64 d4 d1) (+.f64 (*.f64 d3 d1) (*.f64 d1 d1)))
(-.f64 (-.f64 (*.f64 d4 d1) (*.f64 d3 d1)) (*.f64 d1 d1))

eval10.0ms (0.3%)

Compiler

Compiled 738 to 217 computations (70.6% saved)

prune21.0ms (0.6%)

Pruning

10 alts after pruning (6 fresh and 4 done)

PrunedKeptTotal
New73578
Fresh011
Picked011
Done235
Total751085
Error
0.0b
Counts
85 → 10
Alt Table
Click to see full alt table
StatusErrorProgram
20.0b
(-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (*.f64 d1 (neg.f64 d2)))
18.4b
(-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (*.f64 d1 d3))
8.9b
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d3) d1))
8.9b
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d4 d1))
27.0b
(*.f64 (-.f64 d4 d3) d1)
23.9b
(*.f64 (-.f64 d2 d3) d1)
43.2b
(*.f64 d2 d1)
28.6b
(*.f64 d1 (+.f64 d4 d2))
41.8b
(*.f64 d1 (neg.f64 d3))
46.0b
(*.f64 d1 d4)
Compiler

Compiled 175 to 113 computations (35.4% saved)

localize10.0ms (0.3%)

Local error

Found 2 expressions with local error:

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

Compiled 28 to 8 computations (71.4% saved)

series4.0ms (0.1%)

Counts
2 → 84
Calls

21 calls:

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

rewrite13.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
98×rational.json-simplify-2
70×bool.json-1
66×rational.json-simplify-31
64×rational.json-1
64×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01038
15238
210538
314938
417438
519538
621038
722838
823238
924838
1026038
1128038
Stop Event
saturated
Counts
2 → 4
Calls
Call 1
Inputs
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d4 d1))
(*.f64 d1 (-.f64 d2 d3))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (-.f64 d2 d3) d1) (*.f64 d1 d4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 (-.f64 d2 d3) d1) (*.f64 d1 d4)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 (-.f64 d2 d3) d1) (*.f64 d1 d4)) (+.f64 (*.f64 (-.f64 d2 d3) d1) (*.f64 d1 d4)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 d2 d3) d1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 d2 d3) d1))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (-.f64 d2 d3) d1) (*.f64 (-.f64 d2 d3) d1))))))

simplify55.0ms (1.5%)

Algorithm
egg-herbie
Rules
218×rational.json-simplify-31
202×rational.json-simplify-2
168×rational.json-simplify-27
140×rational.json-simplify-41
122×rational.json-simplify-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0351996
1641912
2911912
31331912
42001912
53031912
64281912
75851912
87491912
97861912
107941912
Stop Event
saturated
Counts
88 → 33
Calls
Call 1
Inputs
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 -1 (*.f64 (+.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 -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 (-.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 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (+.f64 (*.f64 (-.f64 d2 d3) d1) (*.f64 d1 d4)) 1)
(*.f64 1 (+.f64 (*.f64 (-.f64 d2 d3) d1) (*.f64 d1 d4)))
(+.f64 (*.f64 (-.f64 d2 d3) d1) 0)
(+.f64 0 (*.f64 (-.f64 d2 d3) d1))
Outputs
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d4) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (*.f64 -1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (*.f64 -1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 (neg.f64 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 d3)))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 d3)))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 d3)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 d3)))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (*.f64 -1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (*.f64 -1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (*.f64 -1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 (+.f64 (*.f64 (-.f64 d2 d3) d1) (*.f64 d1 d4)) 1)
(*.f64 (+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 d3))) 1)
(*.f64 1 (+.f64 (*.f64 (-.f64 d2 d3) d1) (*.f64 d1 d4)))
(*.f64 (+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 d3))) 1)
(+.f64 (*.f64 (-.f64 d2 d3) d1) 0)
(+.f64 (*.f64 d1 (-.f64 d2 d3)) 0)
(+.f64 0 (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) 0)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 15 to 6 computations (60% saved)

series4.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

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

rewrite5.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

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

simplify7.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
016578
119578
Stop Event
saturated
Counts
38 → 10
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)))
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 (*.f64 d1 d2) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d2) (*.f64 d1 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d2) (*.f64 d1 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d2) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d2) (*.f64 d1 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d2) (*.f64 d1 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d2) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d2) (*.f64 d1 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d2) (*.f64 d1 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d2) (*.f64 d1 d4))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (*.f64 d1 d4))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (*.f64 d1 d4))
(+.f64 (*.f64 d1 (+.f64 d4 d2)) 0)
(+.f64 (*.f64 d1 (+.f64 d2 d4)) 0)
(+.f64 0 (*.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 d1 (+.f64 d2 d4)) 0)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 15 to 6 computations (60% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

9 calls:

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

rewrite7.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
66×rational.json-simplify-2
54×bool.json-1
48×rational.json-1
48×rational.json-2
36×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
13813
28513
312913
415413
517513
619013
720013
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 (-.f64 d2 d3) d1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 d2 d3) d1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 d2 d3) d1))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (-.f64 d2 d3) d1) (*.f64 (-.f64 d2 d3) d1))))))

simplify20.0ms (0.5%)

Algorithm
egg-herbie
Rules
122×rational.json-simplify-31
112×rational.json-simplify-2
38×rational.json-simplify-27
30×rational.json-simplify-9
30×rational.json-simplify-41
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
015548
127506
238506
350506
470506
595506
6131506
7180506
8205506
9221506
10227506
Stop Event
saturated
Counts
26 → 10
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 (-.f64 d2 d3) d1) 0)
(+.f64 0 (*.f64 (-.f64 d2 d3) d1))
Outputs
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 (-.f64 d2 d3) d1) 0)
(+.f64 (*.f64 d1 (-.f64 d2 d3)) 0)
(+.f64 0 (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) 0)

localize5.0ms (0.1%)

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

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)

rewrite10.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
66×rational.json-simplify-2
54×bool.json-1
48×rational.json-1
48×rational.json-2
36×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
13813
28513
312913
415413
517513
619013
720013
Stop Event
saturated
Counts
1 → 2
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 or (*.f64 (-.f64 d4 d3) d1) (*.f64 (-.f64 d4 d3) d1))))))

simplify21.0ms (0.6%)

Algorithm
egg-herbie
Rules
122×rational.json-simplify-31
112×rational.json-simplify-2
38×rational.json-simplify-27
30×rational.json-simplify-9
30×rational.json-simplify-41
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
015548
127506
238506
350506
470506
595506
6131506
7180506
8205506
9221506
10227506
Stop Event
saturated
Counts
26 → 8
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))
Outputs
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 (-.f64 d4 d3) d1) 0)
(+.f64 (*.f64 d1 (-.f64 d4 d3)) 0)
(+.f64 0 (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) 0)

localize8.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 28 to 8 computations (71.4% saved)

series1.0ms (0%)

Counts
1 → 48
Calls

12 calls:

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

rewrite13.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
98×rational.json-simplify-2
70×bool.json-1
66×rational.json-simplify-31
64×rational.json-1
64×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01025
15225
210525
314925
417425
519725
621325
722625
823025
924525
1025725
1127725
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d3) d1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 d1 d2) (*.f64 (-.f64 d4 d3) d1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 d1 d2) (*.f64 (-.f64 d4 d3) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 d1 d2) (*.f64 (-.f64 d4 d3) d1)) (+.f64 (*.f64 d1 d2) (*.f64 (-.f64 d4 d3) d1)))))))

simplify37.0ms (1%)

Algorithm
egg-herbie
Rules
202×rational.json-simplify-2
188×rational.json-simplify-31
168×rational.json-simplify-27
136×rational.json-simplify-41
122×rational.json-simplify-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0331292
1621250
2901250
31321250
41981250
53011250
64251250
75621250
87261250
97621250
107701250
Stop Event
saturated
Counts
50 → 25
Calls
Call 1
Inputs
(*.f64 d1 (-.f64 d4 d3))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 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 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 (-.f64 d4 d3)) (*.f64 -1 d2))))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 (-.f64 d4 d3)) (*.f64 -1 d2))))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 (-.f64 d4 d3)) (*.f64 -1 d2))))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 (-.f64 d4 d3)) (*.f64 -1 d2))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.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 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 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 (*.f64 d2 d1) (*.f64 d1 d4))
(+.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 -1 (*.f64 d1 d3))
(+.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 -1 (*.f64 d1 d3))
(+.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 (*.f64 d1 d2) (*.f64 (-.f64 d4 d3) d1)) 1)
(*.f64 1 (+.f64 (*.f64 d1 d2) (*.f64 (-.f64 d4 d3) d1)))
Outputs
(*.f64 d1 (-.f64 d4 d3))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 d2))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d2) d3))
(*.f64 d1 (-.f64 d4 (-.f64 d3 d2)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d2) d3))
(*.f64 d1 (-.f64 d4 (-.f64 d3 d2)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d2) d3))
(*.f64 d1 (-.f64 d4 (-.f64 d3 d2)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d2) d3))
(*.f64 d1 (-.f64 d4 (-.f64 d3 d2)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d2) d3))
(*.f64 d1 (-.f64 d4 (-.f64 d3 d2)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d2) d3))
(*.f64 d1 (-.f64 d4 (-.f64 d3 d2)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d2) d3))
(*.f64 d1 (-.f64 d4 (-.f64 d3 d2)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d2) d3))
(*.f64 d1 (-.f64 d4 (-.f64 d3 d2)))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 (-.f64 d4 d3)) (*.f64 -1 d2))))
(*.f64 d1 (-.f64 (+.f64 d4 d2) d3))
(*.f64 d1 (-.f64 d4 (-.f64 d3 d2)))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 (-.f64 d4 d3)) (*.f64 -1 d2))))
(*.f64 d1 (-.f64 (+.f64 d4 d2) d3))
(*.f64 d1 (-.f64 d4 (-.f64 d3 d2)))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 (-.f64 d4 d3)) (*.f64 -1 d2))))
(*.f64 d1 (-.f64 (+.f64 d4 d2) d3))
(*.f64 d1 (-.f64 d4 (-.f64 d3 d2)))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 (-.f64 d4 d3)) (*.f64 -1 d2))))
(*.f64 d1 (-.f64 (+.f64 d4 d2) d3))
(*.f64 d1 (-.f64 d4 (-.f64 d3 d2)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d2) (*.f64 d1 (*.f64 -1 d3)))
(+.f64 (*.f64 d1 d2) (*.f64 d1 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (+.f64 (*.f64 d1 d2) (*.f64 d1 d4)))
(+.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (+.f64 (*.f64 d1 d2) (*.f64 d1 d4)))
(+.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (+.f64 (*.f64 d1 d2) (*.f64 d1 d4)))
(+.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (+.f64 (*.f64 d1 d2) (*.f64 d1 d4)))
(+.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (+.f64 (*.f64 d1 d2) (*.f64 d1 d4)))
(+.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (+.f64 (*.f64 d1 d2) (*.f64 d1 d4)))
(+.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (+.f64 (*.f64 d1 d2) (*.f64 d1 d4)))
(+.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (+.f64 (*.f64 d1 d2) (*.f64 d1 d4)))
(+.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (+.f64 (*.f64 d1 d2) (*.f64 d1 d4)))
(+.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d2) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (+.f64 (*.f64 d1 d2) (*.f64 d1 d4)))
(+.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (+.f64 (*.f64 d1 d2) (*.f64 d1 d4)))
(+.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (+.f64 (*.f64 d1 d2) (*.f64 d1 d4)))
(+.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (*.f64 -1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (+.f64 (*.f64 d1 d2) (*.f64 d1 d4)))
(+.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (+.f64 (*.f64 d1 d2) (*.f64 d1 d4)))
(+.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (+.f64 (*.f64 d1 d2) (*.f64 d1 d4)))
(+.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (*.f64 -1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (+.f64 (*.f64 d1 d2) (*.f64 d1 d4)))
(+.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (+.f64 (*.f64 d1 d2) (*.f64 d1 d4)))
(+.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 d1 (*.f64 -1 d3)) (+.f64 (*.f64 d1 d2) (*.f64 d1 d4)))
(+.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)))
(*.f64 (+.f64 (*.f64 d1 d2) (*.f64 (-.f64 d4 d3) d1)) 1)
(*.f64 (+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 d2)) 1)
(*.f64 1 (+.f64 (*.f64 d1 d2) (*.f64 (-.f64 d4 d3) d1)))
(*.f64 (+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 d2)) 1)

eval10.0ms (0.3%)

Compiler

Compiled 750 to 189 computations (74.8% saved)

prune16.0ms (0.4%)

Pruning

11 alts after pruning (4 fresh and 7 done)

PrunedKeptTotal
New91394
Fresh011
Picked101
Done178
Total9311104
Error
0.0b
Counts
104 → 11
Alt Table
Click to see full alt table
StatusErrorProgram
20.0b
(-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (*.f64 d1 (neg.f64 d2)))
18.4b
(-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (*.f64 d1 d3))
23.9b
(+.f64 (*.f64 d2 d1) (*.f64 d1 (neg.f64 d3)))
28.6b
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
27.0b
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4))
27.0b
(*.f64 (-.f64 d4 d3) d1)
23.9b
(*.f64 (-.f64 d2 d3) d1)
43.2b
(*.f64 d2 d1)
28.6b
(*.f64 d1 (+.f64 d4 d2))
41.8b
(*.f64 d1 (neg.f64 d3))
46.0b
(*.f64 d1 d4)
Compiler

Compiled 115 to 76 computations (33.9% saved)

localize8.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 24 to 8 computations (66.7% saved)

series1.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite9.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
80×rational.json-simplify-2
52×bool.json-1
50×rational.json-simplify-31
46×rational.json-1
46×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01023
14923
28823
310623
412523
512923
613423
714323
814823
915223
1016823
1118123
1220123
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)))))))

simplify13.0ms (0.4%)

Algorithm
egg-herbie
Rules
30×rational.json-simplify-2
10×rational.json-simplify-31
rational.json-simplify-1
rational.json-simplify-9
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
024762
141762
248762
350762
Stop Event
saturated
Counts
38 → 14
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 (*.f64 -1 d3) d4))
(*.f64 d1 (+.f64 (*.f64 -1 d3) d4))
(*.f64 d1 (+.f64 (*.f64 -1 d3) d4))
(*.f64 d1 (+.f64 (*.f64 -1 d3) d4))
(*.f64 d1 (+.f64 (*.f64 -1 d3) d4))
(*.f64 d1 (+.f64 (*.f64 -1 d3) d4))
(*.f64 d1 (+.f64 (*.f64 -1 d3) d4))
(*.f64 d1 (+.f64 (*.f64 -1 d3) d4))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) d3)))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) d3)))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) d3)))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) d3)))
(*.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 -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 (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)) 1)
(*.f64 1 (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)))
Outputs
(*.f64 d1 (+.f64 (*.f64 -1 d3) d4))
(*.f64 d1 (+.f64 d4 (neg.f64 d3)))
(*.f64 d1 (+.f64 (*.f64 -1 d3) d4))
(*.f64 d1 (+.f64 d4 (neg.f64 d3)))
(*.f64 d1 (+.f64 (*.f64 -1 d3) d4))
(*.f64 d1 (+.f64 d4 (neg.f64 d3)))
(*.f64 d1 (+.f64 (*.f64 -1 d3) d4))
(*.f64 d1 (+.f64 d4 (neg.f64 d3)))
(*.f64 d1 (+.f64 (*.f64 -1 d3) d4))
(*.f64 d1 (+.f64 d4 (neg.f64 d3)))
(*.f64 d1 (+.f64 (*.f64 -1 d3) d4))
(*.f64 d1 (+.f64 d4 (neg.f64 d3)))
(*.f64 d1 (+.f64 (*.f64 -1 d3) d4))
(*.f64 d1 (+.f64 d4 (neg.f64 d3)))
(*.f64 d1 (+.f64 (*.f64 -1 d3) d4))
(*.f64 d1 (+.f64 d4 (neg.f64 d3)))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) d3)))
(*.f64 d1 (*.f64 -1 (+.f64 d3 (*.f64 -1 d4))))
(*.f64 (+.f64 d3 (*.f64 -1 d4)) (*.f64 -1 d1))
(*.f64 (+.f64 d3 (*.f64 -1 d4)) (*.f64 d1 -1))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) d3)))
(*.f64 d1 (*.f64 -1 (+.f64 d3 (*.f64 -1 d4))))
(*.f64 (+.f64 d3 (*.f64 -1 d4)) (*.f64 -1 d1))
(*.f64 (+.f64 d3 (*.f64 -1 d4)) (*.f64 d1 -1))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) d3)))
(*.f64 d1 (*.f64 -1 (+.f64 d3 (*.f64 -1 d4))))
(*.f64 (+.f64 d3 (*.f64 -1 d4)) (*.f64 -1 d1))
(*.f64 (+.f64 d3 (*.f64 -1 d4)) (*.f64 d1 -1))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) d3)))
(*.f64 d1 (*.f64 -1 (+.f64 d3 (*.f64 -1 d4))))
(*.f64 (+.f64 d3 (*.f64 -1 d4)) (*.f64 -1 d1))
(*.f64 (+.f64 d3 (*.f64 -1 d4)) (*.f64 d1 -1))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (neg.f64 d3)))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (neg.f64 d3)))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (neg.f64 d3)))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (neg.f64 d3)))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (neg.f64 d3)))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (neg.f64 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 d1 d4) (*.f64 d1 (neg.f64 d3)))
(*.f64 (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)) 1)
(*.f64 (+.f64 (*.f64 d1 d4) (*.f64 d1 (neg.f64 d3))) 1)
(*.f64 1 (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)))
(*.f64 (+.f64 (*.f64 d1 d4) (*.f64 d1 (neg.f64 d3))) 1)

localize6.0ms (0.2%)

Compiler

Compiled 20 to 7 computations (65% saved)

localize9.0ms (0.3%)

Local error

Found 1 expressions with local error:

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

Compiled 24 to 8 computations (66.7% saved)

series1.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite9.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
80×rational.json-simplify-2
68×rational.json-simplify-31
52×bool.json-1
46×rational.json-1
46×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01023
14923
28823
310623
412623
513023
613523
714423
816023
916423
1018023
1119323
1221423
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(+.f64 (*.f64 d2 d1) (*.f64 d1 (neg.f64 d3)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 d1 d2) (*.f64 (neg.f64 d3) d1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 d1 d2) (*.f64 (neg.f64 d3) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 d1 d2) (*.f64 (neg.f64 d3) d1)) (+.f64 (*.f64 d1 d2) (*.f64 (neg.f64 d3) d1)))))))

simplify10.0ms (0.3%)

Algorithm
egg-herbie
Rules
30×rational.json-simplify-2
10×rational.json-simplify-31
rational.json-simplify-1
rational.json-simplify-9
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
025762
143762
250762
352762
Stop Event
saturated
Counts
38 → 13
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(*.f64 -1 (*.f64 d1 (+.f64 d3 (*.f64 -1 d2))))
(*.f64 -1 (*.f64 d1 (+.f64 d3 (*.f64 -1 d2))))
(*.f64 -1 (*.f64 d1 (+.f64 d3 (*.f64 -1 d2))))
(*.f64 -1 (*.f64 d1 (+.f64 d3 (*.f64 -1 d2))))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (+.f64 (*.f64 d1 d2) (*.f64 (neg.f64 d3) d1)) 1)
(*.f64 1 (+.f64 (*.f64 d1 d2) (*.f64 (neg.f64 d3) d1)))
Outputs
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 -1 (*.f64 d1 (+.f64 d3 (*.f64 -1 d2))))
(*.f64 d1 (*.f64 -1 (+.f64 d3 (*.f64 -1 d2))))
(*.f64 -1 (*.f64 d1 (+.f64 d3 (*.f64 -1 d2))))
(*.f64 d1 (*.f64 -1 (+.f64 d3 (*.f64 -1 d2))))
(*.f64 -1 (*.f64 d1 (+.f64 d3 (*.f64 -1 d2))))
(*.f64 d1 (*.f64 -1 (+.f64 d3 (*.f64 -1 d2))))
(*.f64 -1 (*.f64 d1 (+.f64 d3 (*.f64 -1 d2))))
(*.f64 d1 (*.f64 -1 (+.f64 d3 (*.f64 -1 d2))))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))
(*.f64 (+.f64 (*.f64 d1 d2) (*.f64 (neg.f64 d3) d1)) 1)
(*.f64 (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2)) 1)
(*.f64 1 (+.f64 (*.f64 d1 d2) (*.f64 (neg.f64 d3) d1)))
(*.f64 (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2)) 1)

localize10.0ms (0.3%)

Local error

Found 2 expressions with local error:

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

Compiled 38 to 10 computations (73.7% saved)

series3.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

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

rewrite15.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
116×rational.json-simplify-2
114×bool.json-1
108×rational.json-1
108×rational.json-2
78×rational.json-simplify-1
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01235
16635
215935
327735
438631
545031
646231
747131
Stop Event
saturated
Counts
1 → 13
Calls
Call 1
Inputs
(-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (*.f64 d1 (neg.f64 d2)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (*.f64 d1 d2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)) (neg.f64 (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (*.f64 d1 d1)) (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d1)) (*.f64 d1 d4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 (*.f64 d1 d1) (+.f64 (*.f64 d1 d4) (*.f64 d1 d2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 d1 d1) (+.f64 (*.f64 d1 d4) (*.f64 d1 d2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (*.f64 d1 d1) (+.f64 (*.f64 d1 d4) (*.f64 d1 d2))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1))) (+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1))))))))

simplify41.0ms (1.1%)

Algorithm
egg-herbie
Rules
296×rational.json-simplify-1
292×rational.json-simplify-27
226×rational.json-simplify-31
214×rational.json-simplify-41
208×rational.json-simplify-2
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0521645
11041565
21711489
32831489
44461375
56271375
69081375
711801375
812221375
912241375
Stop Event
saturated
Counts
49 → 44
Calls
Call 1
Inputs
(*.f64 (-.f64 d4 (*.f64 -1 d2)) d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 (*.f64 -1 d2)) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 (*.f64 -1 d2)) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 (*.f64 -1 d2)) d1))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 (*.f64 -1 d2)) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 (*.f64 -1 d2)) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 (*.f64 -1 d2)) d1))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d4) d2))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d4) d2))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d4) d2))))
(*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1))))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))))
(-.f64 (*.f64 d1 d4) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (pow.f64 d1 2))
(*.f64 d2 d1)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(*.f64 d2 d1)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1)))
(+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (*.f64 d1 d2))
(+.f64 (+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1))) 0)
(+.f64 0 (+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1))))
(+.f64 (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)) (neg.f64 (*.f64 d1 d1)))
(+.f64 (neg.f64 (*.f64 d1 d1)) (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)))
(+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))
(+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d1)) (*.f64 d1 d4))
(*.f64 (+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1))) 1)
(*.f64 1 (+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1))))
(*.f64 -1 (-.f64 (*.f64 d1 d1) (+.f64 (*.f64 d1 d4) (*.f64 d1 d2))))
(*.f64 (-.f64 (*.f64 d1 d1) (+.f64 (*.f64 d1 d4) (*.f64 d1 d2))) -1)
(neg.f64 (-.f64 (*.f64 d1 d1) (+.f64 (*.f64 d1 d4) (*.f64 d1 d2))))
Outputs
(*.f64 (-.f64 d4 (*.f64 -1 d2)) d1)
(*.f64 (-.f64 d4 (neg.f64 d2)) d1)
(*.f64 d1 (-.f64 d4 (neg.f64 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 (*.f64 -1 d2)) d1))
(+.f64 (*.f64 (-.f64 d4 (*.f64 -1 d2)) d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 (-.f64 d4 (neg.f64 d2)) d1) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (-.f64 d4 (neg.f64 d2))) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 (*.f64 -1 d2)) d1))
(+.f64 (*.f64 (-.f64 d4 (*.f64 -1 d2)) d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 (-.f64 d4 (neg.f64 d2)) d1) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (-.f64 d4 (neg.f64 d2))) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 (*.f64 -1 d2)) d1))
(+.f64 (*.f64 (-.f64 d4 (*.f64 -1 d2)) d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 (-.f64 d4 (neg.f64 d2)) d1) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (-.f64 d4 (neg.f64 d2))) (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 (*.f64 -1 d2)) d1))
(+.f64 (*.f64 (-.f64 d4 (*.f64 -1 d2)) d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 (-.f64 d4 (neg.f64 d2)) d1) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (-.f64 d4 (neg.f64 d2))) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 (*.f64 -1 d2)) d1))
(+.f64 (*.f64 (-.f64 d4 (*.f64 -1 d2)) d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 (-.f64 d4 (neg.f64 d2)) d1) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (-.f64 d4 (neg.f64 d2))) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 (*.f64 -1 d2)) d1))
(+.f64 (*.f64 (-.f64 d4 (*.f64 -1 d2)) d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 (-.f64 d4 (neg.f64 d2)) d1) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (-.f64 d4 (neg.f64 d2))) (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 -1 (*.f64 d1 (-.f64 (*.f64 -1 d4) d2))))
(+.f64 (*.f64 (-.f64 d4 (*.f64 -1 d2)) d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 (-.f64 d4 (neg.f64 d2)) d1) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (-.f64 d4 (neg.f64 d2))) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d4) d2))))
(+.f64 (*.f64 (-.f64 d4 (*.f64 -1 d2)) d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 (-.f64 d4 (neg.f64 d2)) d1) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (-.f64 d4 (neg.f64 d2))) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d4) d2))))
(+.f64 (*.f64 (-.f64 d4 (*.f64 -1 d2)) d1) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 (-.f64 d4 (neg.f64 d2)) d1) (neg.f64 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 (-.f64 d4 (neg.f64 d2))) (neg.f64 (pow.f64 d1 2)))
(*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1))))
(*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 (neg.f64 d2))))
(*.f64 -1 (-.f64 (pow.f64 d1 2) (*.f64 d2 d1)))
(-.f64 (*.f64 d2 d1) (pow.f64 d1 2))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 (neg.f64 d2)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (-.f64 (pow.f64 d1 2) (*.f64 d2 d1))) (*.f64 d4 d1))
(+.f64 (*.f64 d4 d1) (-.f64 (*.f64 d2 d1) (pow.f64 d1 2)))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 (neg.f64 d2)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (-.f64 (pow.f64 d1 2) (*.f64 d2 d1))) (*.f64 d4 d1))
(+.f64 (*.f64 d4 d1) (-.f64 (*.f64 d2 d1) (pow.f64 d1 2)))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 (neg.f64 d2)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (-.f64 (pow.f64 d1 2) (*.f64 d2 d1))) (*.f64 d4 d1))
(+.f64 (*.f64 d4 d1) (-.f64 (*.f64 d2 d1) (pow.f64 d1 2)))
(*.f64 d1 d4)
(*.f64 d4 d1)
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 (neg.f64 d2)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (-.f64 (pow.f64 d1 2) (*.f64 d2 d1))) (*.f64 d4 d1))
(+.f64 (*.f64 d4 d1) (-.f64 (*.f64 d2 d1) (pow.f64 d1 2)))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 (neg.f64 d2)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (-.f64 (pow.f64 d1 2) (*.f64 d2 d1))) (*.f64 d4 d1))
(+.f64 (*.f64 d4 d1) (-.f64 (*.f64 d2 d1) (pow.f64 d1 2)))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 (neg.f64 d2)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (-.f64 (pow.f64 d1 2) (*.f64 d2 d1))) (*.f64 d4 d1))
(+.f64 (*.f64 d4 d1) (-.f64 (*.f64 d2 d1) (pow.f64 d1 2)))
(*.f64 d1 d4)
(*.f64 d4 d1)
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 (neg.f64 d2)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (-.f64 (pow.f64 d1 2) (*.f64 d2 d1))) (*.f64 d4 d1))
(+.f64 (*.f64 d4 d1) (-.f64 (*.f64 d2 d1) (pow.f64 d1 2)))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 (neg.f64 d2)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (-.f64 (pow.f64 d1 2) (*.f64 d2 d1))) (*.f64 d4 d1))
(+.f64 (*.f64 d4 d1) (-.f64 (*.f64 d2 d1) (pow.f64 d1 2)))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 (neg.f64 d2)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (-.f64 (pow.f64 d1 2) (*.f64 d2 d1))) (*.f64 d4 d1))
(+.f64 (*.f64 d4 d1) (-.f64 (*.f64 d2 d1) (pow.f64 d1 2)))
(-.f64 (*.f64 d1 d4) (pow.f64 d1 2))
(-.f64 (*.f64 d4 d1) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (pow.f64 d1 2))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 (neg.f64 d2)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (-.f64 (pow.f64 d1 2) (*.f64 d2 d1))) (*.f64 d4 d1))
(+.f64 (*.f64 d4 d1) (-.f64 (*.f64 d2 d1) (pow.f64 d1 2)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (pow.f64 d1 2))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 (neg.f64 d2)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (-.f64 (pow.f64 d1 2) (*.f64 d2 d1))) (*.f64 d4 d1))
(+.f64 (*.f64 d4 d1) (-.f64 (*.f64 d2 d1) (pow.f64 d1 2)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (pow.f64 d1 2))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 (neg.f64 d2)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (-.f64 (pow.f64 d1 2) (*.f64 d2 d1))) (*.f64 d4 d1))
(+.f64 (*.f64 d4 d1) (-.f64 (*.f64 d2 d1) (pow.f64 d1 2)))
(*.f64 d2 d1)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 (neg.f64 d2)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (-.f64 (pow.f64 d1 2) (*.f64 d2 d1))) (*.f64 d4 d1))
(+.f64 (*.f64 d4 d1) (-.f64 (*.f64 d2 d1) (pow.f64 d1 2)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 (neg.f64 d2)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (-.f64 (pow.f64 d1 2) (*.f64 d2 d1))) (*.f64 d4 d1))
(+.f64 (*.f64 d4 d1) (-.f64 (*.f64 d2 d1) (pow.f64 d1 2)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 (neg.f64 d2)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (-.f64 (pow.f64 d1 2) (*.f64 d2 d1))) (*.f64 d4 d1))
(+.f64 (*.f64 d4 d1) (-.f64 (*.f64 d2 d1) (pow.f64 d1 2)))
(*.f64 d2 d1)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 (neg.f64 d2)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (-.f64 (pow.f64 d1 2) (*.f64 d2 d1))) (*.f64 d4 d1))
(+.f64 (*.f64 d4 d1) (-.f64 (*.f64 d2 d1) (pow.f64 d1 2)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 (neg.f64 d2)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (-.f64 (pow.f64 d1 2) (*.f64 d2 d1))) (*.f64 d4 d1))
(+.f64 (*.f64 d4 d1) (-.f64 (*.f64 d2 d1) (pow.f64 d1 2)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 -1 (*.f64 d2 d1)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (+.f64 (pow.f64 d1 2) (*.f64 d1 (neg.f64 d2)))) (*.f64 d4 d1))
(+.f64 (*.f64 -1 (-.f64 (pow.f64 d1 2) (*.f64 d2 d1))) (*.f64 d4 d1))
(+.f64 (*.f64 d4 d1) (-.f64 (*.f64 d2 d1) (pow.f64 d1 2)))
(+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1)))
(+.f64 (*.f64 d4 d1) (-.f64 (*.f64 d2 d1) (*.f64 d1 d1)))
(-.f64 (+.f64 (*.f64 d4 d1) (*.f64 d2 d1)) (*.f64 d1 d1))
(+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (*.f64 d1 d2))
(+.f64 (*.f64 d4 d1) (-.f64 (*.f64 d2 d1) (*.f64 d1 d1)))
(-.f64 (+.f64 (*.f64 d4 d1) (*.f64 d2 d1)) (*.f64 d1 d1))
(+.f64 (+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1))) 0)
(+.f64 (+.f64 (*.f64 d4 d1) (-.f64 (*.f64 d2 d1) (*.f64 d1 d1))) 0)
(+.f64 (-.f64 (*.f64 d2 d1) (*.f64 d1 d1)) (+.f64 (*.f64 d4 d1) 0))
(+.f64 (*.f64 d4 d1) (+.f64 (-.f64 (*.f64 d2 d1) (*.f64 d1 d1)) 0))
(+.f64 0 (+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1))))
(+.f64 (+.f64 (*.f64 d4 d1) (-.f64 (*.f64 d2 d1) (*.f64 d1 d1))) 0)
(+.f64 (-.f64 (*.f64 d2 d1) (*.f64 d1 d1)) (+.f64 (*.f64 d4 d1) 0))
(+.f64 (*.f64 d4 d1) (+.f64 (-.f64 (*.f64 d2 d1) (*.f64 d1 d1)) 0))
(+.f64 (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)) (neg.f64 (*.f64 d1 d1)))
(+.f64 (*.f64 d4 d1) (-.f64 (*.f64 d2 d1) (*.f64 d1 d1)))
(-.f64 (+.f64 (*.f64 d4 d1) (*.f64 d2 d1)) (*.f64 d1 d1))
(+.f64 (neg.f64 (*.f64 d1 d1)) (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)))
(+.f64 (*.f64 d4 d1) (-.f64 (*.f64 d2 d1) (*.f64 d1 d1)))
(-.f64 (+.f64 (*.f64 d4 d1) (*.f64 d2 d1)) (*.f64 d1 d1))
(+.f64 (*.f64 d1 d2) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))
(+.f64 (*.f64 d4 d1) (-.f64 (*.f64 d2 d1) (*.f64 d1 d1)))
(-.f64 (+.f64 (*.f64 d4 d1) (*.f64 d2 d1)) (*.f64 d1 d1))
(+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d1)) (*.f64 d1 d4))
(+.f64 (*.f64 d4 d1) (-.f64 (*.f64 d2 d1) (*.f64 d1 d1)))
(-.f64 (+.f64 (*.f64 d4 d1) (*.f64 d2 d1)) (*.f64 d1 d1))
(*.f64 (+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1))) 1)
(+.f64 (*.f64 d4 d1) (-.f64 (*.f64 d2 d1) (*.f64 d1 d1)))
(-.f64 (+.f64 (*.f64 d4 d1) (*.f64 d2 d1)) (*.f64 d1 d1))
(*.f64 1 (+.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d2) (*.f64 d1 d1))))
(+.f64 (*.f64 d4 d1) (-.f64 (*.f64 d2 d1) (*.f64 d1 d1)))
(-.f64 (+.f64 (*.f64 d4 d1) (*.f64 d2 d1)) (*.f64 d1 d1))
(*.f64 -1 (-.f64 (*.f64 d1 d1) (+.f64 (*.f64 d1 d4) (*.f64 d1 d2))))
(+.f64 (*.f64 d4 d1) (-.f64 (*.f64 d2 d1) (*.f64 d1 d1)))
(-.f64 (+.f64 (*.f64 d4 d1) (*.f64 d2 d1)) (*.f64 d1 d1))
(*.f64 (-.f64 (*.f64 d1 d1) (+.f64 (*.f64 d1 d4) (*.f64 d1 d2))) -1)
(+.f64 (*.f64 d4 d1) (-.f64 (*.f64 d2 d1) (*.f64 d1 d1)))
(-.f64 (+.f64 (*.f64 d4 d1) (*.f64 d2 d1)) (*.f64 d1 d1))
(neg.f64 (-.f64 (*.f64 d1 d1) (+.f64 (*.f64 d1 d4) (*.f64 d1 d2))))
(+.f64 (*.f64 d4 d1) (-.f64 (*.f64 d2 d1) (*.f64 d1 d1)))
(-.f64 (+.f64 (*.f64 d4 d1) (*.f64 d2 d1)) (*.f64 d1 d1))

eval11.0ms (0.3%)

Compiler

Compiled 839 to 283 computations (66.3% saved)

prune15.0ms (0.4%)

Pruning

11 alts after pruning (1 fresh and 10 done)

PrunedKeptTotal
New83184
Fresh000
Picked101
Done01010
Total841195
Error
0.0b
Counts
95 → 11
Alt Table
Click to see full alt table
StatusErrorProgram
18.4b
(-.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)) (*.f64 d1 d3))
20.0b
(-.f64 (+.f64 (*.f64 d4 d1) (*.f64 d2 d1)) (*.f64 d1 d1))
23.9b
(+.f64 (*.f64 d2 d1) (*.f64 d1 (neg.f64 d3)))
28.6b
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
27.0b
(+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4))
27.0b
(*.f64 (-.f64 d4 d3) d1)
23.9b
(*.f64 (-.f64 d2 d3) d1)
43.2b
(*.f64 d2 d1)
28.6b
(*.f64 d1 (+.f64 d4 d2))
41.8b
(*.f64 d1 (neg.f64 d3))
46.0b
(*.f64 d1 d4)
Compiler

Compiled 114 to 75 computations (34.2% saved)

regimes48.0ms (1.3%)

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

5 calls:

11.0ms
d4
10.0ms
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
9.0ms
d1
8.0ms
d3
8.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 180 to 66 computations (63.3% saved)

regimes97.0ms (2.7%)

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

4 calls:

35.0ms
d4
23.0ms
d3
22.0ms
d1
15.0ms
d2
Results
ErrorSegmentsBranch
3.4b3d1
2.3b2d2
2.2b3d3
6.4b5d4
Compiler

Compiled 131 to 49 computations (62.6% saved)

bsearch31.0ms (0.9%)

Algorithm
binary-search
Steps
TimeLeftRight
18.0ms
0.061958645613199845
1502914.7346999585
13.0ms
-1540332590.9983706
-66005761.85173762
Results
28.0ms256×body256valid
Compiler

Compiled 506 to 321 computations (36.6% saved)

regimes29.0ms (0.8%)

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

4 calls:

7.0ms
d4
7.0ms
d2
6.0ms
d3
6.0ms
d1
Results
ErrorSegmentsBranch
8.9b1d1
8.9b1d2
8.9b1d3
8.9b1d4
Compiler

Compiled 97 to 40 computations (58.8% saved)

regimes32.0ms (0.9%)

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

4 calls:

11.0ms
d1
8.0ms
d4
6.0ms
d3
6.0ms
d2
Results
ErrorSegmentsBranch
8.9b1d1
8.9b1d2
8.9b1d3
8.9b1d4
Compiler

Compiled 79 to 36 computations (54.4% saved)

regimes85.0ms (2.4%)

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

4 calls:

46.0ms
d1
18.0ms
d3
12.0ms
d2
8.0ms
d4
Results
ErrorSegmentsBranch
17.1b11d1
12.4b2d2
14.0b3d3
13.2b2d4
Compiler

Compiled 49 to 30 computations (38.8% saved)

bsearch20.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
20.0ms
-1.7576877807842636e+25
-7083866430250099000.0
Results
18.0ms144×body256valid
Compiler

Compiled 206 to 143 computations (30.6% saved)

regimes74.0ms (2.1%)

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

4 calls:

31.0ms
d1
17.0ms
d3
14.0ms
d2
11.0ms
d4
Results
ErrorSegmentsBranch
18.6b8d1
19.2b4d2
14.0b3d3
14.8b2d4
Compiler

Compiled 44 to 28 computations (36.4% saved)

bsearch34.0ms (0.9%)

Algorithm
binary-search
Steps
TimeLeftRight
18.0ms
3.9232624076865466e-18
7.543992761722018e-8
16.0ms
-1.4503937199550993e+34
-1.31336850001908e+27
Results
31.0ms304×body256valid
Compiler

Compiled 406 to 283 computations (30.3% saved)

regimes63.0ms (1.8%)

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

4 calls:

21.0ms
d4
17.0ms
d1
15.0ms
d3
10.0ms
d2
Results
ErrorSegmentsBranch
24.9b5d1
23.0b3d2
17.8b3d3
23.8b5d4
Compiler

Compiled 39 to 26 computations (33.3% saved)

bsearch33.0ms (0.9%)

Algorithm
binary-search
Steps
TimeLeftRight
15.0ms
5.7054692672641706e+131
9.44278153147352e+135
17.0ms
-2.2265986447039075e+155
-3.645867782020265e+148
Results
30.0ms272×body256valid
Compiler

Compiled 349 to 255 computations (26.9% saved)

regimes89.0ms (2.5%)

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

4 calls:

33.0ms
d1
29.0ms
d3
17.0ms
d4
8.0ms
d2
Results
ErrorSegmentsBranch
32.6b12d1
26.6b3d2
25.9b10d3
27.6b5d4
Compiler

Compiled 34 to 24 computations (29.4% saved)

bsearch133.0ms (3.7%)

Algorithm
binary-search
Steps
TimeLeftRight
12.0ms
241061314780709.53
12841257399469868.0
17.0ms
3.9232624076865466e-18
7.543992761722018e-8
12.0ms
1.1290816195526965e-250
1.0662236364830445e-248
11.0ms
-2.3341059003919155e-220
-2.903371931033335e-221
18.0ms
-6.509857947088009e-186
-4.2482635355714616e-192
14.0ms
-1.0230243677879687e-81
-2.916593777338743e-84
16.0ms
-1.4503937199550993e+34
-1.31336850001908e+27
14.0ms
-5.38108508270241e+40
-7.696167017453078e+36
19.0ms
-6.7544859209453794e+125
-1.7521524719390387e+101
Results
122.0ms1200×body256valid
Compiler

Compiled 1261 to 952 computations (24.5% saved)

regimes53.0ms (1.5%)

Accuracy

Total -28.4b remaining (-88.2%)

Threshold costs -28.4b (-88.2%)

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

4 calls:

20.0ms
d3
19.0ms
d1
8.0ms
d2
5.0ms
d4
Results
ErrorSegmentsBranch
38.1b8d1
32.2b2d2
38.5b7d3
32.8b2d4
Compiler

Compiled 30 to 22 computations (26.7% saved)

bsearch12.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
12.0ms
-626382158920408300.0
-13222650466664658.0
Results
11.0ms112×body256valid
Compiler

Compiled 138 to 101 computations (26.8% saved)

simplify8.0ms (0.2%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
086524
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
(if (<=.f64 d3 -520000000) (+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d4 d1)) (if (<=.f64 d3 5404319552844595/9007199254740992) (-.f64 (+.f64 (*.f64 d4 d1) (*.f64 d2 d1)) (*.f64 d1 d1)) (+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d3) d1))))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d4 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(if (<=.f64 d2 -2050000000000000046137344) (*.f64 (-.f64 d2 d3) d1) (*.f64 (-.f64 d4 d3) d1))
(if (<=.f64 d3 -4000000000000000079538499354624) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d3 3929008913747545/75557863725914323419136) (*.f64 d1 (+.f64 d4 d2)) (*.f64 (-.f64 d2 d3) d1)))
(if (<=.f64 d3 -92000000000000003324745917933486696177993696506821069439876687345403632293169823898294457506477809263905944540833151425869818218334418697979681763753984) (*.f64 d1 (neg.f64 d3)) (if (<=.f64 d3 1399999999999999955639789406190203819338020309860587832713937700752379477973204767284882690383389709386030150538229463169682854903808) (*.f64 d1 (+.f64 d4 d2)) (*.f64 d1 (neg.f64 d3))))
(if (<=.f64 d3 -42000000000000000971661593247193749663515104024241009928435169842021041269878974342913736741003382543613952) (*.f64 d1 (neg.f64 d3)) (if (<=.f64 d3 -230000000000000011822781932279601037312) (*.f64 d2 d1) (if (<=.f64 d3 -62000000000000004047596507103232) (*.f64 d1 (neg.f64 d3)) (if (<=.f64 d3 -4442853034715493/34175792574734561318320347298712833833643272357706444319152665725155515612490248800367393390985216) (*.f64 d1 d4) (if (<=.f64 d3 -4013165208090495/40131652080904949243476790488282231640246122763238325954424140190648896440865179612073261537762363061729301215028215161995082338334532195000669973530974432754174985283877903733762083113741475809259744657408) (*.f64 d2 d1) (if (<=.f64 d3 -5087291284850963/50872912848509630386961759877939283730657641008879914553804457182037637617627197811290223700497087789481581959483591006819830334885554237978846405428549423569451580654251209705071092879576217840034217957579701248029256805705844583825408) (*.f64 d1 d4) (if (<=.f64 d3 8464191554145027/2015283703367863641175612582841936517787350944656835640441744648081489191271686017892521880674961806849191265080479159083871259916315786503793865121700056369432017074581165634798933096605020298206421786911816362015335190936094519572595203013485093980749277423468544) (*.f64 d2 d1) (if (<=.f64 d3 1450710983537555/604462909807314587353088) (*.f64 d1 d4) (if (<=.f64 d3 12500000000000000) (*.f64 d2 d1) (*.f64 d1 (neg.f64 d3)))))))))))
(if (<=.f64 d2 -440000000000000000) (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 d4)
Outputs
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
(if (<=.f64 d3 -520000000) (+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d4 d1)) (if (<=.f64 d3 5404319552844595/9007199254740992) (-.f64 (+.f64 (*.f64 d4 d1) (*.f64 d2 d1)) (*.f64 d1 d1)) (+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d3) d1))))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d4 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(if (<=.f64 d2 -2050000000000000046137344) (*.f64 (-.f64 d2 d3) d1) (*.f64 (-.f64 d4 d3) d1))
(if (<=.f64 d3 -4000000000000000079538499354624) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d3 3929008913747545/75557863725914323419136) (*.f64 d1 (+.f64 d4 d2)) (*.f64 (-.f64 d2 d3) d1)))
(if (<=.f64 d3 -92000000000000003324745917933486696177993696506821069439876687345403632293169823898294457506477809263905944540833151425869818218334418697979681763753984) (*.f64 d1 (neg.f64 d3)) (if (<=.f64 d3 1399999999999999955639789406190203819338020309860587832713937700752379477973204767284882690383389709386030150538229463169682854903808) (*.f64 d1 (+.f64 d4 d2)) (*.f64 d1 (neg.f64 d3))))
(if (<=.f64 d3 -42000000000000000971661593247193749663515104024241009928435169842021041269878974342913736741003382543613952) (*.f64 d1 (neg.f64 d3)) (if (<=.f64 d3 -230000000000000011822781932279601037312) (*.f64 d2 d1) (if (<=.f64 d3 -62000000000000004047596507103232) (*.f64 d1 (neg.f64 d3)) (if (<=.f64 d3 -4442853034715493/34175792574734561318320347298712833833643272357706444319152665725155515612490248800367393390985216) (*.f64 d1 d4) (if (<=.f64 d3 -4013165208090495/40131652080904949243476790488282231640246122763238325954424140190648896440865179612073261537762363061729301215028215161995082338334532195000669973530974432754174985283877903733762083113741475809259744657408) (*.f64 d2 d1) (if (<=.f64 d3 -5087291284850963/50872912848509630386961759877939283730657641008879914553804457182037637617627197811290223700497087789481581959483591006819830334885554237978846405428549423569451580654251209705071092879576217840034217957579701248029256805705844583825408) (*.f64 d1 d4) (if (<=.f64 d3 8464191554145027/2015283703367863641175612582841936517787350944656835640441744648081489191271686017892521880674961806849191265080479159083871259916315786503793865121700056369432017074581165634798933096605020298206421786911816362015335190936094519572595203013485093980749277423468544) (*.f64 d2 d1) (if (<=.f64 d3 1450710983537555/604462909807314587353088) (*.f64 d1 d4) (if (<=.f64 d3 12500000000000000) (*.f64 d2 d1) (*.f64 d1 (neg.f64 d3)))))))))))
(if (<=.f64 d2 -440000000000000000) (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 d4)
Compiler

Compiled 248 to 135 computations (45.6% saved)

soundness0.0ms (0%)

end65.0ms (1.8%)

Remove

(sort d2 d4)

Compiler

Compiled 250 to 102 computations (59.2% saved)

Profiling

Loading profile data...