Ich habe zwei quadratische Matrizen A
und B
CSR Matrix - Matrixmultiplikation
I B
-CSR Format
und bestimmen das Produkt C
A * B_csr = C
Ich habe eine Menge Informationen online zu finden in Bezug auf CSR Matrix - Vector multiplication konvertieren. Der Algorithmus ist:
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]];
}
}
Allerdings benötige ich Matrix - Matrix
Multiplikation.
Weiterhin scheint es, dass die meisten Algorithmen A_csr - vector
Multiplikation anwenden, wo ich A * B_csr
benötige. Meine Lösung besteht darin, die beiden Matrizen vor der Umwandlung zu transponieren und dann das Endprodukt zu transponieren.
Kann jemand erklären, wie man ein Matrix - CSR Matrix
Produkt und/oder ein CSR Matrix - Matrix
Produkt berechnet?
In der ersten Schleife was ist "ich"? Auch was ist "Ergebnis", wie wird es initiiert, welcher Typ enthält es? Was sind "val" und "col"? Was ist 'RowPtr'? Was ist "d"? – bjpelcdev
@bjpelcdev 'i' wäre der' ith' Index von 'C'. Die anderen Werte beziehen sich auf die Vektoren, die dem "CSR" -Format zugeordnet sind. Wie auch immer, ich habe nur den Algorithmus zur Verfügung gestellt, obwohl ich mich für einen anderen Fall interessiere. –