LINUX.ORG.RU

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

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

Там написано: “eliminate temporaries,” “loop fusion.”

Я не математик, поэтому могу чего-нибудь проглядеть. Насколько я понял, temporary — он имеет ввиду временное представление таблицы в транспозиционном виде. В C нам придётся либо использовать временную память, либо усложнить алгоритм, встраивая транспозицию в алгоритм умножения.

loop fusion — вроде, распараллеливание. Опять же, довольно сложно сделать вручную.

Какие абстракции позволяют C++ это делать самому, без ручной работы — не знаю, самому интересно.

какие, нафиг, «правильные абстракции»

Абстракция — это когда мы что-то отделяем от группы предметов, некий аспект или свойство, и оперируем только на уровне этого аспекта. Это позволяет упростить множество задач, как в жизни, так и в программировании.

Например, можно сортирование массива представить в виде трёх функций: Len, Less, Swap. Можно написать алгоритм сортировки, не трогая никакие структуры данных, только вызывая эти функции. В результате мы сможем, например, переисользовать этот алгоритм, чтобы отсортировать матрицу по диагонали. Qsort по диагонали — разве не круто?

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

Там написано: “eliminate temporaries,” “loop fusion.”

Я не математик, поэтому могу чего-нибудь проглядеть. Насколько я понял, temporary — он имеет ввиду временное представление таблицы в транспозиционном виде. В C нам придётся либо использовать временную память, либо усложнить алгоритм, встраивая транспозицию в алгоритм умножения.

loop fusion — вроде, распараллеливание. Опять же, довольно сложно сделать вручную.

Какие абстракции позволяют C++ это делать самому, без ручной работы — не знаю, самому интересно.

какие, нафиг, «правильные абстракции»

Абстракция — это когда мы что-то отделяем от группы предметов, некий аспект или свойство, и оперируем только на уровне этого аспекта. Это позволяет упростить множество задач, как в жизни, так и в программировании.

Например, можно сортирование массива представить в виде трёх функций: Len, Less, Swap. Можно написать алгоритм сортировки, не трогая никакие структуры данных, только вызывая эти функции. В результате мы сможем, например, переисользовать этот алгоритм, чтобы отсортировать матрицу по диагонали. Qsort по диагонали — разве не круто?

Возвращаясь к языку С