я пытаюсь написать общую тензорную операцию в юлии (матрица * тензор известного ранга).
Мой тензор - это объект с n индексами (например, тензор (a_1, a_2, ..., a_n)), и моя матрица влияет только на i-й индекс. Поэтому было бы удобно иметь итератор с обходом каждого индекса, кроме i-го. Есть ли простая функция для реализации этого, или у вас есть идея? Как это сделать с хорошей производительностью? Мне также нужен результат итератора в CartesianIndex-форме (я думаю), потому что я должен перебирать последний индекс в стиле умножения матрицы на вектор.
Моя первая идея состояла в том, чтобы получить все перестановки для индексов до и после i-го, но генерация этих показалась утомительной ...
Я надеюсь, вы можете помочь мне, с наилучшими пожеланиями, lepmueller