## Overview

These functions interpret the input arguments as representation of vectors in
n-dimensional space.

The precision of the mathematical operations on 32 bit floats is affected by the pragmas
rs_fp_relaxed and rs_fp_full. See [Mathematical Constants and Functions](https://developer.android.com/guide/topics/renderscript/reference/rs_math) for details.

Different precision/speed tradeoffs can be achieved by using variants of the common math
functions. Functions with a name starting with

- native_: May have custom hardware implementations with weaker precision. Additionally, subnormal values may be flushed to zero, rounding towards zero may be used, and NaN and infinity input may not be handled correctly.
- fast_: May perform internal computations using 16 bit floats. Additionally, subnormal values may be flushed to zero, and rounding towards zero may be used.

<br />

## Summary

|                                                                                 Functions                                                                                 ||
|----------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------|
| [cross](https://developer.android.com/guide/topics/renderscript/reference/rs_vector_math#android_rs:cross)                       | Cross product of two vectors            |
| [distance](https://developer.android.com/guide/topics/renderscript/reference/rs_vector_math#android_rs:distance)                 | Distance between two points             |
| [dot](https://developer.android.com/guide/topics/renderscript/reference/rs_vector_math#android_rs:dot)                           | Dot product of two vectors              |
| [fast_distance](https://developer.android.com/guide/topics/renderscript/reference/rs_vector_math#android_rs:fast_distance)       | Approximate distance between two points |
| [fast_length](https://developer.android.com/guide/topics/renderscript/reference/rs_vector_math#android_rs:fast_length)           | Approximate length of a vector          |
| [fast_normalize](https://developer.android.com/guide/topics/renderscript/reference/rs_vector_math#android_rs:fast_normalize)     | Approximate normalized vector           |
| [length](https://developer.android.com/guide/topics/renderscript/reference/rs_vector_math#android_rs:length)                     | Length of a vector                      |
| [native_distance](https://developer.android.com/guide/topics/renderscript/reference/rs_vector_math#android_rs:native_distance)   | Approximate distance between two points |
| [native_length](https://developer.android.com/guide/topics/renderscript/reference/rs_vector_math#android_rs:native_length)       | Approximate length of a vector          |
| [native_normalize](https://developer.android.com/guide/topics/renderscript/reference/rs_vector_math#android_rs:native_normalize) | Approximately normalize a vector        |
| [normalize](https://developer.android.com/guide/topics/renderscript/reference/rs_vector_math#android_rs:normalize)               | Normalize a vector                      |

## Functions

#### cross
: Cross product of two vectors

|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|
| [float3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float3) cross([float3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float3) left_vector, [float3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float3) right_vector); |                                                                                                              |
| [float4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float4) cross([float4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float4) left_vector, [float4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float4) right_vector); |                                                                                                              |
| [half3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half3) cross([half3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half3) left_vector, [half3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half3) right_vector);       | Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| [half4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half4) cross([half4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half4) left_vector, [half4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half4) right_vector);       | Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |

Computes the cross product of two vectors.  

#### distance
: Distance between two points

|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|
| float distance(float left_vector, float right_vector);                                                                                                                                                                                                                                                                                                              |                                                                                                              |
| float distance([float2](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float2) left_vector, [float2](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float2) right_vector);                                                                                                |                                                                                                              |
| float distance([float3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float3) left_vector, [float3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float3) right_vector);                                                                                                |                                                                                                              |
| float distance([float4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float4) left_vector, [float4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float4) right_vector);                                                                                                |                                                                                                              |
| [half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) distance([half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) left_vector, [half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) right_vector);     | Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| [half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) distance([half2](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half2) left_vector, [half2](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half2) right_vector); | Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| [half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) distance([half3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half3) left_vector, [half3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half3) right_vector); | Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| [half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) distance([half4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half4) left_vector, [half4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half4) right_vector); | Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |

Compute the distance between two points.

See also [fast_distance](https://developer.android.com/guide/topics/renderscript/reference/rs_vector_math#android_rs:fast_distance)(), [native_distance](https://developer.android.com/guide/topics/renderscript/reference/rs_vector_math#android_rs:native_distance)().  

#### dot
: Dot product of two vectors

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|
| float dot(float left_vector, float right_vector);                                                                                                                                                                                                                                                                                                              |                                                                                                              |
| float dot([float2](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float2) left_vector, [float2](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float2) right_vector);                                                                                                |                                                                                                              |
| float dot([float3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float3) left_vector, [float3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float3) right_vector);                                                                                                |                                                                                                              |
| float dot([float4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float4) left_vector, [float4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float4) right_vector);                                                                                                |                                                                                                              |
| [half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) dot([half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) left_vector, [half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) right_vector);     | Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| [half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) dot([half2](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half2) left_vector, [half2](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half2) right_vector); | Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| [half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) dot([half3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half3) left_vector, [half3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half3) right_vector); | Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| [half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) dot([half4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half4) left_vector, [half4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half4) right_vector); | Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |

Computes the dot product of two vectors.  

#### fast_distance
: Approximate distance between two points

|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|
| float fast_distance(float left_vector, float right_vector);                                                                                                                                                                                                               | Added in [API level 17](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| float fast_distance([float2](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float2) left_vector, [float2](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float2) right_vector); | Added in [API level 17](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| float fast_distance([float3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float3) left_vector, [float3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float3) right_vector); | Added in [API level 17](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| float fast_distance([float4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float4) left_vector, [float4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float4) right_vector); | Added in [API level 17](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |

Computes the approximate distance between two points.

The precision is what would be expected from doing the computation using 16 bit floating
point values.

See also [distance](https://developer.android.com/guide/topics/renderscript/reference/rs_vector_math#android_rs:distance)(), [native_distance](https://developer.android.com/guide/topics/renderscript/reference/rs_vector_math#android_rs:native_distance)().  

#### fast_length
: Approximate length of a vector

|------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|
| float fast_length(float v);                                                                                                        | Added in [API level 17](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| float fast_length([float2](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float2) v); | Added in [API level 17](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| float fast_length([float3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float3) v); | Added in [API level 17](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| float fast_length([float4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float4) v); | Added in [API level 17](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |

Computes the approximate length of a vector.

The precision is what would be expected from doing the computation using 16 bit floating
point values.

See also [length](https://developer.android.com/guide/topics/renderscript/reference/rs_vector_math#android_rs:length)(), [native_length](https://developer.android.com/guide/topics/renderscript/reference/rs_vector_math#android_rs:native_length)().  

#### fast_normalize
: Approximate normalized vector

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|
| float fast_normalize(float v);                                                                                                                                                                                                               | Added in [API level 17](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| [float2](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float2) fast_normalize([float2](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float2) v); | Added in [API level 17](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| [float3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float3) fast_normalize([float3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float3) v); | Added in [API level 17](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| [float4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float4) fast_normalize([float4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float4) v); | Added in [API level 17](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |

Approximately normalizes a vector.

For vectors of size 1, returns -1.f for negative values, 0.f for null values, and 1.f for
positive values.

The precision is what would be expected from doing the computation using 16 bit floating
point values.

See also [normalize](https://developer.android.com/guide/topics/renderscript/reference/rs_vector_math#android_rs:normalize)(), [native_normalize](https://developer.android.com/guide/topics/renderscript/reference/rs_vector_math#android_rs:native_normalize)().  

#### length
: Length of a vector

|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|
| float length(float v);                                                                                                                                                                                                         |                                                                                                              |
| float length([float2](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float2) v);                                                                                                  |                                                                                                              |
| float length([float3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float3) v);                                                                                                  |                                                                                                              |
| float length([float4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float4) v);                                                                                                  |                                                                                                              |
| [half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) length([half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) v);   | Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| [half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) length([half2](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half2) v); | Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| [half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) length([half3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half3) v); | Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| [half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) length([half4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half4) v); | Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |

Computes the length of a vector.

See also [fast_length](https://developer.android.com/guide/topics/renderscript/reference/rs_vector_math#android_rs:fast_length)(), [native_length](https://developer.android.com/guide/topics/renderscript/reference/rs_vector_math#android_rs:native_length)().  

#### native_distance
: Approximate distance between two points

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|
| float native_distance(float left_vector, float right_vector);                                                                                                                                                                                                                                                                                                              | Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| float native_distance([float2](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float2) left_vector, [float2](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float2) right_vector);                                                                                                | Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| float native_distance([float3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float3) left_vector, [float3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float3) right_vector);                                                                                                | Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| float native_distance([float4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float4) left_vector, [float4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float4) right_vector);                                                                                                | Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| [half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) native_distance([half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) left_vector, [half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) right_vector);     | Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| [half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) native_distance([half2](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half2) left_vector, [half2](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half2) right_vector); | Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| [half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) native_distance([half3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half3) left_vector, [half3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half3) right_vector); | Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| [half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) native_distance([half4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half4) left_vector, [half4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half4) right_vector); | Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |

Computes the approximate distance between two points.

See also [distance](https://developer.android.com/guide/topics/renderscript/reference/rs_vector_math#android_rs:distance)(), [fast_distance](https://developer.android.com/guide/topics/renderscript/reference/rs_vector_math#android_rs:fast_distance)().  

#### native_length
: Approximate length of a vector

|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|
| float native_length(float v);                                                                                                                                                                                                         | Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| float native_length([float2](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float2) v);                                                                                                  | Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| float native_length([float3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float3) v);                                                                                                  | Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| float native_length([float4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float4) v);                                                                                                  | Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| [half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) native_length([half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) v);   | Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| [half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) native_length([half2](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half2) v); | Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| [half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) native_length([half3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half3) v); | Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| [half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) native_length([half4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half4) v); | Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |

Compute the approximate length of a vector.

See also [length](https://developer.android.com/guide/topics/renderscript/reference/rs_vector_math#android_rs:length)(), [fast_length](https://developer.android.com/guide/topics/renderscript/reference/rs_vector_math#android_rs:fast_length)().  

#### native_normalize
: Approximately normalize a vector

|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|
| float native_normalize(float v);                                                                                                                                                                                                               | Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| [float2](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float2) native_normalize([float2](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float2) v); | Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| [float3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float3) native_normalize([float3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float3) v); | Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| [float4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float4) native_normalize([float4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float4) v); | Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| [half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) native_normalize([half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) v);         | Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| [half2](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half2) native_normalize([half2](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half2) v);     | Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| [half3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half3) native_normalize([half3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half3) v);     | Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| [half4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half4) native_normalize([half4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half4) v);     | Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |

Approximately normalizes a vector.

See also [normalize](https://developer.android.com/guide/topics/renderscript/reference/rs_vector_math#android_rs:normalize)(), [fast_normalize](https://developer.android.com/guide/topics/renderscript/reference/rs_vector_math#android_rs:fast_normalize)().  

#### normalize
: Normalize a vector

|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|
| float normalize(float v);                                                                                                                                                                                                               |                                                                                                              |
| [float2](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float2) normalize([float2](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float2) v); |                                                                                                              |
| [float3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float3) normalize([float3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float3) v); |                                                                                                              |
| [float4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float4) normalize([float4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:float4) v); |                                                                                                              |
| [half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) normalize([half](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half) v);         | Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| [half2](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half2) normalize([half2](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half2) v);     | Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| [half3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half3) normalize([half3](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half3) v);     | Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |
| [half4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half4) normalize([half4](https://developer.android.com/guide/topics/renderscript/reference/rs_value_types#android_rs:half4) v);     | Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) |

Normalize a vector.

For vectors of size 1, returns -1.f for negative values, 0.f for null values, and 1.f for
positive values.

See also [fast_normalize](https://developer.android.com/guide/topics/renderscript/reference/rs_vector_math#android_rs:fast_normalize)(), [native_normalize](https://developer.android.com/guide/topics/renderscript/reference/rs_vector_math#android_rs:native_normalize)().