<!--
{
  "availability" : [

  ],
  "documentType" : "symbol",
  "framework" : "Accelerate",
  "identifier" : "/documentation/simd/simd_quatf",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "simd"
    ],
    "preciseIdentifier" : "c:@SA@simd_quatf"
  },
  "title" : "simd_quatf"
}
-->

# simd_quatf

A single-precision quaternion.

```
struct simd_quatf
```

## Topics

### Initializing a quaternion

[`init()`](/documentation/simd/simd_quatf/init())

Creates a new quaternion.

[`init(vector:)`](/documentation/simd/simd_quatf/init(vector:))

Creates a new quaternion from a four-element vector.

[`init(_:)`](/documentation/simd/simd_quatf/init(_:)-1hlsg)

Creates a new quaternion from a 3 x 3 rotation matrix.

[`init(_:)`](/documentation/simd/simd_quatf/init(_:)-3751)

Creates a new quaternion from a 4 x 4 rotation matrix.

[`init(angle:axis:)`](/documentation/simd/simd_quatf/init(angle:axis:))

Creates a new quaternion with an action that’s a rotation about an axis.

[`init(from:to:)`](/documentation/simd/simd_quatf/init(from:to:))

Creates a new quaternion with an action that’s a rotation between two vectors.

[`init(ix:iy:iz:r:)`](/documentation/simd/simd_quatf/init(ix:iy:iz:r:))

Creates a new quaternion from four scalar values that specify the imaginary and real parts.

[`init(real:imag:)`](/documentation/simd/simd_quatf/init(real:imag:))

Creates a new quaternion from a scalar real part and a vector imaginary part.

[`init(_:)`](/documentation/simd/simd_quatf/init(_:)-9rvr0)

### Querying a quaternion’s properties

[`angle`](/documentation/simd/simd_quatf/angle)

The angle, in radians, by which the quaternion’s action rotates.

[`axis`](/documentation/simd/simd_quatf/axis)

The normalized axis about which the quaternion’s action rotates.

[`conjugate`](/documentation/simd/simd_quatf/conjugate)

The conjugate of the quaternion.

[`imag`](/documentation/simd/simd_quatf/imag)

The imaginary part of the quaternion.

[`real`](/documentation/simd/simd_quatf/real)

The real part of the quaternion.

[`inverse`](/documentation/simd/simd_quatf/inverse)

The inverse of the quaternion.

[`length`](/documentation/simd/simd_quatf/length)

The length of the quaternion.

[`normalized`](/documentation/simd/simd_quatf/normalized)

The unit quaternion of the quaternion.

[`vector`](/documentation/simd/simd_quatf/vector)

The underlying vector of the quaternion.

### Creating a quaternion from other data types

[`simd_quaternion(_:_:_:_:)`](/documentation/simd/simd_quaternion(_:_:_:_:)-8aad4)

Returns a new quaternion from 4 scalar values.

[`simd_quaternion(_:_:)`](/documentation/simd/simd_quaternion(_:_:)-5lqb)

Returns a new quaternion from a scalar value and a three-element vector.

[`simd_quaternion(_:)`](/documentation/simd/simd_quaternion(_:)-8kkih)

Returns a new quaternion from a pointer to scalar values.

[`simd_quaternion(_:_:)`](/documentation/simd/simd_quaternion(_:_:)-18t47)

Returns a new quaternion from 2 three-element vectors.

[`simd_quaternion(_:)`](/documentation/simd/simd_quaternion(_:)-2qm7k)

Returns a new quaternion from a 3 x 3 matrix.

[`simd_quaternion(_:)`](/documentation/simd/simd_quaternion(_:)-459a0)

Returns a new quaternion from a four-element vector.

[`simd_quaternion(_:)`](/documentation/simd/simd_quaternion(_:)-69ido)

Returns a new quaternion from a 4 x 4 matrix.

### Applying arithmetic operations to quaternions

[`simd_add(_:_:)`](/documentation/simd/simd_add(_:_:)-7641g)

Returns the sum of two quaternions.

[`simd_mul(_:_:)`](/documentation/simd/simd_mul(_:_:)-4a5hq)

Returns the product of two quaternions.

[`simd_mul(_:_:)`](/documentation/simd/simd_mul(_:_:)-391wq)

[`simd_mul(_:_:)`](/documentation/simd/simd_mul(_:_:)-bqqq)

[`simd_sub(_:_:)`](/documentation/simd/simd_sub(_:_:)-807rv)

Returns the difference between two quaternions.

[`exp(_:)`](/documentation/simd/exp(_:)-9q8na)

[`log(_:)`](/documentation/simd/log(_:)-xpx0)

### Applying geometric operations to quaternions

[`simd_act(_:_:)`](/documentation/simd/simd_act(_:_:)-2liww)

Returns a vector rotated by a quaternion.

[`act(_:)`](/documentation/simd/simd_quatf/act(_:))

Returns the specified vector rotated by the quaternion.

[`simd_angle(_:)`](/documentation/simd/simd_angle(_:)-zu9h)

Returns the angle by which a quaternion rotates.

[`simd_axis(_:)`](/documentation/simd/simd_axis(_:)-56wzs)

Returns the normalized axis about which the action of the specified quaternion rotates.

[`simd_bezier(_:_:_:_:_:)`](/documentation/simd/simd_bezier(_:_:_:_:_:)-1z3gf)

Returns the spherical cubic Bezier interpolation between quaternions.

[`simd_conjugate(_:)`](/documentation/simd/simd_conjugate(_:)-98bil)

Returns the conjugate of a quaternion.

[`simd_imag(_:)`](/documentation/simd/simd_imag(_:)-2c837)

Returns the imaginary (vector) part of a quaternion.

[`simd_negate(_:)`](/documentation/simd/simd_negate(_:)-3yt2y)

Returns the negation of a quaternion.

[`simd_real(_:)`](/documentation/simd/simd_real(_:)-75sl3)

Returns the real (scalar) part of a quaternion.

[`simd_slerp(_:_:_:)`](/documentation/simd/simd_slerp(_:_:_:)-u2db)

Returns a spherical linearly interpolated value along the shortest arc between two quaternions.

[`simd_slerp_longest(_:_:_:)`](/documentation/simd/simd_slerp_longest(_:_:_:)-3qens)

Returns a spherical linearly interpolated value along the longest arc between two quaternions.

[`simd_spline(_:_:_:_:_:)`](/documentation/simd/simd_spline(_:_:_:_:_:)-1ok51)

Returns an interpolated value between two quaternions along a spherical cubic spline.

[`simd_dot(_:_:)`](/documentation/simd/simd_dot(_:_:)-7frqx)

Returns the dot product of two quaternions.

[`dot(_:_:)`](/documentation/simd/dot(_:_:)-2en8e)

[`simd_length(_:)`](/documentation/simd/simd_length(_:)-52nf5)

Returns the length of a quaternion.

[`simd_normalize(_:)`](/documentation/simd/simd_normalize(_:)-uch9)

Returns a quaternion pointing in the same direction as the supplied quaternion with a length of 1.

### Inverting a quaternion

[`simd_inverse(_:)`](/documentation/simd/simd_inverse(_:)-3cvay)

Returns the inverse of a quaternion.

### Providing a hash value

[`hash(into:)`](/documentation/simd/simd_quatf/hash(into:))

Hashes the essential components of this value by feeding them into the given hasher.

### Deprecated symbols

[`init(rotation:)`](/documentation/simd/simd_quatf/init(rotation:))

Created a new quaternion from a Spatial rotation structure.



---

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)