Matlab'da orijinal kodu A * B için yazdım, hem A hem de B seyrek. Sonuç için alanın ön tahsisi gerçekten ilginçti. Godric'in neyi işaret ettiğini gözlemledik - AB'deki sıfır olmayanların sayısını bilmek, AB'nin hesaplanması kadar maliyetli.
AB'nin boyutunu doğru bir şekilde tahmin etmek için ilk pratik, hızlı yolu veren Edith Cohen gazetesinden önce, seyrek Matlab'ın ilk uygulamasını 1990'da yaptık. Daha düşük bir boyut tahmincisi bir araya getirdik ve eğer hesaplamanın ortasında yer kalmadıysa, tahsisi ikiye katladı ve kısmen hesaplanan sonucu kopyaladı.
Şimdi Matlab'da ne olduğunu bilmiyorum.
Başka bir olasılık AB'yi bir kerede bir sütun hesaplamak olacaktır. Her sütun geçici olarak seyrek bir akümülatörde saklanabilir (bunların açıklaması için seyrek Matlab kağıdına bakınız) ve sonuç sütununun tam olarak bilinen boyutunu tutmak için ayrılan alan. Sonuç, dağınık sıkıştırılmış seyrek sütun formunda olacaktır - CSC'deki her sütun, ancak kolonlar arası bitişiklik yok - meta veri olarak bir yerine 2 uzunluk numokolünü (col start, col length) kullanarak. Bir göz atmaya değer bir depolama formu; başka bir gücü daha var - tüm matrisi yeniden tahsis etmeden bir sütun büyütebilirsiniz.