namespace Eigen { /** \page Eigen2ToEigen3 Porting from Eigen2 to Eigen3
| Eigen 2 | Eigen 3 | 
|---|---|
| \code
vector.start(length)
vector.start | \code
vector.head(length)
vector.head | 
| Eigen 2 | Eigen 3 | 
|---|---|
| \code
matrix.corner(TopLeft,r,c)
matrix.corner(TopRight,r,c)
matrix.corner(BottomLeft,r,c)
matrix.corner(BottomRight,r,c)
matrix.corner | \code
matrix.topLeftCorner(r,c)
matrix.topRightCorner(r,c)
matrix.bottomLeftCorner(r,c)
matrix.bottomRightCorner(r,c)
matrix.topLeftCorner | 
| Eigen 2 | Eigen 3 | 
|---|---|
| \code
A.part | \code
A.triangularView | 
| \code
A.extract | \code
A.triangularView | 
| \code
A.marked | \code
A.triangularView | 
| \code
A.part | \code
A.selfadjointView | 
| \code UpperTriangular LowerTriangular UnitUpperTriangular UnitLowerTriangular StrictlyUpperTriangular StrictlyLowerTriangular \endcode | \code Upper Lower UnitUpper UnitLower StrictlyUpper StrictlyLower \endcode | 
| Eigen 2 | Eigen 3 | 
|---|---|
| \code A.triangularSolveInPlace | \code A.triangularView | 
| Eigen 2 | Eigen 3 | Notes | 
|---|---|---|
| LU | FullPivLU | See also the new PartialPivLU, it's much faster | 
| QR | HouseholderQR | See also the new ColPivHouseholderQR, it's more reliable | 
| SVD | JacobiSVD | We currently don't have a bidiagonalizing SVD; of course this is planned. | 
| EigenSolver and friends | \code #include | Moved to separate module | 
| Eigen 2 | Eigen 3 | Notes | 
|---|---|---|
| \code A.lu();\endcode | \code A.fullPivLu();\endcode | Now A.lu() returns a PartialPivLU | 
| \code A.lu().solve(B,&X);\endcode | \code X = A.lu().solve(B); X = A.fullPivLu().solve(B);\endcode | The returned by value is fully optimized | 
| \code A.llt().solve(B,&X);\endcode | \code X = A.llt().solve(B);
 X = A.selfadjointView | The returned by value is fully optimized and \n the selfadjointView API allows you to select the \n triangular part to work on (default is lower part) | 
| \code A.llt().solveInPlace(B);\endcode | \code B = A.llt().solve(B);
 B = A.selfadjointView | In place solving | 
| \code A.ldlt().solve(B,&X);\endcode | \code X = A.ldlt().solve(B);
 X = A.selfadjointView | The returned by value is fully optimized and \n the selfadjointView API allows you to select the \n triangular part to work on | 
| Eigen 2 | Eigen 3 | Notes | 
|---|---|---|
| Transform3f | Affine3f or Projective3f | Of course 3f is just an example here | 
| Eigen 2 | Eigen 3 | 
|---|---|
| \code std::vector | \code std::vector |