cxPyrDictLookup - determine the index of a pyramid in a finite element pyramid dictionary
#include <cx/Pyramid.h>

long cxPyrDictLookup(cxPyramid *pyr, cxPyramidDictionary *dict, long nVert, long *vertices )
integer function cxPyrDictLookup( pyr, dict, nVert, vertices )
integer pyr, dict, nVert, vertices(nVert)
The target pyramid to be looked up in the dictionary.
The dictionary of reference finite element pyramids.
The number of vertices in pyr.
On output, the 0-based permutation vector for the target vertices necessary to comply with the located reference pyramid structure.
Returns an integer index into the pyramid dictionary, or -1 if the input pyr was not found in the dictionary. cxPyrDictLookup searches the input pyramid dictionary dict to find a reference pyramid that is identical to pyr up to vertex relabelling. If such a reference pyramid is found, its index in the dictionary table is returned and the vertex relabelling is stored in vertices. If no such reference pyramid is found, an index of -1 is returned. cxPyrDictLookup is the computational kernel of cxPyrCompress, which attempts to find each pyramid element in the working dictionary, then augments the dictionary if necessary to accommodate newly found elements. cxPyrDictLookup computes a graph isomorphism test to determine if there is a vertex relabeling of the input pyr that matches with the reference pyramid taken from the dictionary. This test may require time that grows exponentially in the number of vertices of the input pyramid. Some preprocessing is performed to weed out dictionary elements that have incorrect numbers of vertices before proceeding to the computational intensive graph isomorphism test. The small amount of internal storage allocated for preprocessing may be freed by calling cxPyrDictLookup with a NULL pyr or dict argument. cxPyramid(3E), cxPyrDictDefault(3E).
Last modified: Mon Nov 6 16:33:44 GMT 2000
[ Documentation Home ]
© The Numerical Algorithms Group Ltd, Oxford UK. 1999