From 10134713cdfc43f7f0106d7281227be33c2994e8 Mon Sep 17 00:00:00 2001 From: Pieter Collins Date: Mon, 9 Dec 2024 13:49:42 +0100 Subject: [PATCH] Reorganised documentation, adding Foundations module, and merged Storage module into Geometry module. --- doc/differential_algebra.dox | 2 +- doc/linear_algebra.dox | 2 +- doc/logic.dox | 2 +- doc/modules.dox | 109 ++++++++++-------- doc/python_module_demonstrations.dox | 2 +- source/algebra/covector.hpp | 2 +- source/algebra/diagonal_matrix.hpp | 2 +- source/algebra/differential.hpp | 2 +- source/algebra/fixed_differential.hpp | 4 +- .../algebra/fixed_univariate_differential.hpp | 4 +- source/algebra/matrix.hpp | 6 +- source/algebra/range.hpp | 2 +- source/algebra/tensor.hpp | 2 +- source/algebra/univariate_differential.hpp | 2 +- source/algebra/vector.hpp | 6 +- source/foundations/logical.hpp | 30 ++--- source/function/function.decl.hpp | 6 +- source/geometry/grid_cell.hpp | 2 +- source/geometry/grid_paving.hpp | 2 +- source/geometry/paving_interface.hpp | 8 +- 20 files changed, 105 insertions(+), 92 deletions(-) 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;