build: fix travis MPI/SMP build
[charm.git] / src / ck-cp / arrayRedistributor.C
1 #include <charm++.h>
2 #include <cmath>
3 #include <math.h>
4 #include <iostream>
5 #include <fstream>
6 #include <string>
7 #include <sstream>
8 #include <map>
9 #include <set>
10 #include <vector>
11 #include <utility>
12 #include <limits>
13 //#include <sys/time.h>
14 #include <float.h>
15
16 //#include "ControlPoints.decl.h"
17 #include "trace-controlPoints.h"
18 #include "LBDatabase.h"
19 #include "controlPoints.h"
20 #include "pathHistory.h"
21 #include "arrayRedistributor.h"
22
23
24 /**
25  *  \addtogroup ControlPointFramework
26  *   @{
27  *
28  */
29
30 #if CMK_WITH_CONTROLPOINT
31
32
33 using namespace std;
34
35
36
37 /// The index in the global array for my top row  
38 int redistributor2D::top_data_idx(){ 
39   return (data_height * thisIndex.y) / y_chares; 
40
41  
42 int redistributor2D::bottom_data_idx(){ 
43   return ((data_height * (thisIndex.y+1)) / y_chares) - 1; 
44
45  
46 int redistributor2D::left_data_idx(){ 
47   return (data_width * thisIndex.x) / x_chares; 
48
49  
50 int redistributor2D::right_data_idx(){ 
51   return ((data_width * (thisIndex.x+1)) / x_chares) - 1; 
52
53  
54 int redistributor2D::top_neighbor(){ 
55   return (thisIndex.y + y_chares - 1) % y_chares; 
56 }  
57    
58 int redistributor2D::bottom_neighbor(){ 
59   return (thisIndex.y + 1) % y_chares; 
60
61    
62 int redistributor2D::left_neighbor(){ 
63   return (thisIndex.x + x_chares - 1) % x_chares; 
64
65  
66 int redistributor2D::right_neighbor(){ 
67   return (thisIndex.x + 1) % x_chares; 
68
69   
70   
71 /// the width (X dimension) of the non-ghost part of the local partition 
72 int redistributor2D::mywidth(){ 
73   if(thisElemActive)
74     return right_data_idx() - left_data_idx() + 1; 
75   else
76     return 0;
77
78    
79    
80 /// the height (Y dimension) of the non-ghost part of the local partition 
81 int redistributor2D::myheight(){ 
82   if(thisElemActive)
83     return bottom_data_idx() - top_data_idx() + 1; 
84   else
85     return 0;
86
87
88
89
90
91
92
93 /*! @} */
94
95 #endif