10#ifndef LINEAR_ALGEBRA_HPP
11#define LINEAR_ALGEBRA_HPP
90 size_t size()
const {
return data.size(); }
150 T
norm()
const {
return std::sqrt(
dot(*
this)); }
244 size_t rows()
const {
return data.size(); }
251 size_t cols()
const {
return data[0].size(); }
265 for (
size_t i = 0;
i <
rows(); ++
i) {
266 for (
size_t j = 0;
j <
cols(); ++
j) {
274 std::vector<std::vector<T>> data;
double sum(const Arr &a)
Sum of all elements.
Definition arr.hpp:260
A simple 2D matrix class for linear algebra operations.
Definition linear_algebra.hpp:210
Matrix2(size_t rows, size_t cols)
Construct a matrix with specified dimensions.
Definition linear_algebra.hpp:221
size_t cols() const
Definition linear_algebra.hpp:251
std::vector< T > & operator[](size_t i)
Definition linear_algebra.hpp:229
const std::vector< T > & operator[](size_t i) const
Definition linear_algebra.hpp:237
Vector2< T > operator*(const Vector2< T > &v) const
Definition linear_algebra.hpp:263
size_t rows() const
Definition linear_algebra.hpp:244
A simple 2D vector class for linear algebra operations.
Definition linear_algebra.hpp:25
Vector2(size_t size)
Definition linear_algebra.hpp:35
Vector2 & operator-=(const Vector2 &rhs)
Definition linear_algebra.hpp:109
T norm() const
Definition linear_algebra.hpp:150
T dot(const Vector2 &other) const
Definition linear_algebra.hpp:135
Vector2(const std::vector< T > &v)
Definition linear_algebra.hpp:42
Vector2(Vector2 &&) noexcept=default
const T & operator[](size_t i) const
Definition linear_algebra.hpp:83
Vector2 & operator+=(const Vector2 &rhs)
Definition linear_algebra.hpp:98
Vector2 & operator*=(T scalar)
Definition linear_algebra.hpp:120
T value_type
Definition linear_algebra.hpp:27
size_t size() const
Definition linear_algebra.hpp:90
Vector2(const Vector2 &)=default
Vector2 & operator=(const Vector2 &)=default
auto invalid_value() -> T
Return an invalid/sentinel value for type T.
Definition cutting_plane.hpp:27
Vector2< T > operator+(Vector2< T > lhs, const Vector2< T > &rhs)
Definition linear_algebra.hpp:163
Vector2< T > operator-(Vector2< T > lhs, const Vector2< T > &rhs)
Definition linear_algebra.hpp:175
Vector2< T > operator*(Vector2< T > v, T scalar)
Definition linear_algebra.hpp:187