10#ifndef EIGEN_SELFADJOINT_PRODUCT_H
11#define EIGEN_SELFADJOINT_PRODUCT_H
22template<
typename Scalar,
typename Index,
int UpLo,
bool ConjLhs,
bool ConjRhs>
25 static void run(
Index size, Scalar*
mat,
Index stride,
const Scalar*
vecX,
const Scalar*
vecY,
const Scalar& alpha)
30 for (
Index i=0; i<size; ++i)
38template<
typename Scalar,
typename Index,
int UpLo,
bool ConjLhs,
bool ConjRhs>
41 static void run(
Index size, Scalar*
mat,
Index stride,
const Scalar*
vecX,
const Scalar*
vecY,
const Scalar& alpha)
43 selfadjoint_rank1_update<Scalar,Index,ColMajor,UpLo==Lower?Upper:Lower,ConjRhs,ConjLhs>::run(size,
mat,stride,
vecY,
vecX,alpha);
47template<
typename MatrixType,
typename OtherType,
int UpLo,
bool OtherIsVector = OtherType::IsVectorAtCompileTime>
50template<
typename MatrixType,
typename OtherType,
int UpLo>
53 static void run(MatrixType&
mat,
const OtherType& other,
const typename MatrixType::Scalar& alpha)
55 typedef typename MatrixType::Scalar Scalar;
57 typedef typename OtherBlasTraits::DirectLinearAccessType
ActualOtherType;
58 typedef typename internal::remove_all<ActualOtherType>::type
_ActualOtherType;
61 Scalar
actualAlpha = alpha * OtherBlasTraits::extractScalarFactor(other.derived());
69 ei_declare_aligned_stack_constructed_variable(Scalar,
actualOtherPtr, other.size(),
82template<
typename MatrixType,
typename OtherType,
int UpLo>
85 static void run(MatrixType&
mat,
const OtherType& other,
const typename MatrixType::Scalar& alpha)
87 typedef typename MatrixType::Scalar Scalar;
89 typedef typename OtherBlasTraits::DirectLinearAccessType
ActualOtherType;
90 typedef typename internal::remove_all<ActualOtherType>::type
_ActualOtherType;
93 Scalar
actualAlpha = alpha * OtherBlasTraits::extractScalarFactor(other.derived());
104 MatrixType::MaxColsAtCompileTime, MatrixType::MaxColsAtCompileTime, _ActualOtherType::MaxColsAtCompileTime>
BlockingType;
112 IsRowMajor ?
RowMajor :
ColMajor, MatrixType::InnerStrideAtCompileTime, UpLo>
121template<
typename MatrixType,
unsigned int UpLo>
122template<
typename DerivedU>
Base class for all dense matrices, vectors, and expressions.
Definition MatrixBase.h:50
Expression of a selfadjoint matrix from a triangular part of a dense matrix.
Definition SelfAdjointView.h:51
Definition GeneralMatrixMatrix.h:248
@ Lower
View matrix as a lower triangular matrix.
Definition Constants.h:209
@ ColMajor
Storage order is column major (see TopicStorageOrders).
Definition Constants.h:319
@ RowMajor
Storage order is row major (see TopicStorageOrders).
Definition Constants.h:321
const unsigned int RowMajorBit
for a matrix, this means that the storage order is row-major.
Definition Constants.h:66
Namespace containing all symbols from the Eigen library.
Definition LDLT.h:16
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition Meta.h:74
Holds information about the various numeric (i.e.
Definition NumTraits.h:236
Definition BlasUtil.h:403
Definition ConjHelper.h:44
Definition GeneralProduct.h:161
Definition GeneralMatrixMatrixTriangular.h:36
Definition ForwardDeclarations.h:17
Definition SelfadjointProduct.h:48
Definition GeneralMatrixMatrixTriangular.h:16