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:
Rasmus Munk Larsen
2026-02-21 14:36:21 -08:00
parent 0e424f4050
commit e6accc73ff
28 changed files with 48 additions and 48 deletions

View File

@@ -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

View File

@@ -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
*/ */

View File

@@ -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. */

View File

@@ -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()
*/ */

View File

@@ -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);

View File

@@ -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

View File

@@ -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,

View File

@@ -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 */

View File

@@ -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 &&

View File

@@ -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

View File

@@ -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

View File

@@ -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()
*/ */

View File

@@ -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. */

View File

@@ -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.
*/ */

View File

@@ -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()
*/ */

View File

@@ -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) {

View File

@@ -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();
} }

View File

@@ -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()

View File

@@ -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>

View File

@@ -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);

View File

@@ -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()

View File

@@ -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.

View File

@@ -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()

View File

@@ -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++;
// //

View File

@@ -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()
*/ */

View File

@@ -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))

View File

@@ -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>();