(query_idx, T, m, include=None, discords=False, p=2.0)
| 630 | |
| 631 | |
| 632 | def maamp_multi_distance_profile(query_idx, T, m, include=None, discords=False, p=2.0): |
| 633 | excl_zone = int(np.ceil(m / config.STUMPY_EXCL_ZONE_DENOM)) |
| 634 | d, n = T.shape |
| 635 | Q = T[:, query_idx : query_idx + m] |
| 636 | D = multi_mass_absolute(Q, T, m, include, discords, p=p) |
| 637 | |
| 638 | start_row_idx = 0 |
| 639 | if include is not None: |
| 640 | apply_include(D, include) |
| 641 | start_row_idx = include.shape[0] |
| 642 | |
| 643 | if discords: |
| 644 | D[start_row_idx:][::-1].sort(axis=0) |
| 645 | else: |
| 646 | D[start_row_idx:].sort(axis=0) |
| 647 | |
| 648 | D_prime = np.zeros(n - m + 1) |
| 649 | D_prime_prime = np.zeros((d, n - m + 1)) |
| 650 | for j in range(d): |
| 651 | D_prime[:] = D_prime + D[j] |
| 652 | D_prime_prime[j, :] = D_prime / (j + 1) |
| 653 | |
| 654 | apply_exclusion_zone(D_prime_prime, query_idx, excl_zone, np.inf) |
| 655 | |
| 656 | return D_prime_prime |
| 657 | |
| 658 | |
| 659 | def maamp(T, m, excl_zone, include=None, discords=False, p=2.0): |
no test coverage detected