
Time bar (total: 4.1s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 0 |
| 100% | 99.8% | 0% | 0.2% | 0% | 0% | 0% | 1 |
Compiled 17 to 13 computations (23.5% saved)
| 458.0ms | 8 256× | 0 | valid |
ival-mult!: 158.0ms (75.5% of total)ival-sub!: 33.0ms (15.8% of total)ival-add!: 17.0ms (8.1% of total)adjust: 2.0ms (1% of total)Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 65 | 207 |
| 1 | 641 | 207 |
| 1× | node-limit |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 84.0% | (-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1)) |
Compiled 30 to 22 computations (26.7% saved)
| Inputs |
|---|
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1)) |
(+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) |
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) |
(*.f64 d1 d2) |
d1 |
d2 |
(*.f64 d1 d3) |
d3 |
(*.f64 d4 d1) |
d4 |
(*.f64 d1 d1) |
| Outputs |
|---|
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 (-.f64 (+.f64 d2 (+.f64 d4 (*.f64 #s(literal -1 binary64) d1))) d3))) |
#s(approx (- (* d1 d2) (* d1 d3)) (*.f64 d1 (-.f64 d2 d3))) |
#s(approx (* d1 d2) (*.f64 d1 d2)) |
#s(approx d1 d1) |
#s(approx (* d1 d3) (*.f64 d1 d3)) |
#s(approx (* d4 d1) (*.f64 d1 d4)) |
#s(approx (* d1 d1) (pow.f64 d1 #s(literal 2 binary64))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 #s(literal -1 binary64) (pow.f64 d1 #s(literal 2 binary64)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (pow.f64 d1 #s(literal 2 binary64)) (-.f64 (+.f64 (/.f64 d2 d1) (/.f64 d4 d1)) (+.f64 #s(literal 1 binary64) (/.f64 d3 d1))))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (pow.f64 d1 #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (fma.f64 #s(literal -1 binary64) d2 (*.f64 #s(literal -1 binary64) d4)) (*.f64 #s(literal -1 binary64) d3)) d1)) #s(literal 1 binary64)))) |
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d1 (-.f64 (fma.f64 #s(literal -1 binary64) d2 (*.f64 #s(literal -1 binary64) d4)) (*.f64 #s(literal -1 binary64) d3))))) |
#s(approx (- (* d1 d2) (* d1 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d1 (-.f64 (*.f64 #s(literal -1 binary64) d2) (*.f64 #s(literal -1 binary64) d3))))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (*.f64 d1 d4) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64))))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64))))) |
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d3))) |
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (-.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) (*.f64 d1 d3))) |
#s(approx (- (* d1 d2) (* d1 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d1 d3))) |
#s(approx (- (* d1 d2) (* d1 d3)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d3))) |
#s(approx d2 d2) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d2 (-.f64 (+.f64 d1 (/.f64 (*.f64 d1 d4) d2)) (+.f64 (/.f64 (*.f64 d1 d3) d2) (/.f64 (pow.f64 d1 #s(literal 2 binary64)) d2))))) |
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (*.f64 d2 (-.f64 (+.f64 d1 (/.f64 (*.f64 d1 d4) d2)) (/.f64 (*.f64 d1 d3) d2)))) |
#s(approx (- (* d1 d2) (* d1 d3)) (*.f64 d2 (+.f64 d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 d3) d2))))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 d1 d4) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64)))) d2)))))) |
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) d2)))))) |
#s(approx (- (* d1 d2) (* d1 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (/.f64 (*.f64 d1 d3) d2))))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) (pow.f64 d1 #s(literal 2 binary64)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (fma.f64 d1 d2 (*.f64 d1 d4))) (pow.f64 d1 #s(literal 2 binary64)))) |
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (fma.f64 d1 d2 (*.f64 d1 d4))) |
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (fma.f64 d1 d2 (*.f64 d1 d4)))) |
#s(approx (- (* d1 d2) (* d1 d3)) (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (*.f64 d1 d2))) |
#s(approx d3 d3) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d3 (-.f64 (+.f64 (/.f64 (*.f64 d1 d2) d3) (/.f64 (*.f64 d1 d4) d3)) (+.f64 d1 (/.f64 (pow.f64 d1 #s(literal 2 binary64)) d3))))) |
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (*.f64 d3 (-.f64 (+.f64 (/.f64 (*.f64 d1 d2) d3) (/.f64 (*.f64 d1 d4) d3)) d1))) |
#s(approx (- (* d1 d2) (* d1 d3)) (*.f64 d3 (-.f64 (/.f64 (*.f64 d1 d2) d3) d1))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) (pow.f64 d1 #s(literal 2 binary64))) d3)) (*.f64 #s(literal -1 binary64) d1))))) |
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) d3)) (*.f64 #s(literal -1 binary64) d1))))) |
#s(approx (- (* d1 d2) (* d1 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 d2) d3)) (*.f64 #s(literal -1 binary64) d1))))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (*.f64 d1 d2) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64))))) |
#s(approx d4 d4) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d4 (-.f64 (+.f64 d1 (/.f64 (*.f64 d1 d2) d4)) (+.f64 (/.f64 (*.f64 d1 d3) d4) (/.f64 (pow.f64 d1 #s(literal 2 binary64)) d4))))) |
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (*.f64 d4 (-.f64 (+.f64 d1 (/.f64 (*.f64 d1 d2) d4)) (/.f64 (*.f64 d1 d3) d4)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d4 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 d1 d2) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64)))) d4)))))) |
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d4 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) d4)))))) |
12 calls:
| Time | Variable | Point |
|---|---|---|
| 2.0ms | d1 | -inf |
| 2.0ms | d1 | inf |
| 1.0ms | d1 | 0 |
| 1.0ms | d2 | -inf |
| 1.0ms | d2 | inf |
| Inputs |
|---|
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1)) |
(+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) |
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) |
(*.f64 d1 d2) |
d1 |
d2 |
(*.f64 d1 d3) |
d3 |
(*.f64 d4 d1) |
d4 |
(*.f64 d1 d1) |
| Outputs |
|---|
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3))) |
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) |
(*.f64 d1 (-.f64 (-.f64 d2 d3) (-.f64 d4 d1))) |
(*.f64 d1 (+.f64 (-.f64 d2 (-.f64 d3 d4)) (neg.f64 d1))) |
(*.f64 d1 (+.f64 (neg.f64 d1) (-.f64 d2 (-.f64 d3 d4)))) |
(*.f64 (-.f64 d2 (-.f64 d3 d4)) d1) |
(*.f64 (-.f64 (-.f64 d2 d3) d4) d1) |
(*.f64 d1 (+.f64 d2 (-.f64 d3 d4))) |
(*.f64 d1 (-.f64 d4 (-.f64 d2 d3))) |
(*.f64 d1 (-.f64 (-.f64 d2 d3) d4)) |
(*.f64 (+.f64 d3 d2) d1) |
(*.f64 (-.f64 d2 d3) d1) |
(*.f64 (-.f64 d2 d3) (neg.f64 d1)) |
(*.f64 (neg.f64 d1) (-.f64 d2 d3)) |
(*.f64 (neg.f64 d1) (+.f64 d3 d2)) |
(*.f64 d1 d2) |
(*.f64 d2 d1) |
d1 |
(neg.f64 (neg.f64 d1)) |
d2 |
(*.f64 d1 d3) |
(*.f64 d3 d1) |
(neg.f64 (neg.f64 (*.f64 d1 d3))) |
d3 |
(*.f64 d4 d1) |
(*.f64 d1 d4) |
(neg.f64 (neg.f64 (*.f64 d4 d1))) |
d4 |
(neg.f64 (neg.f64 d4)) |
(*.f64 d1 d1) |
(*.f64 (fabs.f64 d1) (fabs.f64 d1)) |
(*.f64 (fabs.f64 d1) d1) |
(*.f64 (fabs.f64 d1) (neg.f64 d1)) |
(*.f64 (neg.f64 d1) d1) |
Compiled 1 560 to 319 computations (79.6% saved)
3 alts after pruning (3 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 67 | 3 | 70 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 68 | 3 | 71 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 68.7% | (-.f64 #s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (fma.f64 d1 d2 (*.f64 d1 d4))) (*.f64 d1 d1)) |
| ▶ | 100.0% | (*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3))) |
| ▶ | 76.6% | #s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3))) |
Compiled 54 to 37 computations (31.5% saved)
| Inputs |
|---|
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3))) |
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) |
d1 |
(-.f64 (+.f64 d2 d4) d3) |
(+.f64 d2 d4) |
d2 |
d4 |
d3 |
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3))) |
(+.f64 (-.f64 d4 d1) (-.f64 d2 d3)) |
(-.f64 d4 d1) |
(-.f64 d2 d3) |
(-.f64 #s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (fma.f64 d1 d2 (*.f64 d1 d4))) (*.f64 d1 d1)) |
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (fma.f64 d1 d2 (*.f64 d1 d4))) |
(fma.f64 d1 d2 (*.f64 d1 d4)) |
(*.f64 d1 d4) |
(*.f64 d1 d1) |
| Outputs |
|---|
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 (-.f64 (+.f64 d2 (+.f64 d4 (*.f64 #s(literal -1 binary64) d1))) d3))) |
#s(approx d1 d1) |
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 d4) d3)) |
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 (+.f64 d4 (*.f64 #s(literal -1 binary64) d1))) d3)) |
#s(approx (- d4 d1) d4) |
#s(approx (- d4 d1) (+.f64 d4 (*.f64 #s(literal -1 binary64) d1))) |
#s(approx (+ (* d1 d2) (* d1 d4)) (*.f64 d1 (+.f64 d2 d4))) |
#s(approx (* d1 d4) (*.f64 d1 d4)) |
#s(approx (* d1 d1) (pow.f64 d1 #s(literal 2 binary64))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 #s(literal -1 binary64) (pow.f64 d1 #s(literal 2 binary64)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (pow.f64 d1 #s(literal 2 binary64)) (-.f64 (+.f64 (/.f64 d2 d1) (/.f64 d4 d1)) (+.f64 #s(literal 1 binary64) (/.f64 d3 d1))))) |
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) d1)) |
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 d1 (-.f64 (+.f64 (/.f64 d2 d1) (/.f64 d4 d1)) (+.f64 #s(literal 1 binary64) (/.f64 d3 d1))))) |
#s(approx (- d4 d1) (*.f64 d1 (-.f64 (/.f64 d4 d1) #s(literal 1 binary64)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (pow.f64 d1 #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (fma.f64 #s(literal -1 binary64) d2 (*.f64 #s(literal -1 binary64) d4)) (*.f64 #s(literal -1 binary64) d3)) d1)) #s(literal 1 binary64)))) |
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d1 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (+.f64 d2 d4) d3) d1)))))) |
#s(approx (- d4 d1) (*.f64 #s(literal -1 binary64) (*.f64 d1 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d4 d1)))))) |
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d1 (-.f64 (fma.f64 #s(literal -1 binary64) d2 (*.f64 #s(literal -1 binary64) d4)) (*.f64 #s(literal -1 binary64) d3))))) |
#s(approx (+ (* d1 d2) (* d1 d4)) (*.f64 #s(literal -1 binary64) (*.f64 d1 (fma.f64 #s(literal -1 binary64) d2 (*.f64 #s(literal -1 binary64) d4))))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (*.f64 d1 d4) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64))))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64))))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d4 d3))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 d1 d2 (*.f64 d1 (-.f64 d4 d3)))) |
#s(approx (- (+ d2 d4) d3) (-.f64 d4 d3)) |
#s(approx (+ d2 d4) (+.f64 d2 d4)) |
#s(approx d2 d2) |
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))) |
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (fma.f64 d1 d2 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))) |
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 d4 (+.f64 d1 d3))) |
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 d4) (+.f64 d1 d3))) |
#s(approx (- d2 d3) (*.f64 #s(literal -1 binary64) d3)) |
#s(approx (- d2 d3) (-.f64 d2 d3)) |
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d3))) |
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (-.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) (*.f64 d1 d3))) |
#s(approx (+ (* d1 d2) (* d1 d4)) (fma.f64 d1 d2 (*.f64 d1 d4))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2)) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d2 (-.f64 (+.f64 d1 (/.f64 (*.f64 d1 d4) d2)) (+.f64 (/.f64 (*.f64 d1 d3) d2) (/.f64 (pow.f64 d1 #s(literal 2 binary64)) d2))))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d2 (+.f64 d1 (/.f64 (*.f64 d1 (-.f64 d4 d3)) d2)))) |
#s(approx (- (+ d2 d4) d3) (*.f64 d2 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 d4 d2)) (/.f64 d3 d2)))) |
#s(approx (+ d2 d4) (*.f64 d2 (+.f64 #s(literal 1 binary64) (/.f64 d4 d2)))) |
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 d2 (+.f64 d1 (/.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) d2)))) |
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 d2 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 d4 d2)) (+.f64 (/.f64 d1 d2) (/.f64 d3 d2))))) |
#s(approx (- d2 d3) (*.f64 d2 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d3 d2))))) |
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (*.f64 d2 (-.f64 (+.f64 d1 (/.f64 (*.f64 d1 d4) d2)) (/.f64 (*.f64 d1 d3) d2)))) |
#s(approx (+ (* d1 d2) (* d1 d4)) (*.f64 d2 (+.f64 d1 (/.f64 (*.f64 d1 d4) d2)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 d1 d4) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64)))) d2)))))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (-.f64 d4 d3)) d2)))))) |
#s(approx (- (+ d2 d4) d3) (*.f64 #s(literal -1 binary64) (*.f64 d2 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d4 d3) d2)) #s(literal 1 binary64))))) |
#s(approx (+ d2 d4) (*.f64 #s(literal -1 binary64) (*.f64 d2 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 d4 d2)) #s(literal 1 binary64))))) |
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) d2)))))) |
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d4 (+.f64 d1 d3)) d2)) #s(literal 1 binary64))))) |
#s(approx (- d2 d3) (*.f64 #s(literal -1 binary64) (*.f64 d2 (-.f64 (/.f64 d3 d2) #s(literal 1 binary64))))) |
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) d2)))))) |
#s(approx (+ (* d1 d2) (* d1 d4)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 d4) d2)))))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) (pow.f64 d1 #s(literal 2 binary64)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (fma.f64 d1 d2 (*.f64 d1 d4))) (pow.f64 d1 #s(literal 2 binary64)))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (*.f64 d1 (+.f64 d2 d4)))) |
#s(approx (- (+ d2 d4) d3) (+.f64 d2 (+.f64 d4 (*.f64 #s(literal -1 binary64) d3)))) |
#s(approx d3 d3) |
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1))) |
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))) |
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 d4) d1)) |
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 (+.f64 d4 (*.f64 #s(literal -1 binary64) d3))) d1)) |
#s(approx (- d2 d3) (+.f64 d2 (*.f64 #s(literal -1 binary64) d3))) |
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (fma.f64 d1 d2 (*.f64 d1 d4)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d1 d3))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d3 (-.f64 (+.f64 (/.f64 (*.f64 d1 d2) d3) (/.f64 (*.f64 d1 d4) d3)) (+.f64 d1 (/.f64 (pow.f64 d1 #s(literal 2 binary64)) d3))))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d3 (fma.f64 #s(literal -1 binary64) d1 (/.f64 (*.f64 d1 (+.f64 d2 d4)) d3)))) |
#s(approx (- (+ d2 d4) d3) (*.f64 d3 (-.f64 (+.f64 (/.f64 d2 d3) (/.f64 d4 d3)) #s(literal 1 binary64)))) |
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 d3 (fma.f64 #s(literal -1 binary64) d1 (/.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)) d3)))) |
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 d3 (-.f64 (+.f64 (/.f64 d2 d3) (/.f64 d4 d3)) (+.f64 #s(literal 1 binary64) (/.f64 d1 d3))))) |
#s(approx (- d2 d3) (*.f64 d3 (-.f64 (/.f64 d2 d3) #s(literal 1 binary64)))) |
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (*.f64 d3 (-.f64 (+.f64 (/.f64 (*.f64 d1 d2) d3) (/.f64 (*.f64 d1 d4) d3)) d1))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) (pow.f64 d1 #s(literal 2 binary64))) d3)) (*.f64 #s(literal -1 binary64) d1))))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (+.f64 d2 d4)) d3)))))) |
#s(approx (- (+ d2 d4) d3) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 d2 d4) d3)))))) |
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)) d3)))))) |
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (+.f64 d2 d4) d1) d3)))))) |
#s(approx (- d2 d3) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d2 d3)))))) |
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) d3)) (*.f64 #s(literal -1 binary64) d1))))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (*.f64 d1 d2) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64))))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 d3)))) |
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))) |
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))) |
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 d2 (+.f64 d1 d3))) |
#s(approx (- d4 d1) (-.f64 d4 d1)) |
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (-.f64 (*.f64 d1 d2) (*.f64 d1 d3))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d4 (-.f64 (+.f64 d1 (/.f64 (*.f64 d1 d2) d4)) (+.f64 (/.f64 (*.f64 d1 d3) d4) (/.f64 (pow.f64 d1 #s(literal 2 binary64)) d4))))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d4 (+.f64 d1 (/.f64 (*.f64 d1 (-.f64 d2 d3)) d4)))) |
#s(approx (- (+ d2 d4) d3) (*.f64 d4 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 d2 d4)) (/.f64 d3 d4)))) |
#s(approx (+ d2 d4) (*.f64 d4 (+.f64 #s(literal 1 binary64) (/.f64 d2 d4)))) |
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 d4 (+.f64 d1 (/.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) d4)))) |
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 d4 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 d2 d4)) (+.f64 (/.f64 d1 d4) (/.f64 d3 d4))))) |
#s(approx (- d4 d1) (*.f64 d4 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d1 d4))))) |
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (*.f64 d4 (-.f64 (+.f64 d1 (/.f64 (*.f64 d1 d2) d4)) (/.f64 (*.f64 d1 d3) d4)))) |
#s(approx (+ (* d1 d2) (* d1 d4)) (*.f64 d4 (+.f64 d1 (/.f64 (*.f64 d1 d2) d4)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d4 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 d1 d2) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64)))) d4)))))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 #s(literal -1 binary64) (*.f64 d4 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (-.f64 d2 d3)) d4)))))) |
#s(approx (- (+ d2 d4) d3) (*.f64 #s(literal -1 binary64) (*.f64 d4 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d2 d3) d4)) #s(literal 1 binary64))))) |
#s(approx (+ d2 d4) (*.f64 #s(literal -1 binary64) (*.f64 d4 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 d2 d4)) #s(literal 1 binary64))))) |
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 #s(literal -1 binary64) (*.f64 d4 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) d4)))))) |
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d4 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d2 (+.f64 d1 d3)) d4)) #s(literal 1 binary64))))) |
#s(approx (- d4 d1) (*.f64 #s(literal -1 binary64) (*.f64 d4 (-.f64 (/.f64 d1 d4) #s(literal 1 binary64))))) |
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d4 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) d4)))))) |
#s(approx (+ (* d1 d2) (* d1 d4)) (*.f64 #s(literal -1 binary64) (*.f64 d4 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 d2) d4)))))) |
12 calls:
| Time | Variable | Point |
|---|---|---|
| 5.0ms | d1 | inf |
| 3.0ms | d1 | 0 |
| 2.0ms | d1 | -inf |
| 2.0ms | d4 | -inf |
| 1.0ms | d2 | -inf |
| Inputs |
|---|
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3))) |
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) |
d1 |
(-.f64 (+.f64 d2 d4) d3) |
(+.f64 d2 d4) |
d2 |
d4 |
d3 |
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3))) |
(+.f64 (-.f64 d4 d1) (-.f64 d2 d3)) |
(-.f64 d4 d1) |
(-.f64 d2 d3) |
(-.f64 #s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (fma.f64 d1 d2 (*.f64 d1 d4))) (*.f64 d1 d1)) |
#s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (fma.f64 d1 d2 (*.f64 d1 d4))) |
(fma.f64 d1 d2 (*.f64 d1 d4)) |
(*.f64 d1 d4) |
(*.f64 d1 d1) |
| Outputs |
|---|
#s(approx (* d1 (- (- d2 d3) (+ d4 d1))) (*.f64 d1 (-.f64 d2 (-.f64 d3 d4)))) |
(*.f64 d1 (-.f64 d2 (-.f64 d3 d4))) |
(*.f64 (-.f64 d2 (-.f64 d3 d4)) (neg.f64 d1)) |
(*.f64 (-.f64 d2 (-.f64 d3 d4)) d1) |
(*.f64 (-.f64 (-.f64 d2 d3) d4) d1) |
(*.f64 d1 (+.f64 (-.f64 d2 d3) (neg.f64 d4))) |
d1 |
(neg.f64 (neg.f64 d1)) |
(*.f64 (+.f64 (+.f64 d3 d2) d4) (/.f64 (-.f64 d2 (-.f64 d3 d4)) (+.f64 (+.f64 d3 d2) d4))) |
(*.f64 (/.f64 (*.f64 (+.f64 (+.f64 d3 d2) d4) (-.f64 d2 (-.f64 d3 d4))) (*.f64 (+.f64 (+.f64 d3 d2) d4) (-.f64 d2 (-.f64 d3 d4)))) (-.f64 d2 (-.f64 d3 d4))) |
(*.f64 (/.f64 (*.f64 (+.f64 (+.f64 d3 d2) d4) (-.f64 d2 (-.f64 d3 d4))) (fma.f64 (*.f64 (+.f64 d2 d4) (+.f64 d2 d4)) (+.f64 d2 d4) (*.f64 (*.f64 d3 d3) d3))) (fma.f64 d3 (-.f64 d3 (+.f64 d2 d4)) (*.f64 (+.f64 d2 d4) (+.f64 d2 d4)))) |
(*.f64 (fma.f64 (+.f64 (+.f64 d3 d2) d4) d3 (*.f64 (+.f64 d2 d4) (+.f64 d2 d4))) (/.f64 (-.f64 d2 (-.f64 d3 d4)) (fma.f64 (+.f64 (+.f64 d3 d2) d4) d3 (*.f64 (+.f64 d2 d4) (+.f64 d2 d4))))) |
(*.f64 (/.f64 (-.f64 (*.f64 (*.f64 (+.f64 d2 d4) (+.f64 d2 d4)) (+.f64 d2 d4)) (*.f64 (*.f64 d3 d3) d3)) (+.f64 (pow.f64 (*.f64 (+.f64 (+.f64 d3 d2) d4) d3) #s(literal 3 binary64)) (pow.f64 (+.f64 d2 d4) (+.f64 #s(literal 3 binary64) #s(literal 3 binary64))))) (fma.f64 (*.f64 (+.f64 (+.f64 d3 d2) d4) d3) (-.f64 (*.f64 (+.f64 (+.f64 d3 d2) d4) d3) (*.f64 (+.f64 d2 d4) (+.f64 d2 d4))) (*.f64 (*.f64 (+.f64 d2 d4) (+.f64 d2 d4)) (*.f64 (+.f64 d2 d4) (+.f64 d2 d4))))) |
(*.f64 (+.f64 d2 d4) (/.f64 (-.f64 d2 d4) (-.f64 d2 d4))) |
(*.f64 (/.f64 (*.f64 (+.f64 d2 d4) (-.f64 d2 d4)) (*.f64 (+.f64 d2 d4) (-.f64 d2 d4))) (+.f64 d2 d4)) |
(*.f64 (/.f64 (*.f64 (+.f64 d2 d4) (-.f64 d2 d4)) (-.f64 (*.f64 (*.f64 d2 d2) d2) (*.f64 (*.f64 d4 d4) d4))) (fma.f64 (+.f64 d2 d4) d4 (*.f64 d2 d2))) |
(*.f64 (fma.f64 (-.f64 d4 d2) d4 (*.f64 d2 d2)) (/.f64 (+.f64 d2 d4) (fma.f64 (-.f64 d4 d2) d4 (*.f64 d2 d2)))) |
(*.f64 (/.f64 (fma.f64 (*.f64 d2 d2) d2 (*.f64 (*.f64 d4 d4) d4)) (fma.f64 (*.f64 (*.f64 (*.f64 d2 d2) d2) (*.f64 d2 d2)) d2 (pow.f64 (*.f64 (-.f64 d4 d2) d4) #s(literal 3 binary64)))) (fma.f64 (*.f64 (-.f64 d4 d2) d4) (-.f64 (*.f64 (-.f64 d4 d2) d4) (*.f64 d2 d2)) (*.f64 (*.f64 d2 d2) (*.f64 d2 d2)))) |
d2 |
d4 |
(neg.f64 (neg.f64 d4)) |
d3 |
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d1 d2)) d3)) |
(*.f64 (-.f64 (-.f64 d4 (-.f64 d1 d2)) d3) d1) |
(*.f64 d1 (-.f64 (-.f64 d2 d3) (-.f64 d4 d1))) |
(*.f64 d1 (-.f64 (-.f64 d4 d1) (-.f64 d2 d3))) |
(*.f64 (*.f64 (-.f64 (-.f64 d4 (-.f64 d1 d2)) d3) (-.f64 (-.f64 d4 d1) (-.f64 d2 d3))) (/.f64 d1 (-.f64 (-.f64 d4 d1) (-.f64 d2 d3)))) |
(*.f64 (-.f64 (-.f64 d4 (-.f64 d1 d2)) d3) (/.f64 (-.f64 (-.f64 d4 d1) (-.f64 d2 d3)) (-.f64 (-.f64 d4 d1) (-.f64 d2 d3)))) |
(*.f64 (/.f64 (*.f64 (-.f64 (-.f64 d4 (-.f64 d1 d2)) d3) (-.f64 (-.f64 d4 d1) (-.f64 d2 d3))) (-.f64 (*.f64 (fma.f64 d1 d1 (*.f64 d4 d4)) (-.f64 d4 d1)) (*.f64 (*.f64 (-.f64 d2 d3) (-.f64 d2 d3)) (-.f64 d2 d3)))) (fma.f64 (-.f64 d2 d3) (-.f64 (-.f64 d4 (-.f64 d1 d2)) d3) (fma.f64 d1 d1 (*.f64 d4 d4)))) |
(*.f64 (/.f64 (*.f64 (-.f64 (-.f64 d4 (-.f64 d1 d2)) d3) (-.f64 (-.f64 d4 d1) (-.f64 d2 d3))) (*.f64 (-.f64 (-.f64 d4 (-.f64 d1 d2)) d3) (-.f64 (-.f64 d4 d1) (-.f64 d2 d3)))) (-.f64 (-.f64 d4 (-.f64 d1 d2)) d3)) |
(*.f64 (fma.f64 (-.f64 (-.f64 d2 d3) (-.f64 d4 d1)) (-.f64 d2 d3) (fma.f64 d1 d1 (*.f64 d4 d4))) (/.f64 (-.f64 (-.f64 d4 (-.f64 d1 d2)) d3) (fma.f64 (-.f64 (-.f64 d2 d3) (-.f64 d4 d1)) (-.f64 d2 d3) (fma.f64 d1 d1 (*.f64 d4 d4))))) |
(*.f64 (/.f64 (fma.f64 (fma.f64 d1 d1 (*.f64 d4 d4)) (-.f64 d4 d1) (*.f64 (*.f64 (-.f64 d2 d3) (-.f64 d2 d3)) (-.f64 d2 d3))) (+.f64 (pow.f64 (*.f64 (-.f64 (-.f64 d2 d3) (-.f64 d4 d1)) (-.f64 d2 d3)) #s(literal 3 binary64)) (pow.f64 (-.f64 d4 d1) (+.f64 #s(literal 3 binary64) #s(literal 3 binary64))))) (fma.f64 (*.f64 (-.f64 (-.f64 d2 d3) (-.f64 d4 d1)) (-.f64 d2 d3)) (-.f64 (*.f64 (-.f64 (-.f64 d2 d3) (-.f64 d4 d1)) (-.f64 d2 d3)) (fma.f64 d1 d1 (*.f64 d4 d4))) (*.f64 (fma.f64 d1 d1 (*.f64 d4 d4)) (fma.f64 d1 d1 (*.f64 d4 d4))))) |
(*.f64 (-.f64 d4 d1) (/.f64 (-.f64 d4 d1) (-.f64 d4 d1))) |
(*.f64 (/.f64 (fma.f64 d1 d1 (*.f64 d4 d4)) (fma.f64 d1 d1 (*.f64 d4 d4))) (-.f64 d4 d1)) |
(*.f64 (/.f64 (fma.f64 d1 d1 (*.f64 d4 d4)) (fma.f64 (*.f64 d1 d1) d1 (*.f64 (*.f64 d4 d4) d4))) (fma.f64 (-.f64 d4 d1) d1 (*.f64 d4 d4))) |
(*.f64 (/.f64 (fma.f64 d1 d1 (*.f64 d4 d4)) (neg.f64 (fma.f64 d1 d1 (*.f64 d4 d4)))) (neg.f64 (-.f64 d4 d1))) |
(*.f64 (+.f64 (fabs.f64 d1) d4) (/.f64 (-.f64 d4 (fabs.f64 d1)) (-.f64 d4 d1))) |
(*.f64 (+.f64 d3 d2) (/.f64 (-.f64 d2 d3) (+.f64 d3 d2))) |
(*.f64 (/.f64 (*.f64 (+.f64 d3 d2) (-.f64 d2 d3)) (*.f64 (+.f64 d3 d2) (-.f64 d2 d3))) (-.f64 d2 d3)) |
(*.f64 (/.f64 (*.f64 (+.f64 d3 d2) (-.f64 d2 d3)) (fma.f64 (*.f64 d2 d2) d2 (*.f64 (*.f64 d3 d3) d3))) (fma.f64 d3 (-.f64 d3 d2) (*.f64 d2 d2))) |
(*.f64 (fma.f64 (+.f64 d3 d2) d3 (*.f64 d2 d2)) (/.f64 (-.f64 d2 d3) (fma.f64 (+.f64 d3 d2) d3 (*.f64 d2 d2)))) |
(*.f64 (/.f64 (-.f64 (*.f64 (*.f64 d2 d2) d2) (*.f64 (*.f64 d3 d3) d3)) (fma.f64 (*.f64 (*.f64 (*.f64 d2 d2) d2) (*.f64 d2 d2)) d2 (pow.f64 (*.f64 (+.f64 d3 d2) d3) #s(literal 3 binary64)))) (fma.f64 (*.f64 (+.f64 d3 d2) d3) (-.f64 (*.f64 (+.f64 d3 d2) d3) (*.f64 d2 d2)) (*.f64 (*.f64 d2 d2) (*.f64 d2 d2)))) |
(-.f64 #s(approx (* (- d2 (+ d4 d3)) d1) (*.f64 (-.f64 d2 d4) d1)) (*.f64 d1 d1)) |
#s(approx (* (- d2 (+ d4 d3)) d1) (*.f64 (-.f64 d2 d4) d1)) |
(*.f64 (+.f64 d2 d4) d1) |
(*.f64 (-.f64 d2 d4) d1) |
(*.f64 (neg.f64 d1) (-.f64 d2 d4)) |
(*.f64 d1 (+.f64 d2 d4)) |
(*.f64 d1 (-.f64 d4 d2)) |
(*.f64 d1 d4) |
(*.f64 d4 d1) |
(neg.f64 (neg.f64 (*.f64 d1 d4))) |
(*.f64 d1 d1) |
(*.f64 (fabs.f64 d1) (fabs.f64 d1)) |
(*.f64 (fabs.f64 d1) d1) |
(*.f64 (fabs.f64 d1) (neg.f64 d1)) |
(*.f64 (neg.f64 d1) d1) |
Compiled 4 590 to 808 computations (82.4% saved)
8 alts after pruning (8 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 158 | 8 | 166 |
| Fresh | 0 | 0 | 0 |
| Picked | 3 | 0 | 3 |
| Done | 0 | 0 | 0 |
| Total | 161 | 8 | 169 |
| Status | Accuracy | Program |
|---|---|---|
| 79.7% | (*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 d4) d1))) | |
| ▶ | 81.3% | (*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 d4 (+.f64 d1 d3)))) |
| 34.0% | (*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) d1))) | |
| ▶ | 76.6% | #s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (-.f64 d2 (-.f64 d3 d4)) d1)) |
| ▶ | 56.4% | #s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3)))) |
| ▶ | 27.3% | #s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2)) |
| ▶ | 75.8% | #s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 d3))))) |
| 49.3% | #s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3)))) |
Compiled 346 to 230 computations (33.5% saved)
| Inputs |
|---|
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 d4 (+.f64 d1 d3)))) |
d1 |
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 d4 (+.f64 d1 d3))) |
(-.f64 d4 (+.f64 d1 d3)) |
d4 |
(+.f64 d1 d3) |
d3 |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2)) |
(*.f64 d1 d2) |
d2 |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3)))) |
(*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3))) |
#s(approx (- (+ d2 d4) d3) (-.f64 d4 d3)) |
(-.f64 d4 d3) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (-.f64 d2 (-.f64 d3 d4)) d1)) |
(*.f64 (-.f64 d2 (-.f64 d3 d4)) d1) |
(-.f64 d2 (-.f64 d3 d4)) |
(-.f64 d3 d4) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 d3))))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 d3)))) |
(fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 d3))) |
(*.f64 d1 (-.f64 d2 d3)) |
(-.f64 d2 d3) |
| Outputs |
|---|
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3))) |
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 d1 (-.f64 (+.f64 d2 (+.f64 d4 (*.f64 #s(literal -1 binary64) d1))) d3))) |
#s(approx d1 d1) |
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 d4) d3)) |
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 (+.f64 d4 (*.f64 #s(literal -1 binary64) d1))) d3)) |
#s(approx (- d4 (+ d1 d3)) (-.f64 d4 d3)) |
#s(approx (- d4 (+ d1 d3)) (-.f64 (+.f64 d4 (*.f64 #s(literal -1 binary64) d1)) d3)) |
#s(approx (+ d1 d3) d3) |
#s(approx (+ d1 d3) (+.f64 d1 d3)) |
#s(approx (* d1 d2) (*.f64 d1 d2)) |
#s(approx (* d1 (- d2 d3)) (*.f64 d1 (-.f64 d2 d3))) |
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 #s(literal -1 binary64) (pow.f64 d1 #s(literal 2 binary64)))) |
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 (pow.f64 d1 #s(literal 2 binary64)) (-.f64 (+.f64 (/.f64 d2 d1) (/.f64 d4 d1)) (+.f64 #s(literal 1 binary64) (/.f64 d3 d1))))) |
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) d1)) |
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 d1 (-.f64 (+.f64 (/.f64 d2 d1) (/.f64 d4 d1)) (+.f64 #s(literal 1 binary64) (/.f64 d3 d1))))) |
#s(approx (- d4 (+ d1 d3)) (*.f64 d1 (-.f64 (/.f64 d4 d1) (+.f64 #s(literal 1 binary64) (/.f64 d3 d1))))) |
#s(approx (+ d1 d3) (*.f64 d1 (+.f64 #s(literal 1 binary64) (/.f64 d3 d1)))) |
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d1 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (+.f64 d2 d4) d3) d1)))))) |
#s(approx (- d4 (+ d1 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d1 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d4 d3) d1)))))) |
#s(approx (+ d1 d3) (*.f64 #s(literal -1 binary64) (*.f64 d1 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 d3 d1)) #s(literal 1 binary64))))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (pow.f64 d1 #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (fma.f64 #s(literal -1 binary64) d2 (*.f64 #s(literal -1 binary64) d4)) (*.f64 #s(literal -1 binary64) d3)) d1)) #s(literal 1 binary64)))) |
#s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (*.f64 #s(literal -1 binary64) (*.f64 d1 (fma.f64 #s(literal -1 binary64) d4 (*.f64 #s(literal -1 binary64) (-.f64 d2 d3)))))) |
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))) |
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (fma.f64 d1 d2 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))) |
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 d4 (+.f64 d1 d3))) |
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 d4) (+.f64 d1 d3))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (*.f64 d1 d4) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64))))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64))))) |
#s(approx d2 d2) |
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d4 d3))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 d1 d2 (*.f64 d1 (-.f64 d4 d3)))) |
#s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (*.f64 d1 d4))) |
#s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (fma.f64 d1 d2 (*.f64 d1 d4)))) |
#s(approx (* d1 (- d2 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d1 d3))) |
#s(approx (* d1 (- d2 d3)) (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (*.f64 d1 d2))) |
#s(approx (- d2 d3) (*.f64 #s(literal -1 binary64) d3)) |
#s(approx (- d2 d3) (-.f64 d2 d3)) |
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 d2 (+.f64 d1 (/.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) d2)))) |
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 d2 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 d4 d2)) (+.f64 (/.f64 d1 d2) (/.f64 d3 d2))))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d2 (-.f64 (+.f64 d1 (/.f64 (*.f64 d1 d4) d2)) (+.f64 (/.f64 (*.f64 d1 d3) d2) (/.f64 (pow.f64 d1 #s(literal 2 binary64)) d2))))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d2 (+.f64 d1 (/.f64 (*.f64 d1 (-.f64 d4 d3)) d2)))) |
#s(approx (- (+ d2 d4) d3) (*.f64 d2 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 d4 d2)) (/.f64 d3 d2)))) |
#s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (*.f64 d2 (+.f64 d1 (fma.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 d3) d2) (/.f64 (*.f64 d1 d4) d2))))) |
#s(approx (* d1 (- d2 d3)) (*.f64 d2 (+.f64 d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 d3) d2))))) |
#s(approx (- d2 d3) (*.f64 d2 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d3 d2))))) |
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) d2)))))) |
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d4 (+.f64 d1 d3)) d2)) #s(literal 1 binary64))))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 d1 d4) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64)))) d2)))))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (-.f64 d4 d3)) d2)))))) |
#s(approx (- (+ d2 d4) d3) (*.f64 #s(literal -1 binary64) (*.f64 d2 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d4 d3) d2)) #s(literal 1 binary64))))) |
#s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (*.f64 d1 d4)) d2)))))) |
#s(approx (* d1 (- d2 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (/.f64 (*.f64 d1 d3) d2))))) |
#s(approx (- d2 d3) (*.f64 #s(literal -1 binary64) (*.f64 d2 (-.f64 (/.f64 d3 d2) #s(literal 1 binary64))))) |
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1))) |
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))) |
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 d4) d1)) |
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 (+.f64 d4 (*.f64 #s(literal -1 binary64) d3))) d1)) |
#s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1)) |
#s(approx (- d4 (+ d1 d3)) (-.f64 (+.f64 d4 (*.f64 #s(literal -1 binary64) d3)) d1)) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) (pow.f64 d1 #s(literal 2 binary64)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (fma.f64 d1 d2 (*.f64 d1 d4))) (pow.f64 d1 #s(literal 2 binary64)))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (+.f64 d2 d4))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (*.f64 d1 (+.f64 d2 d4)))) |
#s(approx (- (+ d2 d4) d3) (+.f64 d2 d4)) |
#s(approx (- (+ d2 d4) d3) (+.f64 d2 (+.f64 d4 (*.f64 #s(literal -1 binary64) d3)))) |
#s(approx (- d4 d3) d4) |
#s(approx (- d4 d3) (+.f64 d4 (*.f64 #s(literal -1 binary64) d3))) |
#s(approx (- d3 d4) (*.f64 #s(literal -1 binary64) d4)) |
#s(approx (- d3 d4) (-.f64 d3 d4)) |
#s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (fma.f64 d1 d2 (*.f64 d1 d4))) |
#s(approx (- d2 d3) (+.f64 d2 (*.f64 #s(literal -1 binary64) d3))) |
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 d3 (fma.f64 #s(literal -1 binary64) d1 (/.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)) d3)))) |
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 d3 (-.f64 (+.f64 (/.f64 d2 d3) (/.f64 d4 d3)) (+.f64 #s(literal 1 binary64) (/.f64 d1 d3))))) |
#s(approx (- d4 (+ d1 d3)) (*.f64 d3 (-.f64 (/.f64 d4 d3) (+.f64 #s(literal 1 binary64) (/.f64 d1 d3))))) |
#s(approx (+ d1 d3) (*.f64 d3 (+.f64 #s(literal 1 binary64) (/.f64 d1 d3)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d3 (-.f64 (+.f64 (/.f64 (*.f64 d1 d2) d3) (/.f64 (*.f64 d1 d4) d3)) (+.f64 d1 (/.f64 (pow.f64 d1 #s(literal 2 binary64)) d3))))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d3 (fma.f64 #s(literal -1 binary64) d1 (/.f64 (*.f64 d1 (+.f64 d2 d4)) d3)))) |
#s(approx (- (+ d2 d4) d3) (*.f64 d3 (-.f64 (+.f64 (/.f64 d2 d3) (/.f64 d4 d3)) #s(literal 1 binary64)))) |
#s(approx (- d4 d3) (*.f64 d3 (-.f64 (/.f64 d4 d3) #s(literal 1 binary64)))) |
#s(approx (- d3 d4) (*.f64 d3 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d4 d3))))) |
#s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (*.f64 d3 (fma.f64 #s(literal -1 binary64) d1 (+.f64 (/.f64 (*.f64 d1 d2) d3) (/.f64 (*.f64 d1 d4) d3))))) |
#s(approx (* d1 (- d2 d3)) (*.f64 d3 (fma.f64 #s(literal -1 binary64) d1 (/.f64 (*.f64 d1 d2) d3)))) |
#s(approx (- d2 d3) (*.f64 d3 (-.f64 (/.f64 d2 d3) #s(literal 1 binary64)))) |
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)) d3)))))) |
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (+.f64 d2 d4) d1) d3)))))) |
#s(approx (- d4 (+ d1 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d4 d1) d3)))))) |
#s(approx (+ d1 d3) (*.f64 #s(literal -1 binary64) (*.f64 d3 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 d1 d3)) #s(literal 1 binary64))))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) (pow.f64 d1 #s(literal 2 binary64))) d3)) (*.f64 #s(literal -1 binary64) d1))))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (+.f64 d2 d4)) d3)))))) |
#s(approx (- (+ d2 d4) d3) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 d2 d4) d3)))))) |
#s(approx (- d4 d3) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d4 d3)))))) |
#s(approx (- d3 d4) (*.f64 #s(literal -1 binary64) (*.f64 d3 (-.f64 (/.f64 d4 d3) #s(literal 1 binary64))))) |
#s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 d1 (*.f64 #s(literal -1 binary64) (/.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) d3)))))) |
#s(approx (* d1 (- d2 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 d2) d3)))))) |
#s(approx (- d2 d3) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d2 d3)))))) |
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))) |
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))) |
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 d2 (+.f64 d1 d3))) |
#s(approx (- d4 (+ d1 d3)) (*.f64 #s(literal -1 binary64) (+.f64 d1 d3))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (*.f64 d1 d2) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64))))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 d3)))) |
#s(approx (- d3 d4) (+.f64 d3 (*.f64 #s(literal -1 binary64) d4))) |
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 d1 d4)) |
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 d4 (+.f64 d1 (/.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) d4)))) |
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 d4 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 d2 d4)) (+.f64 (/.f64 d1 d4) (/.f64 d3 d4))))) |
#s(approx (- d4 (+ d1 d3)) (*.f64 d4 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 d1 d3) d4))))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d4 (-.f64 (+.f64 d1 (/.f64 (*.f64 d1 d2) d4)) (+.f64 (/.f64 (*.f64 d1 d3) d4) (/.f64 (pow.f64 d1 #s(literal 2 binary64)) d4))))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d4 (+.f64 d1 (/.f64 (*.f64 d1 (-.f64 d2 d3)) d4)))) |
#s(approx (- (+ d2 d4) d3) (*.f64 d4 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 d2 d4)) (/.f64 d3 d4)))) |
#s(approx (- d4 d3) (*.f64 d4 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d3 d4))))) |
#s(approx (- d3 d4) (*.f64 d4 (-.f64 (/.f64 d3 d4) #s(literal 1 binary64)))) |
#s(approx (* d1 (+ (- d4 d1) (- d2 d3))) (*.f64 #s(literal -1 binary64) (*.f64 d4 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) d4)))))) |
#s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d4 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d2 (+.f64 d1 d3)) d4)) #s(literal 1 binary64))))) |
#s(approx (- d4 (+ d1 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d4 (-.f64 (+.f64 (/.f64 d1 d4) (/.f64 d3 d4)) #s(literal 1 binary64))))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d4 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 d1 d2) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64)))) d4)))))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 #s(literal -1 binary64) (*.f64 d4 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (-.f64 d2 d3)) d4)))))) |
#s(approx (- (+ d2 d4) d3) (*.f64 #s(literal -1 binary64) (*.f64 d4 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d2 d3) d4)) #s(literal 1 binary64))))) |
#s(approx (- d4 d3) (*.f64 #s(literal -1 binary64) (*.f64 d4 (-.f64 (/.f64 d3 d4) #s(literal 1 binary64))))) |
#s(approx (- d3 d4) (*.f64 #s(literal -1 binary64) (*.f64 d4 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d3 d4)))))) |
12 calls:
| Time | Variable | Point |
|---|---|---|
| 6.0ms | d2 | -inf |
| 2.0ms | d1 | -inf |
| 2.0ms | d1 | inf |
| 1.0ms | d1 | 0 |
| 1.0ms | d3 | -inf |
| Inputs |
|---|
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 d4 (+.f64 d1 d3)))) |
d1 |
#s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 d4 (+.f64 d1 d3))) |
(-.f64 d4 (+.f64 d1 d3)) |
d4 |
(+.f64 d1 d3) |
d3 |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2)) |
(*.f64 d1 d2) |
d2 |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3)))) |
(*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3))) |
#s(approx (- (+ d2 d4) d3) (-.f64 d4 d3)) |
(-.f64 d4 d3) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (-.f64 d2 (-.f64 d3 d4)) d1)) |
(*.f64 (-.f64 d2 (-.f64 d3 d4)) d1) |
(-.f64 d2 (-.f64 d3 d4)) |
(-.f64 d3 d4) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 d3))))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 d3)))) |
(fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 d3))) |
(*.f64 d1 (-.f64 d2 d3)) |
(-.f64 d2 d3) |
| Outputs |
|---|
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3))) |
d1 |
(neg.f64 (neg.f64 d1)) |
#s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3)) |
(*.f64 (-.f64 d4 (-.f64 d1 d3)) (/.f64 (-.f64 (-.f64 d4 d1) d3) (-.f64 d4 (-.f64 d1 d3)))) |
(*.f64 (/.f64 (*.f64 (-.f64 d4 (-.f64 d1 d3)) (-.f64 (-.f64 d4 d1) d3)) (fma.f64 (*.f64 (+.f64 d1 d3) (+.f64 d1 d3)) (+.f64 d1 d3) (*.f64 (*.f64 d4 d4) d4))) (fma.f64 (+.f64 d1 d3) (-.f64 (+.f64 d1 d3) d4) (*.f64 d4 d4))) |
(*.f64 (/.f64 (*.f64 (-.f64 d4 (-.f64 d1 d3)) (-.f64 (-.f64 d4 d1) d3)) (*.f64 (-.f64 d4 (-.f64 d1 d3)) (-.f64 (-.f64 d4 d1) d3))) (-.f64 (-.f64 d4 d1) d3)) |
(*.f64 (fma.f64 (-.f64 d4 (-.f64 d1 d3)) (+.f64 d1 d3) (*.f64 d4 d4)) (/.f64 (-.f64 (-.f64 d4 d1) d3) (fma.f64 (-.f64 d4 (-.f64 d1 d3)) (+.f64 d1 d3) (*.f64 d4 d4)))) |
(*.f64 (/.f64 (-.f64 (*.f64 (*.f64 d4 d4) d4) (*.f64 (*.f64 (+.f64 d1 d3) (+.f64 d1 d3)) (+.f64 d1 d3))) (fma.f64 (*.f64 (*.f64 d4 d4) (*.f64 d4 d4)) (*.f64 d4 d4) (pow.f64 (*.f64 (-.f64 d4 (-.f64 d1 d3)) (+.f64 d1 d3)) #s(literal 3 binary64)))) (fma.f64 (*.f64 (-.f64 d4 (-.f64 d1 d3)) (+.f64 d1 d3)) (-.f64 (*.f64 (-.f64 d4 (-.f64 d1 d3)) (+.f64 d1 d3)) (*.f64 d4 d4)) (*.f64 (*.f64 d4 d4) (*.f64 d4 d4)))) |
d4 |
(neg.f64 (neg.f64 d4)) |
(*.f64 (+.f64 d1 d3) (/.f64 (-.f64 d1 d3) (-.f64 d1 d3))) |
(*.f64 (/.f64 (*.f64 (+.f64 d1 d3) (-.f64 d1 d3)) (*.f64 (+.f64 d1 d3) (-.f64 d1 d3))) (+.f64 d1 d3)) |
(*.f64 (/.f64 (*.f64 (+.f64 d1 d3) (-.f64 d1 d3)) (-.f64 (*.f64 (*.f64 d1 d1) d1) (*.f64 (*.f64 d3 d3) d3))) (fma.f64 (+.f64 d1 d3) d3 (*.f64 d1 d1))) |
(*.f64 (+.f64 (fabs.f64 d1) d3) (/.f64 (-.f64 (fabs.f64 d1) d3) (-.f64 d1 d3))) |
(*.f64 (+.f64 (neg.f64 d1) d3) (/.f64 (-.f64 (neg.f64 d1) d3) (-.f64 d1 d3))) |
d3 |
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 d1 d2)) |
(*.f64 d1 d2) |
(*.f64 d2 d1) |
d2 |
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 d1 #s(approx (- d4 (- d3 d2)) (-.f64 d4 d3)))) |
(*.f64 d1 #s(approx (- d4 (- d3 d2)) (-.f64 d4 d3))) |
#s(approx (- d4 (- d3 d2)) (-.f64 d4 d3)) |
(*.f64 (+.f64 d4 d3) (/.f64 (-.f64 d4 d3) (+.f64 d4 d3))) |
(*.f64 (/.f64 (*.f64 (+.f64 d4 d3) (-.f64 d4 d3)) (*.f64 (+.f64 d4 d3) (-.f64 d3 d4))) (-.f64 d3 d4)) |
(*.f64 (/.f64 (*.f64 (+.f64 d4 d3) (-.f64 d4 d3)) (*.f64 (+.f64 d4 d3) (-.f64 d4 d3))) (-.f64 d4 d3)) |
(*.f64 (/.f64 (*.f64 (+.f64 d4 d3) (-.f64 d4 d3)) (fma.f64 (*.f64 d3 d3) d3 (*.f64 (*.f64 d4 d4) d4))) (fma.f64 d3 (-.f64 d3 d4) (*.f64 d4 d4))) |
(*.f64 (fma.f64 (+.f64 d4 d3) d3 (*.f64 d4 d4)) (/.f64 (-.f64 d4 d3) (fma.f64 (+.f64 d4 d3) d3 (*.f64 d4 d4)))) |
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 (-.f64 d2 (-.f64 d3 d4)) d1)) |
(*.f64 (-.f64 d2 (-.f64 d3 d4)) d1) |
(*.f64 (-.f64 d4 (-.f64 d2 d3)) d1) |
(*.f64 (-.f64 d2 (-.f64 d3 d4)) (neg.f64 d1)) |
(*.f64 (-.f64 (-.f64 d2 d3) (neg.f64 d4)) d1) |
(*.f64 (-.f64 (-.f64 d2 d3) d4) d1) |
(*.f64 (/.f64 (fma.f64 (-.f64 d4 d3) (-.f64 d3 d4) (*.f64 d2 d2)) (fma.f64 (-.f64 d4 d3) (-.f64 d3 d4) (*.f64 d2 d2))) (-.f64 d2 (-.f64 d3 d4))) |
(*.f64 (+.f64 (+.f64 d3 d2) d4) (/.f64 (-.f64 d2 (-.f64 d3 d4)) (+.f64 (+.f64 d3 d2) d4))) |
(*.f64 (-.f64 d2 (-.f64 d4 d3)) (/.f64 (-.f64 d2 (-.f64 d3 d4)) (-.f64 d2 (-.f64 d4 d3)))) |
(*.f64 (/.f64 (*.f64 (+.f64 (+.f64 d3 d2) d4) (-.f64 d2 (-.f64 d3 d4))) (*.f64 (+.f64 (+.f64 d3 d2) d4) (-.f64 d2 (-.f64 d3 d4)))) (-.f64 d2 (-.f64 d3 d4))) |
(*.f64 (/.f64 (*.f64 (+.f64 (+.f64 d3 d2) d4) (-.f64 d2 (-.f64 d3 d4))) (fma.f64 (*.f64 (+.f64 d4 d2) (+.f64 d4 d2)) (+.f64 d4 d2) (*.f64 (*.f64 d3 d3) d3))) (fma.f64 d3 (-.f64 d3 (+.f64 d4 d2)) (*.f64 (+.f64 d4 d2) (+.f64 d4 d2)))) |
(*.f64 (+.f64 d4 d3) (/.f64 (-.f64 d3 d4) (+.f64 d4 d3))) |
(*.f64 (/.f64 (*.f64 (+.f64 d4 d3) (-.f64 d3 d4)) (*.f64 (+.f64 d4 d3) (-.f64 d3 d4))) (-.f64 d3 d4)) |
(*.f64 (/.f64 (*.f64 (+.f64 d4 d3) (-.f64 d3 d4)) (*.f64 (+.f64 d4 d3) (-.f64 d4 d3))) (-.f64 d4 d3)) |
(*.f64 (/.f64 (*.f64 (+.f64 d4 d3) (-.f64 d3 d4)) (fma.f64 (*.f64 d3 d3) d3 (*.f64 (*.f64 d4 d4) d4))) (fma.f64 d3 (-.f64 d3 d4) (*.f64 d4 d4))) |
(*.f64 (fma.f64 (+.f64 d4 d3) d3 (*.f64 d4 d4)) (/.f64 (-.f64 d3 d4) (fma.f64 (+.f64 d4 d3) d3 (*.f64 d4 d4)))) |
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) #s(approx (* d1 (- (+ d2 d3) d4)) (*.f64 (-.f64 d2 (-.f64 d3 d4)) d1))) |
#s(approx (* d1 (- (+ d2 d3) d4)) (*.f64 (-.f64 d2 (-.f64 d3 d4)) d1)) |
(*.f64 (-.f64 d2 (-.f64 d3 d4)) d1) |
(*.f64 (-.f64 d4 (-.f64 d2 d3)) d1) |
(*.f64 (-.f64 d2 (-.f64 d3 d4)) (neg.f64 d1)) |
(*.f64 (-.f64 (-.f64 d2 d3) (neg.f64 d4)) d1) |
(*.f64 (-.f64 (-.f64 d2 d3) d4) d1) |
(*.f64 d1 (-.f64 d2 d3)) |
(*.f64 (+.f64 d3 d2) d1) |
(*.f64 (-.f64 d2 d3) d1) |
(*.f64 (-.f64 d2 d3) (neg.f64 d1)) |
(*.f64 (neg.f64 d1) (+.f64 d3 d2)) |
(*.f64 (+.f64 d3 d2) (/.f64 (-.f64 d2 d3) (+.f64 d3 d2))) |
(*.f64 (/.f64 (*.f64 (+.f64 d3 d2) (-.f64 d2 d3)) (*.f64 (+.f64 d3 d2) (-.f64 d2 d3))) (-.f64 d2 d3)) |
(*.f64 (/.f64 (*.f64 (+.f64 d3 d2) (-.f64 d2 d3)) (fma.f64 (*.f64 d2 d2) d2 (*.f64 (*.f64 d3 d3) d3))) (fma.f64 d3 (-.f64 d3 d2) (*.f64 d2 d2))) |
(*.f64 (fma.f64 (+.f64 d3 d2) d3 (*.f64 d2 d2)) (/.f64 (-.f64 d2 d3) (fma.f64 (+.f64 d3 d2) d3 (*.f64 d2 d2)))) |
(*.f64 (/.f64 (-.f64 (*.f64 (*.f64 d2 d2) d2) (*.f64 (*.f64 d3 d3) d3)) (fma.f64 (*.f64 (*.f64 (*.f64 d2 d2) d2) (*.f64 d2 d2)) d2 (pow.f64 (*.f64 (+.f64 d3 d2) d3) #s(literal 3 binary64)))) (fma.f64 (*.f64 (+.f64 d3 d2) d3) (-.f64 (*.f64 (+.f64 d3 d2) d3) (*.f64 d2 d2)) (*.f64 (*.f64 d2 d2) (*.f64 d2 d2)))) |
Compiled 5 645 to 938 computations (83.4% saved)
9 alts after pruning (7 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 173 | 5 | 178 |
| Fresh | 1 | 2 | 3 |
| Picked | 3 | 2 | 5 |
| Done | 0 | 0 | 0 |
| Total | 177 | 9 | 186 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 81.3% | (*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3))) |
| 79.7% | (*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 d4) d1))) | |
| ▶ | 60.2% | (*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1)))) |
| ✓ | 56.4% | #s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3)))) |
| ▶ | 55.3% | #s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (+.f64 d2 d4)))) |
| ▶ | 33.9% | #s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4)))) |
| ✓ | 27.3% | #s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2)) |
| ▶ | 49.3% | #s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3)))) |
| 55.7% | #s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) #s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (fma.f64 d1 d2 (*.f64 d1 d4))))) |
Compiled 394 to 252 computations (36% saved)
| Inputs |
|---|
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3))) |
d1 |
#s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3)) |
(-.f64 (-.f64 d4 d1) d3) |
(-.f64 d4 d1) |
d4 |
d3 |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4)))) |
(*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4))) |
#s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4)) |
#s(approx (- d4 d3) d4) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3)))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3))) |
(*.f64 d1 (-.f64 d2 d3)) |
(-.f64 d2 d3) |
d2 |
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1)))) |
#s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1))) |
#s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1)) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (+.f64 d2 d4)))) |
(*.f64 d1 #s(approx (- (+ d2 d4) d3) (+.f64 d2 d4))) |
#s(approx (- (+ d2 d4) d3) (+.f64 d2 d4)) |
(+.f64 d2 d4) |
| Outputs |
|---|
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3))) |
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 d1 (-.f64 (+.f64 d2 (+.f64 d4 (*.f64 #s(literal -1 binary64) d1))) d3))) |
#s(approx d1 d1) |
#s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (+.f64 d2 d4) d3)) |
#s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (+.f64 d2 (+.f64 d4 (*.f64 #s(literal -1 binary64) d1))) d3)) |
#s(approx (- (- d4 d1) d3) (-.f64 d4 d3)) |
#s(approx (- (- d4 d1) d3) (-.f64 (+.f64 d4 (*.f64 #s(literal -1 binary64) d1)) d3)) |
#s(approx (- d4 d1) d4) |
#s(approx (- d4 d1) (+.f64 d4 (*.f64 #s(literal -1 binary64) d1))) |
#s(approx (* d1 (- d2 d3)) (*.f64 d1 (-.f64 d2 d3))) |
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 #s(literal -1 binary64) (pow.f64 d1 #s(literal 2 binary64)))) |
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 (pow.f64 d1 #s(literal 2 binary64)) (-.f64 (+.f64 (/.f64 d2 d1) (/.f64 d4 d1)) (+.f64 #s(literal 1 binary64) (/.f64 d3 d1))))) |
#s(approx (- (+ d2 d4) (+ d3 d1)) (*.f64 #s(literal -1 binary64) d1)) |
#s(approx (- (+ d2 d4) (+ d3 d1)) (*.f64 d1 (-.f64 (+.f64 (/.f64 d2 d1) (/.f64 d4 d1)) (+.f64 #s(literal 1 binary64) (/.f64 d3 d1))))) |
#s(approx (- (- d4 d1) d3) (*.f64 d1 (-.f64 (/.f64 d4 d1) (+.f64 #s(literal 1 binary64) (/.f64 d3 d1))))) |
#s(approx (- d4 d1) (*.f64 d1 (-.f64 (/.f64 d4 d1) #s(literal 1 binary64)))) |
#s(approx (- (+ d2 d4) (+ d3 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d1 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (+.f64 d2 d4) d3) d1)))))) |
#s(approx (- (- d4 d1) d3) (*.f64 #s(literal -1 binary64) (*.f64 d1 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d4 d3) d1)))))) |
#s(approx (- d4 d1) (*.f64 #s(literal -1 binary64) (*.f64 d1 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d4 d1)))))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (pow.f64 d1 #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (fma.f64 #s(literal -1 binary64) d2 (*.f64 #s(literal -1 binary64) d4)) (*.f64 #s(literal -1 binary64) d3)) d1)) #s(literal 1 binary64)))) |
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))) |
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (fma.f64 d1 d2 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))) |
#s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 d4 (+.f64 d1 d3))) |
#s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (+.f64 d2 d4) (+.f64 d1 d3))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (*.f64 d1 d4) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64))))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64))))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d4 d3))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 d1 d2 (*.f64 d1 (-.f64 d4 d3)))) |
#s(approx (* d1 (- d2 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d1 d3))) |
#s(approx (* d1 (- d2 d3)) (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (*.f64 d1 d2))) |
#s(approx (- d2 d3) (*.f64 #s(literal -1 binary64) d3)) |
#s(approx (- d2 d3) (-.f64 d2 d3)) |
#s(approx d2 d2) |
#s(approx (+ d2 d4) (+.f64 d2 d4)) |
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 d1 d2)) |
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 d2 (+.f64 d1 (/.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) d2)))) |
#s(approx (- (+ d2 d4) (+ d3 d1)) (*.f64 d2 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 d4 d2)) (+.f64 (/.f64 d1 d2) (/.f64 d3 d2))))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d2 (-.f64 (+.f64 d1 (/.f64 (*.f64 d1 d4) d2)) (+.f64 (/.f64 (*.f64 d1 d3) d2) (/.f64 (pow.f64 d1 #s(literal 2 binary64)) d2))))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d2 (+.f64 d1 (/.f64 (*.f64 d1 (-.f64 d4 d3)) d2)))) |
#s(approx (- (+ d2 d4) d3) (*.f64 d2 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 d4 d2)) (/.f64 d3 d2)))) |
#s(approx (* d1 (- d2 d3)) (*.f64 d2 (+.f64 d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 d3) d2))))) |
#s(approx (- d2 d3) (*.f64 d2 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d3 d2))))) |
#s(approx (+ d2 d4) (*.f64 d2 (+.f64 #s(literal 1 binary64) (/.f64 d4 d2)))) |
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) d2)))))) |
#s(approx (- (+ d2 d4) (+ d3 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d4 (+.f64 d1 d3)) d2)) #s(literal 1 binary64))))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 d1 d4) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64)))) d2)))))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (-.f64 d4 d3)) d2)))))) |
#s(approx (- (+ d2 d4) d3) (*.f64 #s(literal -1 binary64) (*.f64 d2 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d4 d3) d2)) #s(literal 1 binary64))))) |
#s(approx (* d1 (- d2 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d2 (fma.f64 #s(literal -1 binary64) d1 (/.f64 (*.f64 d1 d3) d2))))) |
#s(approx (- d2 d3) (*.f64 #s(literal -1 binary64) (*.f64 d2 (-.f64 (/.f64 d3 d2) #s(literal 1 binary64))))) |
#s(approx (+ d2 d4) (*.f64 #s(literal -1 binary64) (*.f64 d2 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 d4 d2)) #s(literal 1 binary64))))) |
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1))) |
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))) |
#s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (+.f64 d2 d4) d1)) |
#s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (+.f64 d2 (+.f64 d4 (*.f64 #s(literal -1 binary64) d3))) d1)) |
#s(approx (- (- d4 d1) d3) (-.f64 d4 d1)) |
#s(approx (- (- d4 d1) d3) (-.f64 (+.f64 d4 (*.f64 #s(literal -1 binary64) d3)) d1)) |
#s(approx d3 d3) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) (pow.f64 d1 #s(literal 2 binary64)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (fma.f64 d1 d2 (*.f64 d1 d4))) (pow.f64 d1 #s(literal 2 binary64)))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (+.f64 d2 d4))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 #s(literal -1 binary64) (*.f64 d1 d3) (*.f64 d1 (+.f64 d2 d4)))) |
#s(approx (- (+ d2 d4) d3) (+.f64 d2 (+.f64 d4 (*.f64 #s(literal -1 binary64) d3)))) |
#s(approx (- d4 d3) (+.f64 d4 (*.f64 #s(literal -1 binary64) d3))) |
#s(approx (- d2 d3) (+.f64 d2 (*.f64 #s(literal -1 binary64) d3))) |
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 d3 (fma.f64 #s(literal -1 binary64) d1 (/.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)) d3)))) |
#s(approx (- (+ d2 d4) (+ d3 d1)) (*.f64 d3 (-.f64 (+.f64 (/.f64 d2 d3) (/.f64 d4 d3)) (+.f64 #s(literal 1 binary64) (/.f64 d1 d3))))) |
#s(approx (- (- d4 d1) d3) (*.f64 d3 (-.f64 (/.f64 d4 d3) (+.f64 #s(literal 1 binary64) (/.f64 d1 d3))))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d3 (-.f64 (+.f64 (/.f64 (*.f64 d1 d2) d3) (/.f64 (*.f64 d1 d4) d3)) (+.f64 d1 (/.f64 (pow.f64 d1 #s(literal 2 binary64)) d3))))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d3 (fma.f64 #s(literal -1 binary64) d1 (/.f64 (*.f64 d1 (+.f64 d2 d4)) d3)))) |
#s(approx (- (+ d2 d4) d3) (*.f64 d3 (-.f64 (+.f64 (/.f64 d2 d3) (/.f64 d4 d3)) #s(literal 1 binary64)))) |
#s(approx (- d4 d3) (*.f64 d3 (-.f64 (/.f64 d4 d3) #s(literal 1 binary64)))) |
#s(approx (* d1 (- d2 d3)) (*.f64 d3 (fma.f64 #s(literal -1 binary64) d1 (/.f64 (*.f64 d1 d2) d3)))) |
#s(approx (- d2 d3) (*.f64 d3 (-.f64 (/.f64 d2 d3) #s(literal 1 binary64)))) |
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)) d3)))))) |
#s(approx (- (+ d2 d4) (+ d3 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (+.f64 d2 d4) d1) d3)))))) |
#s(approx (- (- d4 d1) d3) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d4 d1) d3)))))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (fma.f64 d1 d2 (*.f64 d1 d4)) (pow.f64 d1 #s(literal 2 binary64))) d3)) (*.f64 #s(literal -1 binary64) d1))))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (+.f64 d2 d4)) d3)))))) |
#s(approx (- (+ d2 d4) d3) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 d2 d4) d3)))))) |
#s(approx (- d4 d3) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d4 d3)))))) |
#s(approx (* d1 (- d2 d3)) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 d2) d3)))))) |
#s(approx (- d2 d3) (*.f64 #s(literal -1 binary64) (*.f64 d3 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d2 d3)))))) |
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))) |
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))))) |
#s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 d2 (+.f64 d1 d3))) |
#s(approx (- (- d4 d1) d3) (*.f64 #s(literal -1 binary64) (+.f64 d1 d3))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (-.f64 (*.f64 d1 d2) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64))))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 d3)))) |
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 d1 d4)) |
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 d4 (+.f64 d1 (/.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) d4)))) |
#s(approx (- (+ d2 d4) (+ d3 d1)) (*.f64 d4 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 d2 d4)) (+.f64 (/.f64 d1 d4) (/.f64 d3 d4))))) |
#s(approx (- (- d4 d1) d3) (*.f64 d4 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 (+.f64 d1 d3) d4))))) |
#s(approx (- d4 d1) (*.f64 d4 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d1 d4))))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d4 (-.f64 (+.f64 d1 (/.f64 (*.f64 d1 d2) d4)) (+.f64 (/.f64 (*.f64 d1 d3) d4) (/.f64 (pow.f64 d1 #s(literal 2 binary64)) d4))))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d4 (+.f64 d1 (/.f64 (*.f64 d1 (-.f64 d2 d3)) d4)))) |
#s(approx (- (+ d2 d4) d3) (*.f64 d4 (-.f64 (+.f64 #s(literal 1 binary64) (/.f64 d2 d4)) (/.f64 d3 d4)))) |
#s(approx (- d4 d3) (*.f64 d4 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1 binary64) (/.f64 d3 d4))))) |
#s(approx (+ d2 d4) (*.f64 d4 (+.f64 #s(literal 1 binary64) (/.f64 d2 d4)))) |
#s(approx (* d1 (- (+ d2 d4) (+ d3 d1))) (*.f64 #s(literal -1 binary64) (*.f64 d4 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) d4)))))) |
#s(approx (- (+ d2 d4) (+ d3 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d4 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d2 (+.f64 d1 d3)) d4)) #s(literal 1 binary64))))) |
#s(approx (- (- d4 d1) d3) (*.f64 #s(literal -1 binary64) (*.f64 d4 (-.f64 (+.f64 (/.f64 d1 d4) (/.f64 d3 d4)) #s(literal 1 binary64))))) |
#s(approx (- d4 d1) (*.f64 #s(literal -1 binary64) (*.f64 d4 (-.f64 (/.f64 d1 d4) #s(literal 1 binary64))))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 #s(literal -1 binary64) (*.f64 d4 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 (*.f64 d1 d2) (fma.f64 d1 d3 (pow.f64 d1 #s(literal 2 binary64)))) d4)))))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 #s(literal -1 binary64) (*.f64 d4 (fma.f64 #s(literal -1 binary64) d1 (*.f64 #s(literal -1 binary64) (/.f64 (*.f64 d1 (-.f64 d2 d3)) d4)))))) |
#s(approx (- (+ d2 d4) d3) (*.f64 #s(literal -1 binary64) (*.f64 d4 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 (-.f64 d2 d3) d4)) #s(literal 1 binary64))))) |
#s(approx (- d4 d3) (*.f64 #s(literal -1 binary64) (*.f64 d4 (-.f64 (/.f64 d3 d4) #s(literal 1 binary64))))) |
#s(approx (+ d2 d4) (*.f64 #s(literal -1 binary64) (*.f64 d4 (-.f64 (*.f64 #s(literal -1 binary64) (/.f64 d2 d4)) #s(literal 1 binary64))))) |
12 calls:
| Time | Variable | Point |
|---|---|---|
| 6.0ms | d1 | inf |
| 2.0ms | d1 | -inf |
| 1.0ms | d3 | -inf |
| 1.0ms | d2 | -inf |
| 1.0ms | d4 | -inf |
| Inputs |
|---|
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3))) |
d1 |
#s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3)) |
(-.f64 (-.f64 d4 d1) d3) |
(-.f64 d4 d1) |
d4 |
d3 |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4)))) |
(*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4))) |
#s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4)) |
#s(approx (- d4 d3) d4) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3)))) |
#s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3))) |
(*.f64 d1 (-.f64 d2 d3)) |
(-.f64 d2 d3) |
d2 |
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1)))) |
#s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1))) |
#s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1)) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (+.f64 d2 d4)))) |
(*.f64 d1 #s(approx (- (+ d2 d4) d3) (+.f64 d2 d4))) |
#s(approx (- (+ d2 d4) d3) (+.f64 d2 d4)) |
(+.f64 d2 d4) |
| Outputs |
|---|
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d1 d3)) (-.f64 (-.f64 d4 d1) d3))) |
d1 |
(neg.f64 (neg.f64 d1)) |
#s(approx (- (+ d2 d4) (+ d1 d3)) (-.f64 (-.f64 d4 d1) d3)) |
(*.f64 (/.f64 (fma.f64 (-.f64 d3 d1) (-.f64 d1 d3) (*.f64 d4 d4)) (fma.f64 (-.f64 d3 d1) (-.f64 d1 d3) (*.f64 d4 d4))) (-.f64 (-.f64 d4 d1) d3)) |
(*.f64 (-.f64 d4 (-.f64 d1 d3)) (/.f64 (-.f64 (-.f64 d4 d1) d3) (-.f64 d4 (-.f64 d1 d3)))) |
(*.f64 (/.f64 (fma.f64 (-.f64 d3 d1) (-.f64 d1 d3) (*.f64 d4 d4)) (fma.f64 (fma.f64 d1 d1 (*.f64 d3 d3)) (-.f64 d3 d1) (*.f64 (*.f64 d4 d4) d4))) (fma.f64 (-.f64 d3 d1) (-.f64 (-.f64 d3 d1) d4) (*.f64 d4 d4))) |
(*.f64 (/.f64 (fma.f64 (-.f64 d3 d1) (-.f64 d1 d3) (*.f64 d4 d4)) (fma.f64 (fma.f64 d1 d1 (*.f64 d4 d4)) (-.f64 d4 d1) (*.f64 (*.f64 d3 d3) d3))) (fma.f64 d3 (-.f64 d3 (-.f64 d4 d1)) (fma.f64 d1 d1 (*.f64 d4 d4)))) |
(*.f64 (fma.f64 (-.f64 d4 (-.f64 d1 d3)) d3 (fma.f64 d1 d1 (*.f64 d4 d4))) (/.f64 (-.f64 (-.f64 d4 d1) d3) (fma.f64 (-.f64 d4 (-.f64 d1 d3)) d3 (fma.f64 d1 d1 (*.f64 d4 d4))))) |
(*.f64 (-.f64 d4 d1) (/.f64 (-.f64 d4 d1) (-.f64 d4 d1))) |
(*.f64 (/.f64 (fma.f64 d1 d1 (*.f64 d4 d4)) (fma.f64 d1 d1 (*.f64 d4 d4))) (-.f64 d4 d1)) |
(*.f64 (/.f64 (fma.f64 d1 d1 (*.f64 d4 d4)) (neg.f64 (fma.f64 d1 d1 (*.f64 d4 d4)))) (neg.f64 (-.f64 d4 d1))) |
(*.f64 (/.f64 (fma.f64 d1 d1 (*.f64 d4 d4)) (fma.f64 (*.f64 d1 d1) d1 (*.f64 (*.f64 d4 d4) d4))) (fma.f64 (-.f64 d4 d1) d1 (*.f64 d4 d4))) |
(*.f64 (+.f64 (fabs.f64 d1) d4) (/.f64 (-.f64 d4 (fabs.f64 d1)) (-.f64 d4 d1))) |
d4 |
(neg.f64 (neg.f64 d4)) |
d3 |
#s(approx (* d1 (- d2 (+ (+ d4 d1) d3))) (*.f64 d1 #s(approx (- d2 (- d3 d4)) #s(approx (- d4 d3) d4)))) |
(*.f64 d1 #s(approx (- d2 (- d3 d4)) #s(approx (- d4 d3) d4))) |
#s(approx (- d2 (- d3 d4)) #s(approx (- d4 d3) d4)) |
#s(approx (- d4 d3) d4) |
#s(approx (* d1 (- d2 (+ (+ d4 d1) d3))) #s(approx (* (- d2 (- d3 d4)) d1) (*.f64 d1 (-.f64 d2 d3)))) |
#s(approx (* (- d2 (- d3 d4)) d1) (*.f64 d1 (-.f64 d2 d3))) |
(*.f64 d1 (-.f64 d2 d3)) |
(*.f64 (+.f64 d3 d2) d1) |
(*.f64 (-.f64 d2 d3) d1) |
(*.f64 (-.f64 d2 d3) (neg.f64 d1)) |
(*.f64 (neg.f64 d1) (+.f64 d3 d2)) |
(*.f64 (+.f64 d3 d2) (/.f64 (-.f64 d2 d3) (+.f64 d3 d2))) |
(*.f64 (/.f64 (*.f64 (+.f64 d3 d2) (-.f64 d2 d3)) (*.f64 (+.f64 d3 d2) (-.f64 d2 d3))) (-.f64 d2 d3)) |
(*.f64 (/.f64 (*.f64 (+.f64 d3 d2) (-.f64 d2 d3)) (fma.f64 (*.f64 d2 d2) d2 (*.f64 (*.f64 d3 d3) d3))) (fma.f64 d3 (-.f64 d3 d2) (*.f64 d2 d2))) |
(*.f64 (fma.f64 (+.f64 d3 d2) d3 (*.f64 d2 d2)) (/.f64 (-.f64 d2 d3) (fma.f64 (+.f64 d3 d2) d3 (*.f64 d2 d2)))) |
(*.f64 (/.f64 (-.f64 (*.f64 (*.f64 d2 d2) d2) (*.f64 (*.f64 d3 d3) d3)) (fma.f64 (*.f64 (*.f64 (*.f64 d2 d2) d2) (*.f64 d2 d2)) d2 (pow.f64 (*.f64 (+.f64 d3 d2) d3) #s(literal 3 binary64)))) (fma.f64 (*.f64 (+.f64 d3 d2) d3) (-.f64 (*.f64 (+.f64 d3 d2) d3) (*.f64 d2 d2)) (*.f64 (*.f64 d2 d2) (*.f64 d2 d2)))) |
d2 |
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d1 d3)) #s(approx (- (- d4 d3) d1) (-.f64 d4 d1)))) |
#s(approx (- (+ d2 d4) (+ d1 d3)) #s(approx (- (- d4 d3) d1) (-.f64 d4 d1))) |
#s(approx (- (- d4 d3) d1) (-.f64 d4 d1)) |
#s(approx (* d1 (- d2 (+ (+ d4 d1) d3))) (*.f64 d1 #s(approx (- d2 (- d3 d4)) (+.f64 d2 d4)))) |
(*.f64 d1 #s(approx (- d2 (- d3 d4)) (+.f64 d2 d4))) |
#s(approx (- d2 (- d3 d4)) (+.f64 d2 d4)) |
(*.f64 (+.f64 d2 d4) (/.f64 (-.f64 d2 d4) (-.f64 d2 d4))) |
(*.f64 (/.f64 (*.f64 (+.f64 d2 d4) (-.f64 d2 d4)) (*.f64 (+.f64 d2 d4) (-.f64 d2 d4))) (+.f64 d2 d4)) |
(*.f64 (/.f64 (*.f64 (+.f64 d2 d4) (-.f64 d2 d4)) (-.f64 (*.f64 (*.f64 d2 d2) d2) (*.f64 (*.f64 d4 d4) d4))) (fma.f64 (+.f64 d2 d4) d4 (*.f64 d2 d2))) |
(*.f64 (fma.f64 (-.f64 d4 d2) d4 (*.f64 d2 d2)) (/.f64 (+.f64 d2 d4) (fma.f64 (-.f64 d4 d2) d4 (*.f64 d2 d2)))) |
(*.f64 (/.f64 (fma.f64 (*.f64 d2 d2) d2 (*.f64 (*.f64 d4 d4) d4)) (fma.f64 (*.f64 (*.f64 (*.f64 d2 d2) d2) (*.f64 d2 d2)) d2 (pow.f64 (*.f64 (-.f64 d4 d2) d4) #s(literal 3 binary64)))) (fma.f64 (*.f64 (-.f64 d4 d2) d4) (-.f64 (*.f64 (-.f64 d4 d2) d4) (*.f64 d2 d2)) (*.f64 (*.f64 d2 d2) (*.f64 d2 d2)))) |
Compiled 5 104 to 854 computations (83.3% saved)
9 alts after pruning (2 fresh and 7 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 170 | 1 | 171 |
| Fresh | 1 | 1 | 2 |
| Picked | 0 | 5 | 5 |
| Done | 0 | 2 | 2 |
| Total | 171 | 9 | 180 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 81.3% | (*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3))) |
| 79.7% | (*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (+.f64 d2 d4) d1))) | |
| ✓ | 60.2% | (*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1)))) |
| ✓ | 56.4% | #s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3)))) |
| ✓ | 55.3% | #s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (+.f64 d2 d4)))) |
| ✓ | 33.9% | #s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4)))) |
| ✓ | 27.3% | #s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2)) |
| ✓ | 49.3% | #s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3)))) |
| 55.7% | #s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) #s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (fma.f64 d1 d2 (*.f64 d1 d4))))) |
Compiled 220 to 141 computations (35.9% saved)
Total -0.0b remaining (-0%)
Threshold costs -0b (-0%)
| Inputs |
|---|
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2)) |
| Outputs |
|---|
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2)) |
| Inputs |
|---|
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2)) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4)))) |
| Outputs |
|---|
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2)) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2)) |
| Inputs |
|---|
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2)) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3)))) |
| Outputs |
|---|
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4)))) |
| Inputs |
|---|
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2)) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3)))) |
| Outputs |
|---|
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3)))) |
| Inputs |
|---|
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2)) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3)))) |
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1)))) |
| Outputs |
|---|
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3)))) |
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3)))) |
| Inputs |
|---|
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2)) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3)))) |
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (+.f64 d2 d4)))) |
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) d1))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) #s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (fma.f64 d1 d2 (*.f64 d1 d4))))) |
| Outputs |
|---|
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (+.f64 d2 d4)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (+.f64 d2 d4)))) |
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1)))) |
| Inputs |
|---|
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2)) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3)))) |
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (+.f64 d2 d4)))) |
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) d1))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) #s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (fma.f64 d1 d2 (*.f64 d1 d4))))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (-.f64 d2 (-.f64 d3 d4)) d1)) |
| Outputs |
|---|
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (-.f64 d2 (-.f64 d3 d4)) d1)) |
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1)))) |
| Inputs |
|---|
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2)) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3)))) |
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (+.f64 d2 d4)))) |
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) d1))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) #s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (fma.f64 d1 d2 (*.f64 d1 d4))))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (-.f64 d2 (-.f64 d3 d4)) d1)) |
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3))) |
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 d4 (+.f64 d1 d3)))) |
| Outputs |
|---|
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (-.f64 d2 (-.f64 d3 d4)) d1)) |
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3))) |
| Inputs |
|---|
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2)) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3)))) |
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (+.f64 d2 d4)))) |
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) d1))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) #s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (fma.f64 d1 d2 (*.f64 d1 d4))))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (-.f64 d2 (-.f64 d3 d4)) d1)) |
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3))) |
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 d4 (+.f64 d1 d3)))) |
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 d4) d1))) |
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (+.f64 d2 d4) d1))) |
| Outputs |
|---|
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 d4) d1))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (-.f64 d2 (-.f64 d3 d4)) d1)) |
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3))) |
| Inputs |
|---|
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2)) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3)))) |
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (+.f64 d2 d4)))) |
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) d1))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) #s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (fma.f64 d1 d2 (*.f64 d1 d4))))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (-.f64 d2 (-.f64 d3 d4)) d1)) |
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3))) |
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 d4 (+.f64 d1 d3)))) |
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 d4) d1))) |
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (+.f64 d2 d4) d1))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 d3))))) |
| Outputs |
|---|
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 d4) d1))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 d3))))) |
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3))) |
| Inputs |
|---|
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 d2)) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) #s(approx (- d4 d3) d4)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (*.f64 d1 (-.f64 d2 d3)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (-.f64 d4 d3)))) |
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) #s(approx (- d4 (+ d1 d3)) (-.f64 d4 d1)))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 #s(approx (- (+ d2 d4) d3) (+.f64 d2 d4)))) |
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (*.f64 #s(literal -1 binary64) d1))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) #s(approx (+ (* d1 d4) (* d1 (- d2 d3))) (fma.f64 d1 d2 (*.f64 d1 d4))))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 (-.f64 d2 (-.f64 d3 d4)) d1)) |
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (-.f64 d4 d1) d3))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3))) |
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 d4 (+.f64 d1 d3)))) |
(*.f64 d1 #s(approx (+ (- d4 d1) (- d2 d3)) (-.f64 (+.f64 d2 d4) d1))) |
(*.f64 d1 #s(approx (- (+ d2 d4) (+ d3 d1)) (-.f64 (+.f64 d2 d4) d1))) |
#s(approx (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)) #s(approx (* d1 (- (+ d2 d4) d3)) (fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 d3))))) |
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3))) |
(-.f64 #s(approx (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (fma.f64 d1 d2 (*.f64 d1 d4))) (*.f64 d1 d1)) |
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1)) |
| Outputs |
|---|
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3))) |
41 calls:
| 12.0ms | (-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1)) |
| 10.0ms | d1 |
| 7.0ms | d2 |
| 6.0ms | d1 |
| 5.0ms | d1 |
| Accuracy | Segments | Branch |
|---|---|---|
| 27.3% | 1 | (-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1)) |
| 27.3% | 1 | d3 |
| 27.3% | 1 | d1 |
| 27.3% | 1 | d4 |
| 27.3% | 1 | d2 |
| 51.6% | 3 | d2 |
| 33.9% | 1 | (-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1)) |
| 33.9% | 1 | d3 |
| 35.4% | 2 | d1 |
| 50.0% | 3 | d4 |
| 69.4% | 3 | d4 |
| 61.1% | 5 | d2 |
| 71.4% | 3 | d4 |
| 56.4% | 1 | d3 |
| 56.4% | 1 | (-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1)) |
| 56.4% | 1 | d1 |
| 72.5% | 3 | d2 |
| 78.1% | 4 | d2 |
| 75.5% | 3 | d1 |
| 78.1% | 4 | d2 |
| 76.0% | 4 | d3 |
| 74.0% | 3 | d4 |
| 77.7% | 5 | (-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1)) |
| 81.3% | 6 | d1 |
| 82.2% | 3 | d3 |
| 88.7% | 3 | (-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1)) |
| 81.0% | 3 | d2 |
| 91.8% | 3 | d1 |
| 94.2% | 3 | d2 |
| 95.1% | 3 | d1 |
| 96.4% | 3 | d1 |
| 93.7% | 3 | (-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1)) |
| 96.4% | 3 | d1 |
| 95.7% | 3 | d2 |
| 93.5% | 3 | d3 |
| 83.0% | 2 | d4 |
| 100.0% | 1 | (-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1)) |
| 100.0% | 1 | d1 |
| 100.0% | 1 | d2 |
| 100.0% | 1 | d3 |
| 100.0% | 1 | d4 |
Compiled 526 to 301 computations (42.8% saved)
| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 38.0ms | 1.5231364852525202e+75 | 5.688221327627627e+82 |
| 98.0ms | -2.8057402410049587e+76 | -8.989949302046866e+70 |
| 43.0ms | 288× | 0 | valid |
Compiled 864 to 594 computations (31.3% saved)
ival-mult!: 8.0ms (73.8% of total)ival-sub!: 2.0ms (18.4% of total)ival-add!: 1.0ms (9.2% of total)adjust: 0.0ms (0% of total)| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 2.0ms | 1.5231364852525202e+75 | 5.688221327627627e+82 |
| 3.0ms | -2.8057402410049587e+76 | -8.989949302046866e+70 |
Compiled 702 to 522 computations (25.6% saved)
| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 1.0ms | 1.5231364852525202e+75 | 5.688221327627627e+82 |
| 38.0ms | -2.8057402410049587e+76 | -8.989949302046866e+70 |
| 30.0ms | 112× | 0 | valid |
Compiled 702 to 522 computations (25.6% saved)
ival-add!: 20.0ms (79.6% of total)ival-mult!: 4.0ms (15.9% of total)ival-sub!: 1.0ms (4% of total)adjust: 0.0ms (0% of total)| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 15.0ms | 3.692579716538747e+154 | 3.7496533316346696e+159 |
| 9.0ms | -2.8057402410049587e+76 | -8.989949302046866e+70 |
| 14.0ms | 224× | 0 | valid |
Compiled 774 to 558 computations (27.9% saved)
ival-mult!: 5.0ms (75.9% of total)ival-sub!: 1.0ms (15.2% of total)adjust: 0.0ms (0% of total)ival-add!: 0.0ms (0% of total)| 5× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| 1× | narrow-enough |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 1.0ms | 1.5231364852525202e+75 | 5.688221327627627e+82 |
| 15.0ms | 2.3906532203379798e-132 | 6.020847196735768e-112 |
| 9.0ms | -2.9492383280768315e-185 | -3.3252498370631482e-186 |
| 38.0ms | -3.1518452754941533e-16 | -8.372135106981142e-31 |
| 3.0ms | -2.8057402410049587e+76 | -8.989949302046866e+70 |
| 38.0ms | 432× | 0 | valid |
Compiled 2 342 to 1 585 computations (32.3% saved)
ival-mult!: 13.0ms (78.5% of total)ival-sub!: 3.0ms (18.1% of total)ival-add!: 1.0ms (6% of total)adjust: 0.0ms (0% of total)| 3× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 13.0ms | 3.3000401678705353e+168 | 1.5978453008489738e+178 |
| 17.0ms | -1.7744633220374124e-287 | -6.015036029354905e-295 |
| 20.0ms | -3.1042351238833946e+90 | -9.651640938171182e+56 |
| 31.0ms | 480× | 0 | valid |
Compiled 1 528 to 1 043 computations (31.7% saved)
ival-mult!: 10.0ms (77.1% of total)ival-sub!: 2.0ms (15.4% of total)ival-add!: 1.0ms (7.7% of total)adjust: 0.0ms (0% of total)| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 39.0ms | 5.174528119496633e+140 | 8.027972181038792e+150 |
| 1.0ms | -3.1042351238833946e+90 | -9.651640938171182e+56 |
| 31.0ms | 160× | 0 | valid |
Compiled 1 194 to 795 computations (33.4% saved)
ival-mult!: 4.0ms (74.4% of total)ival-sub!: 1.0ms (18.6% of total)adjust: 0.0ms (0% of total)ival-add!: 0.0ms (0% of total)| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 9.0ms | 2.819894473209625e+150 | 9.90523552223344e+150 |
| 33.0ms | -4.318095741310827e+96 | -1.911532168386525e+94 |
| 32.0ms | 192× | 0 | valid |
Compiled 714 to 474 computations (33.6% saved)
ival-mult!: 4.0ms (67.8% of total)ival-sub!: 1.0ms (17% of total)ival-add!: 1.0ms (17% of total)adjust: 0.0ms (0% of total)| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 1.0ms | 5.174528119496633e+140 | 8.027972181038792e+150 |
| 1.0ms | -3.1042351238833946e+90 | -9.651640938171182e+56 |
Compiled 1 026 to 711 computations (30.7% saved)
| 1× | fuel |
Compiled 836 to 110 computations (86.8% saved)
Compiled 860 to 129 computations (85% saved)
Loading profile data...