mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
Fix comment typos, doubled words, grammar errors, and copy-paste mistakes
libeigen/eigen!2173 Closes #3034 Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
This commit is contained in:
@@ -141,7 +141,7 @@ class Array : public PlainObjectBase<Array<Scalar_, Rows_, Cols_, Options_, MaxR
|
|||||||
* This constructor is for 1D array or vectors with more than 4 coefficients.
|
* This constructor is for 1D array or vectors with more than 4 coefficients.
|
||||||
*
|
*
|
||||||
* \warning To construct a column (resp. row) vector of fixed length, the number of values passed to this
|
* \warning To construct a column (resp. row) vector of fixed length, the number of values passed to this
|
||||||
* constructor must match the the fixed number of rows (resp. columns) of \c *this.
|
* constructor must match the fixed number of rows (resp. columns) of \c *this.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* Example: \include Array_variadic_ctor_cxx11.cpp
|
* Example: \include Array_variadic_ctor_cxx11.cpp
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ namespace Eigen {
|
|||||||
* \brief Expression of a mathematical vector or matrix as an array object
|
* \brief Expression of a mathematical vector or matrix as an array object
|
||||||
*
|
*
|
||||||
* This class is the return type of MatrixBase::array(), and most of the time
|
* This class is the return type of MatrixBase::array(), and most of the time
|
||||||
* this is the only way it is use.
|
* this is the only way it is used.
|
||||||
*
|
*
|
||||||
* \sa MatrixBase::array(), class MatrixWrapper
|
* \sa MatrixBase::array(), class MatrixWrapper
|
||||||
*/
|
*/
|
||||||
@@ -96,7 +96,7 @@ class ArrayWrapper : public ArrayBase<ArrayWrapper<ExpressionType> > {
|
|||||||
* \brief Expression of an array as a mathematical vector or matrix
|
* \brief Expression of an array as a mathematical vector or matrix
|
||||||
*
|
*
|
||||||
* This class is the return type of ArrayBase::matrix(), and most of the time
|
* This class is the return type of ArrayBase::matrix(), and most of the time
|
||||||
* this is the only way it is use.
|
* this is the only way it is used.
|
||||||
*
|
*
|
||||||
* \sa MatrixBase::matrix(), class ArrayWrapper
|
* \sa MatrixBase::matrix(), class ArrayWrapper
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ class DiagonalBase : public EigenBase<Derived> {
|
|||||||
/**
|
/**
|
||||||
* Constructs a dense matrix from \c *this. Note, this directly returns a dense matrix type,
|
* Constructs a dense matrix from \c *this. Note, this directly returns a dense matrix type,
|
||||||
* not an expression.
|
* not an expression.
|
||||||
* \returns A dense matrix, with its diagonal entries set from the the derived object. */
|
* \returns A dense matrix, with its diagonal entries set from the derived object. */
|
||||||
EIGEN_DEVICE_FUNC DenseMatrixType toDenseMatrix() const { return derived(); }
|
EIGEN_DEVICE_FUNC DenseMatrixType toDenseMatrix() const { return derived(); }
|
||||||
|
|
||||||
/** \returns a reference to the derived object's vector of diagonal coefficients. */
|
/** \returns a reference to the derived object's vector of diagonal coefficients. */
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|||||||
|
|
||||||
/** \returns, for vectors, the squared \em l2 norm of \c *this, and for matrices the squared Frobenius norm.
|
/** \returns, for vectors, the squared \em l2 norm of \c *this, and for matrices the squared Frobenius norm.
|
||||||
* In both cases, it consists in the sum of the square of all the matrix entries.
|
* In both cases, it consists in the sum of the square of all the matrix entries.
|
||||||
* For vectors, this is also equals to the dot product of \c *this with itself.
|
* For vectors, this is also equal to the dot product of \c *this with itself.
|
||||||
*
|
*
|
||||||
* \sa dot(), norm(), lpNorm()
|
* \sa dot(), norm(), lpNorm()
|
||||||
*/
|
*/
|
||||||
@@ -66,7 +66,7 @@ MatrixBase<Derived>::squaredNorm() const {
|
|||||||
|
|
||||||
/** \returns, for vectors, the \em l2 norm of \c *this, and for matrices the Frobenius norm.
|
/** \returns, for vectors, the \em l2 norm of \c *this, and for matrices the Frobenius norm.
|
||||||
* In both cases, it consists in the square root of the sum of the square of all the matrix entries.
|
* In both cases, it consists in the square root of the sum of the square of all the matrix entries.
|
||||||
* For vectors, this is also equals to the square root of the dot product of \c *this with itself.
|
* For vectors, this is also equal to the square root of the dot product of \c *this with itself.
|
||||||
*
|
*
|
||||||
* \sa lpNorm(), dot(), squaredNorm()
|
* \sa lpNorm(), dot(), squaredNorm()
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -610,7 +610,7 @@ EIGEN_DEVICE_FUNC inline bool pselect<bool>(const bool& cond, const bool& a, con
|
|||||||
return cond ? a : b;
|
return cond ? a : b;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** \internal \returns the min or of \a a and \a b (coeff-wise)
|
/** \internal \returns the min or max of \a a and \a b (coeff-wise)
|
||||||
If either \a a or \a b are NaN, the result is implementation defined. */
|
If either \a a or \a b are NaN, the result is implementation defined. */
|
||||||
template <int NaNPropagation, bool IsInteger>
|
template <int NaNPropagation, bool IsInteger>
|
||||||
struct pminmax_impl {
|
struct pminmax_impl {
|
||||||
@@ -648,7 +648,7 @@ struct pminmax_impl<PropagateNumbers, false> {
|
|||||||
#define EIGEN_BINARY_OP_NAN_PROPAGATION(Type, Func) [](const Type& aa, const Type& bb) { return Func(aa, bb); }
|
#define EIGEN_BINARY_OP_NAN_PROPAGATION(Type, Func) [](const Type& aa, const Type& bb) { return Func(aa, bb); }
|
||||||
|
|
||||||
/** \internal \returns the min of \a a and \a b (coeff-wise).
|
/** \internal \returns the min of \a a and \a b (coeff-wise).
|
||||||
If \a a or \b b is NaN, the return value is implementation defined. */
|
If \a a or \a b is NaN, the return value is implementation defined. */
|
||||||
template <typename Packet>
|
template <typename Packet>
|
||||||
EIGEN_DEVICE_FUNC inline Packet pmin(const Packet& a, const Packet& b) {
|
EIGEN_DEVICE_FUNC inline Packet pmin(const Packet& a, const Packet& b) {
|
||||||
return numext::mini(a, b);
|
return numext::mini(a, b);
|
||||||
@@ -663,7 +663,7 @@ EIGEN_DEVICE_FUNC inline Packet pmin(const Packet& a, const Packet& b) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** \internal \returns the max of \a a and \a b (coeff-wise)
|
/** \internal \returns the max of \a a and \a b (coeff-wise)
|
||||||
If \a a or \b b is NaN, the return value is implementation defined. */
|
If \a a or \a b is NaN, the return value is implementation defined. */
|
||||||
template <typename Packet>
|
template <typename Packet>
|
||||||
EIGEN_DEVICE_FUNC inline Packet pmax(const Packet& a, const Packet& b) {
|
EIGEN_DEVICE_FUNC inline Packet pmax(const Packet& a, const Packet& b) {
|
||||||
return numext::maxi(a, b);
|
return numext::maxi(a, b);
|
||||||
|
|||||||
@@ -271,7 +271,7 @@ class Matrix : public PlainObjectBase<Matrix<Scalar_, Rows_, Cols_, Options_, Ma
|
|||||||
* This constructor is for 1D array or vectors with more than 4 coefficients.
|
* This constructor is for 1D array or vectors with more than 4 coefficients.
|
||||||
*
|
*
|
||||||
* \warning To construct a column (resp. row) vector of fixed length, the number of values passed to this
|
* \warning To construct a column (resp. row) vector of fixed length, the number of values passed to this
|
||||||
* constructor must match the the fixed number of rows (resp. columns) of \c *this.
|
* constructor must match the fixed number of rows (resp. columns) of \c *this.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* Example: \include Matrix_variadic_ctor_cxx11.cpp
|
* Example: \include Matrix_variadic_ctor_cxx11.cpp
|
||||||
|
|||||||
@@ -461,7 +461,7 @@ class PlainObjectBase : public internal::dense_xpr_base<Derived>::type {
|
|||||||
* This constructor is for 1D array or vectors with more than 4 coefficients.
|
* This constructor is for 1D array or vectors with more than 4 coefficients.
|
||||||
*
|
*
|
||||||
* \warning To construct a column (resp. row) vector of fixed length, the number of values passed to this
|
* \warning To construct a column (resp. row) vector of fixed length, the number of values passed to this
|
||||||
* constructor must match the the fixed number of rows (resp. columns) of \c *this.
|
* constructor must match the fixed number of rows (resp. columns) of \c *this.
|
||||||
*/
|
*/
|
||||||
template <typename... ArgTypes>
|
template <typename... ArgTypes>
|
||||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PlainObjectBase(const Scalar& a0, const Scalar& a1, const Scalar& a2,
|
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PlainObjectBase(const Scalar& a0, const Scalar& a1, const Scalar& a2,
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ class SkewSymmetricBase : public EigenBase<Derived> {
|
|||||||
/**
|
/**
|
||||||
* Constructs a dense matrix from \c *this. Note, this directly returns a dense matrix type,
|
* Constructs a dense matrix from \c *this. Note, this directly returns a dense matrix type,
|
||||||
* not an expression.
|
* not an expression.
|
||||||
* \returns A dense matrix, with its entries set from the the derived object. */
|
* \returns A dense matrix, with its entries set from the derived object. */
|
||||||
EIGEN_DEVICE_FUNC DenseMatrixType toDenseMatrix() const { return derived(); }
|
EIGEN_DEVICE_FUNC DenseMatrixType toDenseMatrix() const { return derived(); }
|
||||||
|
|
||||||
/** Determinant vanishes */
|
/** Determinant vanishes */
|
||||||
|
|||||||
@@ -1753,7 +1753,7 @@ EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet psqrt_complex(const P
|
|||||||
const RealPacket cst_imag_sign_mask = pset1<Packet>(Scalar(RealScalar(0.0), RealScalar(-0.0))).v;
|
const RealPacket cst_imag_sign_mask = pset1<Packet>(Scalar(RealScalar(0.0), RealScalar(-0.0))).v;
|
||||||
RealPacket imag_signs = pand(a.v, cst_imag_sign_mask);
|
RealPacket imag_signs = pand(a.v, cst_imag_sign_mask);
|
||||||
Packet negative_real_result;
|
Packet negative_real_result;
|
||||||
// Notice that rho is positive, so taking it's absolute value is a noop.
|
// Notice that rho is positive, so taking its absolute value is a noop.
|
||||||
negative_real_result.v = por(pabs(pcplxflip(positive_real_result).v), imag_signs);
|
negative_real_result.v = por(pabs(pcplxflip(positive_real_result).v), imag_signs);
|
||||||
|
|
||||||
// Step 5. Select solution branch based on the sign of the real parts.
|
// Step 5. Select solution branch based on the sign of the real parts.
|
||||||
@@ -1877,7 +1877,7 @@ struct psign_impl<Packet, std::enable_if_t<!is_scalar<Packet>::value &&
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// \internal \returns the the sign of a complex number z, defined as z / abs(z).
|
// \internal \returns the sign of a complex number z, defined as z / abs(z).
|
||||||
template <typename Packet>
|
template <typename Packet>
|
||||||
struct psign_impl<Packet, std::enable_if_t<!is_scalar<Packet>::value &&
|
struct psign_impl<Packet, std::enable_if_t<!is_scalar<Packet>::value &&
|
||||||
NumTraits<typename unpacket_traits<Packet>::type>::IsComplex &&
|
NumTraits<typename unpacket_traits<Packet>::type>::IsComplex &&
|
||||||
|
|||||||
@@ -595,7 +595,7 @@
|
|||||||
// without an explicit launch_bounds attribute is called with a threads_per_block value
|
// without an explicit launch_bounds attribute is called with a threads_per_block value
|
||||||
// greater than 256.
|
// greater than 256.
|
||||||
//
|
//
|
||||||
// This is a regression in functioanlity and is expected to be fixed within the next
|
// This is a regression in functionality and is expected to be fixed within the next
|
||||||
// couple of ROCm releases (compiler will go back to using 1024 value as the default)
|
// couple of ROCm releases (compiler will go back to using 1024 value as the default)
|
||||||
//
|
//
|
||||||
// In the meantime, we will use a "only enabled for HIP" macro to set the launch_bounds
|
// In the meantime, we will use a "only enabled for HIP" macro to set the launch_bounds
|
||||||
|
|||||||
@@ -203,7 +203,7 @@ class ComplexQZ {
|
|||||||
|
|
||||||
inline Mat2 computeZk2(const Row2& b);
|
inline Mat2 computeZk2(const Row2& b);
|
||||||
|
|
||||||
// This is basically taken from from Eigen3::RealQZ
|
// This is basically taken from Eigen3::RealQZ
|
||||||
void hessenbergTriangular(const MatrixType& A, const MatrixType& B);
|
void hessenbergTriangular(const MatrixType& A, const MatrixType& B);
|
||||||
|
|
||||||
// This function can be called when m_Q and m_Z are initialized and m_S, m_T
|
// This function can be called when m_Q and m_Z are initialized and m_S, m_T
|
||||||
@@ -243,7 +243,7 @@ void ComplexQZ<MatrixType_>::compute(const MatrixType& A, const MatrixType& B, b
|
|||||||
reduceHessenbergTriangular();
|
reduceHessenbergTriangular();
|
||||||
}
|
}
|
||||||
|
|
||||||
// This is basically taken from from Eigen3::RealQZ
|
// This is basically taken from Eigen3::RealQZ
|
||||||
template <typename MatrixType_>
|
template <typename MatrixType_>
|
||||||
void ComplexQZ<MatrixType_>::hessenbergTriangular(const MatrixType& A, const MatrixType& B) {
|
void ComplexQZ<MatrixType_>::hessenbergTriangular(const MatrixType& A, const MatrixType& B) {
|
||||||
// Copy A and B, these will be the matrices on which we operate later
|
// Copy A and B, these will be the matrices on which we operate later
|
||||||
|
|||||||
@@ -200,7 +200,7 @@ struct unitOrthogonal_selector<Derived, 3> {
|
|||||||
EIGEN_DEVICE_FUNC static inline VectorType run(const Derived& src) {
|
EIGEN_DEVICE_FUNC static inline VectorType run(const Derived& src) {
|
||||||
VectorType perp;
|
VectorType perp;
|
||||||
/* Let us compute the crossed product of *this with a vector
|
/* Let us compute the crossed product of *this with a vector
|
||||||
* that is not too close to being colinear to *this.
|
* that is not too close to being collinear to *this.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* unless the x and y coords are both close to zero, we can
|
/* unless the x and y coords are both close to zero, we can
|
||||||
@@ -213,7 +213,7 @@ struct unitOrthogonal_selector<Derived, 3> {
|
|||||||
perp.coeffRef(2) = 0;
|
perp.coeffRef(2) = 0;
|
||||||
}
|
}
|
||||||
/* if both x and y are close to zero, then the vector is close
|
/* if both x and y are close to zero, then the vector is close
|
||||||
* to the z-axis, so it's far from colinear to the x-axis for instance.
|
* to the z-axis, so it's far from collinear to the x-axis for instance.
|
||||||
* So we take the crossed product with (1,0,0) and normalize it.
|
* So we take the crossed product with (1,0,0) and normalize it.
|
||||||
*/
|
*/
|
||||||
else {
|
else {
|
||||||
@@ -242,7 +242,7 @@ struct unitOrthogonal_selector<Derived, 2> {
|
|||||||
* \returns a unit vector which is orthogonal to \c *this
|
* \returns a unit vector which is orthogonal to \c *this
|
||||||
*
|
*
|
||||||
* The size of \c *this must be at least 2. If the size is exactly 2,
|
* The size of \c *this must be at least 2. If the size is exactly 2,
|
||||||
* then the returned vector is a counter clock wise rotation of \c *this, i.e., (-y,x).normalized().
|
* then the returned vector is a counter-clockwise rotation of \c *this, i.e., (-y,x).normalized().
|
||||||
*
|
*
|
||||||
* \sa cross()
|
* \sa cross()
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ namespace Eigen {
|
|||||||
*
|
*
|
||||||
* \tparam Scalar_ the scalar type, i.e., the type of the coefficients
|
* \tparam Scalar_ the scalar type, i.e., the type of the coefficients
|
||||||
*
|
*
|
||||||
* This class is equivalent to a single scalar representing a counter clock wise rotation
|
* This class is equivalent to a single scalar representing a counter-clockwise rotation
|
||||||
* as a single angle in radian. It provides some additional features such as the automatic
|
* as a single angle in radian. It provides some additional features such as the automatic
|
||||||
* conversion from/to a 2x2 rotation matrix. Moreover this class aims to provide a similar
|
* conversion from/to a 2x2 rotation matrix. Moreover this class aims to provide a similar
|
||||||
* interface to Quaternion in order to facilitate the writing of generic algorithms
|
* interface to Quaternion in order to facilitate the writing of generic algorithms
|
||||||
@@ -57,7 +57,7 @@ class Rotation2D : public RotationBase<Rotation2D<Scalar_>, 2> {
|
|||||||
Scalar m_angle;
|
Scalar m_angle;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/** Construct a 2D counter clock wise rotation from the angle \a a in radian. */
|
/** Construct a 2D counter-clockwise rotation from the angle \a a in radian. */
|
||||||
EIGEN_DEVICE_FUNC explicit inline Rotation2D(const Scalar& a) : m_angle(a) {}
|
EIGEN_DEVICE_FUNC explicit inline Rotation2D(const Scalar& a) : m_angle(a) {}
|
||||||
|
|
||||||
/** Default constructor without initialization. The represented rotation is undefined. */
|
/** Default constructor without initialization. The represented rotation is undefined. */
|
||||||
|
|||||||
@@ -745,7 +745,7 @@ Transform<Scalar, Dim, Mode, Options>& Transform<Scalar, Dim, Mode, Options>::op
|
|||||||
|
|
||||||
/** \returns a QMatrix from \c *this assuming the dimension is 2.
|
/** \returns a QMatrix from \c *this assuming the dimension is 2.
|
||||||
*
|
*
|
||||||
* \warning this conversion might loss data if \c *this is not affine
|
* \warning this conversion might lose data if \c *this is not affine
|
||||||
*
|
*
|
||||||
* This function is available only if the token EIGEN_QT_SUPPORT is defined.
|
* This function is available only if the token EIGEN_QT_SUPPORT is defined.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -239,7 +239,7 @@ EIGEN_DEVICE_FUNC void JacobiRotation<Scalar>::makeGivens(const Scalar& p, const
|
|||||||
|
|
||||||
namespace internal {
|
namespace internal {
|
||||||
/** \jacobi_module
|
/** \jacobi_module
|
||||||
* Applies the clock wise 2D rotation \a j to the set of 2D vectors of coordinates \a x and \a y:
|
* Applies the clockwise 2D rotation \a j to the set of 2D vectors of coordinates \a x and \a y:
|
||||||
* \f$ \left ( \begin{array}{cc} x \\ y \end{array} \right ) = J \left ( \begin{array}{cc} x \\ y \end{array} \right )
|
* \f$ \left ( \begin{array}{cc} x \\ y \end{array} \right ) = J \left ( \begin{array}{cc} x \\ y \end{array} \right )
|
||||||
* \f$
|
* \f$
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ class KLU : public SparseSolverBase<KLU<MatrixType_> > {
|
|||||||
eigen_assert(m_isInitialized && "Decomposition is not initialized.");
|
eigen_assert(m_isInitialized && "Decomposition is not initialized.");
|
||||||
return m_info;
|
return m_info;
|
||||||
}
|
}
|
||||||
/** Computes the sparse Cholesky decomposition of \a matrix
|
/** Computes the sparse LU factorization of \a matrix
|
||||||
* Note that the matrix should be column-major, and in compressed format for best performance.
|
* Note that the matrix should be column-major, and in compressed format for best performance.
|
||||||
* \sa SparseMatrix::makeCompressed().
|
* \sa SparseMatrix::makeCompressed().
|
||||||
*/
|
*/
|
||||||
@@ -147,7 +147,7 @@ class KLU : public SparseSolverBase<KLU<MatrixType_> > {
|
|||||||
*/
|
*/
|
||||||
inline const klu_common &kluCommon() const { return m_common; }
|
inline const klu_common &kluCommon() const { return m_common; }
|
||||||
|
|
||||||
/** Provides access to the control settings array used by UmfPack.
|
/** Provides access to the control settings array used by KLU.
|
||||||
*
|
*
|
||||||
* If this array contains NaN's, the default values are used.
|
* If this array contains NaN's, the default values are used.
|
||||||
*
|
*
|
||||||
@@ -157,7 +157,7 @@ class KLU : public SparseSolverBase<KLU<MatrixType_> > {
|
|||||||
|
|
||||||
/** Performs a numeric decomposition of \a matrix
|
/** Performs a numeric decomposition of \a matrix
|
||||||
*
|
*
|
||||||
* The given matrix must have the same sparsity than the matrix on which the pattern anylysis has been performed.
|
* The given matrix must have the same sparsity as the matrix on which the pattern analysis has been performed.
|
||||||
*
|
*
|
||||||
* \sa analyzePattern(), compute()
|
* \sa analyzePattern(), compute()
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ class MetisOrdering {
|
|||||||
IndexVector visited(m);
|
IndexVector visited(m);
|
||||||
visited.setConstant(-1);
|
visited.setConstant(-1);
|
||||||
for (StorageIndex j = 0; j < m; j++) {
|
for (StorageIndex j = 0; j < m; j++) {
|
||||||
// Compute the union structure of of A(j,:) and At(j,:)
|
// Compute the union structure of A(j,:) and At(j,:)
|
||||||
visited(j) = j; // Do not include the diagonal element
|
visited(j) = j; // Do not include the diagonal element
|
||||||
// Get the nonzeros in row/column j of A
|
// Get the nonzeros in row/column j of A
|
||||||
for (typename MatrixType::InnerIterator it(A, j); it; ++it) {
|
for (typename MatrixType::InnerIterator it(A, j); it; ++it) {
|
||||||
|
|||||||
@@ -713,7 +713,7 @@ static void init_scoring(
|
|||||||
for (c = n_col - 1; c >= 0; c--) {
|
for (c = n_col - 1; c >= 0; c--) {
|
||||||
deg = Col[c].length;
|
deg = Col[c].length;
|
||||||
if (deg == 0) {
|
if (deg == 0) {
|
||||||
/* this is a empty column, kill and order it last */
|
/* this is an empty column, kill and order it last */
|
||||||
Col[c].shared2.order = --n_col2;
|
Col[c].shared2.order = --n_col2;
|
||||||
Col[c].kill_principal();
|
Col[c].kill_principal();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -157,7 +157,7 @@ class PardisoImpl : public SparseSolverBase<Derived> {
|
|||||||
|
|
||||||
/** Performs a numeric decomposition of \a matrix
|
/** Performs a numeric decomposition of \a matrix
|
||||||
*
|
*
|
||||||
* The given matrix must have the same sparsity than the matrix on which the symbolic decomposition has been
|
* The given matrix must have the same sparsity as the matrix on which the symbolic decomposition has been
|
||||||
* performed.
|
* performed.
|
||||||
*
|
*
|
||||||
* \sa analyzePattern()
|
* \sa analyzePattern()
|
||||||
|
|||||||
@@ -453,7 +453,7 @@ void BDCSVD<MatrixType, Options>::copyUV(const HouseholderU& householderU, const
|
|||||||
* A = [A1]
|
* A = [A1]
|
||||||
* [A2]
|
* [A2]
|
||||||
* such that A1.rows()==n1, then we assume that at least half of the columns of A1 and A2 are zeros.
|
* such that A1.rows()==n1, then we assume that at least half of the columns of A1 and A2 are zeros.
|
||||||
* We can thus pack them prior to the the matrix product. However, this is only worth the effort if the matrix is large
|
* We can thus pack them prior to the matrix product. However, this is only worth the effort if the matrix is large
|
||||||
* enough.
|
* enough.
|
||||||
*/
|
*/
|
||||||
template <typename MatrixType, int Options>
|
template <typename MatrixType, int Options>
|
||||||
|
|||||||
@@ -330,7 +330,7 @@ UpperBidiagonalization<MatrixType_>& UpperBidiagonalization<MatrixType_>::comput
|
|||||||
Index cols = matrix.cols();
|
Index cols = matrix.cols();
|
||||||
EIGEN_ONLY_USED_FOR_DEBUG(cols);
|
EIGEN_ONLY_USED_FOR_DEBUG(cols);
|
||||||
|
|
||||||
eigen_assert(rows >= cols && "UpperBidiagonalization is only for Arices satisfying rows>=cols.");
|
eigen_assert(rows >= cols && "UpperBidiagonalization is only for matrices satisfying rows>=cols.");
|
||||||
|
|
||||||
m_householder = matrix;
|
m_householder = matrix;
|
||||||
|
|
||||||
@@ -350,7 +350,7 @@ UpperBidiagonalization<MatrixType_>& UpperBidiagonalization<MatrixType_>::comput
|
|||||||
EIGEN_ONLY_USED_FOR_DEBUG(rows);
|
EIGEN_ONLY_USED_FOR_DEBUG(rows);
|
||||||
EIGEN_ONLY_USED_FOR_DEBUG(cols);
|
EIGEN_ONLY_USED_FOR_DEBUG(cols);
|
||||||
|
|
||||||
eigen_assert(rows >= cols && "UpperBidiagonalization is only for Arices satisfying rows>=cols.");
|
eigen_assert(rows >= cols && "UpperBidiagonalization is only for matrices satisfying rows>=cols.");
|
||||||
|
|
||||||
m_householder = matrix;
|
m_householder = matrix;
|
||||||
upperbidiagonalization_inplace_blocked(m_householder, m_bidiagonal);
|
upperbidiagonalization_inplace_blocked(m_householder, m_bidiagonal);
|
||||||
|
|||||||
@@ -416,7 +416,7 @@ class SimplicialLLT : public SimplicialCholeskyBase<SimplicialLLT<MatrixType_, U
|
|||||||
|
|
||||||
/** Performs a numeric decomposition of \a matrix
|
/** Performs a numeric decomposition of \a matrix
|
||||||
*
|
*
|
||||||
* The given matrix must have the same sparsity than the matrix on which the symbolic decomposition has been
|
* The given matrix must have the same sparsity as the matrix on which the symbolic decomposition has been
|
||||||
* performed.
|
* performed.
|
||||||
*
|
*
|
||||||
* \sa analyzePattern()
|
* \sa analyzePattern()
|
||||||
@@ -505,7 +505,7 @@ class SimplicialLDLT : public SimplicialCholeskyBase<SimplicialLDLT<MatrixType_,
|
|||||||
|
|
||||||
/** Performs a numeric decomposition of \a matrix
|
/** Performs a numeric decomposition of \a matrix
|
||||||
*
|
*
|
||||||
* The given matrix must have the same sparsity than the matrix on which the symbolic decomposition has been
|
* The given matrix must have the same sparsity as the matrix on which the symbolic decomposition has been
|
||||||
* performed.
|
* performed.
|
||||||
*
|
*
|
||||||
* \sa analyzePattern()
|
* \sa analyzePattern()
|
||||||
@@ -587,7 +587,7 @@ class SimplicialNonHermitianLLT
|
|||||||
|
|
||||||
/** Performs a numeric decomposition of \a matrix
|
/** Performs a numeric decomposition of \a matrix
|
||||||
*
|
*
|
||||||
* The given matrix must have the same sparsity than the matrix on which the symbolic decomposition has been
|
* The given matrix must have the same sparsity as the matrix on which the symbolic decomposition has been
|
||||||
* performed.
|
* performed.
|
||||||
*
|
*
|
||||||
* \sa analyzePattern()
|
* \sa analyzePattern()
|
||||||
@@ -677,7 +677,7 @@ class SimplicialNonHermitianLDLT
|
|||||||
|
|
||||||
/** Performs a numeric decomposition of \a matrix
|
/** Performs a numeric decomposition of \a matrix
|
||||||
*
|
*
|
||||||
* The given matrix must have the same sparsity than the matrix on which the symbolic decomposition has been
|
* The given matrix must have the same sparsity as the matrix on which the symbolic decomposition has been
|
||||||
* performed.
|
* performed.
|
||||||
*
|
*
|
||||||
* \sa analyzePattern()
|
* \sa analyzePattern()
|
||||||
@@ -761,7 +761,7 @@ class SimplicialCholesky : public SimplicialCholeskyBase<SimplicialCholesky<Matr
|
|||||||
|
|
||||||
/** Performs a numeric decomposition of \a matrix
|
/** Performs a numeric decomposition of \a matrix
|
||||||
*
|
*
|
||||||
* The given matrix must have the same sparsity than the matrix on which the symbolic decomposition has been
|
* The given matrix must have the same sparsity as the matrix on which the symbolic decomposition has been
|
||||||
* performed.
|
* performed.
|
||||||
*
|
*
|
||||||
* \sa analyzePattern()
|
* \sa analyzePattern()
|
||||||
|
|||||||
@@ -360,7 +360,7 @@ class SparseLU : public SparseSolverBase<SparseLU<MatrixType_, OrderingType_>>,
|
|||||||
/** \brief Give the absolute value of the determinant.
|
/** \brief Give the absolute value of the determinant.
|
||||||
*
|
*
|
||||||
* \returns the absolute value of the determinant of the matrix of which
|
* \returns the absolute value of the determinant of the matrix of which
|
||||||
* *this is the QR decomposition.
|
* *this is the LU factorization.
|
||||||
*
|
*
|
||||||
* \warning a determinant can be very big or small, so for matrices
|
* \warning a determinant can be very big or small, so for matrices
|
||||||
* of large enough dimension, there is a risk of overflow/underflow.
|
* of large enough dimension, there is a risk of overflow/underflow.
|
||||||
@@ -389,7 +389,7 @@ class SparseLU : public SparseSolverBase<SparseLU<MatrixType_, OrderingType_>>,
|
|||||||
/** \brief Give the natural log of the absolute determinant.
|
/** \brief Give the natural log of the absolute determinant.
|
||||||
*
|
*
|
||||||
* \returns the natural log of the absolute value of the determinant of the matrix
|
* \returns the natural log of the absolute value of the determinant of the matrix
|
||||||
* of which **this is the QR decomposition
|
* of which *this is the LU factorization
|
||||||
*
|
*
|
||||||
* \note This method is useful to work around the risk of overflow/underflow that's
|
* \note This method is useful to work around the risk of overflow/underflow that's
|
||||||
* inherent to the determinant computation.
|
* inherent to the determinant computation.
|
||||||
|
|||||||
@@ -487,7 +487,7 @@ class SuperLU : public SuperLUBase<MatrixType_, SuperLU<MatrixType_> > {
|
|||||||
|
|
||||||
/** Performs a numeric decomposition of \a matrix
|
/** Performs a numeric decomposition of \a matrix
|
||||||
*
|
*
|
||||||
* The given matrix must have the same sparsity than the matrix on which the symbolic decomposition has been
|
* The given matrix must have the same sparsity as the matrix on which the symbolic decomposition has been
|
||||||
* performed.
|
* performed.
|
||||||
*
|
*
|
||||||
* \sa analyzePattern()
|
* \sa analyzePattern()
|
||||||
@@ -792,7 +792,7 @@ class SuperILU : public SuperLUBase<MatrixType_, SuperILU<MatrixType_> > {
|
|||||||
|
|
||||||
/** Performs a numeric decomposition of \a matrix
|
/** Performs a numeric decomposition of \a matrix
|
||||||
*
|
*
|
||||||
* The given matrix must have the same sparsity than the matrix on which the symbolic decomposition has been
|
* The given matrix must have the same sparsity as the matrix on which the symbolic decomposition has been
|
||||||
* performed.
|
* performed.
|
||||||
*
|
*
|
||||||
* \sa analyzePattern()
|
* \sa analyzePattern()
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ struct ThreadLocalNoOpRelease {
|
|||||||
//
|
//
|
||||||
// Eigen::ThreadLocal<Counter> counter(10);
|
// Eigen::ThreadLocal<Counter> counter(10);
|
||||||
//
|
//
|
||||||
// // Each thread will have access to it's own counter object.
|
// // Each thread will have access to its own counter object.
|
||||||
// Counter& cnt = counter.local();
|
// Counter& cnt = counter.local();
|
||||||
// cnt++;
|
// cnt++;
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -425,7 +425,7 @@ class UmfPackLU : public SparseSolverBase<UmfPackLU<MatrixType_> > {
|
|||||||
|
|
||||||
/** Performs a numeric decomposition of \a matrix
|
/** Performs a numeric decomposition of \a matrix
|
||||||
*
|
*
|
||||||
* The given matrix must have the same sparsity than the matrix on which the pattern anylysis has been performed.
|
* The given matrix must have the same sparsity as the matrix on which the pattern analysis has been performed.
|
||||||
*
|
*
|
||||||
* \sa analyzePattern(), compute()
|
* \sa analyzePattern(), compute()
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -990,7 +990,7 @@ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename ConstNColsBlockXpr<N>::Type middl
|
|||||||
/// Example: \include MatrixBase_block_int_int.cpp
|
/// Example: \include MatrixBase_block_int_int.cpp
|
||||||
/// Output: \verbinclude MatrixBase_block_int_int.out
|
/// Output: \verbinclude MatrixBase_block_int_int.out
|
||||||
///
|
///
|
||||||
/// \note The usage of of this overload is discouraged from %Eigen 3.4, better used the generic
|
/// \note The usage of this overload is discouraged from %Eigen 3.4, better use the generic
|
||||||
/// block(Index,Index,NRowsType,NColsType), here is the one-to-one equivalence:
|
/// block(Index,Index,NRowsType,NColsType), here is the one-to-one equivalence:
|
||||||
/// \code
|
/// \code
|
||||||
/// mat.template block<NRows,NCols>(i,j) <--> mat.block(i,j,fix<NRows>,fix<NCols>)
|
/// mat.template block<NRows,NCols>(i,j) <--> mat.block(i,j,fix<NRows>,fix<NCols>)
|
||||||
@@ -1032,7 +1032,7 @@ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename ConstFixedBlockXpr<NRows, N
|
|||||||
/// Example: \include MatrixBase_template_int_int_block_int_int_int_int.cpp
|
/// Example: \include MatrixBase_template_int_int_block_int_int_int_int.cpp
|
||||||
/// Output: \verbinclude MatrixBase_template_int_int_block_int_int_int_int.out
|
/// Output: \verbinclude MatrixBase_template_int_int_block_int_int_int_int.out
|
||||||
///
|
///
|
||||||
/// \note The usage of of this overload is discouraged from %Eigen 3.4, better used the generic
|
/// \note The usage of this overload is discouraged from %Eigen 3.4, better use the generic
|
||||||
/// block(Index,Index,NRowsType,NColsType), here is the one-to-one complete equivalence:
|
/// block(Index,Index,NRowsType,NColsType), here is the one-to-one complete equivalence:
|
||||||
/// \code
|
/// \code
|
||||||
/// mat.template block<NRows,NCols>(i,j,rows,cols) <--> mat.block(i,j,fix<NRows>(rows),fix<NCols>(cols))
|
/// mat.template block<NRows,NCols>(i,j,rows,cols) <--> mat.block(i,j,fix<NRows>(rows),fix<NCols>(cols))
|
||||||
|
|||||||
@@ -386,7 +386,7 @@ struct FullReducer<Self, Op, ThreadPoolDevice, Vectorizable> {
|
|||||||
Barrier barrier(internal::convert_index<unsigned int>(numblocks));
|
Barrier barrier(internal::convert_index<unsigned int>(numblocks));
|
||||||
MaxSizeVector<typename Self::CoeffReturnType> shards(numblocks, reducer.initialize());
|
MaxSizeVector<typename Self::CoeffReturnType> shards(numblocks, reducer.initialize());
|
||||||
for (Index i = 0; i < numblocks; ++i) {
|
for (Index i = 0; i < numblocks; ++i) {
|
||||||
auto run_shard = [i, blocksize, &self, &barrier, &shards, &reducer](){
|
auto run_shard = [i, blocksize, &self, &barrier, &shards, &reducer]() {
|
||||||
shards[i] = InnerMostDimReducer<Self, Op, Vectorizable>::reduce(self, i * blocksize, blocksize, reducer);
|
shards[i] = InnerMostDimReducer<Self, Op, Vectorizable>::reduce(self, i * blocksize, blocksize, reducer);
|
||||||
barrier.Notify();
|
barrier.Notify();
|
||||||
};
|
};
|
||||||
@@ -835,7 +835,7 @@ struct TensorReductionEvaluatorBase<const TensorReductionOp<Op, Dims, ArgType, M
|
|||||||
} else if (PreservingInnerMostDims) {
|
} else if (PreservingInnerMostDims) {
|
||||||
const Index firstIndex = firstInput(index);
|
const Index firstIndex = firstInput(index);
|
||||||
const int innermost_dim = (static_cast<int>(Layout) == static_cast<int>(ColMajor)) ? 0 : NumOutputDims - 1;
|
const int innermost_dim = (static_cast<int>(Layout) == static_cast<int>(ColMajor)) ? 0 : NumOutputDims - 1;
|
||||||
// TBD: extend this the the n innermost dimensions that we preserve.
|
// TBD: extend this to the n innermost dimensions that we preserve.
|
||||||
if (((firstIndex % m_dimensions[innermost_dim]) + PacketSize - 1) < m_dimensions[innermost_dim]) {
|
if (((firstIndex % m_dimensions[innermost_dim]) + PacketSize - 1) < m_dimensions[innermost_dim]) {
|
||||||
Op reducer(m_reducer);
|
Op reducer(m_reducer);
|
||||||
typename Self::PacketReturnType accum = reducer.template initializePacket<typename Self::PacketReturnType>();
|
typename Self::PacketReturnType accum = reducer.template initializePacket<typename Self::PacketReturnType>();
|
||||||
|
|||||||
Reference in New Issue
Block a user