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
separated into two equal size sets. This procedure is applied
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
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

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
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
Lutz Kettner, Susan Hert, Arno Eigenwillig and Michael Hemmer.
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
free polynomial and an isolating interval that uniquely defines the root.
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
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.
`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
pair of curves \cite ek-exact-08.
geometric-topological analysis of a single curve \cgalCite{ekw-fast-07} and of a
pair of curves \cgalCite{ek-exact-08}.
The main idea behind both analyses is to compute the critical
x-coordinates of curves and curve pairs by projection (resultants), and compute
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
critical x-coordinates is computed by a variant of the Bitstream
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.
Almost all functors in the class that take a `Polynomial_2`
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
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,
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.
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.
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.
The RS library restricts its attention to univariate integer
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
only one number type allows to optimize some polynomial operations
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`.
The algebraic numbers (roots of the polynomials) are represented
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,
comparisons with other algebraic kernels and discussions about the
efficiency.
@ -358,7 +358,7 @@ were written by Eric Berberich, Michael Hemmer, and
Monique Teillaud.
The design history of the package is fairly old and several
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
numbers should be under the control of the algebraic kernel. On the other
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
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,
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
@ -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,
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.
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
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
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
(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.
\cgalModels `AlgebraicKernel_d_1`

View File

@ -5,16 +5,16 @@ namespace CGAL {
\ingroup PkgAlgebraicKerneldModels
This class is based on an algorithm computing a
geometric-topological analysis of a single curve \cite ekw-fast-07 and of a
pair of curves \cite ek-exact-08.
geometric-topological analysis of a single curve \cgalCite{ekw-fast-07} and of a
pair of curves \cgalCite{ek-exact-08}.
The main idea behind both analyses is to compute the critical
x-coordinates of curves and curve pairs by projection (resultants), and compute
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
critical x-coordinates is computed by a variant of the Bitstream
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.
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
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,
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
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
@ -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
the computation of the underlying triangulation. The corresponding
\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
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
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
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

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
can be used for shape reconstruction from a dense unorganized set of
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
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
@ -63,7 +63,7 @@ an empty circumscribing sphere with squared radius equal or smaller than \f$ \al
Here "empty" means that the open sphere
do not include any points of \f$ S\f$.
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:
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
do not include any points of \f$ S\f$.
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.
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>`
and will be discussed in more detail in the sequel. The interested
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.
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
discuss them in detail. The interested reader may refer to the papers
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
compute. There are several predicates needed by this algorithm. We
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`
class, applied to the Apollonius graph. It consists of a series of
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>`
has exactly the same interface and functionality as the
`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
`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
with efficient and exact predicates given an exact
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,
subtractions and multiplications.
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:
`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$
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
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
meaning as in the `Apollonius_graph_2<Gt,Agds>` class. The first
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
default value for `Method_tag` is `CGAL::Ring_tag`.
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`

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$.
Arrangements are ubiquitous in the computational-geometry
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
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
isolated vertices in its interior. See \cgalFigureRef{arr_figseg_dcel}
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}
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
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:
<UL>
<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
this refined concept.
<LI>`Arr_trapezoid_ric_point_location<Arrangement>` implements
Mulmuley's point-location algorithm \cite m-fppa-90; see
also \cite bkos-cgaa-00, Chapter 6. The arrangement faces are
Mulmuley's point-location algorithm \cgalCite{m-fppa-90}; see
also \cgalCite{bkos-cgaa-00}, Chapter 6. The arrangement faces are
decomposed into simpler cells each of constant complexity, known as
<I>pseudo-trapezoids</I>, and a search structure (a directed acyclic
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
linear. In practice however, the query times of both strategies are
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
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
own right, they are also very useful for approximating or
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
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,
in order to keep their data structures up-to-date. The arrangement
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
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
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
two input arrangement instances `arr_a` and `arr_b`, and constructs

View File

@ -7,15 +7,15 @@ namespace CGAL {
\anchor arr_reftrap_pl
The `Arr_trapezoid_ric_point_location` class implements the incremental randomized algorithm
introduced by Mulmuley \cite m-fppa-90 as presented by
Seidel \cite s-sfira-91 (see also [\cite bkos-cgaa-00 Chapter 6).
introduced by Mulmuley \cgalCite{m-fppa-90} as presented by
Seidel \cgalCite{s-sfira-91} (see also [\cgalCite{bkos-cgaa-00} Chapter 6).
It subdivides each arrangement face to pseudo-trapezoidal cells, each
of constant complexity, and constructs and maintains a linear-size search
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.
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
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

View File

@ -361,7 +361,7 @@ public:
The following handles, iterators, and circulators all have respective
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
types. The mutable types are assignable to their constant
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
we only have to calculate the intersection points
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
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
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

View File

@ -9,7 +9,7 @@ for the 2D triangulation classes.
The triangulations of \cgal are all models of the concepts
`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

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
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
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$.
Regularized Boolean set-operations appear in Constructive Solid
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}
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)
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

View File

@ -43,7 +43,7 @@ can be formulated as an optimization problem with linear constraints and a
linear objective
function.
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
functions and predicates take constant time, inserting a point takes almost

View File

@ -53,8 +53,8 @@ two-dimensional \cgal kernel.
\cgalHeading{Implementation}
We implement the incremental algorithm of Welzl, with move-to-front
heuristic \cite w-sedbe-91a. The whole implementation is described
in \cite cgal:gs-seceg-98.
heuristic \cgalCite{w-sedbe-91a}. The whole implementation is described
in \cgalCite{cgal:gs-seceg-98}.
If randomization is
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}
We implement the incremental algorithm of Welzl, with move-to-front
heuristic \cite w-sedbe-91a, using the primitives as described
in \cite gs-epsee-97, \cite cgal:gs-seefe-97a. The whole implementation is described
in \cite cgal:gs-seeeg-98.
heuristic \cgalCite{w-sedbe-91a}, using the primitives as described
in \cgalCite{gs-epsee-97}, \cgalCite{cgal:gs-seefe-97a}. The whole implementation is described
in \cgalCite{cgal:gs-seeeg-98}.
If randomization is
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}
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
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
always linear in the number of points. Access functions and predicates
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}
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
disadvantages: Our implementation of the LP-algorithm has maximal
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
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.
\cgalHeading{Example}
@ -115,7 +115,7 @@ is `CGAL::Point_2<K>` for some kernel `K`.
\cgalHeading{Implementation}
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.
\cgalHeading{Example}
@ -183,7 +183,7 @@ is `CGAL::Point_2<K>` for some kernel `K`.
\cgalHeading{Implementation}
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.
\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
input points. These runtimes are worst case optimal. The \f$ 3\f$-center
algorithm uses a prune-and-search technique described in
\cite 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
piercing rectangles \cite sw-rpppp-96.
\cgalCite{cgal:h-slacr-99}. The \f$ 4\f$-center implementation uses sorted matrix
search \cgalCite{fj-fkppc-83}, \cgalCite{fj-gsrsm-84} and fast algorithms for
piercing rectangles \cgalCite{sw-rpppp-96}.
\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
of the other two methods which we consider "the best in practice."
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
number of operations on the number type `FT`). In case of
`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 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.,
typically these will be such bounding boxes of more complicated geometries.
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
are proximity queries and distance computations among such surfaces,
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
@ -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
approximated by the box. Both implementations have template parameters
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.
The function signatures for the bipartite case look as follows. The
@ -343,11 +343,11 @@ discussion.
\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.
When the size of both iterator ranges drops below the `cutoff`
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.
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
the threshold parameter small. Otherwise a `cutoff`\f$ =\sqrt{n}\f$ can
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
cutoff parameters are recommended.
@ -462,7 +462,7 @@ stored in the `boxes` so far.
\section Box_intersection_dDesign Design and Implementation History
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
some questions, and we are grateful to the help of Afra Zomorodian in
answering our questions during his visit. We thank Steve Robbins for

View File

@ -156,11 +156,11 @@ namespace CGAL {
\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.
When the size of both iterator ranges drops below the `cutoff`
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.
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
the threshold parameter small. Otherwise a `cutoff`\f$ =\sqrt{n}\f$ can
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
cutoff parameters are recommended. See also
Section \ref secboxintersperformance .

View File

@ -9,7 +9,7 @@ namespace CGAL {
\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.
The extensible adjective sheds a light on an important feature:
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
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
\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
\cite cgal:ekptt-tock-04.
\cgalCite{cgal:ekptt-tock-04}.
The code of this package was initially written by Sylvain Pion and
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
3.4. Fr&eacute;d&eacute;ric Cazals and S&eacute;bastien Loriot extended the
package by providing functionalities restricted on a given sphere
\cite cclt-dc3sk-08.
\cgalCite{cclt-dc3sk-08}.
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
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
structures. Examples are polyhedral surfaces and planar maps, where
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
would be indistinguishable from output iterators.}. Most requirements
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.
<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
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
\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
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.
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
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
interior of the polyhedron. Those edges are also called reflex edges.
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}
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}
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.

View File

@ -41,7 +41,7 @@ functions that return instances of these types:
\cgalHeading{Implementation}
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
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}
This function implements Eddy's algorithm
\cite e-nchap-77, which is the two-dimensional version of the quickhull
algorithm \cite bdh-qach-96.
\cgalCite{e-nchap-77}, which is the two-dimensional version of the quickhull
algorithm \cgalCite{bdh-qach-96}.
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.

View File

@ -44,8 +44,8 @@ functions that return instances of these types:
\cgalHeading{Implementation}
This function implements Andrew's variant of the Graham
scan algorithm \cite a-aeach-79 and follows the presentation of Mehlhorn
\cite m-mdscg-84. This algorithm requires \f$ O(n \log n)\f$ time
scan algorithm \cgalCite{a-aeach-79} and follows the presentation of Mehlhorn
\cgalCite{m-mdscg-84}. This algorithm requires \f$ O(n \log n)\f$ time
in the worst case for \f$ n\f$ input points.
@ -93,14 +93,14 @@ functions that return instances of these types:
\cgalHeading{Implementation}
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.
\cgalHeading{Example}
In the following example `ch_graham_andrew_scan()` is used to
realize Anderson's variant \cite a-readc-78 of the Graham Scan
\cite g-eadch-72. The points are sorted counterclockwise around the leftmost
realize Anderson's variant \cgalCite{a-readc-78} of the Graham Scan
\cgalCite{g-eadch-72}. The points are sorted counterclockwise around the leftmost
point using the `Less_rotate_ccw_2` predicate, as defined in
the concept `ConvexHullTraits_2`. According to the definition
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
starting at `result` with \f$ p\f$; point \f$ q\f$ is omitted. The
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,
class Traits>

View File

@ -41,7 +41,7 @@ functions that return instances of these types:
\cgalHeading{Implementation}
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.
@ -88,7 +88,7 @@ functions that return instances of these types:
\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
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}
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.

View File

@ -46,11 +46,11 @@ functions that return instances of these types:
One of two algorithms is used,
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
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
\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}
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.
@ -191,7 +191,7 @@ functions that return instances of these types:
\cgalHeading{Implementation}
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.

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.
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
(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
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 \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
iterator used to specify the input points. These two algorithms are
also available via the functions `ch_bykat()` and `ch_akl_toussaint()`,
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()`),
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()`),
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
two-dimensional version of the quickhull algorithm.
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
sequence of extreme points on the lower hull and upper hull,
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$.
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}
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
of the three-dimensional points in the range [`first`,`beyond`)
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.
@ -32,7 +32,7 @@ the representation class `R` required by
\cgalHeading{Implementation}
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
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}
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
\f$ e\f$ edges and \f$ f\f$ faces.

View File

@ -35,7 +35,7 @@ triangulation to get a fully dynamic computation.
The function
`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
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
@ -59,7 +59,7 @@ account.
\subsection Convex_hull_3ConvexityChecking Convexity Checking
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
point set or not. This function is used in postcondition testing for
`convex_hull_3()`.
@ -79,7 +79,7 @@ of the convex hull.
The function `convex_hull_incremental_3()` provides an
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
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

View File

@ -58,7 +58,7 @@ successively assigned to \f$ f\f$ \f$ \}\f$
\cgalHeading{Implementation}
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
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.
The validity of the computed convex hull can be checked using the
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
set or not.
The implementation follows the papers \cite cms-frric-93 and
\cite bms-dgc-94.
The implementation follows the papers \cgalCite{cms-frric-93} and
\cgalCite{bms-dgc-94}.
\section Convex_hull_dDelaunay Delaunay Triangulation

View File

@ -981,7 +981,7 @@ public:
/*{\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
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
policy concerning exception handling in \cgal. It is nevertheless good to
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>),
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>).
\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
is the caching of results from expensive computations. For more
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.
- 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}

View File

@ -4,18 +4,18 @@
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
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.
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.
- \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
const-correctness.
- \cite fgkss-dccga-00 - The \cgal design paper.
- \cite hhkps-aegk-01 - The new \cgal kernel design paper.
- \cgalCite{fgkss-dccga-00} - The \cgal 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
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
@ -84,7 +84,7 @@ integrate new classes and algorithms into \cgal.
\cgal should be open to coexist with other libraries, or better, to
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
foundation for all \cpp platforms.
@ -132,7 +132,7 @@ maps library.
A goal with similar implications as uniformity is a design
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
functionality, but should
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
complexity are known. Also, the theoretic interest in efficiency for
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
\f$ O\f$-notation is necessary, especially if there are several competing
algorithms.

View File

@ -36,8 +36,8 @@ Section \ref sechandle_vs_it_vs_circ below discusses when handles
should be used in your code.
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)
and Austern's book (<I>Generic Programming and the \stl</I> \cite cgal:a-gps-98)
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> \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
<I>Support Library</I> part of the \cgal manual.
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
\stl concept of a container. As for all concepts, this means that
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:
<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
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.
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
use any kernel as a traits class directly with your algorithm or data
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
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
(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
as it allows types in the kernel to be easily exchanged and modified.
Similarly, each operation and construction in the kernel is provided via
a function object class in the
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
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.
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.
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
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>.

View File

@ -185,7 +185,7 @@ Linux
For (good) reasons that will not be discussed here, it was decided to
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
compilers, let alone bugs.

View File

@ -5,7 +5,7 @@
The concept of a traits class is central to %CGAL. The name <i>traits
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.
The traits class is used in template code to reflect properties (traits)
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
slightly different parameters might be handled efficiently by
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>
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
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,
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
with the same line as the rightmost edge of the maximization diagram,
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
post-processing on the resulting diagram. The post-processing stage is
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

View File

@ -31,7 +31,7 @@ R >` for some representation class `R`,
\cgalHeading{Implementation}
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`
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
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
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
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$.

View File

@ -10,17 +10,17 @@ combinatorial data structure, geometric interpretation is added by
classes built on top of the halfedge data structure.
The data structure defined here is known as the
FE-structure \cite w-ebdss-85, as
halfedges \cite m-ism-88, \cite cgal:bfh-mgedm-95 or as the doubly connected edge
list (DCEL) \cite bkos-cgaa-97, although the original reference for
the DCEL \cite mp-fitcp-78 describes a different data structure. The
FE-structure \cgalCite{w-ebdss-85}, as
halfedges \cgalCite{m-ism-88}, \cgalCite{cgal:bfh-mgedm-95} or as the doubly connected edge
list (DCEL) \cgalCite{bkos-cgaa-97}, although the original reference for
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
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
restricted to orientable 2-manifolds only. An overview and comparison
of these different data structures together with a thorough
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 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".
The data structure provided here is also known as the
FE-structure \cite w-ebdss-85, as
halfedges \cite m-ism-88, \cite cgal:bfh-mgedm-95 or as the doubly connected edge
list (DCEL) \cite bkos-cgaa-97, although the original reference for
the DCEL \cite mp-fitcp-78 describes a different data structure. The
FE-structure \cgalCite{w-ebdss-85}, as
halfedges \cgalCite{m-ism-88}, \cgalCite{cgal:bfh-mgedm-95} or as the doubly connected edge
list (DCEL) \cgalCite{bkos-cgaa-97}, although the original reference for
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
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
restricted to orientable 2-manifolds only. An overview and comparison
of these different data structures together with a thorough
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,
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
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
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
efficient as, for example, the winged-edge data
structure \cite b-prcv-75, the DCEL \cite mp-fitcp-78 or variants of
the quad-edge data structure \cite gs-pmgsc-85. On the other hand,
structure \cgalCite{b-prcv-75}, the DCEL \cgalCite{mp-fitcp-78} or variants of
the quad-edge data structure \cgalCite{gs-pmgsc-85}. On the other hand,
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
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".
The data structure provided here is known as the
FE-structure \cite w-ebdss-85, as
halfedges \cite m-ism-88, \cite cgal:bfh-mgedm-95 or as the doubly connected edge
list (DCEL) \cite bkos-cgaa-97, although the original reference for
the DCEL \cite mp-fitcp-78 describes a related but different data
FE-structure \cgalCite{w-ebdss-85}, as
halfedges \cgalCite{m-ism-88}, \cgalCite{cgal:bfh-mgedm-95} or as the doubly connected edge
list (DCEL) \cgalCite{bkos-cgaa-97}, although the original reference for
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
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,
but the variant here is restricted to orientable 2-manifolds only. An
overview and comparison of these different data structures together
with a thorough description of the design implemented here can be
found in \cite k-ugpdd-99.
found in \cgalCite{k-ugpdd-99}.
\cgalClassifedRefPages

View File

@ -13,7 +13,7 @@ that do not contain any point of the point set.
\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
case time and \f$ O(n \log n)\f$ expected time. The working storage is \f$
O(n)\f$.

View File

@ -32,7 +32,7 @@ convex polygon (oriented clock- or counterclockwise).
\cgalHeading{Implementation}
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
\f$ P\f$.
@ -89,7 +89,7 @@ where `K` is a model of `Kernel`.
\cgalHeading{Implementation}
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
\f$ P\f$.
@ -158,7 +158,7 @@ defined that computes the squareroot of a number.
\cgalHeading{Implementation}
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
\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 The range `[first, beyond)` contains either one or more than three elements.
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}

View File

@ -7,7 +7,7 @@ namespace CGAL {
These functions approximate the gradient of a
function at a point `p` given natural neighbor coordinates for `p` and
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
data points. One function exists for each type of natural neighbor
coordinates.
@ -42,7 +42,7 @@ provide a multiplication and addition operation with the type
This function implements Sibson's gradient
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
surface at `p`. If the sampling is sufficiently dense, the
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
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
dense, the neighbors are provably close to the point `p` on the
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
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

View File

@ -37,7 +37,7 @@ at \f$ \mathbf{p_i}\f$. It is denoted \f$ \mathbf{g_i}= \nabla
\subsection InterpolationIntroduction Introduction
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
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
@ -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
is depicted in \cgalFigureRef{fignn_coords}.
Various papers (\cite s-vidt-80, \cite f-sodt-90,
\cite cgal:p-plcbd-93, \cite b-scaps-97, \cite hs-vbihc-00) show that
Various papers (\cgalCite{s-vidt-80}, \cgalCite{f-sodt-90},
\cgalCite{cgal:p-plcbd-93}, \cgalCite{b-scaps-97}, \cgalCite{hs-vbihc-00}) show that
the natural neighbor coordinates have the following properties:
<OL>
<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$
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
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
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
\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
\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
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
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
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
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
@ -237,7 +237,7 @@ provided.
\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
\f$ \Phi(\mathbf{x})\f$ is given as the linear combination of the neighbors' function
values weighted by the coordinates:
@ -253,7 +253,7 @@ called.
\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
\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
@ -261,7 +261,7 @@ exactly. The
proof relies on the barycentric coordinate property of the natural
neighbor coordinates and assumes that the gradient of \f$ \Phi\f$ at the
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
\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
computation needed to compute the distance \f$ \|\mathbf{x} -
\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
\f$ \mathbf{x} \rightarrow \mathbf{p_i}\f$.
\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
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
reproduces quadratic functions exactly. The function gradient can be
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.
\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
well-sampled surfaces can also be computed if the normal to the
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.

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 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
structure known as skip list \cite p-slpab-90.
structure known as skip list \cgalCite{p-slpab-90}.
\section Interval_skip_listExample Example Programs

View File

@ -18,8 +18,8 @@
\cgalPkgShortInfoEnd
\cgalPkgDescriptionEnd
This chapter presents the interval skip list introduced by Hanson \cite h-islds-91,
and derived from the skip list data structure \cite p-slpab-90.
This chapter presents the interval skip list introduced by Hanson \cgalCite{h-islds-91},
and derived from the skip list data structure \cgalCite{p-slpab-90}.
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.

View File

@ -34,7 +34,7 @@ estimating first and second order differential quantities is
sufficient. However, some applications involving shape analysis
require estimating third and fourth order differential quantities.
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
estimation is computed. Our method relies on smooth differential
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
method developed in this \cgal package, the
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.
On the other hand, any estimation method may be applied to arbitrarily
@ -140,7 +140,7 @@ approximation reduces to linear algebra operations.
</OL>
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
@ -151,7 +151,7 @@ cases:
vector may not be good. The nearer this direction to the tangent
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,
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
@ -429,7 +429,7 @@ definite positive when \f$ M\f$ has full rank.
The advantages of the \f$ SVD\f$
is that it works directly on the rectangular system and gives the
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
@ -458,7 +458,7 @@ estimation is performed, is \f$ (0,0,A_{0,0})\f$.
<LI>The normal is
\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
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
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

View File

@ -4,7 +4,7 @@ namespace CGAL {
/*!
\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
The geometric constructions are exactly those
@ -53,10 +53,10 @@ namespace CGAL {
\ingroup kernel_classes
`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
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
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
are exact) which is possible in many cases but more expensive
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
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;
\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.
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
choice is probably a number type that guarantees exact computation.
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
type <TT>double</TT>, because they need speed and can live with
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
so accurate that all decisions made by the algorithm are exact) which
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
geometric algorithms and discusses some approaches to solve them. A
more recent overview is given in \cite s-rpigc-00. The exact
computation paradigm is discussed by Yap and Dub&eacute; \cite yd-ecp-95
and Yap \cite y-tegc-97.
more recent overview is given in \cgalCite{s-rpigc-00}. The exact
computation paradigm is discussed by Yap and Dub&eacute; \cgalCite{yd-ecp-95}
and Yap \cgalCite{y-tegc-97}.
In \cgal you can choose the underlying number types and arithmetic.
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
%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
<I>predicates</I> - functions on quantities defining the geometric
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
`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

View File

@ -52,7 +52,7 @@ binary function: `Matrix::Value` \f$ \times\f$
\cgalHeading{Implementation}
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.
*/

View File

@ -51,7 +51,7 @@ true.
\cgalHeading{Implementation}
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
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.

View File

@ -7,7 +7,7 @@ namespace CGAL {
\cgalAutoToc
\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
described in Section \ref secMesh_2_conforming_triangulation and
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
input angles. This is unavoidable since small angles formed
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.
Note that if the domain is a polygonal region, the resulting mesh will
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.
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
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,
to ensure a fair representation
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
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
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.
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
and to guarantee that the refinement process terminates
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
moving the mesh vertices to minimize
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
is the `L1` error resulting from the interpolation
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}
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
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
re-weighting mesh vertices with optimal weights.
@ -980,33 +980,33 @@ vertices/second
\subsection Mesh_3TheoreticalFoundations Theoretical Foundations
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
and pioneered in 3D by Shewchuk \cite s-tmgdr-98.
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 \cgalCite{s-tmgdr-98}.
It uses the notion of restricted Delaunay triangulation
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 Oudot et al. \cite cgal:ory-mvbss-05
and rely on the work of Boissonnat and Oudot \cgalCite{cgal:bo-pgsms-05}
and Oudot et al. \cgalCite{cgal:ory-mvbss-05}
to achieve accurate representation of boundary and subdividing surfaces in the mesh.
The mechanism of protecting balls, used to ensure a fair representation
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
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.
\cite cgal:cdl-pdma-07.
was pioneered by Cheng et al. \cgalCite{cgal:cdr-drpsc-07} and further experimented by Dey, Levine et al.
\cgalCite{cgal:cdl-pdma-07}.
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 odt smoothing \cite cgal::c-mssbo-04, \cite cgal:acyd-vtm-05, where odt means
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 \cgalCite{cgal::c-mssbo-04}, \cgalCite{cgal:acyd-vtm-05}, where odt means
<I>optimal Delaunay triangulation</I>. The perturbation process
is mainly based on the work of Tournois \cite cgal:t-om-09
and Tournois et al. \cite cgal:twad-iropitmg-09,
is mainly based on the work of Tournois \cgalCite{cgal:t-om-09}
and Tournois et al. \cgalCite{cgal:twad-iropitmg-09},
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
Work on the package `Mesh_3` started during the PhD thesis of Laurent Rineau
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.
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.
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
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
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,
and outputs a decomposition whose size is guaranteed to be no more
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
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
unnecessary triangulation edges. Given the triangulation, the
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
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
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
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
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

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$
have positive orientations (i.e.\ their boundaries wind in a counterclockwise
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
\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.}
@ -146,31 +146,31 @@ The Minkowski-sum package includes four models of the concept
`PolygonConvexDecomposition_2`. The first three are classes that wrap
the decomposition functions included in the Planar Polygon Partitioning
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:
<UL>
<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
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
the input polygon.
<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
unnecessary triangulation edges.
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
times the optimum.
<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
\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
Hertel and Mehlhorn's algorithm.
<LI>The class `Small_side_angle_bisector_decomposition_2<Kernel>` uses
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
in the input polygon such that the entire interior of the diagonal
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
\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
robot motion planning \cite l-rmp-91 and computer-aided
design \cite cgal:ek-sicad-99. \cgalFigureRef{figmotionPlanning} shows
robot motion planning \cgalCite{l-rmp-91} and computer-aided
design \cgalCite{cgal:ek-sicad-99}. \cgalFigureRef{figmotionPlanning} shows
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
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 are rather easy to compute. It decomposes both polyhedra
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}
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
`map`. Its specialization on insertion only and unique hash values
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.
*/

View File

@ -82,7 +82,7 @@ Class diagram for the modifier. It illustrates the safe access to an internal re
\cgalFigureEnd
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
`Modifier_base<R>` declares a pure virtual member function
`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
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
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 */

View File

@ -20,7 +20,7 @@ namespace CGAL {
In solid modeling, two major representation schemes are used:
<I>constructive solid geometry</I> (CSG) and <I>boundary
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
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
indicates whether the face is part of the solid or if it is
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
`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
result, each Nef polyhedron becomes bounded. We call the boundary of
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
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
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
of its interior. A regularized set operation is defined as the
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.
`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.
\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.
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
requirements on number types.

View File

@ -7,7 +7,7 @@ namespace CORE {
The class `CORE::BigInt` provides exact computation in \f$ \Z\f$.
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
requirements on number types.

View File

@ -5,7 +5,7 @@ namespace CORE {
The class `CORE::BigRat` provides exact computation in \f$ \Q\f$.
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
requirements on number types.

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