CMSIS-DSP: Kullback-Leibler divergence

| CMSIS-DSP CMSIS DSP Software Library

- Main Page
- Usage and Description
- Reference

All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Functions
Kullback-Leibler divergence
Statistics Functions

## Functions

float16_t | arm_kullback_leibler_f16 (const float16_t *pSrcA, const float16_t *pSrcB, uint32_t blockSize)
| Kullback-Leibler. More...
float32_t | arm_kullback_leibler_f32 (const float32_t *pSrcA, const float32_t *pSrcB, uint32_t blockSize)
| Kullback-Leibler. More...
float64_t | arm_kullback_leibler_f64 (const float64_t *pSrcA, const float64_t *pSrcB, uint32_t blockSize)
| Kullback-Leibler. More...

## Description

Computes the Kullback-Leibler divergence between two distributions

## Function Documentation

float16_t arm_kullback_leibler_f16 | ( | const float16_t * | pSrcA,
|  | const float16_t * | pSrcB,
|  | uint32_t | blockSize
| ) |  |

Distribution A may contain 0 with Neon version. Result will be right but some exception flags will be set.

Distribution B must not contain 0 probability.

Parameters

  [in] | *pSrcA | points to an array of input values for probaility distribution A.
  [in] | *pSrcB | points to an array of input values for probaility distribution B.
  [in] | blockSize | number of samples in the input array.

Returns
  Kullback-Leibler divergence D(A || B)

float32_t arm_kullback_leibler_f32 | ( | const float32_t * | pSrcA,
|  | const float32_t * | pSrcB,
|  | uint32_t | blockSize
| ) |  |

Distribution A may contain 0 with Neon version. Result will be right but some exception flags will be set.

Distribution B must not contain 0 probability.

Parameters

  [in] | *pSrcA | points to an array of input values for probaility distribution A.
  [in] | *pSrcB | points to an array of input values for probaility distribution B.
  [in] | blockSize | number of samples in the input array.

Returns
  Kullback-Leibler divergence D(A || B)

float64_t arm_kullback_leibler_f64 | ( | const float64_t * | pSrcA,
|  | const float64_t * | pSrcB,
|  | uint32_t | blockSize
| ) |  |

Parameters

  [in] | *pSrcA | points to an array of input values for probaility distribution A.
  [in] | *pSrcB | points to an array of input values for probaility distribution B.
  [in] | blockSize | number of samples in the input array.

Returns
  Kullback-Leibler divergence D(A || B)