Пол дал вам довольно хорошие отправные точки для ваших предыдущих вопросов.
пара вещей, на которые стоит обратить внимание: вы занимаетесь неосновным разделением 2, которое стоит дорого.
Вместо этого попытайтесь использовать многомерный характер блока потока. Например, сделайте размер x размером 24, что избавит от необходимости деления.
в общем, попробуйте подогнать размеры блока резьбы в соответствии с вашими размерами данных.
Упростите переворачивание знака: например, если вы не хотите переворачивать знак, вы все равно можете умножить на тождество 1
. Узнайте, как сопоставить четные / нечетные числа 1 и -1, используя только арифметику: например, sign = (even*2+1) - 2
, где четное значение равно либо 1, либо 0.