@@ 599-613 (lines=15) @@ | ||
596 | return D, I |
|
597 | ||
598 | ||
599 | def kmax(array, k): |
|
600 | """return k largest values (and their indices) of the lines of a |
|
601 | float32 array""" |
|
602 | m, n = array.shape |
|
603 | I = np.zeros((m, k), dtype='int64') |
|
604 | D = np.zeros((m, k), dtype='float32') |
|
605 | ha = float_minheap_array_t() |
|
606 | ha.ids = swig_ptr(I) |
|
607 | ha.val = swig_ptr(D) |
|
608 | ha.nh = m |
|
609 | ha.k = k |
|
610 | ha.heapify() |
|
611 | ha.addn(n, swig_ptr(array)) |
|
612 | ha.reorder() |
|
613 | return D, I |
|
614 | ||
615 | ||
616 | def pairwise_distances(xq, xb, mt=METRIC_L2, metric_arg=0): |
|
@@ 582-596 (lines=15) @@ | ||
579 | # Wrapper for a few functions |
|
580 | ########################################### |
|
581 | ||
582 | def kmin(array, k): |
|
583 | """return k smallest values (and their indices) of the lines of a |
|
584 | float32 array""" |
|
585 | m, n = array.shape |
|
586 | I = np.zeros((m, k), dtype='int64') |
|
587 | D = np.zeros((m, k), dtype='float32') |
|
588 | ha = float_maxheap_array_t() |
|
589 | ha.ids = swig_ptr(I) |
|
590 | ha.val = swig_ptr(D) |
|
591 | ha.nh = m |
|
592 | ha.k = k |
|
593 | ha.heapify() |
|
594 | ha.addn(n, swig_ptr(array)) |
|
595 | ha.reorder() |
|
596 | return D, I |
|
597 | ||
598 | ||
599 | def kmax(array, k): |