source: trunk/lib/symtab/arrays/driver.cxx @ 1229

Last change on this file since 1229 was 1229, checked in by vla24, 8 years ago

Reorganized SymbolTable? library

File size: 4.2 KB
Line 
1#include "StackArray2D.h"
2#include "HeapArray2D.h"
3#include "HeapArray.h"
4#include <cstdlib>
5#include <vector>
6#include <stdio.h>
7#include <emmintrin.h>
8using namespace std;
9
10#define REPEAT 1
11
12void heap_ary_1D();
13void heap_ary_2D();
14
15int main() {
16
17        heap_ary_1D();
18        heap_ary_2D();
19       
20        cout << "Done." << endl;
21       
22        return EXIT_SUCCESS;   
23}
24
25// HEAP BASED ARRAY
26void heap_ary_1D() {
27
28  cout << "----- HEAPARRAY1D -----" << endl;
29 
30  for(int i = 0; i<REPEAT; i++) 
31  { 
32   
33    // Allocate 1D arrays
34    HeapArray<unsigned char>  heap_ary0(1,sizeof(__m128i),sizeof(__m128i));             // allocates 1 16 byte chunks of memory to hold at least 1 unsigned char
35    HeapArray<unsigned char> heap_ary1(2,sizeof(__m128i),sizeof(__m128i));              // allocates 1 16 byte chunks of memory to hold at least 1 unsigned char
36    HeapArray<unsigned char> heap_ary2(15,sizeof(__m128i),sizeof(__m128i));             // allocates 1 16 byte chunks of memory to hold at least 1 unsigned char
37    HeapArray<unsigned char> heap_ary3(16,sizeof(__m128i),sizeof(__m128i));             // allocates 1 16 byte chunks of memory to hold at least 1 unsigned char
38    HeapArray<unsigned char> heap_ary4(17,sizeof(__m128i),sizeof(__m128i));             // allocates 2 16 byte chunks of memory to hold at least 17 unsigned char
39    HeapArray<unsigned char> heap_ary5(16,sizeof(__m128i)*4,sizeof(__m128i));           // allocates 1 64 byte chunk of memory to hold at least 16 unsigned char
40    HeapArray<size_t> heap_ary6(1,sizeof(__m128i),sizeof(__m128i));                     // allocates 1 16*sizeof(size_t) byte chunks of memory to hold at least 1 size_t
41    HeapArray<size_t> heap_ary7(5,sizeof(__m128i),sizeof(__m128i));                     // allocates 2 16*sizeof(size_t) byte chunks of memory to hold at least 5 size_t
42
43    // Push 33 unsigned char values into the first array
44    unsigned char c = 40;
45    for(size_t i = 0; i<33; i++) 
46    {
47        cout << "heap_ary0.push_back(" << c << ")" << endl;
48        heap_ary0.push_back(c);
49        c++;
50    }
51
52    // Show array contents
53    cout << "heap_ary0.size() = " << heap_ary0.size()  << endl;
54    for(size_t i = 0; i<heap_ary0.size(); i++) 
55    {
56        cout << "heap_ary0.get(" << i << ") = " << heap_ary0.get(i) << endl;
57    }
58
59    // Push 17 size_t values into the first array
60    for(size_t i = 0; i<18; i++) 
61    {
62        cout << "heap_ary6.push_back(" << i << ")" << endl;
63        heap_ary6.push_back(i);
64        c++;
65    }
66
67    // Show array contents
68    cout << "heap_ary6.size() = " << heap_ary6.size()  << endl;
69    for(size_t i = 0; i<heap_ary6.size(); i++) 
70    {
71        cout << "heap_ary6.get(" << i << ") = " << heap_ary6.get(i) << endl;
72    }
73  }
74}
75
76void heap_ary_2D() {
77
78      cout << "----- HEAPARRAY2D -----" << endl;
79
80      for(int i = 0; i<REPEAT; i++) 
81      {
82              HeapArray2D<unsigned char> h2(0,0,17,sizeof(__m128i));
83
84              unsigned char c = 40;
85              int row = 0;
86              // push colums values in row 0
87              for(size_t i = 0; i<17; i++) 
88              {
89                      cout << "h2.push_back(" << row << "," << c << ")" << endl;               
90                      h2.push_back(row,c);
91                      c++;
92              }
93
94              c = 40;
95              row = 3;
96              // push colums values in row 0
97              for(size_t i = 0; i<19; i++) 
98              {
99                      cout << "h2.push_back(" << row << "," << c << ")" << endl;     
100                      h2.push_back(3,c);
101                      c++;
102              }
103
104              cout << "h2.rows() = " << h2.rows() << endl;
105
106              for(size_t i = 0; i<h2.rows(); i++) 
107              {
108                      cout << "h2.size(" << i << ") = " << h2.size(i) << endl;
109                      for(size_t j = 0; j < h2.size(i); j++) 
110                      {
111                              cout << "h2.get(" << i << "," << j << ") = " << h2.get(i,j) << endl;     
112                      }
113                      cout << endl;
114              }
115      } 
116       
117}
118
119
120/*
121
122cout << "----- STACK BASED ARRAYS -----" << endl;
123
124size_t rows = 32;
125size_t cols = 16;
126
127StackArray2D<unsigned int> array(STACK_ARRAY_2D(unsigned int, rows, cols));
128
129for(size_t i=0; i<rows; i++) {
130        for(size_t j=0; j<cols;j++) {
131                array.Push_back(i,i);   
132        }
133}
134
135for(size_t i=0; i<rows; i++) {
136        size_t cols = array.RowSize(i);
137        for(size_t j=0; j<cols;j++) {
138                cout << array.Get(i,j);
139        }
140        cout << endl;
141}
142*/
143
144/*
145
146cout << "----- STL VECTOR -----" << endl;
147
148for(int i = 0; i<REPEAT; i++) {
149
150        {
151                vector< vector<size_t> > v(1);
152
153                for(size_t i = 0; i<1000; i++) {
154                        v[0].push_back(i);     
155                }
156               
157                for(size_t i = 0; i<v[0].size(); i++) {
158                        cout << v[0][i];       
159                }
160                cout << endl;
161        }
162       
163}
164*/
Note: See TracBrowser for help on using the repository browser.