arguments.cpp

Knödlseder Jürgen, 03/26/2013 01:29 AM

Download (11 KB)

 
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