1
      2
      3
      4
      5
      6
      7
<doc  8
      9
     10
     11
     12
     13

     14
<doc 15
     16
     17
     18
     19
     20

     21
<doc 22
     23
     24
     25
     26
     27
     28
     29
     30

     31
<doc 32
     33
     34
     35
     36
     37
     38
     39
     40

     41
     42
     43
     44
     45
     46
#ifndef ULMBLAS_CXXBLAS_LEVEL1_ROT_H
#define ULMBLAS_CXXBLAS_LEVEL1_ROT_H 1

#include <complex>

namespace cxxblas {

template <typename A, typename B, typename T>
    void
    rotg(A &a,
         B &b,
         T &c,
         T &s);

template <typename TA, typename TB, typename T>
    void
    rotg(std::complex<TA>   &a,
         std::complex<TB>   &b,
         T                  &c,
         std::complex<T>    &s);

template <typename IndexType, typename VX, typename VY, typename T>
    void
    rot(IndexType   n,
        VX          *x,
        IndexType   incX,
        VY          *y,
        IndexType   incY,
        T           c,
        T           s);

template <typename IndexType, typename X, typename Y, typename T>
    void
    rot(IndexType              n,
        std::complex<X>        *x,
        IndexType              incX,
        std::complex<Y>        *y,
        IndexType              incY,
        T                      c,
        const std::complex<T>  &s);

// namespace cxxblas

#include <ulmblas/cxxblas/level1/rot.tcc>

#endif // ULMBLAS_CXXBLAS_LEVEL1_ROT_H