Example #1
0
	void Projection1D(vector & data, vector strides, vector levels, vector sizes, int size,
					int dim)
	{
		int ndim = levels.size();
		int dsize;
		int stride;

		// Interate through 'start' indicies and project
		vector zsize = sizes;
		zsize.array()-1;
		dsize = size*1.0/sizes(dim);
		vector bit(ndim); bit.fill(0);
		stride = strides(dim);

		for(int i=0; i < sizes(dim); i++)
		{
			int indexstart = bit.dot(strides);
			Projection1DSlice(data, indexstart, stride, dsize, levels(dim));
			gridutils::IncreaseBit(bit, zsize, dim);
		}
		data  = data.array()*gridutils::PowInt(2,levels(dim)-1);



	}