package core:math/linalg/hlsl
⌘K
Ctrl+K
or
/
Overview
HLSL-like mathematics library plus numerous other utility procedures.
Index
Types (87)
- bool2
- bool3
- bool4
- double
- double1x1
- double1x2
- double1x3
- double1x4
- double2
- double2x1
- double2x2
- double2x3
- double2x4
- double3
- double3x1
- double3x2
- double3x3
- double3x4
- double4
- double4x1
- double4x2
- double4x3
- double4x4
- float
- float1x1
- float1x2
- float1x3
- float1x4
- float2
- float2x1
- float2x2
- float2x3
- float2x4
- float3
- float3x1
- float3x2
- float3x3
- float3x4
- float4
- float4x1
- float4x2
- float4x3
- float4x4
- half
- half1x1
- half1x2
- half1x3
- half1x4
- half2
- half2x1
- half2x2
- half2x3
- half2x4
- half3
- half3x1
- half3x2
- half3x3
- half3x4
- half4
- half4x1
- half4x2
- half4x3
- half4x4
- int
- int1x1
- int1x2
- int1x3
- int1x4
- int2
- int2x1
- int2x2
- int2x3
- int2x4
- int3
- int3x1
- int3x2
- int3x3
- int3x4
- int4
- int4x1
- int4x2
- int4x3
- int4x4
- uint
- uint2
- uint3
- uint4
Constants (13)
Variables (0)
This section is empty.
Procedures (1119)
adjugate_… (4)
asdouble_… (71)
- asdouble_bool2
- asdouble_bool3
- asdouble_bool4
- asdouble_double
- asdouble_double1x1
- asdouble_double1x2
- asdouble_double1x3
- asdouble_double1x4
- asdouble_double2
- asdouble_double2x1
- asdouble_double2x2
- asdouble_double2x3
- asdouble_double2x4
- asdouble_double3
- asdouble_double3x1
- asdouble_double3x2
- asdouble_double3x3
- asdouble_double3x4
- asdouble_double4
- asdouble_double4x1
- asdouble_double4x2
- asdouble_double4x3
- asdouble_double4x4
- asdouble_float
- asdouble_float1x1
- asdouble_float1x2
- asdouble_float1x3
- asdouble_float1x4
- asdouble_float2
- asdouble_float2x1
- asdouble_float2x2
- asdouble_float2x3
- asdouble_float2x4
- asdouble_float3
- asdouble_float3x1
- asdouble_float3x2
- asdouble_float3x3
- asdouble_float3x4
- asdouble_float4
- asdouble_float4x1
- asdouble_float4x2
- asdouble_float4x3
- asdouble_float4x4
- asdouble_half
- asdouble_half1x1
- asdouble_half1x2
- asdouble_half1x3
- asdouble_half1x4
- asdouble_half2
- asdouble_half2x1
- asdouble_half2x2
- asdouble_half2x3
- asdouble_half2x4
- asdouble_half3
- asdouble_half3x1
- asdouble_half3x2
- asdouble_half3x3
- asdouble_half3x4
- asdouble_half4
- asdouble_half4x1
- asdouble_half4x2
- asdouble_half4x3
- asdouble_half4x4
- asdouble_int
- asdouble_int2
- asdouble_int3
- asdouble_int4
- asdouble_uint
- asdouble_uint2
- asdouble_uint3
- asdouble_uint4
asfloat_… (71)
- asfloat_bool2
- asfloat_bool3
- asfloat_bool4
- asfloat_double
- asfloat_double1x1
- asfloat_double1x2
- asfloat_double1x3
- asfloat_double1x4
- asfloat_double2
- asfloat_double2x1
- asfloat_double2x2
- asfloat_double2x3
- asfloat_double2x4
- asfloat_double3
- asfloat_double3x1
- asfloat_double3x2
- asfloat_double3x3
- asfloat_double3x4
- asfloat_double4
- asfloat_double4x1
- asfloat_double4x2
- asfloat_double4x3
- asfloat_double4x4
- asfloat_float
- asfloat_float1x1
- asfloat_float1x2
- asfloat_float1x3
- asfloat_float1x4
- asfloat_float2
- asfloat_float2x1
- asfloat_float2x2
- asfloat_float2x3
- asfloat_float2x4
- asfloat_float3
- asfloat_float3x1
- asfloat_float3x2
- asfloat_float3x3
- asfloat_float3x4
- asfloat_float4
- asfloat_float4x1
- asfloat_float4x2
- asfloat_float4x3
- asfloat_float4x4
- asfloat_half
- asfloat_half1x1
- asfloat_half1x2
- asfloat_half1x3
- asfloat_half1x4
- asfloat_half2
- asfloat_half2x1
- asfloat_half2x2
- asfloat_half2x3
- asfloat_half2x4
- asfloat_half3
- asfloat_half3x1
- asfloat_half3x2
- asfloat_half3x3
- asfloat_half3x4
- asfloat_half4
- asfloat_half4x1
- asfloat_half4x2
- asfloat_half4x3
- asfloat_half4x4
- asfloat_int
- asfloat_int2
- asfloat_int3
- asfloat_int4
- asfloat_uint
- asfloat_uint2
- asfloat_uint3
- asfloat_uint4
ashalf_… (71)
- ashalf_bool2
- ashalf_bool3
- ashalf_bool4
- ashalf_double
- ashalf_double1x1
- ashalf_double1x2
- ashalf_double1x3
- ashalf_double1x4
- ashalf_double2
- ashalf_double2x1
- ashalf_double2x2
- ashalf_double2x3
- ashalf_double2x4
- ashalf_double3
- ashalf_double3x1
- ashalf_double3x2
- ashalf_double3x3
- ashalf_double3x4
- ashalf_double4
- ashalf_double4x1
- ashalf_double4x2
- ashalf_double4x3
- ashalf_double4x4
- ashalf_float
- ashalf_float1x1
- ashalf_float1x2
- ashalf_float1x3
- ashalf_float1x4
- ashalf_float2
- ashalf_float2x1
- ashalf_float2x2
- ashalf_float2x3
- ashalf_float2x4
- ashalf_float3
- ashalf_float3x1
- ashalf_float3x2
- ashalf_float3x3
- ashalf_float3x4
- ashalf_float4
- ashalf_float4x1
- ashalf_float4x2
- ashalf_float4x3
- ashalf_float4x4
- ashalf_half
- ashalf_half1x1
- ashalf_half1x2
- ashalf_half1x3
- ashalf_half1x4
- ashalf_half2
- ashalf_half2x1
- ashalf_half2x2
- ashalf_half2x3
- ashalf_half2x4
- ashalf_half3
- ashalf_half3x1
- ashalf_half3x2
- ashalf_half3x3
- ashalf_half3x4
- ashalf_half4
- ashalf_half4x1
- ashalf_half4x2
- ashalf_half4x3
- ashalf_half4x4
- ashalf_int
- ashalf_int2
- ashalf_int3
- ashalf_int4
- ashalf_uint
- ashalf_uint2
- ashalf_uint3
- ashalf_uint4
asint_… (71)
- asint_bool2
- asint_bool3
- asint_bool4
- asint_double
- asint_double1x1
- asint_double1x2
- asint_double1x3
- asint_double1x4
- asint_double2
- asint_double2x1
- asint_double2x2
- asint_double2x3
- asint_double2x4
- asint_double3
- asint_double3x1
- asint_double3x2
- asint_double3x3
- asint_double3x4
- asint_double4
- asint_double4x1
- asint_double4x2
- asint_double4x3
- asint_double4x4
- asint_float
- asint_float1x1
- asint_float1x2
- asint_float1x3
- asint_float1x4
- asint_float2
- asint_float2x1
- asint_float2x2
- asint_float2x3
- asint_float2x4
- asint_float3
- asint_float3x1
- asint_float3x2
- asint_float3x3
- asint_float3x4
- asint_float4
- asint_float4x1
- asint_float4x2
- asint_float4x3
- asint_float4x4
- asint_half
- asint_half1x1
- asint_half1x2
- asint_half1x3
- asint_half1x4
- asint_half2
- asint_half2x1
- asint_half2x2
- asint_half2x3
- asint_half2x4
- asint_half3
- asint_half3x1
- asint_half3x2
- asint_half3x3
- asint_half3x4
- asint_half4
- asint_half4x1
- asint_half4x2
- asint_half4x3
- asint_half4x4
- asint_int
- asint_int2
- asint_int3
- asint_int4
- asint_uint
- asint_uint2
- asint_uint3
- asint_uint4
asuint_… (23)
- asuint_bool2
- asuint_bool3
- asuint_bool4
- asuint_double
- asuint_double2
- asuint_double3
- asuint_double4
- asuint_float
- asuint_float2
- asuint_float3
- asuint_float4
- asuint_half
- asuint_half2
- asuint_half3
- asuint_half4
- asuint_int
- asuint_int2
- asuint_int3
- asuint_int4
- asuint_uint
- asuint_uint2
- asuint_uint3
- asuint_uint4
cofactor_… (4)
cross_… (4)
determinant_… (4)
greaterThanEqual_… (20)
- greaterThanEqual_double
- greaterThanEqual_double2
- greaterThanEqual_double3
- greaterThanEqual_double4
- greaterThanEqual_float
- greaterThanEqual_float2
- greaterThanEqual_float3
- greaterThanEqual_float4
- greaterThanEqual_half
- greaterThanEqual_half2
- greaterThanEqual_half3
- greaterThanEqual_half4
- greaterThanEqual_int
- greaterThanEqual_int2
- greaterThanEqual_int3
- greaterThanEqual_int4
- greaterThanEqual_uint
- greaterThanEqual_uint2
- greaterThanEqual_uint3
- greaterThanEqual_uint4
greaterThan_… (20)
- greaterThan_double
- greaterThan_double2
- greaterThan_double3
- greaterThan_double4
- greaterThan_float
- greaterThan_float2
- greaterThan_float3
- greaterThan_float4
- greaterThan_half
- greaterThan_half2
- greaterThan_half3
- greaterThan_half4
- greaterThan_int
- greaterThan_int2
- greaterThan_int3
- greaterThan_int4
- greaterThan_uint
- greaterThan_uint2
- greaterThan_uint3
- greaterThan_uint4
- hermitian_adjoint
inverse_… (20)
- inverse_double1x1
- inverse_double2x2
- inverse_double3x3
- inverse_double4x4
- inverse_float1x1
- inverse_float2x2
- inverse_float3x3
- inverse_float4x4
- inverse_half1x1
- inverse_half2x2
- inverse_half3x3
- inverse_half4x4
- inverse_matrix1x1
- inverse_matrix2x2
- inverse_matrix3x3
- inverse_matrix4x4
- inverse_transpose_matrix1x1
- inverse_transpose_matrix2x2
- inverse_transpose_matrix3x3
- inverse_transpose_matrix4x4
lessThanEqual_… (20)
- lessThanEqual_double
- lessThanEqual_double2
- lessThanEqual_double3
- lessThanEqual_double4
- lessThanEqual_float
- lessThanEqual_float2
- lessThanEqual_float3
- lessThanEqual_float4
- lessThanEqual_half
- lessThanEqual_half2
- lessThanEqual_half3
- lessThanEqual_half4
- lessThanEqual_int
- lessThanEqual_int2
- lessThanEqual_int3
- lessThanEqual_int4
- lessThanEqual_uint
- lessThanEqual_uint2
- lessThanEqual_uint3
- lessThanEqual_uint4
lessThan_… (20)
- lessThan_double
- lessThan_double2
- lessThan_double3
- lessThan_double4
- lessThan_float
- lessThan_float2
- lessThan_float3
- lessThan_float4
- lessThan_half
- lessThan_half2
- lessThan_half3
- lessThan_half4
- lessThan_int
- lessThan_int2
- lessThan_int3
- lessThan_int4
- lessThan_uint
- lessThan_uint2
- lessThan_uint3
- lessThan_uint4
- matrix_minor
notEqual_… (20)
- notEqual_double
- notEqual_double2
- notEqual_double3
- notEqual_double4
- notEqual_float
- notEqual_float2
- notEqual_float3
- notEqual_float4
- notEqual_half
- notEqual_half2
- notEqual_half3
- notEqual_half4
- notEqual_int
- notEqual_int2
- notEqual_int3
- notEqual_int4
- notEqual_uint
- notEqual_uint2
- notEqual_uint3
- notEqual_uint4
saturate_… (20)
- saturate_double
- saturate_double2
- saturate_double3
- saturate_double4
- saturate_float
- saturate_float2
- saturate_float3
- saturate_float4
- saturate_half
- saturate_half2
- saturate_half3
- saturate_half4
- saturate_int
- saturate_int2
- saturate_int3
- saturate_int4
- saturate_uint
- saturate_uint2
- saturate_uint3
- saturate_uint4
scalarTripleProduct_… (4)
- trace
- transpose
vectorTripleProduct_… (4)
Procedure Groups (70)
- abs
- acos
- acosh
- adjugate
- all
- any
- asdouble
- asfloat
- ashalf
- asin
- asinh
- asint
- asuint
- atan
- atan2
- atanh
- ceil
- clamp
- cofactor
- cos
- cosh
- cross
- degrees
- determinant
- distance
- dot
- equal
- exp
- exp2
- faceforward
- floor
- fmod
- frac
- greaterThan
- greaterThanEqual
- inverse
- inverse_transpose
- isfinite
- isinf
- isnan
- length
- lerp
- lessThan
- lessThanEqual
- log
- log10
- log2
- max
- min
- normalize
- not
- notEqual
- pow
- radians
- rcp
- reflect
- refract
- round
- rsqrt
- saturate
- scalarTripleProduct
- sign
- sin
- sinh
- smoothstep
- sqrt
- step
- tan
- tanh
- vectorTripleProduct
Types
bool2 ¶
bool2 :: [2]bool
Related Procedures With Parameters
- all_bool2
- any_bool2
- asdouble_bool2
- asfloat_bool2
- ashalf_bool2
- asint_bool2
- asuint_bool2
- not_bool2
- all (procedure groups)
- any (procedure groups)
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
- asuint (procedure groups)
- not (procedure groups)
Related Procedures With Returns
- equal_double2
- equal_float2
- equal_half2
- equal_int2
- equal_uint2
- greaterThanEqual_double2
- greaterThanEqual_float2
- greaterThanEqual_half2
- greaterThanEqual_int2
- greaterThanEqual_uint2
- greaterThan_double2
- greaterThan_float2
- greaterThan_half2
- greaterThan_int2
- greaterThan_uint2
- isfinite_double2
- isfinite_float2
- isfinite_half2
- isinf_double2
- isinf_float2
- isinf_half2
- isnan_double2
- isnan_float2
- isnan_half2
- lessThanEqual_double2
- lessThanEqual_float2
- lessThanEqual_half2
- lessThanEqual_int2
- lessThanEqual_uint2
- lessThan_double2
- lessThan_float2
- lessThan_half2
- lessThan_int2
- lessThan_uint2
- notEqual_double2
- notEqual_float2
- notEqual_half2
- notEqual_int2
- notEqual_uint2
- equal (procedure groups)
- greaterThan (procedure groups)
- greaterThanEqual (procedure groups)
- isfinite (procedure groups)
- isinf (procedure groups)
- isnan (procedure groups)
- lessThan (procedure groups)
- lessThanEqual (procedure groups)
- notEqual (procedure groups)
bool3 ¶
bool3 :: [3]bool
Related Procedures With Parameters
- all_bool3
- any_bool3
- asdouble_bool3
- asfloat_bool3
- ashalf_bool3
- asint_bool3
- asuint_bool3
- not_bool3
- all (procedure groups)
- any (procedure groups)
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
- asuint (procedure groups)
- not (procedure groups)
Related Procedures With Returns
- equal_double3
- equal_float3
- equal_half3
- equal_int3
- equal_uint3
- greaterThanEqual_double3
- greaterThanEqual_float3
- greaterThanEqual_half3
- greaterThanEqual_int3
- greaterThanEqual_uint3
- greaterThan_double3
- greaterThan_float3
- greaterThan_half3
- greaterThan_int3
- greaterThan_uint3
- isfinite_double3
- isfinite_float3
- isfinite_half3
- isinf_double3
- isinf_float3
- isinf_half3
- isnan_double3
- isnan_float3
- isnan_half3
- lessThanEqual_double3
- lessThanEqual_float3
- lessThanEqual_half3
- lessThanEqual_int3
- lessThanEqual_uint3
- lessThan_double3
- lessThan_float3
- lessThan_half3
- lessThan_int3
- lessThan_uint3
- notEqual_double3
- notEqual_float3
- notEqual_half3
- notEqual_int3
- notEqual_uint3
- equal (procedure groups)
- greaterThan (procedure groups)
- greaterThanEqual (procedure groups)
- isfinite (procedure groups)
- isinf (procedure groups)
- isnan (procedure groups)
- lessThan (procedure groups)
- lessThanEqual (procedure groups)
- notEqual (procedure groups)
bool4 ¶
bool4 :: [4]bool
Related Procedures With Parameters
- all_bool4
- any_bool4
- asdouble_bool4
- asfloat_bool4
- ashalf_bool4
- asint_bool4
- asuint_bool4
- not_bool4
- all (procedure groups)
- any (procedure groups)
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
- asuint (procedure groups)
- not (procedure groups)
Related Procedures With Returns
- equal_double4
- equal_float4
- equal_half4
- equal_int4
- equal_uint4
- greaterThanEqual_double4
- greaterThanEqual_float4
- greaterThanEqual_half4
- greaterThanEqual_int4
- greaterThanEqual_uint4
- greaterThan_double4
- greaterThan_float4
- greaterThan_half4
- greaterThan_int4
- greaterThan_uint4
- isfinite_double4
- isfinite_float4
- isfinite_half4
- isinf_double4
- isinf_float4
- isinf_half4
- isnan_double4
- isnan_float4
- isnan_half4
- lessThanEqual_double4
- lessThanEqual_float4
- lessThanEqual_half4
- lessThanEqual_int4
- lessThanEqual_uint4
- lessThan_double4
- lessThan_float4
- lessThan_half4
- lessThan_int4
- lessThan_uint4
- notEqual_double4
- notEqual_float4
- notEqual_half4
- notEqual_int4
- notEqual_uint4
- equal (procedure groups)
- greaterThan (procedure groups)
- greaterThanEqual (procedure groups)
- isfinite (procedure groups)
- isinf (procedure groups)
- isnan (procedure groups)
- lessThan (procedure groups)
- lessThanEqual (procedure groups)
- notEqual (procedure groups)
double1x1 ¶
double1x1 :: matrix[1, 1]f64
Related Procedures With Parameters
- asdouble_double1x1
- asfloat_double1x1
- ashalf_double1x1
- asint_double1x1
- inverse_double1x1
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
- inverse (procedure groups)
Related Procedures With Returns
double1x2 ¶
double1x2 :: matrix[1, 2]f64
Related Procedures With Parameters
- asdouble_double1x2
- asfloat_double1x2
- ashalf_double1x2
- asint_double1x2
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
double1x3 ¶
double1x3 :: matrix[1, 3]f64
Related Procedures With Parameters
- asdouble_double1x3
- asfloat_double1x3
- ashalf_double1x3
- asint_double1x3
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
double1x4 ¶
double1x4 :: matrix[1, 4]f64
Related Procedures With Parameters
- asdouble_double1x4
- asfloat_double1x4
- ashalf_double1x4
- asint_double1x4
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
double2x1 ¶
double2x1 :: matrix[2, 1]f64
Related Procedures With Parameters
- asdouble_double2x1
- asfloat_double2x1
- ashalf_double2x1
- asint_double2x1
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
double2x2 ¶
double2x2 :: matrix[2, 2]f64
Related Procedures With Parameters
- asdouble_double2x2
- asfloat_double2x2
- ashalf_double2x2
- asint_double2x2
- inverse_double2x2
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
- inverse (procedure groups)
Related Procedures With Returns
double2x3 ¶
double2x3 :: matrix[2, 3]f64
Related Procedures With Parameters
- asdouble_double2x3
- asfloat_double2x3
- ashalf_double2x3
- asint_double2x3
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
double2x4 ¶
double2x4 :: matrix[2, 4]f64
Related Procedures With Parameters
- asdouble_double2x4
- asfloat_double2x4
- ashalf_double2x4
- asint_double2x4
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
double3x1 ¶
double3x1 :: matrix[3, 1]f64
Related Procedures With Parameters
- asdouble_double3x1
- asfloat_double3x1
- ashalf_double3x1
- asint_double3x1
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
double3x2 ¶
double3x2 :: matrix[3, 2]f64
Related Procedures With Parameters
- asdouble_double3x2
- asfloat_double3x2
- ashalf_double3x2
- asint_double3x2
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
double3x3 ¶
double3x3 :: matrix[3, 3]f64
Related Procedures With Parameters
- asdouble_double3x3
- asfloat_double3x3
- ashalf_double3x3
- asint_double3x3
- inverse_double3x3
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
- inverse (procedure groups)
Related Procedures With Returns
double3x4 ¶
double3x4 :: matrix[3, 4]f64
Related Procedures With Parameters
- asdouble_double3x4
- asfloat_double3x4
- ashalf_double3x4
- asint_double3x4
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
double4x1 ¶
double4x1 :: matrix[4, 1]f64
Related Procedures With Parameters
- asdouble_double4x1
- asfloat_double4x1
- ashalf_double4x1
- asint_double4x1
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
double4x2 ¶
double4x2 :: matrix[4, 2]f64
Related Procedures With Parameters
- asdouble_double4x2
- asfloat_double4x2
- ashalf_double4x2
- asint_double4x2
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
double4x3 ¶
double4x3 :: matrix[4, 3]f64
Related Procedures With Parameters
- asdouble_double4x3
- asfloat_double4x3
- ashalf_double4x3
- asint_double4x3
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
double4x4 ¶
double4x4 :: matrix[4, 4]f64
Related Procedures With Parameters
- asdouble_double4x4
- asfloat_double4x4
- ashalf_double4x4
- asint_double4x4
- inverse_double4x4
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
- inverse (procedure groups)
Related Procedures With Returns
float1x1 ¶
float1x1 :: matrix[1, 1]f32
Odin matrices are stored internally as Column-Major, which matches the internal layout of HLSL by default
Related Procedures With Parameters
- asdouble_float1x1
- asfloat_float1x1
- ashalf_float1x1
- asint_float1x1
- inverse_float1x1
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
- inverse (procedure groups)
Related Procedures With Returns
float1x2 ¶
float1x2 :: matrix[1, 2]f32
Related Procedures With Parameters
- asdouble_float1x2
- asfloat_float1x2
- ashalf_float1x2
- asint_float1x2
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
float1x3 ¶
float1x3 :: matrix[1, 3]f32
Related Procedures With Parameters
- asdouble_float1x3
- asfloat_float1x3
- ashalf_float1x3
- asint_float1x3
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
float1x4 ¶
float1x4 :: matrix[1, 4]f32
Related Procedures With Parameters
- asdouble_float1x4
- asfloat_float1x4
- ashalf_float1x4
- asint_float1x4
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
float2x1 ¶
float2x1 :: matrix[2, 1]f32
Related Procedures With Parameters
- asdouble_float2x1
- asfloat_float2x1
- ashalf_float2x1
- asint_float2x1
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
float2x2 ¶
float2x2 :: matrix[2, 2]f32
Related Procedures With Parameters
- asdouble_float2x2
- asfloat_float2x2
- ashalf_float2x2
- asint_float2x2
- inverse_float2x2
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
- inverse (procedure groups)
Related Procedures With Returns
float2x3 ¶
float2x3 :: matrix[2, 3]f32
Related Procedures With Parameters
- asdouble_float2x3
- asfloat_float2x3
- ashalf_float2x3
- asint_float2x3
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
float2x4 ¶
float2x4 :: matrix[2, 4]f32
Related Procedures With Parameters
- asdouble_float2x4
- asfloat_float2x4
- ashalf_float2x4
- asint_float2x4
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
float3x1 ¶
float3x1 :: matrix[3, 1]f32
Related Procedures With Parameters
- asdouble_float3x1
- asfloat_float3x1
- ashalf_float3x1
- asint_float3x1
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
float3x2 ¶
float3x2 :: matrix[3, 2]f32
Related Procedures With Parameters
- asdouble_float3x2
- asfloat_float3x2
- ashalf_float3x2
- asint_float3x2
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
float3x3 ¶
float3x3 :: matrix[3, 3]f32
Related Procedures With Parameters
- asdouble_float3x3
- asfloat_float3x3
- ashalf_float3x3
- asint_float3x3
- inverse_float3x3
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
- inverse (procedure groups)
Related Procedures With Returns
float3x4 ¶
float3x4 :: matrix[3, 4]f32
Related Procedures With Parameters
- asdouble_float3x4
- asfloat_float3x4
- ashalf_float3x4
- asint_float3x4
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
float4x1 ¶
float4x1 :: matrix[4, 1]f32
Related Procedures With Parameters
- asdouble_float4x1
- asfloat_float4x1
- ashalf_float4x1
- asint_float4x1
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
float4x2 ¶
float4x2 :: matrix[4, 2]f32
Related Procedures With Parameters
- asdouble_float4x2
- asfloat_float4x2
- ashalf_float4x2
- asint_float4x2
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
float4x3 ¶
float4x3 :: matrix[4, 3]f32
Related Procedures With Parameters
- asdouble_float4x3
- asfloat_float4x3
- ashalf_float4x3
- asint_float4x3
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
float4x4 ¶
float4x4 :: matrix[4, 4]f32
Related Procedures With Parameters
- asdouble_float4x4
- asfloat_float4x4
- ashalf_float4x4
- asint_float4x4
- inverse_float4x4
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
- inverse (procedure groups)
Related Procedures With Returns
half1x1 ¶
half1x1 :: matrix[1, 1]f16
Related Procedures With Parameters
- asdouble_half1x1
- asfloat_half1x1
- ashalf_half1x1
- asint_half1x1
- inverse_half1x1
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
- inverse (procedure groups)
Related Procedures With Returns
half1x2 ¶
half1x2 :: matrix[1, 2]f16
Related Procedures With Parameters
- asdouble_half1x2
- asfloat_half1x2
- ashalf_half1x2
- asint_half1x2
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
half1x3 ¶
half1x3 :: matrix[1, 3]f16
Related Procedures With Parameters
- asdouble_half1x3
- asfloat_half1x3
- ashalf_half1x3
- asint_half1x3
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
half1x4 ¶
half1x4 :: matrix[1, 4]f16
Related Procedures With Parameters
- asdouble_half1x4
- asfloat_half1x4
- ashalf_half1x4
- asint_half1x4
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
half2x1 ¶
half2x1 :: matrix[2, 1]f16
Related Procedures With Parameters
- asdouble_half2x1
- asfloat_half2x1
- ashalf_half2x1
- asint_half2x1
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
half2x2 ¶
half2x2 :: matrix[2, 2]f16
Related Procedures With Parameters
- asdouble_half2x2
- asfloat_half2x2
- ashalf_half2x2
- asint_half2x2
- inverse_half2x2
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
- inverse (procedure groups)
Related Procedures With Returns
half2x3 ¶
half2x3 :: matrix[2, 3]f16
Related Procedures With Parameters
- asdouble_half2x3
- asfloat_half2x3
- ashalf_half2x3
- asint_half2x3
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
half2x4 ¶
half2x4 :: matrix[2, 4]f16
Related Procedures With Parameters
- asdouble_half2x4
- asfloat_half2x4
- ashalf_half2x4
- asint_half2x4
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
half3x1 ¶
half3x1 :: matrix[3, 1]f16
Related Procedures With Parameters
- asdouble_half3x1
- asfloat_half3x1
- ashalf_half3x1
- asint_half3x1
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
half3x2 ¶
half3x2 :: matrix[3, 2]f16
Related Procedures With Parameters
- asdouble_half3x2
- asfloat_half3x2
- ashalf_half3x2
- asint_half3x2
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
half3x3 ¶
half3x3 :: matrix[3, 3]f16
Related Procedures With Parameters
- asdouble_half3x3
- asfloat_half3x3
- ashalf_half3x3
- asint_half3x3
- inverse_half3x3
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
- inverse (procedure groups)
Related Procedures With Returns
half3x4 ¶
half3x4 :: matrix[3, 4]f16
Related Procedures With Parameters
- asdouble_half3x4
- asfloat_half3x4
- ashalf_half3x4
- asint_half3x4
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
half4x1 ¶
half4x1 :: matrix[4, 1]f16
Related Procedures With Parameters
- asdouble_half4x1
- asfloat_half4x1
- ashalf_half4x1
- asint_half4x1
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
half4x2 ¶
half4x2 :: matrix[4, 2]f16
Related Procedures With Parameters
- asdouble_half4x2
- asfloat_half4x2
- ashalf_half4x2
- asint_half4x2
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
half4x3 ¶
half4x3 :: matrix[4, 3]f16
Related Procedures With Parameters
- asdouble_half4x3
- asfloat_half4x3
- ashalf_half4x3
- asint_half4x3
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
Related Procedures With Returns
half4x4 ¶
half4x4 :: matrix[4, 4]f16
Related Procedures With Parameters
- asdouble_half4x4
- asfloat_half4x4
- ashalf_half4x4
- asint_half4x4
- inverse_half4x4
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
- inverse (procedure groups)
Related Procedures With Returns
int ¶
int :: i32
Related Procedures With Parameters
- abs_int
- asdouble_int
- asfloat_int
- ashalf_int
- asint_int
- asuint_int
- clamp_int
- dot_int
- equal_int
- greaterThanEqual_int
- greaterThan_int
- lessThanEqual_int
- lessThan_int
- matrix_minor
- max_int
- min_int
- notEqual_int
- saturate_int
- sign_int
- abs (procedure groups)
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
- asuint (procedure groups)
- clamp (procedure groups)
- dot (procedure groups)
- equal (procedure groups)
- greaterThan (procedure groups)
- greaterThanEqual (procedure groups)
- lessThan (procedure groups)
- lessThanEqual (procedure groups)
- max (procedure groups)
- min (procedure groups)
- notEqual (procedure groups)
- saturate (procedure groups)
- sign (procedure groups)
Related Procedures With Returns
int1x1 ¶
int1x1 :: matrix[1, 1]i32
Related Procedures With Returns
- asint_double1x1
- asint_float1x1
- asint_half1x1
- asint (procedure groups)
int1x2 ¶
int1x2 :: matrix[1, 2]i32
Related Procedures With Returns
- asint_double1x2
- asint_float1x2
- asint_half1x2
- asint (procedure groups)
int1x3 ¶
int1x3 :: matrix[1, 3]i32
Related Procedures With Returns
- asint_double1x3
- asint_float1x3
- asint_half1x3
- asint (procedure groups)
int1x4 ¶
int1x4 :: matrix[1, 4]i32
Related Procedures With Returns
- asint_double1x4
- asint_float1x4
- asint_half1x4
- asint (procedure groups)
int2 ¶
int2 :: [2]i32
Related Procedures With Parameters
- abs_int2
- asdouble_int2
- asfloat_int2
- ashalf_int2
- asint_int2
- asuint_int2
- clamp_int2
- dot_int2
- equal_int2
- greaterThanEqual_int2
- greaterThan_int2
- lessThanEqual_int2
- lessThan_int2
- max_int2
- min_int2
- notEqual_int2
- saturate_int2
- sign_int2
- abs (procedure groups)
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
- asuint (procedure groups)
- clamp (procedure groups)
- dot (procedure groups)
- equal (procedure groups)
- greaterThan (procedure groups)
- greaterThanEqual (procedure groups)
- lessThan (procedure groups)
- lessThanEqual (procedure groups)
- max (procedure groups)
- min (procedure groups)
- notEqual (procedure groups)
- saturate (procedure groups)
- sign (procedure groups)
Related Procedures With Returns
int2x1 ¶
int2x1 :: matrix[2, 1]i32
Related Procedures With Returns
- asint_double2x1
- asint_float2x1
- asint_half2x1
- asint (procedure groups)
int2x2 ¶
int2x2 :: matrix[2, 2]i32
Related Procedures With Returns
- asint_double2x2
- asint_float2x2
- asint_half2x2
- asint (procedure groups)
int2x3 ¶
int2x3 :: matrix[2, 3]i32
Related Procedures With Returns
- asint_double2x3
- asint_float2x3
- asint_half2x3
- asint (procedure groups)
int2x4 ¶
int2x4 :: matrix[2, 4]i32
Related Procedures With Returns
- asint_double2x4
- asint_float2x4
- asint_half2x4
- asint (procedure groups)
int3 ¶
int3 :: [3]i32
Related Procedures With Parameters
- abs_int3
- asdouble_int3
- asfloat_int3
- ashalf_int3
- asint_int3
- asuint_int3
- clamp_int3
- cross_int3
- dot_int3
- equal_int3
- greaterThanEqual_int3
- greaterThan_int3
- lessThanEqual_int3
- lessThan_int3
- max_int3
- min_int3
- notEqual_int3
- saturate_int3
- scalarTripleProduct_int3
- sign_int3
- vectorTripleProduct_int3
- abs (procedure groups)
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
- asuint (procedure groups)
- clamp (procedure groups)
- cross (procedure groups)
- dot (procedure groups)
- equal (procedure groups)
- greaterThan (procedure groups)
- greaterThanEqual (procedure groups)
- lessThan (procedure groups)
- lessThanEqual (procedure groups)
- max (procedure groups)
- min (procedure groups)
- notEqual (procedure groups)
- saturate (procedure groups)
- scalarTripleProduct (procedure groups)
- sign (procedure groups)
- vectorTripleProduct (procedure groups)
Related Procedures With Returns
int3x1 ¶
int3x1 :: matrix[3, 1]i32
Related Procedures With Returns
- asint_double3x1
- asint_float3x1
- asint_half3x1
- asint (procedure groups)
int3x2 ¶
int3x2 :: matrix[3, 2]i32
Related Procedures With Returns
- asint_double3x2
- asint_float3x2
- asint_half3x2
- asint (procedure groups)
int3x3 ¶
int3x3 :: matrix[3, 3]i32
Related Procedures With Returns
- asint_double3x3
- asint_float3x3
- asint_half3x3
- asint (procedure groups)
int3x4 ¶
int3x4 :: matrix[3, 4]i32
Related Procedures With Returns
- asint_double3x4
- asint_float3x4
- asint_half3x4
- asint (procedure groups)
int4 ¶
int4 :: [4]i32
Related Procedures With Parameters
- abs_int4
- asdouble_int4
- asfloat_int4
- ashalf_int4
- asint_int4
- asuint_int4
- clamp_int4
- dot_int4
- equal_int4
- greaterThanEqual_int4
- greaterThan_int4
- lessThanEqual_int4
- lessThan_int4
- max_int4
- min_int4
- notEqual_int4
- saturate_int4
- sign_int4
- abs (procedure groups)
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
- asuint (procedure groups)
- clamp (procedure groups)
- dot (procedure groups)
- equal (procedure groups)
- greaterThan (procedure groups)
- greaterThanEqual (procedure groups)
- lessThan (procedure groups)
- lessThanEqual (procedure groups)
- max (procedure groups)
- min (procedure groups)
- notEqual (procedure groups)
- saturate (procedure groups)
- sign (procedure groups)
Related Procedures With Returns
int4x1 ¶
int4x1 :: matrix[4, 1]i32
Related Procedures With Returns
- asint_double4x1
- asint_float4x1
- asint_half4x1
- asint (procedure groups)
int4x2 ¶
int4x2 :: matrix[4, 2]i32
Related Procedures With Returns
- asint_double4x2
- asint_float4x2
- asint_half4x2
- asint (procedure groups)
int4x3 ¶
int4x3 :: matrix[4, 3]i32
Related Procedures With Returns
- asint_double4x3
- asint_float4x3
- asint_half4x3
- asint (procedure groups)
int4x4 ¶
int4x4 :: matrix[4, 4]i32
Related Procedures With Returns
- asint_double4x4
- asint_float4x4
- asint_half4x4
- asint (procedure groups)
uint ¶
uint :: u32
Related Procedures With Parameters
- abs_uint
- asdouble_uint
- asfloat_uint
- ashalf_uint
- asint_uint
- asuint_uint
- clamp_uint
- dot_uint
- equal_uint
- greaterThanEqual_uint
- greaterThan_uint
- lessThanEqual_uint
- lessThan_uint
- max_uint
- min_uint
- notEqual_uint
- saturate_uint
- sign_uint
- abs (procedure groups)
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
- asuint (procedure groups)
- clamp (procedure groups)
- dot (procedure groups)
- equal (procedure groups)
- greaterThan (procedure groups)
- greaterThanEqual (procedure groups)
- lessThan (procedure groups)
- lessThanEqual (procedure groups)
- max (procedure groups)
- min (procedure groups)
- notEqual (procedure groups)
- saturate (procedure groups)
- sign (procedure groups)
Related Procedures With Returns
uint2 ¶
uint2 :: [2]u32
Related Procedures With Parameters
- abs_uint2
- asdouble_uint2
- asfloat_uint2
- ashalf_uint2
- asint_uint2
- asuint_uint2
- clamp_uint2
- dot_uint2
- equal_uint2
- greaterThanEqual_uint2
- greaterThan_uint2
- lessThanEqual_uint2
- lessThan_uint2
- max_uint2
- min_uint2
- notEqual_uint2
- saturate_uint2
- sign_uint2
- abs (procedure groups)
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
- asuint (procedure groups)
- clamp (procedure groups)
- dot (procedure groups)
- equal (procedure groups)
- greaterThan (procedure groups)
- greaterThanEqual (procedure groups)
- lessThan (procedure groups)
- lessThanEqual (procedure groups)
- max (procedure groups)
- min (procedure groups)
- notEqual (procedure groups)
- saturate (procedure groups)
- sign (procedure groups)
Related Procedures With Returns
uint3 ¶
uint3 :: [3]u32
Related Procedures With Parameters
- abs_uint3
- asdouble_uint3
- asfloat_uint3
- ashalf_uint3
- asint_uint3
- asuint_uint3
- clamp_uint3
- dot_uint3
- equal_uint3
- greaterThanEqual_uint3
- greaterThan_uint3
- lessThanEqual_uint3
- lessThan_uint3
- max_uint3
- min_uint3
- notEqual_uint3
- saturate_uint3
- sign_uint3
- abs (procedure groups)
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
- asuint (procedure groups)
- clamp (procedure groups)
- dot (procedure groups)
- equal (procedure groups)
- greaterThan (procedure groups)
- greaterThanEqual (procedure groups)
- lessThan (procedure groups)
- lessThanEqual (procedure groups)
- max (procedure groups)
- min (procedure groups)
- notEqual (procedure groups)
- saturate (procedure groups)
- sign (procedure groups)
Related Procedures With Returns
uint4 ¶
uint4 :: [4]u32
Related Procedures With Parameters
- abs_uint4
- asdouble_uint4
- asfloat_uint4
- ashalf_uint4
- asint_uint4
- asuint_uint4
- clamp_uint4
- dot_uint4
- equal_uint4
- greaterThanEqual_uint4
- greaterThan_uint4
- lessThanEqual_uint4
- lessThan_uint4
- max_uint4
- min_uint4
- notEqual_uint4
- saturate_uint4
- sign_uint4
- abs (procedure groups)
- asdouble (procedure groups)
- asfloat (procedure groups)
- ashalf (procedure groups)
- asint (procedure groups)
- asuint (procedure groups)
- clamp (procedure groups)
- dot (procedure groups)
- equal (procedure groups)
- greaterThan (procedure groups)
- greaterThanEqual (procedure groups)
- lessThan (procedure groups)
- lessThanEqual (procedure groups)
- max (procedure groups)
- min (procedure groups)
- notEqual (procedure groups)
- saturate (procedure groups)
- sign (procedure groups)
Related Procedures With Returns
Constants
DOUBLE_EPSILON ¶
DOUBLE_EPSILON :: 1e-15
E ¶
E :: 2.71828182845904523536
FLOAT_EPSILON ¶
FLOAT_EPSILON :: 1e-7
LN10 ¶
LN10 :: 2.30258509299404568401799145468436421
LN2 ¶
LN2 :: 0.693147180559945309417232121458176568
PI ¶
PI :: 3.14159265358979323846264338327950288
SQRT_FIVE ¶
SQRT_FIVE :: 2.23606797749978969640917366873127623
SQRT_THREE ¶
SQRT_THREE :: 1.73205080756887729352744634150587236
SQRT_TWO ¶
SQRT_TWO :: 1.41421356237309504880168872420969808
TAU ¶
TAU :: 6.28318530717958647692528676655900576
π ¶
π :: PI
τ ¶
τ :: TAU
Variables
This section is empty.
Procedures
adjugate_matrix1x1 ¶
@(require_results) adjugate_matrix1x1 :: proc "contextless" (x: $M/matrix[1, 1]$T) -> (y: M) {…}
adjugate_matrix2x2 ¶
@(require_results) adjugate_matrix2x2 :: proc "contextless" (x: $M/matrix[2, 2]$T) -> (y: M) {…}
adjugate_matrix3x3 ¶
@(require_results) adjugate_matrix3x3 :: proc "contextless" (m: $M/matrix[3, 3]$T) -> (y: M) {…}
adjugate_matrix4x4 ¶
@(require_results) adjugate_matrix4x4 :: proc "contextless" (x: $M/matrix[4, 4]$T) -> (y: M) {…}
cofactor_matrix1x1 ¶
@(require_results) cofactor_matrix1x1 :: proc "contextless" (x: $M/matrix[1, 1]$T) -> (y: M) {…}
cofactor_matrix2x2 ¶
@(require_results) cofactor_matrix2x2 :: proc "contextless" (x: $M/matrix[2, 2]$T) -> (y: M) {…}
cofactor_matrix3x3 ¶
@(require_results) cofactor_matrix3x3 :: proc "contextless" (m: $M/matrix[3, 3]$T) -> (y: M) {…}
cofactor_matrix4x4 ¶
@(require_results) cofactor_matrix4x4 :: proc "contextless" (x: $M/matrix[4, 4]$T) -> (y: M) {…}
determinant_matrix1x1 ¶
@(require_results) determinant_matrix1x1 :: proc "contextless" (m: $M/matrix[1, 1]$T) -> (det: T) {…}
determinant_matrix2x2 ¶
@(require_results) determinant_matrix2x2 :: proc "contextless" (m: $M/matrix[2, 2]$T) -> (det: T) {…}
determinant_matrix3x3 ¶
@(require_results) determinant_matrix3x3 :: proc "contextless" (m: $M/matrix[3, 3]$T) -> (det: T) {…}
determinant_matrix4x4 ¶
@(require_results) determinant_matrix4x4 :: proc "contextless" (m: $M/matrix[4, 4]$T) -> (det: T) {…}
hermitian_adjoint ¶
@(require_results) hermitian_adjoint :: proc "contextless" (m: $M/matrix[0, 0]$T) -> M {…}
inverse_matrix1x1 ¶
@(require_results) inverse_matrix1x1 :: proc "contextless" (x: $M/matrix[1, 1]$T) -> (y: M) {…}
inverse_matrix2x2 ¶
@(require_results) inverse_matrix2x2 :: proc "contextless" (x: $M/matrix[2, 2]$T) -> (y: M) {…}
inverse_matrix3x3 ¶
@(require_results) inverse_matrix3x3 :: proc "contextless" (x: $M/matrix[3, 3]$T) -> (y: M) {…}
inverse_matrix4x4 ¶
@(require_results) inverse_matrix4x4 :: proc "contextless" (x: $M/matrix[4, 4]$T) -> (y: M) {…}
inverse_transpose_matrix1x1 ¶
@(require_results) inverse_transpose_matrix1x1 :: proc "contextless" (x: $M/matrix[1, 1]$T) -> (y: M) {…}
inverse_transpose_matrix2x2 ¶
@(require_results) inverse_transpose_matrix2x2 :: proc "contextless" (x: $M/matrix[2, 2]$T) -> (y: M) {…}
inverse_transpose_matrix3x3 ¶
@(require_results) inverse_transpose_matrix3x3 :: proc "contextless" (x: $M/matrix[3, 3]$T) -> (y: M) {…}
inverse_transpose_matrix4x4 ¶
@(require_results) inverse_transpose_matrix4x4 :: proc "contextless" (x: $M/matrix[4, 4]$T) -> (y: M) {…}
matrix_minor ¶
@(require_results) matrix_minor :: proc "contextless" ( m: $M/matrix[0, 0]$T, #any_int row, #any_int column: i32, ) -> (minor: T) {…}
trace ¶
@(require_results) trace :: proc "contextless" (m: $M/matrix[0, 0]$T) -> (trace: T) {…}
transpose ¶
transpose :: intrinsics.transpose
transpose :: proc(m: $M/matrix[$R, $C]$E) -> matrix[C, R]E {…}
Procedure Groups
abs ¶
abs :: proc{ abs_int, abs_uint, abs_half, abs_float, abs_double, abs_half2, abs_half3, abs_half4, abs_float2, abs_float3, abs_float4, abs_double2, abs_double3, abs_double4, abs_int2, abs_int3, abs_int4, abs_uint2, abs_uint3, abs_uint4, }
acos ¶
acos :: proc{ acos_half, acos_float, acos_double, acos_half2, acos_half3, acos_half4, acos_float2, acos_float3, acos_float4, acos_double2, acos_double3, acos_double4, }
acosh ¶
acosh :: proc{ acosh_half, acosh_float, acosh_double, acosh_half2, acosh_half3, acosh_half4, acosh_float2, acosh_float3, acosh_float4, acosh_double2, acosh_double3, acosh_double4, }
adjugate ¶
adjugate :: proc{ adjugate_matrix1x1, adjugate_matrix2x2, adjugate_matrix3x3, adjugate_matrix4x4, }
asdouble ¶
asdouble :: proc{ asdouble_half, asdouble_float, asdouble_double, asdouble_int, asdouble_uint, asdouble_half1x1, asdouble_half2x2, asdouble_half3x3, asdouble_half4x4, asdouble_half1x2, asdouble_half1x3, asdouble_half1x4, asdouble_half2x1, asdouble_half2x3, asdouble_half2x4, asdouble_half3x1, asdouble_half3x2, asdouble_half3x4, asdouble_half4x1, asdouble_half4x2, asdouble_half4x3, asdouble_half2, asdouble_half3, asdouble_half4, asdouble_float1x1, asdouble_float2x2, asdouble_float3x3, asdouble_float4x4, asdouble_float1x2, asdouble_float1x3, asdouble_float1x4, asdouble_float2x1, asdouble_float2x3, asdouble_float2x4, asdouble_float3x1, asdouble_float3x2, asdouble_float3x4, asdouble_float4x1, asdouble_float4x2, asdouble_float4x3, asdouble_float2, asdouble_float3, asdouble_float4, asdouble_int2, asdouble_int3, asdouble_int4, asdouble_uint2, asdouble_uint3, asdouble_uint4, asdouble_bool2, asdouble_bool3, asdouble_bool4, asdouble_double1x1, asdouble_double2x2, asdouble_double3x3, asdouble_double4x4, asdouble_double1x2, asdouble_double1x3, asdouble_double1x4, asdouble_double2x1, asdouble_double2x3, asdouble_double2x4, asdouble_double3x1, asdouble_double3x2, asdouble_double3x4, asdouble_double4x1, asdouble_double4x2, asdouble_double4x3, asdouble_double2, asdouble_double3, asdouble_double4, }
asfloat ¶
asfloat :: proc{ asfloat_half, asfloat_float, asfloat_double, asfloat_int, asfloat_uint, asfloat_half1x1, asfloat_half2x2, asfloat_half3x3, asfloat_half4x4, asfloat_half1x2, asfloat_half1x3, asfloat_half1x4, asfloat_half2x1, asfloat_half2x3, asfloat_half2x4, asfloat_half3x1, asfloat_half3x2, asfloat_half3x4, asfloat_half4x1, asfloat_half4x2, asfloat_half4x3, asfloat_half2, asfloat_half3, asfloat_half4, asfloat_float1x1, asfloat_float2x2, asfloat_float3x3, asfloat_float4x4, asfloat_float1x2, asfloat_float1x3, asfloat_float1x4, asfloat_float2x1, asfloat_float2x3, asfloat_float2x4, asfloat_float3x1, asfloat_float3x2, asfloat_float3x4, asfloat_float4x1, asfloat_float4x2, asfloat_float4x3, asfloat_float2, asfloat_float3, asfloat_float4, asfloat_int2, asfloat_int3, asfloat_int4, asfloat_uint2, asfloat_uint3, asfloat_uint4, asfloat_bool2, asfloat_bool3, asfloat_bool4, asfloat_double1x1, asfloat_double2x2, asfloat_double3x3, asfloat_double4x4, asfloat_double1x2, asfloat_double1x3, asfloat_double1x4, asfloat_double2x1, asfloat_double2x3, asfloat_double2x4, asfloat_double3x1, asfloat_double3x2, asfloat_double3x4, asfloat_double4x1, asfloat_double4x2, asfloat_double4x3, asfloat_double2, asfloat_double3, asfloat_double4, }
ashalf ¶
ashalf :: proc{ ashalf_half, ashalf_float, ashalf_double, ashalf_int, ashalf_uint, ashalf_half1x1, ashalf_half2x2, ashalf_half3x3, ashalf_half4x4, ashalf_half1x2, ashalf_half1x3, ashalf_half1x4, ashalf_half2x1, ashalf_half2x3, ashalf_half2x4, ashalf_half3x1, ashalf_half3x2, ashalf_half3x4, ashalf_half4x1, ashalf_half4x2, ashalf_half4x3, ashalf_half2, ashalf_half3, ashalf_half4, ashalf_float1x1, ashalf_float2x2, ashalf_float3x3, ashalf_float4x4, ashalf_float1x2, ashalf_float1x3, ashalf_float1x4, ashalf_float2x1, ashalf_float2x3, ashalf_float2x4, ashalf_float3x1, ashalf_float3x2, ashalf_float3x4, ashalf_float4x1, ashalf_float4x2, ashalf_float4x3, ashalf_float2, ashalf_float3, ashalf_float4, ashalf_int2, ashalf_int3, ashalf_int4, ashalf_uint2, ashalf_uint3, ashalf_uint4, ashalf_bool2, ashalf_bool3, ashalf_bool4, ashalf_double1x1, ashalf_double2x2, ashalf_double3x3, ashalf_double4x4, ashalf_double1x2, ashalf_double1x3, ashalf_double1x4, ashalf_double2x1, ashalf_double2x3, ashalf_double2x4, ashalf_double3x1, ashalf_double3x2, ashalf_double3x4, ashalf_double4x1, ashalf_double4x2, ashalf_double4x3, ashalf_double2, ashalf_double3, ashalf_double4, }
asin ¶
asin :: proc{ asin_half, asin_float, asin_double, asin_half2, asin_half3, asin_half4, asin_float2, asin_float3, asin_float4, asin_double2, asin_double3, asin_double4, }
asinh ¶
asinh :: proc{ asinh_half, asinh_float, asinh_double, asinh_half2, asinh_half3, asinh_half4, asinh_float2, asinh_float3, asinh_float4, asinh_double2, asinh_double3, asinh_double4, }
asint ¶
asint :: proc{ asint_half, asint_float, asint_double, asint_int, asint_uint, asint_half1x1, asint_half2x2, asint_half3x3, asint_half4x4, asint_half1x2, asint_half1x3, asint_half1x4, asint_half2x1, asint_half2x3, asint_half2x4, asint_half3x1, asint_half3x2, asint_half3x4, asint_half4x1, asint_half4x2, asint_half4x3, asint_half2, asint_half3, asint_half4, asint_float1x1, asint_float2x2, asint_float3x3, asint_float4x4, asint_float1x2, asint_float1x3, asint_float1x4, asint_float2x1, asint_float2x3, asint_float2x4, asint_float3x1, asint_float3x2, asint_float3x4, asint_float4x1, asint_float4x2, asint_float4x3, asint_float2, asint_float3, asint_float4, asint_int2, asint_int3, asint_int4, asint_uint2, asint_uint3, asint_uint4, asint_bool2, asint_bool3, asint_bool4, asint_double1x1, asint_double2x2, asint_double3x3, asint_double4x4, asint_double1x2, asint_double1x3, asint_double1x4, asint_double2x1, asint_double2x3, asint_double2x4, asint_double3x1, asint_double3x2, asint_double3x4, asint_double4x1, asint_double4x2, asint_double4x3, asint_double2, asint_double3, asint_double4, }
asuint ¶
asuint :: proc{ asuint_half, asuint_float, asuint_double, asuint_int, asuint_uint, asuint_half2, asuint_half3, asuint_half4, asuint_float2, asuint_float3, asuint_float4, asuint_int2, asuint_int3, asuint_int4, asuint_uint2, asuint_uint3, asuint_uint4, asuint_bool2, asuint_bool3, asuint_bool4, asuint_double2, asuint_double3, asuint_double4, }
atan2 ¶
atan2 :: proc{ atan2_half, atan2_float, atan2_double, atan2_half2, atan2_half3, atan2_half4, atan2_float2, atan2_float3, atan2_float4, atan2_double2, atan2_double3, atan2_double4, }
atanh ¶
atanh :: proc{ atanh_half, atanh_float, atanh_double, atanh_half2, atanh_half3, atanh_half4, atanh_float2, atanh_float3, atanh_float4, atanh_double2, atanh_double3, atanh_double4, }
ceil ¶
ceil :: proc{ ceil_half, ceil_float, ceil_double, ceil_half2, ceil_half3, ceil_half4, ceil_float2, ceil_float3, ceil_float4, ceil_double2, ceil_double3, ceil_double4, }
clamp ¶
clamp :: proc{ clamp_int, clamp_uint, clamp_half, clamp_float, clamp_double, clamp_half2, clamp_half3, clamp_half4, clamp_float2, clamp_float3, clamp_float4, clamp_double2, clamp_double3, clamp_double4, clamp_int2, clamp_int3, clamp_int4, clamp_uint2, clamp_uint3, clamp_uint4, }
cofactor ¶
cofactor :: proc{ cofactor_matrix1x1, cofactor_matrix2x2, cofactor_matrix3x3, cofactor_matrix4x4, }
cos ¶
cos :: proc{ cos_half, cos_float, cos_double, cos_half2, cos_half3, cos_half4, cos_float2, cos_float3, cos_float4, cos_double2, cos_double3, cos_double4, }
cosh ¶
cosh :: proc{ cosh_half, cosh_float, cosh_double, cosh_half2, cosh_half3, cosh_half4, cosh_float2, cosh_float3, cosh_float4, cosh_double2, cosh_double3, cosh_double4, }
cross ¶
cross :: proc{ cross_half3, cross_float3, cross_double3, cross_int3, }
degrees ¶
degrees :: proc{ degrees_half, degrees_float, degrees_double, degrees_half2, degrees_half3, degrees_half4, degrees_float2, degrees_float3, degrees_float4, degrees_double2, degrees_double3, degrees_double4, }
determinant ¶
determinant :: proc{ determinant_matrix1x1, determinant_matrix2x2, determinant_matrix3x3, determinant_matrix4x4, }
dot ¶
dot :: proc{ dot_int, dot_uint, dot_half, dot_float, dot_double, dot_half2, dot_half3, dot_half4, dot_float2, dot_float3, dot_float4, dot_double2, dot_double3, dot_double4, dot_int2, dot_int3, dot_int4, dot_uint2, dot_uint3, dot_uint4, }
equal ¶
equal :: proc{ equal_half, equal_float, equal_double, equal_int, equal_uint, equal_half2, equal_float2, equal_double2, equal_int2, equal_uint2, equal_half3, equal_float3, equal_double3, equal_int3, equal_uint3, equal_half4, equal_float4, equal_double4, equal_int4, equal_uint4, }
exp ¶
exp :: proc{ exp_half, exp_float, exp_double, exp_half2, exp_half3, exp_half4, exp_float2, exp_float3, exp_float4, exp_double2, exp_double3, exp_double4, }
exp2 ¶
exp2 :: proc{ exp2_half, exp2_float, exp2_double, exp2_half2, exp2_half3, exp2_half4, exp2_float2, exp2_float3, exp2_float4, exp2_double2, exp2_double3, exp2_double4, }
floor ¶
floor :: proc{ floor_half, floor_float, floor_double, floor_half2, floor_half3, floor_half4, floor_float2, floor_float3, floor_float4, floor_double2, floor_double3, floor_double4, }
fmod ¶
fmod :: proc{ fmod_half, fmod_float, fmod_double, fmod_half2, fmod_half3, fmod_half4, fmod_float2, fmod_float3, fmod_float4, fmod_double2, fmod_double3, fmod_double4, }
frac ¶
frac :: proc{ frac_half, frac_float, frac_double, frac_half2, frac_half3, frac_half4, frac_float2, frac_float3, frac_float4, frac_double2, frac_double3, frac_double4, }
greaterThan ¶
greaterThan :: proc{ greaterThan_half, greaterThan_float, greaterThan_double, greaterThan_int, greaterThan_uint, greaterThan_half2, greaterThan_float2, greaterThan_double2, greaterThan_int2, greaterThan_uint2, greaterThan_half3, greaterThan_float3, greaterThan_double3, greaterThan_int3, greaterThan_uint3, greaterThan_half4, greaterThan_float4, greaterThan_double4, greaterThan_int4, greaterThan_uint4, }
greaterThanEqual ¶
greaterThanEqual :: proc{ greaterThanEqual_half, greaterThanEqual_float, greaterThanEqual_double, greaterThanEqual_int, greaterThanEqual_uint, greaterThanEqual_half2, greaterThanEqual_float2, greaterThanEqual_double2, greaterThanEqual_int2, greaterThanEqual_uint2, greaterThanEqual_half3, greaterThanEqual_float3, greaterThanEqual_double3, greaterThanEqual_int3, greaterThanEqual_uint3, greaterThanEqual_half4, greaterThanEqual_float4, greaterThanEqual_double4, greaterThanEqual_int4, greaterThanEqual_uint4, }
inverse ¶
inverse :: proc{ inverse_half1x1, inverse_half2x2, inverse_half3x3, inverse_half4x4, inverse_float1x1, inverse_float2x2, inverse_float3x3, inverse_float4x4, inverse_double1x1, inverse_double2x2, inverse_double3x3, inverse_double4x4, inverse_matrix1x1, inverse_matrix2x2, inverse_matrix3x3, inverse_matrix4x4, }
inverse_transpose ¶
inverse_transpose :: proc{ inverse_transpose_matrix1x1, inverse_transpose_matrix2x2, inverse_transpose_matrix3x3, inverse_transpose_matrix4x4, }
isfinite ¶
isfinite :: proc{ isfinite_half, isfinite_half2, isfinite_half3, isfinite_half4, isfinite_float, isfinite_float2, isfinite_float3, isfinite_float4, isfinite_double, isfinite_double2, isfinite_double3, isfinite_double4, }
isfinite is the opposite of isinf and returns true if the number is neither positive-infinite or negative-infinite
isinf ¶
isinf :: proc{ isinf_half, isinf_half2, isinf_half3, isinf_half4, isinf_float, isinf_float2, isinf_float3, isinf_float4, isinf_double, isinf_double2, isinf_double3, isinf_double4, }
isinf is the opposite of isfinite and returns true if the number is either positive-infinite or negative-infinite
isnan ¶
isnan :: proc{ isnan_half, isnan_half2, isnan_half3, isnan_half4, isnan_float, isnan_float2, isnan_float3, isnan_float4, isnan_double, isnan_double2, isnan_double3, isnan_double4, }
isnan returns true if the input value is the special case of Not-A-Number
length ¶
length :: proc{ length_half, length_float, length_double, length_half2, length_half3, length_half4, length_float2, length_float3, length_float4, length_double2, length_double3, length_double4, }
lerp ¶
lerp :: proc{ lerp_half, lerp_float, lerp_double, lerp_half2, lerp_half3, lerp_half4, lerp_float2, lerp_float3, lerp_float4, lerp_double2, lerp_double3, lerp_double4, }
lessThan ¶
lessThan :: proc{ lessThan_half, lessThan_float, lessThan_double, lessThan_int, lessThan_uint, lessThan_half2, lessThan_float2, lessThan_double2, lessThan_int2, lessThan_uint2, lessThan_half3, lessThan_float3, lessThan_double3, lessThan_int3, lessThan_uint3, lessThan_half4, lessThan_float4, lessThan_double4, lessThan_int4, lessThan_uint4, }
lessThanEqual ¶
lessThanEqual :: proc{ lessThanEqual_half, lessThanEqual_float, lessThanEqual_double, lessThanEqual_int, lessThanEqual_uint, lessThanEqual_half2, lessThanEqual_float2, lessThanEqual_double2, lessThanEqual_int2, lessThanEqual_uint2, lessThanEqual_half3, lessThanEqual_float3, lessThanEqual_double3, lessThanEqual_int3, lessThanEqual_uint3, lessThanEqual_half4, lessThanEqual_float4, lessThanEqual_double4, lessThanEqual_int4, lessThanEqual_uint4, }
log ¶
log :: proc{ log_half, log_float, log_double, log_half2, log_half3, log_half4, log_float2, log_float3, log_float4, log_double2, log_double3, log_double4, }
log10 ¶
log10 :: proc{ log10_half, log10_float, log10_double, log10_half2, log10_half3, log10_half4, log10_float2, log10_float3, log10_float4, log10_double2, log10_double3, log10_double4, }
log2 ¶
log2 :: proc{ log2_half, log2_float, log2_double, log2_half2, log2_half3, log2_half4, log2_float2, log2_float3, log2_float4, log2_double2, log2_double3, log2_double4, }
max ¶
max :: proc{ max_int, max_uint, max_half, max_float, max_double, max_half2, max_half3, max_half4, max_float2, max_float3, max_float4, max_double2, max_double3, max_double4, max_int2, max_int3, max_int4, max_uint2, max_uint3, max_uint4, }
min ¶
min :: proc{ min_half, min_int, min_uint, min_float, min_double, min_half2, min_half3, min_half4, min_float2, min_float3, min_float4, min_double2, min_double3, min_double4, min_int2, min_int3, min_int4, min_uint2, min_uint3, min_uint4, }
notEqual ¶
notEqual :: proc{ notEqual_half, notEqual_float, notEqual_double, notEqual_int, notEqual_uint, notEqual_half2, notEqual_float2, notEqual_double2, notEqual_int2, notEqual_uint2, notEqual_half3, notEqual_float3, notEqual_double3, notEqual_int3, notEqual_uint3, notEqual_half4, notEqual_float4, notEqual_double4, notEqual_int4, notEqual_uint4, }
pow ¶
pow :: proc{ pow_half, pow_float, pow_double, pow_half2, pow_half3, pow_half4, pow_float2, pow_float3, pow_float4, pow_double2, pow_double3, pow_double4, }
radians ¶
radians :: proc{ radians_half, radians_float, radians_double, radians_half2, radians_half3, radians_half4, radians_float2, radians_float3, radians_float4, radians_double2, radians_double3, radians_double4, }
rcp ¶
rcp :: proc{ rcp_half, rcp_float, rcp_double, rcp_half2, rcp_half3, rcp_half4, rcp_float2, rcp_float3, rcp_float4, rcp_double2, rcp_double3, rcp_double4, }
reflect ¶
reflect :: proc{ reflect_half, reflect_float, reflect_double, reflect_half2, reflect_half3, reflect_half4, reflect_float2, reflect_float3, reflect_float4, reflect_double2, reflect_double3, reflect_double4, }
refract ¶
refract :: proc{ refract_half, refract_float, refract_double, refract_half2, refract_half3, refract_half4, refract_float2, refract_float3, refract_float4, refract_double2, refract_double3, refract_double4, }
round ¶
round :: proc{ round_half, round_float, round_double, round_half2, round_half3, round_half4, round_float2, round_float3, round_float4, round_double2, round_double3, round_double4, }
rsqrt ¶
rsqrt :: proc{ rsqrt_half, rsqrt_float, rsqrt_double, rsqrt_half2, rsqrt_half3, rsqrt_half4, rsqrt_float2, rsqrt_float3, rsqrt_float4, rsqrt_double2, rsqrt_double3, rsqrt_double4, }
saturate ¶
saturate :: proc{ saturate_int, saturate_uint, saturate_half, saturate_float, saturate_double, saturate_half2, saturate_half3, saturate_half4, saturate_float2, saturate_float3, saturate_float4, saturate_double2, saturate_double3, saturate_double4, saturate_int2, saturate_int3, saturate_int4, saturate_uint2, saturate_uint3, saturate_uint4, }
scalarTripleProduct ¶
scalarTripleProduct :: proc{ scalarTripleProduct_half3, scalarTripleProduct_float3, scalarTripleProduct_double3, scalarTripleProduct_int3, }
sign ¶
sign :: proc{ sign_half, sign_int, sign_uint, sign_float, sign_double, sign_half2, sign_half3, sign_half4, sign_float2, sign_float3, sign_float4, sign_double2, sign_double3, sign_double4, sign_int2, sign_int3, sign_int4, sign_uint2, sign_uint3, sign_uint4, }
sin ¶
sin :: proc{ sin_half, sin_float, sin_double, sin_half2, sin_half3, sin_half4, sin_float2, sin_float3, sin_float4, sin_double2, sin_double3, sin_double4, }
sinh ¶
sinh :: proc{ sinh_half, sinh_float, sinh_double, sinh_half2, sinh_half3, sinh_half4, sinh_float2, sinh_float3, sinh_float4, sinh_double2, sinh_double3, sinh_double4, }
sqrt ¶
sqrt :: proc{ sqrt_half, sqrt_float, sqrt_double, sqrt_half2, sqrt_half3, sqrt_half4, sqrt_float2, sqrt_float3, sqrt_float4, sqrt_double2, sqrt_double3, sqrt_double4, }
step ¶
step :: proc{ step_half, step_float, step_double, step_half2, step_half3, step_half4, step_float2, step_float3, step_float4, step_double2, step_double3, step_double4, }
tan ¶
tan :: proc{ tan_half, tan_float, tan_double, tan_half2, tan_half3, tan_half4, tan_float2, tan_float3, tan_float4, tan_double2, tan_double3, tan_double4, }
tanh ¶
tanh :: proc{ tanh_half, tanh_float, tanh_double, tanh_half2, tanh_half3, tanh_half4, tanh_float2, tanh_float3, tanh_float4, tanh_double2, tanh_double3, tanh_double4, }
vectorTripleProduct ¶
vectorTripleProduct :: proc{ vectorTripleProduct_half3, vectorTripleProduct_float3, vectorTripleProduct_double3, vectorTripleProduct_int3, }
Source Files
Generation Information
Generated with odin version dev-2026-10 (vendor "odin") Windows_amd64 @ 2026-10-10 00:25:51.511820200 +0000 UTC