BmnRoot
Loading...
Searching...
No Matches
vec_arithmetic.h
Go to the documentation of this file.
1#ifndef _vec_arithmetic_H_
2#define _vec_arithmetic_H_
3
4/* Define all operators after definition of basic operators */
5
6#define vec_arithmetic(V,S) \
7friend V operator-( const V &a ){ return V(0) - a; } \
8friend V operator+( const V &a ){ return a; } \
9friend V operator+( const V &a, const S &b ){ return a + V( b ); } \
10friend V operator-( const V &a, const S &b ){ return a - V( b ); } \
11friend V operator*( const V &a, const S &b ){ return a * V( b ); } \
12friend V operator/( const V &a, const S &b ){ return a / V( b ); } \
13friend V operator+( const S &a, const V &b ){ return V(a)+b; } \
14friend V operator-( const S &a, const V &b ){ return V(a)-b; } \
15friend V operator*( const S &a, const V &b ){ return V(a)*b; } \
16friend V operator/( const S &a, const V &b ){ return V(a)/b; } \
17friend void operator+=( V &a, const V &b ){ a = a + b ; } \
18friend void operator-=( V &a, const V &b ){ a = a - b ; } \
19friend void operator*=( V &a, const V &b ){ a = a * b ; } \
20friend void operator/=( V &a, const V &b ){ a = a / b ; } \
21friend void operator+=( V &a, const S &b ){ a = a + b ; } \
22friend void operator-=( V &a, const S &b ){ a = a - b ; } \
23friend void operator*=( V &a, const S &b ){ a = a * b ; } \
24friend void operator/=( V &a, const S &b ){ a = a / b ; }
25
26#endif