File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -47,11 +47,10 @@ class kdNode {
4747 }}
4848
4949 inline void boundingBoxParallel () {
50- // intT P = getWorkers()*8;
51- static const intT P = 36 * 8 ;
50+ intT P = getWorkers () * 8 ;
5251 intT blockSize = (n+P-1 )/P;
53- pointT localMin[P] ;
54- pointT localMax[P] ;
52+ auto localMin = newA (pointT, P) ;
53+ auto localMax = newA (pointT, P) ;
5554 for (intT i=0 ; i<P; ++i) {
5655 localMin[i] = pointT (items[0 ]->coordinate ());
5756 localMax[i] = pointT (items[0 ]->coordinate ());}
@@ -68,6 +67,8 @@ class kdNode {
6867 for (intT p=0 ; p<P; ++p) {
6968 pMin.minCoords (localMin[p].x );
7069 pMax.maxCoords (localMax[p].x );}
70+ free (localMin);
71+ free (localMax);
7172 }
7273
7374 inline intT splitItemSerial (floatT xM) {
Original file line number Diff line number Diff line change @@ -126,10 +126,9 @@ point<dim> pMinSerial(point<dim>* items, intT n) {
126126template <int dim>
127127point<dim> pMinParallel (point<dim>* items, intT n) {
128128 point<dim> pMin = point<dim>(items[0 ].x );
129- // intT P = getWorkers()*8;
130- static const intT P = 36 * 8 ;
129+ intT P = getWorkers () * 8 ;
131130 intT blockSize = (n+P-1 )/P;
132- point<dim> localMin[P] ;
131+ auto localMin = newA ( point<dim>, P) ;
133132 for (intT i=0 ; i<P; ++i) {
134133 localMin[i] = point<dim>(items[0 ].x );}
135134 parallel_for (0 , P, [&](intT p) {
@@ -141,5 +140,6 @@ point<dim> pMinParallel(point<dim>* items, intT n) {
141140 pMin = point<dim>(items[0 ].x );
142141 for (intT p=0 ; p<P; ++p) {
143142 pMin.minCoords (localMin[p].x );}
143+ free (localMin);
144144 return pMin;
145145}
You can’t perform that action at this time.
0 commit comments