LINUX.ORG.RU

История изменений

Исправление bormant, (текущая версия) :

открываете код ТСа, и видите реализацию двумерной матрицы как массива указателей

В коде ТСа такой реализации нет. Такая реализация есть в коде третьей стороны, с которой ТС сравнивает свою реализацию, в которой выделяет память единым куском.
В реализации 3 стороны транспонирование дает выиигрыш в том числе за счет устранения лишней косвенной адресации при проходе по столбцам. А вот ТС мог бы попробовать ходить по столбцам при помощи i+=N, которое до определенных пределов N оставалось бы столь же быстрым, как и ++i для транспонированной матрицы.


Какое слово вам непонятно во фразе: «при таких тождественных записей, запись *(A + N * i + j) наиболее предпочтительная»?

«наиболее предпочтительная»
Если, конечно, речь не идет об исключительно личных предпочтениях.

Мозг при чтении включить слабо

Извините, не имею ни возможности, ни желания включать либо выключать ваш мозг, как-нибудь сами пожалуйста.

Исправление bormant, :

открываете код ТСа, и видите реализацию двумерной матрицы как массива указателей

В коде ТСа такой реализации нет. Такая реализация есть в коде третьей стороны, с которой ТС сравнивает свою реализацию, в которой выделяет память единым куском.
В реализации 3 стороны транспонирование дает выиигрыш в том числе за счет устранения лишней косвенной адресации. А вот ТС мог бы попробовать ходить по столбцам при помощи i+=N, которое до определенных пределов N оставалось бы столь же быстрым, как и ++i для транспонированной матрицы.


Какое слово вам непонятно во фразе: «при таких тождественных записей, запись *(A + N * i + j) наиболее предпочтительная»?

«наиболее предпочтительная»
Если, конечно, речь не идет об исключительно личных предпочтениях.

Мозг при чтении включить слабо

Извините, не имею ни возможности, ни желания включать либо выключать ваш мозг, как-нибудь сами пожалуйста.

Исходная версия bormant, :

открываете код ТСа, и видите реализацию двумерной матрицы как массива указателей

В коде ТСа такой реализации нет. Такая реализация есть в коде третьей стороны, с которой ТС сравнивает свою реализацию, в которой выделяет память единым куском.

Какое слово вам непонятно во фразе: «при таких тождественных записей, запись *(A + N * i + j) наиболее предпочтительная»?

«наиболее предпочтительная»
Если, конечно, речь не идет об исключительно личных предпочтениях.

Мозг при чтении включить слабо

Извините, не имею ни возможности, ни желания включать либо выключать ваш мозг, как-нибудь сами пожалуйста.