5 #include <initializer_list> 26 template <
typename T,
int dim>
42 std::array<T, dim> data;
44 T& operator[](
int i) {
48 const T& operator[](
int i)
const {
55 for (
int i = 0; i < dim; i++) {
64 for (
int i = 0; i < dim; i++) {
65 vp[i] = data[i] + v[i];
72 for (
int i = 0; i < dim; i++) {
80 for (
int i = 0; i < dim; i++) {
81 vp[i] = data[i] - v[i];
89 for (
int i = 0; i < dim; i++) {
98 for (
int i = 0; i < dim; i++) {
106 for (
int i = 0; i < dim; i++) {
107 sum += data[i] * data[i];
109 return std::sqrt(sum);
112 T at(
const size_t i)
const {
return data.at(i); }
116 for (
size_t i = 0; i < dim; i++) {
117 vec[i] = std::abs(data[i]);
130 template <
typename T,
int dim>
131 std::ostream& operator<<(std::ostream& s, const wash::Vec<T, dim>& vec) {
132 s << std::string(
"vector [");
133 for (
int i = 0; i < dim; i++) {
136 s << std::string(
", ");
138 s << std::string(
"]");
142 template <
typename T,
int dim>
145 for (
int i = 0; i < dim; i++) {
Custom vector class for WaSH simulation.
Definition: vector.hpp:37
TODO: Consider having this as a private header in WISB/WS2ST/etc implementations. ...
Definition: ascii.hpp:5