Drake
Drake C++ Documentation
eigen_types.h File Reference

Detailed Description

This file contains abbreviated definitions for certain specializations of Eigen::Matrix that are commonly used in Drake.

These convenient definitions are templated on the scalar type of the Eigen object. While Drake uses <T> for scalar types across the entire code base we decided in this file to use <Scalar> to be more consistent with the usage of <Scalar> in Eigen's code base.

See also
also eigen_autodiff_types.h
#include <utility>
#include <Eigen/Dense>
#include "drake/common/constants.h"
#include "drake/common/drake_assert.h"
#include "drake/common/drake_copyable.h"
#include "drake/common/fmt_eigen.h"
Include dependency graph for eigen_types.h:

Classes

struct  is_eigen_type< Derived >
 
struct  is_eigen_scalar_same< Derived, Scalar >
 
struct  is_eigen_vector< Derived >
 
struct  is_eigen_vector_of< Derived, Scalar >
 
struct  is_eigen_nonvector_of< Derived, Scalar >
 
class  EigenPtr< PlainObjectType >
 This wrapper class provides a way to write non-template functions taking raw pointers to Eigen objects as parameters while limiting the number of copies, similar to Eigen::Ref. More...
 

Namespaces

 drake
 

Typedefs

template<typename Scalar >
using Vector0 = Eigen::Matrix< Scalar, 0, 1 >
 The empty column vector (zero rows, one column), templated on scalar type. More...
 
template<typename Scalar >
using Vector1 = Eigen::Matrix< Scalar, 1, 1 >
 A column vector of size 1 (that is, a scalar), templated on scalar type. More...
 
using Vector1d = Eigen::Matrix< double, 1, 1 >
 A column vector of size 1 of doubles. More...
 
template<typename Scalar >
using Vector2 = Eigen::Matrix< Scalar, 2, 1 >
 A column vector of size 2, templated on scalar type. More...
 
template<typename Scalar >
using Vector3 = Eigen::Matrix< Scalar, 3, 1 >
 A column vector of size 3, templated on scalar type. More...
 
template<typename Scalar >
using Vector4 = Eigen::Matrix< Scalar, 4, 1 >
 A column vector of size 4, templated on scalar type. More...
 
template<typename Scalar >
using Vector6 = Eigen::Matrix< Scalar, 6, 1 >
 A column vector of size 6. More...
 
using Vector6d = Eigen::Matrix< double, 6, 1 >
 A column vector of size 6 of doubles. More...
 
template<typename Scalar , int Rows>
using Vector = Eigen::Matrix< Scalar, Rows, 1 >
 A column vector templated on the number of rows. More...
 
template<typename Scalar >
using VectorX = Eigen::Matrix< Scalar, Eigen::Dynamic, 1 >
 A column vector of any size, templated on scalar type. More...
 
template<typename Scalar >
using VectorUpTo6 = Eigen::Matrix< Scalar, Eigen::Dynamic, 1, 0, 6, 1 >
 A vector of dynamic size templated on scalar type, up to a maximum of 6 elements. More...
 
template<typename Scalar >
using RowVector2 = Eigen::Matrix< Scalar, 1, 2 >
 A row vector of size 2, templated on scalar type. More...
 
template<typename Scalar >
using RowVector3 = Eigen::Matrix< Scalar, 1, 3 >
 A row vector of size 3, templated on scalar type. More...
 
template<typename Scalar >
using RowVector4 = Eigen::Matrix< Scalar, 1, 4 >
 A row vector of size 4, templated on scalar type. More...
 
template<typename Scalar >
using RowVector6 = Eigen::Matrix< Scalar, 1, 6 >
 A row vector of size 6. More...
 
template<typename Scalar , int Cols>
using RowVector = Eigen::Matrix< Scalar, 1, Cols >
 A row vector templated on the number of columns. More...
 
template<typename Scalar >
using RowVectorX = Eigen::Matrix< Scalar, 1, Eigen::Dynamic >
 A row vector of any size, templated on scalar type. More...
 
template<typename Scalar >
using Matrix2 = Eigen::Matrix< Scalar, 2, 2 >
 A matrix of 2 rows and 2 columns, templated on scalar type. More...
 
template<typename Scalar >
using Matrix3 = Eigen::Matrix< Scalar, 3, 3 >
 A matrix of 3 rows and 3 columns, templated on scalar type. More...
 
template<typename Scalar >
using Matrix4 = Eigen::Matrix< Scalar, 4, 4 >
 A matrix of 4 rows and 4 columns, templated on scalar type. More...
 
template<typename Scalar >
using Matrix6 = Eigen::Matrix< Scalar, 6, 6 >
 A matrix of 6 rows and 6 columns, templated on scalar type. More...
 
template<typename Scalar >
using Matrix2X = Eigen::Matrix< Scalar, 2, Eigen::Dynamic >
 A matrix of 2 rows, dynamic columns, templated on scalar type. More...
 
template<typename Scalar >
using Matrix3X = Eigen::Matrix< Scalar, 3, Eigen::Dynamic >
 A matrix of 3 rows, dynamic columns, templated on scalar type. More...
 
template<typename Scalar >
using Matrix4X = Eigen::Matrix< Scalar, 4, Eigen::Dynamic >
 A matrix of 4 rows, dynamic columns, templated on scalar type. More...
 
template<typename Scalar >
using Matrix6X = Eigen::Matrix< Scalar, 6, Eigen::Dynamic >
 A matrix of 6 rows, dynamic columns, templated on scalar type. More...
 
template<typename Scalar >
using MatrixX = Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic >
 A matrix of dynamic size, templated on scalar type. More...
 
template<typename Scalar >
using MatrixUpTo6 = Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic, 0, 6, 6 >
 A matrix of dynamic size templated on scalar type, up to a maximum of 6 rows and 6 columns. More...
 
template<typename Scalar >
using Matrix6xUpTo6 = Eigen::Matrix< Scalar, 6, Eigen::Dynamic, 0, 6, 6 >
 A matrix of 6 rows and dynamic column size up to a maximum of 6, templated on scalar type. More...
 
template<typename Scalar , typename Derived >
using MatrixLikewise = Eigen::Matrix< Scalar, Derived::RowsAtCompileTime, Derived::ColsAtCompileTime, Derived::IsRowMajor ? Eigen::RowMajor :Eigen::ColMajor, Derived::MaxRowsAtCompileTime, Derived::MaxColsAtCompileTime >
 A matrix with the same compile-time sizes and storage order as Derived, but with a different scalar type and its default alignment (Eigen::AutoAlign). More...
 
using StrideX = Eigen::Stride< Eigen::Dynamic, Eigen::Dynamic >
 A fully dynamic Eigen stride. More...
 
template<typename Scalar >
using Quaternion = Eigen::Quaternion< Scalar >
 A quaternion templated on scalar type. More...
 
template<typename Scalar >
using AngleAxis = Eigen::AngleAxis< Scalar >
 An AngleAxis templated on scalar type. More...
 
template<typename Scalar >
using Isometry3 = Eigen::Transform< Scalar, 3, Eigen::Isometry >
 An Isometry templated on scalar type. More...
 

Functions

template<typename Container >
auto EigenMapView (Container &&c)
 Given a random access container (like std::vector, std::array, or C array), returns an Eigen::Map view into that container. More...