min
On this page

min

Function

Returns the lesser of a and b, componentwise over vectors.

The signature and the sentence under each name are the compiler's own text at commit 26de7be8.

Syntax

declare function min<V extends vec2 | vec3 | vec4 | vec2i | vec3i | vec4i | vec2u | vec3u | vec4u>(a0: V, a1: V): V
declare function min<P0 extends number, P1 extends number>(a0: P0, a1: P1): ([P0] extends [boolean] ? bool : typeof f32Tag extends keyof P0 ? f32 : typeof i32Tag extends keyof P0 ? i32 : typeof u32Tag extends keyof P0 ? u32 : typeof f64Tag extends keyof P0 ? f64 : ([P1] extends [boolean] ? bool : typeof f32Tag extends keyof P1 ? f32 : typeof i32Tag extends keyof P1 ? i32 : typeof u32Tag extends keyof P1 ? u32 : typeof f64Tag extends keyof P1 ? f64 : number))
declare function min(a: vec2, b: number): vec2
declare function min(a: vec3, b: number): vec3
declare function min(a: vec4, b: number): vec4
declare function min(a: vec2i, b: number): vec2i
declare function min(a: vec3i, b: number): vec3i
declare function min(a: vec4i, b: number): vec4i
declare function min(a: vec2u, b: number): vec2u
declare function min(a: vec3u, b: number): vec3u
declare function min(a: vec4u, b: number): vec4u
declare function min<T extends Numeric>(xs: array<T>): T

A number in a parameter or a return position is the scalar slot. The ambient file declares a GPU scalar as a branded number whose brand is optional, so a literal and any branded scalar both fill it.

type f32 = number & { readonly [f32Tag]?: true }

A declaration you write still needs a width, and a bare number on a field or a parameter is refused; the TypeScript constructs page carries that row with the compiler's own message.

A signature may name a type the ambient file declares for its own use. These are those declarations.

Numeric
type Numeric = number | vec2 | vec3 | vec4 | vec2i | vec3i | vec4i | vec2u | vec3u | vec4u

Parameters

Return value

V([P0] extends [boolean] ? bool : typeof f32Tag extends keyof P0 ? f32 : typeof i32Tag extends keyof P0 ? i32 : typeof u32Tag extends keyof P0 ? u32 : typeof f64Tag extends keyof P0 ? f64 : ([P1] extends [boolean] ? bool : typeof f32Tag extends keyof P1 ? f32 : typeof i32Tag extends keyof P1 ? i32 : typeof u32Tag extends keyof P1 ? u32 : typeof f64Tag extends keyof P1 ? f64 : number))vec2vec3vec4vec2ivec3ivec4ivec2uvec3uvec4uT

Description

If one argument is NaN, the other is returned. Also accepts f64 operands.

Targets

WGSL
min(a, b)
GLSL ES 3.00
min(a, b)

Examples

See also

Edit this page Report a problem