提问人:Pratyush Das 提问时间:11/16/2023 最后编辑:Pratyush Das 更新时间:11/16/2023 访问量:20
如何将CSR格式存储的稀疏矩阵转换为VBR格式?
How to convert a sparse matrix stored in CSR format to VBR format?
问:
我想将以CSR(压缩稀疏行)格式存储的稀疏矩阵转换为以VBR(可变块行)格式存储的矩阵。
SPARSKIT有办法做到这一点,但它似乎在Fortran中,我想避免。
在OSKI中,有一种方法可以将矩阵从CSR转换为VBR。https://bebop.cs.berkeley.edu/oski/html/structoski__matVBR__t.html https://bebop.cs.berkeley.edu/oski/html/group__MATTYPES__INTERFACE.html#g7e8be918a49ee9bb61d5319cd7222329CreateMatReprFromCSR
在OSKI中,可以创建CSR矩阵,如下所示:
int Aptr[DIM+1] = {0, 1, 3, 5};
int Aind[NUM_STORED_NZ] = {0, 0, 1, 0, 2};
double Aval[NUM_STORED_NZ] = {1, -2, 1, 0.5, 1};
oski_matrix_t T = oski_CreateMatCSR(Aptr, Aind, Aval, 3, 3, SHARE_INPUTMAT, 1, INDEX_ZERO_BASED);
但是调用似乎很困难,因为每种矩阵格式似乎都实现了它(因此不确定如何具体转换为VBR),并且该函数采用一个我不确定如何初始化的参数。CreateMatReprFromCSR
T
const oski_matcommon_t * props
例如。
oski_matcommon_t props;
props.num_rows = 3;
props.num_cols = 3;
props.num_nonzeros = NUM_STORED_NZ;
oski_CreateMatReprFromCSR(T, &props);
像这样的东西会给出一个错误——undefined reference to MOD_NAME_Tid_LTX_oski_CreateMatReprFromCSR
如果有一种方法可以将矩阵从CSR转换为任何其他语言的VBR,那也可以,只要它不是Fortran或MATLAB。
如何在不自己实现转换例程的情况下从 CSR 转到 VBR?
答: 暂无答案
评论