Eigen Namespace Reference

Namespace containing all symbols from the Eigen library. More...

Classes

class  AutoDiffScalar
 A scalar type replacement with automatic differentation capability. More...
 
class  BlockSparseMatrix
 A versatile sparse matrix representation where each element is a block. More...
 
class  DGMRES
 A Restarted GMRES with deflation. This class implements a modification of the GMRES solver for sparse linear systems. The basis is built with modified Gram-Schmidt. At each restart, a few approximated eigenvectors corresponding to the smallest eigenvalues are used to build a preconditioner for the next cycle. This preconditioner for deflation can be combined with any other preconditioner, the IncompleteLUT for instance. The preconditioner is applied at right of the matrix and the combination is multiplicative. More...
 
class  DynamicSGroup
 Dynamic symmetry group. More...
 
class  DynamicSparseMatrix
 A sparse matrix class designed for matrix assembly purpose. More...
 
class  GMRES
 A GMRES solver for sparse square problems. More...
 
class  HybridNonLinearSolver
 Finds a zero of a system of n nonlinear functions in n variables by a modification of the Powell hybrid method ("dogleg"). More...
 
class  IterationController
 Controls the iterations of the iterative solvers. More...
 
class  IterScaling
 iterative scaling algorithm to equilibrate rows and column norms in matrices More...
 
class  KdBVH
 A simple bounding volume hierarchy based on AlignedBox. More...
 
class  KroneckerProduct
 Kronecker tensor product helper class for dense matrices. More...
 
class  KroneckerProductBase
 The base class of dense and sparse Kronecker product. More...
 
class  KroneckerProductSparse
 Kronecker tensor product helper class for sparse matrices. More...
 
class  LevenbergMarquardt
 Performs non linear optimization over a non-linear function, using a variant of the Levenberg Marquardt algorithm. More...
 
class  MatrixComplexPowerReturnValue
 Proxy for the matrix power of some matrix (expression). More...
 
struct  MatrixExponentialReturnValue
 Proxy for the matrix exponential of some matrix (expression). More...
 
class  MatrixFunctionReturnValue
 Proxy for the matrix function of some matrix (expression). More...
 
class  MatrixLogarithmReturnValue
 Proxy for the matrix logarithm of some matrix (expression). More...
 
class  MatrixMarketIterator
 Iterator to browse matrices from a specified folder. More...
 
class  MatrixPower
 Class for computing matrix powers. More...
 
class  MatrixPowerAtomic
 Class for computing matrix powers. More...
 
class  MatrixPowerParenthesesReturnValue
 Proxy for the matrix power of some matrix. More...
 
class  MatrixPowerReturnValue
 Proxy for the matrix power of some matrix (expression). More...
 
class  MatrixSquareRootReturnValue
 Proxy for the matrix square root of some matrix (expression). More...
 
class  MINRES
 A minimal residual solver for sparse symmetric problems. More...
 
class  NumericalDiff
 
class  PolynomialSolver
 A polynomial solver. More...
 
class  PolynomialSolverBase
 Defined to be inherited by polynomial solvers: it provides convenient methods such as. More...
 
class  RandomSetter
 The RandomSetter is a wrapper object allowing to set/update a sparse matrix with random access. More...
 
class  SGroup
 Symmetry group, initialized from template arguments. More...
 
class  SkylineInplaceLU
 Inplace LU decomposition of a skyline matrix and associated features. More...
 
class  SkylineMatrix
 The main skyline matrix class. More...
 
class  SkylineMatrixBase
 Base class of any skyline matrices or skyline expressions. More...
 
class  SkylineStorage
 
class  Spline
 A class representing multi-dimensional spline curves. More...
 
struct  SplineFitting
 Spline fitting methods. More...
 
struct  SplineTraits< Spline< _Scalar, _Dim, _Degree >, _DerivativeOrder >
 Compile-time attributes of the Spline class for fixed degree. More...
 
struct  SplineTraits< Spline< _Scalar, _Dim, _Degree >, Dynamic >
 Compile-time attributes of the Spline class for Dynamic degree. More...
 
class  StaticSGroup
 Static symmetry group. More...
 
struct  StdMapTraits
 
class  Tensor
 The tensor class. More...
 
class  TensorBase
 The tensor base class. More...
 
class  TensorConcatenationOp
 Tensor concatenation class. More...
 
class  TensorConversionOp
 Tensor conversion class. This class makes it possible to vectorize type casting operations when the number of scalars per packet in the source and the destination type differ. More...
 
class  TensorCustomBinaryOp
 Tensor custom class. More...
 
class  TensorCustomUnaryOp
 Tensor custom class. More...
 
class  TensorDevice
 Pseudo expression providing an operator = that will evaluate its argument on the specified computing 'device' (GPU, thread pool, ...) More...
 
class  TensorEvaluator
 The tensor evaluator classes. More...
 
class  TensorFixedSize
 The fixed sized version of the tensor class. More...
 
class  TensorMap
 A tensor expression mapping an existing array of data. More...
 
class  TensorRef
 A reference to a tensor expression The expression will be evaluated lazily (as much as possible). More...
 

Typedefs

typedef Spline< double, 2 > Spline2d
 2D double B-spline with dynamic degree.
 
typedef Spline< float, 2 > Spline2f
 2D float B-spline with dynamic degree.
 
typedef Spline< double, 3 > Spline3d
 3D double B-spline with dynamic degree.
 
typedef Spline< float, 3 > Spline3f
 3D float B-spline with dynamic degree.
 

Functions

template<typename BVH , typename Intersector >
void BVIntersect (const BVH &tree, Intersector &intersector)
 
template<typename BVH1 , typename BVH2 , typename Intersector >
void BVIntersect (const BVH1 &tree1, const BVH2 &tree2, Intersector &intersector)
 
template<typename BVH , typename Minimizer >
Minimizer::Scalar BVMinimize (const BVH &tree, Minimizer &minimizer)
 
template<typename BVH1 , typename BVH2 , typename Minimizer >
Minimizer::Scalar BVMinimize (const BVH1 &tree1, const BVH2 &tree2, Minimizer &minimizer)
 
template<typename Polynomial >
NumTraits< typename Polynomial::Scalar >::Real cauchy_max_bound (const Polynomial &poly)
 
template<typename Polynomial >
NumTraits< typename Polynomial::Scalar >::Real cauchy_min_bound (const Polynomial &poly)
 
template<typename PointArrayType , typename KnotVectorType >
void ChordLengths (const PointArrayType &pts, KnotVectorType &chord_lengths)
 Computes chord length parameters which are required for spline interpolation. More...
 
template<typename KnotVectorType >
void KnotAveraging (const KnotVectorType &parameters, DenseIndex degree, KnotVectorType &knots)
 Computes knot averages.The knots are computed as

\begin{align*} u_0 & = \hdots = u_p = 0 \\ u_{m-p} & = \hdots = u_{m} = 1 \\ u_{j+p} & = \frac{1}{p}\sum_{i=j}^{j+p-1}\bar{u}_i \quad\quad j=1,\hdots,n-p \end{align*}

where $p$ is the degree and $m+1$ the number knots of the desired interpolating spline. More...

 
template<typename KnotVectorType , typename ParameterVectorType , typename IndexArray >
void KnotAveragingWithDerivatives (const ParameterVectorType &parameters, const unsigned int degree, const IndexArray &derivativeIndices, KnotVectorType &knots)
 Computes knot averages when derivative constraints are present. Note that this is a technical interpretation of the referenced article since the algorithm contained therein is incorrect as written. More...
 
template<typename A , typename B >
KroneckerProduct< A, B > kroneckerProduct (const MatrixBase< A > &a, const MatrixBase< B > &b)
 
template<typename A , typename B >
KroneckerProductSparse< A, B > kroneckerProduct (const EigenBase< A > &a, const EigenBase< B > &b)
 
template<typename MatrixType , typename ResultType >
void matrix_sqrt_quasi_triangular (const MatrixType &arg, ResultType &result)
 Compute matrix square root of quasi-triangular matrix. More...
 
template<typename MatrixType , typename ResultType >
void matrix_sqrt_triangular (const MatrixType &arg, ResultType &result)
 Compute matrix square root of triangular matrix. More...
 
template<typename Polynomials , typename T >
poly_eval (const Polynomials &poly, const T &x)
 
template<typename Polynomials , typename T >
poly_eval_horner (const Polynomials &poly, const T &x)
 
template<typename RootVector , typename Polynomial >
void roots_to_monicPolynomial (const RootVector &rv, Polynomial &poly)
 

Detailed Description

Namespace containing all symbols from the Eigen library.

Function Documentation

template<typename BVH , typename Intersector >
void Eigen::BVIntersect ( const BVH &  tree,
Intersector &  intersector 
)

Given a BVH, runs the query encapsulated by intersector. The Intersector type must provide the following members:

bool intersectVolume(const BVH::Volume &volume) //returns true if volume intersects the query
bool intersectObject(const BVH::Object &object) //returns true if the search should terminate immediately
template<typename BVH1 , typename BVH2 , typename Intersector >
void Eigen::BVIntersect ( const BVH1 &  tree1,
const BVH2 &  tree2,
Intersector &  intersector 
)

Given two BVH's, runs the query on their Cartesian product encapsulated by intersector. The Intersector type must provide the following members:

bool intersectVolumeVolume(const BVH1::Volume &v1, const BVH2::Volume &v2) //returns true if product of volumes intersects the query
bool intersectVolumeObject(const BVH1::Volume &v1, const BVH2::Object &o2) //returns true if the volume-object product intersects the query
bool intersectObjectVolume(const BVH1::Object &o1, const BVH2::Volume &v2) //returns true if the volume-object product intersects the query
bool intersectObjectObject(const BVH1::Object &o1, const BVH2::Object &o2) //returns true if the search should terminate immediately
template<typename BVH , typename Minimizer >
Minimizer::Scalar Eigen::BVMinimize ( const BVH &  tree,
Minimizer &  minimizer 
)

Given a BVH, runs the query encapsulated by minimizer.

Returns
the minimum value. The Minimizer type must provide the following members:
typedef Scalar //the numeric type of what is being minimized--not necessarily the Scalar type of the BVH (if it has one)
Scalar minimumOnVolume(const BVH::Volume &volume)
Scalar minimumOnObject(const BVH::Object &object)
template<typename BVH1 , typename BVH2 , typename Minimizer >
Minimizer::Scalar Eigen::BVMinimize ( const BVH1 &  tree1,
const BVH2 &  tree2,
Minimizer &  minimizer 
)

Given two BVH's, runs the query on their cartesian product encapsulated by minimizer.

Returns
the minimum value. The Minimizer type must provide the following members:
typedef Scalar //the numeric type of what is being minimized--not necessarily the Scalar type of the BVH (if it has one)
Scalar minimumOnVolumeVolume(const BVH1::Volume &v1, const BVH2::Volume &v2)
Scalar minimumOnVolumeObject(const BVH1::Volume &v1, const BVH2::Object &o2)
Scalar minimumOnObjectVolume(const BVH1::Object &o1, const BVH2::Volume &v2)
Scalar minimumOnObjectObject(const BVH1::Object &o1, const BVH2::Object &o2)
template<typename Polynomial >
NumTraits<typename Polynomial::Scalar>::Real Eigen::cauchy_max_bound ( const Polynomial &  poly)
inline
Returns
a maximum bound for the absolute value of any root of the polynomial.
Parameters
[in]poly: the vector of coefficients of the polynomial ordered by degrees i.e. poly[i] is the coefficient of degree i of the polynomial e.g. $ 1 + 3x^2 $ is stored as a vector $ [ 1, 0, 3 ] $.

Precondition: the leading coefficient of the input polynomial poly must be non zero

template<typename Polynomial >
NumTraits<typename Polynomial::Scalar>::Real Eigen::cauchy_min_bound ( const Polynomial &  poly)
inline
Returns
a minimum bound for the absolute value of any non zero root of the polynomial.
Parameters
[in]poly: the vector of coefficients of the polynomial ordered by degrees i.e. poly[i] is the coefficient of degree i of the polynomial e.g. $ 1 + 3x^2 $ is stored as a vector $ [ 1, 0, 3 ] $.
template<typename PointArrayType , typename KnotVectorType >
void Eigen::ChordLengths ( const PointArrayType &  pts,
KnotVectorType &  chord_lengths 
)

Computes chord length parameters which are required for spline interpolation.

Parameters
[in]ptsThe data points to which a spline should be fit.
[out]chord_lengthsThe resulting chord lenggth vector.
See also
Les Piegl and Wayne Tiller, The NURBS book (2nd ed.), 1997, 9.2.1 Global Curve Interpolation to Point Data
template<typename KnotVectorType >
void Eigen::KnotAveraging ( const KnotVectorType &  parameters,
DenseIndex  degree,
KnotVectorType &  knots 
)

Computes knot averages.The knots are computed as

\begin{align*} u_0 & = \hdots = u_p = 0 \\ u_{m-p} & = \hdots = u_{m} = 1 \\ u_{j+p} & = \frac{1}{p}\sum_{i=j}^{j+p-1}\bar{u}_i \quad\quad j=1,\hdots,n-p \end{align*}

where $p$ is the degree and $m+1$ the number knots of the desired interpolating spline.

Parameters
[in]parametersThe input parameters. During interpolation one for each data point.
[in]degreeThe spline degree which is used during the interpolation.
[out]knotsThe output knot vector.
See also
Les Piegl and Wayne Tiller, The NURBS book (2nd ed.), 1997, 9.2.1 Global Curve Interpolation to Point Data
template<typename KnotVectorType , typename ParameterVectorType , typename IndexArray >
void Eigen::KnotAveragingWithDerivatives ( const ParameterVectorType &  parameters,
const unsigned int  degree,
const IndexArray &  derivativeIndices,
KnotVectorType &  knots 
)

Computes knot averages when derivative constraints are present. Note that this is a technical interpretation of the referenced article since the algorithm contained therein is incorrect as written.

Parameters
[in]parametersThe parameters at which the interpolation B-Spline will intersect the given interpolation points. The parameters are assumed to be a non-decreasing sequence.
[in]degreeThe degree of the interpolating B-Spline. This must be greater than zero.
[in]derivativeIndicesThe indices corresponding to parameters at which there are derivative constraints. The indices are assumed to be a non-decreasing sequence.
[out]knotsThe calculated knot vector. These will be returned as a non-decreasing sequence
See also
Les A. Piegl, Khairan Rajab, Volha Smarodzinana. 2008. Curve interpolation with directional constraints for engineering design. Engineering with Computers
template<typename A , typename B >
KroneckerProduct<A,B> Eigen::kroneckerProduct ( const MatrixBase< A > &  a,
const MatrixBase< B > &  b 
)

Computes Kronecker tensor product of two dense matrices

Warning
If you want to replace a matrix by its Kronecker product with some matrix, do NOT do this:
A = kroneckerProduct(A,B); // bug!!! caused by aliasing effect
instead, use eval() to work around this:
A = kroneckerProduct(A,B).eval();
Parameters
aDense matrix a
bDense matrix b
Returns
Kronecker tensor product of a and b
template<typename A , typename B >
KroneckerProductSparse<A,B> Eigen::kroneckerProduct ( const EigenBase< A > &  a,
const EigenBase< B > &  b 
)

Computes Kronecker tensor product of two matrices, at least one of which is sparse

Warning
If you want to replace a matrix by its Kronecker product with some matrix, do NOT do this:
A = kroneckerProduct(A,B); // bug!!! caused by aliasing effect
instead, use eval() to work around this:
A = kroneckerProduct(A,B).eval();
Parameters
aDense/sparse matrix a
bDense/sparse matrix b
Returns
Kronecker tensor product of a and b, stored in a sparse matrix
template<typename MatrixType , typename ResultType >
void Eigen::matrix_sqrt_quasi_triangular ( const MatrixType &  arg,
ResultType &  result 
)

Compute matrix square root of quasi-triangular matrix.

Template Parameters
MatrixTypetype of arg, the argument of matrix square root, expected to be an instantiation of the Matrix class template.
ResultTypetype of result, where result is to be stored.
Parameters
[in]argargument of matrix square root.
[out]resultmatrix square root of upper Hessenberg part of arg.

This function computes the square root of the upper quasi-triangular matrix stored in the upper Hessenberg part of arg. Only the upper Hessenberg part of result is updated, the rest is not touched. See MatrixBase::sqrt() for details on how this computation is implemented.

See also
MatrixSquareRoot, MatrixSquareRootQuasiTriangular
template<typename MatrixType , typename ResultType >
void Eigen::matrix_sqrt_triangular ( const MatrixType &  arg,
ResultType &  result 
)

Compute matrix square root of triangular matrix.

Template Parameters
MatrixTypetype of arg, the argument of matrix square root, expected to be an instantiation of the Matrix class template.
ResultTypetype of result, where result is to be stored.
Parameters
[in]argargument of matrix square root.
[out]resultmatrix square root of upper triangular part of arg.

Only the upper triangular part (including the diagonal) of result is updated, the rest is not touched. See MatrixBase::sqrt() for details on how this computation is implemented.

See also
MatrixSquareRoot, MatrixSquareRootQuasiTriangular
template<typename Polynomials , typename T >
T Eigen::poly_eval ( const Polynomials &  poly,
const T &  x 
)
inline
Returns
the evaluation of the polynomial at x using stabilized Horner algorithm.
Parameters
[in]poly: the vector of coefficients of the polynomial ordered by degrees i.e. poly[i] is the coefficient of degree i of the polynomial e.g. $ 1 + 3x^2 $ is stored as a vector $ [ 1, 0, 3 ] $.
[in]x: the value to evaluate the polynomial at.
template<typename Polynomials , typename T >
T Eigen::poly_eval_horner ( const Polynomials &  poly,
const T &  x 
)
inline
Returns
the evaluation of the polynomial at x using Horner algorithm.
Parameters
[in]poly: the vector of coefficients of the polynomial ordered by degrees i.e. poly[i] is the coefficient of degree i of the polynomial e.g. $ 1 + 3x^2 $ is stored as a vector $ [ 1, 0, 3 ] $.
[in]x: the value to evaluate the polynomial at.

Note for stability: $ |x| \le 1 $

template<typename RootVector , typename Polynomial >
void Eigen::roots_to_monicPolynomial ( const RootVector &  rv,
Polynomial &  poly 
)

Given the roots of a polynomial compute the coefficients in the monomial basis of the monic polynomial with same roots and minimal degree. If RootVector is a vector of complexes, Polynomial should also be a vector of complexes.

Parameters
[in]rv: a vector containing the roots of a polynomial.
[out]poly: the vector of coefficients of the polynomial ordered by degrees i.e. poly[i] is the coefficient of degree i of the polynomial e.g. $ 3 + x^2 $ is stored as a vector $ [ 3, 0, 1 ] $.