* extend the Has* packet traits and makes all functor use it

* extend the packing routines to support conjugation
This commit is contained in:
Gael Guennebaud
2010-07-05 23:27:54 +02:00
parent e1eccfad3f
commit c69a226192
7 changed files with 85 additions and 58 deletions

View File

@@ -29,10 +29,15 @@
// implement and control fast level 2 and level 3 BLAS-like routines.
// forward declarations
template<typename Scalar, typename Index, int mr, int nr, typename Conj>
// Provides scalar/packet-wise product and product with accumulation
// with optional conjugation of the arguments.
template<bool ConjLhs, bool ConjRhs> struct ei_conj_helper;
template<typename Scalar, typename Index, int mr, int nr, typename Conj = ei_conj_helper<false,false> >
struct ei_gebp_kernel;
template<typename Scalar, typename Index, int nr, int StorageOrder, bool PanelMode=false>
template<typename Scalar, typename Index, int nr, int StorageOrder, bool Conjugate = false, bool PanelMode=false>
struct ei_gemm_pack_rhs;
template<typename Scalar, typename Index, int mr, int StorageOrder, bool Conjugate = false, bool PanelMode = false>
@@ -53,10 +58,6 @@ template<bool ConjugateLhs, bool ConjugateRhs, typename Scalar, typename Index,
static void ei_cache_friendly_product_rowmajor_times_vector(
const Scalar* lhs, Index lhsStride, const Scalar* rhs, Index rhsSize, ResType& res, Scalar alpha);
// Provides scalar/packet-wise product and product with accumulation
// with optional conjugation of the arguments.
template<bool ConjLhs, bool ConjRhs> struct ei_conj_helper;
template<> struct ei_conj_helper<false,false>
{
template<typename T>