安下载编程开发

分类分类

Armadillo(线性代数库)

Armadillo(线性代数库)

v9.600.5 官方版

大小:6.60 MB 更新:2023/03/24

类别:编程工具系统:WinXP, Win7, Win8, Win10, WinAll

立即下载

  Armadillo是用于C ++语言的高质量线性代数库(矩阵数学),旨在在速度和易用性之间取得良好的平衡,提供类似于Matlab 的高级语法和功能,可用于直接在C ++中进行算法开发,或将研究代码快速转换为生产环境(例如,软件和硬件产品),能够为向量、矩阵和立方体提供有效的类(一阶,二阶和三阶张量),支持密集和稀疏矩阵,并支持整数、浮点数和复数。其通过与LAPACK或其高性能替代产品之一集成(例如,多线程Intel MKL或OpenBLAS),可以提供各种矩阵分解。其还具有复杂的表达式评估器(基于模板元编程)可自动组合多个操作以提高速度和效率,可以自动使用OpenMP多线程(并行化)来加快计算量大的操作,根据许可许可提供,对开放源代码和专有(封闭源)软件均有用,可用于机器学习,模式识别,计算机视觉,信号处理,生物信息学,统计,金融等方面。

Armadillo(线性代数库)

软件功能

  Armadillo是一个全面的,基于模板的C ++线性代数库,为LAPACK和ATLAS库设计了替代接口。

  该工具的创建旨在提供速度和易用性,以及类似于Matlab的熟悉语法(或API)。

  Armadillo允许您编写各种类型的数学函数的脚本,这些函数可以集成到组件或应用程序中。它可以帮助您开发机器学习中的算法,处理信号,生成统计信息甚至识别模式。

  它可以方便地用于生物信息学,统计学或其他科学研究,并为您提供向量,矩阵,立方体函数类。

  它可以处理多种类型的数字,例如整数,浮点数或复数,以及三角函数。

  Armadillo与LAPACK或其他类似工具很好地集成在一起,使您可以继承和扩展其功能。它允许您创建用于求解线性方程式和矩阵的例程或分解矩阵。

  Armadillo是一个C ++矩阵库,捆绑了LAPACK和ATLAS库的接口,还提供统计功能并支持复数。

软件特色

  通过与库集成,例如英特尔MKL,AMD ACML或某些版本的BLAS,可以提供类似的代数解决方案。

  该工具为您提供了一个自动表达式评估器,您可以通过特定模板访问该评估器,并使用它来组合多种算法。

  它允许您通过同时执行多个操作来提高编译效率和编译速度。

  Armadillo可以与一种受支持的开发环境(例如C ++或Visual C ++)以及GCC,Intel pr MSVC C ++编译器一起使用。

  此外,该工具还具有详细的文档,可让您习惯于生成的语法和功能。

  Armadillo还随附模板和示例,旨在帮助您开始定义函数或算法。

安装方法

  Armadillo是一个C++开发的线性代数库,比如在vs2010上安装的具体步骤如下:

  1、下载解压后把其中的include文件夹完整拷贝出来,放到某处,我放在了D:\Armadillo里;

  2、修改D:\Armadillo\include\armadillo_bits\config.hpp,将

  #define ARMA_USE_LAPACK

  #define ARMA_USE_BLAS

  这两句取消注释。表示使用这两个库。

  3、安装lapack和blas。实际上第一步中下载的压缩包里自带了这两个库,但是在vs2010中用这两个库会出现卡死现象,其他编译环境没有测试。可以去下载blas.lib,libf2c.lib,lapack.lib三个库,并在编译环境的额外依赖库中添加这三个库。(linker-> input-> additional dependencies)

Armadillo(线性代数库)

  4、在编译器的include目录中添加include文件夹的路径以及第三步中三个库文件所在位置。如图:

Armadillo(线性代数库)

  5、使用代码如下:

Armadillo(线性代数库)

常见问题

  我可以在没有LAPACK和BLAS的情况下使用Armadillo吗?

  基本功能将可用(例如矩阵加法和乘法),但本征分解之类的功能将不可用。矩阵乘法(主要用于大型矩阵)可能不那么快。

  我在哪里可以获得LAPACK,BLAS等?

  对于基于Linux的系统(例如Fedora和Ubuntu),可以使用预构建的OpenBLAS,LAPACK,BLAS和ATLAS软件包。您需要在安装Armadillo之前明确安装它们。确保您还安装了相关的开发包(包含头文件)。

  macOS随附Accelerate框架,该框架是BLAS和LAPACK的优化实现。默认情况下,CMake安装程序可以使用Accelerate框架。

  对于Windows系统,Armadillo带有标准LAPACK和BLAS的预编译64位版本。有关更多信息,请参见下载页面。

  我可以使用高速LAPACK和BLAS替代品(例如 OpenBLAS, MKL)吗?

  是。CMake安装程序应该确定它们在您的系统上可用。否则,您可以直接与此类库链接-请参阅先前问题的答案。

  如何将Armadillo与在非标准位置安装的OpenBLAS一起使用?

  打开Armadillo tar.xz档案的包装,请勿使用CMake安装程序进行安装。

  使用以下命令编译程序:

  g ++ prog.cpp -o prog -O2 -I /home/blah/armadillo-7.600.2/include -DARMA_DONT_USE_WRAPPER -L /home/blah/OpenBLAS-0.3.5 -lopenblas

  使用您的主目录名称替换/ home / blah

  将/home/blah/OpenBLAS-0.3.5替换为包含OpenBLAS库的目录名称

  您可能还需要告诉系统链接器在哪里可以找到OpenBLAS库(例如,通过在Linux中修改LD_LIBRARY_PATH环境变量

更新日志

  通过vectorise()更快地处理多维数据集

  行速index_min()和index_max()

  扩展了join_rows()和join_cols()来处理最多4个矩阵的连接

  扩展了.save()和.load()以允许以CSV格式存储稀疏矩阵

  添加randperm()以生成具有整数序列的随机排列的向量

精品推荐
同类推荐
相关下载
  • 最新排行
  • 最热排行
  • 评分最高
编程开发排行榜
实时热词