особенности программирования на современном этапе

топ 100 блогов uzhas_sovka12.09.2012 Наверняка много среди читающих профессиональных программистов,
не то чтобы в этом было что-то плохое.
Честно заработанный кусок хлеба, и вообще.

Так вот, расскажите, как вам нравится такой вот к примеру фрагмент кода,
только чур не гуглить и иным образом не читить.

Что код делает и почему он такой красиво-гениальный короче.
А уж потом вернемся к Мессершмиту и прочему дискурсу.
Может быть.

#define PADDING (32)
#define GROUP_DIMX (32)
#define GROUP_DIMY (2)
...

int global_input_stride = W * GROUP_DIMY;
int global_output_stride = (H + PADDING) * GROUP_DIMY;

int local_input_stride = GROUP_DIMY * (GROUP_DIMX + 1);
int local_output_stride = GROUP_DIMY;

....

tile[local_input] = input[input_index]; local_input += local_input_stride; input_index += global_input_stride;
tile[local_input] = input[input_index]; local_input += local_input_stride; input_index += global_input_stride;
tile[local_input] = input[input_index]; local_input += local_input_stride; input_index += global_input_stride;
tile[local_input] = input[input_index]; local_input += local_input_stride; input_index += global_input_stride;
tile[local_input] = input[input_index]; local_input += local_input_stride; input_index += global_input_stride;
tile[local_input] = input[input_index]; local_input += local_input_stride; input_index += global_input_stride;
tile[local_input] = input[input_index]; local_input += local_input_stride; input_index += global_input_stride;
tile[local_input] = input[input_index]; local_input += local_input_stride; input_index += global_input_stride;
tile[local_input] = input[input_index]; local_input += local_input_stride; input_index += global_input_stride;
tile[local_input] = input[input_index]; local_input += local_input_stride; input_index += global_input_stride;
tile[local_input] = input[input_index]; local_input += local_input_stride; input_index += global_input_stride;
tile[local_input] = input[input_index]; local_input += local_input_stride; input_index += global_input_stride;
tile[local_input] = input[input_index]; local_input += local_input_stride; input_index += global_input_stride;
tile[local_input] = input[input_index]; local_input += local_input_stride; input_index += global_input_stride;
tile[local_input] = input[input_index]; local_input += local_input_stride; input_index += global_input_stride;
tile[local_input] = input[input_index];

barrier(XXX_LOCAL_MEM_FENCE);

output[output_index] = tile[local_output]; local_output += local_output_stride; output_index += global_output_stride;
output[output_index] = tile[local_output]; local_output += local_output_stride; output_index += global_output_stride;
output[output_index] = tile[local_output]; local_output += local_output_stride; output_index += global_output_stride;
output[output_index] = tile[local_output]; local_output += local_output_stride; output_index += global_output_stride;
output[output_index] = tile[local_output]; local_output += local_output_stride; output_index += global_output_stride;
output[output_index] = tile[local_output]; local_output += local_output_stride; output_index += global_output_stride;
output[output_index] = tile[local_output]; local_output += local_output_stride; output_index += global_output_stride;
output[output_index] = tile[local_output]; local_output += local_output_stride; output_index += global_output_stride;
output[output_index] = tile[local_output]; local_output += local_output_stride; output_index += global_output_stride;
output[output_index] = tile[local_output]; local_output += local_output_stride; output_index += global_output_stride;
output[output_index] = tile[local_output]; local_output += local_output_stride; output_index += global_output_stride;
output[output_index] = tile[local_output]; local_output += local_output_stride; output_index += global_output_stride;
output[output_index] = tile[local_output]; local_output += local_output_stride; output_index += global_output_stride;
output[output_index] = tile[local_output]; local_output += local_output_stride; output_index += global_output_stride;
output[output_index] = tile[local_output]; local_output += local_output_stride; output_index += global_output_stride;
output[output_index] = tile[local_output];

upd. дал еще больше подсказок и намеков,
эксперимент продолжается

Оставить комментарий

Архив записей в блогах:
6 фраз, которые женщине лучше не слышатьТо, что слабый пол любит ушами, - факт ...
В Центре интеграции систем командования, управления, связи, компьютерных сетей и разведки (C5ISR) — дочерней структуре Командования разработок боевых возможностей Сухопутных войск США продолжаются  испытания перспективной системы ATLAS (Advanced Targeting and Lethality Aided ...
Сегодня приехали к родителям и снова отметили день рождения котика :) Хорошо же отмечать несколько раз :) А завтра уже будем готовиться к Новому году, ну и сразу отмечать его :) А пока у нас другой праздник :) и подарки :) Марафон тортиков ...
Вышел новый, весенний, выпуск от Бруклин Твида. .. мне нравится, что они меняют моделей, но вот из вещей как-то в этот раз мне лично пока ничего не глянулось (оно и к лучшему, наверное:). Ну может вот к цветному варианту Vector я еще присмотрюсь, цвета мне понравились, особенно если на ...
О том, какие "грамотные" редактора обслуживают официальный сайт КПРФ по Сети ходят легенды. Например на ЦФК этому вопросу посвящена целая тема (к сожалению, она находится в разделе, который виден только зарегистрированным на форуме ...