Next: Functions and Index Flags Up: Indexing and Functions Previous: Indexing and Functions   Contents

## Indexing and Ordering

We adopt the convention that, if a block design has points, then the points are the integers . This is a combination of two assumptions: the points are ordered; and the index set starts at 0 (rather than 1).

There are several choices of ordering of sets (or multisets) of points. We have chosen to order in the following way:

• first compare the length of the two lists; the shorter comes first.

• for lists of the same length, we order lexicographically. (Recall that the lists are sorted.)

So for example, here are a few sets in order:

For the purpose of defining functions on the collection of blocks, we now index these blocks from 0 to , where is the number of blocks of the design. If the above list contains all the blocks of a certain design , then we can refer to block 5 of , which will be the set in this case.

The same principle can be extended to lists of lists. Assuming that the inner'' lists are already ordered, we first compare the length of the two lists, and if they are equal, we order the lists lexicographically'' (with the order previously defined between list elements). This process can be continued recursively to any level of nesting.

However, we do not require that this ordering is adhered to throughout the tree. The following objects may be required to be ordered (they have a boolean attribute ordered):

• blocks

• function_on_indices

• function_on_ksubsets_of_indices

• cycle_type

Functions on indices, and on k-subsets of indices, are described next. For cycle types, see the section 7.4 on Automorphisms.

Next: Functions and Index Flags Up: Indexing and Functions Previous: Indexing and Functions   Contents
Peter Dobcsanyi 2003-12-15