summaryrefslogtreecommitdiff
path: root/src/vec.cc
diff options
context:
space:
mode:
authorSiddarth-Suresh <65844402+Siddarth-Suresh@users.noreply.github.com>2025-04-26 20:21:02 -0400
committerSiddarth-Suresh <65844402+Siddarth-Suresh@users.noreply.github.com>2025-04-26 20:21:02 -0400
commit41f612789f652654b5f2fa8c3fee4e348e2081b1 (patch)
tree386658b4231c6c1daa4f2f9769959d0934b2b44e /src/vec.cc
parent73633535288711de4850b9d9eec6326eb5de06c0 (diff)
Initial vector extension changes
Diffstat (limited to 'src/vec.cc')
-rw-r--r--src/vec.cc113
1 files changed, 0 insertions, 113 deletions
diff --git a/src/vec.cc b/src/vec.cc
deleted file mode 100644
index e3e0a6c..0000000
--- a/src/vec.cc
+++ /dev/null
@@ -1,113 +0,0 @@
-#include "vec.h"
-
-template<typename T>
-Vec<T> Vec<T>::operator+(const Vec<T>& other) const {
- if (data.size() != other.data.size()) throw std::invalid_argument("Size mismatch");
- Vec<T> result;
- for (size_t i = 0; i < data.size(); ++i)
- result.data.push_back(data[i] + other.data[i]);
- return result;
-}
-
-template<typename T>
-Vec<T> Vec<T>::operator-(const Vec<T>& other) const {
- if (data.size() != other.data.size()) throw std::invalid_argument("Size mismatch");
- Vec<T> result;
- for (size_t i = 0; i < data.size(); ++i)
- result.data.push_back(data[i] - other.data[i]);
- return result;
-}
-
-template<typename T>
-Vec<T> Vec<T>::operator*(const Vec<T>& other) const {
- if (data.size() != other.data.size()) throw std::invalid_argument("Size mismatch");
- Vec<T> result;
- for (size_t i = 0; i < data.size(); ++i)
- result.data.push_back(data[i] * other.data[i]);
- return result;
-}
-
-template<typename T>
-Vec<T> Vec<T>::operator/(const Vec<T>& other) const {
- if (data.size() != other.data.size()) throw std::invalid_argument("Size mismatch");
- Vec<T> result;
- for (size_t i = 0; i < data.size(); ++i)
- result.data.push_back(other.data[i] == 0 ? 0 : data[i] / other.data[i]);
- return result;
-}
-
-template<typename T>
-Vec<T> Vec<T>::operator%(const Vec<T>& other) const {
- if (data.size() != other.data.size()) throw std::invalid_argument("Size mismatch");
- Vec<T> result;
- for (size_t i = 0; i < data.size(); ++i)
- result.data.push_back(other.data[i] == 0 ? 0 : data[i] % other.data[i]);
- return result;
-}
-
-// Scalar versions
-template<typename T>
-Vec<T> Vec<T>::operator+(T scalar) const {
- Vec<T> result;
- for (const auto& val : data) result.data.push_back(val + scalar);
- return result;
-}
-
-template<typename T>
-Vec<T> Vec<T>::operator-(T scalar) const {
- Vec<T> result;
- for (const auto& val : data) result.data.push_back(val - scalar);
- return result;
-}
-
-template<typename T>
-Vec<T> Vec<T>::operator*(T scalar) const {
- Vec<T> result;
- for (const auto& val : data) result.data.push_back(val * scalar);
- return result;
-}
-
-template<typename T>
-Vec<T> Vec<T>::operator/(T scalar) const {
- Vec<T> result;
- for (const auto& val : data) result.data.push_back(scalar == 0 ? 0 : val / scalar);
- return result;
-}
-
-template<typename T>
-Vec<T> Vec<T>::operator%(T scalar) const {
- Vec<T> result;
- for (const auto& val : data) result.data.push_back(scalar == 0 ? 0 : val % scalar);
- return result;
-}
-
-// Scalar - Vector versions
-template<typename T>
-Vec<T> operator-(T scalar, const Vec<T>& vec) {
- Vec<T> result;
- for (size_t i = 0; i < vec.size(); ++i)
- result = result + (scalar - vec.data[i]);
- return result;
-}
-
-template<typename T>
-Vec<T> operator/(T scalar, const Vec<T>& vec) {
- Vec<T> result;
- for (auto val : vec.data)
- result = result + (val == 0 ? 0 : scalar / val);
- return result;
-}
-
-template<typename T>
-Vec<T> operator%(T scalar, const Vec<T>& vec) {
- Vec<T> result;
- for (auto val : vec.data)
- result = result + (val == 0 ? 0 : scalar % val);
- return result;
-}
-
-template<typename T>
-void Vec<T>::print() const {
- for (auto val : data) std::cout << val << " ";
- std::cout << std::endl;
-}