From 6ad48c5d92e168ccece5fc9c608d2f1fc8a4009d Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Sun, 5 Feb 2012 18:18:38 +0100 Subject: [PATCH] fix conjugation in packet_lhs --- Eigen/src/Core/products/GeneralBlockPanelKernel.h | 8 ++++---- Eigen/src/Core/util/BlasUtil.h | 4 ++++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Eigen/src/Core/products/GeneralBlockPanelKernel.h b/Eigen/src/Core/products/GeneralBlockPanelKernel.h index 187a98d5c..0156edf7c 100644 --- a/Eigen/src/Core/products/GeneralBlockPanelKernel.h +++ b/Eigen/src/Core/products/GeneralBlockPanelKernel.h @@ -1144,10 +1144,10 @@ struct gemm_pack_lhs if(Pack1>=2*PacketSize) B = ploadu(&lhs(i+1*PacketSize, k)); if(Pack1>=3*PacketSize) C = ploadu(&lhs(i+2*PacketSize, k)); if(Pack1>=4*PacketSize) D = ploadu(&lhs(i+3*PacketSize, k)); - if(Pack1>=1*PacketSize) { pstore(blockA+count, cj(A)); count+=PacketSize; } - if(Pack1>=2*PacketSize) { pstore(blockA+count, cj(B)); count+=PacketSize; } - if(Pack1>=3*PacketSize) { pstore(blockA+count, cj(C)); count+=PacketSize; } - if(Pack1>=4*PacketSize) { pstore(blockA+count, cj(D)); count+=PacketSize; } + if(Pack1>=1*PacketSize) { pstore(blockA+count, cj.pconj(A)); count+=PacketSize; } + if(Pack1>=2*PacketSize) { pstore(blockA+count, cj.pconj(B)); count+=PacketSize; } + if(Pack1>=3*PacketSize) { pstore(blockA+count, cj.pconj(C)); count+=PacketSize; } + if(Pack1>=4*PacketSize) { pstore(blockA+count, cj.pconj(D)); count+=PacketSize; } } } else diff --git a/Eigen/src/Core/util/BlasUtil.h b/Eigen/src/Core/util/BlasUtil.h index 5dd2da049..4879ceae1 100644 --- a/Eigen/src/Core/util/BlasUtil.h +++ b/Eigen/src/Core/util/BlasUtil.h @@ -56,11 +56,15 @@ template struct conj_if; template<> struct conj_if { template inline T operator()(const T& x) { return conj(x); } + template + inline T pconj(const T& x) { return internal::pconj(x); } }; template<> struct conj_if { template inline const T& operator()(const T& x) { return x; } + template + inline const T& pconj(const T& x) { return x; } }; template struct conj_helper