<!--
{
  "availability" : [

  ],
  "documentType" : "symbol",
  "framework" : "Accelerate",
  "identifier" : "/documentation/simd/simd_half3",
  "metadataVersion" : "0.1.0",
  "role" : "Type Alias",
  "symbol" : {
    "kind" : "Type Alias",
    "modules" : [
      "simd"
    ],
    "preciseIdentifier" : "c:@T@simd_half3"
  },
  "title" : "simd_half3"
}
-->

# simd_half3

A vector of three 16-bit floating-point elements.

```
typealias simd_half3 = SIMD3<Float16>
```

## Topics

### Functions to create three-element vectors from other vectors

[`simd_make_half3(_:)`](/documentation/simd/simd_make_half3(_:)-52gdy)

Returns a new vector from the specified two-element vector, and other elements set to zero.

[`simd_make_half3(_:)`](/documentation/simd/simd_make_half3(_:)-4yz0x)

Returns a new vector from the specified vector.

[`simd_make_half3(_:)`](/documentation/simd/simd_make_half3(_:)-4h0kc)

Returns a new vector by truncating the specified four-element vector.

[`simd_make_half3(_:)`](/documentation/simd/simd_make_half3(_:)-5nca0)

Returns a new vector by truncating the specified eight-element vector.

[`simd_make_half3(_:)`](/documentation/simd/simd_make_half3(_:)-9063q)

Returns a new vector by truncating the specified 16-element vector.

[`simd_make_half3(_:)`](/documentation/simd/simd_make_half3(_:)-64v1)

Returns a new vector by truncating the specified 32-element vector.

[`simd_make_half3_undef(_:)`](/documentation/simd/simd_make_half3_undef(_:)-1frd1)

Returns a new vector from the specified two-element vector, and other elements undefined.

### Functions to create three-element vectors from scalar values

[`simd_make_half3(_:)`](/documentation/simd/simd_make_half3(_:)-9gqvo)

Returns a new vector with the first element set to a scalar value, and other elements set to zero.

[`simd_make_half3(_:_:_:)`](/documentation/simd/simd_make_half3(_:_:_:))

Returns a new vector from the specified scalar values.

[`simd_make_half3(_:_:)`](/documentation/simd/simd_make_half3(_:_:)-5wwpl)

Returns a new vector from a vector and a scalar value.

[`simd_make_half3(_:_:)`](/documentation/simd/simd_make_half3(_:_:)-4svq0)

Returns a new vector from a scalar value and a vector.

[`simd_make_half3_undef(_:)`](/documentation/simd/simd_make_half3_undef(_:)-6lcqp)

Returns a new vector with the first element set to a scalar value, and other elements undefined.

### Functions to create three-element vectors from vectors of other types

[`simd_half`](/documentation/simd/simd_half-2rwea)

Returns a new vector from the specified vector of 8-bit, signed-integer elements.

[`simd_half`](/documentation/simd/simd_half-2rm82)

Returns a new vector from the specified vector of 8-bit, unsigned-integer elements.

[`simd_half`](/documentation/simd/simd_half-2rr4y)

Returns a new vector from the specified vector of 16-bit, signed-integer elements.

[`simd_half`](/documentation/simd/simd_half-2rheq)

Returns a new vector from the specified vector of 16-bit, unsigned-integer elements.

[`simd_half`](/documentation/simd/simd_half-2ry5y)

Returns a new vector from the specified vector of 32-bit, signed-integer elements.

[`simd_half`](/documentation/simd/simd_half-2roc6)

Returns a new vector from the specified vector of 32-bit, unsigned-integer elements.

[`simd_half`](/documentation/simd/simd_half-2rz6u)

Returns a new vector from the specified vector of 64-bit, signed-integer elements.

[`simd_half`](/documentation/simd/simd_half-2royu)

Returns a new vector from the specified vector of 64-bit, unsigned-integer elements.

[`simd_half`](/documentation/simd/simd_half-2rnty)

Returns a new vector from the specified vector of 16-bit, floating-point elements.

[`simd_half`](/documentation/simd/simd_half-2rn9m)

Returns a new vector from the specified vector of 32-bit, floating-point elements.

[`simd_half`](/documentation/simd/simd_half-2rmqe)

Returns a new vector from the specified vector of 64-bit, floating-point elements.

### Common functions

[`simd_abs(_:)`](/documentation/simd/simd_abs(_:)-8derx)

Returns the absolute value of each element in a vector.

[`simd_clamp(_:_:_:)`](/documentation/simd/simd_clamp(_:_:_:)-2h8ov)

Returns each element in a vector clamped to a specified range.

[`simd_equal(_:_:)`](/documentation/simd/simd_equal(_:_:)-9k8m9)

Returns true if every element in a vector is exactly equal to the corresponding element in a second vector, and otherwise returns false.

[`simd_fract(_:)`](/documentation/simd/simd_fract(_:)-47quw)

Returns the fractional part of each element in a vector.

[`simd_sign(_:)`](/documentation/simd/simd_sign(_:)-6gppu)

Returns the sign of each element in a vector.

[`simd_step(_:_:)`](/documentation/simd/simd_step(_:_:)-8w7e)

Returns zero for each element in a vector less than a specified edge, and otherwise returns one.

### Reduce functions

[`simd_reduce_add(_:)`](/documentation/simd/simd_reduce_add(_:)-2v3th)

Returns the sum of all elements in a vector.

[`simd_reduce_max(_:)`](/documentation/simd/simd_reduce_max(_:)-4h2m7)

Returns the maximum value in a vector.

[`simd_reduce_min(_:)`](/documentation/simd/simd_reduce_min(_:)-4685v)

Returns the minimum value in a vector.

### Interpolation functions

[`simd_mix(_:_:_:)`](/documentation/simd/simd_mix(_:_:_:)-4co2a)

Returns an element-wise linearly interpolated value between two vectors.

[`simd_smoothstep(_:_:_:)`](/documentation/simd/simd_smoothstep(_:_:_:)-4rnii)

Returns an element-wise smoothly interpolated value between two vectors.

### Extrema functions

[`simd_max(_:_:)`](/documentation/simd/simd_max(_:_:)-1g1g7)

Returns the maximum value of each element in a vector.

[`simd_min(_:_:)`](/documentation/simd/simd_min(_:_:)-4rmyw)

Returns the minimum value of each element in a vector.

### Reciprocal and reciprocal square root functions

[`simd_recip(_:)`](/documentation/simd/simd_recip(_:)-8k0yn)

Returns the reciprocal of each element in a vector.

[`simd_rsqrt(_:)`](/documentation/simd/simd_rsqrt(_:)-rgh7)

Returns the reciprocal square root of each element in a vector.

[`simd_precise_recip(_:)`](/documentation/simd/simd_precise_recip(_:)-61jmz)

Returns the precise reciprocal of each element in a vector.

[`simd_precise_rsqrt(_:)`](/documentation/simd/simd_precise_rsqrt(_:)-znwt)

Returns the precise reciprocal square root of each element in a vector.

[`simd_fast_recip(_:)`](/documentation/simd/simd_fast_recip(_:)-okeq)

Returns the fast reciprocal of each element in a vector.

[`simd_fast_rsqrt(_:)`](/documentation/simd/simd_fast_rsqrt(_:)-80xc1)

Returns the fast reciprocal square root of each element in a vector.

### Geometry functions

[`simd_cross`](/documentation/simd/simd_cross-828tl)

Returns the cross product of two vectors.

[`simd_dot`](/documentation/simd/simd_dot-p9ir)

Returns the dot product of two vectors.

[`simd_normalize`](/documentation/simd/simd_normalize-9c7zv)

Returns a vector pointing in the same direction of the supplied vector, with a length of 1.

[`simd_fast_normalize`](/documentation/simd/simd_fast_normalize-e3y)

Returns the fast normalized vector.

[`simd_precise_normalize`](/documentation/simd/simd_precise_normalize-4z7hd)

Returns the precise normalized vector.

[`simd_orient`](/documentation/simd/simd_orient-5jxfm)

Tests the orientation of the two supplied vectors.

[`simd_project`](/documentation/simd/simd_project-3e81w)

Returns the first vector projected onto the second vector.

[`simd_precise_project`](/documentation/simd/simd_precise_project-9ry7l)

Returns the precise projected vector.

[`simd_fast_project`](/documentation/simd/simd_fast_project-99ic5)

Returns the fast projected vector.

[`simd_reflect`](/documentation/simd/simd_reflect-79zx0)

Returns the reflection direction of an incident vector and a unit normal vector.

[`simd_refract`](/documentation/simd/simd_refract-5dshi)

Returns the refraction direction of an incident vector, a unit normal vector, and an index of refraction eta.

### Vector norm functions

[`simd_norm_one`](/documentation/simd/simd_norm_one-xiye)

Returns the sum of the absolute values of a vector.

[`simd_norm_inf`](/documentation/simd/simd_norm_inf-94803)

Returns the maximum absolute value of a vector.

### Length and distance functions

[`simd_length`](/documentation/simd/simd_length-3rboq)

Returns the length of a vector.

[`simd_fast_length`](/documentation/simd/simd_fast_length-56ke1)

Returns the fast length of a vector.

[`simd_precise_length`](/documentation/simd/simd_precise_length-7azob)

Returns the precise length of a vector.

[`simd_length_squared`](/documentation/simd/simd_length_squared-3hmac)

Returns the square of the length of a vector.

[`simd_distance`](/documentation/simd/simd_distance-245n7)

Returns the distance between two vectors.

[`simd_fast_distance`](/documentation/simd/simd_fast_distance-93wpb)

Returns the fast distance between two vectors.

[`simd_precise_distance`](/documentation/simd/simd_precise_distance-84o1x)

Returns the precise distance between two vectors.

[`simd_distance_squared`](/documentation/simd/simd_distance_squared-66q77)

Returns the square of the distance between two vectors.

### Logic functions

[`simd_select(_:_:_:)`](/documentation/simd/simd_select(_:_:_:)-2ljkl)

Returns a vector that contains elements from either the first or second parameter, based on the corresponding element’s high-order bit in the mask.

[`simd_bitselect(_:_:_:)`](/documentation/simd/simd_bitselect(_:_:_:)-6ne9u)

Returns a vector that contains elements from either the first or second parameter, based on the corresponding element in the third parameter.

### Math functions

[`simd_muladd(_:_:_:)`](/documentation/simd/simd_muladd(_:_:_:)-582ze)

Returns the multiply-add result for corresponding elements in three vectors.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)