#include <iostream>void csr2coo(int* row, int* col, double* value, int* ia, int* ja, int rows,int nnz){for (int i = 0; i < rows; i++){for (int j =ia[i] ; j < ia[i+1]; j++){col[j] = ja[j];row[j] = i;}}}void coo2csr(int* ia, int* ja, double* value, int* row, int* col, int rows, int nnz){for (int i = 0; i < rows+1; i++){ia[i] = 0;}for (int i = 0; i < rows; i++){int count = 0;for (int j = 0; j < nnz; j++){if (row[j] == i) count++;}ia[i + 1] = ia[i] + count;}for (int i = 0; i < nnz; i++){ja[i] = col[i];}}int main(int argc,char** argv){ 0 2 34 0 5*/const int nrow = 3,nnz=5;int ia[nrow + 1]{ 0,1,3,5 }, ja[nnz]{ 0,1,2,0,2 };double value[nnz]{ 1.0,2.0,3.0,4.0,5.0 };int row[nnz], col[nnz];csr2coo(row, col, value, ia, ja, nrow, nnz);for (int i = 0; i < nnz; i++){printf("row %d col %d val %le \n", row[i],col[i],value[i]);}coo2csr(ia, ja, value, row, col, nrow, nnz);for (int i = 0; i < nrow+1; i++){printf("ia %d\n", ia[i]);}for (int i = 0; i < nnz; i++){printf("ja %d val %le \n", ja[i], value[i]);}return 0;}