MAM2000 (Essays/SciAm)

# The Vertexes of the Hypercube

The 16 vertexes of the hypercube in the program are numbered from 0 to 15 according to a simple scheme. If each number is rewritten in binary form and converted into an array of four bits, a miniature coordinate system emerges. The binary digits of 13, for example, are 1 (that is, one 8), 1 (one 4), 0 (zero 2's) and 1 (one 1). The binary number can then be written as the array (1, 1, 0, 1), which almost gives a practical coordinate system for the initial position of the hypercube. (It is not a position that resembles a cube inside another cube.) To convert the binary array into useful coordinates, change the O's to -1's and multiply each member of the array by a number large enough to generate an image of practical size on the display screen of the Computer. If the multiplier is 10, for example, the coordinates of vertex 13 are (10,10,-10,10).

Dimensions seem to creep in everywhere as HYPERCUBE is written. A two-dimensional matrix, or array, called vert preserves the vertexes as they are initially defined. Since there are 16 vertexes with four coordinates each, vert is a 16-by-4 matrix of 64 numbers; vert(i,j) is the jth coordinate of the ith vertex. The program HYPERCUBE holds the matrix vert inviolate; vert is defined at the beginning of the program and its contents are then transferred to a second 16-by-4 matrix called cube. The matrix cube can be thought of as a working matrix; its contents are continually altered by the rotations carried out in the program. [an error occurred while processing this directive]