in isc/descriptor_matching.py [0:0]
def apply_maxres_IP(res_batches, target_nres):
"""find radius that reduces number of results to target_nres, and
applies it in-place to the result batches used in range_search_max_results"""
alldis = np.hstack([dis for _, dis, _ in res_batches])
alldis.partition(len(alldis) - target_nres)
radius = alldis[-target_nres]
LOG = logging.getLogger(exhaustive_search.__name__)
if alldis.dtype == 'float32':
radius = float(radius)
else:
radius = int(radius)
LOG.debug(' setting radius to %s' % radius)
totres = 0
for i, (nres, dis, ids) in enumerate(res_batches):
nres, dis, ids = threshold_radius_nres_IP(nres, dis, ids, radius)
totres += len(dis)
res_batches[i] = nres, dis, ids
LOG.debug(' updated previous results, new nb results %d' % totres)
return radius, totres