Function

vDSP_vsmfixu24(_:_:_:_:_:_:)

Scales and converts single-precision floating-point values to unsigned 24-bit integer values.

Declaration

func vDSP_vsmfixu24(_ __A: UnsafePointer<Float>, _ __IA: vDSP_Stride, _ __B: UnsafePointer<Float>, _ __C: UnsafeMutablePointer<vDSP_uint24>, _ __IC: vDSP_Stride, _ __N: vDSP_Length)

Parameters

__A

Single-precision floating-point input vector.

__IA

Stride for A.

__B

Pointer to a floating-point scaling factor.

__C

Unsigned 24-bit integer output vector.

__IC

Stride for C.

__N

The number of values to convert.

Discussion

This function scales vector A by the scalar *B and converts each resulting value to an unsigned 24-bit integer, placing the results in C. Values (after scaling) that are outside the range that can be represented by unsigned 24-bit integers are clamped to the largest or smallest representable values.

This function performs the following operations:

    for (n = 0; n < N; ++n)
    {
        if     (A[n*IA] * *B < 0)
            C[n*IC] = 0
        else if (A[n*IA] * *B > UINT24_MAX)
            C[n*IC] = UINT24_MAX
        else
            C[n*IC] = (uint24)(A[n*IA] * *B);
    }

In this pseudocode, UINT24_MAX is equal to 2^24 - 1.

See Also

Floating Point to 24-Bit Integer Conversion

func vDSP_vsmfix24(UnsafePointer<Float>, vDSP_Stride, UnsafePointer<Float>, UnsafeMutablePointer<vDSP_int24>, vDSP_Stride, vDSP_Length)

Scales and converts single-precision floating-point values to signed 24-bit integer values.

func vDSP_vflt24(UnsafePointer<vDSP_int24>, vDSP_Stride, UnsafeMutablePointer<Float>, vDSP_Stride, vDSP_Length)

Converts signed 24-bit integer values to single-precision floating-point values.

func vDSP_vfltu24(UnsafePointer<vDSP_uint24>, vDSP_Stride, UnsafeMutablePointer<Float>, vDSP_Stride, vDSP_Length)

Converts unsigned 24-bit integer values to single-precision floating-point values.

func vDSP_vfltsm24(UnsafePointer<vDSP_int24>, vDSP_Stride, UnsafePointer<Float>, UnsafeMutablePointer<Float>, vDSP_Stride, vDSP_Length)

Converts and scales signed 24-bit integer values to single-precision floating-point values.

func vDSP_vfltsmu24(UnsafePointer<vDSP_uint24>, vDSP_Stride, UnsafePointer<Float>, UnsafeMutablePointer<Float>, vDSP_Stride, vDSP_Length)

Converts and scales unsigned 24-bit integer values to single-precision floating-point values.

struct vDSP_uint24

A data structure that holds a 24-bit unsigned integer value.

struct vDSP_int24

A data structure that holds a 24-bit signed integer value.

Beta Software

This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software.

Learn more about using Apple's beta software