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