当然更偏向易用性。实现更重要。一个算法不确定是否能实现,先从易用的库开始快速迭代算法实现。优化是最后要考虑的。
还有就是在选择第三方库的时候,我倾向于选择纯头文件的库。比如Eigen3。我用Eigen3无非就是矩阵计算,能够快速求解线性方程组的解就好,并没有高次方程求根这种(其实也有,为了求一个三次方程就要引用一个库,我选择找一个现成的实现)。
当然,开篇的例子的话,我肯定也不会用Eigen去求,三维空间下的数学,还是交给glm这种用于渲染的数学库比较好,纯头文件,易于集成,而且简单好用。
当然我说的只是图形渲染中常用的一些库。貌似还真没看到过图形学方面代码用犰狳库的,因为用不到吧。
最后,我看了一下老师最后列出来的博客,提到了From Mathematics to Generic Programming,哈哈,我手头上也有一本这书!当然是中文版的。。。《数学与泛型编程》。。当时以为是接触泛型编程,顺便了解一些数学才买的。结果买来之后第六章群那里我实在看不动了。。其实第五章我就看着老吃力了。。。即使如此,也感觉收获不小。比如,看这本书之前我一直不知道质数筛。。还有古人如何计算乘法,如何计算最大公约数等等。回头我还要继续啃一下这本书。
展开
作者回复: 看来你是真正搞计算的啊……我是偶尔碰一下而已。
《数学与泛型编程》绝对是好书。这本已经算是作者的另一本书的简化版本了(那本书更抽象,我也只啃了个开头而已了)。对于喜欢数学的程序员,我绝对大力推荐。