From 9f76b6f1ecd7b9d1a79f2a690ea6ccb8721b5e4f Mon Sep 17 00:00:00 2001 From: Engage222 Date: Sat, 23 Apr 2016 02:50:11 +0300 Subject: [PATCH 1/4] Change 123 --- src/vector.cpp | 109 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 src/vector.cpp diff --git a/src/vector.cpp b/src/vector.cpp new file mode 100644 index 0000000..f69e9f9 --- /dev/null +++ b/src/vector.cpp @@ -0,0 +1,109 @@ +#include +#include "vector.h" +#include + +Vector::Vector() { + for(unsigned long i = 0; i < n; i++) { + coords_[i] = 0; + } +} + +Vector::Vector(double a) { + for(unsigned long i = 0; i < n; i++) { + coords_[i] = a; + } +} + +Vector::Vector(const Vector &B) { + for(unsigned long i = 0; i < n; i++) { + coords_[i] = B.coords_[i]; + } +} + +Vector &Vector::operator=(const Vector &B) { + for(unsigned long i = 0; i < n; i++) { + coords_[i] = B.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 &B) { + for(unsigned long i = 0; i < n; i++) { + coords_[i] += B.coords_[i]; + } + return *this; +} + +Vector &Vector::operator-=(const Vector &B) { + for(unsigned long i = 0; i < n; i++) { + coords_[i] -= B.coords_[i]; + } + return *this; +} + +Vector &Vector::operator*=(double B) { + for(unsigned long i = 0; i < n; i++) { + coords_[i] *= B; + } + return *this; +} + +Vector &Vector::operator/=(double B) { + for(unsigned long i = 0; i < n; i++) { + coords_[i] /= B; + } + return *this; +} + +bool operator==(const Vector &left, const Vector &right) { + for(unsigned long i = 0; i < Vector::n; i++) { + if (left.coords_[i] != right.coords_[i]) { + return false; + } + } + return true; +} + +Vector operator+(const Vector &left, const Vector &right) { + return Vector(left) += right; +} + +Vector operator-(const Vector &left, const Vector &right) { + return Vector(left) -= right; +} + +Vector operator*(const Vector &left, double A) { + return Vector(left) *= A; +} + +Vector operator*(double A, const Vector &right) { + return right * A; +} + +Vector operator/(const Vector &left, double A) { + return Vector(left) /= A; +} + +double operator^(const Vector &left, const Vector &right) { + double dot = 0; + for(unsigned long i = 0; i < Vector::n; i++) { + dot += left.coords_[i]*right.coords_[i]; + } + return dot; +} + +Vector Vector::operator-() const { + return Vector(*this) *= -1; +} + +bool operator!=(const Vector &left, const Vector &right) { + return !(left == right); +} From 02c459e6d44e9e60268f19f9bc2a806e868b030f Mon Sep 17 00:00:00 2001 From: Engage222 Date: Sat, 23 Apr 2016 03:03:08 +0300 Subject: [PATCH 2/4] badge --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f536447..113853c 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/d135pixygbgk9bkb/branch/Anton222?svg=true)](https://ci.appveyor.com/project/Engage222/vector-pnd4g/branch/Anton222) From e0fed51346fae87415400a00e3be4eaf9d586644 Mon Sep 17 00:00:00 2001 From: Engage222 Date: Sat, 23 Apr 2016 03:05:43 +0300 Subject: [PATCH 3/4] 1 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 113853c..af0e9b9 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/d135pixygbgk9bkb/branch/Anton222?svg=true)](https://ci.appveyor.com/project/Engage222/vector-pnd4g/branch/Anton222) + \ No newline at end of file From 31e79886e9aec5ce89ee964a683f75e7af0bbe14 Mon Sep 17 00:00:00 2001 From: Engage222 Date: Sat, 23 Apr 2016 03:08:37 +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 af0e9b9..aa59877 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/d135pixygbgk9bkb/branch/Anton222?svg=true)](https://ci.appveyor.com/project/Engage222/vector-pnd4g/branch/Anton222) - \ No newline at end of file +[![Build Status](https://travis-ci.org/Engage222/vector.svg?branch=Anton222)](https://travis-ci.org/Engage222/vector) \ No newline at end of file