arguments.cpp
1 |
/* __ Includes ___________________________________________________________ */
|
---|---|
2 |
#include <iostream> |
3 |
#include "arguments.hpp" |
4 |
|
5 |
|
6 |
/***********************************************************************//** |
7 |
* @brief arg_copy5
|
8 |
***************************************************************************/
|
9 |
void arg_copy5(int num) |
10 |
{ |
11 |
// Start timer
|
12 |
clock_t t_start = clock(); |
13 |
|
14 |
// Loop
|
15 |
for (int i = 0; i < num; ++i) { |
16 |
int arg1 = i;
|
17 |
int arg2 = i;
|
18 |
int arg3 = i;
|
19 |
int arg4 = i;
|
20 |
int arg5 = i;
|
21 |
ArgCopy5 arg(arg1, arg2, arg3, arg4, arg5); |
22 |
//double a = arg.eval();
|
23 |
} |
24 |
|
25 |
// Stop timer
|
26 |
double t_elapse = (double)(clock() - t_start) / (double)CLOCKS_PER_SEC; |
27 |
std::cout << "arg_copy5: CPU usage = " << t_elapse << " sec" << std::endl; |
28 |
|
29 |
// Return
|
30 |
return;
|
31 |
} |
32 |
|
33 |
|
34 |
/***********************************************************************//** |
35 |
* @brief arg_copy5_once
|
36 |
***************************************************************************/
|
37 |
void arg_copy5_once(int num) |
38 |
{ |
39 |
// Setup once
|
40 |
int arg1 = 1; |
41 |
int arg2 = 2; |
42 |
int arg3 = 3; |
43 |
int arg4 = 4; |
44 |
int arg5 = 5; |
45 |
|
46 |
// Start timer
|
47 |
clock_t t_start = clock(); |
48 |
|
49 |
// Loop
|
50 |
for (int i = 0; i < num; ++i) { |
51 |
ArgCopy5 arg(arg1, arg2, arg3, arg4, arg5); |
52 |
//double a = arg.eval();
|
53 |
} |
54 |
|
55 |
// Stop timer
|
56 |
double t_elapse = (double)(clock() - t_start) / (double)CLOCKS_PER_SEC; |
57 |
std::cout << "arg_copy5_once: CPU usage = " << t_elapse << " sec" << std::endl; |
58 |
|
59 |
// Return
|
60 |
return;
|
61 |
} |
62 |
|
63 |
|
64 |
/***********************************************************************//** |
65 |
* @brief arg_copy15
|
66 |
***************************************************************************/
|
67 |
void arg_copy15(int num) |
68 |
{ |
69 |
// Start timer
|
70 |
clock_t t_start = clock(); |
71 |
|
72 |
// Loop
|
73 |
for (int i = 0; i < num; ++i) { |
74 |
int arg1 = i;
|
75 |
int arg2 = i;
|
76 |
int arg3 = i;
|
77 |
int arg4 = i;
|
78 |
int arg5 = i;
|
79 |
int arg6 = i;
|
80 |
int arg7 = i;
|
81 |
int arg8 = i;
|
82 |
int arg9 = i;
|
83 |
int arg10 = i;
|
84 |
int arg11 = i;
|
85 |
int arg12 = i;
|
86 |
int arg13 = i;
|
87 |
int arg14 = i;
|
88 |
int arg15 = i;
|
89 |
ArgCopy15 arg(arg1, arg2, arg3, arg4, arg5, |
90 |
arg6, arg7, arg8, arg9, arg10, |
91 |
arg11, arg12, arg13, arg14, arg15); |
92 |
//double a = arg.eval();
|
93 |
} |
94 |
|
95 |
// Stop timer
|
96 |
double t_elapse = (double)(clock() - t_start) / (double)CLOCKS_PER_SEC; |
97 |
std::cout << "arg_copy15: CPU usage = " << t_elapse << " sec" << std::endl; |
98 |
|
99 |
// Return
|
100 |
return;
|
101 |
} |
102 |
|
103 |
|
104 |
/***********************************************************************//** |
105 |
* @brief arg_copy15_once
|
106 |
***************************************************************************/
|
107 |
void arg_copy15_once(int num) |
108 |
{ |
109 |
// Setup once
|
110 |
int arg1 = 1; |
111 |
int arg2 = 2; |
112 |
int arg3 = 3; |
113 |
int arg4 = 4; |
114 |
int arg5 = 5; |
115 |
int arg6 = 6; |
116 |
int arg7 = 7; |
117 |
int arg8 = 8; |
118 |
int arg9 = 9; |
119 |
int arg10 = 10; |
120 |
int arg11 = 11; |
121 |
int arg12 = 12; |
122 |
int arg13 = 13; |
123 |
int arg14 = 14; |
124 |
int arg15 = 15; |
125 |
|
126 |
// Start timer
|
127 |
clock_t t_start = clock(); |
128 |
|
129 |
// Loop
|
130 |
for (int i = 0; i < num; ++i) { |
131 |
ArgCopy15 arg(arg1, arg2, arg3, arg4, arg5, |
132 |
arg6, arg7, arg8, arg9, arg10, |
133 |
arg11, arg12, arg13, arg14, arg15); |
134 |
//double a = arg.eval();
|
135 |
} |
136 |
|
137 |
// Stop timer
|
138 |
double t_elapse = (double)(clock() - t_start) / (double)CLOCKS_PER_SEC; |
139 |
std::cout << "arg_copy15_once: CPU usage = " << t_elapse << " sec" << std::endl; |
140 |
|
141 |
// Return
|
142 |
return;
|
143 |
} |
144 |
|
145 |
|
146 |
/***********************************************************************//** |
147 |
* @brief arg_ref5
|
148 |
***************************************************************************/
|
149 |
void arg_ref5(int num) |
150 |
{ |
151 |
// Start timer
|
152 |
clock_t t_start = clock(); |
153 |
|
154 |
// Loop
|
155 |
for (int i = 0; i < num; ++i) { |
156 |
int arg1 = i;
|
157 |
int arg2 = i;
|
158 |
int arg3 = i;
|
159 |
int arg4 = i;
|
160 |
int arg5 = i;
|
161 |
ArgRef5 arg(arg1, arg2, arg3, arg4, arg5); |
162 |
//double a = arg.eval();
|
163 |
} |
164 |
|
165 |
// Stop timer
|
166 |
double t_elapse = (double)(clock() - t_start) / (double)CLOCKS_PER_SEC; |
167 |
std::cout << "arg_ref5: CPU usage = " << t_elapse << " sec" << std::endl; |
168 |
|
169 |
// Return
|
170 |
return;
|
171 |
} |
172 |
|
173 |
|
174 |
/***********************************************************************//** |
175 |
* @brief arg_ref5_once
|
176 |
***************************************************************************/
|
177 |
void arg_ref5_once(int num) |
178 |
{ |
179 |
// Setup once
|
180 |
int arg1 = 1; |
181 |
int arg2 = 2; |
182 |
int arg3 = 3; |
183 |
int arg4 = 4; |
184 |
int arg5 = 5; |
185 |
|
186 |
// Start timer
|
187 |
clock_t t_start = clock(); |
188 |
|
189 |
// Loop
|
190 |
for (int i = 0; i < num; ++i) { |
191 |
ArgRef5 arg(arg1, arg2, arg3, arg4, arg5); |
192 |
//double a = arg.eval();
|
193 |
} |
194 |
|
195 |
// Stop timer
|
196 |
double t_elapse = (double)(clock() - t_start) / (double)CLOCKS_PER_SEC; |
197 |
std::cout << "arg_ref5_once: CPU usage = " << t_elapse << " sec" << std::endl; |
198 |
|
199 |
// Return
|
200 |
return;
|
201 |
} |
202 |
|
203 |
|
204 |
/***********************************************************************//** |
205 |
* @brief arg_ref15
|
206 |
***************************************************************************/
|
207 |
void arg_ref15(int num) |
208 |
{ |
209 |
// Start timer
|
210 |
clock_t t_start = clock(); |
211 |
|
212 |
// Loop
|
213 |
for (int i = 0; i < num; ++i) { |
214 |
int arg1 = i;
|
215 |
int arg2 = i;
|
216 |
int arg3 = i;
|
217 |
int arg4 = i;
|
218 |
int arg5 = i;
|
219 |
int arg6 = i;
|
220 |
int arg7 = i;
|
221 |
int arg8 = i;
|
222 |
int arg9 = i;
|
223 |
int arg10 = i;
|
224 |
int arg11 = i;
|
225 |
int arg12 = i;
|
226 |
int arg13 = i;
|
227 |
int arg14 = i;
|
228 |
int arg15 = i;
|
229 |
ArgRef15 arg(arg1, arg2, arg3, arg4, arg5, |
230 |
arg6, arg7, arg8, arg9, arg10, |
231 |
arg11, arg12, arg13, arg14, arg15); |
232 |
//double a = arg.eval();
|
233 |
} |
234 |
|
235 |
// Stop timer
|
236 |
double t_elapse = (double)(clock() - t_start) / (double)CLOCKS_PER_SEC; |
237 |
std::cout << "arg_ref15: CPU usage = " << t_elapse << " sec" << std::endl; |
238 |
|
239 |
// Return
|
240 |
return;
|
241 |
} |
242 |
|
243 |
|
244 |
/***********************************************************************//** |
245 |
* @brief arg_ref15_once
|
246 |
***************************************************************************/
|
247 |
void arg_ref15_once(int num) |
248 |
{ |
249 |
// Setup once
|
250 |
int arg1 = 1; |
251 |
int arg2 = 2; |
252 |
int arg3 = 3; |
253 |
int arg4 = 4; |
254 |
int arg5 = 5; |
255 |
int arg6 = 6; |
256 |
int arg7 = 7; |
257 |
int arg8 = 8; |
258 |
int arg9 = 9; |
259 |
int arg10 = 10; |
260 |
int arg11 = 11; |
261 |
int arg12 = 12; |
262 |
int arg13 = 13; |
263 |
int arg14 = 14; |
264 |
int arg15 = 15; |
265 |
|
266 |
// Start timer
|
267 |
clock_t t_start = clock(); |
268 |
|
269 |
// Loop
|
270 |
for (int i = 0; i < num; ++i) { |
271 |
ArgRef15 arg(arg1, arg2, arg3, arg4, arg5, |
272 |
arg6, arg7, arg8, arg9, arg10, |
273 |
arg11, arg12, arg13, arg14, arg15); |
274 |
//double a = arg.eval();
|
275 |
} |
276 |
|
277 |
// Stop timer
|
278 |
double t_elapse = (double)(clock() - t_start) / (double)CLOCKS_PER_SEC; |
279 |
std::cout << "arg_ref15_once: CPU usage = " << t_elapse << " sec" << std::endl; |
280 |
|
281 |
// Return
|
282 |
return;
|
283 |
} |
284 |
|
285 |
|
286 |
/***********************************************************************//** |
287 |
* @brief arg_struct5
|
288 |
***************************************************************************/
|
289 |
void arg_struct5(int num) |
290 |
{ |
291 |
// Start timer
|
292 |
clock_t t_start = clock(); |
293 |
|
294 |
// Loop
|
295 |
for (int i = 0; i < num; ++i) { |
296 |
args5 arg; |
297 |
arg.arg1 = i; |
298 |
arg.arg2 = i; |
299 |
arg.arg3 = i; |
300 |
arg.arg4 = i; |
301 |
arg.arg5 = i; |
302 |
ArgStruct5 argstruct(arg); |
303 |
//double a = argstruct.eval();
|
304 |
} |
305 |
|
306 |
// Stop timer
|
307 |
double t_elapse = (double)(clock() - t_start) / (double)CLOCKS_PER_SEC; |
308 |
std::cout << "arg_struct5: CPU usage = " << t_elapse << " sec" << std::endl; |
309 |
|
310 |
// Return
|
311 |
return;
|
312 |
} |
313 |
|
314 |
|
315 |
/***********************************************************************//** |
316 |
* @brief arg_struct5_once
|
317 |
***************************************************************************/
|
318 |
void arg_struct5_once(int num) |
319 |
{ |
320 |
// Set argument once
|
321 |
args5 arg; |
322 |
arg.arg1 = 1;
|
323 |
arg.arg2 = 2;
|
324 |
arg.arg3 = 3;
|
325 |
arg.arg4 = 4;
|
326 |
arg.arg5 = 5;
|
327 |
|
328 |
// Start timer
|
329 |
clock_t t_start = clock(); |
330 |
|
331 |
// Loop
|
332 |
for (int i = 0; i < num; ++i) { |
333 |
ArgStruct5 argstruct(arg); |
334 |
//double a = argstruct.eval();
|
335 |
} |
336 |
|
337 |
// Stop timer
|
338 |
double t_elapse = (double)(clock() - t_start) / (double)CLOCKS_PER_SEC; |
339 |
std::cout << "arg_struct5_once: CPU usage = " << t_elapse << " sec" << std::endl; |
340 |
|
341 |
// Return
|
342 |
return;
|
343 |
} |
344 |
|
345 |
|
346 |
/***********************************************************************//** |
347 |
* @brief arg_struct15
|
348 |
***************************************************************************/
|
349 |
void arg_struct15(int num) |
350 |
{ |
351 |
// Start timer
|
352 |
clock_t t_start = clock(); |
353 |
|
354 |
// Loop
|
355 |
for (int i = 0; i < num; ++i) { |
356 |
args15 arg; |
357 |
arg.arg1 = i; |
358 |
arg.arg2 = i; |
359 |
arg.arg3 = i; |
360 |
arg.arg4 = i; |
361 |
arg.arg5 = i; |
362 |
arg.arg6 = i; |
363 |
arg.arg7 = i; |
364 |
arg.arg8 = i; |
365 |
arg.arg9 = i; |
366 |
arg.arg10 = i; |
367 |
arg.arg11 = i; |
368 |
arg.arg12 = i; |
369 |
arg.arg13 = i; |
370 |
arg.arg14 = i; |
371 |
arg.arg15 = i; |
372 |
ArgStruct15 argstruct(arg); |
373 |
//double a = argstruct.eval();
|
374 |
} |
375 |
|
376 |
// Stop timer
|
377 |
double t_elapse = (double)(clock() - t_start) / (double)CLOCKS_PER_SEC; |
378 |
std::cout << "arg_struct15: CPU usage = " << t_elapse << " sec" << std::endl; |
379 |
|
380 |
// Return
|
381 |
return;
|
382 |
} |
383 |
|
384 |
|
385 |
/***********************************************************************//** |
386 |
* @brief arg_struct15_once
|
387 |
***************************************************************************/
|
388 |
void arg_struct15_once(int num) |
389 |
{ |
390 |
// Set argument once
|
391 |
args15 arg; |
392 |
arg.arg1 = 1;
|
393 |
arg.arg2 = 2;
|
394 |
arg.arg3 = 3;
|
395 |
arg.arg4 = 4;
|
396 |
arg.arg5 = 5;
|
397 |
arg.arg6 = 6;
|
398 |
arg.arg7 = 7;
|
399 |
arg.arg8 = 8;
|
400 |
arg.arg9 = 9;
|
401 |
arg.arg10 = 10;
|
402 |
arg.arg11 = 11;
|
403 |
arg.arg12 = 12;
|
404 |
arg.arg13 = 13;
|
405 |
arg.arg14 = 14;
|
406 |
arg.arg15 = 15;
|
407 |
|
408 |
// Start timer
|
409 |
clock_t t_start = clock(); |
410 |
|
411 |
// Loop
|
412 |
for (int i = 0; i < num; ++i) { |
413 |
ArgStruct15 argstruct(arg); |
414 |
//double a = argstruct.eval();
|
415 |
} |
416 |
|
417 |
// Stop timer
|
418 |
double t_elapse = (double)(clock() - t_start) / (double)CLOCKS_PER_SEC; |
419 |
std::cout << "arg_struct15_once: CPU usage = " << t_elapse << " sec" << std::endl; |
420 |
|
421 |
// Return
|
422 |
return;
|
423 |
} |
424 |
|
425 |
|
426 |
/***********************************************************************//** |
427 |
* @brief Main
|
428 |
***************************************************************************/
|
429 |
int main(void) |
430 |
{ |
431 |
// Set number of rounds
|
432 |
int num = 100000000; |
433 |
|
434 |
// Test 5
|
435 |
std::cout << std::endl; |
436 |
arg_copy5(num); |
437 |
arg_ref5(num); |
438 |
arg_struct5(num); |
439 |
std::cout << std::endl; |
440 |
|
441 |
// Test 15
|
442 |
arg_copy15(num); |
443 |
arg_ref15(num); |
444 |
arg_struct15(num); |
445 |
std::cout << std::endl; |
446 |
|
447 |
// Test 5 once
|
448 |
arg_copy5_once(num); |
449 |
arg_ref5_once(num); |
450 |
arg_struct5_once(num); |
451 |
std::cout << std::endl; |
452 |
|
453 |
// Test 15 once
|
454 |
arg_copy15_once(num); |
455 |
arg_ref15_once(num); |
456 |
arg_struct15_once(num); |
457 |
std::cout << std::endl; |
458 |
|
459 |
// Exit
|
460 |
return 0; |
461 |
} |
462 |
|