稀疏矩阵库umfpack和Eigen结合

本文介绍了在研究网格变形过程中遇到的稀疏矩阵运算问题。作者最初使用Eigen库,但由于其不支持稀疏矩阵运算,尝试集成UMFpack和SuperLU但未成功。最终,作者选择了封装UMFpack与Eigen的接口。文中提到了稀疏矩阵的存储格式,并提供了相关源文件的代码片段。
摘要由CSDN通过智能技术生成

   又是一个月了,这个月前面大多数的时间都在看网格变形的paper,后面这段时间又要搞Ogre,日子过得很混乱,完全没有什么时间来整理学过的东西。在这个月末的时候还是贴篇文章表示还在好好学习。

   网格变形的论文看得理解了一点后就开始尝试实现,就开始到网上找稀疏矩阵库。一开始我使用的矩阵库是Eigen,风格跟matlab很像,但是没有实现稀疏矩阵运算的功能,虽然它预留了跟其他几个稀疏矩阵库的接口,但是我试过的umfpack和superlu都在if(!lu_of_A.succeeded())这一步计算失败。后来还找尝试了taucs库,但是同样遇到了一个悲剧的问题,编译成功的库可以在命令行下使用,但是放到vs2008里面却总是无法链接成功。花了几天的时间,最后还是决定自己封装下umfpack和Eigen的接口。

  首先要了解稀疏矩阵的存储格式,稀疏矩阵的标准格式是以列为主序的,使用三个数组来存放它的数据,int *pAi,int * pAp,和 double *pAx,其中pAi存放存放每个非0元素的行号,pAp则存放每列开头非0元素在pAx里面的索引,pAx以列为主序存放非0元素,详细的信息可以从http://people.sc.fsu.edu/~jburkardt/pdf/hbsmc.pdf这里找到,第7页


  直接贴源文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值