35 Vector3(
const T &x1 = 0,
const T &y1 = 0,
const T &z1 = 0) :
x(x1),
y(y1),
z(z1){};
37 explicit Vector3(
const std::array<T,3> &v) :
x(v[0]),
y(v[1]),
z(v[2]){}
51 void set(
const T &x1,
const T &y1,
const T &z1)
155 T const* ptr[3] = {&
x, &
y, &
z};
168 T* ptr[3] = {&
x, &
y, &
z};
179 return x *
x +
y *
y +
z *
z;
189 return sqrt(
norm2());
261 return (u.x * v.
x + u.y * v.
y + u.z * v.
z);
324 return (u.x * v.
x + u.y * v.
y + u.z * v.
z);
341 return Vector3<T>(u.y * v.
z - u.z * v.
y, -u.x * v.
z + u.z * v.
x, u.x * v.
y - u.y * v.
x);
358 return Vector3<T>(u.y * v.
z - u.z * v.
y, -u.x * v.
z + u.z * v.
x, u.x * v.
y - u.y * v.
x);
392 if (u.x == v.
x && u.y == v.
y && u.z == v.
z)
403 std::cout.precision(5);
404 std::cout <<
"(" << std::setw(10) << x <<
"," << std::setw(10) << y <<
"," << std::setw(10) << z <<
")"
418template <
class T>
static std::ostream &operator<<(std::ostream &os,
const Vector3<T> &u)
420 os <<
"(" << std::setw(10) << u.x <<
"," << std::setw(10) << u.y <<
"," << std::setw(10) << u.z <<
")";
3 elements vector
Definition vector3.h:22
Vector3< T > & operator*=(const T &s)
Overload operator "*=" for (Vector3)*scalar.
Definition vector3.h:114
Vector3(const Vector3< T > &v)
Definition vector3.h:36
Vector3(const std::array< T, 3 > &v)
Definition vector3.h:37
T norm2(void) const
Get the square of nomr of a Vector3.
Definition vector3.h:177
Vector3< T > & operator=(const T &u)
Definition vector3.h:72
Vector3< T > & operator/=(const T &s)
Overload operator "/=" for (Vector3)/scalar.
Definition vector3.h:128
Vector3< T > & operator+=(const Vector3< T > &u)
Overload operator "+=" for Vector3.
Definition vector3.h:86
T operator[](int index) const
Over load "[]" for accessing elements with pointers.
Definition vector3.h:152
T & operator[](int index)
Overload operator "[]" for accesing elements.
Definition vector3.h:165
Vector3(const Vector3< U > &other)
Definition vector3.h:40
Vector3< T > & operator-=(const Vector3< T > &u)
Overload operator "-=" for Vector3.
Definition vector3.h:100
void set(const T &x1, const T &y1, const T &z1)
set a 3d vector
Definition vector3.h:51
Vector3< T > & operator=(const Vector3< T > &u)
Overload operator "=" for Vector3.
Definition vector3.h:64
T x
Definition vector3.h:24
Vector3< T > operator-() const
Overload operator "-" to get (-Vector3)
Definition vector3.h:141
Vector3< T > & reverse(void)
Get (-Vector3)
Definition vector3.h:211
Vector3(const T &x1=0, const T &y1=0, const T &z1=0)
Construct a new Vector 3 object.
Definition vector3.h:35
T norm(void) const
Get the norm of a Vector3.
Definition vector3.h:187
void print(void) const
Print a Vector3 on standard output with formats.
Definition vector3.h:401
Vector3< T > & normalize(void)
Normalize a Vector3.
Definition vector3.h:197
T y
Definition vector3.h:25
Vector3(Vector3< T > &&v) noexcept
Definition vector3.h:42
T z
Definition vector3.h:26
#define T
Definition exp.cpp:237
Definition array_pool.h:6
ComplexMatrix operator-(const ComplexMatrix &m1, const ComplexMatrix &m2)
Definition complexmatrix.cpp:154
std::complex< double > dot(const ComplexArray &cd1, const ComplexArray &cd2)
Take "dot-product" of two ComplexArray: sum of cd1(conjugate)[i] * cd2[i].
Definition complexarray.cpp:218
ComplexArray operator*(const double r, const ComplexArray &cd)
Scale a ComplexArray cd by real r.
Definition complexarray.cpp:120
Vector3< T > operator^(const Vector3< T > &u, const Vector3< T > &v)
Overload "^" for cross product of two Vector3.
Definition vector3.h:339
bool operator!=(const Matrix3 &m1, const Matrix3 &m2)
Overload operator "!=" to assert the inequality between two 3x3 matrices.
Definition matrix3.cpp:189
bool operator<(const Vector3< T > &u, const Vector3< T > &v)
Definition vector3.h:369
Matrix3 operator/(const Matrix3 &m, const double &s)
Overload operator "/" for a (Matrix3)/(scalar) i.e. m/s.
Definition matrix3.cpp:133
Vector3< T > cross(const Vector3< T > &u, const Vector3< T > &v)
Cross product of two Vector3.
Definition vector3.h:356
bool operator==(const Matrix3 &m1, const Matrix3 &m2)
Overload operator "==" to assert the equality between two 3x3 matrices.
Definition matrix3.cpp:171
ComplexMatrix operator+(const ComplexMatrix &m1, const ComplexMatrix &m2)
Definition complexmatrix.cpp:143