Revision 8be9a92656b22692268b07c916c2c521de258977 authored by Tom Quinn on 29 June 2012, 22:53:33 UTC, committed by Tom Quinn on 02 September 2016, 04:35:19 UTC
Change-Id: Ie70c17a09b70be7ab7f769b6122910b821ef1f38
1 parent 648ae51
Raw File
ScaleTranMapBG.h
#include <deque>
#include <iostream>
#include <vector>

#include "charm++.h"

using namespace std;

class ScaleTranMapBG{
#ifdef CMK_VERSION_BLUEGENE
	BGLTorusManager *manager;
#else
	bool isVnodeMode;
#endif
	int xsize,ysize,zsize;
        int collisions;
	Cluster *clusterArray;
	int nClusters;
	
	inline void translate(Vector3D<float> &vec, float xdist, float ydist, float zdist);
	inline void scale(Vector3D<float> &vec, int xlen, int ylen, int zlen);
	void roundOff(Vector3D<float> &vec);

	int map(Vector3D<float> &vec, int numprocs, bool *avail, int *ringRadius);
	void enqueueNeighbors(int x, int y, int z, deque<int> &q, int dist);
	
	public:
	void assign(int *from, double *clusterWeights, CkVec<int> &to, int numobjs, int numprocs);
        CkVec <TaggedVector3D> tpCentroids;
        bool isNeighborOf(int pe1, int pe2);
};
back to top