Drake
Drake C++ Documentation
Loading...
Searching...
No Matches
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

namespace  drake

Typedefs

template<typename Scalar>
using Vector0 = Eigen::Matrix<Scalar, 0, 1>
 The empty column vector (zero rows, one column), templated on scalar type.
template<typename Scalar>
using Vector1 = Eigen::Matrix<Scalar, 1, 1>
 A column vector of size 1 (that is, a scalar), templated on scalar type.
using Vector1d = Eigen::Matrix<double, 1, 1>
 A column vector of size 1 of doubles.
template<typename Scalar>
using Vector2 = Eigen::Matrix<Scalar, 2, 1>
 A column vector of size 2, templated on scalar type.
template<typename Scalar>
using Vector3 = Eigen::Matrix<Scalar, 3, 1>
 A column vector of size 3, templated on scalar type.
template<typename Scalar>
using Vector4 = Eigen::Matrix<Scalar, 4, 1>
 A column vector of size 4, templated on scalar type.
template<typename Scalar>
using Vector6 = Eigen::Matrix<Scalar, 6, 1>
 A column vector of size 6.
using Vector6d = Eigen::Matrix<double, 6, 1>
 A column vector of size 6 of doubles.
template<typename Scalar, int Rows>
using Vector = Eigen::Matrix<Scalar, Rows, 1>
 A column vector templated on the number of rows.
template<typename Scalar>
using VectorX = Eigen::Matrix<Scalar, Eigen::Dynamic, 1>
 A column vector of any size, templated on scalar type.
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.
template<typename Scalar>
using RowVector2 = Eigen::Matrix<Scalar, 1, 2>
 A row vector of size 2, templated on scalar type.
template<typename Scalar>
using RowVector3 = Eigen::Matrix<Scalar, 1, 3>
 A row vector of size 3, templated on scalar type.
template<typename Scalar>
using RowVector4 = Eigen::Matrix<Scalar, 1, 4>
 A row vector of size 4, templated on scalar type.
template<typename Scalar>
using RowVector6 = Eigen::Matrix<Scalar, 1, 6>
 A row vector of size 6.
template<typename Scalar, int Cols>
using RowVector = Eigen::Matrix<Scalar, 1, Cols>
 A row vector templated on the number of columns.
template<typename Scalar>
using RowVectorX = Eigen::Matrix<Scalar, 1, Eigen::Dynamic>
 A row vector of any size, templated on scalar type.
template<typename Scalar>
using Matrix2 = Eigen::Matrix<Scalar, 2, 2>
 A matrix of 2 rows and 2 columns, templated on scalar type.
template<typename Scalar>
using Matrix3 = Eigen::Matrix<Scalar, 3, 3>
 A matrix of 3 rows and 3 columns, templated on scalar type.
template<typename Scalar>
using Matrix4 = Eigen::Matrix<Scalar, 4, 4>
 A matrix of 4 rows and 4 columns, templated on scalar type.
template<typename Scalar>
using Matrix6 = Eigen::Matrix<Scalar, 6, 6>
 A matrix of 6 rows and 6 columns, templated on scalar type.
template<typename Scalar>
using Matrix2X = Eigen::Matrix<Scalar, 2, Eigen::Dynamic>
 A matrix of 2 rows, dynamic columns, templated on scalar type.
template<typename Scalar>
using Matrix3X = Eigen::Matrix<Scalar, 3, Eigen::Dynamic>
 A matrix of 3 rows, dynamic columns, templated on scalar type.
template<typename Scalar>
using Matrix4X = Eigen::Matrix<Scalar, 4, Eigen::Dynamic>
 A matrix of 4 rows, dynamic columns, templated on scalar type.
template<typename Scalar>
using Matrix6X = Eigen::Matrix<Scalar, 6, Eigen::Dynamic>
 A matrix of 6 rows, dynamic columns, templated on scalar type.
template<typename Scalar>
using MatrixX = Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic>
 A matrix of dynamic size, templated on scalar type.
template<typename Scalar>
using MatrixUpTo6
 A matrix of dynamic size templated on scalar type, up to a maximum of 6 rows and 6 columns.
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.
template<typename Scalar, typename Derived>
using MatrixLikewise
 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).
using StrideX = Eigen::Stride<Eigen::Dynamic, Eigen::Dynamic>
 A fully dynamic Eigen stride.
template<typename Scalar>
using Quaternion = Eigen::Quaternion<Scalar>
 A quaternion templated on scalar type.
template<typename Scalar>
using AngleAxis = Eigen::AngleAxis<Scalar>
 An AngleAxis templated on scalar type.
template<typename Scalar>
using Isometry3 = Eigen::Transform<Scalar, 3, Eigen::Isometry>
 An Isometry templated on scalar type.

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.

Variables

static constexpr auto eigen_all = Eigen::placeholders::all
 A portable alias for Eigen::placeholders::all.