(D, trivial_idx, excl_zone)
| 518 | |
| 519 | |
| 520 | def PI(D, trivial_idx, excl_zone): |
| 521 | d, k = D.shape |
| 522 | |
| 523 | P = np.full((d, k), np.inf) |
| 524 | I = np.ones((d, k), dtype="int64") * -1 |
| 525 | |
| 526 | for i in range(d): |
| 527 | col_mask = P[i] > D[i] |
| 528 | P[i, col_mask] = D[i, col_mask] |
| 529 | I[i, col_mask] = trivial_idx |
| 530 | |
| 531 | return P, I |
| 532 | |
| 533 | |
| 534 | def apply_include(D, include): |