标签: gsl

Haskell线性代数?

我开始测试Haskell的线性代数.有没有人为此目的提供最佳套餐的建议?使用Haskell进行基本矩阵操作的任何其他好资源?

haskell wiki 为此列出了几个资源.我目前专注于hmatrixbindings-gsl,两者看起来都很有希望.

haskell matrix linear-algebra gsl

28
推荐指数
1
解决办法
6100
查看次数

安装gsl gem的问题

我可以在我的主目录中成功安装gsl库,但是当我尝试安装gsl gem时,我得到了一个我不理解的大错误列表.我想知道是否有人可以告诉我为什么我会得到这些错误.我可以说我有:

成功安装gsl; 至少那是它的样子.我指出了gsl-config的路径

这是错误日志的样子:

  Building native extensions.  This could take a while...
  ERROR:  Error installing gsl:
    ERROR: Failed to build gem native extension.

  /home/ted/ruby-1.9.1/bin/ruby extconf.rb install gsl
  checking gsl version... 1.15
  checking gsl cflags... -I/home/ted/gsl-1.15/include
  checking for main() in -lcblas... no
  checking gsl libs... -L/home/ted/gsl-1.15/lib -lgsl -lgslcblas -lm
  checking for round()... no
  checking for rngextra/rngextra.h... no
  checking for qrngextra/qrngextra.h... no
  checking for ool/ool_version.h... no
  checking for tensor/tensor.h... no
  checking for jacobi.h... no
  checking for gsl/gsl_cqp.h... no
  checking for gsl/gsl_multimin_fsdf.h... …
Run Code Online (Sandbox Code Playgroud)

ruby gem gsl

21
推荐指数
5
解决办法
7700
查看次数

为什么MATLAB/Octave在特征值问题中用C++擦拭地板?

我希望标题中的问题的答案是我做了一些愚蠢的事情!

这是问题所在.我想计算一个真实对称矩阵的所有特征值和特征向量.我已经使用GNU Scientific Library在MATLAB中实现了代码(实际上,我使用Octave运行它)和C++ .我在下面提供了完整的代码用于两种实现.

据我所知,GSL带有自己的BLAS API实现,(以下我将其称为GSLCBLAS)并使用我使用以下编译的库:

g++ -O3 -lgsl -lgslcblas
Run Code Online (Sandbox Code Playgroud)

GSL表明这里使用替代BLAS库,如自我优化ATLAS库,以提高性能.我正在运行Ubuntu 12.04,并已从Ubuntu存储库安装了ATLAS软件包.在这种情况下,我编译使用:

g++ -O3 -lgsl -lcblas -latlas -lm
Run Code Online (Sandbox Code Playgroud)

对于所有三种情况,我已经使用随机生成的大小为100到1000的矩阵进行了实验,步长为100.对于每个大小,我执行10个具有不同矩阵的特征分解,并平均所花费的时间.结果如下:

结果图

性能上的差异是荒谬的.对于大小为1000的矩阵,Octave在一秒钟内执行分解; GSLCBLAS和ATLAS大约需要25秒.

我怀疑我可能错误地使用了ATLAS库.欢迎任何解释; 提前致谢.

关于代码的一些注意事项:

  • 在C++实现中,不需要使矩阵对称,因为该函数仅使用它的下三角部分.

  • 在Octave中,该行triu(A) + triu(A, 1)'强制矩阵是对称的.

  • 如果您希望将C++代码编译为您自己的Linux机器,则还需要添加该标志-lrt,因为该clock_gettime功能.

  • 不幸的是我不认为clock_gettime退出其他平台.考虑将其更改为gettimeofday.

八度代码

K = 10;

fileID = fopen('octave_out.txt','w');

for N = 100:100:1000
    AverageTime = 0.0;

    for k = 1:K
        A = randn(N, N);
        A = triu(A) + triu(A, 1)'; …
Run Code Online (Sandbox Code Playgroud)

c++ performance matlab blas gsl

17
推荐指数
2
解决办法
5248
查看次数

为什么 GNU 科学库矩阵乘法比 numpy.matmul 慢?

为什么用 Numpy 的矩阵乘法比用gsl_blas_sgemmGSL快得多,例如:

import numpy as np
import time 


N = 1000
M = np.zeros(shape=(N, N), dtype=np.float)

for i in range(N):
    for j in range(N):
        M[i, j] = 0.23 + 100*i + j

tic = time.time()
np.matmul(M, M)
toc = time.time()
print(toc - tic)
Run Code Online (Sandbox Code Playgroud)

给出 0.017 - 0.019 秒之间的值,而在 C++ 中:

#include <chrono>
#include <iostream>
#include <gsl/gsl_matrix.h>
#include <gsl/gsl_blas.h>

using namespace std::chrono;

int main(void) {

    int N = 1000;

    gsl_matrix_float* M = gsl_matrix_float_alloc(N, N);
    for (int i = …
Run Code Online (Sandbox Code Playgroud)

c++ python performance numpy gsl

17
推荐指数
1
解决办法
712
查看次数

GSL统计数据,有什么步骤?

我想用GSL(Gnu Scientific Lib)来计算数组的标准偏差. http://www.gnu.org/software/gsl/manual/html_node/Mean-and-standard-deviation-and-variance.html

在手册中,函数原型是gsl_stats_sd(const double data [],size_t stride,size_t n)

但是,我不太明白这里的"跨越"是什么.有人会知道它是什么吗?

非常感谢您的任何建议!

-阿尔弗雷德

c c++ statistics gsl standard-deviation

16
推荐指数
1
解决办法
2709
查看次数

加载共享库时出错:libgsl.so.0:无法打开共享对象文件:没有这样的文件或目录

我用gsl.编译完.cpp文件并运行后,我面临以下错误:

加载共享库时出错:libgsl.so.0:无法打开共享对象文件:没有这样的文件或目录

我在以下问题中发现了同样的问题:https://groups.google.com/forum/#!topic / cortex_var / 6vluX7pP0Sk& Linux加载共享库时出错:无法打开共享对象文件:没有这样的文件或目录 & http:/ /www.gnu.org/software/gsl/manual/html_node/Shared-Libraries.html

我已经按照上面的链接写了但是错误仍然存​​在.谁能帮我?

c++ gsl

16
推荐指数
4
解决办法
3万
查看次数

什么是线性回归的BigO?

尝试进行线性回归的系统有多大是合理的?

具体来说:我有一个约300K采样点和~1200个线性项的系统.这在计算上是否可行?

big-o blas linear-regression gsl

15
推荐指数
2
解决办法
1万
查看次数

如何使用msvc2010构建GSL?

我正在使用Qt 4.8.3和QtCreator,我根据这里的说明使用msvc2010编译.然而,现在我需要链接到GSL(Gnu科学图书馆),但是目前我只知道如何使用g ++构建它,正如此处所描述的那样产生链接器错误,这无疑是出于@EvanTeran答案中给出的原因.然而,在我的情况下,通过Cygwin构建Qt使用g ++可能不是一种选择-从来就刚刚结束了在此期间,我试着做只是这多天的噩梦,但不能作为记录在这里.当然有一种方法可以用msvc2010构建gsl,但是怎么样?我安装了VS 2012 Express(虽然我之前从未使用过),以防有使用它的解决方案.

编辑:看看CMake,我最好能够为GSL手动创建CMakeLists.txt文件的整个层次结构.这只是有点太多,所以我放了100pt.关于上述问题的赏金.解决我的问题Visual Studio路由(这里)或与g ++将得到赏金和两个问题的答案.

更新: 下面的答案工作得很好,但不是无缝的,可能是因为我实际上需要在VS2012下编译.需要对代码进行一些调整,例如显式强制转换,在前一个编译器中显然可以容忍,但不是我的.事情进展顺利.

qt shared-libraries visual-studio visual-c++ gsl

15
推荐指数
2
解决办法
8783
查看次数

ld:找不到-lgsl的库

我在OSX工作,我正在尝试运行一个make文件,当我尝试时,我得到以下内容:

ld: library not found for -lgsl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [harm] Error 1
Run Code Online (Sandbox Code Playgroud)

之前我发现我需要获取gsl库并使用mac端口并输入:

sudo port install gsl
Run Code Online (Sandbox Code Playgroud)

进入我的命令行窗口,似乎没有问题.丢失的lgsl配置不正确还是没有配备gsl?我试过谷歌搜索lgsl但没有得到太多.我只是在编程几天,我不知道我是否应该设置路径,甚至真的如何做到这一点.

感谢您提供的任何帮助.

macos path gsl

13
推荐指数
3
解决办法
6万
查看次数

在Mac上安装R gsl软件包

我正在尝试gsl为R 安装软件包,我理解这只是GSL的一个包装,在OSX Mavericks下.我试过了明显的事:

> install.packages('gsl')
Installing package into ‘/Users/myusername/Library/R/3.1/library’
(as ‘lib’ is unspecified)

   package ‘gsl’ is available as a source package but not as a binary

Warning in install.packages :
  package ‘gsl’ is not available (for R version 3.1.0)
Run Code Online (Sandbox Code Playgroud)

所以我跑了

> install.packages('gsl',type = 'source')
Installing package into ‘/Users/myusername/Library/R/3.1/library’
(as ‘lib’ is unspecified)
trying URL 'http://cran.rstudio.com/src/contrib/gsl_1.9-10.tar.gz'
Content type 'application/x-gzip' length 342803 bytes (334 Kb)
opened URL
==================================================
downloaded 334 Kb

* installing *source* package ‘gsl’ ...
** package ‘gsl’ …
Run Code Online (Sandbox Code Playgroud)

macos r gsl

13
推荐指数
3
解决办法
8520
查看次数