Compressed Row Storage

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Compressed Row Storage
Bei Blatt 4, Aufgabe 1 sollte man die gegebene Matrix A in’s CRS Format bringen. A hat eine Nullzeile.
Als row_ptr haben wir [ 1, 3, 6, 6, 8, 10 ]. Damit hat row_ptr #(rows) + 1 Einträge, der letzte Eintrag ist #(non_zero) + 1. So steht es auch auf den Folien.

Der Korrektor/die Korrektorin hat jedoch das dritte Element von row_ptr (die erste 6) eingeklammert und darunter geschrieben, die Zeile sei zu überspringen.
Wenn man die Zeile überspringt, dann stimmt erstens die Anzahl der Einträge nicht mehr und wie soll man dann noch aus der Matrix im CRS Format auf die Nullzeile zurückschließen?


Nachdem dieser Thread bei Google „Compressed Row Storage“ auf der ersten Seite steht, hier jetzt eine Klarstellung.

Wir haben in der Vorlesung nachgefragt. Die Lösung war eigentlich richtig, da hat der Korrektor Mist gebaut.
Funfact: Wenn die letzte Zeile eine Nullzeile ist, haben die letzten beiden Einträge im row_ptr array den Wert: #(non_zero) + 1. Zeigen also beide auf das Ende des col_ind-arrays.

Vorlesungsaufzeichnung: https://www.video.uni-erlangen.de/clip/id/16235.html so bei 1:17:40