@@ -21,194 +21,210 @@ limitations under the License. */
2121namespace hppl {
2222namespace unary {
2323
24- template <class T >
25- class add_scale {
24+ template <class T >
25+ class add_scale {
2626private:
2727 const T p;
28+
2829public:
2930 INLINE add_scale (const T s) : p(s) {}
3031 INLINE T operator ()(const T a) const { return a + p; }
3132};
3233
33- template <class T >
34+ template <class T >
3435class sub_scale {
3536private:
3637 const T p;
38+
3739public:
3840 INLINE sub_scale (const T s) : p(s) {}
3941 INLINE T operator ()(const T a) const { return a - p; }
4042};
4143
42- template <class T >
44+ template <class T >
4345class mul_scale {
4446private:
4547 const T p;
48+
4649public:
4750 INLINE mul_scale (const T s) : p(s) {}
4851 INLINE T operator ()(const T a) const { return a * p; }
4952};
5053
51- template <class T >
54+ template <class T >
5255class div_scale {
5356private:
5457 const T p;
58+
5559public:
5660 INLINE div_scale (const T s) : p(s) {}
5761 INLINE T operator ()(const T a) const { return a / p; }
5862};
5963
60- template <class T >
64+ template <class T >
6165class neg {
6266public:
6367 INLINE T operator ()(const T a) const { return -a; }
6468};
6569
66- template <class T >
70+ template <class T >
6771class exp_op {
6872public:
6973 INLINE T operator ()(const T a) const { return std::exp (a); }
7074};
7175
72- template <class T >
76+ template <class T >
7377class log_op {
7478public:
7579 INLINE T operator ()(const T a) const { return std::log (a); }
7680};
7781
78- template <class T >
82+ template <class T >
7983class sqrt_op {
8084public:
8185 INLINE T operator ()(const T a) const { return std::sqrt (a); }
8286};
8387
84- template <class T >
88+ template <class T >
8589class square {
8690public:
8791 INLINE T operator ()(const T a) const { return a * a; }
8892};
8993
90- template <class T >
94+ template <class T >
9195class reciprocal {
9296public:
9397 INLINE T operator ()(const T a) const { return T (1 ) / a; }
9498};
9599
96- template <class T >
100+ template <class T >
97101class abs {
98102public:
99103 INLINE T operator ()(const T a) const { return a > 0 ? a : -a; }
100104};
101105
102- template <class T >
106+ template <class T >
103107class sign {
104108public:
105109 INLINE T operator ()(const T a) const { return (a > 0 ) - (a < 0 ); }
106110};
107111
108- template <class T >
112+ template <class T >
109113class min {
110114private:
111115 const T p;
116+
112117public:
113118 INLINE min (const T s) : p(s) {}
114119 INLINE T operator ()(const T a) const { return a > p ? p : a; }
115120};
116121
117- template <class T >
122+ template <class T >
118123class max {
119124private:
120125 const T p;
126+
121127public:
122128 INLINE max (const T s) : p(s) {}
123129 INLINE T operator ()(const T a) const { return a < p ? p : a; }
124130};
125131
126- template <class T >
132+ template <class T >
127133class pow_op {
128134private:
129135 const T p;
136+
130137public:
131138 INLINE pow_op (const T s) : p(s) {}
132139 INLINE T operator ()(const T a) const { return std::pow (a, p); }
133140};
134141
135- template <class T >
142+ template <class T >
136143class constant {
137144private:
138145 const T p;
146+
139147public:
140148 INLINE constant (const T s) : p(s) {}
141149 INLINE T operator ()(int i) const { return p; }
142150 INLINE T operator ()(int i, int j) const { return p; }
143151};
144152
145- template <class T >
153+ template <class T >
146154class cmp_eq {
147155private:
148156 const T p;
157+
149158public:
150159 INLINE cmp_eq (const T s) : p(s) {}
151160 INLINE bool operator ()(const T a) const { return a == p; }
152161};
153162
154- template <class T >
163+ template <class T >
155164class cmp_ne {
156165private:
157166 const T p;
167+
158168public:
159169 INLINE cmp_ne (const T s) : p(s) {}
160170 INLINE bool operator ()(const T a) const { return a != p; }
161171};
162172
163- template <class T >
173+ template <class T >
164174class cmp_le {
165175private:
166176 const T p;
177+
167178public:
168179 INLINE cmp_le (const T s) : p(s) {}
169180 INLINE bool operator ()(const T a) const { return a <= p; }
170181};
171182
172- template <class T >
183+ template <class T >
173184class cmp_lt {
174185private:
175186 const T p;
187+
176188public:
177189 INLINE cmp_lt (const T s) : p(s) {}
178190 INLINE bool operator ()(const T a) const { return a < p; }
179191};
180192
181- template <class T >
193+ template <class T >
182194class cmp_ge {
183195private:
184196 const T p;
197+
185198public:
186199 INLINE cmp_ge (const T s) : p(s) {}
187200 INLINE bool operator ()(const T a) const { return a >= p; }
188201};
189202
190- template <class T >
203+ template <class T >
191204class cmp_gt {
192205private:
193206 const T p;
207+
194208public:
195209 INLINE cmp_gt (const T s) : p(s) {}
196210 INLINE bool operator ()(const T a) const { return a > p; }
197211};
198212
199- template <class T >
213+ template <class T >
200214class and_op {
201215private:
202216 const T p;
217+
203218public:
204219 INLINE and_op (const T s) : p(s) {}
205220 INLINE bool operator ()(const T a) const { return a && p; }
206221};
207222
208- template <class T >
223+ template <class T >
209224class or_op {
210225private:
211226 const T p;
227+
212228public:
213229 INLINE or_op (const T s) : p(s) {}
214230 INLINE bool operator ()(const T a) const { return a || p; }
@@ -217,97 +233,96 @@ class or_op {
217233} // namespace unary
218234
219235namespace binary {
220- template <class T >
236+ template <class T >
221237class add {
222238public:
223239 INLINE T operator ()(const T a, const T b) const { return a + b; }
224240};
225241
226- template <class T >
242+ template <class T >
227243class add_scale {
228244private:
229245 const T p1;
230246 const T p2;
247+
231248public:
232249 INLINE add_scale (const T s1, const T s2) : p1(s1), p2(s2) {}
233- INLINE T operator ()(const T a, const T b) const {
234- return p1 * a + p2 * b;
235- }
250+ INLINE T operator ()(const T a, const T b) const { return p1 * a + p2 * b; }
236251};
237252
238- template <class T >
253+ template <class T >
239254class sub {
240255public:
241256 INLINE T operator ()(const T a, const T b) const { return a - b; }
242257};
243258
244- template <class T >
259+ template <class T >
245260class mul {
246261public:
247262 INLINE T operator ()(const T a, const T b) const { return a * b; }
248263};
249264
250- template <class T >
265+ template <class T >
251266class div {
252267public:
253- INLINE T operator ()(const T a, const T b) const { return a / b; }
268+ INLINE T operator ()(const T a, const T b) const { return a / b; }
254269};
255270
256- template <class T >
271+ template <class T >
257272class cmp_eq {
258273public:
259274 INLINE bool operator ()(const T a, const T b) const { return a == b; }
260275};
261276
262- template <class T >
277+ template <class T >
263278class cmp_ne {
264279public:
265280 INLINE bool operator ()(const T a, const T b) const { return a != b; }
266281};
267282
268- template <class T >
283+ template <class T >
269284class cmp_le {
270285public:
271286 INLINE bool operator ()(const T a, const T b) const { return a <= b; }
272287};
273288
274- template <class T >
289+ template <class T >
275290class cmp_lt {
276291public:
277292 INLINE bool operator ()(const T a, const T b) const { return a < b; }
278293};
279294
280- template <class T >
295+ template <class T >
281296class cmp_ge {
282297public:
283298 INLINE bool operator ()(const T a, const T b) const { return a >= b; }
284299};
285300
286- template <class T >
301+ template <class T >
287302class cmp_gt {
288303public:
289304 INLINE bool operator ()(const T a, const T b) const { return a > b; }
290305};
291306
292- template <class T >
307+ template <class T >
293308class and_op {
294309public:
295310 INLINE bool operator ()(const T a, const T b) const { return a && b; }
296311};
297312
298- template <class T >
313+ template <class T >
299314class or_op {
300315public:
301316 INLINE bool operator ()(const T a, const T b) const { return a || b; }
302317};
303318
304- template <class T >
319+ template <class T >
305320class min {
306321public:
307322 INLINE T operator ()(const T a, const T b) const { return a > b ? b : a; }
308323};
309324
310- template <class T >
325+ template <class T >
311326class max {
312327public:
313328 INLINE T operator ()(const T a, const T b) const { return a < b ? b : a; }
@@ -317,4 +332,3 @@ class max {
317332} // namespace hppl
318333
319334#endif // HL_TENSOR_OPS_H_
320-
0 commit comments