Charj: Merged changes.
[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
31 using namespace std;
32
33
34
35 /// The index in the global array for my top row  
36 int redistributor2D::top_data_idx(){ 
37   return (data_height * thisIndex.y) / y_chares; 
38
39  
40 int redistributor2D::bottom_data_idx(){ 
41   return ((data_height * (thisIndex.y+1)) / y_chares) - 1; 
42
43  
44 int redistributor2D::left_data_idx(){ 
45   return (data_width * thisIndex.x) / x_chares; 
46
47  
48 int redistributor2D::right_data_idx(){ 
49   return ((data_width * (thisIndex.x+1)) / x_chares) - 1; 
50
51  
52 int redistributor2D::top_neighbor(){ 
53   return (thisIndex.y + y_chares - 1) % y_chares; 
54 }  
55    
56 int redistributor2D::bottom_neighbor(){ 
57   return (thisIndex.y + 1) % y_chares; 
58
59    
60 int redistributor2D::left_neighbor(){ 
61   return (thisIndex.x + x_chares - 1) % x_chares; 
62
63  
64 int redistributor2D::right_neighbor(){ 
65   return (thisIndex.x + 1) % x_chares; 
66
67   
68   
69 /// the width (X dimension) of the non-ghost part of the local partition 
70 int redistributor2D::mywidth(){ 
71   if(thisElemActive)
72     return right_data_idx() - left_data_idx() + 1; 
73   else
74     return 0;
75
76    
77    
78 /// the height (Y dimension) of the non-ghost part of the local partition 
79 int redistributor2D::myheight(){ 
80   if(thisElemActive)
81     return bottom_data_idx() - top_data_idx() + 1; 
82   else
83     return 0;
84
85
86
87
88
89
90
91 /*! @} */
92