void checkExclusivity( BitSet[] barray ) throws Exception
    {
        for ( int i=0;i<barray.length;i++ )
        {
            for ( int j=0;j<barray.length;j++ )
            {
                if ( i != j )
                {
                    BitSet bs = new BitSet();
                    bs.or( barray[i] );
                    bs.and(barray[j]);
                    if ( bs.cardinality()!=0 )
                        throw new Exception("bitsets not mutually exclusive");
                }
            }
        }
    }