问题标签 [gsl]
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.
c++ - 转换 gsl 线性代数以用于 scalapack 或其他并行矩阵库
我有一个深度嵌入 GNU 科学库 (GSL) 矩阵算术的代码,该代码的主要计算是求解一个大型线性方程组,该方程组需要很长时间串行和 GSL 和 BLAS 函数,有没有办法并行化此计算或将其转换为在 ScaLAPACK 等已经并行的库中使用?
gmp - gmp 在给定精度下浮动下限
我正在编写一个带有 GMP 及其任意精度浮点数的 C 库。我需要砍掉“小数字”,但我不知道如何确定什么是小数字。
假设我将 GMP 浮点数 (mpf_t) 的精度设置为 n 位。那么在计算中什么被认为是小的呢?
对于任何可能熟悉 GSL(GNU 科学图书馆)的人,我需要与他们的 GSL_DBL_EPSILON 等效的版本,在我的 32 位计算机上,它恰好是 2.2204460492503131e-16。
在此先感谢,j。
c++ - C++ 编译 - x86_64 上的 GSL
我正在尝试编译以下代码:http ://www-personal.umich.edu/~mejn/dcbm/KLOptimization.cpp
但我从 g++ 收到以下错误消息:
我有运行 iOS 10.7.3 的 MacBook Air。g++ 是 i686-apple-darwin11-llvm-g++-4.2。
我使用“brew install gsl”安装了 GSL,它给出了以下输出:
c++ - 需要一个示例代码来使用 gsl LU 分解获得方阵的逆
有人可以向我展示一个关于如何调用 gsl 函数 gsl_linalg_LU_decomp() 并与获取矩阵逆相关的示例 C++ 代码吗?非常感谢!
c++ - 用于多维最小化的 GNU GSL C++ 错误代码 27:迭代没有朝着解决方案取得进展
我正在尝试使用 GNU 科学库,包多维最小化来找到函数的最小值。我使用的方法是在函数中实现的 Broyden-Fletcher-Goldfarb-Shanno (BFGS) 算法
不幸的是,在第一次迭代之后
我收到代码 27 的错误:迭代未在解决方案方面取得进展。
我尝试了几个初始点和不同的公差/步骤组合,但仍然弹出相同的错误。你能告诉我这里的罪魁祸首是什么吗?
这个想法是找到一个由 13 个原子组成的簇的势能最小值。能量在函数 my_f 中计算,其中 X、Y 和 Z 是原子坐标。使用的参数是
我试图最小化的函数是铝 13 原子簇的 Gupta-Potential:
// 这是我的 GUPTA 潜力//
// 这是我的渐变函数//
c++ - 将 MPI_Op_create 与外部库函数(如 boost 或 GSL)一起使用
我只是想知道这是否可行,以及是否有人有使用 MPI_Op_create 创建一个 Op 的示例,该函数内部具有许多 gsl 和/或 boost 函数,以将其传递给 mpi_reduce 命令。在我的情况下,顺序无关紧要,但串行和 Openmp 对于我想做的事情来说太慢了,所以我想尝试将其转换为 mpi。
而不是标准的 C 示例
然后将其传递给
MPI_Op_create( (MPI_User_function *)addem, 1, &op );
我会将其更改为类似但比这更复杂的东西
c - OpenMP 和 GSL RNG - 性能问题 - 4 线程实现比纯顺序线程慢 10 倍(四核 CPU)
我正在尝试将我的 C 项目从顺序编程转变为并行编程。尽管现在大部分代码都为此目的从头开始重新设计,但随机数的生成仍然是其核心。因此,随机数生成器 (RNG) 的性能不佳会严重影响程序的整体性能。
我写了一些代码行(见下文)来显示我所面临的问题,而且没有太多冗长。
问题如下:每当线程数 nt 增加时,性能就会明显变差。在这个工作站(linux 内核 2.6.33.4;gcc 4.4.4;intel quadcore CPU)上,在 nt=4 的情况下,并行 for 循环的完成时间比在 nt=1 情况下的时间长大约 10 倍,无论迭代次数 n 多少。
这种情况似乎在这里有所描述,但重点主要是fortran,一种我知之甚少的语言,所以我非常感谢一些帮助。
我尝试按照他们的想法创建不同的 RNG(具有不同的种子)以供每个线程访问,但性能仍然非常糟糕。实际上,每个线程的这个不同的种子点也让我感到烦恼,因为我看不出如何保证最终生成的数字的质量(缺乏相关性等)。
我已经考虑过完全放弃 GSL 并自己实现一个随机生成器算法(例如 Mersenne-Twister),但我怀疑我以后会遇到同样的问题。
非常感谢您的回答和建议。请务必询问我可能忘记提及的任何重要事项。
编辑:实施了 lucas1024(pragma for-loop 声明)和 JonathanDursi(播种;将“a”设置为私有变量)建议的更正。在多线程模式下性能仍然非常缓慢。
编辑 2: Jonathan Dursi 建议的实施解决方案(见评论)。
c++ - 使用 gsl_rng_uniform 时出现分段错误
我正在编写一个使用 GSL 的随机数生成器的程序,当我尝试将随机数生成器的实例传递给函数时出现分段错误。这是我的源代码:
显然 r 的值在算法运行时会发生变化。当我进行回溯时,我得到的 r 有时为空,有时为 0xa。我不确定为什么。我认为这可能与gsl_rng_uniform 函数的 const 指针参数有关,如此处所述。
这是调试器的输出:
c++ - C ++中的复矩阵指数
实际上是否可以在 c / c++ 中计算复数矩阵的矩阵指数?
我已经设法使用 GNU 科学库中的 blas 函数得到两个复杂矩阵的乘积。对于 matC = matA * matB:
我已经设法通过使用未记录的
但这似乎不接受复杂的论点。
有没有办法做到这一点?我曾经认为 c++ 可以做任何事情。现在我认为它过时和神秘......
windows-7 - cygwin 未定义对 _gsl_rng_ windows 7 的引用
我使用的是 Windows 7。对于 C++,我先为 java 安装了 eclipse,然后在其中添加了 cdt。我还在我的系统中安装了 cygwin。此外,将环境变量的路径更改为C:\Programs\Cygwin\bin
. 我在程序中使用过 gsl
我还包含了 lib 文件
但是当我从 cygwin 发出命令时,它给了我错误:
undefined reference to _gsl_rng_default
等等。我还检查了我的 cygwin 文件夹中是否存在 gsl 文件夹,它就在那里。我一直试图解决这个问题几个小时,但没有任何效果。谁能帮我?