|
1 | 1 | /// @defgroup GL Graph Library (GL) |
2 | | -/// @brief The main module containing the general-purpose template graph library implementation. |
| 2 | +/// @brief The top-level module defining the general-purpose C++ template graph library. |
3 | 3 | /// |
4 | | -/// This module encapsulates all standard graph representations, traversal algorithms, topology |
5 | | -/// generators, and I/O utilities. It is heavily reliant on modern C++ paradigms, leveraging |
6 | | -/// templates and concepts to provide a fast, generic, and type-safe graph API. |
| 4 | +/// This module provides a comprehensive suite of memory-efficient graph representations, |
| 5 | +/// highly customizable algorithms, topology generators, and robust I/O facilities. Designed |
| 6 | +/// strictly around modern C++ paradigms, the library heavily leverages templates and concepts |
| 7 | +/// to deliver an API that is exceptionally fast, generic, and type-safe. |
7 | 8 |
|
8 | 9 | /// @defgroup GL-Core Core Graph Components |
9 | 10 | /// @ingroup GL |
10 | | -/// @brief Fundamental graph data structures, descriptors, and configuration tags. |
| 11 | +/// @brief Fundamental graph data structures, element descriptors, and configuration tags. |
11 | 12 | /// |
12 | | -/// This group contains the primary building blocks of the library, including the main `gl::graph` class, |
13 | | -/// graph element descriptors and the structural tags (i.e., directed vs. undirected and backend |
14 | | -/// implementation tags) used to dictate graph behavior and memory layout. |
| 13 | +/// This group establishes the primary user interface for the library, centered around the highly |
| 14 | +/// configurable @ref gl::graph "graph" class. It provides the core data types, such as vertex |
| 15 | +/// and edge descriptors, required to safely navigate and manipulate graph elements. |
| 16 | +/// |
| 17 | +/// Furthermore, this module defines the declarative tags (e.g., directedness and backend |
| 18 | +/// implementation types) that dictate both the behavioral semantics and the underlying memory |
| 19 | +/// layout of the instantiated graphs. |
15 | 20 |
|
16 | 21 | /// @defgroup GL-Algorithm Graph Algorithms |
17 | 22 | /// @ingroup GL |
18 | | -/// @brief Common graph algorithms and algorithm-related utility. |
19 | | -/// @todo Refine description |
| 23 | +/// @brief Generic graph algorithms, foundational search templates, and related utilities. |
| 24 | +/// |
| 25 | +/// This module provides a dual-layered approach to graph algorithms. At its core, it features highly |
| 26 | +/// generic and extensible search templates (such as BFS, DFS, and Priority-First Search). These |
| 27 | +/// templates serve as the foundational building blocks of the library, empowering users to inject |
| 28 | +/// custom behavior via callbacks and predicates to build entirely new algorithms with minimal effort. |
20 | 29 | /// |
21 | | -/// Provides generic, highly customizable implementations of classic graph algorithms. |
22 | | -/// This includes standard search templates (BFS, DFS, PFS), shortest path finders |
23 | | -/// (Dijkstra), minimum spanning trees (Prim), and topological sorting. Algorithms |
24 | | -/// are designed to operate seamlessly via callbacks and property maps. |
| 30 | +/// Alongside these templates, the module offers a suite of concrete, ready-to-use algorithms. |
| 31 | +/// Rather than a flat list of functions, the algorithms are categorized into broad domains, |
| 32 | +/// including basic graph traversal, pathfinding, minimum spanning trees, and topological |
| 33 | +/// operations like sorting and coloring. All implementations are designed to operate seamlessly |
| 34 | +/// with generic graph types and property maps. |
25 | 35 |
|
26 | 36 | /// @defgroup GL-Topology Graph Topologies |
27 | 37 | /// @ingroup GL |
28 | | -/// @brief Generators and evaluators for standard graph topologies. |
| 38 | +/// @brief Generators and evaluators for standard structural graph topologies. |
29 | 39 | /// |
30 | | -/// A collection of utilities for quickly generating commong graph topologies. |
31 | | -/// This includes cliques (complete graphs), bipartite graphs, binary trees, paths, and cycles. |
| 40 | +/// A collection of lightweight utilities designed to quickly instantiate classic graph topologies. |
| 41 | +/// Featuring out-of-the-box support for cliques (complete graphs), bipartite graphs, binary trees, |
| 42 | +/// paths, and cycles, these generators are ideal for rapid prototyping, algorithm benchmarking, |
| 43 | +/// and automated testing. |
32 | 44 |
|
33 | 45 | /// @defgroup GL-IO I/O Utility |
34 | 46 | /// @ingroup GL |
35 | | -/// @brief I/O stream support, parsing, and range-based formatting. |
| 47 | +/// @brief Comprehensive I/O stream support, parsing algorithms, and range-based formatting. |
36 | 48 | /// |
37 | | -/// Facilities for reading, writing, and formatting graph data. This group provides the stream |
38 | | -/// manipulators, configuration options, and format traits necessary to seamlessly serialize and |
39 | | -/// visualize graph structures, and parse data from standard streams or files. |
| 49 | +/// This group provides the necessary infrastructure to seamlessly serialize, deserialize, and |
| 50 | +/// visualize complex graph structures. By offering a robust set of stream manipulators, formatting |
| 51 | +/// traits, and configuration options, it allows users to easily translate in-memory graphs to |
| 52 | +/// and from standard streams, files, or custom string representations. |
40 | 53 |
|
41 | 54 | /// @defgroup GL-Traits Traits & Concepts |
42 | 55 | /// @ingroup GL |
43 | | -/// @brief Type traits, constraints, and metaprogramming utilities. |
| 56 | +/// @brief Type traits, template constraints, and compile-time metaprogramming utilities. |
44 | 57 | /// |
45 | | -/// Encapsulates the `gl::traits` namespace. These components are used extensively throughout the |
46 | | -/// library to constrain template parameters and interrogate types at compile time (e.g., deducing |
47 | | -/// underlying vertex/edge types, querying graph directedness, or enforcing structural constraints). |
| 58 | +/// Encapsulating the `gl::traits` namespace, these components form the strict conceptual backbone |
| 59 | +/// of the library. They are used extensively to constrain template parameters, safely query type |
| 60 | +/// properties at compile time, and ensure that user-provided graphs and property maps meet |
| 61 | +/// required structural and behavioral contracts. |
48 | 62 | /// |
49 | 63 | /// @section concepts_link Detailed Concept Specifications |
50 | 64 | /// For a detailed list of all GL module's concepts and their formal requirements, please refer to |
51 | 65 | /// the [GL Concepts Documentation](gl_concepts.md#gl-traits-concepts-documentation) page. |
52 | 66 |
|
53 | 67 | /// @defgroup GL-Types Generic Types |
54 | 68 | /// @ingroup GL |
55 | | -/// @brief Independent, reusable structures and containers. |
| 69 | +/// @brief Independent, high-performance data structures and utility types. |
56 | 70 | /// |
57 | | -/// Contains highly generic data structures like `flat_matrix` and `flat_jagged_vector`. |
58 | | -/// While these form the memory backbone of the graph implementations, they are completely |
59 | | -/// decoupled from the graph logic and can be safely utilized in general-purpose programming contexts. |
| 71 | +/// This module houses a variety of general-purpose data structures and types. While it features |
| 72 | +/// highly optimized memory containers (such as @ref gl::flat_matrix "flat_matrix" and |
| 73 | +/// @ref gl::flat_jagged_vector "flat_jagged_vector") that serve as the contiguous-memory backbones |
| 74 | +/// for the library's graphs, it also encompasses other fundamental type utilities. Because all |
| 75 | +/// components in this group are carefully decoupled from graph-specific logic, they can be seamlessly |
| 76 | +/// extracted and utilized in broader C++ programming contexts. |
60 | 77 |
|
61 | 78 | /// @defgroup GL-Util General Utilities |
62 | 79 | /// @ingroup GL |
63 | | -/// @brief Practical, domain-agnostic C++ helpers and polyfills. |
| 80 | +/// @brief Practical, domain-agnostic C++ helpers, mathematical functions, and polyfills. |
64 | 81 | /// |
65 | | -/// While these utilities were built to facilitate the library's internal graph modeling |
66 | | -/// and algorithms, they are completely decoupled from graph theory. They offer highly useful, |
67 | | -/// reusable functionality that can be easily leveraged in any general C++ programming context. |
| 82 | +/// While originally engineered to support the library's internal algorithms and graph modeling |
| 83 | +/// operations, these utilities are completely independent of graph theory semantics. They provide |
| 84 | +/// a curated set of highly reusable, general-purpose tools that can smoothly integrate into any |
| 85 | +/// modern C++ codebase. |
0 commit comments