LINUX.ORG.RU

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

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

Примерно как-то так https://godbolt.org/z/xb4Yco

Векторизуй все что можно, убирай бранчи. Код я так набросал, жирный цикл по indices тоже лучше разбить на примитивные, которые будут развернуты. Если обратишь внимание, мелкие циклы полностью пропадают, от них остается только загрузка в SIMD-регистры и одна операция. Примерно этого тебе и нужно добиться во всех других местах. Возврат частного комплексных чисел тоже лучше ручками на бумаге расписать, у тебя мнимая часть числителя 0, это можно из частного комплексных перевести более простой вид.

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

Примерно как-то так https://godbolt.org/z/xb4Yco

Векторизуй все что можно, убирай бранчи. Код я так набросал, жирный цикл по indices тоже лучше разбить на примитивные, которые будут развернуты. Если обратишь внимание, мелкие циклы полностью пропадают, остается только загрузка в SIMD-регистры и одна операция. Примерно этого тебе и нужно добиться. Возврат частного комплексных чисел тоже лучше ручками на бумаге расписать, у тебя мнимая часть числителя 0, это можно из частного комплексных перевести более простой вид.

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

Примерно как-то так https://godbolt.org/z/xb4Yco

Векторизуй все что можно, убирай бранчи. Код я так набросал, жирный цикл по indices тоже лучше разбить на примитивные, которые будут развернуты. Возврат частного комплексных чисел тоже лучше ручками на бумаге расписать, у тебя мнимая часть числителя 0, это можно из частного комплексных перевести более простой вид.