Eigen 模板库的简介
来源:互联网 发布:uefi ubuntu 双系统 编辑:程序博客网 时间:2024/05/22 10:54
Eigen 是一个 C++ 模板库,主要用于:线性代数、矩阵、向量、数值计算和相关算法。
一、特点:
1、通用性
支持所有矩阵,从小型固定矩阵到任意大密集矩阵、稀疏
支持所有标准数据类型,包括 std::complex, integers,并且很容易扩展到自定义类型
支持不同的矩阵分解(如QR,SVD等)和几何特性
其 unsupported modules 提供和很多特殊性质,如非线性优化、矩阵函数、多项式求解、快速傅里叶变换等等。
2、快速性
表达式模板允许智能删除临时数据,并能适当使用惰性编译
向量化处理:支持 SSE 2/3/4, AVX, FMA, AVX512, ARM NEON (32-bit and 64-bit), PowerPC AltiVec/VSX (32-bit and 64-bit) 指令集, 并且现在支持 S390x SIMD (ZVector) 单指令多数据
充分优化固定大小的矩阵: 避免使用动态内存分配, 但需要时会展开循环
对于大型矩阵,特别注意缓存友好
3、可靠性
算法根据可靠性小心选择。可靠性取舍清楚地列出,能进行非常安全的分解
通过自己的测试套件进行了全面测试,BLAS 标准测试套件和 LAPACK 测试条件的一些部分
4、完美性
表达式模板对C++语法来说,语义清楚,表达式优雅
执行算法感觉像复制的伪代码
5、多编译器支持
为了保证可靠性,在很多编译器上运行了测试套件,绕过了所有的编译器bugs。Eigen 是标准的C++98 库,保持了非常合理的编译时间。
二、需求
仅仅需要 C++ 标准库。运用CMake编译系统,不过仅用于建立文档和单元测试,自动安装。如果只是用Eigen,可以直接使用,不需要连接二进制库,不需要配置头文件。Eigen 是一个定义在头文件中的纯模板库。
三、编译器支持
GCC, 4.4 及以上
MSVC (Visual Studio), 2010 及以上
Intel C++ compiler. Enabling the -inline-forceinline option is highly recommended.
LLVM/CLang++, 3.4 及以上
XCode 4 and newer. Based on LLVM/CLang.
MinGW, recent versions. Based on GCC.
QNX’s QCC compiler.
注:在 ROS 系统中大量使用了 Eigen
- Eigen 模板库的简介
- 线性算术的C++模板库 Eigen
- 基于C++模板的线性代数库---Eigen
- eigen C++模板矩阵库
- Eigen 3.1.3 发布,线性算术的C++模板库
- Eigen——线性代数运算的C++模板库
- Eigen C++ 模板库,用来矩阵向量的线性操作
- Eigen库的使用
- Eigen 库的配置
- 线性算术的C++模板库 Eigen(在VS2010中的下载、配置与使用)
- eigen库的基本操作
- c++的数学库---eigen
- PCL(Point Cloud Library)的第三方库简介(boost,eigen,flann,vtk,qhull)
- PCL(Point Cloud Library)的第三方库简介(boost,eigen,flann,vtk,qhull)
- PCL(Point Cloud Library)的第三方库简介(boost,eigen,flann,vtk,qhull)
- eigen(一) 简介
- Eigen库
- Eigen库出现的对齐问题
- Nginx基础与主机服务部署
- 阻止表单多次被点击
- MySQL优化系列(八)--锁机制超详细解析(锁分类、事务并发、引擎并发控制)
- Nginx 核心模块、HTTP模块、邮件模块解析
- Jmeter 接口测试工具性能测试需求分析
- Eigen 模板库的简介
- NDK入门 第一个NDK项目
- IDEA+Maven+TestNG+Selenium环境搭建
- easyui 设置dataGrid选中行的背景颜色
- 深入理解 Android 卷I
- C++知识点-虚函数的作用和使用方法
- 数据结构基础温故-3.队列
- 艺多不压身
- SharedPreferences