好像suitesparse原本没有windows版本,然后国外一个大佬写了cmake搞出来的。所以可能存在一些奇奇怪怪的问题吧。主要是一下两点
1.windows相比linux环境速度奇慢。
2.新手编译这个库经常会下载suitesparse-metis-for-windows-1.3.0但是1.3.0有一个小问题,就是使用cholmod的时候会报Input Error:Incorrect objective type,我用的时候虽然对结果、性能没有造成任何影响,但是会觉得不爽。
关于如何编译这个库可以去看上面的github链接,里面的readme说的很清楚了,还有这位大佬的博客也有中文版的。
关于第一个问题,在windows环境下速度极慢的原因主要是blas的不同实现造成性能差距过大,我们只需要把suitesparse里面的libblas.lib换成OpenBLAS或者其它高性能BLAS实现就ok了
在编译vs环境的OpenBLAS库教程
记得把旧的lib另外保存,新的名字换成libblas.lib
第二个问题的话,用suitesparse-metis-for-windows-1.5.0就可以了,好像1.3.1也解决了。
然后安装官网上的教程编译1.5.0会有一个报错,解决方法就是把gk_arch.h最后一段代码改成下面的代码就可以了
//#ifdef __MSC__
/* MSC does not have rint() function */
#if(_MSC_VER < 1800)
#define rint(x) ((int)((x)+0.5))
//#endif
/* MSC does not have INFINITY defined */
#ifndef INFINITY
//#if(_MSC_VER < 1900)
#define INFINITY FLT_MAX
//#endif
#endif
#endif
#endif