Понятно, что надо такое переписать, ибо тормоза.
Уточнил у автора и он говорит "уж не помню почему именно swap" :-)
То есть создаётся массив с указанным размером, всем его элементам устанавливается -1.0, копируется в массив cache и - лишняя работа - копируется содержимое cache в временный массив и забывается за ненужностью.
Автор, похоже, позабыл, что выделение памяти - это дорого, хоть и проще писать одной строчкой.
Пример отсюда
https://github.com/githole/simple-bidirectional-pa...