Яка різниця між основним рядком і основним стовпцем у множенні матриць?

Основний рядок: зберігається послідовний порядок (наприклад, P ′ = P ∗ T ∗ R z ∗ R y ) Головний стовпець: Зворотний порядок перетворення (наприклад, P ′ = R y ∗ R z ∗ T ∗ P )

Різниця між порядками полягає в тому, які елементи масиву є суміжними в пам’яті. У порядку основних рядків послідовні елементи рядка розташовані поруч один з одним, тоді як те саме стосується послідовних елементів стовпця в порядку основних стовпців.

Різниця між стовпцем і рядком Основна різниця між стовпцями та рядками полягає в тому, що стовпець упорядковує дані вертикально зверху вниз, тоді як рядок упорядковує дані горизонтально зліва направо. Рядки та стовпці відрізняються залежно від того, як вони вирівнюють дані.

Це розміщує пам’ять безперервно в порядку основних рядків замість одного масиву вказівників на масиви (які не розташовуються безперервно). Ітерація цього масиву за допомогою row-major все одно працюватиме швидше, ніж ітерація column-major через просторову локальність і передбачення кешу.

«Точковий добуток» є цілий рядок, помножений на цілий стовпець.

column-major Типовим значенням в Eigen є колонка-мажор. Природно, більшість розробки та тестування бібліотеки Ейгена, таким чином, виконується з матрицями головного стовпця. Це означає, що, незважаючи на те, що ми прагнемо прозоро підтримувати порядок зберігання основних стовпців і основних рядків, бібліотека Eigen може найкраще працювати з матрицями основних стовпців.