blob: d022a3bb78ff618e9ea43437564bc8e7d6eb1daa [file] [log] [blame]
#include "../../Eigen/Core"
extern "C" {
void clacgv_(int *n, std::complex<float> *x, int *incx);
void zlacgv_(int *n, std::complex<double> *x, int *incx);
using Eigen::Map;
using Eigen::Matrix;
using Eigen::Dynamic;
using Eigen::InnerStride;
// Conjugate the entries of the vector x.
template <typename T>
void xlacgv(const int n, T *x, const int incx) {
using StridedVector = Map<Matrix<T, Dynamic, 1>, 0, InnerStride<Dynamic>>;
StridedVector xvec(x, n, InnerStride<Dynamic>(std::abs(incx)));
xvec = xvec.conjugate();
void clacgv_(int *n, std::complex<float> *x, int *incx) {
xlacgv(*n, x, *incx);
void zlacgv_(int *n, std::complex<double> *x, int *incx) {
xlacgv(*n, x, *incx);