34 #include "gsl/gsl_complex_math.h"
35 #include "gsl/gsl_vector.h"
36 #include "gsl/gsl_vector_complex_double.h"
41 namespace interpolation {
113 template <
class Tmplt>
118 template <
class Tmplt>
127 MVector(
size_t i, Tmplt value );
160 void build_vector (
const Tmplt* data_start,
const Tmplt* data_end );
197 template <
class Tmplt> std::ostream& operator<<(std::ostream& out, MVector<Tmplt> v);
215 template <
class Tmplt>
223 {gsl_vector_complex_scale((gsl_vector_complex*)v.
_vector, c);
return v;}
225 {gsl_vector_scale((gsl_vector*)v.
_vector, d);
return v;}
238 {gsl_vector_complex_add((gsl_vector_complex*)v1.
_vector, (gsl_vector_complex*)v2.
_vector);
return v1;}
240 {gsl_vector_add((gsl_vector*)v1.
_vector, (gsl_vector*)v2.
_vector);
return v1;}
254 template <
class Tmplt>
262 template <
class Tmplt>
267 return (gsl_vector_complex*)m.
_vector;
MVector< m_complex > operator*(MMatrix< m_complex > m, MVector< m_complex > v)
MMatrix< m_complex > complex(MMatrix< double > real)
Tmplt & operator()(size_t i)
Mesh::Iterator & operator+=(Mesh::Iterator &lhs, const Mesh::Iterator &rhs)
MVector< Tmplt > & operator=(const MVector< Tmplt > &mv)
static gsl_vector * get_vector(const MVector< double > &m)
m_complex m_complex_build(double r, double i)
MMatrix< Tmplt > operator/(MMatrix< Tmplt >, Tmplt)
MMatrix< Tmplt > & operator/=(MMatrix< Tmplt > &m, Tmplt t)
template std::istream & operator>>(std::istream &in, MMatrix< double > &mat)
MVector< Tmplt > sub(size_t n1, size_t n2) const
friend MVector< m_complex > & operator+=(MVector< m_complex > &v1, MVector< m_complex > v2)
friend const gsl_vector * MVector_to_gsl(const MVector< double > &)
FLieGenerator< T, N > real(const FLieGenerator< std::complex< T >, N > &)
Take real part of a complex generator.
Mesh::Iterator & operator-=(Mesh::Iterator &lhs, const Mesh::Iterator &rhs)
bool operator!=(const Mesh::Iterator &lhs, const Mesh::Iterator &rhs)
Mesh::Iterator operator+(const Mesh::Iterator &lhs, const Mesh::Iterator &rhs)
m_complex conj(const m_complex &c)
friend MVector< m_complex > & operator*=(MVector< m_complex > &v, m_complex c)
constexpr double c
The velocity of light in m/s.
void build_vector(size_t size)
friend MVector< m_complex > operator*(MMatrix< m_complex > m, MVector< m_complex > v)
const gsl_vector * MVector_to_gsl(const MVector< double > &vd)
MMatrix< double > im(MMatrix< m_complex > mc)
MMatrix< double > & operator*=(MMatrix< double > &m1, MMatrix< double > m2)
Mesh::Iterator operator-(const Mesh::Iterator &lhs, const Mesh::Iterator &rhs)
MMatrix< double > re(MMatrix< m_complex > mc)
MVector(std::vector< Tmplt > tv)
MVector(const Tmplt *ta_beg, const Tmplt *ta_end)
MMatrix< Tmplt > T() const
bool operator==(const Mesh::Iterator &lhs, const Mesh::Iterator &rhs)
std::ostream & operator<<(std::ostream &out, const Mesh::Iterator &it)