Знаете, поможет размещение данных в памяти, чтобы все вычисления могли быть выполнены в одном цикле (очень оптимизирован, SSE и т. Д.).ОДНАКО, учтите, что вы получаете доступ к большому количеству памяти, выполняя очень, очень быструю операцию, поэтому оптимизация не будет значительной.И, если вы решите переставить память, процесс аранжировки будет возможно медленнее, чем сам расчет.
Глядя на эту проблему, мне приходит в голову статья Чарльза Петцольда о книге «Красивый код»».Вы можете сгенерировать кодовые шаблоны для каждого значения каждой строки цикла (100 различных кодовых шаблонов), которые генерируют присваивание только в том случае, если соответствующее значение бита равно 1, а затем переходят к правильной реализации в зависимости от значения бита строкивы обрабатываетеВам нужно будет использовать битовые поля для разных масок.Вы преобразуете 3-вложенный цикл в 2-вложенный цикл с оптимизированным кодом для внутреннего цикла (не так уж и плохо), при этом необходимо с помощью какой-либо другой утилиты (или просто C / C ++) создать код для самогоразные значения внутреннего цикла.Вы должны прочитать главу, чтобы понять это.Действительно аккуратно.