#ifndef VECT_HELPERS_HH #define VECT_HELPERS_HH // Declare a member operator which takes 0 arguments #define DECLARE_MEMBER_OPERATOR_0(fn,op) \ \ vect fn () const \ { \ vect r; \ for (int d=0; d fn () const \ { \ vect r; \ for (int d=0; d \ inline vect fn (const vect& a) \ { \ vect r; \ for (int d=0; d \ inline vect fn (const vect,E>& a) \ { \ vect r; \ for (int e=0; e \ inline vect fn (const vect& a, const vect& b) \ { \ vect r; \ for (int d=0; d \ inline vect fn (const T& a, const vect& b) \ { \ vect r; \ for (int d=0; d \ inline vect fn (const vect& a, const T& b) \ { \ vect r; \ for (int d=0; d \ inline vect,E> fn (const vect,E>& a, \ const vect,E>& b) \ { \ vect,E> r; \ for (int e=0; e \ inline vect,E> fn (const T& a, const vect,E>& b) \ { \ vect,E> r; \ for (int e=0; e \ inline vect,E> fn (const vect,E>& a, const T& b) \ { \ vect,E> r; \ for (int e=0; e \ inline vect fn (const vect& a) \ { \ vect r; \ for (int d=0; d \ inline vect fn (const T& a) \ { \ vect r; \ for (int d=0; d \ inline vect,E> fn (const vect,E>& a) \ { \ vect,E> r; \ for (int e=0; e \ inline vect,E> fn (const T& a) \ { \ vect,E> r; \ for (int e=0; e \ inline vect fn (const vect& a, const vect& b) \ { \ vect r; \ for (int d=0; d \ inline vect fn (const T& a, const vect& b) \ { \ vect r; \ for (int d=0; d \ inline vect fn (const vect& a, const T& b) \ { \ vect r; \ for (int d=0; d \ inline vect,E> fn (const vect,E>& a, \ const vect,E>& b) \ { \ vect,E> r; \ for (int e=0; e \ inline vect,E> fn (const T& a, const vect,E>& b) \ { \ vect,E> r; \ for (int e=0; e \ inline vect,E> fn (const vect,E>& a, const T& b) \ { \ vect,E> r; \ for (int e=0; e \ inline vect fn (const vect& a) \ { \ vect r; \ for (int d=0; d \ inline R fn (const vect& a) \ { \ R r(init); \ for (int d=0; d \ inline T fn (const vect& a) \ { \ T r(init); \ for (int d=0; d \ inline T fn (const vect& a) \ { \ T r(init); \ for (int d=0; d \ inline T fn (const vect& a, const vect& b) \ { \ T r(init); \ for (int d=0; d