---
title: vDSP_vsmfixu24
framework: Kernel
role: symbol
role_heading: Function
platforms: [macOS 10.9+]
path: kernel/1532178-vdsp_vsmfixu24
---

# vDSP_vsmfixu24

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

## Declaration

```occ
void vDSP_vsmfixu24(const float vDSP_input1[], ptrdiff_t vDSP_stride1, const float vDSP_input2[], vDSP_uint24 *vDSP_input3, ptrdiff_t vDSP_stride2, size_t vDSP_size);
```

## Parameters

- `__A`: The single-precision floating-point input vector.
- `__IA`: The stride for input vector A.
- `__B`: A pointer to a floating-point scaling factor.
- `__C`: The 24-bit integer output vector.
- `__IC`: The stride for output vector C.
- `__N`: The number of values to convert.

## Discussion

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. After scaling, the function clamps values that are outside the range that unsigned 24-bit integers can represent 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

### Conversion Functions

- [vDSP_vsmfix24](kernel/1532200-vdsp_vsmfix24.md)
- [vDSP_vfix16](kernel/1532172-vdsp_vfix16.md)
- [vDSP_vfix32](kernel/1532198-vdsp_vfix32.md)
- [vDSP_vflt16](kernel/1532204-vdsp_vflt16.md)
- [vDSP_vflt24](kernel/1532208-vdsp_vflt24.md)
- [vDSP_vflt32](kernel/1532181-vdsp_vflt32.md)
- [vDSP_vfltu24](kernel/1532185-vdsp_vfltu24.md)
