From a878fc8115596790cadaa10e07042b186c3e8772 Mon Sep 17 00:00:00 2001 From: Fxlr8 Date: Sat, 23 Apr 2016 02:49:50 +0300 Subject: [PATCH 1/4] interface realisation --- src/vector.cpp | 107 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 src/vector.cpp diff --git a/src/vector.cpp b/src/vector.cpp new file mode 100644 index 0000000..c6bdd87 --- /dev/null +++ b/src/vector.cpp @@ -0,0 +1,107 @@ +#include "vector.h" + +Vector::Vector() { + for (unsigned int i = 0; i < n; ++i) { + coords_[i] = 0; + } +} + +Vector::Vector(double a) { + for (unsigned int i = 0; i < n; ++i) { + coords_[i] = a; + } +} + +Vector::Vector(const Vector &op) { + for (unsigned int i = 0; i < n; ++i) { + coords_[i] = op.coords_[i]; + } +} + +Vector &Vector::operator=(const Vector &op) { + for (unsigned int i = 0; i < n; ++i) { + coords_[i] = op.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 &op) { + for (unsigned int i = 0; i < n; ++i) { + coords_[i] += op.coords_[i]; + } + return *this; +} + + +Vector &Vector::operator-=(const Vector &op) { + for (unsigned int i = 0; i < n; ++i) { + coords_[i] -= op.coords_[i]; + } + return *this; +} + +Vector &Vector::operator*=(double a) { + for (unsigned int i = 0; i < n; ++i) { + coords_[i] *= a; + } + return *this; +} + +Vector &Vector::operator/=(double a) { + for (unsigned int i = 0; i < n; ++i) { + coords_[i] /= a; + } + return *this; +} + +bool operator==(const Vector &op1, const Vector &op2) { + for (unsigned int i = 0; i < Vector::n; i++) { + if (op1.coords_[i] != op2.coords_[i]) { + return false; } + } + return true; +} + +Vector operator+(const Vector &op1, const Vector &op2) { + return Vector(op1)+=op2; +} + +Vector operator-(const Vector &op1, const Vector &op2) { + return Vector(op1)-=op2; +} + +Vector operator*(const Vector &op, double a) { + return Vector(op) *= a; +} +Vector operator*(double a, const Vector &op){ + return Vector(op) *= a; +} + +Vector operator/(const Vector &op1, double a) { + return Vector(op1) /= a; +} + +double operator^(const Vector &op1, const Vector &op2) { + double res = 0; + for (unsigned int i = 0; i < Vector::n; ++i) { + res += op1.coords_[i] * op2.coords_[i]; + } + return res; +} + +Vector Vector::operator-() const { + return Vector(*this) *= -1; +} + +bool operator!=(const Vector &op1, const Vector &op2) { + return !(op1 == op2); + +} \ No newline at end of file From 70078a549e45498f0fd5224cca89c6b41de4130a Mon Sep 17 00:00:00 2001 From: Fxlr8 Date: Sat, 23 Apr 2016 03:03:02 +0300 Subject: [PATCH 2/4] badge --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f536447..589a1bb 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,3 @@ # vector Linear space element representation +[![Build status](https://ci.appveyor.com/api/projects/status/em2k9pidg5n2as0i/branch/master?svg=true)](https://ci.appveyor.com/project/Fxlr8/vector/branch/master) From d5cc433c1f03b0b35dde298d9ca291e5c0b90b70 Mon Sep 17 00:00:00 2001 From: Fxlr8 Date: Sat, 23 Apr 2016 03:05:47 +0300 Subject: [PATCH 3/4] travis --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 589a1bb..ffdf5ba 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ # vector Linear space element representation [![Build status](https://ci.appveyor.com/api/projects/status/em2k9pidg5n2as0i/branch/master?svg=true)](https://ci.appveyor.com/project/Fxlr8/vector/branch/master) + From 1b8b9653337a2191c4ddd8710b08f2909edbb0ca Mon Sep 17 00:00:00 2001 From: Fxlr8 Date: Sat, 23 Apr 2016 03:08:45 +0300 Subject: [PATCH 4/4] badge travis --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ffdf5ba..56f1c7d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ # vector Linear space element representation [![Build status](https://ci.appveyor.com/api/projects/status/em2k9pidg5n2as0i/branch/master?svg=true)](https://ci.appveyor.com/project/Fxlr8/vector/branch/master) - +[![Build Status](https://travis-ci.org/Fxlr8/vector.svg?branch=Turkin)](https://travis-ci.org/Fxlr8/vector)