--- layout: stdlib-reference --- # smoothstep ## Description Smooth step (Hermite interpolation). ## Signature
T smoothstep<T>(
    T min,
    T max,
    T x)
    where T : __BuiltinFloatingPointType;

vector<T, N> smoothstep<T, int N>(
    vector<T, N> min,
    vector<T, N> max,
    vector<T, N> x)
    where T : __BuiltinFloatingPointType;

matrix<T, N, M> smoothstep<T, int N, int M>(
    matrix<T, N, M> min,
    matrix<T, N, M> max,
    matrix<T, N, M> x)
    where T : __BuiltinFloatingPointType;

## Generic Parameters #### T: [\_\_BuiltinFloatingPointType](../interfaces/0_builtinfloatingpointtype-029hm/index.html) #### N : int #### M : int ## Parameters #### min : [T](smoothstep.html#typeparam-T) The lower edge of the interpolation range. #### max : [T](smoothstep.html#typeparam-T) The upper edge of the interpolation range. #### x : [T](smoothstep.html#typeparam-T) The value to interpolate. #### min : [vector](../types/vector/index.html)\<[T](../types/vector/index.html#typeparam-T), [N](../types/vector/index.html#decl-N)\> The lower edge of the interpolation range. #### max : [vector](../types/vector/index.html)\<[T](../types/vector/index.html#typeparam-T), [N](../types/vector/index.html#decl-N)\> The upper edge of the interpolation range. #### x : [vector](../types/vector/index.html)\<[T](../types/vector/index.html#typeparam-T), [N](../types/vector/index.html#decl-N)\> The value to interpolate. #### min : [matrix](../types/matrix/index.html)\<[T](../types/matrix/t-0.html), [N](../types/matrix/index.html#decl-N), [M](../types/matrix/index.html#decl-M)\> The lower edge of the interpolation range. #### max : [matrix](../types/matrix/index.html)\<[T](../types/matrix/t-0.html), [N](../types/matrix/index.html#decl-N), [M](../types/matrix/index.html#decl-M)\> The upper edge of the interpolation range. #### x : [matrix](../types/matrix/index.html)\<[T](../types/matrix/t-0.html), [N](../types/matrix/index.html#decl-N), [M](../types/matrix/index.html#decl-M)\> The value to interpolate. ## Return value 0 if x is less than min, 1 if x is greater than max, and a smooth interpolation between 0 and 1 otherwise. ## Availability and Requirements Defined for the following targets: #### hlsl Available in all stages. #### glsl Available in all stages. #### cpp Available in all stages. #### cuda Available in all stages. #### metal Available in all stages. #### wgsl Available in all stages. #### spirv Available in all stages. #### llvm Available in all stages.