[Eigen中文文档] 概述(总目录)

简介: Eigen是基于线性代数的C ++模板库,主要用于矩阵,向量,数值求解器和相关算法。常用的Ceres、G2O等项目均是基于Eigen库。 本系列文章将通过官方文档带你了解Eigen。

概述

英文原文链接

这是 Eigen3 的API文档,你可以下载它以便于离线阅读。

以下是该中文文档目录,分为四部分:


入门

对于第一次接触Eigen,学习Eigen最好的方法就是阅读该文档,这可以让你学会如何使用Eigen编写你的代码。

然后,快速参考页面以非常简洁的格式提供了API的相当完整的描述,这对于回忆特定特性的语法或快速浏览API非常有用。它们目前涵盖了以下两个特性集,将来还会有更多:

  • 稠密矩阵和数组操作
  • 稀疏线性代数

如果你会使用MATLAB,这里有一个Eigen与MATLAB操作对照文档。

从入门开始...


章节

章节是按照不同特性领域来划分的,他们由两个部分组成:用户手册页面、参考页面,前者综合性的描述了不同的特性,后者可以通过相关Eigen模块和类访问 API 文档。

一、稠密矩阵与数组操作

1. Matrix类

2. 矩阵与向量运算

3. Array类与元素操作

4. 块操作

5. 切片和索引

6. 高级初始化

7. 归约、访问者和广播

8. Reshape操作

9. STL迭代器和算法

10. 原始缓冲区接口:Map 类

11. 混叠

12. 存储顺序

13. 对齐问题

二、稠密线性问题与分解

1. 线性代数与分解

2. 稠密分解目录

3. 求解线性最小二乘系统

4. 就地矩阵分解

5. 稠密矩阵分解函数对比

三、稀疏线性代数

1. 稀疏矩阵操作

2. 求解稀疏线性系统

3. 无矩阵求解器

4. 稀疏矩阵快速参考指南

四、几何学

1. 空间变换


扩展/自定义Eigen

在扩展/自定义Eigen部分,可以了解到有关扩展 Eigen 的功能和支持自定义标量类型的讨论和示例。

一、扩展 MatrixBase(包括其他类)

二、继承 Matrix

三、使用自定义标量类型

四、使用nullary-expressions操作矩阵

五、添加新的表达式类型


常见话题

可以了解诸如预处理指令、控制断言、多线程、MKL使用和Eigen的内部实现等。

一、编写以特征类型为参数的函数

1. 编写以特征类型为参数的函数(一)

2. 编写以特征类型为参数的函数(二)

二、预处理器指令

三、断言

四、Eigen与多线程

五、使用 Eigen 的 BLAS/LAPACK

六、使用 Eigen 的英特尔® MKL

七、在 CUDA 内核中使用 Eigen

八、常见的陷阱

九、C++中的template和typename关键字

十、深入了解 Eigen

1. Eigen 内部发生了什么

1.1 为什么讨论这个问题

1.2 构建向量

1.3 求和表达式的构造

1.4 分配

2. 类层次结构

3. 惰性求值与混叠(Aliasing)

十一、在 CMake 项目中使用 Eigen

The End



相关文章
|
编译器 索引
[Eigen中文文档] 块操作
本文介绍了块操作。块是matrix或array的部分矩形元素。块表达式既可以用作右值也可以用作左值。与Eigen表达式一样,如果让编译器进行优化,则块操作的运行时间成本为零。
341 0
|
存储 NoSQL API
[Eigen中文文档] Matrix类
在Eigen中,所有矩阵和向量都是Matrix模板类的对象。向量只是行数或者列数为1的特殊矩阵。
726 1
|
存储 缓存
[Eigen中文文档] 深入了解 Eigen - 惰性求值与混叠(Aliasing)
Eigen具有智能的编译时机制,可以实现惰性求值并在适当的情况下删除临时变量。它会自动处理大多数情况下的混叠问题,例如矩阵乘积。自动行为可以通过使用MatrixBase::eval()和MatrixBase::noalias()方法手动覆盖。
543 0
|
存储 算法 NoSQL
[Eigen中文文档] 稀疏矩阵操作
在许多应用中(例如,有限元方法),通常要处理非常大的矩阵,其中只有少数系数不为零。在这种情况下,可以通过使用仅存储非零系数的特殊表示来减少内存消耗并提高性能。这样的矩阵称为稀疏矩阵。
772 0
|
存储 C语言 C++
|
安全 编译器 C++
[Eigen中文文档] 矩阵与向量运算
本文章旨在提供有关如何使用 Eigen 在矩阵、向量和标量之间执行算术操作的概述和一些详细信息。
761 0
[Eigen中文文档] 在 CMake 项目中使用 Eigen
Eigen提供了CMake(CMake 3.0或更高版本)支持,使得该库可以轻松地在CMake项目中使用。
1194 1
|
编译器 Linux C语言
[Eigen中文文档] 从入门开始...
这是一个非常简短的Eigen入门文章。该文章有两层目的。对于想要尽快开始编码的人来说,该文章是对Eigen库的最简单介绍。你可以把该文章作为教程的第一部分,这更加详细的解释了Eigen库。看完这个教程后可以继续阅读 The Matrix class教程。
961 0
|
测试技术
[Eigen中文文档] Array类与元素操作
与Matrix类用于线性代数计算不同的是,Array类提供了通用目的数组。此外,Array类提供了一种执行按系数运算的简单方法,这可能没有线性代数意义,例如对每一个元素都加一个常数或按系数将两个数组相乘。
483 0
|
编译器 API 索引
[Eigen中文文档] 切片和索引
本文介绍了如何使用操作运算符operator()索引行和列的子集。该 API 在 Eigen 3.4 中引入。它支持 block API 提供的所有功能。特别是,它支持切片,即获取一组行、列或元素,以及等间隔的从矩阵或者数组中提取元素。
615 0