# dual_quat_normalize (Operator)

## Name

`dual_quat_normalize` — Normalize a dual quaternion.

## Signature

`dual_quat_normalize( : : DualQuaternion : DualQuaternionNormalized)`

## Description

The operator `dual_quat_normalize` normalizes the input dual quaternion `DualQuaternion` and returns the normalized dual quaternion, which is also called a unit dual quaternion, in `DualQuaternionNormalized`.

For a brief introduction to dual quaternions, the used notation, and the relationship between dual quaternions and screws, see `“Solution Guide III-C - 3D Vision”`.

The norm of a unit dual quaternion is 1, i.e., . This is equivalent to the following two conditions: where represents the conjugate quaternion of (see `quat_conjugate`).

A 3D rigid transformation can be represented by a unit dual quaternion.

## Attention

If the norm of the real part of `DualQuaternion` is 0, `dual_quat_normalize` returns the error code 9310 (H_ERR_DQ_ZERO_NORM) because in this case no normalization is possible.

## Execution Information

• Multithreading type: reentrant (runs in parallel with non-exclusive operators).
• Processed without parallelization.

## Parameters

`DualQuaternion` (input_control)  dual_quaternion(-array) `→` (real)

Unit dual quaternion.

`DualQuaternionNormalized` (output_control)  dual_quaternion(-array) `→` (real)

Normalized dual quaternion.

## Possible Predecessors

`dual_quat_compose`

## Possible Successors

`dual_quat_to_hom_mat3d`

`dual_quat_interpolate`, `pose_to_dual_quat`, `screw_to_dual_quat`, `dual_quat_to_screw`, `dual_quat_to_pose`, `dual_quat_conjugate`, `serialize_dual_quat`, `deserialize_dual_quat`, `dual_quat_trans_line_3d`, `dual_quat_trans_point_3d`, `quat_normalize`