10 #ifndef __GSL_BLAS_H__
11 #include <gsl/gsl_blas.h>
13 #ifndef GSLPP_VECTOR_COMPLEX_H
16 #ifndef GSLPP_VECTOR_DOUBLE_H
25 _vector = gsl_vector_complex_alloc(size);
26 gsl_vector_complex_set_all(_vector, z.
as_gsl_type());
32 _vector = gsl_vector_complex_alloc(size);
33 gsl_vector_complex_set_all(_vector, z.
as_gsl_type());
39 _vector = gsl_vector_complex_alloc(v.
size());
47 _vector = gsl_vector_complex_alloc(n);
48 for (i = 0; i < n; i++)
49 gsl_vector_complex_set(_vector, i, v(i) + 0. *
complex::i());
54 _vector = gsl_vector_complex_alloc(v.size);
55 gsl_vector_complex_memcpy(_vector, &v);
60 _vector = gsl_vector_complex_alloc(v->size);
61 gsl_vector_complex_memcpy(_vector, v);
67 gsl_vector_complex_free(_vector);
73 const gsl_complex *x = gsl_vector_complex_const_ptr(_vector, i);
94 gsl_vector_complex_set_all(_vector, z.
as_gsl_type());
101 gsl_vector_complex_set_zero(_vector);
106 gsl_complex *x = gsl_vector_complex_ptr(_vector, i);
112 gsl_complex *x = gsl_vector_complex_ptr(_vector, i);
119 return _vector->size;
125 return gsl_blas_dznrm2(_vector);
132 for (
unsigned int i = 0; i < v1.
size(); i++)
133 v1.
assign(i, v1(i).conjugate());
141 gsl_vector_view r = gsl_vector_complex_real(_vector);
149 gsl_vector_view r = gsl_vector_complex_imag(_vector);
162 return const_cast<gsl_vector_complex&> (*_vector);
167 return const_cast<gsl_vector_complex&> (*_vector);
183 GSL_SET_COMPLEX(&z1, 1., 0.);
185 std::cout <<
"\n Error in vector<complex> +" << std::endl;
196 GSL_SET_COMPLEX(&z1, -1., 0.);
198 std::cout <<
"\n Error in vector<complex> -" << std::endl;
210 std::cout <<
"\n Error in vector<complex> *" << std::endl;
249 gsl_vector_complex *v2;
250 GSL_SET_COMPLEX(&z1, 1., 0.);
251 v2 = gsl_vector_complex_alloc(v1.
size());
252 gsl_vector_complex_set_all(v2, z1);
254 std::cout <<
"\n Error in vector<complex> + (double)" << std::endl;
257 gsl_vector_complex_free(v2);
266 gsl_vector_complex *v2;
267 GSL_SET_COMPLEX(&z1, -1., 0.);
268 v2 = gsl_vector_complex_alloc(v1.
size());
269 gsl_vector_complex_set_all(v2, z1);
271 std::cout <<
"\n Error in vector<complex> - (double)" << std::endl;
274 gsl_vector_complex_free(v2);
380 if (a.
size() != size())
382 std::cout <<
"\n Error in vector<complex>::operator== (vector): cannot compare vectors of different size" << std::endl;
385 for (
size_t i = 0; i < size(); i++)
386 if (a(i) != (*this)(i))
return (
false);
395 for (i = 0; i < v.
size() - 1; i++)
396 output << v(i) <<
", ";
397 output << v(i) <<
")";