# [−][src]Function arrayfire::nearest_neighbour

pub fn nearest_neighbour<T>(

query: &Array<T>,

train: &Array<T>,

dist_dim: i64,

n_dist: u32,

dist_type: MatchType

) -> (Array<u32>, Array<T::AggregateOutType>) where

T: HasAfEnum + ImageFilterType,

T::AggregateOutType: HasAfEnum,

Nearest Neighbour.

Calculates nearest distances between two 2-dimensional arrays containing features based on the type of distance computation chosen. Currently, AF_SAD (sum of absolute differences), AF_SSD (sum of squared differences) and AF_SHD (hamming distance) are supported. One of the arrays containing the training data and the other the query data. One of the dimensions of the both arrays must be equal among them, identifying the length of each feature. The other dimension indicates the total number of features in each of the training and query arrays. Two 1-dimensional arrays are created as results, one containg the smallest N distances of the query array and another containing the indices of these distances in the training array. The resulting 1-dimensional arrays have length equal to the number of features contained in the query array.

# Parameters

`query`

is the array containing the data to be queried`train`

is the array containing the data used as training data`dist_dim`

indicates the dimension to analyze for distance (the dimension indicated here must be of equal length for both query and train arrays)`n_dist`

is the number of smallest distances to return (currently, only values <= 256 are supported)`dist_type`

is the distance computation type. Currently`MatchType::SAD`

,`MatchType::SSD`

, and`MatchType::SHD`

are supported.

# Return Values

A tuple of Arrays.

The first Array is is an array of MxN size, where M is equal to the number of query features
and N is equal to `n_dist`

. The value at position IxJ indicates the index of the Jth smallest
distance to the Ith query value in the train data array. the index of the Ith smallest distance
of the Mth query.

The second Array is is an array of MxN size, where M is equal to the number of query features
and N is equal to `n_dist`

. The value at position IxJ indicates the distance of the Jth smallest
distance to the Ith query value in the train data array based on the `dist_type`

chosen.