mirror of https://github.com/CGAL/cgal
updated rcs_spec.tex to fix the example program.
This commit is contained in:
parent
137f7a9c55
commit
712ed586ae
|
|
@ -66,8 +66,8 @@ sets with multiple entries of identical items.
|
|||
% +------------------------------------------------------------------------+
|
||||
\section{2D Point Generators}
|
||||
\label{sectionPointGenerators}
|
||||
\ccIndexSubitemBegin[c]{generator}{2D point}
|
||||
\ccIndexSubitemBegin[c]{point, 2D}{generator}
|
||||
\lcTex{\ccIndexSubitemBegin[c]{generator}{2D point}}
|
||||
\lcTex{\ccIndexSubitemBegin[c]{point, 2D}{generator}}
|
||||
|
||||
Two kinds of point generators are provided: first, random point
|
||||
generators and second deterministic point generators. Most random
|
||||
|
|
@ -83,7 +83,7 @@ iterators. Further functions add degeneracies or random perturbations.
|
|||
|
||||
% +------------------------------------------------------------------------+
|
||||
\subsection{Point Generators as Input Iterators}
|
||||
\ccIndexSubsubitemBegin[c]{generator}{2D point}{as input iterator}
|
||||
\lcTex{\ccIndexSubsubitemBegin[c]{generator}{2D point}{as input iterator}}
|
||||
|
||||
\ccDefinition
|
||||
|
||||
|
|
@ -204,22 +204,27 @@ denoted by \ccc{P} here.
|
|||
|
||||
\ccOperations
|
||||
\ccThree{double}{g.source();}{}
|
||||
\ccAutoIndexingOff
|
||||
\lcTex{\ccAutoIndexingOff}
|
||||
\ccMethod{double range();}{returns the range in which the point
|
||||
coordinates lie, i.e.~$\forall x: |x| \leq $\ccc{range()} and
|
||||
$\forall y: |y| \leq $\ccc{range()}.}\ccIndexSubitem[C]{range}{\ccFont Random_points_*_2}
|
||||
$\forall y: |y| \leq $\ccc{range()}.}%
|
||||
\lcTex{\ccIndexSubitem[C]{range}{\ccFont Random_points_*_2}}
|
||||
|
||||
The generators \ccc{Random_points_on_segment_2} and
|
||||
\ccc{Points_on_segment_2} have two additional methods.
|
||||
|
||||
\ccMethod{const P& source();}{returns the source point of the segment.}%
|
||||
\lcTex{
|
||||
\ccIndexSubitem[C]{source}{\ccFont Random_points_on_segment_2}%
|
||||
\ccIndexSubitem[C]{source}{\ccFont Points_on_segment_2}%
|
||||
}%
|
||||
\ccGlue
|
||||
\ccMethod{const P& target();}{returns the target point of the segment.}
|
||||
\lcTex{
|
||||
\ccIndexSubitem[C]{target}{\ccFont Random_points_on_segment_2}%
|
||||
\ccIndexSubitem[C]{target}{\ccFont Points_on_segment_2}%
|
||||
\ccAutoIndexingOn
|
||||
}%
|
||||
|
||||
\end{ccClassTemplate}
|
||||
|
||||
|
|
@ -230,16 +235,16 @@ The generators \ccc{Random_points_on_segment_2} and
|
|||
\ccc{copy_n}, \ccc{Counting_iterator},
|
||||
\ccTexHtml{\\}{}
|
||||
\ccc{Join_input_iterator_1}.
|
||||
\ccIndexSubsubitemEnd[c]{generator}{2D point}{as input iterator}
|
||||
\lcTex{\ccIndexSubsubitemEnd[c]{generator}{2D point}{as input iterator}}
|
||||
|
||||
|
||||
% +------------------------------------------------------------------------+
|
||||
\subsection{Point Generators as Functions}
|
||||
\ccIndexSubsubitemBegin[c]{generator}{2D point}{as function}
|
||||
\lcTex{\ccIndexSubsubitemBegin[c]{generator}{2D point}{as function}}
|
||||
|
||||
\ccHeading{Grid Points}
|
||||
\ccThree{OutputIterator}{rand}{}
|
||||
\ccIndexSubsubitem[c]{generator}{2D point}{on grid}
|
||||
\lcTex{\ccIndexSubsubitem[c]{generator}{2D point}{on grid}}
|
||||
|
||||
Grid points are generated by functions that write to output iterators.
|
||||
|
||||
|
|
@ -274,7 +279,7 @@ Grid points are generated by functions that write to output iterators.
|
|||
the $n$ points.}
|
||||
|
||||
\ccHeading{Random Perturbations}
|
||||
\ccIndexMainItem{random perturbations}
|
||||
\lcTex{\ccIndexMainItem{random perturbations}}
|
||||
|
||||
Degenerate input sets like grid points can be randomly perturbed by a
|
||||
small amount to produce {\em quasi}-degenerate test sets. This
|
||||
|
|
@ -303,7 +308,7 @@ exact predicates to compute the sign of expressions slightly off from zero.
|
|||
}
|
||||
|
||||
\ccHeading{Adding Degeneracies}
|
||||
\ccIndexMainItem{degeneracies in input, adding}
|
||||
\lcTex{\ccIndexMainItem{degeneracies in input, adding}}
|
||||
|
||||
For a given point set certain kinds of degeneracies can be produced
|
||||
adding new points. The \ccc{random_selection()} function is
|
||||
|
|
@ -339,7 +344,7 @@ a point set.
|
|||
coordinate values.
|
||||
}
|
||||
\def\ccLongParamLayout{\ccFalse}
|
||||
\ccIndexSubsubitemEnd[c]{generator}{2D point}{as function}
|
||||
\lcTex{\ccIndexSubsubitemEnd[c]{generator}{2D point}{as function}}
|
||||
|
||||
|
||||
\ccSeeAlso
|
||||
|
|
@ -416,15 +421,19 @@ for the example output.
|
|||
alt="Integer Point Generator Example Output"></A>
|
||||
</TD></TR></TABLE>
|
||||
\end{ccHtmlOnly}%
|
||||
\lcTex{
|
||||
\ccIndexSubitemEnd[c]{generator}{2D point}%
|
||||
\ccIndexSubitemEnd[c]{point, 2D}{generator}%
|
||||
}
|
||||
|
||||
|
||||
% +------------------------------------------------------------------------+
|
||||
\newpage
|
||||
\section{3D Point Generators}
|
||||
\lcTex{
|
||||
\ccIndexSubitemBegin[c]{generator}{3D point}
|
||||
\ccIndexSubitemBegin[c]{point, 3D}{generator}
|
||||
}
|
||||
|
||||
One kind of point generator is currently provided for 3D points: Random point
|
||||
generators implemented as input iterators. The input iterators model
|
||||
|
|
@ -504,9 +513,10 @@ include local type declarations including \ccc{value_type}, denoted by
|
|||
Three random numbers are needed from \ccc{rnd} for each point.
|
||||
}
|
||||
\end{ccClassTemplate}
|
||||
\lcTex{
|
||||
\ccIndexSubitemEnd[c]{generator}{3D point}
|
||||
\ccIndexSubitemEnd[c]{point, 3D}{generator}
|
||||
%\ccIndexSubitemEnd[c]{generator}{3D point}
|
||||
}
|
||||
|
||||
|
||||
\ccSeeAlso
|
||||
|
|
@ -520,11 +530,12 @@ include local type declarations including \ccc{value_type}, denoted by
|
|||
% +------------------------------------------------------------------------+
|
||||
\newpage
|
||||
\section{Examples Generating Segments}
|
||||
\ccIndexSubitemBegin[c]{generator}{segment}
|
||||
\lcTex{\ccIndexSubitemBegin[c]{generator}{segment}}
|
||||
|
||||
The following two examples illustrate the use of the generic functions
|
||||
from Section~\ref{sectionGenericFunctions} like
|
||||
\ccc{Join_input_iterator_2}\ccIndexGlobalFunction{Join_input_iterator_2} to generate
|
||||
\ccc{Join_input_iterator_2}%
|
||||
\lcTex{\ccIndexGlobalFunction{Join_input_iterator_2}} to generate
|
||||
composed objects from other
|
||||
generators -- here two-dimensional segments from two point generators.
|
||||
|
||||
|
|
@ -574,10 +585,12 @@ The second example generates a regular structure of 100 segments; see
|
|||
\ccTexHtml{Figure~\ref{figureSegmentGeneratorFan}}{Figure <A
|
||||
HREF="#SegmentGeneratorFan"> <IMG SRC="cc_ref_up_arrow.gif"
|
||||
ALT="reference arrow" WIDTH="10" HEIGHT="10"></A>} for the example
|
||||
output. It uses the \ccc{Points_on_segment_2}\ccIndexGlobalFunction{Points_on_segment_2} iterator,
|
||||
\ccc{Join_input_iterator_2}\ccIndexGlobalFunction{Join_input_iterator_2}
|
||||
and \ccc{Counting_iterator}\ccIndexGlobalFunction{Counting_iterator} to
|
||||
avoid any intermediate storage of the generated objects until they are
|
||||
output. It uses the \ccc{Points_on_segment_2}%
|
||||
\lcTex{\ccIndexGlobalFunction{Points_on_segment_2}} iterator,
|
||||
\ccc{Join_input_iterator_2}%
|
||||
\lcTex{\ccIndexGlobalFunction{Join_input_iterator_2}}
|
||||
and \ccc{Counting_iterator}%\lcTex{\ccIndexGlobalFunction{Counting_iterator}}
|
||||
to avoid any intermediate storage of the generated objects until they are
|
||||
used, which in this example means copied to a window stream.
|
||||
|
||||
\ccIncludeVerbatim{Segment_generator_prog2.C}
|
||||
|
|
@ -595,7 +608,7 @@ used, which in this example means copied to a window stream.
|
|||
alt="Segment Generator Example Output 2"></A>
|
||||
</TD></TR></TABLE>
|
||||
\end{ccHtmlOnly}
|
||||
\ccIndexSubitemEnd[c]{generator}{segment}
|
||||
\lcTex{\ccIndexSubitemEnd[c]{generator}{segment}}
|
||||
|
||||
|
||||
% +--------------------------------------------------------+
|
||||
|
|
|
|||
|
|
@ -66,8 +66,8 @@ sets with multiple entries of identical items.
|
|||
% +------------------------------------------------------------------------+
|
||||
\section{2D Point Generators}
|
||||
\label{sectionPointGenerators}
|
||||
\ccIndexSubitemBegin[c]{generator}{2D point}
|
||||
\ccIndexSubitemBegin[c]{point, 2D}{generator}
|
||||
\lcTex{\ccIndexSubitemBegin[c]{generator}{2D point}}
|
||||
\lcTex{\ccIndexSubitemBegin[c]{point, 2D}{generator}}
|
||||
|
||||
Two kinds of point generators are provided: first, random point
|
||||
generators and second deterministic point generators. Most random
|
||||
|
|
@ -83,7 +83,7 @@ iterators. Further functions add degeneracies or random perturbations.
|
|||
|
||||
% +------------------------------------------------------------------------+
|
||||
\subsection{Point Generators as Input Iterators}
|
||||
\ccIndexSubsubitemBegin[c]{generator}{2D point}{as input iterator}
|
||||
\lcTex{\ccIndexSubsubitemBegin[c]{generator}{2D point}{as input iterator}}
|
||||
|
||||
\ccDefinition
|
||||
|
||||
|
|
@ -204,22 +204,27 @@ denoted by \ccc{P} here.
|
|||
|
||||
\ccOperations
|
||||
\ccThree{double}{g.source();}{}
|
||||
\ccAutoIndexingOff
|
||||
\lcTex{\ccAutoIndexingOff}
|
||||
\ccMethod{double range();}{returns the range in which the point
|
||||
coordinates lie, i.e.~$\forall x: |x| \leq $\ccc{range()} and
|
||||
$\forall y: |y| \leq $\ccc{range()}.}\ccIndexSubitem[C]{range}{\ccFont Random_points_*_2}
|
||||
$\forall y: |y| \leq $\ccc{range()}.}%
|
||||
\lcTex{\ccIndexSubitem[C]{range}{\ccFont Random_points_*_2}}
|
||||
|
||||
The generators \ccc{Random_points_on_segment_2} and
|
||||
\ccc{Points_on_segment_2} have two additional methods.
|
||||
|
||||
\ccMethod{const P& source();}{returns the source point of the segment.}%
|
||||
\lcTex{
|
||||
\ccIndexSubitem[C]{source}{\ccFont Random_points_on_segment_2}%
|
||||
\ccIndexSubitem[C]{source}{\ccFont Points_on_segment_2}%
|
||||
}%
|
||||
\ccGlue
|
||||
\ccMethod{const P& target();}{returns the target point of the segment.}
|
||||
\lcTex{
|
||||
\ccIndexSubitem[C]{target}{\ccFont Random_points_on_segment_2}%
|
||||
\ccIndexSubitem[C]{target}{\ccFont Points_on_segment_2}%
|
||||
\ccAutoIndexingOn
|
||||
}%
|
||||
|
||||
\end{ccClassTemplate}
|
||||
|
||||
|
|
@ -230,16 +235,16 @@ The generators \ccc{Random_points_on_segment_2} and
|
|||
\ccc{copy_n}, \ccc{Counting_iterator},
|
||||
\ccTexHtml{\\}{}
|
||||
\ccc{Join_input_iterator_1}.
|
||||
\ccIndexSubsubitemEnd[c]{generator}{2D point}{as input iterator}
|
||||
\lcTex{\ccIndexSubsubitemEnd[c]{generator}{2D point}{as input iterator}}
|
||||
|
||||
|
||||
% +------------------------------------------------------------------------+
|
||||
\subsection{Point Generators as Functions}
|
||||
\ccIndexSubsubitemBegin[c]{generator}{2D point}{as function}
|
||||
\lcTex{\ccIndexSubsubitemBegin[c]{generator}{2D point}{as function}}
|
||||
|
||||
\ccHeading{Grid Points}
|
||||
\ccThree{OutputIterator}{rand}{}
|
||||
\ccIndexSubsubitem[c]{generator}{2D point}{on grid}
|
||||
\lcTex{\ccIndexSubsubitem[c]{generator}{2D point}{on grid}}
|
||||
|
||||
Grid points are generated by functions that write to output iterators.
|
||||
|
||||
|
|
@ -274,7 +279,7 @@ Grid points are generated by functions that write to output iterators.
|
|||
the $n$ points.}
|
||||
|
||||
\ccHeading{Random Perturbations}
|
||||
\ccIndexMainItem{random perturbations}
|
||||
\lcTex{\ccIndexMainItem{random perturbations}}
|
||||
|
||||
Degenerate input sets like grid points can be randomly perturbed by a
|
||||
small amount to produce {\em quasi}-degenerate test sets. This
|
||||
|
|
@ -303,7 +308,7 @@ exact predicates to compute the sign of expressions slightly off from zero.
|
|||
}
|
||||
|
||||
\ccHeading{Adding Degeneracies}
|
||||
\ccIndexMainItem{degeneracies in input, adding}
|
||||
\lcTex{\ccIndexMainItem{degeneracies in input, adding}}
|
||||
|
||||
For a given point set certain kinds of degeneracies can be produced
|
||||
adding new points. The \ccc{random_selection()} function is
|
||||
|
|
@ -339,7 +344,7 @@ a point set.
|
|||
coordinate values.
|
||||
}
|
||||
\def\ccLongParamLayout{\ccFalse}
|
||||
\ccIndexSubsubitemEnd[c]{generator}{2D point}{as function}
|
||||
\lcTex{\ccIndexSubsubitemEnd[c]{generator}{2D point}{as function}}
|
||||
|
||||
|
||||
\ccSeeAlso
|
||||
|
|
@ -416,15 +421,19 @@ for the example output.
|
|||
alt="Integer Point Generator Example Output"></A>
|
||||
</TD></TR></TABLE>
|
||||
\end{ccHtmlOnly}%
|
||||
\lcTex{
|
||||
\ccIndexSubitemEnd[c]{generator}{2D point}%
|
||||
\ccIndexSubitemEnd[c]{point, 2D}{generator}%
|
||||
}
|
||||
|
||||
|
||||
% +------------------------------------------------------------------------+
|
||||
\newpage
|
||||
\section{3D Point Generators}
|
||||
\lcTex{
|
||||
\ccIndexSubitemBegin[c]{generator}{3D point}
|
||||
\ccIndexSubitemBegin[c]{point, 3D}{generator}
|
||||
}
|
||||
|
||||
One kind of point generator is currently provided for 3D points: Random point
|
||||
generators implemented as input iterators. The input iterators model
|
||||
|
|
@ -504,9 +513,10 @@ include local type declarations including \ccc{value_type}, denoted by
|
|||
Three random numbers are needed from \ccc{rnd} for each point.
|
||||
}
|
||||
\end{ccClassTemplate}
|
||||
\lcTex{
|
||||
\ccIndexSubitemEnd[c]{generator}{3D point}
|
||||
\ccIndexSubitemEnd[c]{point, 3D}{generator}
|
||||
%\ccIndexSubitemEnd[c]{generator}{3D point}
|
||||
}
|
||||
|
||||
|
||||
\ccSeeAlso
|
||||
|
|
@ -520,11 +530,12 @@ include local type declarations including \ccc{value_type}, denoted by
|
|||
% +------------------------------------------------------------------------+
|
||||
\newpage
|
||||
\section{Examples Generating Segments}
|
||||
\ccIndexSubitemBegin[c]{generator}{segment}
|
||||
\lcTex{\ccIndexSubitemBegin[c]{generator}{segment}}
|
||||
|
||||
The following two examples illustrate the use of the generic functions
|
||||
from Section~\ref{sectionGenericFunctions} like
|
||||
\ccc{Join_input_iterator_2}\ccIndexGlobalFunction{Join_input_iterator_2} to generate
|
||||
\ccc{Join_input_iterator_2}%
|
||||
\lcTex{\ccIndexGlobalFunction{Join_input_iterator_2}} to generate
|
||||
composed objects from other
|
||||
generators -- here two-dimensional segments from two point generators.
|
||||
|
||||
|
|
@ -574,10 +585,12 @@ The second example generates a regular structure of 100 segments; see
|
|||
\ccTexHtml{Figure~\ref{figureSegmentGeneratorFan}}{Figure <A
|
||||
HREF="#SegmentGeneratorFan"> <IMG SRC="cc_ref_up_arrow.gif"
|
||||
ALT="reference arrow" WIDTH="10" HEIGHT="10"></A>} for the example
|
||||
output. It uses the \ccc{Points_on_segment_2}\ccIndexGlobalFunction{Points_on_segment_2} iterator,
|
||||
\ccc{Join_input_iterator_2}\ccIndexGlobalFunction{Join_input_iterator_2}
|
||||
and \ccc{Counting_iterator}\ccIndexGlobalFunction{Counting_iterator} to
|
||||
avoid any intermediate storage of the generated objects until they are
|
||||
output. It uses the \ccc{Points_on_segment_2}%
|
||||
\lcTex{\ccIndexGlobalFunction{Points_on_segment_2}} iterator,
|
||||
\ccc{Join_input_iterator_2}%
|
||||
\lcTex{\ccIndexGlobalFunction{Join_input_iterator_2}}
|
||||
and \ccc{Counting_iterator}%\lcTex{\ccIndexGlobalFunction{Counting_iterator}}
|
||||
to avoid any intermediate storage of the generated objects until they are
|
||||
used, which in this example means copied to a window stream.
|
||||
|
||||
\ccIncludeVerbatim{Segment_generator_prog2.C}
|
||||
|
|
@ -595,7 +608,7 @@ used, which in this example means copied to a window stream.
|
|||
alt="Segment Generator Example Output 2"></A>
|
||||
</TD></TR></TABLE>
|
||||
\end{ccHtmlOnly}
|
||||
\ccIndexSubitemEnd[c]{generator}{segment}
|
||||
\lcTex{\ccIndexSubitemEnd[c]{generator}{segment}}
|
||||
|
||||
|
||||
% +--------------------------------------------------------+
|
||||
|
|
|
|||
Loading…
Reference in New Issue