0
我正在嘗試使用CUSP庫。我正在閱讀基本上稀疏的COO表示的.txt文件。我正在使用CUSP轉換爲CSR格式。無法理解CUSP中CSR表示的輸出
當我用cusp::print()
打印矩陣時,它會打印COO表示的正確結果。但是,當我將矩陣轉換爲CSR時,我寫了自己的打印功能,但結果不是我想要的。
以下是摘錄
main()
{
//.
//bla bla
//..
//create a 2d coo matrix
cusp::coo_matrix<int, int, cusp::host_memory> D(nRows_data, nCols_data, nnz_data);
// Load data from file into sparse matrices
//fill 2D coo matrix
fill2DCooMatrixFromFile(fNameData, D);
std::cout<<"\n----------------------------\n";
cusp::print(D);
cusp::csr_matrix<int, int, cusp::host_memory> csrD = D;
std::cout<<"\n----------------------------\n";
printCSRMatrix(csrD);
}
//print csr matrix
void printCSRMatrix(cusp::csr_matrix<int, int, cusp::host_memory> csr)
{
std::cout<<"csr matrix <"<<csr.num_rows<<", "<<csr.num_cols<<"> with <csr.num_entries<<" enteries\n";
std::cout<<"V :: ";
for(int i=0 ; i<csr.values.size() ; i++)
std::cout<<csr.values[i]<<" ";
std::cout<<"\n";
std::cout<<"CI :: ";
for(in
t i=0 ; i<csr.column_indices.size() ; i++)
std::cout<<csr.column_indices[i]<<" ";
std::cout<<"\n";
std::cout<<"RO :: ";
for(int i=0 ; i<csr.row_offsets.size() ; i++)
std::cout<<csr.row_offsets[i]<<" ";
std::cout<<"\n";
}
假設fill2DCooMatrixFromFile在下面的基質
1 0 1 0 0
0 0 0 1 0
0 0 0 0 0
0 1 0 0 0
0 0 0 1 0
下面填充的輸出我的代碼
sparse matrix <5, 5> with 5 entries
0 0 1
0 2 1
1 3 1
3 1 1
4 3 1
----------------------------
csr matrix <5, 5> with 5 enteries
V :: 1 1 1 1 1
CI :: 0 2 3 1 3
RO :: 0 2 3 3 4 5
讓我不能瞭解輸出的RowOffset。