Я шукаю бібліотеку, яка виконує операції з матрицею на великих розріджених матрицях без шкоди для чисельної стабільності. Матриці будуть 1000+ на 1000+, а значення матриці будуть від 0 до 1000. Я буду виконувати алгоритм обчислення індексу, тому буду генерувати (розріджені) рядкові вектори матриці послідовно. Коли я розробляю кожен ряд, мені потрібно буде перевірити лінійну незалежність. Після того, як я заповняю свою матрицю потрібною кількістю лінійно незалежних векторів, мені потрібно буде перетворити матрицю на форму ешелону скорочених рядків.
Проблема зараз полягає в тому, що моя реалізація використовує усунення Гаусса для визначення лінійної незалежності (забезпечення форми ешелону рядків після того, як будуть знайдені всі мої ряди векторів). Однак, зважаючи на щільність і розмір матриці, це означає, що записи в кожному новому рядку з часом стають експоненціально більшими, оскільки для відміни необхідно знайти lcm провідних записів. Пошук зменшеної форми матриці ще більше посилює проблему.
Отже, моє запитання полягає в тому, чи існує алгоритм, а ще краще реалізація, який може перевірити лінійну незалежність і вирішити форму ешелону скорочених рядків, зберігаючи записи як можна меншими? Ефективний тест на лінійну незалежність особливо важливий, оскільки в алгоритмі обчислення індексу він виконується далеко не найбільше.