Domanda

Verifica Questo esempio (esempio API alla fine), voglio fare alcune domande.

1) Nell'esempio forniamo la matrice A con elementi non zero. Qual è la dimensione reale della matrice però? E questi sono gli elementi della matrice o le posizioni che contengono elementi non zero?

2) Posso usare ai calcoli (utilizzare in una funzione come CULASPASSESETDCOODATA) una matrice A che conterrà zero e elementi non zero? Se voglio creare una matrice di esempio solo per testare, dovrei creare una matrice con elementi zero, quindi riempirlo con alcuni elementi e poi?

È stato utile?

Soluzione

Per quanto riguarda 1) Interessante, la dimensione della matrice in formato Coo non è esplicitamente specificato: consiste in coordinate degli elementi non zero della matrice. Se hai una matrice di COO con 1 elemento non zero, questo potrebbe essere

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

e (come puoi dire dagli indici di riga / colonna) Descrivi gli elementi di una matrice che ha almeno dimensione 11 * 21, o potrebbe essere

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

e descrivi elementi di una matrice che ha almeno dimensione 1001 * 2001

Tuttavia, in questo esempio, sembra che questa sia una matrice quadratica, e n=8 sembra essere la dimensione. (Sfortunatamente, non sembra esserci documentazione dettagliata della funzione culaSparseSetDcooData ...)

Per quanto riguarda 2) questo non è completamente chiaro. Se la tua domanda è se i valori "non zero" potrebbero (in realtà) hanno un valore di 0.0, allora posso dire: sì, questo dovrebbe essere consentito. Tuttavia, l'esempio che hai riferito mostra già come creare una semplice matrice di test.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top