问题标签 [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.
fortran - Fortran 编译器在将属性视为“保存属性”方面的差异?
我们有这个旧的 Fortran 脚本,我们正在尝试使用英特尔的 Visual Fortran 重新编译,但我们得到的计算错误和与旧编译版本的代码不同的结果。
我们在下面的代码中发现了我们认为的问题(大致来自 Numerical Recipes)。
问题是每次调用都会重置“it”参数,但是它应该存储在函数调用之间。
我们对可能是什么问题的最佳猜测是,较旧的编译器可能已将“它”视为“保存属性”,因此将其存储在函数调用之间。
我们在这里可能完全错了,如果某些 Fortran 大师可以证实这一点或有更好的解释,我们会很乐意提供帮助!
c - 关于本书数字食谱的问题,第 2 版:向量的内存分配/解除分配
Numerical recipes, 2nd edition ( http://numerical.recipes ) 一书使用以下代码为带有下标 [nl..nh] 的向量 v 分配/释放内存:
问题1:加/减NR_END
元素的目的是什么?
问题2:转换float *
为char *
in的目的是什么free_vector
?
我知道这+1
是malloc
由于数组的包含右边界(通常在 C 中不包含)。
fortran - Fortran 未定义对 _[子例程名称] 的引用
我正在测试helloBessel
书中所写的 Fortran 90 vol2 中的 Numerical Recipies。
它给出了这个错误:
我尝试制作较小的示例以防万一:
我是这样编译的:
它仍然给出这个错误:
是代码问题还是编译过程有问题?我究竟做错了什么?我的问题与其他问题不同,因为我的版本足够高,不会引起问题,而且我已经告诉编译器所有文件,但这并不能解决问题。
模块中的相关代码
更新:根据Vladimir F的回答,我创建了 test.f90,
real(SP) :: z = 1, t
在 helloTest 中更新,编译为
结果得到了我的 3.0000。谢谢!
c++ - 在我的 C++ 代码中的多个标题中包含一个标题
我正在尝试在我的代码中包含来自《数字食谱》一书的头文件。我必须包含的头文件是 nr3.hpp 和 interp_1d.hpp。interp_1d
需要定义nr3
才能工作。
我将编写一些出现在 interp_1d.hpp 上的代码,以便您了解我正在处理 interp_1d 代码的内容:
此头文件中没有标头保护。结果,当我尝试在多个其他头文件中输入它时,我收到错误“66 个重复符号用于架构 x86_64”。
我的代码结构如下:
我不知道如何克服这个问题。我希望能够在不止一部分代码中使用 interp_1d.hpp 函数。我尝试包括头守卫,但这不起作用:
有谁知道我如何在多个其他标头中使用 interp_1d 标头而不会发生此错误?