5 #ifndef _EXAMPLES__BORIS__PARTICLE_UTIL_HPP_
6 #define _EXAMPLES__BORIS__PARTICLE_UTIL_HPP_
27 template<
typename precision>
31 template<
typename precision>
32 inline static void zero(vector<precision>&
data);
34 template<
typename precision>
35 inline static void zero(shared_ptr<vector<precision>>&
data);
40 template<
typename precision>
41 inline static vector<precision>
cross_prod(
const vector<precision>& first,
42 const vector<precision>& second);
44 template<
typename precision>
45 inline static void cross_prod_1part(
typename vector<precision>::const_iterator __first,
46 typename vector<precision>::const_iterator __second,
47 typename vector<precision>::iterator __result);
49 template<
typename precision>
50 inline static vector<precision>
cross_prod_npart(
const vector<precision>& first,
51 const vector<precision>& second);
55 template<
typename precision>
56 inline static vector<precision>
kronecker(
const vector<precision>& first,
57 const vector<precision>& second);
61 template<
typename precision>
62 inline static vector<precision>
cmp_wise_mul(
const vector<precision>& first,
63 const vector<precision>& second);
66 template<
typename precision>
67 inline static vector<precision>
cmp_wise_div(
const vector<precision>& first,
68 const vector<precision>& second);
72 template<
typename precision>
73 inline static precision
max(
const vector<precision>&
data);
75 template<
typename precision>
76 inline static precision
max_abs(
const vector<precision>&
data);
80 template<
typename precision>
81 inline static precision
norm_sq(
const vector<precision>&
data);
83 template<
typename precision>
84 inline static precision
norm_sq(
typename vector<precision>::const_iterator __first,
85 typename vector<precision>::const_iterator __second);
87 template<
typename precision>
88 inline static vector<precision>
norm_sq_npart(
const vector<precision>&
data,
const size_t npart);
91 template<
typename precision>
92 inline static precision
norm0(
const vector<precision>&
data);
94 template<
typename precision>
95 inline static precision
norm0(
typename vector<precision>::const_iterator __first,
96 typename vector<precision>::const_iterator __second);
98 template<
typename precision>
99 inline static vector<precision>
norm0_npart(
const vector<precision>&
data,
const size_t npart);
105 template<
typename precision>
106 inline vector<precision>
operator+ (
const vector<precision>& first,
107 const vector<precision>& second);
109 template<
typename precision,
typename ValueT>
110 inline vector<precision>
operator+ (
const vector<precision>& vec,
111 const ValueT& value );
113 template<
typename precision,
typename ValueT>
114 inline vector<precision>
operator+ (
const ValueT& value,
115 const vector<precision>& vec );
118 template<
typename precision>
119 inline vector<precision>&
operator+=( vector<precision>& first,
120 const vector<precision>& second);
122 template<
typename precision,
typename ValueT>
123 inline vector<precision>&
operator+=( vector<precision>& vec,
124 const ValueT& value );
127 template<
typename precision>
128 inline vector<precision>
operator- (
const vector<precision>& first,
129 const vector<precision>& second);
131 template<
typename precision,
typename ValueT>
132 inline vector<precision>
operator- (
const vector<precision>& vec,
133 const ValueT& value );
136 template<
typename precision>
137 inline vector<precision>&
operator-=( vector<precision>& first,
138 const vector<precision>& second);
140 template<
typename precision,
typename ValueT>
141 inline vector<precision>&
operator-=( vector<precision>& vec,
142 const ValueT& value );
145 template<
typename precision,
typename ValueT>
146 inline vector<precision>
operator* (
const vector<precision>& vec,
147 const ValueT& value );
149 template<
typename precision,
typename ValueT>
150 inline vector<precision>
operator* (
const ValueT& value,
151 const vector<precision>& vec );
153 template<
typename precision>
154 inline vector<precision>
operator* (
const vector<precision>& vec,
155 const vector<precision>& values);
158 template<
typename precision,
typename ValueT>
159 inline vector<precision>&
operator*=( vector<precision>& vec,
160 const ValueT& value );
163 template<
typename precision,
typename ValueT>
164 inline vector<precision>
operator/ (
const vector<precision>& vec,
165 const ValueT& value );
167 template<
typename precision>
168 inline vector<precision>
operator/ (
const vector<precision>& vec,
169 const vector<precision>& values);
172 template<
typename precision,
typename ValueT>
173 inline vector<precision>&
operator/=( vector<precision>& vec,
174 const ValueT& value );
182 #endif // _EXAMPLES__BORIS__PARTICLE_UTIL_HPP_
vector< precision > & operator+=(vector< precision > &vec, const ValueT &value)
vector< precision > operator+(const ValueT &value, const vector< precision > &vec)
static vector< precision > cloud_component_factory(const size_t num_particles, const size_t dim)
vector< precision > operator*(const vector< precision > &vec, const vector< precision > &values)
static vector< precision > kronecker(const vector< precision > &first, const vector< precision > &second)
static precision max_abs(const vector< precision > &data)
static vector< precision > cmp_wise_mul(const vector< precision > &first, const vector< precision > &second)
vector< precision > & operator*=(vector< precision > &vec, const ValueT &value)
static vector< precision > cross_prod_npart(const vector< precision > &first, const vector< precision > &second)
vector< precision > operator-(const vector< precision > &vec, const ValueT &value)
static precision norm_sq(typename vector< precision >::const_iterator __first, typename vector< precision >::const_iterator __second)
static precision norm0(typename vector< precision >::const_iterator __first, typename vector< precision >::const_iterator __second)
vector< precision > operator/(const vector< precision > &vec, const vector< precision > &values)
static void zero(shared_ptr< vector< precision >> &data)
static vector< precision > norm0_npart(const vector< precision > &data, const size_t npart)
vector< precision > & operator-=(vector< precision > &vec, const ValueT &value)
static void cross_prod_1part(typename vector< precision >::const_iterator __first, typename vector< precision >::const_iterator __second, typename vector< precision >::iterator __result)
static vector< precision > norm_sq_npart(const vector< precision > &data, const size_t npart)
static vector< precision > cross_prod(const vector< precision > &first, const vector< precision > &second)
static vector< precision > cmp_wise_div(const vector< precision > &first, const vector< precision > &second)
static precision max(const vector< precision > &data)
vector< precision > & operator/=(vector< precision > &vec, const ValueT &value)