12int EIGEN_BLAS_FUNC(axpy)(
const int *n,
const RealScalar *palpha,
const RealScalar *px,
const int *incx, RealScalar *py,
const int *incy)
14 const Scalar* x =
reinterpret_cast<const Scalar*
>(px);
15 Scalar* y =
reinterpret_cast<Scalar*
>(py);
16 Scalar alpha = *
reinterpret_cast<const Scalar*
>(palpha);
20 if(*incx==1 && *incy==1) make_vector(y,*n) += alpha * make_vector(x,*n);
21 else if(*incx>0 && *incy>0) make_vector(y,*n,*incy) += alpha * make_vector(x,*n,*incx);
22 else if(*incx>0 && *incy<0) make_vector(y,*n,-*incy).reverse() += alpha * make_vector(x,*n,*incx);
23 else if(*incx<0 && *incy>0) make_vector(y,*n,*incy) += alpha * make_vector(x,*n,-*incx).reverse();
24 else if(*incx<0 && *incy<0) make_vector(y,*n,-*incy).reverse() += alpha * make_vector(x,*n,-*incx).reverse();
29int EIGEN_BLAS_FUNC(copy)(
int *n, RealScalar *px,
int *incx, RealScalar *py,
int *incy)
33 Scalar* x =
reinterpret_cast<Scalar*
>(px);
34 Scalar* y =
reinterpret_cast<Scalar*
>(py);
37 if(*incx==1 && *incy==1)
38 make_vector(y,*n) = make_vector(x,*n);
41 if(*incx<0) x = x - (*n-1)*(*incx);
42 if(*incy<0) y = y - (*n-1)*(*incy);
54int EIGEN_BLAS_FUNC(rotg)(RealScalar *pa, RealScalar *pb, RealScalar *pc, RealScalar *ps)
59 Scalar& a = *
reinterpret_cast<Scalar*
>(pa);
60 Scalar& b = *
reinterpret_cast<Scalar*
>(pb);
62 Scalar* s =
reinterpret_cast<Scalar*
>(ps);
68 if((aa+ab)==Scalar(0))
78 Scalar amax = aa>ab ? a : b;
84 if (ab > aa && *c!=RealScalar(0))
91 RealScalar norm,scale;
92 if(abs(a)==RealScalar(0))
100 scale = abs(a) + abs(b);
101 norm = scale*
sqrt((numext::abs2(a/scale)) + (numext::abs2(b/scale)));
104 *s = alpha*numext::conj(b)/norm;
117int EIGEN_BLAS_FUNC(scal)(
int *n, RealScalar *palpha, RealScalar *px,
int *incx)
121 Scalar* x =
reinterpret_cast<Scalar*
>(px);
122 Scalar alpha = *
reinterpret_cast<Scalar*
>(palpha);
124 if(*incx==1) make_vector(x,*n) *= alpha;
125 else make_vector(x,*n,std::abs(*incx)) *= alpha;
130int EIGEN_BLAS_FUNC(swap)(
int *n, RealScalar *px,
int *incx, RealScalar *py,
int *incy)
134 Scalar* x =
reinterpret_cast<Scalar*
>(px);
135 Scalar* y =
reinterpret_cast<Scalar*
>(py);
137 if(*incx==1 && *incy==1) make_vector(y,*n).swap(make_vector(x,*n));
138 else if(*incx>0 && *incy>0) make_vector(y,*n,*incy).swap(make_vector(x,*n,*incx));
139 else if(*incx>0 && *incy<0) make_vector(y,*n,-*incy).reverse().swap(make_vector(x,*n,*incx));
140 else if(*incx<0 && *incy>0) make_vector(y,*n,*incy).swap(make_vector(x,*n,-*incx).reverse());
141 else if(*incx<0 && *incy<0) make_vector(y,*n,-*incy).reverse().swap(make_vector(x,*n,-*incx).reverse());
GLM_FUNC_QUALIFIER vec< L, T, Q > sqrt(vec< L, T, Q > const &x)
Definition func_exponential.inl:128