一、ALGLIB简介
ALGLIB是一个跨平台的数值分析和数据处理库。它支持多种编程语言(C ++,C#,Delphi)和多种操作系统(Windows和POSIX,包括Linux)。
ALGLIB功能非常强大,其主要功能包括:
- 数据分析(分类/回归,统计)
- 优化和非线性求解器
- 插值和线性/非线性最小二乘拟合
- 线性代数(直接算法,EVD / SVD),直接和迭代线性求解器
- 快速傅立叶变换和许多其他算法
二、ALGLIB库下载
本教程所使用的环境为Visual Studio 2017开发环境,其它版本的VS配置过程相似。首先我们进入ALGLIB官网(http://www.alglib.net/)进行下载,对于初学者建议选择ALGLIB免费版本进行下载。本教程选择的当前最新版本ALGLIB 3.15.0 for C++,将alglib-3.15.0.cpp.gpl下载至本地,并进行解压得到cpp文件夹。
cpp文件夹中主要包括:
- src:资源文件夹(里面包括了我们后面配置所需的.cpp文件与.h文件)
- tests:测试代码Demo文件夹,用于测试ALGLIB第三方库是否添加成功
- gpl2, gpl3:这是开源协议,不用管
- manual.cpp:官方帮助文档,非常详细!!
三、ALGLIB库配置及测试
虽然在manual.cpp官方文档中对于ALGLIB库配置有相关说明,如下图所示
但是我感觉还是文档描述的不是很清楚,有些地方还是需要注意一下,所有我记录一下(其实正如文档所说的,非常简单)。本教程将演示linalg线性代数算法包的配置(tests文件夹中也有相关的Demo),关键步骤如下:
- 首先用VS2017创建一个控制台示例工程(注意:2017版本VS会默认使用pch.h预编译头,建议在项目属性中取消使用pch.h预编译头,否则会和第三方库代码中stdafx.h预编译头有冲突)。
- 然后将我们所需功能对应的h.,cpp.文件加入到我们项目源文件中(注意:需要处理好各个包之间的依赖关系,都要拷贝进源文件夹添加到项目中,特别是stdafx.h,可别丢了),并且在VS的解决方案资源管理器中添加现有项。
- 最后在主函数中,添加以下代码进行编译测试,若程序正常执行则已经完成了算法库的配置。
#include "linalg.h"
int main()
{
alglib::real_2d_array a("[[1]]");
alglib::spdmatrixcholesky(a, 1, true);
return 0;
}
根据自己的需求添加相应的ALGLIB算法库,ALGLIB算法库很强大,非常值得学习!
大家在配置过程中有什么疑问,欢迎在下面留言,谢谢大家~