Pergunta

Verificando esse exemplo (exemplo de API no final), quero fazer algumas perguntas.

1) No exemplo, estamos fornecendo a matriz a com elementos diferentes de zero. Qual é o tamanho real da matriz? E esses são os elementos da matriz ou as posições que contêm elementos diferentes de zero?

2) Posso usar nos cálculos (usar em uma função como culaSparseSetDcooData) uma matriz A que conterá elementos zero e diferentes de zero?Se eu quiser criar uma matriz de amostra apenas para testar, devo criar uma matriz com zero elementos, depois preenchê-la com alguns elementos e depois?

Foi útil?

Solução

Em relação a 1) Curiosamente, o tamanho da matriz no formato COO não é especificado explicitamente:Consiste em coordenadas dos elementos diferentes de zero da matriz.Se você tiver uma matriz COO com 1 elemento diferente de zero, então isso poderia ser

double a[1] =  { 1.0 };
int colInd[1] = { 10 };
int rowInd[1] = { 20 };

e (como você pode ver pelos índices de linha/coluna) descrevem elementos de uma matriz que tem pelo menos tamanho 11*21, ou pode ser

double a[1] =  { 1.0 };
int colInd[1] = { 1000 };
int rowInd[1] = { 2000 };

e descrever elementos de uma matriz que tem pelo menos tamanho 1001*2001

No entanto, neste exemplo, parece que esta é uma matriz quadrática, e n=8 parece ser o tamanho.(Infelizmente, parece não haver documentação detalhada do culaSparseSetDcooData função...)

Em relação a 2) Isso não está totalmente claro.Se sua dúvida é se os valores "diferentes de zero" poderia (na realidade) têm um valor de 0.0, então posso dizer:Sim, isso deveria ser permitido.Porém, o exemplo que você mencionou já mostra como criar uma matriz de teste simples.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top