Listing 2

// 2D - bit packed array: Instantiation and test driver


#include "bitarray.hpp"

const int xsize = 5;
const int ysize = 5;
const int num_bits = 4;

main() {
    int i, j, tmp;

    Bit_2D_Array< xsize, ysize, hum bits > A;
    Bit_2D_Array< xsize, ysize, num_bits > B;

    A = 0;
    B = 0;

    A(0,0) = 0;
    A(1,0) = 1;
    A(1,2) = 2;
    A(3,0) = 3;

    B(0,0) = 0;
    B(1,0) = 1;
    B(1,2) = 2;
    B(3,0) = 11; // too large for 2 bits == 3, 4 bits is 0K

    if ( A == B) {
        cout <<" A == B" << endl;
    }
    else {
        cout <<" A != B" << endl;
    };

    B = 0;

    for( i=0; i < xsize; i++) {
        B( i, i ) = 1;
    }
    for( i=0; i < xsize; i++) {
        B( i, ( ysize - 1) - i ) = 2;
    }
    for( i=0; i < xsize; i++) {
        B( i, ysize - 1 ) = 3;
    }
    for( i=0; i < xsize; i++) {
        B( xsize - 1, i ) = 4;
    }

    B.dump();

    // Transpose matrix to show that board() = board() is 0K
    for( i=0; i<xsize; i++) {
        for( j=0; j<i; j++) {
            tmp= B(i,j);
            B(i,j) = B(j,i);
            B(j,i) = tmp;
        }
    };
    B.dump();
}

// End of File