Created
June 1, 2022 04:48
-
-
Save ynagatomo/695f5f8c8392d133642405d7364c67dc to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import simd | |
// Initializers | |
simd_float2x3() | |
simd_float2x3(1) | |
simd_float2x2(diagonal: SIMD2<Float>.one * 2) | |
simd_float2x3([SIMD3<Float>(1, 2, 3), SIMD3<Float>(4, 5, 6)]) | |
simd_float2x3(SIMD3<Float>(1, 2, 3), SIMD3<Float>(4, 5, 6)) | |
simd_float2x3(columns: (simd_float3.zero, simd_float3.one)) | |
simd_float2x3(rows: [SIMD2<Float>.zero, SIMD2<Float>.one, SIMD2<Float>.zero]) | |
simd_float3x3(simd_quatf()) // from a quarternion | |
// Matrix Constants | |
matrix_identity_float3x3 // Global Variable | |
// Matrix Properties | |
simd_float3x3(1).determinant | |
simd_float3x3(1).inverse | |
simd_float3x3(1).transpose | |
simd_float3x3(1).columns.0 | |
simd_float3x3(1).debugDescription | |
// Matrix Creation Functions | |
simd_matrix(simd_float2(1, 2), simd_float2(3, 4)) // columns | |
simd_matrix_from_rows(simd_float2(1, 2), simd_float2(3, 4)) // rows | |
matrix_from_rows(SIMD2<Float>(1, 2), SIMD2<Float>(3, 4)) // rows | |
simd_diagonal_matrix(simd_float2(1, 2)) | |
simd_matrix3x3(simd_quatf()) // from a quarternion | |
// Math Functions | |
simd_add(simd_float3x3(1), simd_float3x3(2)) | |
simd_sub(simd_float3x3(2), simd_float3x3(1)) | |
matrix_scale(2, simd_float3x3(1)) | |
// Matrix-Scalar Multiplication Functions | |
simd_mul(2, simd_float3x3(1)) | |
// Matrix-Vector Multiplication Functions | |
simd_mul(simd_float2(1, 2), simd_float2x2(simd_float2(1, 2), simd_float2(3, 4))) | |
matrix_multiply(simd_float2(1, 2), simd_float2x2(simd_float2(1, 2), simd_float2(3, 4))) | |
simd_mul(simd_float2x2(simd_float2(1, 2), simd_float2(3, 4)), simd_float2(1, 2)) | |
matrix_multiply(simd_float2x2(simd_float2(1, 2), simd_float2(3, 4)), simd_float2(1, 2)) | |
// Matrix-Matrix Multiplication Functions | |
simd_mul(simd_float2x3(simd_float3(1, 2, 3), simd_float3(4, 5, 6)), simd_float3x2(simd_float2(1, 2), simd_float2(3, 4), simd_float2(5, 6))) | |
// Equality Functions | |
simd_equal(simd_float3x3(1), simd_float3x3(1)) | |
simd_almost_equal_elements(simd_float3x3(1), simd_float3x3(1.09), 0.1) // x, y, tolerance | |
simd_almost_equal_elements(simd_float3x3(1), simd_float3x3(0.91), 0.1) // x, y, tolerance | |
simd_almost_equal_elements_relative(simd_float3x3(1), simd_float3x3(0.91), 0.1) // x, y, tol | |
// Determinant and Inverse Functions | |
simd_determinant(simd_float2x2(simd_float2(1, 2), simd_float2(3, 4))) | |
simd_inverse(simd_float2x2(simd_float2(1, 2), simd_float2(3, 4))) | |
// Linear Combination Function | |
simd_linear_combination(0.1, simd_float2x2(simd_float2.one, simd_float2.one), 0.9, simd_float2x2(simd_float2.one, simd_float2.one)*2) // a, x, b, y | |
// Transpose Function | |
simd_transpose(simd_float2x2(simd_float2(1, 2), simd_float2(3, 4))) | |
// Element Access (Subscript) | |
simd_float2x2(simd_float2(1, 2), simd_float2(3, 4))[0] // column | |
simd_float2x2(simd_float2(1, 2), simd_float2(3, 4))[0][1] | |
// Typealias | |
float3x3() | |
matrix_float3x3() | |
// Operators | |
simd_float2x2(simd_float2(1, 2), simd_float2(3, 4)) * 2 | |
simd_float2x2(simd_float2(1, 2), simd_float2(3, 4)) * simd_float2(5, 6) | |
simd_float2x2(simd_float2(1, 2), simd_float2(3, 4)) + simd_float2x2(1) | |
-simd_float2x2(simd_float2(1, 2), simd_float2(3, 4)) - simd_float2x2(1) | |
simd_float3x3(1) == simd_float3x3(1) | |
simd_float3x3(1) != simd_float3x3(1) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment