#include <stdio.h>

#define SPACING_BITS ((1<<4)|(1<<9)|(1<<14)|(1<<19))
int createVector(int v0, int v1, int v2, int v3)
{
	return v0 | (v1 << 5) | (v2 << 10) | (v3 << 15);
}

int vectorDominates(int vectorA, int vectorB)
{
     // returns 1 if vectorA dominates vectorB:
     return (((vectorA | SPACING_BITS) - vectorB) & SPACING_BITS) == SPACING_BITS;
}

int compare(int vectorA, int vectorB)
{
    if(vectorDominates(vectorA, vectorB))
        return 1;
    else if(vectorDominates(vectorB, vectorA))
        return -1;
    return 0;
}

int main(void) {
	int v1 = createVector(10, 4, 12, 5);
	int v2 = createVector(9, 3, 10, 5);
	int v3 = createVector(3, 9, 10, 5);
	
	printf("v1 dominates v2 %s\n", vectorDominates(v1, v2) ? "yes" : "no");
	printf("v2 dominates v1 %s\n", vectorDominates(v2, v1) ? "yes" : "no");
	printf("v2 dominates v3 %s\n", vectorDominates(v2, v3) ? "yes" : "no");
	printf("v3 dominates v2 %s\n", vectorDominates(v3, v2) ? "yes" : "no");
	
	return 0;
}
