use \cgalCite instead of \cite

using perl -i -pe 's/\\cite\s*{?([a-zA-Z0-9:-]+)}?/\\cgalCite{$1}/g'
This commit is contained in:
Sébastien Loriot 2013-08-05 18:25:26 +02:00
parent b0f9ed3188
commit d282ade623
171 changed files with 479 additions and 479 deletions

View File

@ -377,7 +377,7 @@ whole set of input primitives. All primitives are then sorted along
the longest coordinate axis of this box, and the primitives are the longest coordinate axis of this box, and the primitives are
separated into two equal size sets. This procedure is applied separated into two equal size sets. This procedure is applied
recursively until an AABB contains a single primitive. The tree is recursively until an AABB contains a single primitive. The tree is
leafless as presented in `OPCODE` \cite cgal:t-ocdl-05\. An leafless as presented in `OPCODE` \cgalCite{cgal:t-ocdl-05}\. An
intersection query traverses the tree by computing intersection tests intersection query traverses the tree by computing intersection tests
only with respect to the AABBs during traversal, and with respect to only with respect to the AABBs during traversal, and with respect to
the input primitives at the end of traversal (in the leafs of the the input primitives at the end of traversal (in the leafs of the

View File

@ -267,7 +267,7 @@ compute the <i>least</i> common multiple of the denominators.
The package is part of \cgal since release 3.3. Of course the package is based The package is part of \cgal since release 3.3. Of course the package is based
on the former Number type support of CGAL. This goes back to Stefan Schirra and Andreas Fabri. But on the other hand the package is to a large extend influenced on the former Number type support of CGAL. This goes back to Stefan Schirra and Andreas Fabri. But on the other hand the package is to a large extend influenced
by the experience with the number type support in <span class="textsc">Exacus</span> \cite beh-eeeafcs-05, by the experience with the number type support in <span class="textsc">Exacus</span> \cgalCite{beh-eeeafcs-05},
which in the main goes back to which in the main goes back to
Lutz Kettner, Susan Hert, Arno Eigenwillig and Michael Hemmer. Lutz Kettner, Susan Hert, Arno Eigenwillig and Michael Hemmer.
However, the package abstracts from the pure support for However, the package abstracts from the pure support for

View File

@ -248,22 +248,22 @@ of LEDA and CORE.
The `Algebraic_kernel_d_1<Coeff>` represents an algebraic real root by a square The `Algebraic_kernel_d_1<Coeff>` represents an algebraic real root by a square
free polynomial and an isolating interval that uniquely defines the root. free polynomial and an isolating interval that uniquely defines the root.
The current method to isolate roots is the Bitstream Descartes The current method to isolate roots is the Bitstream Descartes
method \cite eigenwillig-phd-08. method \cgalCite{eigenwillig-phd-08}.
The used method to refine the approximation of an algebraic real root is a The used method to refine the approximation of an algebraic real root is a
slightly modified (filtered) version of the one presented in \cite abbott-qir-06. slightly modified (filtered) version of the one presented in \cgalCite{abbott-qir-06}.
The method has quadratic convergence. The method has quadratic convergence.
`Algebraic_kernel_d_2<Coeff>` is based on an algorithm computing a `Algebraic_kernel_d_2<Coeff>` is based on an algorithm computing a
geometric-topological analysis of a single curve \cite ekw-fast-07 and of a geometric-topological analysis of a single curve \cgalCite{ekw-fast-07} and of a
pair of curves \cite ek-exact-08. pair of curves \cgalCite{ek-exact-08}.
The main idea behind both analyses is to compute the critical The main idea behind both analyses is to compute the critical
x-coordinates of curves and curve pairs by projection (resultants), and compute x-coordinates of curves and curve pairs by projection (resultants), and compute
additional information about the critical fibers using subresultants additional information about the critical fibers using subresultants
and Sturm-Habicht sequences \cite grlr-sturm-habicht-98. and Sturm-Habicht sequences \cgalCite{grlr-sturm-habicht-98}.
With that information, the fiber at With that information, the fiber at
critical x-coordinates is computed by a variant of the Bitstream critical x-coordinates is computed by a variant of the Bitstream
Descartes method. Descartes method.
See also \cite kerber-phd-09 for a comprehensive description of See also \cgalCite{kerber-phd-09} for a comprehensive description of
these techniques. these techniques.
Almost all functors in the class that take a `Polynomial_2` Almost all functors in the class that take a `Polynomial_2`
object as argument trigger such an analysis as a main computation object as argument trigger such an analysis as a main computation
@ -286,9 +286,9 @@ time-consuming step, and should be avoided for efficiency reasons if possible.
\subsection Algebraic_kernel_dAlgebraicKernelsBasedon Algebraic Kernels Based on RS \subsection Algebraic_kernel_dAlgebraicKernelsBasedon Algebraic Kernels Based on RS
The package offers two univariate algebraic kernels that are based on The package offers two univariate algebraic kernels that are based on
the library RS \cite cgal:r-rs, namely `Algebraic_kernel_rs_gmpz_d_1` the library RS \cgalCite{cgal:r-rs}, namely `Algebraic_kernel_rs_gmpz_d_1`
and `Algebraic_kernel_rs_gmpq_d_1`. As the names indicate, and `Algebraic_kernel_rs_gmpq_d_1`. As the names indicate,
the kernels are based on the library RS \cite cgal:r-rs and support univariate the kernels are based on the library RS \cgalCite{cgal:r-rs} and support univariate
polynomials over `Gmpz` or `Gmpq`, respectively. polynomials over `Gmpz` or `Gmpq`, respectively.
In general we encourage to use `Algebraic_kernel_rs_gmpz_d_1` In general we encourage to use `Algebraic_kernel_rs_gmpz_d_1`
@ -302,7 +302,7 @@ not always be a major issue, the `Algebraic_kernel_rs_gmpq_d_1`
is provided for convenience. is provided for convenience.
The core of both kernels is the implementation of the interval Descartes The core of both kernels is the implementation of the interval Descartes
algorithm \cite cgal:rz-jcam-04 of the library RS \cite cgal:r-rs, algorithm \cgalCite{cgal:rz-jcam-04} of the library RS \cgalCite{cgal:r-rs},
which is used to isolate the roots of the polynomial. which is used to isolate the roots of the polynomial.
The RS library restricts its attention to univariate integer The RS library restricts its attention to univariate integer
polynomials and some substantial gain of efficiency can be made by using a kernel polynomials and some substantial gain of efficiency can be made by using a kernel
@ -310,11 +310,11 @@ that does not follow the generic programming paradigm, by avoiding
interfaces between layers. Specifically, working with interfaces between layers. Specifically, working with
only one number type allows to optimize some polynomial operations only one number type allows to optimize some polynomial operations
as well as memory handling. The implementation of these kernels as well as memory handling. The implementation of these kernels
make heavy use of the <span class="textsc">Mpfr</span> \cite cgal:mt-mpfr and <span class="textsc">Mpfi</span> \cite cgal:r-mpfi make heavy use of the <span class="textsc">Mpfr</span> \cgalCite{cgal:mt-mpfr} and <span class="textsc">Mpfi</span> \cgalCite{cgal:r-mpfi}
libraries, and of their \cgal interfaces, `Gmpfr` and `Gmpfi`. libraries, and of their \cgal interfaces, `Gmpfr` and `Gmpfi`.
The algebraic numbers (roots of the polynomials) are represented The algebraic numbers (roots of the polynomials) are represented
in the two RS kernels by a `Gmpfi` interval and a pointer to in the two RS kernels by a `Gmpfi` interval and a pointer to
the polynomial of which they are roots. See \cite cgal:lpt-wea-09 the polynomial of which they are roots. See \cgalCite{cgal:lpt-wea-09}
for more details on the implementation, tests of these kernels, for more details on the implementation, tests of these kernels,
comparisons with other algebraic kernels and discussions about the comparisons with other algebraic kernels and discussions about the
efficiency. efficiency.
@ -358,7 +358,7 @@ were written by Eric Berberich, Michael Hemmer, and
Monique Teillaud. Monique Teillaud.
The design history of the package is fairly old and several The design history of the package is fairly old and several
ideas that influenced this package can already be found ideas that influenced this package can already be found
in \cite cgal:bhkt-risak-07. Since then, the initial design underwent in \cgalCite{cgal:bhkt-risak-07}. Since then, the initial design underwent
considerable changes. For instance, it was decided that the algebraic considerable changes. For instance, it was decided that the algebraic
numbers should be under the control of the algebraic kernel. On the other numbers should be under the control of the algebraic kernel. On the other
hand the initial support for polynomials was extended to a separate hand the initial support for polynomials was extended to a separate
@ -368,7 +368,7 @@ ideas that was brought to them throughout the last years. In particular,
they want to thank Menelaos Karavelas and Elias Tsigaridas for their they want to thank Menelaos Karavelas and Elias Tsigaridas for their
initial contributions. initial contributions.
The two generic models where initially developed as part of the <span class="textsc">Exacus</span> \cite beh+-eeeafcs-05 project. The two generic models where initially developed as part of the <span class="textsc">Exacus</span> \cgalCite{beh}+-eeeafcs-05 project.
However, the models are now fully integrated into the \cgal library, However, the models are now fully integrated into the \cgal library,
since also the relevant layers of <span class="textsc">Exacus</span> are now part of \cgal. since also the relevant layers of <span class="textsc">Exacus</span> are now part of \cgal.
The main authors for `Algebraic_kernel_d_1<Coeff>` and `Algebraic_kernel_d_2<Coeff>` are The main authors for `Algebraic_kernel_d_1<Coeff>` and `Algebraic_kernel_d_2<Coeff>` are
@ -376,9 +376,9 @@ Michael Hemmer and Michael Kerber, respectively. Notwithstanding, the authors al
contribution of all authors of the <span class="textsc">Exacus</span> project, contribution of all authors of the <span class="textsc">Exacus</span> project,
particularly the contribution of Arno Eigenwillig, Sebastian Limbach and Pavel Emeliyanenko. particularly the contribution of Arno Eigenwillig, Sebastian Limbach and Pavel Emeliyanenko.
The two univariate kernels that interface the library RS \cite cgal:r-rs were The two univariate kernels that interface the library RS \cgalCite{cgal:r-rs} were
written by Luis Pe&ntilde;aranda and Sylvain Lazard. written by Luis Pe&ntilde;aranda and Sylvain Lazard.
Both models interface the library RS \cite cgal:r-rs by Fabrice Rouillier. Both models interface the library RS \cgalCite{cgal:r-rs} by Fabrice Rouillier.
The authors want to thank Fabrice Rouillier and Elias Tsigaridas for The authors want to thank Fabrice Rouillier and Elias Tsigaridas for
strong support and many useful discussions that lead to the integration of RS. strong support and many useful discussions that lead to the integration of RS.

View File

@ -24,9 +24,9 @@ See also the documentation of `Sqrt_extension<NT,ROOT>`.
\cgalAdvancedEnd \cgalAdvancedEnd
The current method to isolate roots is the bitstream Descartes method The current method to isolate roots is the bitstream Descartes method
presented in \cite eigenwillig-phd-08. The used method to refine the presented in \cgalCite{eigenwillig-phd-08}. The used method to refine the
approximation of an algebraic real root is a slightly modified approximation of an algebraic real root is a slightly modified
(filtered) version of the one presented in \cite abbott-qir-06. The (filtered) version of the one presented in \cgalCite{abbott-qir-06}. The
method has quadratic convergence. method has quadratic convergence.
\cgalModels `AlgebraicKernel_d_1` \cgalModels `AlgebraicKernel_d_1`

View File

@ -5,16 +5,16 @@ namespace CGAL {
\ingroup PkgAlgebraicKerneldModels \ingroup PkgAlgebraicKerneldModels
This class is based on an algorithm computing a This class is based on an algorithm computing a
geometric-topological analysis of a single curve \cite ekw-fast-07 and of a geometric-topological analysis of a single curve \cgalCite{ekw-fast-07} and of a
pair of curves \cite ek-exact-08. pair of curves \cgalCite{ek-exact-08}.
The main idea behind both analyses is to compute the critical The main idea behind both analyses is to compute the critical
x-coordinates of curves and curve pairs by projection (resultants), and compute x-coordinates of curves and curve pairs by projection (resultants), and compute
additional information about the critical fibers using subresultants additional information about the critical fibers using subresultants
and Sturm-Habicht sequences \cite grlr-sturm-habicht-98. and Sturm-Habicht sequences \cgalCite{grlr-sturm-habicht-98}.
With that information, the fiber at With that information, the fiber at
critical x-coordinates is computed by a variant of the Bitstream critical x-coordinates is computed by a variant of the Bitstream
Descartes method. Descartes method.
See also \cite kerber-phd-09 for a comprehensive description of See also \cgalCite{kerber-phd-09} for a comprehensive description of
these techniques. these techniques.
A point \f$ p\f$ of type `Algebraic_real_2` is represented A point \f$ p\f$ of type `Algebraic_real_2` is represented

View File

@ -17,9 +17,9 @@ quite a vague notion and there are probably many possible
interpretations, the \f$ \alpha\f$-shape being one of them. Alpha shapes interpretations, the \f$ \alpha\f$-shape being one of them. Alpha shapes
can be used for shape reconstruction from a dense unorganized set of can be used for shape reconstruction from a dense unorganized set of
data points. Indeed, an \f$ \alpha\f$-shape is demarcated by a frontier, data points. Indeed, an \f$ \alpha\f$-shape is demarcated by a frontier,
which is a linear approximation of the original shape \cite bb-srmua-97t. which is a linear approximation of the original shape \cgalCite{bb-srmua-97t}.
As mentioned in Edelsbrunner's and M&uuml;cke's paper \cite em-tdas-94, As mentioned in Edelsbrunner's and M&uuml;cke's paper \cgalCite{em-tdas-94},
one can intuitively think of an \f$ \alpha\f$-shape as the one can intuitively think of an \f$ \alpha\f$-shape as the
following. Imagine a huge mass of ice-cream making up the space \f$ \mathbb{R}^3\f$ following. Imagine a huge mass of ice-cream making up the space \f$ \mathbb{R}^3\f$
and containing the points as "hard" chocolate pieces. Using one of and containing the points as "hard" chocolate pieces. Using one of
@ -58,7 +58,7 @@ open disk (resp. ball) of radius \f$ \sqrt{\alpha}\f$ through the vertices of th
simplex that does not contain any other point of \f$ S\f$, for the metric used in simplex that does not contain any other point of \f$ S\f$, for the metric used in
the computation of the underlying triangulation. The corresponding the computation of the underlying triangulation. The corresponding
\f$ \alpha\f$-shape is defined as the underlying interior space of the \f$ \alpha\f$-shape is defined as the underlying interior space of the
\f$ \alpha\f$-complex (see \cite em-tdas-94). \f$ \alpha\f$-complex (see \cgalCite{em-tdas-94}).
In general, an \f$ \alpha\f$-complex is a non-connected and non-pure polytope, it In general, an \f$ \alpha\f$-complex is a non-connected and non-pure polytope, it
means, that one \f$ k\f$-simplex, \f$ 0 \leq k \leq d-1\f$ is not necessary adjacent to means, that one \f$ k\f$-simplex, \f$ 0 \leq k \leq d-1\f$ is not necessary adjacent to

View File

@ -22,7 +22,7 @@
\cgalPkgDescriptionEnd \cgalPkgDescriptionEnd
This chapter presents a framework for alpha shapes. The description is based on This chapter presents a framework for alpha shapes. The description is based on
the articles \cite em-tdas-94, \cite e-was-92. Alpha shapes are the articles \cgalCite{em-tdas-94}, \cgalCite{e-was-92}. Alpha shapes are
the generalization of the convex hull of a point set. Let \f$ S\f$ be a finite set of the generalization of the convex hull of a point set. Let \f$ S\f$ be a finite set of
points in \f$ \mathbb{R}^d\f$, \f$ d = 2,3\f$ and \f$ \alpha\f$ a parameter with \f$ 0 \leq \alpha \leq points in \f$ \mathbb{R}^d\f$, \f$ d = 2,3\f$ and \f$ \alpha\f$ a parameter with \f$ 0 \leq \alpha \leq
\infty\f$. For \f$ \alpha = \infty\f$, the \f$ \alpha\f$-shape is the convex hull of \f$ S\f$. As \infty\f$. For \f$ \alpha = \infty\f$, the \f$ \alpha\f$-shape is the convex hull of \f$ S\f$. As

View File

@ -16,9 +16,9 @@ quite a vague notion and there are probably many possible
interpretations, the alpha shape being one of them. Alpha shapes interpretations, the alpha shape being one of them. Alpha shapes
can be used for shape reconstruction from a dense unorganized set of can be used for shape reconstruction from a dense unorganized set of
data points. Indeed, an alpha shape is demarcated by a frontier, data points. Indeed, an alpha shape is demarcated by a frontier,
which is a linear approximation of the original shape \cite bb-srmua-97t. which is a linear approximation of the original shape \cgalCite{bb-srmua-97t}.
As mentioned in Edelsbrunner's and M&uuml;cke's paper \cite em-tdas-94, As mentioned in Edelsbrunner's and M&uuml;cke's paper \cgalCite{em-tdas-94},
one can intuitively think of an alpha shape as the one can intuitively think of an alpha shape as the
following. Imagine a huge mass of ice-cream making up the space \f$ \mathbb{R}^3\f$ following. Imagine a huge mass of ice-cream making up the space \f$ \mathbb{R}^3\f$
and containing the points as "hard" chocolate pieces. Using one of and containing the points as "hard" chocolate pieces. Using one of
@ -63,7 +63,7 @@ an empty circumscribing sphere with squared radius equal or smaller than \f$ \al
Here "empty" means that the open sphere Here "empty" means that the open sphere
do not include any points of \f$ S\f$. do not include any points of \f$ S\f$.
The alpha shape is then simply the domain covered by the simplices The alpha shape is then simply the domain covered by the simplices
of the alpha complex (see \cite em-tdas-94). of the alpha complex (see \cgalCite{em-tdas-94}).
In general, an alpha complex is a disconnected and non-pure complex: In general, an alpha complex is a disconnected and non-pure complex:
This means in particular that the alpha complex may have This means in particular that the alpha complex may have

View File

@ -35,7 +35,7 @@ an empty circumscribing sphere with squared radius equal or smaller than \f$ \a
Here "empty" means that the open sphere Here "empty" means that the open sphere
do not include any points of \f$ S\f$. do not include any points of \f$ S\f$.
The alpha shape is then simply the domain covered by the simplices The alpha shape is then simply the domain covered by the simplices
of the alpha complex (see \cite em-tdas-94). of the alpha complex (see \cgalCite{em-tdas-94}).
In general, an alpha complex is a non-connected and non-pure complex. In general, an alpha complex is a non-connected and non-pure complex.
This means in particular that the alpha complex may have This means in particular that the alpha complex may have

View File

@ -32,7 +32,7 @@ deletions on line. The corresponding \cgal class is called
`Apollonius_graph_2<ApolloniusGraphTraits_2,ApolloniusGraphDataStructure_2>` `Apollonius_graph_2<ApolloniusGraphTraits_2,ApolloniusGraphDataStructure_2>`
and will be discussed in more detail in the sequel. The interested and will be discussed in more detail in the sequel. The interested
reader may want to refer to the paper by Karavelas and Yvinec reader may want to refer to the paper by Karavelas and Yvinec
\cite cgal:ky-dawvd-02 for the general idea as well as the details of the \cgalCite{cgal:ky-dawvd-02} for the general idea as well as the details of the
algorithm implemented. algorithm implemented.
Before describing the details of the implementation we make a brief Before describing the details of the implementation we make a brief
@ -240,7 +240,7 @@ The predicates required for the computation of the Apollonius graph
are rather complicated. It is not the purpose of this document to are rather complicated. It is not the purpose of this document to
discuss them in detail. The interested reader may refer to the papers discuss them in detail. The interested reader may refer to the papers
by Karavelas and Emiris for the details by Karavelas and Emiris for the details
\cite cgal:ke-ppawv-02, \cite cgal:ke-rctac-03. However, we would like to give a brief \cgalCite{cgal:ke-ppawv-02}, \cgalCite{cgal:ke-rctac-03}. However, we would like to give a brief
overview of what they overview of what they
compute. There are several predicates needed by this algorithm. We compute. There are several predicates needed by this algorithm. We
will discuss the most important/complicated ones. It turns out that will discuss the most important/complicated ones. It turns out that
@ -414,7 +414,7 @@ manual.
The `Apollonius_graph_hierarchy_2<ApolloniusGraphTraits_2,ApolloniusGraphDataStructure_2>` class is nothing but the equivalent of the `Triangulation_hierarchy_2` The `Apollonius_graph_hierarchy_2<ApolloniusGraphTraits_2,ApolloniusGraphDataStructure_2>` class is nothing but the equivalent of the `Triangulation_hierarchy_2`
class, applied to the Apollonius graph. It consists of a series of class, applied to the Apollonius graph. It consists of a series of
Apollonius graphs constructed in a manner analogous to the Delaunay Apollonius graphs constructed in a manner analogous to the Delaunay
hierarchy by Devillers \cite d-iirdt-98. The class hierarchy by Devillers \cgalCite{d-iirdt-98}. The class
`Apollonius_graph_hierarchy_2<ApolloniusGraphTraits_2,ApolloniusGraphDataStructure_2>` `Apollonius_graph_hierarchy_2<ApolloniusGraphTraits_2,ApolloniusGraphDataStructure_2>`
has exactly the same interface and functionality as the has exactly the same interface and functionality as the
`Apollonius_graph_2<ApolloniusGraphTraits_2,ApolloniusGraphDataStructure_2>` `Apollonius_graph_2<ApolloniusGraphTraits_2,ApolloniusGraphDataStructure_2>`

View File

@ -7,7 +7,7 @@ namespace CGAL {
The class `Apollonius_graph_filtered_traits_2` provides a model for the The class `Apollonius_graph_filtered_traits_2` provides a model for the
`ApolloniusGraphTraits_2` concept. `ApolloniusGraphTraits_2` concept.
The class `Apollonius_graph_filtered_traits_2` uses the filtering technique \cite cgal:bbp-iayed-01 The class `Apollonius_graph_filtered_traits_2` uses the filtering technique \cgalCite{cgal:bbp-iayed-01}
to achieve traits for the `Apollonius_graph_2<Gt,Agds>` class to achieve traits for the `Apollonius_graph_2<Gt,Agds>` class
with efficient and exact predicates given an exact with efficient and exact predicates given an exact
kernel `EK` and a filtering kernel `FK`. The geometric kernel `EK` and a filtering kernel `FK`. The geometric
@ -28,7 +28,7 @@ whereas the second one requires the exact evaluation of signs of
ring-type expressions, i.e., expressions involving only additions, ring-type expressions, i.e., expressions involving only additions,
subtractions and multiplications. subtractions and multiplications.
The way the predicates are evaluated is discussed in The way the predicates are evaluated is discussed in
\cite cgal:ke-ppawv-02, \cite cgal:ke-rctac-03. \cgalCite{cgal:ke-ppawv-02}, \cgalCite{cgal:ke-rctac-03}.
The default values for the template parameters are as follows: The default values for the template parameters are as follows:
`CM = CGAL::Ring_tag`, `CM = CGAL::Ring_tag`,

View File

@ -18,7 +18,7 @@ find the nearest neighbor of \f$ p\f$ as in the
`Apollonius_graph_2<Gt,Agds>` class. At every subsequent level \f$ i\f$ `Apollonius_graph_2<Gt,Agds>` class. At every subsequent level \f$ i\f$
we use the nearest neighbor found at level \f$ i+1\f$ to find the nearest we use the nearest neighbor found at level \f$ i+1\f$ to find the nearest
neighbor at level \f$ i\f$. This is a variant of the corresponding neighbor at level \f$ i\f$. This is a variant of the corresponding
hierarchy for points found in \cite d-iirdt-98. hierarchy for points found in \cgalCite{d-iirdt-98}.
The class has two template parameters which have essentially the same The class has two template parameters which have essentially the same
meaning as in the `Apollonius_graph_2<Gt,Agds>` class. The first meaning as in the `Apollonius_graph_2<Gt,Agds>` class. The first
template parameter must be a model of the template parameter must be a model of the

View File

@ -18,7 +18,7 @@ evaluation of signs of ring-type expressions, i.e., expressions
involving only additions, subtractions and multiplications. The involving only additions, subtractions and multiplications. The
default value for `Method_tag` is `CGAL::Ring_tag`. default value for `Method_tag` is `CGAL::Ring_tag`.
The way the predicates are evaluated is discussed in The way the predicates are evaluated is discussed in
\cite cgal:ke-ppawv-02, \cite cgal:ke-rctac-03. \cgalCite{cgal:ke-ppawv-02}, \cgalCite{cgal:ke-rctac-03}.
\cgalModels `ApolloniusGraphTraits_2` \cgalModels `ApolloniusGraphTraits_2`

View File

@ -15,7 +15,7 @@ Given a set \f$ \cal C\f$ of planar curves, the <I>arrangement</I>
one-dimensional and two-dimensional cells, called <I>vertices</I>, <I>edges</I> and <I>faces</I>, respectively induced by the curves in \f$ \cal C\f$. one-dimensional and two-dimensional cells, called <I>vertices</I>, <I>edges</I> and <I>faces</I>, respectively induced by the curves in \f$ \cal C\f$.
Arrangements are ubiquitous in the computational-geometry Arrangements are ubiquitous in the computational-geometry
literature and have many applications; literature and have many applications;
see, e.g., \cite as-aa-00, \cite cgal:h-a-04. see, e.g., \cgalCite{as-aa-00}, \cgalCite{cgal:h-a-04}.
The curves in \f$ \cal C\f$ can intersect each other (a single curve may also The curves in \f$ \cal C\f$ can intersect each other (a single curve may also
be self-intersecting or may be comprised of several disconnected branches) be self-intersecting or may be comprised of several disconnected branches)
@ -76,7 +76,7 @@ connected faces. Every face can have several holes contained in its
interior (or no holes at all). In addition, every face may contain interior (or no holes at all). In addition, every face may contain
isolated vertices in its interior. See \cgalFigureRef{arr_figseg_dcel} isolated vertices in its interior. See \cgalFigureRef{arr_figseg_dcel}
for an illustration of the various \sc{Dcel} features. For more details for an illustration of the various \sc{Dcel} features. For more details
on the \sc{Dcel} data structure see \cite bkos-cgaa-00 Chapter 2. on the \sc{Dcel} data structure see \cgalCite{bkos-cgaa-00} Chapter 2.
\cgalFigureBegin{arr_figseg_dcel,arr_segs.png} \cgalFigureBegin{arr_figseg_dcel,arr_segs.png}
An arrangement of interior-disjoint line segments with some of the \sc{Dcel} records that represent it. The unbounded face \f$ f_0\f$ has a single connected component that forms a hole inside it, and this hole is comprised if several faces. The half-edge \f$ e\f$ is directed from its source vertex \f$ v_1\f$ to its target vertex \f$ v_2\f$. This edge, together with its twin \f$ e'\f$, correspond to a line segment that connects the points associated with \f$ v_1\f$ and \f$ v_2\f$ and separates the face \f$ f_1\f$ from \f$ f_2\f$. The predecessor \f$ e_{\rm prev}\f$ and successor \f$ e_{\rm next}\f$ of \f$ e\f$ are part of the chain that form the outer boundary of the face \f$ f_2\f$. The face \f$ f_1\f$ has a more complicated structure as it contains two holes in its interior: One hole consists of two adjacent faces \f$ f_3\f$ and \f$ f_4\f$, while the other hole is comprised of two edges. \f$ f_1\f$ also contains two isolated vertices \f$ u_1\f$ and \f$ u_2\f$ in its interior. An arrangement of interior-disjoint line segments with some of the \sc{Dcel} records that represent it. The unbounded face \f$ f_0\f$ has a single connected component that forms a hole inside it, and this hole is comprised if several faces. The half-edge \f$ e\f$ is directed from its source vertex \f$ v_1\f$ to its target vertex \f$ v_2\f$. This edge, together with its twin \f$ e'\f$, correspond to a line segment that connects the points associated with \f$ v_1\f$ and \f$ v_2\f$ and separates the face \f$ f_1\f$ from \f$ f_2\f$. The predecessor \f$ e_{\rm prev}\f$ and successor \f$ e_{\rm next}\f$ of \f$ e\f$ are part of the chain that form the outer boundary of the face \f$ f_2\f$. The face \f$ f_1\f$ has a more complicated structure as it contains two holes in its interior: One hole consists of two adjacent faces \f$ f_3\f$ and \f$ f_4\f$, while the other hole is comprised of two edges. \f$ f_1\f$ also contains two isolated vertices \f$ u_1\f$ and \f$ u_2\f$ in its interior.
@ -871,7 +871,7 @@ print_point_location
Each of the various point-location class templates employs a different Each of the various point-location class templates employs a different
algorithm or <I>strategy</I>\cgalFootnote{We use the term <I>strategy</I> algorithm or <I>strategy</I>\cgalFootnote{We use the term <I>strategy</I>
is borrowed from the design-pattern taxonomy \cite cgal:ghjv-dpero-95, Chapter 5.} is borrowed from the design-pattern taxonomy \cgalCite{cgal:ghjv-dpero-95}, Chapter 5.}
for answering queries: for answering queries:
<UL> <UL>
<LI> `Arr_naive_point_location<Arrangement>` employes the <LI> `Arr_naive_point_location<Arrangement>` employes the
@ -911,8 +911,8 @@ for answering queries:
classes included in the <I>2D Arrangement</I> package are models of classes included in the <I>2D Arrangement</I> package are models of
this refined concept. this refined concept.
<LI>`Arr_trapezoid_ric_point_location<Arrangement>` implements <LI>`Arr_trapezoid_ric_point_location<Arrangement>` implements
Mulmuley's point-location algorithm \cite m-fppa-90; see Mulmuley's point-location algorithm \cgalCite{m-fppa-90}; see
also \cite bkos-cgaa-00, Chapter 6. The arrangement faces are also \cgalCite{bkos-cgaa-00}, Chapter 6. The arrangement faces are
decomposed into simpler cells each of constant complexity, known as decomposed into simpler cells each of constant complexity, known as
<I>pseudo-trapezoids</I>, and a search structure (a directed acyclic <I>pseudo-trapezoids</I>, and a search structure (a directed acyclic
graph) is constructed on top of these cells, facilitating the search graph) is constructed on top of these cells, facilitating the search
@ -950,7 +950,7 @@ The trapezoidal map RIC algorithm has expected logarithmic query time,
while the query time for the landmark strategy may be as large as while the query time for the landmark strategy may be as large as
linear. In practice however, the query times of both strategies are linear. In practice however, the query times of both strategies are
competitive. For a detailed experimental comparison competitive. For a detailed experimental comparison
see \cite hh-eplca-05 see \cgalCite{hh-eplca-05}
Updating the auxiliary data structures of the trapezoidal map RIC Updating the auxiliary data structures of the trapezoidal map RIC
algorithm is done very efficiently. On the other hand, updating the algorithm is done very efficiently. On the other hand, updating the
@ -2406,7 +2406,7 @@ maintenance of arrangements of such arcs. Rational functions, and
polynomial functions in particular, are not only interesting in their polynomial functions in particular, are not only interesting in their
own right, they are also very useful for approximating or own right, they are also very useful for approximating or
interpolating more complicated curves; see, interpolating more complicated curves; see,
e.g., [\cite cgal:ptvf-nrcpp-02 Chapter 3. e.g., [\cgalCite{cgal:ptvf-nrcpp-02} Chapter 3.
`Arr_rational_function_traits_2<AlgebraicKernel_d_1>` is a model `Arr_rational_function_traits_2<AlgebraicKernel_d_1>` is a model
of the concepts `ArrangementTraits_2`, of the concepts `ArrangementTraits_2`,
@ -2822,7 +2822,7 @@ require auxiliary data-structures (see Section \ref arr_ssecpl),
which must be notified on various local changes in the arrangement, which must be notified on various local changes in the arrangement,
in order to keep their data structures up-to-date. The arrangement in order to keep their data structures up-to-date. The arrangement
package offers a mechanism that uses <I>observers</I> package offers a mechanism that uses <I>observers</I>
(see \cite cgal:ghjv-dpero-95) that can be (see \cgalCite{cgal:ghjv-dpero-95}) that can be
attached to an arrangement instance and receive notifications attached to an arrangement instance and receive notifications
about the changes this arrangement goes through. about the changes this arrangement goes through.
@ -3038,7 +3038,7 @@ the annual precipitation is between 1000mm and 1500mm.
Computing the overlay of two planar arrangement is also useful for Computing the overlay of two planar arrangement is also useful for
supporting Boolean set operations on polygons (or generalized polygons, supporting Boolean set operations on polygons (or generalized polygons,
see, e.g., \cite cgal:behhms-cbcab-02). see, e.g., \cgalCite{cgal:behhms-cbcab-02}).
The function `overlay (arr_a, arr_b, ovl_arr, ovl_traits)` accepts The function `overlay (arr_a, arr_b, ovl_arr, ovl_traits)` accepts
two input arrangement instances `arr_a` and `arr_b`, and constructs two input arrangement instances `arr_a` and `arr_b`, and constructs

View File

@ -7,15 +7,15 @@ namespace CGAL {
\anchor arr_reftrap_pl \anchor arr_reftrap_pl
The `Arr_trapezoid_ric_point_location` class implements the incremental randomized algorithm The `Arr_trapezoid_ric_point_location` class implements the incremental randomized algorithm
introduced by Mulmuley \cite m-fppa-90 as presented by introduced by Mulmuley \cgalCite{m-fppa-90} as presented by
Seidel \cite s-sfira-91 (see also [\cite bkos-cgaa-00 Chapter 6). Seidel \cgalCite{s-sfira-91} (see also [\cgalCite{bkos-cgaa-00} Chapter 6).
It subdivides each arrangement face to pseudo-trapezoidal cells, each It subdivides each arrangement face to pseudo-trapezoidal cells, each
of constant complexity, and constructs and maintains a linear-size search of constant complexity, and constructs and maintains a linear-size search
structure on top of these cells, such that each query can be answered structure on top of these cells, such that each query can be answered
in \f$ O(\log n)\f$ time, where \f$ n\f$ is the complexity of the arrangement. in \f$ O(\log n)\f$ time, where \f$ n\f$ is the complexity of the arrangement.
Constructing the search structures takes \f$ O(n \log n)\f$ expected time Constructing the search structures takes \f$ O(n \log n)\f$ expected time
and may require a small number of rebuilds \cite hkh-iiplgtds-12. Therefore and may require a small number of rebuilds \cgalCite{hkh-iiplgtds-12}. Therefore
attaching a trapezoidal point-location object to an existing arrangement attaching a trapezoidal point-location object to an existing arrangement
may incur some overhead in running times. In addition, the point-location may incur some overhead in running times. In addition, the point-location
object needs to keep its auxiliary data structures up-to-date as the object needs to keep its auxiliary data structures up-to-date as the

View File

@ -361,7 +361,7 @@ public:
The following handles, iterators, and circulators all have respective The following handles, iterators, and circulators all have respective
constant counterparts (for example, in addition to `Vertex_iterator` constant counterparts (for example, in addition to `Vertex_iterator`
the type `Vertex_const_iterator` is also defined). See \cite cgal:ms-strg-96 the type `Vertex_const_iterator` is also defined). See \cgalCite{cgal:ms-strg-96}
for a discussion of constant versus mutable iterator for a discussion of constant versus mutable iterator
types. The mutable types are assignable to their constant types. The mutable types are assignable to their constant
counterparts. `Vertex_iterator`, `Halfedge_iterator`, and counterparts. `Vertex_iterator`, `Halfedge_iterator`, and

View File

@ -19,7 +19,7 @@ the plane, we keep track of the order of curves intersecting it.
This order changes at a finite number of <I>event points</I>, such that This order changes at a finite number of <I>event points</I>, such that
we only have to calculate the intersection points we only have to calculate the intersection points
between two curves when they become contiguous. For more details on the between two curves when they become contiguous. For more details on the
<I>sweep-line algorithm</I> see, for example, \cite bkos-cgaa-00, Chapter 2. <I>sweep-line algorithm</I> see, for example, \cgalCite{bkos-cgaa-00}, Chapter 2.
This chapter describes three functions implemented using the sweep-line This chapter describes three functions implemented using the sweep-line
algorithm: given a collection of input curves, compute all intersection points, algorithm: given a collection of input curves, compute all intersection points,

View File

@ -15,7 +15,7 @@ faces as edges of the dual graph.
As the scope of \cgal is geometry and not graph algorithms, we As the scope of \cgal is geometry and not graph algorithms, we
provide the necessary classes and functions that allow to use the provide the necessary classes and functions that allow to use the
algorithms of the <A HREF="http://www.boost.org/libs/graph/doc/index.html">Boost Graph Library (BGL)</A> \cite cgal:sll-bgl-02 for \cgal data structures. algorithms of the <A HREF="http://www.boost.org/libs/graph/doc/index.html">Boost Graph Library (BGL)</A> \cgalCite{cgal:sll-bgl-02} for \cgal data structures.
\section BGLA A Short Introduction to the Boost Graph Library \section BGLA A Short Introduction to the Boost Graph Library

View File

@ -9,7 +9,7 @@ for the 2D triangulation classes.
The triangulations of \cgal are all models of the concepts The triangulations of \cgal are all models of the concepts
`BidirectionalGraph` and `VertexAndEdgeListGraph` of the Boost Graph `BidirectionalGraph` and `VertexAndEdgeListGraph` of the Boost Graph
Library \cite cgal:sll-bgl-02. Library \cgalCite{cgal:sll-bgl-02}.
The mapping between vertices and edges of the triangulation and the The mapping between vertices and edges of the triangulation and the

View File

@ -97,7 +97,7 @@ of the boundary.
<LI>A <B>regularized Boolean set-operation</B> \f$ \mbox{op}^*\f$ can be obtained by <LI>A <B>regularized Boolean set-operation</B> \f$ \mbox{op}^*\f$ can be obtained by
first taking the interior of the resultant point set of an <I>ordinary</I> first taking the interior of the resultant point set of an <I>ordinary</I>
Boolean set-operation \f$ (P\ \mbox{op}\ Q)\f$ and then by taking the Boolean set-operation \f$ (P\ \mbox{op}\ Q)\f$ and then by taking the
closure \cite cgal:h-sm-04. That is, closure \cgalCite{cgal:h-sm-04}. That is,
\f$ P\ \mbox{op}^*\ Q = \mbox{closure}(\mbox{interior} (P\ \mbox{op}\ Q))\f$. \f$ P\ \mbox{op}^*\ Q = \mbox{closure}(\mbox{interior} (P\ \mbox{op}\ Q))\f$.
Regularized Boolean set-operations appear in Constructive Solid Regularized Boolean set-operations appear in Constructive Solid
Geometry (CSG), because regular sets are closed under regularized Geometry (CSG), because regular sets are closed under regularized

View File

@ -116,7 +116,7 @@ using the \f$ d\f$-dimensional \cgal kernel; the models
\cgalHeading{Implementation} \cgalHeading{Implementation}
We implement Khachyian's algorithm for rounding We implement Khachyian's algorithm for rounding
polytopes \cite cgal:k-rprnm-96. Internally, we use polytopes \cgalCite{cgal:k-rprnm-96}. Internally, we use
`double`-arithmetic and (initially a single) `double`-arithmetic and (initially a single)
Cholesky-decomposition. The algorithm's running time is Cholesky-decomposition. The algorithm's running time is
\f$ {\cal O}(nd^2(\epsilon^{-1}+\ln d + \ln\ln(n)))\f$, where \f$ n=|P|\f$ and \f$ {\cal O}(nd^2(\epsilon^{-1}+\ln d + \ln\ln(n)))\f$, where \f$ n=|P|\f$ and

View File

@ -43,7 +43,7 @@ can be formulated as an optimization problem with linear constraints and a
linear objective linear objective
function. function.
The solution is obtained using our exact The solution is obtained using our exact
solver for linear and quadratic programs \cite gs-eegqp-00. solver for linear and quadratic programs \cgalCite{gs-eegqp-00}.
The creation time is almost always linear in the number of points. Access The creation time is almost always linear in the number of points. Access
functions and predicates take constant time, inserting a point takes almost functions and predicates take constant time, inserting a point takes almost

View File

@ -53,8 +53,8 @@ two-dimensional \cgal kernel.
\cgalHeading{Implementation} \cgalHeading{Implementation}
We implement the incremental algorithm of Welzl, with move-to-front We implement the incremental algorithm of Welzl, with move-to-front
heuristic \cite w-sedbe-91a. The whole implementation is described heuristic \cgalCite{w-sedbe-91a}. The whole implementation is described
in \cite cgal:gs-seceg-98. in \cgalCite{cgal:gs-seceg-98}.
If randomization is If randomization is
chosen, the creation time is almost always linear in the number of points. chosen, the creation time is almost always linear in the number of points.

View File

@ -35,9 +35,9 @@ two-dimensional \cgal kernel.
\cgalHeading{Implementation} \cgalHeading{Implementation}
We implement the incremental algorithm of Welzl, with move-to-front We implement the incremental algorithm of Welzl, with move-to-front
heuristic \cite w-sedbe-91a, using the primitives as described heuristic \cgalCite{w-sedbe-91a}, using the primitives as described
in \cite gs-epsee-97, \cite cgal:gs-seefe-97a. The whole implementation is described in \cgalCite{gs-epsee-97}, \cgalCite{cgal:gs-seefe-97a}. The whole implementation is described
in \cite cgal:gs-seeeg-98. in \cgalCite{cgal:gs-seeeg-98}.
If randomization is If randomization is
chosen, the creation time is almost always linear in the number of points. chosen, the creation time is almost always linear in the number of points.

View File

@ -56,9 +56,9 @@ for two-, three-, and \f$ d\f$-dimensional points respectively.
\cgalHeading{Implementation} \cgalHeading{Implementation}
We implement the algorithm of Welzl with move-to-front We implement the algorithm of Welzl with move-to-front
heuristic \cite w-sedbe-91a for small point sets, combined with a new heuristic \cgalCite{w-sedbe-91a} for small point sets, combined with a new
efficient method for large sets, which is particularly tuned for efficient method for large sets, which is particularly tuned for
moderately large dimension (\f$ d \leq 20\f$) \cite cgal:g-frseb-99. moderately large dimension (\f$ d \leq 20\f$) \cgalCite{cgal:g-frseb-99}.
The creation time is almost The creation time is almost
always linear in the number of points. Access functions and predicates always linear in the number of points. Access functions and predicates
take constant time, inserting a point might take up to linear time, take constant time, inserting a point might take up to linear time,

View File

@ -73,7 +73,7 @@ might still be an option in case your input number type cannot
\cgalHeading{Implementation} \cgalHeading{Implementation}
We implement two algorithms, the LP-algorithm and a We implement two algorithms, the LP-algorithm and a
heuristic \cite msw-sblp-92. As described in the documentation of heuristic \cgalCite{msw-sblp-92}. As described in the documentation of
concept `MinSphereOfSpheresTraits`, each has its advantages and concept `MinSphereOfSpheresTraits`, each has its advantages and
disadvantages: Our implementation of the LP-algorithm has maximal disadvantages: Our implementation of the LP-algorithm has maximal
expected running time \f$ O(2^d n)\f$, while the heuristic comes without expected running time \f$ O(2^d n)\f$, while the heuristic comes without

View File

@ -46,7 +46,7 @@ type from one the \cgal kernels. In this case, a default traits class
We use a rotating caliper We use a rotating caliper
algorithm algorithm
\cite stvwe-mepa-95, \cite v-fmep-90 with worst case running time linear \cgalCite{stvwe-mepa-95}, \cgalCite{v-fmep-90} with worst case running time linear
in the number of input points. in the number of input points.
\cgalHeading{Example} \cgalHeading{Example}
@ -115,7 +115,7 @@ is `CGAL::Point_2<K>` for some kernel `K`.
\cgalHeading{Implementation} \cgalHeading{Implementation}
We use a rotating caliper We use a rotating caliper
algorithm \cite t-sgprc-83 algorithm \cgalCite{t-sgprc-83}
with worst case running time linear in the number of input points. with worst case running time linear in the number of input points.
\cgalHeading{Example} \cgalHeading{Example}
@ -183,7 +183,7 @@ is `CGAL::Point_2<K>` for some kernel `K`.
\cgalHeading{Implementation} \cgalHeading{Implementation}
We use a rotating caliper We use a rotating caliper
algorithm \cite t-sgprc-83 algorithm \cgalCite{t-sgprc-83}
with worst case running time linear in the number of input points. with worst case running time linear in the number of input points.
\cgalHeading{Example} \cgalHeading{Example}

View File

@ -248,9 +248,9 @@ The runtime is linear for \f$ p \in \{2,\,3\}\f$ and
\f$ \mathcal{O}(n \cdot \log n)\f$ for \f$ p = 4\f$ where \f$ n\f$ is the number of \f$ \mathcal{O}(n \cdot \log n)\f$ for \f$ p = 4\f$ where \f$ n\f$ is the number of
input points. These runtimes are worst case optimal. The \f$ 3\f$-center input points. These runtimes are worst case optimal. The \f$ 3\f$-center
algorithm uses a prune-and-search technique described in algorithm uses a prune-and-search technique described in
\cite cgal:h-slacr-99. The \f$ 4\f$-center implementation uses sorted matrix \cgalCite{cgal:h-slacr-99}. The \f$ 4\f$-center implementation uses sorted matrix
search \cite fj-fkppc-83, \cite fj-gsrsm-84 and fast algorithms for search \cgalCite{fj-fkppc-83}, \cgalCite{fj-gsrsm-84} and fast algorithms for
piercing rectangles \cite sw-rpppp-96. piercing rectangles \cgalCite{sw-rpppp-96}.
\cgalHeading{Example} \cgalHeading{Example}

View File

@ -75,7 +75,7 @@ with. It must typedef to either `CGAL::Default_algorithm`,
The recommended choice is the first, which is a synonym to the one The recommended choice is the first, which is a synonym to the one
of the other two methods which we consider "the best in practice." of the other two methods which we consider "the best in practice."
In case of `CGAL::LP_algorithm`, the minsphere will be computed In case of `CGAL::LP_algorithm`, the minsphere will be computed
using the LP-algorithm \cite msw-sblp-92, which in our using the LP-algorithm \cgalCite{msw-sblp-92}, which in our
implementation has maximal expected running time \f$ O(2^d n)\f$ (in the implementation has maximal expected running time \f$ O(2^d n)\f$ (in the
number of operations on the number type `FT`). In case of number of operations on the number type `FT`). In case of
`CGAL::Farthest_first_heuristic`, a simple heuristic will be `CGAL::Farthest_first_heuristic`, a simple heuristic will be

View File

@ -27,7 +27,7 @@ complicated geometric primitives contained in the boxes.
\image html box_inters.png \image html box_inters.png
\image latex box_inters.png \image latex box_inters.png
We provide an efficient algorithm \cite cgal:ze-fsbi-02 for finding all We provide an efficient algorithm \cgalCite{cgal:ze-fsbi-02} for finding all
intersecting pairs for large numbers of iso-oriented boxes, i.e., intersecting pairs for large numbers of iso-oriented boxes, i.e.,
typically these will be such bounding boxes of more complicated geometries. typically these will be such bounding boxes of more complicated geometries.
One immediate application of this algorithm is the detection of all One immediate application of this algorithm is the detection of all
@ -36,7 +36,7 @@ applying the algorithm on a large set of triangles in space, we give
an example program later in this chapter. Not so obvious applications an example program later in this chapter. Not so obvious applications
are proximity queries and distance computations among such surfaces, are proximity queries and distance computations among such surfaces,
see Section \ref secbox_inters_example_proximity for an example see Section \ref secbox_inters_example_proximity for an example
and \cite cgal:ze-fsbi-02 for more details. and \cgalCite{cgal:ze-fsbi-02} for more details.
\section secboxintersdef Definition \section secboxintersdef Definition
@ -138,7 +138,7 @@ Two implementations of iso-oriented boxes are provided;
handle that can be used to point to the full geometry that is handle that can be used to point to the full geometry that is
approximated by the box. Both implementations have template parameters approximated by the box. Both implementations have template parameters
for the number type used for the interval bounds, for the fixed for the number type used for the interval bounds, for the fixed
dimension of the box, and for a policy class \cite cgal:a-mcdgp-01 dimension of the box, and for a policy class \cgalCite{cgal:a-mcdgp-01}
selecting among several solutions for providing the `id`-number. selecting among several solutions for providing the `id`-number.
The function signatures for the bipartite case look as follows. The The function signatures for the bipartite case look as follows. The
@ -343,11 +343,11 @@ discussion.
\section secboxintersperformance Runtime Performance \section secboxintersperformance Runtime Performance
The implemented algorithm is described in \cite cgal:ze-fsbi-02 as The implemented algorithm is described in \cgalCite{cgal:ze-fsbi-02} as
version two. Its performance depends on a `cutoff` parameter. version two. Its performance depends on a `cutoff` parameter.
When the size of both iterator ranges drops below the `cutoff` When the size of both iterator ranges drops below the `cutoff`
parameter the function switches from the streamed segment-tree parameter the function switches from the streamed segment-tree
algorithm to the two-way-scan algorithm, see \cite cgal:ze-fsbi-02 algorithm to the two-way-scan algorithm, see \cgalCite{cgal:ze-fsbi-02}
for the details. for the details.
The streamed segment-tree algorithm needs \f$ O(n \log^d (n) + k)\f$ The streamed segment-tree algorithm needs \f$ O(n \log^d (n) + k)\f$
@ -368,7 +368,7 @@ of course the number of boxes to be checked and their distribution. In
cases where the callback runtime is dominant, it may be best to make cases where the callback runtime is dominant, it may be best to make
the threshold parameter small. Otherwise a `cutoff`\f$ =\sqrt{n}\f$ can the threshold parameter small. Otherwise a `cutoff`\f$ =\sqrt{n}\f$ can
lead to acceptable results. For well distributed boxes the original lead to acceptable results. For well distributed boxes the original
paper \cite cgal:ze-fsbi-02 gives optimal cutoffs in the thousands. paper \cgalCite{cgal:ze-fsbi-02} gives optimal cutoffs in the thousands.
Anyway, for optimal runtime some experiments to compare different Anyway, for optimal runtime some experiments to compare different
cutoff parameters are recommended. cutoff parameters are recommended.
@ -462,7 +462,7 @@ stored in the `boxes` so far.
\section Box_intersection_dDesign Design and Implementation History \section Box_intersection_dDesign Design and Implementation History
Lutz Kettner and Andreas Meyer implemented the algorithms starting Lutz Kettner and Andreas Meyer implemented the algorithms starting
from the publication \cite cgal:ze-fsbi-02. We had access to the from the publication \cgalCite{cgal:ze-fsbi-02}. We had access to the
original C implementation of Afra Zomorodian, which helped clarifying original C implementation of Afra Zomorodian, which helped clarifying
some questions, and we are grateful to the help of Afra Zomorodian in some questions, and we are grateful to the help of Afra Zomorodian in
answering our questions during his visit. We thank Steve Robbins for answering our questions during his visit. We thank Steve Robbins for

View File

@ -156,11 +156,11 @@ namespace CGAL {
\cgalHeading{Implementation} \cgalHeading{Implementation}
The implemented algorithm is described in \cite cgal:ze-fsbi-02 as The implemented algorithm is described in \cgalCite{cgal:ze-fsbi-02} as
version two. Its performance depends on a `cutoff` parameter. version two. Its performance depends on a `cutoff` parameter.
When the size of both iterator ranges drops below the `cutoff` When the size of both iterator ranges drops below the `cutoff`
parameter the function switches from the streamed segment-tree parameter the function switches from the streamed segment-tree
algorithm to the two-way-scan algorithm, see \cite cgal:ze-fsbi-02 algorithm to the two-way-scan algorithm, see \cgalCite{cgal:ze-fsbi-02}
for the details. for the details.
The streamed segment-tree algorithm needs \f$ O(n \log^d (n) + k)\f$ The streamed segment-tree algorithm needs \f$ O(n \log^d (n) + k)\f$
@ -181,7 +181,7 @@ namespace CGAL {
cases where the callback runtime is dominant, it may be best to make cases where the callback runtime is dominant, it may be best to make
the threshold parameter small. Otherwise a `cutoff`\f$ =\sqrt{n}\f$ can the threshold parameter small. Otherwise a `cutoff`\f$ =\sqrt{n}\f$ can
lead to acceptable results. For well distributed boxes the original lead to acceptable results. For well distributed boxes the original
paper \cite cgal:ze-fsbi-02 gives optimal cutoffs in the thousands. paper \cgalCite{cgal:ze-fsbi-02} gives optimal cutoffs in the thousands.
Anyway, for optimal runtime some experiments to compare different Anyway, for optimal runtime some experiments to compare different
cutoff parameters are recommended. See also cutoff parameters are recommended. See also
Section \ref secboxintersperformance . Section \ref secboxintersperformance .

View File

@ -9,7 +9,7 @@ namespace CGAL {
\section CGAL_ipeletsIntroduction Introduction \section CGAL_ipeletsIntroduction Introduction
The Ipe extensible drawing editor (<A HREF="http://tclab.kaist.ac.kr/ipe/">http://tclab.kaist.ac.kr/ipe/</A>) \cite schwarzkopf1995ede, \cite ipe:man-09 The Ipe extensible drawing editor (<A HREF="http://tclab.kaist.ac.kr/ipe/">http://tclab.kaist.ac.kr/ipe/</A>) \cgalCite{schwarzkopf1995ede}, \cgalCite{ipe:man-09}
is a tool used by computational geometry researchers to produce 2D figures for inclusion in articles or presentations. is a tool used by computational geometry researchers to produce 2D figures for inclusion in articles or presentations.
The extensible adjective sheds a light on an important feature: The extensible adjective sheds a light on an important feature:
the possibility for users to write small extensions (called <I>ipelets</I>) the possibility for users to write small extensions (called <I>ipelets</I>)

View File

@ -73,12 +73,12 @@ The following example shows how to use a functor of the kernel.
The first pieces of prototype code were comparisons of algebraic The first pieces of prototype code were comparisons of algebraic
numbers of degree 2, written by Olivier Devillers numbers of degree 2, written by Olivier Devillers
\cite cgal:dfmt-amafe-00,cgal:dfmt-amafe-02. \cgalCite{cgal:dfmt-amafe-00},cgal:dfmt-amafe-02.
Some work was then done in the direction of a "kernel" for Some work was then done in the direction of a "kernel" for
\cgal.\cgalFootnote{Monique Teillaud, First Prototype of a \cgal Geometric Kernel with Circular Arcs, Technical Report ECG-TR-182203-01, 2002 \cgal.\cgalFootnote{Monique Teillaud, First Prototype of a \cgal Geometric Kernel with Circular Arcs, Technical Report ECG-TR-182203-01, 2002
Sylvain Pion and Monique Teillaud, Towards a \cgal-like kernel for curves, Technical Report ECG-TR-302206-01, 2003} and the first design emerged in Sylvain Pion and Monique Teillaud, Towards a \cgal-like kernel for curves, Technical Report ECG-TR-302206-01, 2003} and the first design emerged in
\cite cgal:ekptt-tock-04. \cgalCite{cgal:ekptt-tock-04}.
The code of this package was initially written by Sylvain Pion and The code of this package was initially written by Sylvain Pion and
Monique Teillaud who also wrote the manual. Athanasios Kakargias had Monique Teillaud who also wrote the manual. Athanasios Kakargias had

View File

@ -193,7 +193,7 @@ The first version of the package was co-authored by Pedro Machado
Manh&atilde;es de Castro and Monique Teillaud, and integrated in CGAL Manh&atilde;es de Castro and Monique Teillaud, and integrated in CGAL
3.4. Fr&eacute;d&eacute;ric Cazals and S&eacute;bastien Loriot extended the 3.4. Fr&eacute;d&eacute;ric Cazals and S&eacute;bastien Loriot extended the
package by providing functionalities restricted on a given sphere package by providing functionalities restricted on a given sphere
\cite cclt-dc3sk-08. \cgalCite{cclt-dc3sk-08}.
Sylvain Pion is acknowledged for helpful discussions. Sylvain Pion is acknowledged for helpful discussions.

View File

@ -43,7 +43,7 @@ reference pages. Note that circulators are not part of \stl, but of \cgal.
\subsection sectionIntroduction Introduction \subsection sectionIntroduction Introduction
The concept of iterators in \stl is tailored for linear The concept of iterators in \stl is tailored for linear
sequences \cite cgal:ansi-is14882-98, \cite cgal:ms-strg-96. In contrast, circular sequences \cgalCite{cgal:ansi-is14882-98}, \cgalCite{cgal:ms-strg-96}. In contrast, circular
sequences occur naturally in many combinatorial and geometric sequences occur naturally in many combinatorial and geometric
structures. Examples are polyhedral surfaces and planar maps, where structures. Examples are polyhedral surfaces and planar maps, where
the edges emanating from a vertex or the edges around a facet form a the edges emanating from a vertex or the edges around a facet form a

View File

@ -33,7 +33,7 @@ circulators are a contradiction, since any circulator is supposed to
return once to itself. Output circulators are not supported since they return once to itself. Output circulators are not supported since they
would be indistinguishable from output iterators.}. Most requirements would be indistinguishable from output iterators.}. Most requirements
for circulators are equal to those for iterators. We present the for circulators are equal to those for iterators. We present the
changes, please refer to [\cite cgal:ms-strg-96, chapter 18 or \cite cgal:ansi-is14882-98] changes, please refer to [\cgalCite{cgal:ms-strg-96}, chapter 18 or \cgalCite{cgal:ansi-is14882-98}]
for the iterator requirements. for the iterator requirements.
<B>Past-the-end value:</B> There is no past-the-end value for circulators. <B>Past-the-end value:</B> There is no past-the-end value for circulators.

View File

@ -1423,9 +1423,9 @@ Lastly we remove the dynamic onmerge functor (step 8). This is done by initializ
\section sec_definition Mathematical Definitions \section sec_definition Mathematical Definitions
The initial definition of combinatorial map in any dimension is given The initial definition of combinatorial map in any dimension is given
in \cite cgal:l-tmbrc-91, \cite l-ndgcm-94. But it allows only to in \cgalCite{cgal:l-tmbrc-91}, \cgalCite{l-ndgcm-94}. But it allows only to
represent objects without boundaries. This definition was extended represent objects without boundaries. This definition was extended
\cite cgal:pabl-cco-07, \cite cgal:d-ccccg-10 in order to allow to \cgalCite{cgal:pabl-cco-07}, \cgalCite{cgal:d-ccccg-10} in order to allow to
represent objects with boundaries, based on the notions of partial represent objects with boundaries, based on the notions of partial
permutations and partial involutions. permutations and partial involutions.

View File

@ -17,13 +17,13 @@ decomposing both polyhedra into convex pieces, compute pair-wise
Minkowski sums of the convex pieces, and unite the pair-wise sums. Minkowski sums of the convex pieces, and unite the pair-wise sums.
While it is desirable to have a decomposition into a minimum number of While it is desirable to have a decomposition into a minimum number of
pieces, this problem is known to be NP-hard \cite c-cpplb-84. Our pieces, this problem is known to be NP-hard \cgalCite{c-cpplb-84}. Our
implementation decomposes a Nef polyhedron \f$ N\f$ into \f$ O(r^2)\f$ convex implementation decomposes a Nef polyhedron \f$ N\f$ into \f$ O(r^2)\f$ convex
pieces, where \f$ r\f$ is the number of edges that have two adjacent pieces, where \f$ r\f$ is the number of edges that have two adjacent
facets that span an angle of more than 180 degrees with respect to the facets that span an angle of more than 180 degrees with respect to the
interior of the polyhedron. Those edges are also called reflex edges. interior of the polyhedron. Those edges are also called reflex edges.
The bound of \f$ O(r^2)\f$ convex pieces is worst-case The bound of \f$ O(r^2)\f$ convex pieces is worst-case
optimal \cite c-cpplb-84. optimal \cgalCite{c-cpplb-84}.
\cgalFigureBegin{figverticalDecomposition,two_cubes_all_in_one.png} \cgalFigureBegin{figverticalDecomposition,two_cubes_all_in_one.png}
Vertical decomposition based on the insertion of vertical facets (viewed from the top). Left: Non-convex polyhedron. Middle: Non-vertical reflex edges have been resolved. Right: Vertical reflex edges have been resolved. The sub-volumes are convex. Vertical decomposition based on the insertion of vertical facets (viewed from the top). Left: Non-convex polyhedron. Middle: Non-vertical reflex edges have been resolved. Right: Vertical reflex edges have been resolved. The sub-volumes are convex.

View File

@ -40,7 +40,7 @@ functions that return instances of these types:
\cgalHeading{Implementation} \cgalHeading{Implementation}
This function uses the algorithm of Akl and This function uses the algorithm of Akl and
Toussaint \cite at-fcha-78 that requires \f$ O(n \log n)\f$ time for \f$ n\f$ input Toussaint \cgalCite{at-fcha-78} that requires \f$ O(n \log n)\f$ time for \f$ n\f$ input
points. points.

View File

@ -41,7 +41,7 @@ functions that return instances of these types:
\cgalHeading{Implementation} \cgalHeading{Implementation}
This function implements the non-recursive variation of This function implements the non-recursive variation of
Eddy's algorithm \cite e-nchap-77 described in \cite b-chfsp-78. Eddy's algorithm \cgalCite{e-nchap-77} described in \cgalCite{b-chfsp-78}.
This algorithm requires \f$ O(n h)\f$ time This algorithm requires \f$ O(n h)\f$ time
in the worst case for \f$ n\f$ input points with \f$ h\f$ extreme points. in the worst case for \f$ n\f$ input points with \f$ h\f$ extreme points.

View File

@ -41,8 +41,8 @@ functions that return instances of these types:
\cgalHeading{Implementation} \cgalHeading{Implementation}
This function implements Eddy's algorithm This function implements Eddy's algorithm
\cite e-nchap-77, which is the two-dimensional version of the quickhull \cgalCite{e-nchap-77}, which is the two-dimensional version of the quickhull
algorithm \cite bdh-qach-96. algorithm \cgalCite{bdh-qach-96}.
This algorithm requires \f$ O(n h)\f$ time This algorithm requires \f$ O(n h)\f$ time
in the worst case for \f$ n\f$ input points with \f$ h\f$ extreme points. in the worst case for \f$ n\f$ input points with \f$ h\f$ extreme points.

View File

@ -44,8 +44,8 @@ functions that return instances of these types:
\cgalHeading{Implementation} \cgalHeading{Implementation}
This function implements Andrew's variant of the Graham This function implements Andrew's variant of the Graham
scan algorithm \cite a-aeach-79 and follows the presentation of Mehlhorn scan algorithm \cgalCite{a-aeach-79} and follows the presentation of Mehlhorn
\cite m-mdscg-84. This algorithm requires \f$ O(n \log n)\f$ time \cgalCite{m-mdscg-84}. This algorithm requires \f$ O(n \log n)\f$ time
in the worst case for \f$ n\f$ input points. in the worst case for \f$ n\f$ input points.
@ -93,14 +93,14 @@ functions that return instances of these types:
\cgalHeading{Implementation} \cgalHeading{Implementation}
The function uses Andrew's The function uses Andrew's
variant of the Graham scan algorithm \cite a-aeach-79. This algorithm variant of the Graham scan algorithm \cgalCite{a-aeach-79}. This algorithm
requires \f$ O(n \log n)\f$ time in the worst case for \f$ n\f$ input points. requires \f$ O(n \log n)\f$ time in the worst case for \f$ n\f$ input points.
\cgalHeading{Example} \cgalHeading{Example}
In the following example `ch_graham_andrew_scan()` is used to In the following example `ch_graham_andrew_scan()` is used to
realize Anderson's variant \cite a-readc-78 of the Graham Scan realize Anderson's variant \cgalCite{a-readc-78} of the Graham Scan
\cite g-eadch-72. The points are sorted counterclockwise around the leftmost \cgalCite{g-eadch-72}. The points are sorted counterclockwise around the leftmost
point using the `Less_rotate_ccw_2` predicate, as defined in point using the `Less_rotate_ccw_2` predicate, as defined in
the concept `ConvexHullTraits_2`. According to the definition the concept `ConvexHullTraits_2`. According to the definition
of `Less_rotate_ccw_2`, the leftmost point is the last point in the sorted of `Less_rotate_ccw_2`, the leftmost point is the last point in the sorted
@ -140,7 +140,7 @@ not left of \f$ pq\f$, where \f$ p\f$ is the value of `first` and \f$ q\f$ is
the value of `beyond` \f$ -1\f$. The resulting sequence is placed the value of `beyond` \f$ -1\f$. The resulting sequence is placed
starting at `result` with \f$ p\f$; point \f$ q\f$ is omitted. The starting at `result` with \f$ p\f$; point \f$ q\f$ is omitted. The
past-the-end iterator for the sequence is returned. past-the-end iterator for the sequence is returned.
\pre The range [`first`,`beyond`) contains at least two different points. The points in [`first`,`beyond`) are sorted with respect to \f$ pq\f$, <I>i.e.</I>, the sequence of points in [`first`,`beyond`) define a counterclockwise polygon, for which the Graham-Sklansky-procedure \cite s-mcrm-72 works. \pre The range [`first`,`beyond`) contains at least two different points. The points in [`first`,`beyond`) are sorted with respect to \f$ pq\f$, <I>i.e.</I>, the sequence of points in [`first`,`beyond`) define a counterclockwise polygon, for which the Graham-Sklansky-procedure \cgalCite{s-mcrm-72} works.
*/ */
template <class BidirectionalIterator, class OutputIterator, template <class BidirectionalIterator, class OutputIterator,
class Traits> class Traits>

View File

@ -41,7 +41,7 @@ functions that return instances of these types:
\cgalHeading{Implementation} \cgalHeading{Implementation}
This function uses the Jarvis march (gift-wrapping) This function uses the Jarvis march (gift-wrapping)
algorithm \cite j-ichfs-73. This algorithm requires \f$ O(n h)\f$ time algorithm \cgalCite{j-ichfs-73}. This algorithm requires \f$ O(n h)\f$ time
in the worst case for \f$ n\f$ input points with \f$ h\f$ extreme points. in the worst case for \f$ n\f$ input points with \f$ h\f$ extreme points.
@ -88,7 +88,7 @@ functions that return instances of these types:
\cgalHeading{Implementation} \cgalHeading{Implementation}
The function uses the Jarvis march (gift-wrapping) algorithm \cite j-ichfs-73. The function uses the Jarvis march (gift-wrapping) algorithm \cgalCite{j-ichfs-73}.
This algorithm requires \f$ O(n h)\f$ time in the worst This algorithm requires \f$ O(n h)\f$ time in the worst
case for \f$ n\f$ input points with \f$ h\f$ extreme points. case for \f$ n\f$ input points with \f$ h\f$ extreme points.

View File

@ -39,7 +39,7 @@ functions that return instances of these types:
\cgalHeading{Implementation} \cgalHeading{Implementation}
It uses an implementation of Melkman's algorithm \cite m-olcch-87. It uses an implementation of Melkman's algorithm \cgalCite{m-olcch-87}.
Running time of this is linear. Running time of this is linear.

View File

@ -46,11 +46,11 @@ functions that return instances of these types:
One of two algorithms is used, One of two algorithms is used,
depending on the type of iterator used to specify the input points. For depending on the type of iterator used to specify the input points. For
input iterators, the algorithm used is that of Bykat \cite b-chfsp-78, which input iterators, the algorithm used is that of Bykat \cgalCite{b-chfsp-78}, which
has a worst-case running time of \f$ O(n h)\f$, where \f$ n\f$ is the number of input has a worst-case running time of \f$ O(n h)\f$, where \f$ n\f$ is the number of input
points and \f$ h\f$ is the number of extreme points. For all other types of points and \f$ h\f$ is the number of extreme points. For all other types of
iterators, the \f$ O(n \log n)\f$ algorithm of of Akl and Toussaint iterators, the \f$ O(n \log n)\f$ algorithm of of Akl and Toussaint
\cite at-fcha-78 is used. \cgalCite{at-fcha-78} is used.
*/ */
@ -127,7 +127,7 @@ functions that return instances of these types:
\cgalHeading{Implementation} \cgalHeading{Implementation}
This function uses Andrew's variant of Graham's scan algorithm This function uses Andrew's variant of Graham's scan algorithm
\cite a-aeach-79, \cite m-mdscg-84. The algorithm has worst-case running time \cgalCite{a-aeach-79}, \cgalCite{m-mdscg-84}. The algorithm has worst-case running time
of \f$ O(n \log n)\f$ for \f$ n\f$ input points. of \f$ O(n \log n)\f$ for \f$ n\f$ input points.
@ -191,7 +191,7 @@ functions that return instances of these types:
\cgalHeading{Implementation} \cgalHeading{Implementation}
This function uses Andrew's This function uses Andrew's
variant of Graham's scan algorithm \cite a-aeach-79, \cite m-mdscg-84. The algorithm variant of Graham's scan algorithm \cgalCite{a-aeach-79}, \cgalCite{m-mdscg-84}. The algorithm
has worst-case running time of \f$ O(n \log n)\f$ for \f$ n\f$ input points. has worst-case running time of \f$ O(n \log n)\f$ for \f$ n\f$ input points.

View File

@ -52,17 +52,17 @@ class need not be specified and defaults to types and operations defined
in the kernel in which the input point type is defined. in the kernel in which the input point type is defined.
Given a sequence of \f$ n\f$ input points with \f$ h\f$ extreme points, Given a sequence of \f$ n\f$ input points with \f$ h\f$ extreme points,
the function `convex_hull_2()` uses either the output-sensitive \f$ O(n h)\f$ algorithm of Bykat \cite b-chfsp-78 the function `convex_hull_2()` uses either the output-sensitive \f$ O(n h)\f$ algorithm of Bykat \cgalCite{b-chfsp-78}
(a non-recursive version of the quickhull \cite bdh-qach-96 algorithm) or the algorithm of Akl and Toussaint, which requires \f$ O(n \log n)\f$ time (a non-recursive version of the quickhull \cgalCite{bdh-qach-96} algorithm) or the algorithm of Akl and Toussaint, which requires \f$ O(n \log n)\f$ time
in the worst case. The algorithm chosen depends on the kind of in the worst case. The algorithm chosen depends on the kind of
iterator used to specify the input points. These two algorithms are iterator used to specify the input points. These two algorithms are
also available via the functions `ch_bykat()` and `ch_akl_toussaint()`, also available via the functions `ch_bykat()` and `ch_akl_toussaint()`,
respectively. Also available are respectively. Also available are
the \f$ O(n \log n)\f$ Graham-Andrew scan algorithm \cite a-aeach-79, \cite m-mdscg-84 the \f$ O(n \log n)\f$ Graham-Andrew scan algorithm \cgalCite{a-aeach-79}, \cgalCite{m-mdscg-84}
(`ch_graham_andrew()`), (`ch_graham_andrew()`),
the \f$ O(n h)\f$ Jarvis march algorithm \cite j-ichfs-73 the \f$ O(n h)\f$ Jarvis march algorithm \cgalCite{j-ichfs-73}
(`ch_jarvis()`), (`ch_jarvis()`),
and Eddy's \f$ O(n h)\f$ algorithm \cite e-nchap-77 and Eddy's \f$ O(n h)\f$ algorithm \cgalCite{e-nchap-77}
(`ch_eddy()`), which corresponds to the (`ch_eddy()`), which corresponds to the
two-dimensional version of the quickhull algorithm. two-dimensional version of the quickhull algorithm.
The linear-time algorithm of Melkman for producing the convex hull of The linear-time algorithm of Melkman for producing the convex hull of
@ -89,7 +89,7 @@ The functions `lower_hull_points_2()` and `upper_hull_points_2()`
provide the computation of the counterclockwise provide the computation of the counterclockwise
sequence of extreme points on the lower hull and upper hull, sequence of extreme points on the lower hull and upper hull,
respectively. The algorithm used in these functions is respectively. The algorithm used in these functions is
Andrew's variant of Graham's scan algorithm \cite a-aeach-79, \cite m-mdscg-84, Andrew's variant of Graham's scan algorithm \cgalCite{a-aeach-79}, \cgalCite{m-mdscg-84},
which has worst-case running time of \f$ O(n \log n)\f$. which has worst-case running time of \f$ O(n \log n)\f$.
There are also functions available for computing certain subsequences There are also functions available for computing certain subsequences

View File

@ -31,7 +31,7 @@ then the default traits class of `::convex_hull_3()` is `Convex_hull_traits_3<R>
\cgalHeading{Implementation} \cgalHeading{Implementation}
The algorithm implemented by these functions is the quickhull algorithm of The algorithm implemented by these functions is the quickhull algorithm of
Barnard <I>et al.</I> \cite bdh-qach-96. Barnard <I>et al.</I> \cgalCite{bdh-qach-96}.
*/ */

View File

@ -6,7 +6,7 @@ namespace CGAL {
computes the convex hull polyhedron computes the convex hull polyhedron
of the three-dimensional points in the range [`first`,`beyond`) of the three-dimensional points in the range [`first`,`beyond`)
and assigns it to `P`. If `test_correctness` is set to and assigns it to `P`. If `test_correctness` is set to
`true`, the tests described in \cite mnssssu-cgpvg-96 are `true`, the tests described in \cgalCite{mnssssu-cgpvg-96} are
used to determine the correctness of the resulting polyhedron. used to determine the correctness of the resulting polyhedron.
@ -32,7 +32,7 @@ the representation class `R` required by
\cgalHeading{Implementation} \cgalHeading{Implementation}
This function uses the `d`-dimensional convex hull incremental construction This function uses the `d`-dimensional convex hull incremental construction
algorithm \cite cms-frric-93 algorithm \cgalCite{cms-frric-93}
with `d` fixed to 3. The algorithm requires \f$ O(n^2)\f$ time in the with `d` fixed to 3. The algorithm requires \f$ O(n^2)\f$ time in the
worst case and \f$ O(n \log n)\f$ expected time. worst case and \f$ O(n \log n)\f$ expected time.

View File

@ -36,7 +36,7 @@ the facet type must be `ConvexHullPolyhedronFacet_3`.
\cgalHeading{Implementation} \cgalHeading{Implementation}
This function implements the tests described in \cite mnssssu-cgpvg-96 to This function implements the tests described in \cgalCite{mnssssu-cgpvg-96} to
determine convexity and requires \f$ O(e + f)\f$ time for a polyhedron with determine convexity and requires \f$ O(e + f)\f$ time for a polyhedron with
\f$ e\f$ edges and \f$ f\f$ faces. \f$ e\f$ edges and \f$ f\f$ faces.

View File

@ -35,7 +35,7 @@ triangulation to get a fully dynamic computation.
The function The function
`convex_hull_3()` provides an `convex_hull_3()` provides an
implementation of the quickhull algorithm \cite bdh-qach-96 for three implementation of the quickhull algorithm \cgalCite{bdh-qach-96} for three
dimensionsquickhull, 3D. There are two versions of this dimensionsquickhull, 3D. There are two versions of this
function available, one that can be used when it is known that the output function available, one that can be used when it is known that the output
will be a polyhedron (<I>i.e.</I>, there are more than three points and will be a polyhedron (<I>i.e.</I>, there are more than three points and
@ -59,7 +59,7 @@ account.
\subsection Convex_hull_3ConvexityChecking Convexity Checking \subsection Convex_hull_3ConvexityChecking Convexity Checking
The function `is_strongly_convex_3()` The function `is_strongly_convex_3()`
implements the algorithm of Mehlhorn <I>et al.</I> \cite mnssssu-cgpvg-96 implements the algorithm of Mehlhorn <I>et al.</I> \cgalCite{mnssssu-cgpvg-96}
to determine if the vertices of a given polytope constitute a strongly convex to determine if the vertices of a given polytope constitute a strongly convex
point set or not. This function is used in postcondition testing for point set or not. This function is used in postcondition testing for
`convex_hull_3()`. `convex_hull_3()`.
@ -79,7 +79,7 @@ of the convex hull.
The function `convex_hull_incremental_3()` provides an The function `convex_hull_incremental_3()` provides an
interface similar to `convex_hull_3()` for the `d`-dimensional interface similar to `convex_hull_3()` for the `d`-dimensional
incremental construction algorithm \cite cms-frric-93 incremental construction algorithm \cgalCite{cms-frric-93}
implemented by the class `Convex_hull_d<R>` that is specialized implemented by the class `Convex_hull_d<R>` that is specialized
to three dimensions. This function accepts an iterator range over a set of to three dimensions. This function accepts an iterator range over a set of
input points and returns a polyhedron, but it does not have a traits class input points and returns a polyhedron, but it does not have a traits class

View File

@ -58,7 +58,7 @@ successively assigned to \f$ f\f$ \f$ \}\f$
\cgalHeading{Implementation} \cgalHeading{Implementation}
The implementation of type `Convex_hull_d` is based on The implementation of type `Convex_hull_d` is based on
\cite cms-frric-93 and \cite bms-dgc-94. The details \cgalCite{cms-frric-93} and \cgalCite{bms-dgc-94}. The details
of the implementation can be found in the implementation document of the implementation can be found in the implementation document
available at the download site of this package. available at the download site of this package.

View File

@ -43,12 +43,12 @@ model <I>e.g.</I>, `Homogeneous<RT>` or `Cartesian<FT>` for use
with `Convex_hull_d`, where the dimension is fixed to three. with `Convex_hull_d`, where the dimension is fixed to three.
The validity of the computed convex hull can be checked using the The validity of the computed convex hull can be checked using the
member function `Convex_hull_d::is_valid`, which implements the algorithm member function `Convex_hull_d::is_valid`, which implements the algorithm
of Mehlhorn <I>et al.</I>\cite mnssssu-cgpvg-96 to determine if of Mehlhorn <I>et al.</I>\cgalCite{mnssssu-cgpvg-96} to determine if
the vertices of a given polytope constitute a strongly convex point the vertices of a given polytope constitute a strongly convex point
set or not. set or not.
The implementation follows the papers \cite cms-frric-93 and The implementation follows the papers \cgalCite{cms-frric-93} and
\cite bms-dgc-94. \cgalCite{bms-dgc-94}.
\section Convex_hull_dDelaunay Delaunay Triangulation \section Convex_hull_dDelaunay Delaunay Triangulation

View File

@ -981,7 +981,7 @@ public:
/*{\Mimplementation The implementation of type |\Mtype| is based on /*{\Mimplementation The implementation of type |\Mtype| is based on
\cite{cms:fourresults} and \cite{BMS:degeneracy}. The details of the \cgalCite{cms:fourresults} and \cgalCite{BMS:degeneracy}. The details of the
implementation can be found in the implementation document available implementation can be found in the implementation document available
at the download site of this package. at the download site of this package.

View File

@ -203,9 +203,9 @@ package you can find a sentence similar to the following.
Some parts of the library use exceptions, but there is no general specific Some parts of the library use exceptions, but there is no general specific
policy concerning exception handling in \cgal. It is nevertheless good to policy concerning exception handling in \cgal. It is nevertheless good to
target exception safety, as much as possible. Good references on exception target exception safety, as much as possible. Good references on exception
safety are: Appendix E of \cite cgal:s-cpl-97 (also available at safety are: Appendix E of \cgalCite{cgal:s-cpl-97} (also available at
<A HREF="http://www.research.att.com/~bs/3rd_safe0.html"><TT>http://www.research.att.com/~bs/3rd_safe0.html</TT></A>), <A HREF="http://www.research.att.com/~bs/3rd_safe0.html"><TT>http://www.research.att.com/~bs/3rd_safe0.html</TT></A>),
and \cite cgal:a-esgc-98 (also available at and \cgalCite{cgal:a-esgc-98} (also available at
<A HREF="http://www.boost.org/more/generic_exception_safety.html"><TT>http://www.boost.org/more/generic_exception_safety.html</TT></A>). <A HREF="http://www.boost.org/more/generic_exception_safety.html"><TT>http://www.boost.org/more/generic_exception_safety.html</TT></A>).
\section secchecks_req_and_rec Requirements and recommendations \section secchecks_req_and_rec Requirements and recommendations

View File

@ -249,7 +249,7 @@ The first list of items are meant as rules, <I>i.e.</I>, you should follow them.
that are declared `m`utable. An example that are declared `m`utable. An example
is the caching of results from expensive computations. For more is the caching of results from expensive computations. For more
information about conceptually `c`onst functions and mutable data information about conceptually `c`onst functions and mutable data
members see \cite cgal:m-ec-97. members see \cgalCite{cgal:m-ec-97}.
- Prefer \cpp-style to C-style casts, <I>e.g.</I>, use `static_cast<double>( i)` instead of `(`double)i. - Prefer \cpp-style to C-style casts, <I>e.g.</I>, use `static_cast<double>( i)` instead of `(`double)i.
- Protect header files against multiple inclusion, <I>e.g.</I> the file <TT>This_is_an_example.h</TT> should begin/end with - Protect header files against multiple inclusion, <I>e.g.</I> the file <TT>This_is_an_example.h</TT> should begin/end with
\code{.cpp} \code{.cpp}

View File

@ -4,18 +4,18 @@
The following books and papers are recommended as references: The following books and papers are recommended as references:
- \cite cgal:a-gps-98 - Mathew Austern's introduction to the \stl - \cgalCite{cgal:a-gps-98} - Mathew Austern's introduction to the \stl
using the concept/model style of presentation. Austern wrote the using the concept/model style of presentation. Austern wrote the
WWW \stl documentation at SGI. WWW \stl documentation at SGI.
- \cite cgal:s-cpl-97 - Bjarne Stroustrup's introduction to - \cgalCite{cgal:s-cpl-97} - Bjarne Stroustrup's introduction to
\cpp and the \stl for those who already know some \cpp. \cpp and the \stl for those who already know some \cpp.
Stroustrup is the designer and original implementer of \cpp. Stroustrup is the designer and original implementer of \cpp.
- \cite cgal:ll-cp-98 - Stanley Lippman and Josee Lajoie's - \cgalCite{cgal:ll-cp-98} - Stanley Lippman and Josee Lajoie's
\cpp primer. \cpp primer.
- \cite cgal:m-ec-97 - Scott Meyers's book on ways to improve - \cgalCite{cgal:m-ec-97} - Scott Meyers's book on ways to improve
your \cpp programs. Items 21 and 29 discuss the concept of your \cpp programs. Items 21 and 29 discuss the concept of
const-correctness. const-correctness.
- \cite fgkss-dccga-00 - The \cgal design paper. - \cgalCite{fgkss-dccga-00} - The \cgal design paper.
- \cite hhkps-aegk-01 - The new \cgal kernel design paper. - \cgalCite{hhkps-aegk-01} - The new \cgal kernel design paper.
*/ */

View File

@ -27,7 +27,7 @@ projects 21957 (CGAL) and 28155 (GALIA).
\section secdesign_goals Primary design goals \section secdesign_goals Primary design goals
The primary design goals of \cgal are described in \cite fgkss-dccga-00: The primary design goals of \cgal are described in \cgalCite{fgkss-dccga-00:}
\subsection Developer_manualCorrectness Correctness \subsection Developer_manualCorrectness Correctness
@ -84,7 +84,7 @@ integrate new classes and algorithms into \cgal.
\cgal should be open to coexist with other libraries, or better, to \cgal should be open to coexist with other libraries, or better, to
work together with other libraries and programs. The \cpp work together with other libraries and programs. The \cpp
Standard \cite cgal:ansi-is14882-98 Standard \cgalCite{cgal:ansi-is14882-98}
defines with the \cpp Standard Library a common defines with the \cpp Standard Library a common
foundation for all \cpp platforms. foundation for all \cpp platforms.
@ -132,7 +132,7 @@ maps library.
A goal with similar implications as uniformity is a design A goal with similar implications as uniformity is a design
with complete and minimal interfaces, see for example Item 18 with complete and minimal interfaces, see for example Item 18
in Ref. \cite cgal:m-ec-97. in Ref. \cgalCite{cgal:m-ec-97}.
An object or module should be complete in its An object or module should be complete in its
functionality, but should functionality, but should
not provide additional decorating functionality. Even if a certain not provide additional decorating functionality. Even if a certain
@ -167,7 +167,7 @@ clearly documented which degeneracies are handled and which are not.
For most geometric algorithms theoretical results for the time and space For most geometric algorithms theoretical results for the time and space
complexity are known. Also, the theoretic interest in efficiency for complexity are known. Also, the theoretic interest in efficiency for
realistic inputs, as opposed to worst-case situations, is realistic inputs, as opposed to worst-case situations, is
growing \cite v-ffrim-97. growing \cgalCite{v-ffrim-97}.
For practical purposes, insight into the constant factors hidden in the For practical purposes, insight into the constant factors hidden in the
\f$ O\f$-notation is necessary, especially if there are several competing \f$ O\f$-notation is necessary, especially if there are several competing
algorithms. algorithms.

View File

@ -36,8 +36,8 @@ Section \ref sechandle_vs_it_vs_circ below discusses when handles
should be used in your code. should be used in your code.
The concepts of iterators is relatively well described in textbooks such as The concepts of iterators is relatively well described in textbooks such as
Stroustrup's book (<I>The C++ Programming Language</I> \cite cgal:s-cpl-97) Stroustrup's book (<I>The C++ Programming Language</I> \cgalCite{cgal:s-cpl-97})
and Austern's book (<I>Generic Programming and the \stl</I> \cite cgal:a-gps-98) and Austern's book (<I>Generic Programming and the \stl</I> \cgalCite{cgal:a-gps-98})
and in chapter <A HREF="http://www.cgal.org/Manual/latest/doc_html/cgal_manual/Circulator/Chapter_main.html">Handles and Circulators</A> of the and in chapter <A HREF="http://www.cgal.org/Manual/latest/doc_html/cgal_manual/Circulator/Chapter_main.html">Handles and Circulators</A> of the
<I>Support Library</I> part of the \cgal manual. <I>Support Library</I> part of the \cgal manual.
which also presents the concepts of handles and circulators. which also presents the concepts of handles and circulators.
@ -343,7 +343,7 @@ for more information and examples.
Every container class in \cgal should strive to be a model for the Every container class in \cgal should strive to be a model for the
\stl concept of a container. As for all concepts, this means that \stl concept of a container. As for all concepts, this means that
certain types and functions are provided, as detailed, for example certain types and functions are provided, as detailed, for example
in \cite cgal:a-gps-98. For the purposes of this discussion, the relevant in \cgalCite{cgal:a-gps-98}. For the purposes of this discussion, the relevant
types are: types are:
<TABLE><TR><TD ALIGN=LEFT VALIGN=TOP NOWRAP> <TABLE><TR><TD ALIGN=LEFT VALIGN=TOP NOWRAP>

View File

@ -13,7 +13,7 @@ stand-alone class, which is parameterized by a kernel class, and as a
type in the kernel class. Each operation in the kernel is provided via type in the kernel class. Each operation in the kernel is provided via
a functor class\cgalFootnote{A class which defines a member `operator()`.} in the kernel a functor class\cgalFootnote{A class which defines a member `operator()`.} in the kernel
class and also as either a member function or a global function. class and also as either a member function or a global function.
See \cite hhkps-aegk-01 for more details about this design. See \cgalCite{hhkps-aegk-01} for more details about this design.
Ideally, if the kernel provides all the primitives required, you can Ideally, if the kernel provides all the primitives required, you can
use any kernel as a traits class directly with your algorithm or data use any kernel as a traits class directly with your algorithm or data
structure; see also Chapter \ref chaptraits_classes . If you need structure; see also Chapter \ref chaptraits_classes . If you need
@ -58,14 +58,14 @@ Each kernel object is provided as both a stand-alone class, which is
parameterized by a kernel class (`Geo_object_D<K>`), and as a type parameterized by a kernel class (`Geo_object_D<K>`), and as a type
in the kernel class (`K::Geo_object_D`). While the former use may in the kernel class (`K::Geo_object_D`). While the former use may
be more natural for users not interested in the flexibility of the kernel be more natural for users not interested in the flexibility of the kernel
(and is compatible with the original kernel design \cite fgkss-dccga-00), the (and is compatible with the original kernel design \cgalCite{fgkss-dccga-00}), the
latter syntax should be used in all code distributed with the library latter syntax should be used in all code distributed with the library
as it allows types in the kernel to be easily exchanged and modified. as it allows types in the kernel to be easily exchanged and modified.
Similarly, each operation and construction in the kernel is provided via Similarly, each operation and construction in the kernel is provided via
a function object class in the a function object class in the
kernel class and also as either a member function or a global function; kernel class and also as either a member function or a global function;
developers should use the function object classes to gain access to the developers should use the function object classes to gain access to the
functionality. See \cite hhkps-aegk-01 for more details about this functionality. See \cgalCite{hhkps-aegk-01} for more details about this
design and how it is accomplished. design and how it is accomplished.
The classes for the geometric objects in the kernel have a The classes for the geometric objects in the kernel have a

View File

@ -17,7 +17,7 @@ describe one way to address this using allocators. An allocator
encapsulates the information about an allocation model. encapsulates the information about an allocation model.
We adopted the definition of the Standard \cpp We adopted the definition of the Standard \cpp
allocator \cite cgal:ansi-is14882-98. The `std::allocator` is the allocator \cgalCite{cgal:ansi-is14882-98}. The `std::allocator` is the
only predefined and required allocator imposed by [\cpp] on all \cpp only predefined and required allocator imposed by [\cpp] on all \cpp
compiler implementations. The exact specification can also be found at compiler implementations. The exact specification can also be found at
<A HREF="http://en.wikipedia.org/wiki/Allocator_(C++)"><TT>http://en.wikipedia.org/wiki/Allocator_(C++)</TT></A>. <A HREF="http://en.wikipedia.org/wiki/Allocator_(C++)"><TT>http://en.wikipedia.org/wiki/Allocator_(C++)</TT></A>.

View File

@ -185,7 +185,7 @@ Linux
For (good) reasons that will not be discussed here, it was decided to For (good) reasons that will not be discussed here, it was decided to
use \cpp for the development of \cgal. An international standard for use \cpp for the development of \cgal. An international standard for
\cpp has been sanctioned in 1998 \cite cgal:ansi-is14882-98 and the \cpp has been sanctioned in 1998 \cgalCite{cgal:ansi-is14882-98} and the
level of compliance varies widely between different level of compliance varies widely between different
compilers, let alone bugs. compilers, let alone bugs.

View File

@ -5,7 +5,7 @@
The concept of a traits class is central to %CGAL. The name <i>traits The concept of a traits class is central to %CGAL. The name <i>traits
class</i> comes from a standard \cpp design pattern class</i> comes from a standard \cpp design pattern
\cite cgal:m-tnutt-95; you may have heard about iterator traits which \cgalCite{cgal:m-tnutt-95}; you may have heard about iterator traits which
follow this design pattern. follow this design pattern.
The traits class is used in template code to reflect properties (traits) The traits class is used in template code to reflect properties (traits)
of the actual template argument. of the actual template argument.
@ -126,7 +126,7 @@ the actual functors. Reasons for this are the following.
carry data. For example, repeated calls to a function with only carry data. For example, repeated calls to a function with only
slightly different parameters might be handled efficiently by slightly different parameters might be handled efficiently by
storing intermediate results. Functors are the natural framework storing intermediate results. Functors are the natural framework
here. See \cite hhkps-aegk-01 for more exposition. here. See \cgalCite{hhkps-aegk-01} for more exposition.
</UL> </UL>
If you really look up the documentation of the If you really look up the documentation of the

View File

@ -174,7 +174,7 @@ the lines that form the lower envelope of \f$ {\cal P}^{*}\f$ are dual to the
points along the <I>upper</I> part of \f$ {\cal P}\f$'s convex hull, and the points along the <I>upper</I> part of \f$ {\cal P}\f$'s convex hull, and the
lines that form the upper envelope of \f$ {\cal P}^{*}\f$ are dual to the lines that form the upper envelope of \f$ {\cal P}^{*}\f$ are dual to the
points along the <I>lower</I> part of the convex hull; see, points along the <I>lower</I> part of the convex hull; see,
e.g., [\cite Section 11.4 for more details. e.g., [\cgalCite{Section} 11.4 for more details.
Note that the leftmost edge of the minimization diagram is associated Note that the leftmost edge of the minimization diagram is associated
with the same line as the rightmost edge of the maximization diagram, with the same line as the rightmost edge of the maximization diagram,
and vice-verse. We can therefore skip the rightmost edges of both and vice-verse. We can therefore skip the rightmost edges of both

View File

@ -79,7 +79,7 @@ compute their envelope diagrams recursively. Finally, we merge the
diagrams, and we do this by overlaying them and then applying some diagrams, and we do this by overlaying them and then applying some
post-processing on the resulting diagram. The post-processing stage is post-processing on the resulting diagram. The post-processing stage is
non-trivial and involves the projection of intersection curves onto non-trivial and involves the projection of intersection curves onto
the \f$ xy\f$-plane - see \cite cgal:m-rgece-06 for more details. the \f$ xy\f$-plane - see \cgalCite{cgal:m-rgece-06} for more details.
\section Envelope_3The The Envelope-Traits Concept \section Envelope_3The The Envelope-Traits Concept

View File

@ -31,7 +31,7 @@ R >` for some representation class `R`,
\cgalHeading{Implementation} \cgalHeading{Implementation}
The implementation uses the centroid method The implementation uses the centroid method
described in \cite cgal:s-zkm-96 and has a worst case running time of \f$ O(r described in \cgalCite{cgal:s-zkm-96} and has a worst case running time of \f$ O(r
\cdot n + n \cdot \log n)\f$, where \f$ r\f$ is the time needed by `pg` \cdot n + n \cdot \log n)\f$, where \f$ r\f$ is the time needed by `pg`
to generate a random point. to generate a random point.

View File

@ -34,7 +34,7 @@ The implementation is based on the method of eliminating self-intersections in
a polygon by using so-called "2-opt" moves. Such a move eliminates an a polygon by using so-called "2-opt" moves. Such a move eliminates an
intersection between two edges by reversing the order of the vertices between intersection between two edges by reversing the order of the vertices between
the edges. No more than \f$ O(n^3)\f$ such moves are required to simplify a polygon the edges. No more than \f$ O(n^3)\f$ such moves are required to simplify a polygon
defined on \f$ n\f$ points \cite ls-utstp-82. defined on \f$ n\f$ points \cgalCite{ls-utstp-82}.
Intersecting edges are detected using a simple sweep through the vertices Intersecting edges are detected using a simple sweep through the vertices
and then one intersection is chosen at random to eliminate after each sweep. and then one intersection is chosen at random to eliminate after each sweep.
The worse-case running time is therefore \f$ O(n^4 \log n)\f$. The worse-case running time is therefore \f$ O(n^4 \log n)\f$.

View File

@ -10,17 +10,17 @@ combinatorial data structure, geometric interpretation is added by
classes built on top of the halfedge data structure. classes built on top of the halfedge data structure.
The data structure defined here is known as the The data structure defined here is known as the
FE-structure \cite w-ebdss-85, as FE-structure \cgalCite{w-ebdss-85}, as
halfedges \cite m-ism-88, \cite cgal:bfh-mgedm-95 or as the doubly connected edge halfedges \cgalCite{m-ism-88}, \cgalCite{cgal:bfh-mgedm-95} or as the doubly connected edge
list (DCEL) \cite bkos-cgaa-97, although the original reference for list (DCEL) \cgalCite{bkos-cgaa-97}, although the original reference for
the DCEL \cite mp-fitcp-78 describes a different data structure. The the DCEL \cgalCite{mp-fitcp-78} describes a different data structure. The
halfedge data structure can also be seen as one of the variants of the halfedge data structure can also be seen as one of the variants of the
quad-edge data structure \cite gs-pmgsc-85. In general, the quad-edge quad-edge data structure \cgalCite{gs-pmgsc-85}. In general, the quad-edge
data can represent non-orientable 2-manifolds, but the variant here is data can represent non-orientable 2-manifolds, but the variant here is
restricted to orientable 2-manifolds only. An overview and comparison restricted to orientable 2-manifolds only. An overview and comparison
of these different data structures together with a thorough of these different data structures together with a thorough
description of the design implemented here can be found description of the design implemented here can be found
in \cite k-ugpdd-99. in \cgalCite{k-ugpdd-99}.
Each edge is represented by two halfedges with opposite orientations. Each edge is represented by two halfedges with opposite orientations.
Each halfedge can store a reference to an incident face and an Each halfedge can store a reference to an incident face and an

View File

@ -33,17 +33,17 @@ structure is meant as an implementation layer. See for example the
`Polyhedron_3` class in Chapter \ref chapterPolyhedron "Polyhedral Surface". `Polyhedron_3` class in Chapter \ref chapterPolyhedron "Polyhedral Surface".
The data structure provided here is also known as the The data structure provided here is also known as the
FE-structure \cite w-ebdss-85, as FE-structure \cgalCite{w-ebdss-85}, as
halfedges \cite m-ism-88, \cite cgal:bfh-mgedm-95 or as the doubly connected edge halfedges \cgalCite{m-ism-88}, \cgalCite{cgal:bfh-mgedm-95} or as the doubly connected edge
list (DCEL) \cite bkos-cgaa-97, although the original reference for list (DCEL) \cgalCite{bkos-cgaa-97}, although the original reference for
the DCEL \cite mp-fitcp-78 describes a different data structure. The the DCEL \cgalCite{mp-fitcp-78} describes a different data structure. The
halfedge data structure can also be seen as one of the variants of the halfedge data structure can also be seen as one of the variants of the
quad-edge data structure \cite gs-pmgsc-85. In general, the quad-edge quad-edge data structure \cgalCite{gs-pmgsc-85}. In general, the quad-edge
data can represent non-orientable 2-manifolds, but the variant here is data can represent non-orientable 2-manifolds, but the variant here is
restricted to orientable 2-manifolds only. An overview and comparison restricted to orientable 2-manifolds only. An overview and comparison
of these different data structures together with a thorough of these different data structures together with a thorough
description of the design implemented here can be found description of the design implemented here can be found
in \cite k-ugpdd-99. in \cgalCite{k-ugpdd-99}.
@ -110,7 +110,7 @@ class searches in the positive direction along the face for the
previous halfedge. But if the `HalfedgeDSHalfedge::prev()` member function is provided, previous halfedge. But if the `HalfedgeDSHalfedge::prev()` member function is provided,
the `HalfedgeDS_items_decorator::find_prev()` member function simply calls it. This distinction is the `HalfedgeDS_items_decorator::find_prev()` member function simply calls it. This distinction is
resolved at compile time with a technique called <I>compile-time resolved at compile time with a technique called <I>compile-time
tags</I>, similar to iterator tags in \cite cgal:sl-stl-95. tags</I>, similar to iterator tags in \cgalCite{cgal:sl-stl-95}.
The `Polyhedron_3` as an example for the third layer adds the The `Polyhedron_3` as an example for the third layer adds the
geometric interpretation, provides an easy-to-use interface of geometric interpretation, provides an easy-to-use interface of
@ -181,10 +181,10 @@ member variable `color`.
The halfedge data structure as presented here is slightly less space The halfedge data structure as presented here is slightly less space
efficient as, for example, the winged-edge data efficient as, for example, the winged-edge data
structure \cite b-prcv-75, the DCEL \cite mp-fitcp-78 or variants of structure \cgalCite{b-prcv-75}, the DCEL \cgalCite{mp-fitcp-78} or variants of
the quad-edge data structure \cite gs-pmgsc-85. On the other hand, the quad-edge data structure \cgalCite{gs-pmgsc-85}. On the other hand,
it does not require any search operations during traversals. A it does not require any search operations during traversals. A
comparison can be found in \cite k-ugpdd-99. comparison can be found in \cgalCite{k-ugpdd-99}.
The following example trades traversal time for a compact storage The following example trades traversal time for a compact storage
representation using traditional C techniques (i.e., type casting and representation using traditional C techniques (i.e., type casting and

View File

@ -46,17 +46,17 @@ implementation layer.See for example the `Polyhedron_3`
class in the package \ref Chapter_3D_Polyhedral_Surfaces "3D Polyhedral Surface". class in the package \ref Chapter_3D_Polyhedral_Surfaces "3D Polyhedral Surface".
The data structure provided here is known as the The data structure provided here is known as the
FE-structure \cite w-ebdss-85, as FE-structure \cgalCite{w-ebdss-85}, as
halfedges \cite m-ism-88, \cite cgal:bfh-mgedm-95 or as the doubly connected edge halfedges \cgalCite{m-ism-88}, \cgalCite{cgal:bfh-mgedm-95} or as the doubly connected edge
list (DCEL) \cite bkos-cgaa-97, although the original reference for list (DCEL) \cgalCite{bkos-cgaa-97}, although the original reference for
the DCEL \cite mp-fitcp-78 describes a related but different data the DCEL \cgalCite{mp-fitcp-78} describes a related but different data
structure. The halfedge data structure can also be seen as one of the structure. The halfedge data structure can also be seen as one of the
variants of the quad-edge data structure \cite gs-pmgsc-85. In variants of the quad-edge data structure \cgalCite{gs-pmgsc-85}. In
general, the quad-edge data can represent non-orientable 2-manifolds, general, the quad-edge data can represent non-orientable 2-manifolds,
but the variant here is restricted to orientable 2-manifolds only. An but the variant here is restricted to orientable 2-manifolds only. An
overview and comparison of these different data structures together overview and comparison of these different data structures together
with a thorough description of the design implemented here can be with a thorough description of the design implemented here can be
found in \cite k-ugpdd-99. found in \cgalCite{k-ugpdd-99}.
\cgalClassifedRefPages \cgalClassifedRefPages

View File

@ -13,7 +13,7 @@ that do not contain any point of the point set.
\cgalHeading{Implementation} \cgalHeading{Implementation}
The algorithm is an implementation of \cite o-naler-90. The runtime of an The algorithm is an implementation of \cgalCite{o-naler-90}. The runtime of an
insertion or a removal is \f$ O(\log n)\f$. A query takes \f$ O(n^2)\f$ worst insertion or a removal is \f$ O(\log n)\f$. A query takes \f$ O(n^2)\f$ worst
case time and \f$ O(n \log n)\f$ expected time. The working storage is \f$ case time and \f$ O(n \log n)\f$ expected time. The working storage is \f$
O(n)\f$. O(n)\f$.

View File

@ -32,7 +32,7 @@ convex polygon (oriented clock- or counterclockwise).
\cgalHeading{Implementation} \cgalHeading{Implementation}
The implementation uses monotone matrix search The implementation uses monotone matrix search
\cite akmsw-gamsa-87 and has a worst case running time of \f$ O(k \cgalCite{akmsw-gamsa-87} and has a worst case running time of \f$ O(k
\cdot n + n \cdot \log n)\f$, where \f$ n\f$ is the number of vertices in \cdot n + n \cdot \log n)\f$, where \f$ n\f$ is the number of vertices in
\f$ P\f$. \f$ P\f$.
@ -89,7 +89,7 @@ where `K` is a model of `Kernel`.
\cgalHeading{Implementation} \cgalHeading{Implementation}
The implementation uses monotone matrix search The implementation uses monotone matrix search
\cite akmsw-gamsa-87 and has a worst case running time of \f$ O(k \cgalCite{akmsw-gamsa-87} and has a worst case running time of \f$ O(k
\cdot n + n \cdot \log n)\f$, where \f$ n\f$ is the number of vertices in \cdot n + n \cdot \log n)\f$, where \f$ n\f$ is the number of vertices in
\f$ P\f$. \f$ P\f$.
@ -158,7 +158,7 @@ defined that computes the squareroot of a number.
\cgalHeading{Implementation} \cgalHeading{Implementation}
The implementation uses monotone matrix search The implementation uses monotone matrix search
\cite akmsw-gamsa-87 and has a worst case running time of \f$ O(k \cgalCite{akmsw-gamsa-87} and has a worst case running time of \f$ O(k
\cdot n + n \cdot \log n)\f$, where \f$ n\f$ is the number of vertices in \cdot n + n \cdot \log n)\f$, where \f$ n\f$ is the number of vertices in
\f$ P\f$. \f$ P\f$.

View File

@ -67,7 +67,7 @@ generates the interpolated function value computed by Farin's interpolant.
\pre `norm` \f$ \neq0\f$. `function_value(p).second == true` for all points `p` of the point/coordinate pairs in the range `[first, beyond)`. \pre `norm` \f$ \neq0\f$. `function_value(p).second == true` for all points `p` of the point/coordinate pairs in the range `[first, beyond)`.
\pre The range `[first, beyond)` contains either one or more than three elements. \pre The range `[first, beyond)` contains either one or more than three elements.
The function `farin_c1_interpolation()` interpolates the function values and the The function `farin_c1_interpolation()` interpolates the function values and the
gradients that are provided by functors using the method described in \cite f-sodt-90. gradients that are provided by functors using the method described in \cgalCite{f-sodt-90}.
\cgalHeading{Parameters} \cgalHeading{Parameters}

View File

@ -7,7 +7,7 @@ namespace CGAL {
These functions approximate the gradient of a These functions approximate the gradient of a
function at a point `p` given natural neighbor coordinates for `p` and function at a point `p` given natural neighbor coordinates for `p` and
its neighbors' function values. The approximation method is described its neighbors' function values. The approximation method is described
in \cite s-bdnni-81. Further functions are provided to fit the in \cgalCite{s-bdnni-81}. Further functions are provided to fit the
gradient for all data points that lie inside the convex hull of the gradient for all data points that lie inside the convex hull of the
data points. One function exists for each type of natural neighbor data points. One function exists for each type of natural neighbor
coordinates. coordinates.
@ -42,7 +42,7 @@ provide a multiplication and addition operation with the type
This function implements Sibson's gradient This function implements Sibson's gradient
estimation method based on natural neighbor coordinates estimation method based on natural neighbor coordinates
\cite s-bdnni-81. \cgalCite{s-bdnni-81}.
*/ */
/// @{ /// @{

View File

@ -10,7 +10,7 @@ the surface. The coordinates are computed from the intersection of the
Voronoi cell of the query point `p` with the tangent plane to the Voronoi cell of the query point `p` with the tangent plane to the
surface at `p`. If the sampling is sufficiently dense, the surface at `p`. If the sampling is sufficiently dense, the
coordinate system meets the properties described in the manual pages coordinate system meets the properties described in the manual pages
and in \cite bf-lcss-02,\cite cgal:f-csapc-03. The query and in \cgalCite{bf-lcss-02},\cgalCite{cgal:f-csapc-03}. The query
point `p` needs to lie inside the convex hull of the projection of point `p` needs to lie inside the convex hull of the projection of
the sample points onto the tangent plane at `p`. the sample points onto the tangent plane at `p`.

View File

@ -9,7 +9,7 @@ Given a set of sample points issued from a surface and a query point
the surface within the sample points. If the sampling is sufficiently the surface within the sample points. If the sampling is sufficiently
dense, the neighbors are provably close to the point `p` on the dense, the neighbors are provably close to the point `p` on the
surface (cf. the manual pages and surface (cf. the manual pages and
\cite bf-lcss-02,\cite cgal:f-csapc-03). They are defined to \cgalCite{bf-lcss-02},\cgalCite{cgal:f-csapc-03}). They are defined to
be the neighbors of `p` in the regular triangulation dual be the neighbors of `p` in the regular triangulation dual
to the power diagram which is equivalent to the intersection of the to the power diagram which is equivalent to the intersection of the
Voronoi cell of the query point `p` with the tangent plane to the Voronoi cell of the query point `p` with the tangent plane to the

View File

@ -37,7 +37,7 @@ at \f$ \mathbf{p_i}\f$. It is denoted \f$ \mathbf{g_i}= \nabla
\subsection InterpolationIntroduction Introduction \subsection InterpolationIntroduction Introduction
Natural neighbor interpolation has been introduced by Sibson Natural neighbor interpolation has been introduced by Sibson
\cite s-bdnni-81 to interpolate multivariate scattered data. Given \cgalCite{s-bdnni-81} to interpolate multivariate scattered data. Given
a set of data points \f$ \mathcal{P}\f$, the natural neighbor coordinates a set of data points \f$ \mathcal{P}\f$, the natural neighbor coordinates
associated to \f$ \mathcal{P}\f$ are defined from the Voronoi diagram of associated to \f$ \mathcal{P}\f$ are defined from the Voronoi diagram of
\f$ \mathcal{P}\f$. When simulating the insertion of a query point \f$ \mathcal{P}\f$. When simulating the insertion of a query point
@ -60,8 +60,8 @@ with respect to the data point \f$ \mathbf{p_i}\in \mathcal{P}\f$ is defined by
A two-dimensional example A two-dimensional example
is depicted in \cgalFigureRef{fignn_coords}. is depicted in \cgalFigureRef{fignn_coords}.
Various papers (\cite s-vidt-80, \cite f-sodt-90, Various papers (\cgalCite{s-vidt-80}, \cgalCite{f-sodt-90},
\cite cgal:p-plcbd-93, \cite b-scaps-97, \cite hs-vbihc-00) show that \cgalCite{cgal:p-plcbd-93}, \cgalCite{b-scaps-97}, \cgalCite{hs-vbihc-00}) show that
the natural neighbor coordinates have the following properties: the natural neighbor coordinates have the following properties:
<OL> <OL>
<LI>\f$ \mathbf{x} = \sum_{i=1}^n \lambda_i(\mathbf{x}) \mathbf{p_i}\f$ <LI>\f$ \mathbf{x} = \sum_{i=1}^n \lambda_i(\mathbf{x}) \mathbf{p_i}\f$
@ -84,7 +84,7 @@ The natural neighbor coordinate of \f$ \mathbf{x}\f$ with respect to these endpo
\f$ \lambda_q(\mathbf{x}) = \frac{\|\mathbf{x} - \mathbf{p}\| }{ \|\mathbf{q} - \mathbf{p}\|} \f$ \f$ \lambda_q(\mathbf{x}) = \frac{\|\mathbf{x} - \mathbf{p}\| }{ \|\mathbf{q} - \mathbf{p}\|} \f$
Furthermore, Piper \cite cgal:p-plcbd-93 shows that the coordinate Furthermore, Piper \cgalCite{cgal:p-plcbd-93} shows that the coordinate
functions are continuous in the convex hull of \f$ \mathcal{P}\f$ and functions are continuous in the convex hull of \f$ \mathcal{P}\f$ and
continuously differentiable except on the data points \f$ \mathcal{P}\f$.<BR> continuously differentiable except on the data points \f$ \mathcal{P}\f$.<BR>
@ -137,9 +137,9 @@ issued from a surface \f$ \mathcal{S}\f$ and given a query point
\f$ \mathbf{x}\f$ on \f$ \mathcal{S}\f$. We suppose that \f$ \mathcal{S}\f$ is a \f$ \mathbf{x}\f$ on \f$ \mathcal{S}\f$. We suppose that \f$ \mathcal{S}\f$ is a
closed and compact surface of \f$ \mathbb{R}^3\f$, and let \f$ \mathcal{P}= closed and compact surface of \f$ \mathbb{R}^3\f$, and let \f$ \mathcal{P}=
\{\mathbf{p_1}, \ldots,\mathbf{p_n}\}\f$ be an \f$ \epsilon\f$-sample of \{\mathbf{p_1}, \ldots,\mathbf{p_n}\}\f$ be an \f$ \epsilon\f$-sample of
\f$ \mathcal{S}\f$ (refer to Amenta and Bern \cite ab-srvf-99). The \f$ \mathcal{S}\f$ (refer to Amenta and Bern \cgalCite{ab-srvf-99}). The
concepts are based on the definition of Boissonnat and Fl&ouml;totto concepts are based on the definition of Boissonnat and Fl&ouml;totto
\cite bf-lcss-02, \cite cgal:f-csapc-03. Both references \cgalCite{bf-lcss-02}, \cgalCite{cgal:f-csapc-03}. Both references
contain a thorough description of the requirements and the contain a thorough description of the requirements and the
mathematical properties. mathematical properties.
@ -149,7 +149,7 @@ Two observations lead to the definition of surface neighbors and
surface neighbor coordinates: First, it is clear that the tangent surface neighbor coordinates: First, it is clear that the tangent
plane \f$ \mathcal{T}_x\f$ of the surface \f$ \mathcal{S}\f$ at the point plane \f$ \mathcal{T}_x\f$ of the surface \f$ \mathcal{S}\f$ at the point
\f$ \mathbf{x} \in \mathcal{S}\f$ approximates \f$ \mathcal{S}\f$ in the \f$ \mathbf{x} \in \mathcal{S}\f$ approximates \f$ \mathcal{S}\f$ in the
neighborhood of \f$ \mathbf{x}\f$. It has been shown in \cite bf-lcss-02 neighborhood of \f$ \mathbf{x}\f$. It has been shown in \cgalCite{bf-lcss-02}
that, if the surface \f$ \mathcal{S}\f$ is well sampled with respect to the that, if the surface \f$ \mathcal{S}\f$ is well sampled with respect to the
curvature and the local thickness of \f$ \mathcal{S}\f$, i.e.\ it is an \f$ \epsilon\f$-sample, the intersection curvature and the local thickness of \f$ \mathcal{S}\f$, i.e.\ it is an \f$ \epsilon\f$-sample, the intersection
of the tangent plane \f$ \mathcal{T}_x\f$ with the Voronoi cell of of the tangent plane \f$ \mathcal{T}_x\f$ with the Voronoi cell of
@ -237,7 +237,7 @@ provided.
\subsubsection InterpolationLinearPrecisionInterpolation Linear Precision Interpolation \subsubsection InterpolationLinearPrecisionInterpolation Linear Precision Interpolation
Sibson \cite s-bdnni-81 defines a very simple interpolant that Sibson \cgalCite{s-bdnni-81} defines a very simple interpolant that
re-produces linear functions exactly. The interpolation of re-produces linear functions exactly. The interpolation of
\f$ \Phi(\mathbf{x})\f$ is given as the linear combination of the neighbors' function \f$ \Phi(\mathbf{x})\f$ is given as the linear combination of the neighbors' function
values weighted by the coordinates: values weighted by the coordinates:
@ -253,7 +253,7 @@ called.
\subsubsection InterpolationSibson Sibson's C^1 Continuous Interpolant \subsubsection InterpolationSibson Sibson's C^1 Continuous Interpolant
In \cite s-bdnni-81, Sibson describes a second interpolation method In \cgalCite{s-bdnni-81}, Sibson describes a second interpolation method
that relies also on the function gradient \f$ \mathbf{g_i}\f$ for all \f$ \mathbf{p_i} \in \mathcal{P}\f$. It is \f$ C^1\f$ continuous with gradient \f$ \mathbf{g_i}\f$ at that relies also on the function gradient \f$ \mathbf{g_i}\f$ for all \f$ \mathbf{p_i} \in \mathcal{P}\f$. It is \f$ C^1\f$ continuous with gradient \f$ \mathbf{g_i}\f$ at
\f$ \mathbf{p_i}\f$. Spherical quadrics of the form \f$ \Phi(\mathbf{x}) =a + \f$ \mathbf{p_i}\f$. Spherical quadrics of the form \f$ \Phi(\mathbf{x}) =a +
\mathbf{b}^t \mathbf{x} +\gamma\ \mathbf{x}^t\mathbf{x}\f$ are reproduced \mathbf{b}^t \mathbf{x} +\gamma\ \mathbf{x}^t\mathbf{x}\f$ are reproduced
@ -261,7 +261,7 @@ exactly. The
proof relies on the barycentric coordinate property of the natural proof relies on the barycentric coordinate property of the natural
neighbor coordinates and assumes that the gradient of \f$ \Phi\f$ at the neighbor coordinates and assumes that the gradient of \f$ \Phi\f$ at the
data points is known or approximated from the function values as data points is known or approximated from the function values as
described in \cite s-bdnni-81 (see Section \ref sgradient_fitting). described in \cgalCite{s-bdnni-81} (see Section \ref sgradient_fitting).
Sibson's \f$ Z^1\f$ interpolant is a combination of the linear interpolant Sibson's \f$ Z^1\f$ interpolant is a combination of the linear interpolant
\f$ Z^0\f$ and an interpolant \f$ \xi\f$ which is the weighted sum of the first \f$ Z^0\f$ and an interpolant \f$ \xi\f$ which is the weighted sum of the first
@ -289,19 +289,19 @@ where in Sibson's original work,
demanding on the number type because it avoids the square-root demanding on the number type because it avoids the square-root
computation needed to compute the distance \f$ \|\mathbf{x} - computation needed to compute the distance \f$ \|\mathbf{x} -
\mathbf{p_i}\|\f$. The theoretical guarantees are the same (see \mathbf{p_i}\|\f$. The theoretical guarantees are the same (see
\cite cgal:f-csapc-03). Simply, the smaller the slope of \f$ f\f$ \cgalCite{cgal:f-csapc-03}). Simply, the smaller the slope of \f$ f\f$
around \f$ f(0)\f$, the faster the interpolant approaches \f$ \xi_i\f$ as around \f$ f(0)\f$, the faster the interpolant approaches \f$ \xi_i\f$ as
\f$ \mathbf{x} \rightarrow \mathbf{p_i}\f$. \f$ \mathbf{x} \rightarrow \mathbf{p_i}\f$.
\subsubsection InterpolationFarin Farin's C^1 Continuous Interpolant \subsubsection InterpolationFarin Farin's C^1 Continuous Interpolant
Farin \cite f-sodt-90 extended Sibson's work and realizes a \f$ C^1\f$ Farin \cgalCite{f-sodt-90} extended Sibson's work and realizes a \f$ C^1\f$
continuous interpolant by embedding natural neighbor coordinates in continuous interpolant by embedding natural neighbor coordinates in
the Bernstein-B&eacute;zier representation of a cubic simplex. If the the Bernstein-B&eacute;zier representation of a cubic simplex. If the
gradient of \f$ \Phi\f$ at the data points is known, this interpolant gradient of \f$ \Phi\f$ at the data points is known, this interpolant
reproduces quadratic functions exactly. The function gradient can be reproduces quadratic functions exactly. The function gradient can be
approximated from the function values by Sibson's method approximated from the function values by Sibson's method
\cite s-bdnni-81 (see Section \ref sgradient_fitting) which is exact only \cgalCite{s-bdnni-81} (see Section \ref sgradient_fitting) which is exact only
for spherical quadrics. for spherical quadrics.
\subsubsection InterpolationQuadraticPrecisionInterpolants Quadratic Precision Interpolants \subsubsection InterpolationQuadraticPrecisionInterpolants Quadratic Precision Interpolants

View File

@ -69,7 +69,7 @@ two-dimensional power diagram for weighted points (i. e., from their
regular triangulation). Natural neighbor coordinates on closed and regular triangulation). Natural neighbor coordinates on closed and
well-sampled surfaces can also be computed if the normal to the well-sampled surfaces can also be computed if the normal to the
surface at the query point is known. The latter coordinates are only surface at the query point is known. The latter coordinates are only
approximately barycentric, see \cite bf-lcss-02. approximately barycentric, see \cgalCite{bf-lcss-02}.
For a more thorough introduction see the user manual. For a more thorough introduction see the user manual.

View File

@ -19,9 +19,9 @@ mix calls to the methods `insert(..)`, `remove(..)`,
The interval skip list class is parameterized with an interval class. The interval skip list class is parameterized with an interval class.
The data structure was introduced by Hanson \cite h-islds-91, and it is called The data structure was introduced by Hanson \cgalCite{h-islds-91}, and it is called
interval skip list, because it is an extension of the randomized list interval skip list, because it is an extension of the randomized list
structure known as skip list \cite p-slpab-90. structure known as skip list \cgalCite{p-slpab-90}.
\section Interval_skip_listExample Example Programs \section Interval_skip_listExample Example Programs

View File

@ -18,8 +18,8 @@
\cgalPkgShortInfoEnd \cgalPkgShortInfoEnd
\cgalPkgDescriptionEnd \cgalPkgDescriptionEnd
This chapter presents the interval skip list introduced by Hanson \cite h-islds-91, This chapter presents the interval skip list introduced by Hanson \cgalCite{h-islds-91},
and derived from the skip list data structure \cite p-slpab-90. and derived from the skip list data structure \cgalCite{p-slpab-90}.
The data structure stores intervals and allows to perform stabbing queries, The data structure stores intervals and allows to perform stabbing queries,
that is to test whether a point is covered by any of the intervals. that is to test whether a point is covered by any of the intervals.

View File

@ -34,7 +34,7 @@ estimating first and second order differential quantities is
sufficient. However, some applications involving shape analysis sufficient. However, some applications involving shape analysis
require estimating third and fourth order differential quantities. require estimating third and fourth order differential quantities.
Many different estimators have been proposed in the vast literature of Many different estimators have been proposed in the vast literature of
applied geometry \cite cgal:p-smrqt-01 (section 3, page 7), and all applied geometry \cgalCite{cgal:p-smrqt-01} (section 3, page 7), and all
of them need to define a neighborhood around the point at which the of them need to define a neighborhood around the point at which the
estimation is computed. Our method relies on smooth differential estimation is computed. Our method relies on smooth differential
geometry calculations, carried out on smooth objects <I>fitted</I> from geometry calculations, carried out on smooth objects <I>fitted</I> from
@ -52,7 +52,7 @@ properties, so that any estimation method must come with an
asymptotic convergence analysis of the results returned. For the asymptotic convergence analysis of the results returned. For the
method developed in this \cgal package, the method developed in this \cgal package, the
interested will find such an analysis in interested will find such an analysis in
\cite cgal:cp-edqpf-05, (Theorem 3) - it should be stressed \cgalCite{cgal:cp-edqpf-05}, (Theorem 3) - it should be stressed
the error bounds proved therein are optimal. the error bounds proved therein are optimal.
On the other hand, any estimation method may be applied to arbitrarily On the other hand, any estimation method may be applied to arbitrarily
@ -140,7 +140,7 @@ approximation reduces to linear algebra operations.
</OL> </OL>
Further details can be found in section \ref Jet_fitting_3Mathematical and in Further details can be found in section \ref Jet_fitting_3Mathematical and in
\cite cgal:cp-edqpf-05 (section 6). \cgalCite{cgal:cp-edqpf-05} (section 6).
\subsection secdegcases Degenerate Cases \subsection secdegcases Degenerate Cases
@ -151,7 +151,7 @@ cases:
vector may not be good. The nearer this direction to the tangent vector may not be good. The nearer this direction to the tangent
plane the worse the estimation. plane the worse the estimation.
<LI>As observed in \cite cgal:cp-edqpf-05 (section 3.1), the <LI>As observed in \cgalCite{cgal:cp-edqpf-05} (section 3.1), the
interpolating problem is not well posed if the points project, interpolating problem is not well posed if the points project,
into the fitting frame, onto an algebraic curve of degree \f$ d\f$. More into the fitting frame, onto an algebraic curve of degree \f$ d\f$. More
generally, the problem is ill posed if the condition number is too generally, the problem is ill posed if the condition number is too
@ -429,7 +429,7 @@ definite positive when \f$ M\f$ has full rank.
The advantages of the \f$ SVD\f$ The advantages of the \f$ SVD\f$
is that it works directly on the rectangular system and gives the is that it works directly on the rectangular system and gives the
condition number of the system. For more on these alternatives, see condition number of the system. For more on these alternatives, see
\cite gl-mc-83 (Chap. 5). \cgalCite{gl-mc-83} (Chap. 5).
\subsection Jet_fitting_3PrincipalCurvatureDirections Principal Curvature / Directions \subsection Jet_fitting_3PrincipalCurvatureDirections Principal Curvature / Directions
@ -458,7 +458,7 @@ estimation is performed, is \f$ (0,0,A_{0,0})\f$.
<LI>The normal is <LI>The normal is
\f$ n=(-A_{1,0},-A_{0,1},1)/\sqrt{A_{1,0}^2+A_{0,1}^2+1}\f$. \f$ n=(-A_{1,0},-A_{0,1},1)/\sqrt{A_{1,0}^2+A_{0,1}^2+1}\f$.
<LI>Curvature related properties are retrieved resorting to <LI>Curvature related properties are retrieved resorting to
standard differential calculus \cite c-dgcs-76 (Chap. 3). More precisely, the standard differential calculus \cgalCite{c-dgcs-76} (Chap. 3). More precisely, the
Weingarten operator \f$ W=-I^{-1}II\f$ is first computed in the basis of Weingarten operator \f$ W=-I^{-1}II\f$ is first computed in the basis of
the tangent plane \f$ \{ (1,0,A_{1,0}), (0,1,A_{0,1}) \}\f$. We compute the tangent plane \f$ \{ (1,0,A_{1,0}), (0,1,A_{0,1}) \}\f$. We compute
an orthonormal basis of the tangent plane using the Gram-Schmidt an orthonormal basis of the tangent plane using the Gram-Schmidt

View File

@ -4,7 +4,7 @@ namespace CGAL {
/*! /*!
\ingroup kernel_classes \ingroup kernel_classes
\brief `Filtered_kernel_adaptor` is a kernel that uses the filtering technique from \cite cgal:bbp-iayed-01 to obtain a kernel with exact and efficient predicate functors. \brief `Filtered_kernel_adaptor` is a kernel that uses the filtering technique from \cgalCite{cgal:bbp-iayed-01} to obtain a kernel with exact and efficient predicate functors.
\details \details
The geometric constructions are exactly those The geometric constructions are exactly those
@ -53,10 +53,10 @@ namespace CGAL {
\ingroup kernel_classes \ingroup kernel_classes
`Filtered_kernel` is a kernel that uses the filtering technique based `Filtered_kernel` is a kernel that uses the filtering technique based
on interval arithmetic from \cite cgal:bbp-iayed-01 to achieve on interval arithmetic from \cgalCite{cgal:bbp-iayed-01} to achieve
exact and efficient predicates. In addition, a few selected important exact and efficient predicates. In addition, a few selected important
predicates are implemented using the formally proved, semi-static, filtering predicates are implemented using the formally proved, semi-static, filtering
techniques from \cite cgal:mp-fcafg-05. techniques from \cgalCite{cgal:mp-fcafg-05}.
The geometric constructions are exactly those The geometric constructions are exactly those
of the kernel `CK`, which means that they are not necessarily exact. of the kernel `CK`, which means that they are not necessarily exact.

View File

@ -59,12 +59,12 @@ There are many approaches to this problem, one of them is to compute
exactly (compute so accurate that all decisions made by the algorithm exactly (compute so accurate that all decisions made by the algorithm
are exact) which is possible in many cases but more expensive are exact) which is possible in many cases but more expensive
than standard floating-point arithmetic. than standard floating-point arithmetic.
C. M. Hoffmann \cite h-gsm-89, \cite h-pargc-89 illustrates some C. M. Hoffmann \cgalCite{h-gsm-89}, \cgalCite{h-pargc-89} illustrates some
of the problems arising in the implementation of geometric algorithms of the problems arising in the implementation of geometric algorithms
and discusses some approaches to solve them. and discusses some approaches to solve them.
A more recent overview is given in \cite s-rpigc-00. A more recent overview is given in \cgalCite{s-rpigc-00}.
The exact computation paradigm is discussed by Yap and Dub&eacute; The exact computation paradigm is discussed by Yap and Dub&eacute;
\cite yd-ecp-95 and Yap \cite y-tegc-97. \cgalCite{yd-ecp-95} and Yap \cgalCite{y-tegc-97}.
In \cgal you can choose the underlying number types and arithmetic. In \cgal you can choose the underlying number types and arithmetic.
You can use different types of arithmetic simultaneously and the choice can You can use different types of arithmetic simultaneously and the choice can
@ -282,7 +282,7 @@ Other valid `FieldNumberType`s are `leda_rational` and
If it is crucial for you that the computation is reliable, the right If it is crucial for you that the computation is reliable, the right
choice is probably a number type that guarantees exact computation. choice is probably a number type that guarantees exact computation.
The `Filtered_kernel` provides a way to apply filtering techniques The `Filtered_kernel` provides a way to apply filtering techniques
\cite cgal:bbp-iayed-01 to achieve a kernel with exact and efficient \cgalCite{cgal:bbp-iayed-01} to achieve a kernel with exact and efficient
predicates. Still other people will prefer the built-in predicates. Still other people will prefer the built-in
type <TT>double</TT>, because they need speed and can live with type <TT>double</TT>, because they need speed and can live with
approximate results, or even algorithms that, from time to time, approximate results, or even algorithms that, from time to time,

View File

@ -36,12 +36,12 @@ unexpected failures for some correct input data. There are many
approaches to this problem, one of them is to compute exactly (compute approaches to this problem, one of them is to compute exactly (compute
so accurate that all decisions made by the algorithm are exact) which so accurate that all decisions made by the algorithm are exact) which
is possible in many cases but more expensive than standard is possible in many cases but more expensive than standard
floating-point arithmetic. C. M. Hoffmann \cite h-gsm-89, \cite h-pargc-89 floating-point arithmetic. C. M. Hoffmann \cgalCite{h-gsm-89}, \cgalCite{h-pargc-89}
illustrates some of the problems arising in the implementation of illustrates some of the problems arising in the implementation of
geometric algorithms and discusses some approaches to solve them. A geometric algorithms and discusses some approaches to solve them. A
more recent overview is given in \cite s-rpigc-00. The exact more recent overview is given in \cgalCite{s-rpigc-00}. The exact
computation paradigm is discussed by Yap and Dub&eacute; \cite yd-ecp-95 computation paradigm is discussed by Yap and Dub&eacute; \cgalCite{yd-ecp-95}
and Yap \cite y-tegc-97. and Yap \cgalCite{y-tegc-97}.
In \cgal you can choose the underlying number types and arithmetic. In \cgal you can choose the underlying number types and arithmetic.
You can use different types of arithmetic simultaneously and the You can use different types of arithmetic simultaneously and the

View File

@ -63,7 +63,7 @@ We are working on that one, but you will have to wait.
\section seckds_intro An Overview of Kinetic Data Structures and Sweep Algorithms \section seckds_intro An Overview of Kinetic Data Structures and Sweep Algorithms
%Kinetic data structures were first introduced in by Basch et. al. in %Kinetic data structures were first introduced in by Basch et. al. in
1997 \cite cgal:bgh-dsmd-97. The idea stems from the observation that 1997 \cgalCite{cgal:bgh-dsmd-97}. The idea stems from the observation that
most, if not all, computational geometry structures are built using most, if not all, computational geometry structures are built using
<I>predicates</I> - functions on quantities defining the geometric <I>predicates</I> - functions on quantities defining the geometric
input (e.g. point coordinates), which return a discrete set of input (e.g. point coordinates), which return a discrete set of

View File

@ -23,7 +23,7 @@ in Section \ref seckds_examples. The framework makes heavy use of
our `Polynomial_kernel` package to provide models of the our `Polynomial_kernel` package to provide models of the
`Kinetic::FunctionKernel` concept. `Kinetic::FunctionKernel` concept.
The framework was first presented at ALENEX \cite cgal:gkr-cfhm-04. The framework was first presented at ALENEX \cgalCite{cgal:gkr-cfhm-04}.
\section seckds_architecture Architecture \section seckds_architecture Architecture

View File

@ -52,7 +52,7 @@ binary function: `Matrix::Value` \f$ \times\f$
\cgalHeading{Implementation} \cgalHeading{Implementation}
The implementation uses an algorithm by Aggarwal The implementation uses an algorithm by Aggarwal
et al.\cite akmsw-gamsa-87. The runtime is linear in the number et al.\cgalCite{akmsw-gamsa-87}. The runtime is linear in the number
of rows and columns of the matrix. of rows and columns of the matrix.
*/ */

View File

@ -51,7 +51,7 @@ true.
\cgalHeading{Implementation} \cgalHeading{Implementation}
The implementation uses an algorithm by The implementation uses an algorithm by
Frederickson and Johnson\cite fj-fkppc-83, \cite fj-gsrsm-84 and runs in Frederickson and Johnson\cgalCite{fj-fkppc-83}, \cgalCite{fj-gsrsm-84} and runs in
\f$ \mathcal{O}(n \cdot k + f \cdot \log (n \cdot k))\f$, where \f$ n\f$ is \f$ \mathcal{O}(n \cdot k + f \cdot \log (n \cdot k))\f$, where \f$ n\f$ is
the number of input matrices, \f$ k\f$ denotes the maximal dimension of the number of input matrices, \f$ k\f$ denotes the maximal dimension of
any input matrix and \f$ f\f$ the time needed for one feasibility test. any input matrix and \f$ f\f$ the time needed for one feasibility test.

View File

@ -7,7 +7,7 @@ namespace CGAL {
\cgalAutoToc \cgalAutoToc
\author Laurent Rineau \author Laurent Rineau
This package implements Shewchuk's algorithm \cite s-mgdsa-00 to construct This package implements Shewchuk's algorithm \cgalCite{s-mgdsa-00} to construct
conforming triangulations and 2D meshes. Conforming triangulations will be conforming triangulations and 2D meshes. Conforming triangulations will be
described in Section \ref secMesh_2_conforming_triangulation and described in Section \ref secMesh_2_conforming_triangulation and
meshes in Section \ref secMesh_2_meshes. meshes in Section \ref secMesh_2_meshes.
@ -183,7 +183,7 @@ If some input angles are smaller than \f$ 60\f$ degrees, the algorithm will
end up with a mesh in which some triangles violate the criteria near small end up with a mesh in which some triangles violate the criteria near small
input angles. This is unavoidable since small angles formed input angles. This is unavoidable since small angles formed
by input segments cannot be suppressed. Furthermore, it has been by input segments cannot be suppressed. Furthermore, it has been
shown (\cite s-mgdsa-00), that some domains with small input angles shown (\cgalCite{s-mgdsa-00}), that some domains with small input angles
cannot be meshed with angles even smaller than the small input angles. cannot be meshed with angles even smaller than the small input angles.
Note that if the domain is a polygonal region, the resulting mesh will Note that if the domain is a polygonal region, the resulting mesh will
satisfy size and shape criteria except for the small input angles. satisfy size and shape criteria except for the small input angles.

View File

@ -44,14 +44,14 @@ for instance in terms of sizing field
or with respect to some user customized quality criteria. or with respect to some user customized quality criteria.
The meshing engine used in this mesh generator The meshing engine used in this mesh generator
is based on Delaunay refinement \cite c-gqmgc-93, \cite r-draq2d-95, \cite s-tmgdr-98. is based on Delaunay refinement \cgalCite{c-gqmgc-93}, \cgalCite{r-draq2d-95}, \cgalCite{s-tmgdr-98}.
It uses the notion of restricted Delaunay triangulation It uses the notion of restricted Delaunay triangulation
to approximate 1-dimensional curve segments and surface patches \cite cgal:bo-pgsms-05. to approximate 1-dimensional curve segments and surface patches \cgalCite{cgal:bo-pgsms-05}.
Before the refinement, a mechanism of protecting balls is set up on 1-dimensional features, if any, Before the refinement, a mechanism of protecting balls is set up on 1-dimensional features, if any,
to ensure a fair representation to ensure a fair representation
of those features in the mesh, and also to guarantee the termination of the refinement process, of those features in the mesh, and also to guarantee the termination of the refinement process,
whatever may be the input geometry, in particular whatever small angles whatever may be the input geometry, in particular whatever small angles
the boundary and subdivision surface patches may form \cite cgal:cdl-pdma-07, \cite cgal:cdr-drpsc-07. the boundary and subdivision surface patches may form \cgalCite{cgal:cdl-pdma-07}, \cgalCite{cgal:cdr-drpsc-07}.
The Delaunay refinement is followed by a mesh optimization phase The Delaunay refinement is followed by a mesh optimization phase
to remove slivers and provide a good quality mesh. to remove slivers and provide a good quality mesh.
@ -184,7 +184,7 @@ the corresponding points are inserted into the Delaunay triangulation
from the start. from the start.
If the domain has 1-dimensional exposed features, If the domain has 1-dimensional exposed features,
the method of protecting balls \cite cgal:cdr-drpsc-07, \cite cgal:cdl-pdma-07 the method of protecting balls \cgalCite{cgal:cdr-drpsc-07}, \cgalCite{cgal:cdl-pdma-07}
is used to achieve an accurate representation of those features in the mesh is used to achieve an accurate representation of those features in the mesh
and to guarantee that the refinement process terminates and to guarantee that the refinement process terminates
whatever may be the dihedral angles formed by input surface patches incident to a whatever may be the dihedral angles formed by input surface patches incident to a
@ -238,7 +238,7 @@ a perturber and an exuder.
The Lloyd and odt-smoother are global optimizers The Lloyd and odt-smoother are global optimizers
moving the mesh vertices to minimize moving the mesh vertices to minimize
a mesh energy. Those optimizers are described respectively in a mesh energy. Those optimizers are described respectively in
\cite cgal:dfg-cvtaa-99t, \cite cgal:dw-tmgob-02 and in \cite cgal::c-mssbo-04, \cite cgal:acyd-vtm-05. \cgalCite{cgal:dfg-cvtaa-99t}, \cgalCite{cgal:dw-tmgob-02} and in \cgalCite{cgal::c-mssbo-04}, \cgalCite{cgal:acyd-vtm-05}.
In both cases the mesh energy In both cases the mesh energy
is the `L1` error resulting from the interpolation is the `L1` error resulting from the interpolation
of the function \f$ f(x) =x^2\f$ by a piecewise linear function. of the function \f$ f(x) =x^2\f$ by a piecewise linear function.
@ -263,9 +263,9 @@ to be very efficient as a preliminary step of optimization, as they tend to enha
efficiency of the perturber and/or exuder applied next, see \cgalFigureRef{figureoptimization} efficiency of the perturber and/or exuder applied next, see \cgalFigureRef{figureoptimization}
The perturber and the exuder focus on improving the worst mesh elements. The perturber and the exuder focus on improving the worst mesh elements.
The perturber \cite cgal:tsa-ps3dd-09 improves the meshes by local changes The perturber \cgalCite{cgal:tsa-ps3dd-09} improves the meshes by local changes
in the vertices positions in the vertices positions
aiming to make sliver disappear. The exuder \cite cgal:cdeft-slive-00 aiming to make sliver disappear. The exuder \cgalCite{cgal:cdeft-slive-00}
chases the remaining slivers by chases the remaining slivers by
re-weighting mesh vertices with optimal weights. re-weighting mesh vertices with optimal weights.
@ -980,33 +980,33 @@ vertices/second
\subsection Mesh_3TheoreticalFoundations Theoretical Foundations \subsection Mesh_3TheoreticalFoundations Theoretical Foundations
The \cgal mesh generation package implements a meshing engine based The \cgal mesh generation package implements a meshing engine based
on the method of Delaunay refinement introduced by Chew \cite c-gqmgc-93 and Ruppert \cite r-draq2d-95 on the method of Delaunay refinement introduced by Chew \cgalCite{c-gqmgc-93} and Ruppert \cgalCite{r-draq2d-95}
and pioneered in 3D by Shewchuk \cite s-tmgdr-98. and pioneered in 3D by Shewchuk \cgalCite{s-tmgdr-98}.
It uses the notion of restricted Delaunay triangulation It uses the notion of restricted Delaunay triangulation
to approximate 1-dimensional curved features and curved surface patches to approximate 1-dimensional curved features and curved surface patches
and rely on the work of Boissonnat and Oudot \cite cgal:bo-pgsms-05 and rely on the work of Boissonnat and Oudot \cgalCite{cgal:bo-pgsms-05}
and Oudot et al. \cite cgal:ory-mvbss-05 and Oudot et al. \cgalCite{cgal:ory-mvbss-05}
to achieve accurate representation of boundary and subdividing surfaces in the mesh. to achieve accurate representation of boundary and subdividing surfaces in the mesh.
The mechanism of protecting balls, used to ensure a fair representation The mechanism of protecting balls, used to ensure a fair representation
of 1-dimensional features, if any, and the termination of the refinement process of 1-dimensional features, if any, and the termination of the refinement process
whatever may be the input geometry, in particular whatever small dihedral angles may form whatever may be the input geometry, in particular whatever small dihedral angles may form
the boundary and subdivision surface patches, the boundary and subdivision surface patches,
was pioneered by Cheng et al. \cite cgal:cdr-drpsc-07 and further experimented by Dey, Levine et al. was pioneered by Cheng et al. \cgalCite{cgal:cdr-drpsc-07} and further experimented by Dey, Levine et al.
\cite cgal:cdl-pdma-07. \cgalCite{cgal:cdl-pdma-07}.
The optimization phase involves global optimization processes, a perturbation process The optimization phase involves global optimization processes, a perturbation process
and a sliver exudation process. The global optimizers are based on Lloyd smoothing \cite cgal:dfg-cvtaa-99t, \cite cgal:dw-tmgob-02 and a sliver exudation process. The global optimizers are based on Lloyd smoothing \cgalCite{cgal:dfg-cvtaa-99t}, \cgalCite{cgal:dw-tmgob-02}
and odt smoothing \cite cgal::c-mssbo-04, \cite cgal:acyd-vtm-05, where odt means and odt smoothing \cgalCite{cgal::c-mssbo-04}, \cgalCite{cgal:acyd-vtm-05}, where odt means
<I>optimal Delaunay triangulation</I>. The perturbation process <I>optimal Delaunay triangulation</I>. The perturbation process
is mainly based on the work of Tournois \cite cgal:t-om-09 is mainly based on the work of Tournois \cgalCite{cgal:t-om-09}
and Tournois et al. \cite cgal:twad-iropitmg-09, and Tournois et al. \cgalCite{cgal:twad-iropitmg-09},
while the exudation process is, the now famous, optimization by weighting described while the exudation process is, the now famous, optimization by weighting described
in Edelsbrunner et al. \cite cgal:cdeft-slive-00. in Edelsbrunner et al. \cgalCite{cgal:cdeft-slive-00}.
\subsection Mesh_3ImplementationHistory Implementation History \subsection Mesh_3ImplementationHistory Implementation History
Work on the package `Mesh_3` started during the PhD thesis of Laurent Rineau Work on the package `Mesh_3` started during the PhD thesis of Laurent Rineau
advised by Mariette Yvinec. A code prototype, together advised by Mariette Yvinec. A code prototype, together
with a first version of design and specifications \cite cgal:ry-gsddrm-06 with a first version of design and specifications \cgalCite{cgal:ry-gsddrm-06}
came out of their collaboration. came out of their collaboration.
From the beginning of 2009, most of the work has been performed by Stéphane From the beginning of 2009, most of the work has been performed by Stéphane
@ -1022,7 +1022,7 @@ and appeared first in release 3.6 of \cgal.
In collaboration with Laurent Rineau, Stéphane also added demos and examples. In collaboration with Laurent Rineau, Stéphane also added demos and examples.
After some experiments on medical imaging data performed by After some experiments on medical imaging data performed by
Dobrina Boltcheva et al. \cite cgal:byb-mgmmi-09, \cite cgal:-byb-fpdmgmmi-09, the handling Dobrina Boltcheva et al. \cgalCite{cgal:byb-mgmmi-09}, \cgalCite{cgal:-byb-fpdmgmmi-09}, the handling
of 1-dimensional features was worked out by Laurent Rineau, Stéphane Tayeb of 1-dimensional features was worked out by Laurent Rineau, Stéphane Tayeb
and Mariette Yvinec. It appeared first in the release 3.8 of \cgal. and Mariette Yvinec. It appeared first in the release 3.8 of \cgal.

View File

@ -7,7 +7,7 @@ namespace CGAL {
The `Greene_convex_decomposition_2` class implements the approximation algorithm of The `Greene_convex_decomposition_2` class implements the approximation algorithm of
Greene for the decomposition of an input polygon into convex Greene for the decomposition of an input polygon into convex
sub-polygons \cite g-dpcp-83. This algorithm takes \f$ O(n \log n)\f$ sub-polygons \cgalCite{g-dpcp-83}. This algorithm takes \f$ O(n \log n)\f$
time and \f$ O(n)\f$ space, where \f$ n\f$ is the size of the input polygon, time and \f$ O(n)\f$ space, where \f$ n\f$ is the size of the input polygon,
and outputs a decomposition whose size is guaranteed to be no more and outputs a decomposition whose size is guaranteed to be no more
than four times the size of the optimal decomposition. than four times the size of the optimal decomposition.
@ -41,7 +41,7 @@ namespace CGAL {
The `Hertel_Mehlhorn_convex_decomposition_2` class implements the approximation algorithm of Hertel The `Hertel_Mehlhorn_convex_decomposition_2` class implements the approximation algorithm of Hertel
and Mehlhorn for decomposing a polygon into convex and Mehlhorn for decomposing a polygon into convex
sub-polygons \cite hm-ftsp-83. This algorithm constructs a sub-polygons \cgalCite{hm-ftsp-83}. This algorithm constructs a
triangulation of the input polygon and proceeds by removing triangulation of the input polygon and proceeds by removing
unnecessary triangulation edges. Given the triangulation, the unnecessary triangulation edges. Given the triangulation, the
algorithm requires \f$ O(n)\f$ time and space to construct a convex algorithm requires \f$ O(n)\f$ time and space to construct a convex
@ -78,7 +78,7 @@ namespace CGAL {
The `Optimal_convex_decomposition_2` class provides an implementation of Greene's The `Optimal_convex_decomposition_2` class provides an implementation of Greene's
dynamic programming algorithm for optimal decomposition of a dynamic programming algorithm for optimal decomposition of a
polygon into convex sub-polygons \cite g-dpcp-83. Note that polygon into convex sub-polygons \cgalCite{g-dpcp-83}. Note that
this algorithm requires \f$ O(n^4)\f$ time and \f$ O(n^3)\f$ space in this algorithm requires \f$ O(n^4)\f$ time and \f$ O(n^3)\f$ space in
the worst case, where \f$ n\f$ is the size of the input polygon. the worst case, where \f$ n\f$ is the size of the input polygon.

View File

@ -7,7 +7,7 @@ namespace CGAL {
The `Small_side_angle_bisector_decomposition_2` class implements a simple yet efficient heuristic for The `Small_side_angle_bisector_decomposition_2` class implements a simple yet efficient heuristic for
decomposing an input polygon into convex sub-polygons. It is based decomposing an input polygon into convex sub-polygons. It is based
on the algorithm suggested by Flato and Halperin \cite fh-recpm-00, on the algorithm suggested by Flato and Halperin \cgalCite{fh-recpm-00},
but without introducing Steiner points. The algorithm operates in two but without introducing Steiner points. The algorithm operates in two
major steps. In the first step, it tries to subdivide the polygon by major steps. In the first step, it tries to subdivide the polygon by
connect two reflex vertices with an edge. When this is not possible any connect two reflex vertices with an edge. When this is not possible any

View File

@ -60,7 +60,7 @@ Let us denote the vertices of the input polygons by
\f$ Q = \left( q_0, \ldots, q_{n-1} \right)\f$. We assume that both \f$ P\f$ and \f$ Q\f$ \f$ Q = \left( q_0, \ldots, q_{n-1} \right)\f$. We assume that both \f$ P\f$ and \f$ Q\f$
have positive orientations (i.e.\ their boundaries wind in a counterclockwise have positive orientations (i.e.\ their boundaries wind in a counterclockwise
order around their interiors) and compute the convolution of the two polygon order around their interiors) and compute the convolution of the two polygon
boundaries. The <I>convolution</I> of these two polygons \cite grs-kfcg-83, boundaries. The <I>convolution</I> of these two polygons \cgalCite{grs-kfcg-83},
denoted \f$ P * Q\f$, is a collection of line segments of the form denoted \f$ P * Q\f$, is a collection of line segments of the form
\f$ [p_i + q_j, p_{i+1} + q_j]\f$, \cgalFootnote{Throughout this chapter, we increment \f$ [p_i + q_j, p_{i+1} + q_j]\f$, \cgalFootnote{Throughout this chapter, we increment
or decrement an index of a vertex modulo the size of the polygon.} or decrement an index of a vertex modulo the size of the polygon.}
@ -146,31 +146,31 @@ The Minkowski-sum package includes four models of the concept
`PolygonConvexDecomposition_2`. The first three are classes that wrap `PolygonConvexDecomposition_2`. The first three are classes that wrap
the decomposition functions included in the Planar Polygon Partitioning the decomposition functions included in the Planar Polygon Partitioning
package, while the fourth is an implementation of a decomposition algorithm package, while the fourth is an implementation of a decomposition algorithm
introduced in \cite cgal:afh-pdecm-02. The convex decompositions that it introduced in \cgalCite{cgal:afh-pdecm-02}. The convex decompositions that it
creates usually yield efficient running times for Minkowski sum computations: creates usually yield efficient running times for Minkowski sum computations:
<UL> <UL>
<LI>The class `Optimal_convex_decomposition_2<Kernel>` uses the <LI>The class `Optimal_convex_decomposition_2<Kernel>` uses the
dynamic-programming algorithm of Greene \cite g-dpcp-83 for computing an dynamic-programming algorithm of Greene \cgalCite{g-dpcp-83} for computing an
optimal decomposition of a polygon into a minimal number of convex optimal decomposition of a polygon into a minimal number of convex
sub-polygons. The main drawback of this strategy is that it runs in \f$ O(n^4)\f$ sub-polygons. The main drawback of this strategy is that it runs in \f$ O(n^4)\f$
time and \f$ O(n^3)\f$ in the worst case,where \f$ n\f$ is the number of vertices in time and \f$ O(n^3)\f$ in the worst case,where \f$ n\f$ is the number of vertices in
the input polygon. the input polygon.
<LI>The class `Hertel_Mehlhorn_convex_decomposition_2<Kernel>` implements the <LI>The class `Hertel_Mehlhorn_convex_decomposition_2<Kernel>` implements the
approximation algorithm suggested by Hertel and Mehlhorn \cite hm-ftsp-83, approximation algorithm suggested by Hertel and Mehlhorn \cgalCite{hm-ftsp-83},
which triangulates the input polygon and proceeds by throwing away which triangulates the input polygon and proceeds by throwing away
unnecessary triangulation edges. unnecessary triangulation edges.
This algorithm requires \f$ O(n)\f$ time and space and guarantees that This algorithm requires \f$ O(n)\f$ time and space and guarantees that
the number of sub-polygons it generates is not more than four the number of sub-polygons it generates is not more than four
times the optimum. times the optimum.
<LI>The class `Greene_convex_decomposition_2<Kernel>` is an implementation of <LI>The class `Greene_convex_decomposition_2<Kernel>` is an implementation of
Greene's approximation algorithm \cite g-dpcp-83, which computes a Greene's approximation algorithm \cgalCite{g-dpcp-83}, which computes a
convex decomposition of the polygon based on its partitioning into convex decomposition of the polygon based on its partitioning into
\f$ y\f$-monotone polygons. This algorithm runs in \f$ O(n \log n)\f$ time \f$ y\f$-monotone polygons. This algorithm runs in \f$ O(n \log n)\f$ time
and \f$ O(n)\f$ space, and has the same approximation guarantee as and \f$ O(n)\f$ space, and has the same approximation guarantee as
Hertel and Mehlhorn's algorithm. Hertel and Mehlhorn's algorithm.
<LI>The class `Small_side_angle_bisector_decomposition_2<Kernel>` uses <LI>The class `Small_side_angle_bisector_decomposition_2<Kernel>` uses
a heuristic improvement to the angle-bisector decomposition method a heuristic improvement to the angle-bisector decomposition method
suggested by Chazelle and Dobkin \cite cd-ocd-85, which runs in suggested by Chazelle and Dobkin \cgalCite{cd-ocd-85}, which runs in
\f$ O(n^2)\f$ time. It starts by examining each pair of reflex vertices \f$ O(n^2)\f$ time. It starts by examining each pair of reflex vertices
in the input polygon such that the entire interior of the diagonal in the input polygon such that the entire interior of the diagonal
connecting these vertices is contained in the polygon. Out of all connecting these vertices is contained in the polygon. Out of all

View File

@ -16,8 +16,8 @@ The Minkowski sum of a spoon and a star.
The Minkowski sum of two point sets \f$ P\f$ and \f$ Q\f$ in \f$ \mathbb{R}^d\f$, denoted by The Minkowski sum of two point sets \f$ P\f$ and \f$ Q\f$ in \f$ \mathbb{R}^d\f$, denoted by
\f$ P \oplus Q\f$, is defined as the set \f$ \{p+q:p \in P, q \in Q \f$ P \oplus Q\f$, is defined as the set \f$ \{p+q:p \in P, q \in Q
\}\f$. Minkowski sums are used in a wide range of applications such as \}\f$. Minkowski sums are used in a wide range of applications such as
robot motion planning \cite l-rmp-91 and computer-aided robot motion planning \cgalCite{l-rmp-91} and computer-aided
design \cite cgal:ek-sicad-99. \cgalFigureRef{figmotionPlanning} shows design \cgalCite{cgal:ek-sicad-99}. \cgalFigureRef{figmotionPlanning} shows
an example how Minkowski sums can be used to plan the motion of a an example how Minkowski sums can be used to plan the motion of a
translational robot. We want to know which are legal positions of the translational robot. We want to know which are legal positions of the
robot, and where can the robot go to from a specified starting robot, and where can the robot go to from a specified starting
@ -59,7 +59,7 @@ The decomposition method for computing the Minkowski sum of non-convex
polyhedra makes use of the fact that Minkowski sums of convex polyhedra makes use of the fact that Minkowski sums of convex
polyhedra are rather easy to compute. It decomposes both polyhedra polyhedra are rather easy to compute. It decomposes both polyhedra
into convex pieces, computes all pairwise Minkowski sums of the convex into convex pieces, computes all pairwise Minkowski sums of the convex
pieces, and merges the pairwise sums \cite bkos-cgaa-97. pieces, and merges the pairwise sums \cgalCite{bkos-cgaa-97}.
\cgalFigureBegin{Mink3decomp,decomposition_method.png} \cgalFigureBegin{Mink3decomp,decomposition_method.png}
The decomposition method decomposes both input polyhedra into convex parts, computes all pairwise Minkowski sums of the convex parts, and merges the pairwise sums. The decomposition method decomposes both input polyhedra into convex parts, computes all pairwise Minkowski sums of the convex parts, and merges the pairwise sums.

View File

@ -30,7 +30,7 @@ rehashing when set to the number of expected elements in the map.
The design is derived from the \stl `hash_map` and the \leda type The design is derived from the \stl `hash_map` and the \leda type
`map`. Its specialization on insertion only and unique hash values `map`. Its specialization on insertion only and unique hash values
allow for a more time- and space-efficient implementation, see also allow for a more time- and space-efficient implementation, see also
\cite mn-lpcgc-00, Chapter 5. This implementation makes also use \cgalCite{mn-lpcgc-00}, Chapter 5. This implementation makes also use
of sentinels that lead to defined keys that have not been inserted. of sentinels that lead to defined keys that have not been inserted.
*/ */

View File

@ -82,7 +82,7 @@ Class diagram for the modifier. It illustrates the safe access to an internal re
\cgalFigureEnd \cgalFigureEnd
The solution provided here is inspired by the strategy The solution provided here is inspired by the strategy
pattern \cite cgal:ghjv-dpero-95, though it serves a different intent. pattern \cgalCite{cgal:ghjv-dpero-95}, though it serves a different intent.
The abstract base class The abstract base class
`Modifier_base<R>` declares a pure virtual member function `Modifier_base<R>` declares a pure virtual member function
`operator()` that accepts a single reference parameter of the `operator()` that accepts a single reference parameter of the

View File

@ -77,10 +77,10 @@ next nearest value. This can be ensured using `Protect_FPU_rounding` with
\section Modular_arithmeticDesign Design and Implementation History \section Modular_arithmeticDesign Design and Implementation History
The class `Residue` is based on the C-code of Sylvain Pion et. al. The class `Residue` is based on the C-code of Sylvain Pion et. al.
as it was presented in \cite bepp-sdrns-99. as it was presented in \cgalCite{bepp-sdrns-99}.
The remaining part of the package is the result of the integration process The remaining part of the package is the result of the integration process
of the NumeriX library of <span class="textsc">Exacus</span> \cite beh-eeeafcs-05 into \cgal. of the NumeriX library of <span class="textsc">Exacus</span> \cgalCite{beh-eeeafcs-05} into \cgal.
*/ */
} /* namespace CGAL */ } /* namespace CGAL */

View File

@ -20,7 +20,7 @@ namespace CGAL {
In solid modeling, two major representation schemes are used: In solid modeling, two major representation schemes are used:
<I>constructive solid geometry</I> (CSG) and <I>boundary <I>constructive solid geometry</I> (CSG) and <I>boundary
representations</I> (B-rep). Both have inherent strengths and representations</I> (B-rep). Both have inherent strengths and
weaknesses, see \cite cgal:h-gsmi-89 for a discussion. weaknesses, see \cgalCite{cgal:h-gsmi-89} for a discussion.
In CSG a solid is represented as a set-theoretic Boolean combination In CSG a solid is represented as a set-theoretic Boolean combination
of primitive solid objects, such as blocks, prisms, cylinders, or of primitive solid objects, such as blocks, prisms, cylinders, or
@ -240,7 +240,7 @@ which are excluded from the volume.
For each face we store a label, e.g., a set-selection mark, which For each face we store a label, e.g., a set-selection mark, which
indicates whether the face is part of the solid or if it is indicates whether the face is part of the solid or if it is
excluded. We call the resulting data structure <I>Selective Nef excluded. We call the resulting data structure <I>Selective Nef
Complex</I>, <I>SNC</I> for short \cite cgal:ghhkm-bosnc-03. However, in Complex</I>, <I>SNC</I> for short \cgalCite{cgal:ghhkm-bosnc-03}. However, in
\cgal we identify the names and call the <I>SNC</I> data structure \cgal we identify the names and call the <I>SNC</I> data structure
`Nef_polyhedron_3`. `Nef_polyhedron_3`.
@ -266,7 +266,7 @@ unspecified value, which is finite but larger than all coordinate
values that may occur in the bounded part of the polyhedron. As a values that may occur in the bounded part of the polyhedron. As a
result, each Nef polyhedron becomes bounded. We call the boundary of result, each Nef polyhedron becomes bounded. We call the boundary of
the bounding volume the <I>infimaximal the bounding volume the <I>infimaximal
box</I> \cite cgal:sm-iftml-00. box</I> \cgalCite{cgal:sm-iftml-00}.
We clip lines and rays at the infimaximal box. The intersection points We clip lines and rays at the infimaximal box. The intersection points
with the infimaximal box are called <I>non-standard points</I>, which with the infimaximal box are called <I>non-standard points</I>, which
@ -290,7 +290,7 @@ polynomial), and runtime performance.
\section sectoinRegularized Regularized Set Operations \section sectoinRegularized Regularized Set Operations
Since manifolds are not closed under Boolean operations, Requicha Since manifolds are not closed under Boolean operations, Requicha
proposes to use <I>regularized set operations</I> \cite cgal:km-st-76, proposes to use <I>regularized set operations</I> \cgalCite{cgal:km-st-76},
cgal:r-rrstm-80. A set is <I>regular</I>, if it equals the closure cgal:r-rrstm-80. A set is <I>regular</I>, if it equals the closure
of its interior. A regularized set operation is defined as the of its interior. A regularized set operation is defined as the
standard set operation followed by a regularization of the result. standard set operation followed by a regularization of the result.
@ -509,7 +509,7 @@ The other shalfloop lies on the inwards oriented halffacet and is
oriented inwards, too. This shalfloop belongs to the third shell. oriented inwards, too. This shalfloop belongs to the third shell.
`Nef_polyhedron_3` offers a visitor interface to explore a shell `Nef_polyhedron_3` offers a visitor interface to explore a shell
following the well-known visitor pattern \cite cgal:ghjv-dpero-95. following the well-known visitor pattern \cgalCite{cgal:ghjv-dpero-95}.
The interface is illustrated by the following example. The interface is illustrated by the following example.
\cgalExample{Nef_3/shell_exploration.cpp} \cgalExample{Nef_3/shell_exploration.cpp}

View File

@ -9,7 +9,7 @@ Rounding mode and precision (i.e.\ mantissa length) of
`CORE::BigFloat` can be set. `CORE::BigFloat` can be set.
Since it also carries the error of a computed value. Since it also carries the error of a computed value.
This number type is provided by the <span class="textsc">Core</span> library \cite klpy-clp-99. This number type is provided by the <span class="textsc">Core</span> library \cgalCite{klpy-clp-99}.
\cgal defines the necessary functions so that this class complies to the \cgal defines the necessary functions so that this class complies to the
requirements on number types. requirements on number types.

View File

@ -7,7 +7,7 @@ namespace CORE {
The class `CORE::BigInt` provides exact computation in \f$ \Z\f$. The class `CORE::BigInt` provides exact computation in \f$ \Z\f$.
Operations and comparisons between objects of this type are guaranteed Operations and comparisons between objects of this type are guaranteed
to be exact. to be exact.
This number type is provided by the <span class="textsc">Core</span> library \cite klpy-clp-99. This number type is provided by the <span class="textsc">Core</span> library \cgalCite{klpy-clp-99}.
\cgal defines the necessary functions so that this class complies to the \cgal defines the necessary functions so that this class complies to the
requirements on number types. requirements on number types.

View File

@ -5,7 +5,7 @@ namespace CORE {
The class `CORE::BigRat` provides exact computation in \f$ \Q\f$. The class `CORE::BigRat` provides exact computation in \f$ \Q\f$.
Operations and comparisons between objects of this type are guaranteed to be exact. Operations and comparisons between objects of this type are guaranteed to be exact.
This number type is provided by the <span class="textsc">Core</span> library \cite klpy-clp-99. This number type is provided by the <span class="textsc">Core</span> library \cgalCite{klpy-clp-99}.
\cgal defines the necessary functions so that this class complies to the \cgal defines the necessary functions so that this class complies to the
requirements on number types. requirements on number types.

Some files were not shown because too many files have changed in this diff Show More