mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-13 20:26:03 +08:00
* mark Geometry as experimental
* install QtAlignedMalloc * finish the renaming Regression->LeastSquares * install LeastSquares directory (!!!) * misc dox fixes
This commit is contained in:
parent
65e4ae4ff4
commit
a79deafc6d
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
namespace Eigen {
|
namespace Eigen {
|
||||||
|
|
||||||
/** \defgroup Array Array module
|
/** \defgroup Array_Module Array module
|
||||||
* This module provides several handy features to manipulate matrices as simple array of values.
|
* This module provides several handy features to manipulate matrices as simple array of values.
|
||||||
* In addition to listed classes, it defines various methods of the Cwise interface
|
* In addition to listed classes, it defines various methods of the Cwise interface
|
||||||
* (accessible from MatrixBase::cwise()), including:
|
* (accessible from MatrixBase::cwise()), including:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
set(Eigen_HEADERS Core LU Cholesky QR Geometry Sparse Array SVD LeastSquares StdVector)
|
set(Eigen_HEADERS Core LU Cholesky QR Geometry Sparse Array SVD LeastSquares QtAlignedMalloc StdVector)
|
||||||
|
|
||||||
if(EIGEN_BUILD_LIB)
|
if(EIGEN_BUILD_LIB)
|
||||||
set(Eigen_SRCS
|
set(Eigen_SRCS
|
||||||
|
@ -14,7 +14,10 @@
|
|||||||
|
|
||||||
namespace Eigen {
|
namespace Eigen {
|
||||||
|
|
||||||
/** \defgroup GeometryModule Geometry module
|
/** \defgroup Geometry_Module Geometry module
|
||||||
|
*
|
||||||
|
* \nonstableyet
|
||||||
|
*
|
||||||
* This module provides support for:
|
* This module provides support for:
|
||||||
* - fixed-size homogeneous transformations
|
* - fixed-size homogeneous transformations
|
||||||
* - translation, scaling, 2D and 3D rotations
|
* - translation, scaling, 2D and 3D rotations
|
||||||
|
@ -11,15 +11,15 @@
|
|||||||
|
|
||||||
namespace Eigen {
|
namespace Eigen {
|
||||||
|
|
||||||
/** \defgroup Regression_Module Regression module
|
/** \defgroup LeastSquares_Module LeastSquares module
|
||||||
* This module provides linear regression and related features.
|
* This module provides linear regression and related features.
|
||||||
*
|
*
|
||||||
* \code
|
* \code
|
||||||
* #include <Eigen/Regression>
|
* #include <Eigen/LeastSquares>
|
||||||
* \endcode
|
* \endcode
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "src/Regression/Regression.h"
|
#include "src/LeastSquares/LeastSquares.h"
|
||||||
|
|
||||||
} // namespace Eigen
|
} // namespace Eigen
|
||||||
|
|
||||||
|
3
Eigen/QR
3
Eigen/QR
@ -19,6 +19,9 @@
|
|||||||
namespace Eigen {
|
namespace Eigen {
|
||||||
|
|
||||||
/** \defgroup QR_Module QR module
|
/** \defgroup QR_Module QR module
|
||||||
|
*
|
||||||
|
* \nonstableyet
|
||||||
|
*
|
||||||
* This module mainly provides QR decomposition and an eigen value solver.
|
* This module mainly provides QR decomposition and an eigen value solver.
|
||||||
* This module also provides some MatrixBase methods, including:
|
* This module also provides some MatrixBase methods, including:
|
||||||
* - MatrixBase::qr(),
|
* - MatrixBase::qr(),
|
||||||
|
@ -8,6 +8,9 @@
|
|||||||
namespace Eigen {
|
namespace Eigen {
|
||||||
|
|
||||||
/** \defgroup SVD_Module SVD module
|
/** \defgroup SVD_Module SVD module
|
||||||
|
*
|
||||||
|
* \nonstableyet
|
||||||
|
*
|
||||||
* This module provides SVD decomposition for (currently) real matrices.
|
* This module provides SVD decomposition for (currently) real matrices.
|
||||||
* This decomposition is accessible via the following MatrixBase method:
|
* This decomposition is accessible via the following MatrixBase method:
|
||||||
* - MatrixBase::svd()
|
* - MatrixBase::svd()
|
||||||
|
11
Eigen/Sparse
11
Eigen/Sparse
@ -70,6 +70,17 @@
|
|||||||
|
|
||||||
namespace Eigen {
|
namespace Eigen {
|
||||||
|
|
||||||
|
/** \defgroup Sparse_Module Sparse module
|
||||||
|
*
|
||||||
|
* \nonstableyet
|
||||||
|
*
|
||||||
|
* See the \ref TutorialSparse "Sparse tutorial"
|
||||||
|
*
|
||||||
|
* \code
|
||||||
|
* #include <Eigen/QR>
|
||||||
|
* \endcode
|
||||||
|
*/
|
||||||
|
|
||||||
#include "src/Sparse/SparseUtil.h"
|
#include "src/Sparse/SparseUtil.h"
|
||||||
#include "src/Sparse/SparseMatrixBase.h"
|
#include "src/Sparse/SparseMatrixBase.h"
|
||||||
#include "src/Sparse/CompressedStorage.h"
|
#include "src/Sparse/CompressedStorage.h"
|
||||||
|
@ -5,6 +5,6 @@ ADD_SUBDIRECTORY(SVD)
|
|||||||
ADD_SUBDIRECTORY(Cholesky)
|
ADD_SUBDIRECTORY(Cholesky)
|
||||||
ADD_SUBDIRECTORY(Array)
|
ADD_SUBDIRECTORY(Array)
|
||||||
ADD_SUBDIRECTORY(Geometry)
|
ADD_SUBDIRECTORY(Geometry)
|
||||||
ADD_SUBDIRECTORY(Regression)
|
ADD_SUBDIRECTORY(LeastSquares)
|
||||||
ADD_SUBDIRECTORY(Sparse)
|
ADD_SUBDIRECTORY(Sparse)
|
||||||
ADD_SUBDIRECTORY(StdVector)
|
ADD_SUBDIRECTORY(StdVector)
|
||||||
|
@ -429,8 +429,7 @@ void LU<MatrixType>::computeKernel(KernelMatrixType *result) const
|
|||||||
.template marked<UpperTriangular>()
|
.template marked<UpperTriangular>()
|
||||||
.solveTriangularInPlace(y);
|
.solveTriangularInPlace(y);
|
||||||
|
|
||||||
for(int i = 0; i < m_rank; ++i)
|
for(int i = 0; i < m_rank; ++i) result->row(m_q.coeff(i)) = y.row(i);
|
||||||
result->row(m_q.coeff(i)) = y.row(i);
|
|
||||||
for(int i = m_rank; i < cols; ++i) result->row(m_q.coeff(i)).setZero();
|
for(int i = m_rank; i < cols; ++i) result->row(m_q.coeff(i)).setZero();
|
||||||
for(int k = 0; k < dimker; ++k) result->coeffRef(m_q.coeff(m_rank+k), k) = Scalar(1);
|
for(int k = 0; k < dimker; ++k) result->coeffRef(m_q.coeff(m_rank+k), k) = Scalar(1);
|
||||||
}
|
}
|
||||||
|
6
Eigen/src/LeastSquares/CMakeLists.txt
Normal file
6
Eigen/src/LeastSquares/CMakeLists.txt
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
FILE(GLOB Eigen_LeastSquares_SRCS "*.h")
|
||||||
|
|
||||||
|
INSTALL(FILES
|
||||||
|
${Eigen_LeastSquares_SRCS}
|
||||||
|
DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/LeastSquares
|
||||||
|
)
|
@ -22,12 +22,12 @@
|
|||||||
// License and a copy of the GNU General Public License along with
|
// License and a copy of the GNU General Public License along with
|
||||||
// Eigen. If not, see <http://www.gnu.org/licenses/>.
|
// Eigen. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
#ifndef EIGEN_REGRESSION_H
|
#ifndef EIGEN_LEASTSQUARES_H
|
||||||
#define EIGEN_REGRESSION_H
|
#define EIGEN_LEASTSQUARES_H
|
||||||
|
|
||||||
/** \ingroup Regression_Module
|
/** \ingroup LeastSquares_Module
|
||||||
*
|
*
|
||||||
* \regression_module
|
* \leastsquares_module
|
||||||
*
|
*
|
||||||
* For a set of points, this function tries to express
|
* For a set of points, this function tries to express
|
||||||
* one of the coords as a linear (affine) function of the other coords.
|
* one of the coords as a linear (affine) function of the other coords.
|
||||||
@ -128,9 +128,9 @@ void linearRegression(int numPoints,
|
|||||||
ei_assert((m.adjoint()*m).lu().solve(v, result));
|
ei_assert((m.adjoint()*m).lu().solve(v, result));
|
||||||
}
|
}
|
||||||
|
|
||||||
/** \ingroup Regression_Module
|
/** \ingroup LeastSquares_Module
|
||||||
*
|
*
|
||||||
* \regression_module
|
* \leastsquares_module
|
||||||
*
|
*
|
||||||
* This function is quite similar to linearRegression(), so we refer to the
|
* This function is quite similar to linearRegression(), so we refer to the
|
||||||
* documentation of this function and only list here the differences.
|
* documentation of this function and only list here the differences.
|
||||||
@ -195,4 +195,4 @@ void fitHyperplane(int numPoints,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif // EIGEN_REGRESSION_H
|
#endif // EIGEN_LEASTSQUARES_H
|
@ -1,6 +0,0 @@
|
|||||||
FILE(GLOB Eigen_Regression_SRCS "*.h")
|
|
||||||
|
|
||||||
INSTALL(FILES
|
|
||||||
${Eigen_Regression_SRCS}
|
|
||||||
DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen/src/Regression
|
|
||||||
)
|
|
@ -18,7 +18,7 @@
|
|||||||
// DOXYGEN_SET_MULTILINE_CPP_IS_BRIEF = NO
|
// DOXYGEN_SET_MULTILINE_CPP_IS_BRIEF = NO
|
||||||
// DOXYGEN_SET_DETAILS_AT_TOP = YES
|
// DOXYGEN_SET_DETAILS_AT_TOP = YES
|
||||||
// DOXYGEN_SET_INHERIT_DOCS = YES
|
// DOXYGEN_SET_INHERIT_DOCS = YES
|
||||||
// DOXYGEN_SET_ALIASES = "only_for_vectors=This is only for vectors (either row-vectors or column-vectors), i.e. matrices which are known at compile-time to have either one row or one column." "array_module=This is defined in the %Array module. \code #include <Eigen/Array> \endcode" "lu_module=This is defined in the %LU module. \code #include <Eigen/LU> \endcode" "cholesky_module=This is defined in the %Cholesky module. \code #include <Eigen/Cholesky> \endcode" "qr_module=This is defined in the %QR module. \code #include <Eigen/QR> \endcode" "svd_module=This is defined in the %SVD module. \code #include <Eigen/SVD> \endcode" "geometry_module=This is defined in the %Geometry module. \code #include <Eigen/Geometry> \endcode" "regression_module=This is defined in the %Regression module. \code #include <Eigen/Regression> \endcode" "addexample=\anchor" "label=\bug" "redstar=<a href='#warningarraymodule' style='color:red;text-decoration: none;'>*</a>" "nonstableyet=\warning This class/function is not considered to be part of the stable public API yet. Changes may happen in future releases. See \ref Experimental \"Experimental parts of Eigen\""
|
// DOXYGEN_SET_ALIASES = "only_for_vectors=This is only for vectors (either row-vectors or column-vectors), i.e. matrices which are known at compile-time to have either one row or one column." "array_module=This is defined in the %Array module. \code #include <Eigen/Array> \endcode" "lu_module=This is defined in the %LU module. \code #include <Eigen/LU> \endcode" "cholesky_module=This is defined in the %Cholesky module. \code #include <Eigen/Cholesky> \endcode" "qr_module=This is defined in the %QR module. \code #include <Eigen/QR> \endcode" "svd_module=This is defined in the %SVD module. \code #include <Eigen/SVD> \endcode" "geometry_module=This is defined in the %Geometry module. \code #include <Eigen/Geometry> \endcode" "regression_module=This is defined in the %Regression module. \code #include <Eigen/Regression> \endcode" "addexample=\anchor" "label=\bug" "redstar=<a href='#warningarraymodule' style='color:red;text-decoration: none;'>*</a>" "nonstableyet=\warning This is not considered to be part of the stable public API yet. Changes may happen in future releases. See \ref Experimental \"Experimental parts of Eigen\""
|
||||||
// DOXYGEN_SET_DISTRIBUTE_GROUP_DOC = NO
|
// DOXYGEN_SET_DISTRIBUTE_GROUP_DOC = NO
|
||||||
// DOXYGEN_SET_SUBGROUPING = YES
|
// DOXYGEN_SET_SUBGROUPING = YES
|
||||||
// DOXYGEN_SET_TYPEDEF_HIDES_STRUCT = NO
|
// DOXYGEN_SET_TYPEDEF_HIDES_STRUCT = NO
|
||||||
|
@ -210,11 +210,11 @@ ALIASES = "only_for_vectors=This is only for vectors (either row-
|
|||||||
"qr_module=This is defined in the %QR module. \code #include <Eigen/QR> \endcode" \
|
"qr_module=This is defined in the %QR module. \code #include <Eigen/QR> \endcode" \
|
||||||
"svd_module=This is defined in the %SVD module. \code #include <Eigen/SVD> \endcode" \
|
"svd_module=This is defined in the %SVD module. \code #include <Eigen/SVD> \endcode" \
|
||||||
"geometry_module=This is defined in the %Geometry module. \code #include <Eigen/Geometry> \endcode" \
|
"geometry_module=This is defined in the %Geometry module. \code #include <Eigen/Geometry> \endcode" \
|
||||||
"regression_module=This is defined in the %Regression module. \code #include <Eigen/Regression> \endcode" \
|
"leastsquares_module=This is defined in the %LeastSquares module. \code #include <Eigen/LeastSquares> \endcode" \
|
||||||
"addexample=\anchor" \
|
"addexample=\anchor" \
|
||||||
"label=\bug" \
|
"label=\bug" \
|
||||||
"redstar=<a href='#warningarraymodule' style='color:red;text-decoration: none;'>*</a>" \
|
"redstar=<a href='#warningarraymodule' style='color:red;text-decoration: none;'>*</a>" \
|
||||||
"nonstableyet=\warning This class/function is not considered to be part of the stable public API yet. Changes may happen in future releases. See \ref Experimental \"Experimental parts of Eigen\""
|
"nonstableyet=\warning This is not considered to be part of the stable public API yet. Changes may happen in future releases. See \ref Experimental \"Experimental parts of Eigen\""
|
||||||
|
|
||||||
# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
|
# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
|
||||||
# sources only. Doxygen will then generate output that is more tailored for C.
|
# sources only. Doxygen will then generate output that is more tailored for C.
|
||||||
|
@ -12,7 +12,7 @@ namespace Eigen {
|
|||||||
Experimental features may at any time:
|
Experimental features may at any time:
|
||||||
\li be removed;
|
\li be removed;
|
||||||
\li be subject to an API incompatible change;
|
\li be subject to an API incompatible change;
|
||||||
\li introduce API or ABI incompatible changes in your own application if you let them affect your API or ABI.
|
\li introduce API or ABI incompatible changes in your own code if you let them affect your API or ABI.
|
||||||
|
|
||||||
\section modules Experimental modules
|
\section modules Experimental modules
|
||||||
|
|
||||||
@ -20,6 +20,7 @@ The following modules are considered entirely experimental:
|
|||||||
\li SVD
|
\li SVD
|
||||||
\li QR
|
\li QR
|
||||||
\li Sparse
|
\li Sparse
|
||||||
|
\li Geometry
|
||||||
|
|
||||||
\section core Experimental parts of the Core module
|
\section core Experimental parts of the Core module
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user