diff --git a/README.md b/README.md index f536447..fdb99e0 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,2 @@ -# vector +# vector [![Build Status](https://travis-ci.org/Waaazzzuuup/vector.svg)](https://travis-ci.org/Waaazzzuuup/vector) [![Build status](https://ci.appveyor.com/api/projects/status/rcky427ihf3x7o54?svg=true)](https://ci.appveyor.com/project/Waaazzzuuup/vector) Linear space element representation diff --git a/include/vector.h b/include/vector.h index 222a4fe..4acc8e0 100644 --- a/include/vector.h +++ b/include/vector.h @@ -5,44 +5,44 @@ class Vector { public: const static unsigned long n = 3; - Vector(); + Vector(); - explicit Vector(double); + explicit Vector(double); - Vector(const Vector &); + Vector(const Vector &); - Vector &operator=(const Vector &); + Vector &operator=(const Vector &); - double operator[](unsigned long i) const; + double operator[](unsigned long i) const; - double &operator[](unsigned long i); + double &operator[](unsigned long i); - Vector &operator+=(const Vector &); + Vector &operator+=(const Vector &); - Vector &operator-=(const Vector &); + Vector &operator-=(const Vector &); - Vector &operator*=(double); + Vector &operator*=(double); - Vector &operator/=(double); + Vector &operator/=(double); - friend bool operator==(const Vector &, const Vector &); + friend bool operator==(const Vector &, const Vector &); - friend Vector operator+(const Vector &, const Vector &); + friend Vector operator+(const Vector &, const Vector &); - friend Vector operator-(const Vector &, const Vector &); + friend Vector operator-(const Vector &, const Vector &); - friend Vector operator*(const Vector &, double); + friend Vector operator*(const Vector &, double); - friend Vector operator*(double, const Vector &); + friend Vector operator*(double, const Vector &); - friend Vector operator/(const Vector &, double); + friend Vector operator/(const Vector &, double); - friend double operator^(const Vector &, const Vector &); + friend double operator^(const Vector &, const Vector &); - Vector operator-() const; + Vector operator-() const; private: - double coords_[n]; + double coords_[n]; }; // class Vector bool operator!=(const Vector &, const Vector &); diff --git a/src/vector.cpp b/src/vector.cpp new file mode 100644 index 0000000..754d290 --- /dev/null +++ b/src/vector.cpp @@ -0,0 +1,107 @@ +#include "vector.h" + +Vector::Vector(){ + unsigned int i; + for(i = 0; i < n; i++) + coords_[i] = 0; +} + +Vector::Vector(double h){ + unsigned int i; + for(i = 0; i < n; i++) + coords_[i] = h; +} + +Vector::Vector(const Vector &other){ + unsigned int i; + for(i = 0; i < n; i++) + coords_[i] = other.coords_[i]; +} + +Vector& Vector::operator=(const Vector &other) { + unsigned int i; + for(i = 0; i < n; i++) + coords_[i] = other.coords_[i]; + return *this; +} + +double Vector::operator[](unsigned long i) const { + return coords_[i]; +} + +double & Vector::operator[](unsigned long i){ + return coords_[i]; +} + +Vector& Vector::operator+=(const Vector &other) { + unsigned int i; + for(i = 0; i < n; i++) + coords_[i] += other.coords_[i]; + return *this; +} + +Vector& Vector::operator-=(const Vector &other){ + unsigned int i; + for(i = 0; i < n; i++) + coords_[i] -= other.coords_[i]; + return *this; +} + +Vector& Vector::operator*=(double h){ + unsigned int i; + for(i = 0; i