mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-08 09:49:03 +08:00
fix conjugation in packet_lhs
This commit is contained in:
parent
4ed87c59c7
commit
6ad48c5d92
@ -1144,10 +1144,10 @@ struct gemm_pack_lhs
|
|||||||
if(Pack1>=2*PacketSize) B = ploadu<Packet>(&lhs(i+1*PacketSize, k));
|
if(Pack1>=2*PacketSize) B = ploadu<Packet>(&lhs(i+1*PacketSize, k));
|
||||||
if(Pack1>=3*PacketSize) C = ploadu<Packet>(&lhs(i+2*PacketSize, k));
|
if(Pack1>=3*PacketSize) C = ploadu<Packet>(&lhs(i+2*PacketSize, k));
|
||||||
if(Pack1>=4*PacketSize) D = ploadu<Packet>(&lhs(i+3*PacketSize, k));
|
if(Pack1>=4*PacketSize) D = ploadu<Packet>(&lhs(i+3*PacketSize, k));
|
||||||
if(Pack1>=1*PacketSize) { pstore(blockA+count, cj(A)); count+=PacketSize; }
|
if(Pack1>=1*PacketSize) { pstore(blockA+count, cj.pconj(A)); count+=PacketSize; }
|
||||||
if(Pack1>=2*PacketSize) { pstore(blockA+count, cj(B)); count+=PacketSize; }
|
if(Pack1>=2*PacketSize) { pstore(blockA+count, cj.pconj(B)); count+=PacketSize; }
|
||||||
if(Pack1>=3*PacketSize) { pstore(blockA+count, cj(C)); count+=PacketSize; }
|
if(Pack1>=3*PacketSize) { pstore(blockA+count, cj.pconj(C)); count+=PacketSize; }
|
||||||
if(Pack1>=4*PacketSize) { pstore(blockA+count, cj(D)); count+=PacketSize; }
|
if(Pack1>=4*PacketSize) { pstore(blockA+count, cj.pconj(D)); count+=PacketSize; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -56,11 +56,15 @@ template<bool Conjugate> struct conj_if;
|
|||||||
template<> struct conj_if<true> {
|
template<> struct conj_if<true> {
|
||||||
template<typename T>
|
template<typename T>
|
||||||
inline T operator()(const T& x) { return conj(x); }
|
inline T operator()(const T& x) { return conj(x); }
|
||||||
|
template<typename T>
|
||||||
|
inline T pconj(const T& x) { return internal::pconj(x); }
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct conj_if<false> {
|
template<> struct conj_if<false> {
|
||||||
template<typename T>
|
template<typename T>
|
||||||
inline const T& operator()(const T& x) { return x; }
|
inline const T& operator()(const T& x) { return x; }
|
||||||
|
template<typename T>
|
||||||
|
inline const T& pconj(const T& x) { return x; }
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename Scalar> struct conj_helper<Scalar,Scalar,false,false>
|
template<typename Scalar> struct conj_helper<Scalar,Scalar,false,false>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user