[EDA/Python] Row Major v.s. Column Major ๐Ÿ“Š

SengMin Youn ์œค์„ฑ๋ฏผยท2023๋…„ 10์›” 21์ผ
1
post-thumbnail

์ด๊ฒƒ์€ ๋ฌด์—‡์ธ๊ต?

2์ฐจ์› ์ด์ƒ์˜ ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ• ๋•Œ ์ฃผ์˜ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ row-major์™€ column-major์ด๋‹ค.

๋ฐฐ์—ด์˜ ์ฐจ์›๊ณผ ๊ด€๊ณ„์—†์ด ์ €์žฅ ์žฅ์น˜์— ์ •์žฅ๋  ๋•Œ์—๋Š” ๋ฐ˜๋“œ์‹œ 1์ฐจ์›์œผ๋กœ ์ €์žฅ๋œ๋‹ค.

๊ทธ๋Ÿผ 2์ฐจ์› ๋ฐฐ์—ด์„ ์–ด๋–ป๊ฒŒ 1์ฐจ์›์„ ํ•„ ์ˆ˜ ์žˆ์„๊นŒ?

Row-major

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

์ฐธ ์‰ฝ์ฃ ?

Column-major


๊ฐ™์€ ์›๋ฆฌ๋‹ˆ ์„ค๋ช…์€ ์ƒ๋žตํ•œ๋‹ค.

Col-major ํ•จ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

def linearize_colmajor(i, j, m, n): # calculate `u`

    return i + (j*m)
profile
An Aspiring Back-end Developer

0๊ฐœ์˜ ๋Œ“๊ธ€