CMlib
Cell mapping algorithms in C++
vec2.h
Go to the documentation of this file.
1 #ifndef CELL_MAPPING_CPP_VEC2_H
2 #define CELL_MAPPING_CPP_VEC2_H
3 
4 #include <initializer_list>
5 #include <cmath>
6 
10 class vec2 {
11 private:
12  double data[2];
13 public:
17  vec2();
23  vec2(std::initializer_list<double> l);
27  double& operator[] (unsigned int i);
31  const double& operator[] (unsigned int i) const;
32 };
33 
37 class mat2 {
38 private:
39  double data[4];
40 public:
44  double& operator[](unsigned int i);
48  const double& operator[](unsigned int i) const;
54  double& operator()(unsigned int i, unsigned int j);
60  const double& operator()(unsigned int i, unsigned int j) const;
61 };
62 
69 double operator*(const vec2& l, const vec2& r);
70 
77 vec2 operator*(const mat2& L, const vec2& r);
78 
85 vec2 operator*(const vec2& v, const double d);
86 
93 vec2 operator*(const double d, const vec2& v);
94 
101 vec2 operator+(const vec2& l, const vec2& r);
102 
109 vec2 operator-(const vec2& l, const vec2& r);
110 
116 double norm(const vec2& v);
117 
118 #endif //CELL_MAPPING_CPP_VEC2_H
double & operator()(unsigned int i, unsigned int j)
Operator() for accessing the (i,j)-th component (mutable)
Definition: vec2.cpp:29
Very simple 2-element vector class.
Definition: vec2.h:10
vec2 operator+(const vec2 &l, const vec2 &r)
Vector addition.
Definition: vec2.cpp:58
vec2 operator-(const vec2 &l, const vec2 &r)
Vector subtraction.
Definition: vec2.cpp:62
double operator *(const vec2 &l, const vec2 &r)
Vector scalar product.
Definition: vec2.cpp:39
double & operator[](unsigned int i)
Container of components, row-major.
Definition: vec2.cpp:21
double & operator[](unsigned int i)
Operator[] for accessing the i-th component (mutable)
Definition: vec2.cpp:13
vec2()
Container of components.
Definition: vec2.cpp:5
double norm(const vec2 &v)
Vector L2 norm.
Definition: vec2.cpp:66
Very simple 2x2 matrix class.
Definition: vec2.h:37