2์ฐจ์ ์ด์์ ๋ฐฐ์ด์ ์ฌ์ฉํ ๋ ์ฃผ์ํด์ผ ํ๋ ๊ฒ์ด ๋ฐ๋ก row-major์ column-major์ด๋ค.
๋ฐฐ์ด์ ์ฐจ์๊ณผ ๊ด๊ณ์์ด ์ ์ฅ ์ฅ์น์ ์ ์ฅ๋ ๋์๋ ๋ฐ๋์ 1์ฐจ์์ผ๋ก ์ ์ฅ๋๋ค.
๊ทธ๋ผ 2์ฐจ์ ๋ฐฐ์ด์ ์ด๋ป๊ฒ 1์ฐจ์์ ํ ์ ์์๊น?
row-major๋ row ๋จ์๋ก ์ ์ฅํ๊ฒ ๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค.
์ฆ, ๋ค์๊ณผ ๊ฐ์ด ์ ์ฅ๋๋ค.
[a11 a12 a13 a21 a22 a23 a31 a32 a33]
๊ธฐ์กด index๋ฅผ 1์ฐจ์ row-major ๋ฆฌ์คํธ index๋ก ๋ฐํํ๋ ํจ์๋ฅผ ์์ฑํด๋ณด์!
n = ํ์ ์
m = ์ด์ ์
i = ํ index
j = ์ด index
def linearize_rowmajor(i, j, m, n): # calculate `v`
return i * n + j
์ฐธ ์ฝ์ฃ ?
๊ฐ์ ์๋ฆฌ๋ ์ค๋ช
์ ์๋ตํ๋ค.
Col-major ํจ์๋ ๋ค์๊ณผ ๊ฐ๋ค.
def linearize_colmajor(i, j, m, n): # calculate `u`
return i + (j*m)