1
      2
      3
      4
      5
      6
      7
      8
<doc  9
     10
     11
     12
     13
     14
     15
     16
     17
     18
     19

     20
     21
     22
     23
<doc 24
     25
     26
     27
     28
     29
     30
     31
     32
     33
     34
     35
     36
     37
     38
     39

     40
     41
     42
     43
     44
     45
#ifndef ULMBLAS_IMPL_LEVEL1EXTENSIONS_GEHMP_H
#define ULMBLAS_IMPL_LEVEL1EXTENSIONS_GEHMP_H 1

namespace ulmBLAS {

//
//  In-place Hadamard matrix product B = alpha * A .* B (component wise product)
//
template <typename IndexType, typename Alpha, typename MA, typename MB>
    void
    geihmp(IndexType      m,
           IndexType      n,
           const Alpha    &alpha,
           const MA       *A,
           IndexType      incRowA,
           IndexType      incColA,
           MB             *B,
           IndexType      incRowB,
           IndexType      incColB);

//
//  Hadamard matrix product C = beta*C + alpha * A .* B (component wise product)
//
template <typename IndexType, typename Alpha, typename MA, typename MB,
          typename Beta, typename MC>
    void
    gehmp(IndexType      m,
          IndexType      n,
          const Alpha    &alpha,
          const MA       *A,
          IndexType      incRowA,
          IndexType      incColA,
          const MB       *B,
          IndexType      incRowB,
          IndexType      incColB,
          const Beta     &beta,
          MC             *C,
          IndexType      incRowC,
          IndexType      incColC);

// namespace ulmBLAS

#include <ulmblas/impl/level1extensions/gehmp.tcc>

#endif // ULMBLAS_IMPL_LEVEL1EXTENSIONS_GEHMP_H 1