Ho due matrici quadrate A
e B
CSR Matrix - Matrix moltiplicazione
devo convertire B
-CSR Format
e determinare il prodotto C
A * B_csr = C
ho trovato un sacco di informazioni on-line per quanto riguarda CSR Matrix - Vector multiplication. L'algoritmo è:
for (k = 0; k < N; k = k + 1)
result[i] = 0;
for (i = 0; i < N; i = i + 1)
{
for (k = RowPtr[i]; k < RowPtr[i+1]; k = k + 1)
{
result[i] = result[i] + Val[k]*d[Col[k]];
}
}
Tuttavia, ho bisogno Matrix - Matrix
moltiplicazione.
Inoltre, sembra che la maggior parte degli algoritmi applichi la moltiplicazione A_csr - vector
in cui è necessario A * B_csr
. La mia soluzione è di trasporre le due matrici prima di convertire e quindi trasporre il prodotto finale.
Qualcuno può spiegare come calcolare un prodotto Matrix - CSR Matrix
e/o un prodotto CSR Matrix - Matrix
?
Nel primo ciclo cosa è "i"? Inoltre, cos'è 'result', come viene avviato, che tipo contiene? Cosa sono 'val' e' col'? Cos'è 'RowPtr'? Cos'è 'd'? – bjpelcdev
@bjpelcdev 'i' sarebbe l'indice' ith' di 'C'. Gli altri valori si riferiscono ai vettori associati al formato 'CSR'. Ad ogni modo, ho appena fornito l'algoritmo di riferimento, anche se mi interessa un caso diverso. –