previous contents index next
(..Functions..) Contents Index (Acc. Single Reg...)

2.8.3 Boolean Functions (BoolFunctionCall)

BoolFunctionCall - Syntax:

 
isborder( NeighbourIdentifier )
This function is only available within the statement part of SDL programs. There it finds out whether the neighbour of the current site labeled by NeighbourIdentifier is within the range of the retina. If not, it is an element of the border and the function returns TRUE; otherwise isborder() is FALSE.

 
Example 23:

Having the isborder() function it is easy to construct lattices with inhomogeneous boundary conditions, for example tori. All we have to do is to enlarge the neighbourhood and to manipulate the local rule a bit: Suppose that the retina will be stuck together in the i-th coordinate direction, and suppose that ij is the retina's extension in this direction. Then for each neighbour with non-zero i-th component a new one must be added to the neighbourhood, where the i-th component is exchangend with the smallest equivalent element with inverse sign of the cyclical group (Zij ,+); or to express it in unformal terms: each neighbour which will be "on the other side of the gap" for some sites must be described twice, "clockwise" and "counter-clockwise".
Besides, the critical passages of the local rule table are supplied with entries that check whether the neighbour lies on the border and then activate the substitute.
 

We are now going to have a look at a torus that developed from a two-dimensional retina [0,0]..[9,4] by sticking the x1-coordinates together, and a rule which shifts the whole pattern ''clockwise'' in x1 direction, two sites further each time step:


SIGMA torus;

DIMENSION 2;          /* 2-dimensional retina */

REGISTER INT state;        /* integer register state */

NEIGHBOUR 
            l_left : (-2,0);                /* neighbour */
            l_left_behind_border : (8,0);   /* substitute */

TABLE

     isborder(l_left); : SELF=l_left_behind_border; :

     /* otherwise */   : SELF=l_left; : 

Torus

Fig. 8: Two possibilities to describe the neighbour n of z on the torus.

Source Code: torus.sdl
torus.rdl

previous contents index next
(..Functions..) Contents Index (Acc. Single Reg...)