A cut is a set of N nodes such that no node is a descendant of any other node in the cut and such that all leaves descend from a node in the cut. The vector CUT lists the nodes of the binary merge tree PARENT that form the cut.
Nodes with null parent (as defined by PARENTS) are included in the cut if the other nodes are not enough to fill a cut of N elements.
[CUT, MAP] = VL_AIBCUT(...) returns a vector MAP with the same size as PARENTS. MAP assigns each node below or in the cut to the corresponding element in the CUT vector (each element above the cut or with null parent is mapped to 0). To get the index of the corresponding cut nodes use CUT(MAP). MAP can be used to quantize the leaves in a sequences of N contiguous indexes, starting from one (see also VL_AIBCUTPUSH()).
[CUT, MAP, SHORT] = VL_AIBCUT(...) returns also a vector SHORT that represents a version of the PARENTS tree where nodes below the cut are short-circuitied to link to the corresponding cut ancestors directly. Null parents are left unchanged, except if the corresponding node is in the cut (in which case the map-to-itself rule has the precedence).