The internal representation of a <code>matrix</code> in Odin is stored in [[Row-_and_column-major_order|column-major]] format<ref>{{cite web | url=https://odin-lang.org/docs/overview/#matrix-type | title=Overview }}</ref> while the matrix literals are written in standard (row-major like) order (e.g. <code>matrix[2, 3]f32</code> is internally <code>[3][2]f32</code> (with different a [[Data_structure_alignment|alignment]] requirement)). Column-major is used in order to utilize ([[SIMD]]) vector instructions effectively on modern hardware, if possible.
==Comparisons with other languages==
The syntax of Odin partially resembles [[Go (programming language)#Syntax|Go]]'s syntax<ref>{{cite web |title=Low-Level Programming with Odin Lang |url=https://dev.to/patrickodacre/low-level-programming-with-odin-lang-perfect-for-beginners-5cc3 |website=Dev |access-date=2022-09-21}}</ref> with many adjustments.
Compared to C, Odin:
* Removes text-based preprocessing stage
* Introduces [[strong typing]]
* Adds array programming and improves [[Type introspection|runtime reflection]]
* Has explicit [[function overloading]]<ref>{{Cite web|title=Overview|url=https://odin-lang.org/docs/overview/|access-date=2022-10-20|website=odin-lang.org}}</ref>
Compared to Go, Odin:
* Has [[manual memory management]]<ref>{{cite web | url=https://dev.to/patrickodacre/low-level-programming-with-odin-lang-perfect-for-beginners-5cc3 | title=Low-Level Programming with Odin Lang - Perfect for Beginners }}</ref><ref>{{Cite web |title=How Memory Safety Approaches Speed Up and Slow Down Development Velocity |url=https://verdagon.dev/blog/when-to-use-memory-safe-part-2 |access-date=2023-11-27 |website=verdagon.dev}}</ref>
* Does not have interfaces
* Lacks language-level concurrency primitives, but implements them as part of its core library