Armadillo C++ Linear Algebra Library
http://arma.sourceforge.net
Contents
========
1: Introduction
2: Citation Details
3: Requirements
4: Linux and Mac OS X: Installation
5: Linux and Mac OS X: Compiling & Linking
6: Windows: Installation
7: Windows: Compiling & Linking
8: Support for OpenBLAS, Intel MKL and AMD ACML
9: Support for ATLAS
10: Documentation / API Reference Manual
11: MEX Interface to Octave
12: Bug Reports and Frequently Asked Questions
13: License
14: Developers and Contributors
15: Related Software
1: Introduction
===============
Armadillo is a high quality C++ linear algebra library,
aiming towards a good balance between speed and ease of use.
It's useful for algorithm development directly in C++,
and/or quick conversion of research code into production environments.
The syntax (API) is deliberately similar to Matlab.
The library provides efficient classes for vectors, matrices and cubes,
as well as 150+ associated functions (eg. contiguous and non-contiguous
submatrix views). Various matrix decompositions are provided through
integration with LAPACK, or one of its high performance drop-in replacements
(eg. OpenBLAS, Intel MKL, AMD ACML, Apple Accelerate framework, etc).
An automatic expression evaluator (via C++ template meta-programming)
combines several operations (at compile time) to increase efficiency.
The library can be used for machine learning, pattern recognition,
signal processing, bioinformatics, statistics, econometrics, etc.
The library is open-source software, and is distributed under a license
that is useful in both open-source and commercial/proprietary contexts.
Armadillo is primarily developed at Data61 / NICTA (Australia),
with contributions from around the world. More information
about Data61 can be obtained from http://data61.csiro.au
Main developers:
Conrad Sanderson - http://conradsanderson.id.au
Ryan Curtin - http://ratml.org
2: Citation Details
===================
Please cite the following tech report if you use Armadillo in your
research and/or software. Citations are useful for the continued
development and maintenance of the library.
Conrad Sanderson.
Armadillo: An Open Source C++ Linear Algebra Library for
Fast Prototyping and Computationally Intensive Experiments.
Technical Report, NICTA, 2010.
3: Requirements
===============
Armadillo makes extensive use of template meta-programming, recursive templates
and template based function overloading. As such, C++ compilers which do not
fully implement the C++ standard may not work correctly.
The functionality of Armadillo is partly dependent on other libraries:
LAPACK, BLAS, ARPACK and SuperLU. The LAPACK and BLAS libraries are
used for dense matrices, while the ARPACK and SuperLU libraries are
used for sparse matrices. Armadillo can work without these libraries,
but its functionality will be reduced. In particular, basic functionality
will be available (eg. matrix addition and multiplication), but things
like eigen decomposition or matrix inversion will not be.
Matrix multiplication (mainly for big matrices) may not be as fast.
As Armadillo is a template library, we recommended that optimisation
is enabled during compilation of programs that use Armadillo.
For example, for GCC and Clang compilers use -O2 or -O3
4: Linux and Mac OS X: Installation
===================================
You can install Armadillo on your system using the procedure detailed below,
or use Armadillo without installation (detailed in section 5).
Installation procedure:
* Step 1:
Ensure a C++ compiler is installed on your system.
Caveat: on Mac OS X you will need to install Xcode
and then type the following command in a terminal window:
xcode-select --install
* Step 2:
Ensure the CMake tool is installed on your system.
You can download it from http://www.cmake.org
or (preferably) install it using your package manager.
On Linux-based systems, you can get CMake through
PackageKit, yum, dnf, apt, aptitude, ...
On Mac OS X systems, you can get CMake through MacPorts or Homebrew.
* Step 3:
Ensure LAPACK and BLAS (or their equivalents) are installed on your system.
On Mac OS X this is not necessary.
If you are using sparse matrices, also install ARPACK and SuperLU.
Caveat: only SuperLU version 4.3 can be used!
On Linux-based systems, the following libraries are recommended
to be present: LAPACK, BLAS, ARPACK, SuperLU and ATLAS.
LAPACK and BLAS are the most important. It is also necessary to
install the corresponding development files for each library.
For example, when installing the "lapack" package, also install
the "lapack-devel" or "lapack-dev" package.
Caveat: for better performance, we recommend using the multi-threaded
OpenBLAS library instead of standard BLAS.
See http://xianyi.github.com/OpenBLAS/
* Step 4:
Open a terminal window, change into the directory that was created
by unpacking the armadillo archive, and type the following commands:
cmake .
make
The full stop separated from "cmake" by a space is important.
CMake will figure out what other libraries are currently installed
and will modify Armadillo's configuration correspondingly.
CMake will also generate a run-time armadillo library, which is a
wrapper for all the relevant libraries present on your system
(eg. LAPACK, BLAS, ARPACK, SuperLU, ATLAS).
If you need to re-run cmake, it's a good idea to first delete the
"CMakeCache.txt" file (not "CMakeLists.txt").
Caveat: out-of-tree builds are currently not fully supported;
eg, creating a sub-directory called "build" and running cmake ..
from within "build" is currently not supported.
* Step 5:
If you have access to root/administrator/superuser privileges
(ie. able to use "sudo"), type the following command:
sudo make install
If you don't have root/administrator/superuser privileges,
type the following command:
make install DESTDIR=my_usr_dir
where "my_usr_dir" is for storing C++ headers and library files.
Caveat: make sure your C++ compiler is configured to use the
"lib" and "include" sub-directories present within this directory.
5: Linux and Mac OS X: Compiling & Linking
==========================================
The "examples" directory contains several quick example programs
that use the Armadillo library.
In general, programs which use Armadillo are compiled along these lines:
g++ example1.cpp -o example1 -O2 -larmadillo
If you want to use Armadillo without installation,
or you're getting linking errors, compile along these lines:
g++ example1.cpp -o example1 -O2 -I /home/blah/armadillo-6.400.3/include -DARMA_DONT_USE_WRAPPER -lblas -llapack
The above command line assumes that you have unpacked the armadillo archive into /home/blah/
You will need to adjust this for later versions of Armadillo,
and/or if you have unpacked into a different directory.
Notes:
* To use the high speed OpenBLAS library instead of BLAS,
replace -lblas -llapack with -lopenblas -llapack
To get OpenBLAS, see http://xianyi.github.com/OpenBLAS/
* On most Linux-based systems, using -lblas -llapack should be enough;
however, on Ubuntu and Debian you may need to add -lgfortran
* On Mac OS X, replace -lblas -llapack with -framework Accelerate
* If you have ARPACK present, also link with it by adding -larpack to the command line
* If you have SuperLU present, also link with it by adding -lsuperlu to the command line
Caveat: only SuperLU version 4.3 can be used!
6: Windows: Installation
========================
The installation is comprised of 3 steps:
* Step 1:
Copy the entire "include" folder to a convenient locatio
没有合适的资源?快使用搜索试试~ 我知道了~
armadillo-6.400.3.tar.gz_armadillo
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 83 浏览量
2022-07-15
11:11:18
上传
评论
收藏 5.2MB GZ 举报
温馨提示
共483个文件
hpp:439个
cmake:11个
txt:6个
高质量的线性代数库,在计算速度和易用性方面有着较好的平衡。
资源推荐
资源详情
资源评论
收起资源包目录
armadillo-6.400.3.tar.gz_armadillo (483个子文件)
armadillo 22KB
config.hpp.cmake 7KB
ARMA_FindMKL.cmake 4KB
Makefile.cmake 2KB
ARMA_FindSuperLU.cmake 2KB
ARMA_FindATLAS.cmake 2KB
ARMA_FindACMLMP.cmake 1KB
ARMA_FindACML.cmake 1KB
ARMA_FindOpenBLAS.cmake 1KB
ARMA_FindLAPACK.cmake 1KB
ARMA_FindBLAS.cmake 991B
ARMA_FindARPACK.cmake 660B
doxygen.config 9KB
configure 428B
wrapper.cpp 61KB
example1.cpp 4KB
armaMex_demo.cpp 2KB
readMatTest.cpp 898B
lapack_win64_MT.dll 7.96MB
blas_win64_MT.dll 1.49MB
main.doxy 409B
Mat_meat.hpp 174KB
auxlib_meat.hpp 117KB
SpMat_meat.hpp 116KB
Cube_meat.hpp 100KB
diskio_meat.hpp 99KB
subview_meat.hpp 75KB
Proxy.hpp 65KB
field_meat.hpp 60KB
unwrap.hpp 59KB
subview_cube_meat.hpp 53KB
gmm_diag_meat.hpp 50KB
Mat_bones.hpp 38KB
sp_auxlib_meat.hpp 36KB
SpSubview_meat.hpp 34KB
Col_meat.hpp 34KB
wrapper_lapack.hpp 33KB
Row_meat.hpp 32KB
traits.hpp 32KB
eglue_core_meat.hpp 31KB
glue_times_meat.hpp 30KB
subview_each_meat.hpp 29KB
debug.hpp 29KB
SpMat_bones.hpp 28KB
def_lapack.hpp 27KB
armaMex.hpp 25KB
SpSubview_iterators_meat.hpp 24KB
Cube_bones.hpp 23KB
eop_core_meat.hpp 22KB
subview_elem1_meat.hpp 21KB
diagview_meat.hpp 20KB
subview_cube_each_meat.hpp 20KB
op_norm_meat.hpp 19KB
spdiagview_meat.hpp 19KB
subview_elem2_meat.hpp 18KB
SpMat_iterators_meat.hpp 18KB
hdf5_misc.hpp 18KB
arma_ostream_meat.hpp 18KB
arrayops_meat.hpp 17KB
op_strans_meat.hpp 17KB
ProxyCube.hpp 17KB
SpProxy.hpp 16KB
op_max_meat.hpp 16KB
op_min_meat.hpp 16KB
spop_min_meat.hpp 16KB
field_bones.hpp 15KB
op_princomp_meat.hpp 15KB
fn_conv_to.hpp 15KB
diagmat_proxy.hpp 15KB
spop_max_meat.hpp 15KB
op_find_meat.hpp 15KB
SpSubview_bones.hpp 15KB
promote_type.hpp 14KB
glue_mixed_meat.hpp 14KB
eop_aux.hpp 14KB
subview_bones.hpp 14KB
running_stat_vec_meat.hpp 13KB
mul_herk.hpp 13KB
fn_elem.hpp 13KB
compiler_setup.hpp 13KB
op_dot_meat.hpp 13KB
subview_field_meat.hpp 13KB
mul_gemv.hpp 12KB
mul_gemm.hpp 12KB
mul_syrk.hpp 12KB
mul_gemm_mixed.hpp 12KB
op_cx_scalar_meat.hpp 12KB
operator_times.hpp 11KB
fn_as_scalar.hpp 11KB
op_htrans_meat.hpp 11KB
diskio_bones.hpp 11KB
op_median_meat.hpp 11KB
fft_engine.hpp 10KB
injector_meat.hpp 10KB
arma_boost.hpp 10KB
wrapper_atlas.hpp 10KB
auxlib_bones.hpp 10KB
constants.hpp 10KB
op_all_meat.hpp 10KB
op_relational_meat.hpp 10KB
共 483 条
- 1
- 2
- 3
- 4
- 5
资源评论
Kinonoyomeo
- 粉丝: 75
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于matlab实现对表面肌电信号进行归一化处理,并对归一化后的图形显示 .rar
- 基于matlab实现单级倒立摆的 T-S 模型 包括 LMI 程序源码
- 图书管理系统(struts+hibernate+spring+ext).rar
- 基于matlab实现此压缩包包含语音信号处理中的语音变声代码加音频.rar
- STM32使用PWM驱动舵机并通过OLED显示
- 基于matlab实现车辆路径规划;遗传算法;matlab代码.rar
- 图书管理系统(struts+hibernate+spring)130225.rar
- 基于matlab实现采用标量衍射理论,实现菲涅尔衍射和夫琅禾费衍射,对光波的波前传播和数字全息的应用有帮助.rar
- JavaScript版去除链表重复元素
- 微信小程序项目-功德木鱼(带设置面板-自定义文字、可选字体颜色、可选木鱼样式)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功