проясните некоторые моменты о culasparse
Вопрос
Проверка этот пример (пример API в конце), я хочу задать несколько вопросов.
1) В примере мы снабжаем матрицу a ненулевыми элементами.Каков реальный размер матрицы?И это элементы матрицы или позиции, которые содержат ненулевые элементы?
2) Могу ли я использовать при вычислениях (использовать в функции, подобной culaSparseSetDcooData) матрицу A, которая будет содержать нулевые и ненулевые элементы?Если я хочу создать образец матрицы просто для тестирования, должен ли я создать матрицу с нулевыми элементами, затем заполнить ее некоторыми элементами, а затем?
Решение
Относительно 1) Интересно, что размер матрицы в формате COO явно не указан:Он состоит из координат ненулевых элементов матрицы.Если у вас есть матрица COO с 1 ненулевым элементом, то это может быть
double a[1] = { 1.0 };
int colInd[1] = { 10 };
int rowInd[1] = { 20 };
и (как вы можете судить по индексам строк/столбцов) описывают элементы матрицы, которая имеет по крайней мере размер 11*21, или это может быть
double a[1] = { 1.0 };
int colInd[1] = { 1000 };
int rowInd[1] = { 2000 };
и опишите элементы матрицы, которая имеет по крайней мере размер 1001*2001
Однако в этом примере кажется, что это квадратичная матрица, и n=8
кажется, подходящий размер.(К сожалению, по-видимому, нет подробной документации по этому culaSparseSetDcooData
функция...)
Что касается 2), то это не совсем ясно.Если ваш вопрос заключается в том, являются ли "ненулевые" значения мочь (в действительности) имеют значение 0.0
, тогда я могу сказать:Да, это должно быть разрешено.Однако пример, на который вы ссылались, уже показывает, как создать простую тестовую матрицу.