Go to the documentation of this file.
11 #ifndef EIGEN_HOUSEHOLDER_SEQUENCE_H
12 #define EIGEN_HOUSEHOLDER_SEQUENCE_H
59 template<
typename VectorsType,
typename CoeffsType,
int S
ide>
68 ColsAtCompileTime = RowsAtCompileTime,
71 MaxColsAtCompileTime = MaxRowsAtCompileTime,
78 template<
typename VectorsType,
typename CoeffsType,
int S
ide>
85 template<
typename VectorsType,
typename CoeffsType,
int S
ide>
97 template<
typename VectorsType,
typename CoeffsType>
113 typedef Matrix<
ResultScalar, MatrixType::RowsAtCompileTime, MatrixType::ColsAtCompileTime,
114 0, MatrixType::MaxRowsAtCompileTime, MatrixType::MaxColsAtCompileTime>
Type;
120 :
public EigenBase<HouseholderSequence<VectorsType,CoeffsType,Side> >
233 template<
typename DestType>
inline void evalTo(DestType& dst)
const
241 template<
typename Dest,
typename Workspace>
242 void evalTo(Dest& dst, Workspace& workspace)
const
244 workspace.resize(
rows());
249 dst.diagonal().setOnes();
250 dst.template triangularView<StrictlyUpper>().setZero();
251 for(
Index k = vecs-1; k >= 0; --k)
255 dst.bottomRightCorner(cornerSize, cornerSize)
258 dst.bottomRightCorner(cornerSize, cornerSize)
262 dst.col(k).tail(
rows()-k-1).setZero();
266 dst.col(k).tail(
rows()-k-1).setZero();
271 for(
Index k = vecs-1; k >= 0; --k)
275 dst.bottomRightCorner(cornerSize, cornerSize)
278 dst.bottomRightCorner(cornerSize, cornerSize)
292 template<
typename Dest,
typename Workspace>
295 workspace.resize(dst.rows());
312 template<
typename Dest,
typename Workspace>
315 const Index BlockSize = 48;
317 if(
m_length>=BlockSize && dst.cols()>1)
338 workspace.resize(dst.cols());
355 template<
typename OtherDerived>
420 bool trans()
const {
return m_trans; }
437 template<
typename OtherDerived,
typename VectorsType,
typename CoeffsType,
int S
ide>
450 template<
typename VectorsType,
typename CoeffsType>
462 template<
typename VectorsType,
typename CoeffsType>
470 #endif // EIGEN_HOUSEHOLDER_SEQUENCE_H
HouseholderSequence(const HouseholderSequence &other)
Copy constructor.
HouseholderSequence< VectorsType, CoeffsType, OnTheRight > HouseholderSequenceType
Index rows() const
Number of rows of transformation viewed as a matrix.
Expression of a fixed-size or dynamic-size block.
CoeffsType::Nested m_coeffs
bool is_same_dense(const T1 &mat1, const T2 &mat2, typename enable_if< has_direct_access< T1 >::ret &&has_direct_access< T2 >::ret, T1 >::type *=0)
HouseholderSequence & setShift(Index shift)
Sets the shift of the Householder sequence.
const EssentialVectorType essentialVector(Index k) const
Essential part of a Householder vector.
HouseholderSequence< VectorsType, CoeffsType > householderSequence(const VectorsType &v, const CoeffsType &h)
Convenience function for constructing a Householder sequence.
internal::traits< HouseholderSequence >::Scalar Scalar
ScalarBinaryOpTraits< OtherScalarType, typename MatrixType::Scalar >::ReturnType ResultScalar
ConjugateReturnType conjugate() const
Complex conjugate of the Householder sequence.
Index cols() const
Number of columns of transformation viewed as a matrix.
Transpose< Block< const VectorsType, 1, Dynamic > > EssentialVectorType
VectorsType::StorageKind StorageKind
Determines whether the given binary operation of two numeric types is allowed and what the scalar ret...
ConjugateReturnType adjoint() const
Adjoint (conjugate transpose) of the Householder sequence.
void applyThisOnTheLeft(Dest &dst, Workspace &workspace) const
const EIGEN_DEVICE_FUNC Product< MatrixDerived, PermutationDerived, AliasFreeProduct > operator*(const MatrixBase< MatrixDerived > &matrix, const PermutationBase< PermutationDerived > &permutation)
Expression of the transpose of a matrix.
HouseholderSequence< VectorsType, CoeffsType, OnTheLeft > HouseholderSequenceType
ConjugateReturnType inverse() const
Inverse of the Householder sequence (equals the adjoint).
VectorsType::StorageIndex StorageIndex
HouseholderSequence & setLength(Index length)
Sets the length of the Householder sequence.
friend class HouseholderSequence
Matrix< ResultScalar, MatrixType::RowsAtCompileTime, MatrixType::ColsAtCompileTime, 0, MatrixType::MaxRowsAtCompileTime, MatrixType::MaxColsAtCompileTime > Type
void evalTo(DestType &dst) const
static const EssentialVectorType essentialVector(const HouseholderSequenceType &h, Index k)
internal::matrix_type_times_scalar_type< Scalar, OtherDerived >::Type operator*(const MatrixBase< OtherDerived > &other) const
Computes the product of a Householder sequence with a matrix.
void applyThisOnTheLeft(Dest &dst) const
HouseholderSequence< VectorsType, CoeffsType, OnTheRight > rightHouseholderSequence(const VectorsType &v, const CoeffsType &h)
Convenience function for constructing a Householder sequence.
EIGEN_DEVICE_FUNC CastXpr< NewType >::Type cast() const
void apply_block_householder_on_the_left(MatrixType &mat, const VectorsType &vectors, const CoeffsType &hCoeffs, bool forward)
void evalTo(Dest &dst, Workspace &workspace) const
HouseholderSequence & setTrans(bool trans)
Sets the transpose flag.
HouseholderSequence transpose() const
Transpose of the Householder sequence.
static const EssentialVectorType essentialVector(const HouseholderSequenceType &h, Index k)
HouseholderSequence(const VectorsType &v, const CoeffsType &h)
Constructor.
void applyThisOnTheRight(Dest &dst, Workspace &workspace) const
The matrix class, also used for vectors and row-vectors.
Base class for all dense matrices, vectors, and expressions.
internal::hseq_side_dependent_impl< VectorsType, CoeffsType, Side >::EssentialVectorType EssentialVectorType
void applyThisOnTheRight(Dest &dst) const
Block< const VectorsType, Dynamic, 1 > EssentialVectorType
VectorsType::Scalar Scalar
VectorsType::Nested m_vectors
HouseholderSequenceShape Shape
HouseholderSequence< typename internal::conditional< NumTraits< Scalar >::IsComplex, typename internal::remove_all< typename VectorsType::ConjugateReturnType >::type, VectorsType >::type, typename internal::conditional< NumTraits< Scalar >::IsComplex, typename internal::remove_all< typename CoeffsType::ConjugateReturnType >::type, CoeffsType >::type, Side > ConjugateReturnType
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Sequence of Householder reflections acting on subspaces with decreasing size.
control_box_rst
Author(s): Christoph Rösmann
autogenerated on Wed Mar 2 2022 00:05:48