任何人都可以帮助我使用lapack与最新的f#?或者现在不推荐?
我搜索过,只找到http://fdatamining.blogspot.com/但无法FSharp.PowerPack.Math.Providers.dll编译.
编辑:
@Yin,感谢您的博客.在FSharp.PowerPack.Math.Providers.dll从1.9.7.8源编译时,Microsoft.FSharp.Compatibility.permutation使用了几次而无法找到.在你的博客中,据说只是明确地定义它:
type permutation = int –> int.
Run Code Online (Sandbox Code Playgroud)
另外我更换所有Microsoft.FSharp.Compatibility.permutation以Microsoft.FSharp.Math.Permutation得到它编译.还没有测试过.
你能告诉我们svd bug的测试用例吗?
谢谢
我想我在iPhone OS(iOS 4)中发现了一些宝石.
我发现Accelerate Framework提供了128位,256位,512位和1024位整数数据类型.Apple还实现了基本线性代数子程序(BLAS),Apple实现的LAPACK(线性代数PACKage)和数字信号处理(DSP)程序.
我很兴奋,因为据我所知,BLAS和LAPACK是最好的(也是最着名的)图书馆.(如果你从未听过他们的名字,只需谷歌他们,你就会理解.)他们让你解决联立线性方程(即矢量/矩阵表示法中的A x = b),进行快速矩阵乘法等等.
我很确定这些库可以在PowerPC和基于Intel的Mac上使用.但是,当我在Xcode中查找"iOS4中的新功能"文档时,它表示数据类型"在任何架构上都不受支持".当我比较适用于Mac OS X的vecLib参考和适用于iOS的vecLlib参考时,我还发现iOS版本中缺少功能.
我的问题是:
有没有人使用这些库编译任何程序(bignum是我感兴趣的主要领域)并在真正的iPhone设备上成功运行它们?(能够展示他们在图书馆的实际经验的答案者更感谢.)
以下是参考图书馆的链接:
加速框架(iOS参考图书馆)
vecLib参考(Mac OS X参考库)
vecLib参考(iOS参考库)
以下是BLAS和LAPACK的官方常见问题解答:
BLAS FAQ
LAPACK FAQ
我有一个函数指针数组,我用来调用适当的cblas_xgemm(例如,cblas_dgemm或cblas_sgemm等,来自ATLAS/CBLAS).
当我告诉它使用cblas_dgemm函数指针时,这很好用; 使用适当的参数调用dgemm并返回正确的结果.
但是,当我cblas_sgemm通过函数指针调用时,我得到以下输出:
ldc must be >= MAX(N,1): ldc=0 N=2Parameter 14 to routine cblas_sgemm was incorrect
Run Code Online (Sandbox Code Playgroud)
我写了一个简短的测试程序来演示这个问题.cblas_sgemm没有函数指针的调用工作正常.
请特别注意以下gcc警告(另请参阅上面链接的gist,它具有完整的gcc输出):
test_cblas_sgemm.c:20:3: warning: initialization from incompatible pointer type [enabled by default]
Run Code Online (Sandbox Code Playgroud)
如果我cblas_sgemm在函数指针数组定义中注释掉这一行,我就不会得到这样的警告,即使对于该cblas_dgemm行也是如此.但这没有任何意义,因为这两个函数都应该具有相同的返回类型!
以下是适当的行cblas.h:
void cblas_sgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
const int K, const float alpha, const float *A,
const …Run Code Online (Sandbox Code Playgroud) 我正在寻找一个C库来解决线性,如果可能的话,还可以解决形式的非线性矩阵方程Ax = b.对我来说重要的是,包裹不是太大而且是免费的.速度与简单性和矩阵存储的稀疏特征无关.此外,它应该能够并行计算.由于我在数值线性代数的blas/lapack/...领域相当新,如果它包含一个很好的文档,可能还有一些例子,那就太棒了.你能推荐什么套餐吗?我有点不知所措的谷歌结果,也不知道我必须寻找的例程的名称.
我刚发现SuperLu似乎有一个非常好的文档,即使有代码片段.它是用C语言编写的,需要CBLAS.
我按照说明在Ubuntu上安装了LAPACK ,
sudo apt-get install liblapack-dev
Run Code Online (Sandbox Code Playgroud)
因此,我可以找到/usr/lib/libblas/libblas.a和/usr/lib/lapack/liblapack.a,然后测试了它在gfortran与randomsys1实例,
gfortran -llapack -lblas randomsys1.f90
gfortran -llapack -L/usr/lib/lapack -lblas -L/usr/lib/libblas randomsys1.f90
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误(dgesv是一个LAPACK例程):
/tmp/ccnzuuiY.o: In function `MAIN__':
randomsys1.f90:(.text+0xb): undefined reference to `init_random_seed_'
randomsys1.f90:(.text+0x3c2): undefined reference to `dgesv_'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
安装LAPACK有什么问题吗?非常感谢!
我喜欢使用犰狳线性代数库.将八度.m文件移植到C++时变得非常好,特别是当你必须使用本征方法时.
但是当我不得不从我的原生香草G ++中取出我的程序并将其转储到我的ARM处理器上时,我遇到了问题.因为我花了几个小时糊涂我的方式虽然我想分享,所以其他人可能会避免一些挫折.
如果其他人可以添加任何其他我会喜欢它.这是我用来解决这个问题的过程,肯定不是唯一或最好的方法.
我在CentOS 6.5上从源代码构建numpy,没有root访问权限(python -V = 2.7.6).我有来自git的最新numpy源代码.我不能因为我的生活而得到numpy承认atlas libs.我有:
ls -1 /usr/lib64/atlas
libatlas.so.3
libatlas.so.3.0
libcblas.so.3
libcblas.so.3.0
libclapack.so.3
libclapack.so.3.0
libf77blas.so.3
libf77blas.so.3.0
liblapack.so.3
liblapack.so.3.0
libptcblas.so.3
libptcblas.so.3.0
libptf77blas.so.3
libptf77blas.so.3.0
Run Code Online (Sandbox Code Playgroud)
我不知道这些lib是如何产生的,但我只能假设atlas版本比我可以制作的任何标准BLAS/LAPACK版本更快.
将numpy指向这些库的正确方法是什么?我是否export ATLAS, BLAS, LAPACK=...将每个设置为相应的路径?或者我编辑site.cfg文件以包含以下内容:
[default]
library_dirs = /usr/lib64/atlas
[atlas]
library_dirs = /usr/lib64/atlas
atlas_libs = lapack, cblas, f77blas, atlas
Run Code Online (Sandbox Code Playgroud)
我已经尝试了上面的每一个变体,每次运行python setup.py config它都告诉我在我指定的路径中找不到每个库以及一堆其他默认搜索路径.我已经python setup.py config使用site.cfg上面的设置粘贴了运行结果,并且没有设置环境变量:http://pastebin.com/EL9CfaR7.任何帮助表示赞赏.
我是一个使用LAPACK例程的新手,所以我不太了解它们,我想在并行循环(openmp)中使用它们.
我使用Ubuntu 14.04LTS并使用我的包管理器安装LAPACK.安装的版本是:
liblapack3 3.5.0-2ubuntu1 Library of linear algebra routines 3 - shared version
Run Code Online (Sandbox Code Playgroud)
相关的BLAS库是:
libblas3 1.2.20110419-7
Run Code Online (Sandbox Code Playgroud)
所以,我的第一个问题很简单:我可以在使用OpenMP并行化的循环中使用LAPACK的任何子例程或函数吗?Id est,他们是安全的吗?
另一个问题是:我可以在我的纯子程序中使用LAPACK的任何子程序或函数吗?id est,在我编写的子程序中定义为纯子程序.
如果这些问题的答案是"不是所有LAPACK程序,而是其中一些程序",那么,我可以使用以下子程序吗?:
最后一个问题:LAPACK程序是否使用了我的所有内核?,id est,它们是否已经并行?
我想打电话给CHISQ功能的累积分布函数在GSL从乐。
这是我的乐曲脚本 chisq.raku
#Calling gsl_cdf_chisq-P function in GSL from raku
use NativeCall;
sub gsl_cdf_chisq_P(num64, num64) returns num64 is native('gsl') { * };
sub gsl_cdf_chisq_Q(num64, num64) returns num64 is native('gsl') { * };
sub pchisq($q, $df, $lower-tail = True) {
my $a = $q.Num;
my $b = $df.Num;
if $lower-tail == True {
return gsl_cdf_chisq_P($a, $b)
} else {
return gsl_cdf_chisq_Q($a, $b)
}
}
say pchisq(3,4);
Run Code Online (Sandbox Code Playgroud)
执行此脚本时,出现以下错误:
Cannot locate native library '(null)': /usr/lib/x86_64-linux-gnu/libgsl.so: undefined symbol: cblas_ctrmv …Run Code Online (Sandbox Code Playgroud)