5#ifndef _TARCH_LA_VECTOR_H_
6#define _TARCH_LA_VECTOR_H_
7#include "tarch/TarchDefinitions.h"
14template <
int size,
class T>
class Vector;
35 for (
int i = 0; i < size; i++) {
44 static_assert(size == 2,
"ERROR Vector(t0,t1) only valid for 2D vectors!");
53 Vector(
const T& t0,
const T& t1,
const T& t2) {
54 static_assert(size == 3,
"ERROR Vector(t0,t1,t2) only valid for 3D vectors!");
63 for (
int i = 0; i < size; i++) {
71 for (
int i = 0; i < size; i++) {
78 Vector<size, T>&
operator=(
const Vector<size, T>& v) {
79 for (
int i = 0; i < size; i++) {
89#if (TARCH_DEBUG == TARCH_YES)
90 if (i < 0 || i > size - 1) {
91 std::cout <<
"ERROR Vector T& operator[]: i out of range!" << std::endl;
102#if (TARCH_DEBUG == TARCH_YES)
103 if (i < 0 || i > size - 1) {
104 std::cout <<
"ERROR Vector const T& operator[]: i out of range!" << std::endl;
114 for (
int i = 0; i < size; i++) {
124 for (
int i = 0; i < size; i++) {
131 template <
class convert_to_T>
explicit operator Vector<size, convert_to_T>()
const {
132 Vector<size, convert_to_T> ans;
133 for (
unsigned int i = 0; i < size; i++) {
134 ans[i] =
static_cast<convert_to_T
>(_entries[i]);
140#include "VectorOperations.cpph"
T & operator[](int i)
operator overloading; access to vector entries; both () and [] are allowed
Definition Vector.h:88
Vector< size, T > & operator+=(const Vector< size, T > &v)
operator overloading; add a vector to this existing one (this)
Definition Vector.h:113
Vector(const T &t0, const T &t1, const T &t2)
special constructor for 3D; left empty for general purpose vector
Definition Vector.h:53
Vector< size, T > & operator=(const Vector< size, T > &v)
operator overloading for vector assignment
Definition Vector.h:78
Vector< size, T > & operator-=(const Vector< size, T > &v)
operator overloading; subtracts a vector from the existing one (this)
Definition Vector.h:123
const T & operator[](int i) const
operator overloading; access to vector entries; both () and [] are allowed; !!! Attention: const
Definition Vector.h:101
Vector(const T &t)
init. vector with a scalar value.
Definition Vector.h:34
void assign(const T &t)
assigns a value to all vector entries.
Definition Vector.h:70
Vector(const T &t0, const T &t1)
special constructor for 2D left empty for general purpose vector
Definition Vector.h:43
Vector(const Vector< size, T > &v)
constructor init. vector from vector
Definition Vector.h:62
Definition Configuration.h:11