#include <stdio.h>

#define NUM_NODES		8
#define BIN_LEN			3		/* This should be log2(NUM_NODES) */

main()
{
	int m;
	int i, j, k;

	for(i=0; i<NUM_NODES; i++)
	{
		m=1;

		printf("For node %d\n", i);
		for(k=0; k<BIN_LEN; k++)
		{
			/* Find largest m possible */
			if(i<2*m && i >= m)
			{
				printf("\tReceiving from node %d\n", i - m);
				/* receive(i-m, message); */
	
				m*=2;
				for(j=k+1; j<BIN_LEN; j++)
				{
					printf("\t\tSending to %d\n", i+m);
					/* send(i+m, message) */
					m *=2;
				}
				printf("\n");
			}
			else
				m *= 2;
		} /* for k */
	} /* for i */
} /* main */
