diff --git a/doc/differential_algebra.dox b/doc/differential_algebra.dox
index ed6a65078..502017929 100644
--- a/doc/differential_algebra.dox
+++ b/doc/differential_algebra.dox
@@ -31,7 +31,7 @@
\page differential_algebra_page Differential Algebra and Automatic Differentiation
This page describes the mathematical framework of differential algebra, and the algorithms of automatic differentiation.
-For details on how this is implemented in %Ariadne, see the \ref DifferentiationModule documentation.
+For details on how this is implemented in %Ariadne, see the \ref DifferentiationSubModule documentation.
\b References
- Andreas Griewank and Andrea Walther, Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation , SIAM, 2008. ISBN 0-89871-659-4
diff --git a/doc/linear_algebra.dox b/doc/linear_algebra.dox
index 71c72f639..04e5893bf 100644
--- a/doc/linear_algebra.dox
+++ b/doc/linear_algebra.dox
@@ -32,7 +32,7 @@
\page linear_algebra_page Linear Algebra
This page describes the basic data structures and mathematical algorithms of computational linear algebra.
-For details on how this is implemented in %Ariadne, see the \ref LinearAlgebraModule documentation.
+For details on how this is implemented in %Ariadne, see the \ref LinearAlgebraSubModule documentation.
\b References
- David C. Lay, Linear Algebra and its Applicatons, Addison-Wesley, 2002. ISBN 0-20170-970-8
diff --git a/doc/logic.dox b/doc/logic.dox
index fa4c7908e..053681908 100644
--- a/doc/logic.dox
+++ b/doc/logic.dox
@@ -34,7 +34,7 @@ namespace Ariadne {
\page logic_page %Logical Foundations
This page describes the logical foundations of computable analysis.
-For details on how this is implemented in %Ariadne, see the \ref LogicalModule documentation.
+For details on how this is implemented in %Ariadne, see the \ref LogicSubModule documentation.
The foundations of computability theory underpinning this material is described on the \ref computable_analysis_page page.
For information about computability theory for real numbers, see the \ref real_numbers_page page.
diff --git a/doc/modules.dox b/doc/modules.dox
index 404fdd0ad..35eba07cf 100644
--- a/doc/modules.dox
+++ b/doc/modules.dox
@@ -1,7 +1,7 @@
/***************************************************************************
* modules.dox
*
- * Copyright 2006-20 Pieter Collins
+ * Copyright 2006-24 Pieter Collins
*
****************************************************************************/
@@ -81,9 +81,45 @@ namespace Ariadne {
-
-/*!\defgroup LogicalModule Logical Module
+/*! \defgroup FoundationsModule Foundations Module
* \ingroup CoreModules
+ *
+ * \brief Foundational classes for information, logic, and general topology.
+ */
+
+
+
+/*!\defgroup InformationSubModule Information
+ * \ingroup FoundationsModule
+ * \brief Tag classes describing the information provided by a type, notably \ref ExactTag, as \ref EffectiveTag, \ref ValidatedTag and \ref ApproximateTag.
+ * \details For the mathematical theory of computable analysis and kinds of information, see the \ref computable_analysis_page Page.
+ *
+ * \anchor information_section
+ *
+ * In order to indicate the kind of guarantees on the approximation provided by a concrete object,
+ * every type in %Ariadne has an associated Paradigm tag, denoted by the tempate parameter \c P.
+ * The \ref ExactTag indicates that the object represents a value exactly, and with decidable equality.
+ * The \ref EffectiveTag indicates that an object allows approximations to be computed to arbitrary, known accuracy.
+ * The \ref ValidatedTag indicates that the objects provides an approximation with guarantees on the error, such as lower- and upper-bounds, or an error bound.
+ * The \ref ApproximateTag indicates that the object is an approximation with no guarantees on the accuracy.
+ *
+ * Whenever the paradigm tag P occurs as a template parameter, a type alias is given in which the type is prefixed by the tag name. For example, \ref Number "Number" has alias \ref Number::ValidatedNumber "ValidatedNumber", and \ref Function "Function" has alias \ref EffectiveFunction "EffectiveFunction".
+ *
+ * \remark In a future version of %Ariadne, it may be the case that information tags are replaced by template prefixes, so \ref Number "Number" becomes Validated.
+ *
+ * \subsection builtin_type_tag_section Builtin type tag
+ *
+ * %Ariadne also needs to handle built-in C++ types, notably \c Bool, \c Int and \c double (floating-point) classes.
+ * Since C++ internally allows unsafe and inexact conversions e.g
+ * \code Int n=1.5; // n is set to 1! \endcode
+ * and
+ * \code double x=1.3; // x not exactly equal to 1.3! \endcode
+ * care must be taken when using these objects. The \ref BuiltinTag tag is used to describe these objects.
+ * %BuiltinTag objects should be immediately converted to %Ariadne objects in user code.
+ */
+
+ /*!\defgroup LogicalSubModule Logic
+ * \ingroup FoundationsModule
* \brief Logical types, including \ref Boolean, \ref Sierpinskian and \ref Kleenean types.
* \details For the mathematical theory of non-Boolean and constructive logic, see the \ref logic_page Page.
*
@@ -150,8 +186,8 @@ namespace Ariadne {
*/
-/*!\defgroup TopologySubModule Topology Module
- * \ingroup CoreModules
+/*!\defgroup TopologySubModule Topology
+ * \ingroup FoundationsModule
* \brief Topological constructs, including \ref Bounds "Bounds" and \ref Ball "Ball" types, and general constructions.
* \details For the mathematical theory of computable topology, see the \ref topology_page Page.
*
@@ -159,34 +195,6 @@ namespace Ariadne {
* The main classes are \ref Ariadne::Bounds "Bounds", with subtypes \ref LowerBound "LowerBound" and \ref UpperBound "UpperBound", and \ref Ariadne::Ball "Ball".
*/
-/*!\defgroup InformationSubModule Information Module
- * \ingroup CoreModules
- * \brief Tag classes describing the information provided by a type, notably \ref ExactTag, as \ref EffectiveTag, \ref ValidatedTag and \ref ApproximateTag.
- * \details For the mathematical theory of computable analysis and kinds of information, see the \ref computable_analysis_page Page.
- *
- * \anchor information_section
- *
- * In order to indicate the kind of guarantees on the approximation provided by a concrete object,
- * every type in %Ariadne has an associated Paradigm tag, denoted by the tempate parameter \c P.
- * The \ref ExactTag indicates that the object represents a value exactly, and with decidable equality.
- * The \ref EffectiveTag indicates that an object allows approximations to be computed to arbitrary, known accuracy.
- * The \ref ValidatedTag indicates that the objects provides an approximation with guarantees on the error, such as lower- and upper-bounds, or an error bound.
- * The \ref ApproximateTag indicates that the object is an approximation with no guarantees on the accuracy.
- *
- * Whenever the paradigm tag P occurs as a template parameter, a type alias is given in which the type is prefixed by the tag name. For example, \ref Number "Number" has alias \ref Number::ValidatedNumber "ValidatedNumber", and \ref Function "Function" has alias \ref EffectiveFunction "EffectiveFunction".
- *
- * \remark In a future version of %Ariadne, it may be the case that information tags are replaced by template prefixes, so \ref Number "Number" becomes Validated.
- *
- * \subsection builtin_type_tag_section Builtin type tag
- *
- * %Ariadne also needs to handle built-in C++ types, notably \c Bool, \c Int and \c double (floating-point) classes.
- * Since C++ internally allows unsafe and inexact conversions e.g
- * \code Int n=1.5; // n is set to 1! \endcode
- * and
- * \code double x=1.3; // x not exactly equal to 1.3! \endcode
- * care must be taken when using these objects. The \ref BuiltinTag tag is used to describe these objects.
- * %BuiltinTag objects should be immediately converted to %Ariadne objects in user code.
- */
/*!
* \defgroup NumericModule Numeric Module
@@ -314,9 +322,16 @@ namespace Ariadne {
* \details In Python, the C++ operator is used as a function, e.g. \c 1.23_pr is replaced by \c pr_(1.23) .
*/
+
/*!
- * \defgroup LinearAlgebraModule Linear Algebra Module
+ * \defgroup AlgebraModule Algebra Module
* \ingroup CoreModules
+ * \brief Algebraic data types, notably for linear algebra and differential algebra.
+ */
+
+/*!
+ * \defgroup LinearAlgebraSubModule Linear Algebra Submodule
+ * \ingroup AlgebraModule
* \brief \ref Vector "Vector", \ref Matrix "Matrix" and \ref Tensor "Tensor" classes,
* solution of linear equations, LU and QR factorisation and singular value decomposition.
*
@@ -347,8 +362,8 @@ namespace Ariadne {
*
*/
-/*!\defgroup DifferentiationModule Differentiation Module
- * \ingroup CoreModules
+/*!\defgroup DifferentiationSubModule Differentiation Submodule
+ * \ingroup AlgebraModule
* \brief Support for automatic differentiation using Taylor expansions, including the general \ref Differential "Differential" class, fixed-order \ref FirstDifferential "FirstDifferential" and \ref SecondDifferential "SecondDifferential", and \ref UnivariateDifferential "UnivariateDifferential" classes.
*
* \details For the mathematical theory of automatic differentiation, see the \ref differential_algebra_page Page.
@@ -463,19 +478,8 @@ namespace Ariadne {
* \ingroup GeometryModule
* \brief Denotable sets based on arbitrary lists of elements.
*
- * \defgroup HybridSetSubModule Hybrid sets
+ * \defgroup DiscretisedSetSubModule Discretised sets
* \ingroup GeometryModule
- * \ingroup HybridModules
- * \brief Sets in spaces with many components.
- *
- * The state space of a hybrid system consists of many disconnected components,
- * one for each discrete mode. Hybrid sets consist of a union of many different
- * sets, one for each component of the state space.
- */
-
-
-/*!\defgroup StorageModule Storage Module
- * \ingroup CoreModules
* \brief Classes for representing discretised sets
*
* A subdivision tree is a binary tree describing a subdivision of
@@ -565,6 +569,15 @@ namespace Ariadne {
* \brief Hybrid system classes.
*/
+/*! \defgroup HybridSetSubModule Hybrid sets
+ * \ingroup HybridModules
+ * \brief Sets in spaces with many components.
+ *
+ * The state space of a hybrid system consists of many disconnected components,
+ * one for each discrete mode. Hybrid sets consist of a union of many different
+ * sets, one for each component of the state space.
+ */
+
/*! \defgroup HybridDynamicsSubModule Hybrid evolution
* \ingroup HybridModules
* \brief Classes and functions for analysing hybrid dynamic systems.
diff --git a/doc/python_module_demonstrations.dox b/doc/python_module_demonstrations.dox
index a2c070493..74ecb779a 100644
--- a/doc/python_module_demonstrations.dox
+++ b/doc/python_module_demonstrations.dox
@@ -155,7 +155,7 @@ and the \ref Approximation classes support approximate arithmetic.
As well as matrix and vector arithmetic, %Ariadne provides a \c solve routine for solving systems of linear equations:
\skipline solve
-\sa \ref LinearAlgebraModule
+\sa \ref LinearAlgebraSubModule
diff --git a/source/algebra/covector.hpp b/source/algebra/covector.hpp
index 38258361b..f368aa695 100644
--- a/source/algebra/covector.hpp
+++ b/source/algebra/covector.hpp
@@ -61,7 +61,7 @@ template struct CovectorExpression : public DeclareCovectorOperations {
template struct CovectorContainer : public CovectorExpression { };
-//! \ingroup LinearAlgebraModule
+//! \ingroup LinearAlgebraSubModule
//! \brief A covector (dual to a vector, or a row vector) over some type \a X.
template class Covector
: public CovectorContainer>
diff --git a/source/algebra/diagonal_matrix.hpp b/source/algebra/diagonal_matrix.hpp
index 9ff5d4dd9..a52d5b8d4 100644
--- a/source/algebra/diagonal_matrix.hpp
+++ b/source/algebra/diagonal_matrix.hpp
@@ -187,7 +187,7 @@ struct DiagonalMatrixOperations {
};
-//! \ingroup LinearAlgebraModule
+//! \ingroup LinearAlgebraSubModule
//! \brief Diagonal matrices over some type \a X.
template class DiagonalMatrix
: DiagonalMatrixOperations
diff --git a/source/algebra/differential.hpp b/source/algebra/differential.hpp
index d51a734b6..898a5fc78 100644
--- a/source/algebra/differential.hpp
+++ b/source/algebra/differential.hpp
@@ -76,7 +76,7 @@ template inline DifferentialFactory factory(Differential const& d
-//! \ingroup DifferentiationModule
+//! \ingroup DifferentiationSubModule
//! \brief A class representing the partial derivatives of a scalar quantity
//! depending on multiple arguments.
//!
diff --git a/source/algebra/fixed_differential.hpp b/source/algebra/fixed_differential.hpp
index 57737eb15..83c934b9b 100644
--- a/source/algebra/fixed_differential.hpp
+++ b/source/algebra/fixed_differential.hpp
@@ -130,7 +130,7 @@ template class FixedDifferentialCharacteristics {
X zero_coefficient() const { return this->_zero_coefficient; }
};
-//! \ingroup DifferentiationModule
+//! \ingroup DifferentiationSubModule
//! \brief A class representing the partial derivatives of a scalar quantity
//! depending on multiple arguments.
//!
@@ -409,7 +409,7 @@ class Vector< FirstDifferential >
-//! \ingroup DifferentiationModule
+//! \ingroup DifferentiationSubModule
//! \brief A class representing the partial derivatives of a scalar quantity
//! depending on multiple arguments.
//!
diff --git a/source/algebra/fixed_univariate_differential.hpp b/source/algebra/fixed_univariate_differential.hpp
index a6e94486c..2ce0ea3a3 100644
--- a/source/algebra/fixed_univariate_differential.hpp
+++ b/source/algebra/fixed_univariate_differential.hpp
@@ -35,7 +35,7 @@ namespace Ariadne {
template class DifferentialFactory;
-//! \ingroup DifferentiationModule
+//! \ingroup DifferentiationSubModule
//! \brief A class representing the value and derivative of a scalar quantity
//! depending on a single argument.
template
@@ -222,7 +222,7 @@ template struct AlgebraOperations,X> {
-//! \ingroup DifferentiationModule
+//! \ingroup DifferentiationSubModule
//! \brief A class representing the value, first and second derivatives of a scalar quantity
//! depending on a single argument.
template
diff --git a/source/algebra/matrix.hpp b/source/algebra/matrix.hpp
index 19c62b32e..c7dd286d9 100644
--- a/source/algebra/matrix.hpp
+++ b/source/algebra/matrix.hpp
@@ -117,7 +117,7 @@ class DispatchMatrixOperations {
};
*/
-//! \ingroup LinearAlgebraModule
+//! \ingroup LinearAlgebraSubModule
//! \brief Matrices over some type \a X.
template class Matrix
: public MatrixContainer>
@@ -249,7 +249,7 @@ template OutputStream& operator<<(OutputStream& os, M const
/************ Combinatorial Matrices *********************************************************/
-//! \ingroup LinearAlgebraModule
+//! \ingroup LinearAlgebraSubModule
//! \brief Permutation matrices defined as a sequence of transpositions.
//! \details Pre-multiplying a matrix \f$A\f$ by the pivot matrix with pivots \f$[p_0,p_1,\ldots,p_{n-1}]\f$
//! first swaps row \f$0\f$ of \f$A\f$ with row \f$p_0\f$, then row \f$1\f$ of the new matrix with row \f$p_1\geq1\f$ of the new matrix,
@@ -390,7 +390,7 @@ template struct MatrixScalarQuotient {
};
template struct IsMatrixExpression> : True { };
-//! \ingroup LinearAlgebraModule
+//! \ingroup LinearAlgebraSubModule
//! \brief A view into a submatrix of a matrix of class \a M.
//! \see Matrix, Range
template struct MatrixRange
diff --git a/source/algebra/range.hpp b/source/algebra/range.hpp
index b2bf97a0b..dba0e7dd9 100644
--- a/source/algebra/range.hpp
+++ b/source/algebra/range.hpp
@@ -33,7 +33,7 @@
namespace Ariadne {
-//! \ingroup LinearAlgebraModule
+//! \ingroup LinearAlgebraSubModule
//! \brief A range of integer values from a \em start value up to, but not including, a \em stop value.
class Range {
SizeType _start; SizeType _stop;
diff --git a/source/algebra/tensor.hpp b/source/algebra/tensor.hpp
index 2a09f4806..c4beff627 100644
--- a/source/algebra/tensor.hpp
+++ b/source/algebra/tensor.hpp
@@ -45,7 +45,7 @@ template class TensorRow {
T& operator[] (SizeType j) { return _t[Array({_i,j})]; }
};
-//! \ingroup LinearAlgebraModule
+//! \ingroup LinearAlgebraSubModule
//! \brief A rank-\a N tensor with elements of type \a X.
template class Tensor :
public LabelledDrawable2d3dInterface,
diff --git a/source/algebra/univariate_differential.hpp b/source/algebra/univariate_differential.hpp
index 0fe09f3cc..08f5b4b77 100644
--- a/source/algebra/univariate_differential.hpp
+++ b/source/algebra/univariate_differential.hpp
@@ -40,7 +40,7 @@ namespace Ariadne {
template class Series;
template class UnivariateDifferential;
-//! \ingroup DifferentiationModule
+//! \ingroup DifferentiationSubModule
//! \brief Arbitrary-order derivatives with respect to a single argument.
template class UnivariateDifferential
: public DispatchTranscendentalAlgebraOperations,X>
diff --git a/source/algebra/vector.hpp b/source/algebra/vector.hpp
index e5d7c765e..d1c4803b6 100644
--- a/source/algebra/vector.hpp
+++ b/source/algebra/vector.hpp
@@ -42,7 +42,7 @@
namespace Ariadne {
-//! \ingroup LinearAlgebraModule
+//! \ingroup LinearAlgebraSubModule
//! \brief A scalar of type \a X; defined as an synonym (typedef) of \a X.
template using Scalar = X;
@@ -153,7 +153,7 @@ template struct VectorContainer : public VectorExpression { };
struct DefaultTag { };
-//! \ingroup LinearAlgebraModule
+//! \ingroup LinearAlgebraSubModule
//! \brief Vectors over some type \a X.
//! Corresponds to elements of a \em module over a mathematical \em ring, or a vector space over a field.
//! May also be used if \a X is an \em algebra \a A over another field.
@@ -339,7 +339,7 @@ class Vector
template struct IsVector> : True { };
-//! \ingroup LinearAlgebraModule
+//! \ingroup LinearAlgebraSubModule
//! A view into a subvector of a vector of class \a V.
//! \see Vector, Range
template class VectorRange
diff --git a/source/foundations/logical.hpp b/source/foundations/logical.hpp
index 871c21c7b..fa1af36ad 100644
--- a/source/foundations/logical.hpp
+++ b/source/foundations/logical.hpp
@@ -41,7 +41,7 @@ template class Sequence;
template String class_name();
-//! \ingroup LogicalModule
+//! \ingroup LogicSubModule
//! \brief The amount of work used in performing a calculation or checking a quasidecidable predicate.
//! \details The Effort should roughly reflect the time needed to perform a computation.
//! \sa Accuracy.
@@ -242,9 +242,9 @@ class Indeterminate {
friend OutputStream& operator<<(OutputStream& os, ValidatedKleenean const&);
};
-//! \ingroup LogicalModule
+//! \ingroup LogicSubModule
//! \brief A logical class representing the result of a decidable predicate.
-//! \sa LogicalModule
+//! \sa LogicSubModule
class Boolean : public Logical {
typedef Logical Base;
public:
@@ -274,7 +274,7 @@ class Boolean : public Logical {
};
-//! \ingroup LogicalModule
+//! \ingroup LogicSubModule
//! \brief A logical class representing the result of a verifyable predicate
//! over a continuous (uncountable) data type which has no robustly \c false instances,
//! such as inequality on a Hausdoff space.
@@ -304,7 +304,7 @@ class Sierpinskian : public Logical {
friend Kleenean operator^(Kleenean const& k1, Kleenean const& k2);
};
-//! \ingroup LogicalModule
+//! \ingroup LogicSubModule
//! \brief A logical class representing the result of a verifyable predicate
//! over a continuous (uncountable) data type.
//! \details A canonical example is strict positivity of a real number given only lower bounds to its value,
@@ -401,7 +401,7 @@ class LowerKleenean : public Logical
friend LowerKleenean disjunction(Sequence const& k);
};
-//! \ingroup LogicalModule
+//! \ingroup LogicSubModule
//! \brief A logical class representing the result of a falsifyable predicate
//! over a continuous (uncountable) data type.
class UpperKleenean : public Logical {
@@ -433,7 +433,7 @@ class UpperKleenean : public Logical
LowerKleenean disjunction(Sequence const& lk);
UpperKleenean conjunction(Sequence const& uk);
-//! \ingroup LogicalModule
+//! \ingroup LogicSubModule
//! \brief A logical class representing the result of a undecidable predicate
//! over a continuous (uncountable) data type.
//! \details A canonical example is (strict) positivity of a real number given only a convergent sequence,
@@ -469,7 +469,7 @@ class NaiveKleenean : public Logical {
-//! \sa LogicalModule
+//! \sa LogicSubModule
//! \brief A logical class representing the result of a verifyable predicate, checked to some given effort.
//! \sa Sierpinskian
class ValidatedSierpinskian : public Logical {
@@ -481,7 +481,7 @@ class ValidatedSierpinskian : public Logical {
@@ -493,7 +493,7 @@ class ValidatedNegatedSierpinskian : public Logical {
friend ValidatedKleenean check(Kleenean const& k, Effort e) { return k.check(e); }
};
-//! \ingroup LogicalModule
+//! \ingroup LogicSubModule
//! \brief A logical class representing the result of checking a verifyable predicate.
//! \sa LowerKleenean
class ValidatedLowerKleenean : public Logical {
@@ -525,7 +525,7 @@ class ValidatedLowerKleenean : public Logical {
@@ -540,7 +540,7 @@ class ValidatedUpperKleenean : public Logical class Matrix;
class Real;
-//! \ingroup LinearAlgebraModule
+//! \ingroup LinearAlgebraSubModule
//! \brief A scalar real number. Defined as a synomym for Real.
using RealScalar=Scalar;
-//! \ingroup LinearAlgebraModule
+//! \ingroup LinearAlgebraSubModule
//! \brief A vector of real numbers.
using RealVector=Vector;
-//! \ingroup LinearAlgebraModule
+//! \ingroup LinearAlgebraSubModule
//! \brief A matrix of real numbers.
using RealMatrix=Matrix;
diff --git a/source/geometry/grid_cell.hpp b/source/geometry/grid_cell.hpp
index 377629dea..95641f56d 100644
--- a/source/geometry/grid_cell.hpp
+++ b/source/geometry/grid_cell.hpp
@@ -199,7 +199,7 @@ class GridAbstractCell {
};
//! \ingroup BasicSetSubModule
-//! \ingroup StorageModule
+//! \ingroup DiscretisedSetSubModule
//! \brief A cell of a grid paving. Note that this class represents the closed cell.
//! It is uniquely defined by the path from the primary cell and is exactly on cell in a grid.
//! This is different from the GridOpenCell which is open and the path from the root cell defines
diff --git a/source/geometry/grid_paving.hpp b/source/geometry/grid_paving.hpp
index b4680dab9..86b9baa5a 100644
--- a/source/geometry/grid_paving.hpp
+++ b/source/geometry/grid_paving.hpp
@@ -389,7 +389,7 @@ class GridTreeSubpaving
};
//! \ingroup ListSetSubModule
-//! \ingroup StorageModule
+//! \ingroup DiscretisedSetSubModule
//! \brief The %GridTreePaving class represents a set of cells with mixed integer and dyadic coordinates.
//! The cells can be enabled or disabled (on/off), indicating whether they belong to the paving or not.
//! It is possible to have cells that are neither on nor off, indicating that they have enabled and
diff --git a/source/geometry/paving_interface.hpp b/source/geometry/paving_interface.hpp
index 584026536..3bc2fc23c 100644
--- a/source/geometry/paving_interface.hpp
+++ b/source/geometry/paving_interface.hpp
@@ -112,7 +112,7 @@ class SubPavingHandle;
class PavingInterface;
class SubPavingInterface;
-//! \ingroup StorageModule
+//! \ingroup DiscretisedSetSubModule
//! \brief A prototype interface for subpavings.
//! \details A sub-paving is a paving-type set which is the restriction of another paving to a cell, called the \em root_cell of the subpaving.
//! In general, a sub-paving supports the non-modifying operations of a paving.
@@ -187,7 +187,7 @@ inline Bool operator==(const SubPavingInterface& p1, const SubPavingInterface& p
inline Bool subset(const SubPavingInterface& p1, const SubPavingInterface& p2) { return p1.subset(p2); }
inline Bool intersect(const SubPavingInterface& p1, const SubPavingInterface& p2) { return p1.intersects(p2); }
-//! \ingroup StorageModule
+//! \ingroup DiscretisedSetSubModule
//! \brief A generic forward Iterator through constant data.
//! \details Since the Iterator is through constant data, the data may be safely be returned by value rather than by reference,
//! though this is not strictly standards-conforming, and means that operator->() cannot be provided.
@@ -231,7 +231,7 @@ inline SubPavingHandle SubPavingInterface::branch(Bool left_or_right) const { re
-//! \ingroup StorageModule
+//! \ingroup DiscretisedSetSubModule
//! \brief A paving, which is a set constructed as a finite union of non-overlapping cells, where the possible cells are obtained by successive subdivision.
class PavingInterface
: public virtual SubPavingInterface
@@ -251,7 +251,7 @@ class PavingInterface
virtual Void remove(const GridCell& cell) = 0; // Deprecated?
};
-//! \ingroup StorageModule
+//! \ingroup DiscretisedSetSubModule
class PavingHandle
{
PavingInterface* _ptr;