1. niusounds

    Posted

    niusounds
Changes in title
+Row-major orderとColumn-major order
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,23 @@
+参考: [Wikipedia: Row-major_order](https://en.wikipedia.org/wiki/Row-major_order)
+
+行列を配列に格納するときにどのような順番に格納するかとしてRow-major orderとColumn-major orderの2種類があります。
+
+たとえばこのような行列があったとき
+
+![](https://wikimedia.org/api/rest_v1/media/math/render/svg/0d2606537373aed9f7c6240cc6c94efcce12c53a)
+
+Column-major orderとRow-major orderではそれぞれ以下のように配列に格納されます。
+
+Address | Column-major order | Row-major order
+--- | --- | ---
+0 | ![a11](https://wikimedia.org/api/rest_v1/media/math/render/svg/411c26881c752d514e61bfdd5eb8463c6e808202) | ![a11](https://wikimedia.org/api/rest_v1/media/math/render/svg/411c26881c752d514e61bfdd5eb8463c6e808202)
+1 | ![a21](https://wikimedia.org/api/rest_v1/media/math/render/svg/372531d1d09885784f3430660f8654b0d48eb394) | ![a12](https://wikimedia.org/api/rest_v1/media/math/render/svg/e062aea942fa88bbd0aa72d26f8fc011b323bf5e)
+2 | ![a12](https://wikimedia.org/api/rest_v1/media/math/render/svg/e062aea942fa88bbd0aa72d26f8fc011b323bf5e) | ![a13](https://wikimedia.org/api/rest_v1/media/math/render/svg/de4f86c305ff1b04fabb1cddcedd192853d6815c)
+3 | ![a22](https://wikimedia.org/api/rest_v1/media/math/render/svg/f7a66fac4dcd116c0dca38bd6cd9a805f62b69f4) | ![a21](https://wikimedia.org/api/rest_v1/media/math/render/svg/372531d1d09885784f3430660f8654b0d48eb394)
+4 | ![a13](https://wikimedia.org/api/rest_v1/media/math/render/svg/de4f86c305ff1b04fabb1cddcedd192853d6815c) | ![a22](https://wikimedia.org/api/rest_v1/media/math/render/svg/f7a66fac4dcd116c0dca38bd6cd9a805f62b69f4)
+5 | ![a23](https://wikimedia.org/api/rest_v1/media/math/render/svg/e214e4d1b4dcc0f3909e915fd69012c5bd1b7b7b) | ![a23](https://wikimedia.org/api/rest_v1/media/math/render/svg/e214e4d1b4dcc0f3909e915fd69012c5bd1b7b7b)
+
+Row-major order は C/C++/Objective-C (for C-style arrays), Mathematica, PL/I, Pascal, Speakeasy, SAS, and C#/CLI/.Net などで使われています。
+Column-major order は Fortran, OpenGL and OpenGL ES, MATLAB, GNU Octave, S-Plus, R, Julia, Rasdaman, Scilab などで使われています。
+
+並び順の異なる行列ライブラリ間でデータをやりとりする場合等は、気をつけましょう。