NAME

cxConnRemap - remove connections to a cleaned pyramid layer
#include <cx/Pyramid.h>

void cxConnRemap(cxConnection *conn, int *mark, long mlen)
subroutine cxConnRemap(conn, mark, mlen)
integer conn
integer mark(*)
integer mlen
conn
Input connection data structure.
mark
Input Boolean array specifying which elements are kept at the next layer.
mlen
Input length of the mark array.
cxConnRemap takes a cxConnection structure and an array of markers for the connection indices. The routine rewrites the conn->connection array to reflect the action of cxPyrLayerClean on the next lower layer in the pyramid (the destination of the conn->connection array).

For instance, assume that conn[i] is non-zero and this is the jth marked entry. On return from cxConnRemap, all entries in conn->connection that previously contained the value i will now contain the value j. Assuming that the next lower layer in the pyramid was processed with cxPyrLayerClean and the same mark array, this resulting connection array will be consistent with the next pyramid layer.

Entries in conn->connection for which the mark array is zero are not modified. In order to remove these inconsistent elements, it is best to use cxPyrActivePrev to propagate the mark array to the current layer and then call cxPyrLayerClean on the current layer to remove those elements with inconsistent connections. For instance, if conn->connection[k] equals i, but mark[i] is zero, then conn->connection[k] will be left unchanged by this routine; its reference to i will then be inconsistent with the pyramid labelling.

mark must be an array of length mlen and it must not be NULL.

cxPyrActivePrev(3E), cxPyrClean(3E), cxPyrLayerClean(3E)
Last modified: Mon Nov 6 16:32:59 GMT 2000
[ Documentation Home ]
© The Numerical Algorithms Group Ltd, Oxford UK. 1999