Drake
eigen_types.h File Reference

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

#include <memory>
#include <Eigen/Dense>
#include "drake/common/constants.h"
#include "drake/common/drake_copyable.h"
Include dependency graph for eigen_types.h:

Go to the source code of this file.

Classes

struct  EigenSizeMinPreferDynamic< a, b >
 EigenSizeMinPreferDynamic<a, b>::value gives the min between compile-time sizes a and b. More...
 
struct  EigenSizeMinPreferFixed< a, b >
 EigenSizeMinPreferFixed is a variant of EigenSizeMinPreferDynamic. More...
 
struct  MultiplyEigenSizes< a, b >
 MultiplyEigenSizes<a, b> gives a * b if both of a and b are fixed sizes. More...
 
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 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...
 
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 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 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...
 
template<typename Scalar >
using Translation3 = Eigen::Translation< Scalar, 3 >
 A translation in 3D templated on scalar type. More...
 
using VectorUpTo73d = Eigen::Matrix< double, Eigen::Dynamic, 1, 0, 73, 1 >
 A column vector of dynamic size, up to a maximum of 73 elements. More...
 
template<typename Scalar >
using TwistVector = Eigen::Matrix< Scalar, kTwistSize, 1 >
 A column vector consisting of one twist. More...
 
template<typename Scalar >
using TwistMatrix = Eigen::Matrix< Scalar, kTwistSize, Eigen::Dynamic >
 A matrix with one twist per column, and dynamically many columns. More...
 
template<typename Scalar >
using SquareTwistMatrix = Eigen::Matrix< Scalar, kTwistSize, kTwistSize >
 A six-by-six matrix. More...
 
template<typename Scalar >
using WrenchVector = Eigen::Matrix< Scalar, 6, 1 >
 A column vector consisting of one wrench (spatial force) = [r X f; f], where f is a force (translational force) applied at a point P and r is the position vector from a point O (called the "moment center") to point P. More...
 
template<typename Scalar >
using SpatialForce = Eigen::Matrix< Scalar, 6, 1 >
 A column vector consisting of a concatenated rotational and translational force. More...
 

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