过去,《数字食谱》一书被认为是数值算法的黄金标准参考书。最早的Fortran版本紧随其后的是C,C ++和其他版本,从而使它更新了。通过这些,它为当今的最新算法提供了参考代码。
较早的版本现在可以在线免费获得。
不幸的是,我认为它现在仅作为一个历史性的书集才最有用。在我看来,“软件工程”实践已经过时了,实际内容并没有与文献同步。
现代程序员应该看什么类似的全面而平易近人的参考书呢?
过去,《数字食谱》一书被认为是数值算法的黄金标准参考书。最早的Fortran版本紧随其后的是C,C ++和其他版本,从而使它更新了。通过这些,它为当今的最新算法提供了参考代码。
较早的版本现在可以在线免费获得。
不幸的是,我认为它现在仅作为一个历史性的书集才最有用。在我看来,“软件工程”实践已经过时了,实际内容并没有与文献同步。
现代程序员应该看什么类似的全面而平易近人的参考书呢?
Answers:
在数字食谱方面,我们需要两件事-了解算法如何转化为编程实现,其次是预订事物的参考实现。
似乎没有 BOOK +参考软件的组合。但是,有一些很好的参考软件,其中一些基于这种算法为论文提供了参考。
这是一些可能有用的参考库(主要是开源)的列表:
其他具体的事情是
您也可以签出“ 使用开源工具进行数据分析 ”。
尽管我尚未验证所有内容,但这里有大量的比较表。
http://www.netlib.org/utk/people/JackDongarra/la-sw.html
国际海事组织,《数字食谱》仍然是一本有用的书。它确实很好地描述了算法,包括它们的推导,它们有用的情况以及不有用时要考虑的替代方案。我已经使用这本书多年了。
我从未使用过的一件事是他们的代码。我总是根据它们描述的算法编写自己的实现。在这方面,代码的质量无关紧要(这确实值得怀疑:在第二版C书中,由于作者来自Fortran,因此他们定义了函数和宏的集合以使数组成为单位索引的)。举例来说:我曾经不得不在Objective-C中实现FFT,因此我在Fortran中使用NR来了解FFT的功能以及代码的外观。
对NR的思考方式与对Knuth的思考方式相同:您永远不会将那本书中的代码粘贴到您的项目中。
我个人喜欢,这是我能理解的水平
代码已被Fortran转换为“ C”,但是没关系,您可以将其转换回Fortran,然后再转换为C ++!Fortran或C版本的优点在于代码几乎是自包含的,您不必拖入一堆C ++类来做矩阵,复杂等-特别是考虑到其编码质量!
作者对可笑的版权主张有正当的异议,而且我知道许多讲师在课堂上禁止使用NR。在数字专家中,这些书也以“足以使您陷入困境的信息”而闻名。但是他们唯一的建议通常是使用他们的个人代码或购买NAG。
在http://www.netlib.org/上建议的其他高质量数字库的集合