diff --git a/core/math/linalg/general.odin b/core/math/linalg/general.odin index 9d9309f12..667546e78 100644 --- a/core/math/linalg/general.odin +++ b/core/math/linalg/general.odin @@ -172,13 +172,23 @@ projection :: proc "contextless" (x, normal: $T/[$N]$E) -> T where IS_NUMERIC(E) } @(require_results) -identity :: proc "contextless" ($T: typeid/[$N][N]$E) -> (m: T) #no_bounds_check { +identity_array_based_matrix :: proc "contextless" ($T: typeid/[$N][N]$E) -> (m: T) #no_bounds_check { for i in 0.. T #no_bounds_check { + return 1 +} + +identity :: proc{ + identity_array_based_matrix, + identity_matrix, +} + transpose :: intrinsics.transpose @(require_results)