Я ищу интерфейс C/C++ для эффективного вычисления огромной разреженной матрицы в Linux. Матрица может составлять миллионы раз миллионов/тысяч. Я проверил несколько существующих библиотек, но, похоже, ни один из них не удовлетворяет всем моим требованиям,Ищете интерфейс C/C++ для эффективного вычисления огромной разреженной матрицы в Linux
1, мне нужно создать разреженную матрицу, динамически добавляя к ней элементы. (не для SparseLib ++)
2, мне также нужно иметь возможность создавать разреженную диагональную матрицу, чтобы я мог масштабировать столбцы другой разреженной матрицы с разными скалярами. (для этого не найдено библиотеки, и, возможно, есть другой способ масштабирования разреженной матрицы по столбцам)
3, Он должен поддерживать операции матрицы, умноженной на матрицу/вектор (многие библиотеки поддерживают эти основные операции)
4, Он должен поддерживать входное умножение или деление между двумя разреженными матрицами или векторами, например. * Или ./ в MATLAB (для этого не найдено библиотеки, и мне нужна эта операция для экранирования некоторые записи одной разреженной матрицы с другой разреженной матрицей)
5, Матричная инверсия или линейный решатель. (Большинство библиотек предоставляют решатель для линейной системы)
Первоначально я использовал scipy в Python для реализации моего алгоритма. Python потребляет слишком много памяти, и он медленный, и именно поэтому я хотел бы преобразовать свою программу в C.
Спасибо.
Требования 1 и 4 являются самыми трудными для выполнения. –