Хотя я использую C, я считаю, что язык программирования и код не имеют значения.
Я хочу представить симметричную матрицу в формате CSR для быстрого матрично-векторного произведения.
Входной поток, из которого я читаю, дает только верхнюю треугольную часть матрицы, номер за номером, слева направо, строка за строкой.
Пример:
0 2 3 5
2 0 1 4
3 1 0 9
5 4 9 0
Входной поток:
0 2 3 5 0 1 4 0 9 0
Если бы мне нужно было построить обычную матрицу, скажем, из двумерного массива, это было бы легко. Все, что мне нужно, это данные, которые я получаю. Это не относится к представлению CSR.