10.3.3.5 Miscellaneous other Projection Types

The OneToOnePrjnSpec simply connects units in a one-to-one fashion. This is typically for the entire set of units, but can be controlled by setting the n_conns, recv_start and send_start parameters, which specify the total number of connections to make and starting offsets.

The SymmetricPrjnSpec makes receiving connections to units in the sending layer that are already receiving connections from units in the receiving layer. Thus, it makes symmetric connectivity where another projection spec has defined the pattern from the other set of units. Note that the other projection spec must be associated with a layer that comes before the one this spec is on, otherwise it will not have any connections to copy from.

The ScriptPrjnSpec uses a CSS script to create the connections. It contains an s_args array of Strings which are passed to script as arguments (see section 7 Guide to the Script Language (CSS)). Any arbitrary form of connectivity can be described by writing the appropriate script. Several useful functions on the unit are available for making connections, including ConnectFrom, which takes the sending unit and the projection as arguments, and returns the connection and the two connection groups associated with it.

The CustomPrjnSpec is used when the connectivity between units is hand assembled. Thus it does not specify a connectivity function, and therefore performs no actions when the Build command is called on a Network.

The LinkPrjnSpec does not create any connections itself. Instead, it turns existing connections into linked connections. The connections to be linked are specified by the layer name and unit index for both the sending and receiving units. The connection function then finds the connection that connects these two units, and links it in with the other ones. The first connection specified is the "owner" of the connection, and its weight values are the ones that are used. The links member is the list of connections to be linked together. This type of projection spec, since it does not create any projections itself, is typically assigned to a "dummy" self projection on one of the affected layers.