问题标签 [numerical-recipes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
72 浏览

fortran - Fortran 编译器在将属性视为“保存属性”方面的差异?

我们有这个旧的 Fortran 脚本,我们正在尝试使用英特尔的 Visual Fortran 重新编译,但我们得到的计算错误和与旧编译版本的代码不同的结果。

我们在下面的代码中发现了我们认为的问题(大致来自 Numerical Recipes)。

问题是每次调用都会重置“it”参数,但是它应该存储在函数调用之间。

我们对可能是什么问题的最佳猜测是,较旧的编译器可能已将“它”视为“保存属性”,因此将其存储在函数调用之间。

我们在这里可能完全错了,如果某些 Fortran 大师可以证实这一点或有更好的解释,我们会很乐意提供帮助!

0 投票
1 回答
120 浏览

c - 关于本书数字食谱的问题,第 2 版:向量的内存分配/解除分配

Numerical recipes, 2nd edition ( http://numerical.recipes ) 一书使用以下代码为带有下标 [nl..nh] 的向量 v 分配/释放内存:

问题1:加/减NR_END元素的目的是什么?

问题2:转换float *char *in的目的是什么free_vector

我知道这+1malloc由于数组的包含右边界(通常在 C 中不包含)。

0 投票
1 回答
1075 浏览

fortran - Fortran 未定义对 _[子例程名称] 的引用

我正在测试helloBessel书中所写的 Fortran 90 vol2 中的 Numerical Recipies。

它给出了这个错误:

我尝试制作较小的示例以防万一:

我是这样编译的:

它仍然给出这个错误:

是代码问题还是编译过程有问题?我究竟做错了什么?我的问题与其他问题不同,因为我的版本足够高,不会引起问题,而且我已经告诉编译器所有文件,但这并不能解决问题。

模块中的相关代码

更新:根据Vladimir F的回答,我创建了 test.f90,

real(SP) :: z = 1, t在 helloTest 中更新,编译为

结果得到了我的 3.0000。谢谢!

0 投票
1 回答
90 浏览

c++ - 在我的 C++ 代码中的多个标题中包含一个标题

我正在尝试在我的代码中包含来自《数字食谱》一书的头文件。我必须包含的头文件是 nr3.hpp 和 interp_1d.hpp。interp_1d需要定义nr3才能工作。

我将编写一些出现在 interp_1d.hpp 上的代码,以便您了解我正在处理 interp_1d 代码的内容:

此头文件中没有标头保护。结果,当我尝试在多个其他头文件中输入它时,我收到错误“66 个重复符号用于架构 x86_64”。

我的代码结构如下:

我不知道如何克服这个问题。我希望能够在不止一部分代码中使用 interp_1d.hpp 函数。我尝试包括头守卫,但这不起作用:

有谁知道我如何在多个其他标头中使用 interp_1d 标头而不会发生此错误?