![]() |
LIBML
Version 3.2.4
LIBML DSP Software Library
|
Modules | |
Dynamic Time Warping Distance | |
Macros | |
#define | Ln2 __logf_data.ln2 |
Jensen-Shannon distance between two vectors. More... | |
#define | BITS_N (1 << LOGF_TABLE_BITS) |
#define | OFF 0x3f330000 |
Functions | |
f32_t | tpt_canberra_distance_f32 (const f32_t *aInDataA, const f32_t *aInDataB, uint32_t aCount) |
Canberra distance between two vectors. More... | |
f32_t | tpt_chebyshev_distance_f32 (const f32_t *aInDataA, const f32_t *aInDataB, uint32_t aCount) |
Chebyshev distance between two vectors. More... | |
f32_t | tpt_cityblock_distance_f32 (const f32_t *aInDataA, const f32_t *aInDataB, uint32_t aCount) |
Cityblock (Manhattan) distance between two vectors. More... | |
f32_t | tpt_correlation_distance_f32 (f32_t *aInDataA, f32_t *aInDataB, uint32_t aCount) |
Correlation distance between two vectors. More... | |
f32_t | tpt_cosine_distance_f32 (const f32_t *aInDataA, const f32_t *aInDataB, uint32_t aCount) |
Cosine distance between two vectors. More... | |
f64_t | tpt_cosine_distance_f64 (const f64_t *aInDataA, const f64_t *aInDataB, uint32_t aCount) |
Cosine distance between two vectors. More... | |
f32_t | tpt_euclidean_distance_f32 (const f32_t *aInDataA, const f32_t *aInDataB, uint32_t aCount) |
Euclidean distance between two vectors. More... | |
f64_t | tpt_euclidean_distance_f64 (const f64_t *aInDataA, const f64_t *aInDataB, uint32_t aCount) |
Euclidean distance between two vectors. More... | |
static f32_t | _logf_ (f32_t x) |
f32_t | tpt_jensenshannon_distance_f32 (const f32_t *aInDataA, const f32_t *aInDataB, uint32_t aCount) |
Jensen-Shannon distance between two vectors. More... | |
f32_t | tpt_minkowski_distance_f32 (const f32_t *aInDataA, const f32_t *aInDataB, int32_t aOrder, uint32_t aCount) |
Minkowski distance between two vectors. More... | |
Variables | |
const struct logf_data | __logf_data |
f32_t | tpt_braycurtis_distance_f32 (const f32_t *aInDataA, const f32_t *aInDataB, uint32_t aCount) |
Bray-Curtis distance between two vectors. More... | |
Distances between two vectors of float values.
#define BITS_N (1 << LOGF_TABLE_BITS) |
#define Ln2 __logf_data.ln2 |
Jensen-Shannon distance between two vectors.
This function is assuming that elements of second vector are > 0 and 0 only when the corresponding element of first vector is 0. Otherwise the result of the computation does not make sense and for speed reasons, the cases returning NaN or Infinity are not managed.
When the function is computing x log (x / y) with x == 0 and y == 0, it will compute the right result (0) but a division by zero will occur and should be ignored in client code.
[in] | aInDataA | First vector |
[in] | aInDataB | Second vector |
[in] | aCount | vector length |
#define OFF 0x3f330000 |
f32_t tpt_braycurtis_distance_f32 | ( | const f32_t * | aInDataA, |
const f32_t * | aInDataB, | ||
uint32_t | aCount | ||
) |
Bray-Curtis distance between two vectors.
[in] | aInDataA | First vector |
[in] | aInDataB | Second vector |
[in] | aCount | vector length |
Canberra distance between two vectors.
This function may divide by zero when samples aInDataA[i] and aInDataB[i] are both zero. The result of the computation will be correct. So the division per zero may be ignored.
[in] | aInDataA | First vector |
[in] | aInDataB | Second vector |
[in] | aCount | vector length |
f32_t tpt_chebyshev_distance_f32 | ( | const f32_t * | aInDataA, |
const f32_t * | aInDataB, | ||
uint32_t | aCount | ||
) |
Chebyshev distance between two vectors.
[in] | aInDataA | First vector |
[in] | aInDataB | Second vector |
[in] | aCount | vector length |
f32_t tpt_cityblock_distance_f32 | ( | const f32_t * | aInDataA, |
const f32_t * | aInDataB, | ||
uint32_t | aCount | ||
) |
Cityblock (Manhattan) distance between two vectors.
[in] | aInDataA | First vector |
[in] | aInDataB | Second vector |
[in] | aCount | vector length |
Correlation distance between two vectors.
The input vectors are modified in place!
[in] | aInDataA | First vector |
[in] | aInDataB | Second vector |
[in] | aCount | vector length |
Cosine distance between two vectors.
[in] | aInDataA | First vector |
[in] | aInDataB | Second vector |
[in] | aCount | vector length |
Cosine distance between two vectors.
[in] | aInDataA | First vector |
[in] | aInDataB | Second vector |
[in] | aCount | vector length |
f32_t tpt_euclidean_distance_f32 | ( | const f32_t * | aInDataA, |
const f32_t * | aInDataB, | ||
uint32_t | aCount | ||
) |
Euclidean distance between two vectors.
[in] | aInDataA | First vector |
[in] | aInDataB | Second vector |
[in] | aCount | vector length |
f64_t tpt_euclidean_distance_f64 | ( | const f64_t * | aInDataA, |
const f64_t * | aInDataB, | ||
uint32_t | aCount | ||
) |
Euclidean distance between two vectors.
[in] | aInDataA | First vector |
[in] | aInDataB | Second vector |
[in] | aCount | vector length |
f32_t tpt_jensenshannon_distance_f32 | ( | const f32_t * | aInDataA, |
const f32_t * | aInDataB, | ||
uint32_t | aCount | ||
) |
Jensen-Shannon distance between two vectors.
This function is assuming that elements of second vector are > 0 and 0 only when the corresponding element of first vector is 0. Otherwise the result of the computation does not make sense and for speed reasons, the cases returning NaN or Infinity are not managed.
When the function is computing x log (x / y) with x == 0 and y == 0, it will compute the right result (0) but a division by zero will occur and should be ignored in client code.
[in] | aInDataA | First vector |
[in] | aInDataB | Second vector |
[in] | aCount | vector length |
f32_t tpt_minkowski_distance_f32 | ( | const f32_t * | aInDataA, |
const f32_t * | aInDataB, | ||
int32_t | aOrder, | ||
uint32_t | aCount | ||
) |
Minkowski distance between two vectors.
[in] | aInDataA | First vector |
[in] | aInDataB | Second vector |
[in] | aOrder | Distance order |
[in] | aCount | Number of samples |
const struct logf_data __logf_data |