Simd Library Documentation.

Home | Release Notes | Download | Documentation | Issues | GitHub | SourceForge
Half-Precision (16-bit) Float Point Numbers

Functions for conversion between 16-bit and 32-bit float numbers and other. More...

Functions

SIMD_API void SimdFloat32ToFloat16 (const float *src, size_t size, uint16_t *dst)
 Converts numbers in the array from 32-bit float to 16-bit float format. More...
 
SIMD_API void SimdFloat16ToFloat32 (const uint16_t *src, size_t size, float *dst)
 Converts numbers in the array from 16-bit float to 32-bit float format. More...
 
SIMD_API void SimdSquaredDifferenceSum16f (const uint16_t *a, const uint16_t *b, size_t size, float *sum)
 Calculates sum of squared differences for two 16-bit float arrays. More...
 
SIMD_API void SimdCosineDistance16f (const uint16_t *a, const uint16_t *b, size_t size, float *distance)
 Calculates cosine distance of two 16-bit float arrays. More...
 

Detailed Description

Functions for conversion between 16-bit and 32-bit float numbers and other.

Function Documentation

◆ SimdFloat32ToFloat16()

void SimdFloat32ToFloat16 ( const float *  src,
size_t  size,
uint16_t *  dst 
)

Converts numbers in the array from 32-bit float to 16-bit float format.

Parameters
[in]src- a pointer to the input array with 32-bit float point numbers.
[in]size- a size of input and output array.
[out]dst- a pointer to the output array with 16-bit float point numbers.

◆ SimdFloat16ToFloat32()

void SimdFloat16ToFloat32 ( const uint16_t *  src,
size_t  size,
float *  dst 
)

Converts numbers in the array from 16-bit float to 32-bit float format.

Parameters
[in]src- a pointer to the input array with 16-bit float point numbers.
[in]size- a size of input and output array.
[out]dst- a pointer to the output array with 32-bit float point numbers.

◆ SimdSquaredDifferenceSum16f()

void SimdSquaredDifferenceSum16f ( const uint16_t *  a,
const uint16_t *  b,
size_t  size,
float *  sum 
)

Calculates sum of squared differences for two 16-bit float arrays.

All arrays must have the same size.

For every element:

sum += (a[i] - b[i])*(a[i] - b[i]);
Parameters
[in]a- a pointer to the first 16-bit float array.
[in]b- a pointer to the second 16-bit float array.
[in]size- a size of arrays.
[out]sum- a pointer to 32-bit float point sum of squared differences.

◆ SimdCosineDistance16f()

void SimdCosineDistance16f ( const uint16_t *  a,
const uint16_t *  b,
size_t  size,
float *  distance 
)

Calculates cosine distance of two 16-bit float arrays.

All arrays must have the same size.

Algorithm description:

distance = 1 - Sum(a[i]*b[i])/Sqrt(Sum(a[i]*a[i])*Sum(b[i]*b[i]));
Parameters
[in]a- a pointer to the first 16-bit float array.
[in]b- a pointer to the second 16-bit float array.
[in]size- a size of arrays.
[out]distance- a pointer to 32-bit float with cosine distance.