10#ifndef EIGEN_SELFADJOINTRANK2UPTADE_H
11#define EIGEN_SELFADJOINTRANK2UPTADE_H
21template<
typename Scalar,
typename Index,
typename UType,
typename VType,
int UpLo>
24template<
typename Scalar,
typename Index,
typename UType,
typename VType>
27 static void run(Scalar*
mat, Index stride,
const UType& u,
const VType& v,
const Scalar& alpha)
29 const Index size = u.size();
30 for (Index i=0; i<size; ++i)
33 (numext::conj(alpha) * numext::conj(u.coeff(i))) * v.tail(size-i)
34 + (alpha * numext::conj(v.coeff(i))) * u.tail(size-i);
39template<
typename Scalar,
typename Index,
typename UType,
typename VType>
42 static void run(Scalar*
mat, Index stride,
const UType& u,
const VType& v,
const Scalar& alpha)
44 const Index size = u.size();
45 for (Index i=0; i<size; ++i)
47 (numext::conj(alpha) * numext::conj(u.coeff(i))) * v.head(i+1)
48 + (alpha * numext::conj(v.coeff(i))) * u.head(i+1);
54 CwiseUnaryOp<scalar_conjugate_op<typename traits<T>::Scalar>,T> > {};
58template<
typename MatrixType,
unsigned int UpLo>
59template<
typename DerivedU,
typename DerivedV>
64 typedef typename UBlasTraits::DirectLinearAccessType
ActualUType;
69 typedef typename VBlasTraits::DirectLinearAccessType
ActualVType;
77 Scalar
actualAlpha = alpha * UBlasTraits::extractScalarFactor(u.derived())
78 * numext::conj(VBlasTraits::extractScalarFactor(v.derived()));
A matrix or vector expression mapping an existing array of data.
Definition Map.h:91
Expression of a selfadjoint matrix from a triangular part of a dense matrix.
Definition SelfAdjointView.h:51
Pseudo expression representing a solving operation.
Definition Solve.h:63
@ Lower
View matrix as a lower triangular matrix.
Definition Constants.h:204
@ Upper
View matrix as an upper triangular matrix.
Definition Constants.h:206
const unsigned int RowMajorBit
for a matrix, this means that the storage order is row-major.
Definition Constants.h:61
Definition BlasUtil.h:257
Definition SelfadjointRank2Update.h:54
Definition SelfadjointRank2Update.h:22
Definition ForwardDeclarations.h:17