Skip to content

Commit 5e538db

Browse files
committed
better group descriptions
1 parent 5b3e772 commit 5e538db

1 file changed

Lines changed: 51 additions & 33 deletions

File tree

docs/groups.dox

Lines changed: 51 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,85 @@
11
/// @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.
33
///
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.
78

89
/// @defgroup GL-Core Core Graph Components
910
/// @ingroup GL
10-
/// @brief Fundamental graph data structures, descriptors, and configuration tags.
11+
/// @brief Fundamental graph data structures, element descriptors, and configuration tags.
1112
///
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.
1520

1621
/// @defgroup GL-Algorithm Graph Algorithms
1722
/// @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.
2029
///
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.
2535

2636
/// @defgroup GL-Topology Graph Topologies
2737
/// @ingroup GL
28-
/// @brief Generators and evaluators for standard graph topologies.
38+
/// @brief Generators and evaluators for standard structural graph topologies.
2939
///
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.
3244

3345
/// @defgroup GL-IO I/O Utility
3446
/// @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.
3648
///
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.
4053

4154
/// @defgroup GL-Traits Traits & Concepts
4255
/// @ingroup GL
43-
/// @brief Type traits, constraints, and metaprogramming utilities.
56+
/// @brief Type traits, template constraints, and compile-time metaprogramming utilities.
4457
///
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.
4862
///
4963
/// @section concepts_link Detailed Concept Specifications
5064
/// For a detailed list of all GL module's concepts and their formal requirements, please refer to
5165
/// the [GL Concepts Documentation](gl_concepts.md#gl-traits-concepts-documentation) page.
5266

5367
/// @defgroup GL-Types Generic Types
5468
/// @ingroup GL
55-
/// @brief Independent, reusable structures and containers.
69+
/// @brief Independent, high-performance data structures and utility types.
5670
///
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.
6077

6178
/// @defgroup GL-Util General Utilities
6279
/// @ingroup GL
63-
/// @brief Practical, domain-agnostic C++ helpers and polyfills.
80+
/// @brief Practical, domain-agnostic C++ helpers, mathematical functions, and polyfills.
6481
///
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

Comments
 (0)