.. index:: pair: namespace; primitive .. _doxid-namespaceprimitive: namespace primitive =================== .. toctree:: :hidden: Overview ~~~~~~~~ Functions for generating primitive rings. :ref:`More...` .. ref-code-block:: cpp :class: doxyrest-overview-code-block namespace primitive { // structs struct :ref:`Graph`; struct :ref:`Vertex`; // classes class :ref:`RingUpdater`; } // namespace primitive .. _details-namespaceprimitive: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ Functions for generating primitive rings. This namespace contains struct definitions and functions that are used for generating primitive (shortest-path) rings (directed cyclic graphs). The :ref:`Vertex ` object is a collection of elements for each point, required for graph traversal. The :ref:`Graph ` object is an object for the whole frame, containing the information of all vertices, and a row-ordered vector of vector of the rings generated. The `Franzblau shortest-path criterion `__ has been used. The SP (shortest-path) criterion is midway between the least restrictive and most restrictive criteria in the hierarchy. The following is the procedure for finding primitive rings: #. All possible rings (including non-SP) rings are found, in the :ref:`primitive::countAllRingsFromIndex ` function, using the `backtracking algorithm `__. This is a recursive algorithm. #. The non-SP rings are then removed from the list of all rings, using the Franzblau shortest path criterion (:ref:`primitive::removeNonSPrings `), answered by a hop-bounded breadth-first sweep per vertex. .. _doxid-namespaceprimitive_1autotoc_md5_1s1: .. _doxid-namespaceprimitive_1autotoc_md5_1s2: .. _doxid-namespaceprimitive_1autotoc_md5: Changelog +++++++++ * Amrita Goswami [`amrita16thaug646@gmail.com `__]; date modified: Nov 14, 2019 * Rohit Goswami [`rog32@hi.is `__]; date modified: Mar 20, 2021