updated rcs_spec.tex to fix the example program.

This commit is contained in:
Susan Hert 2000-04-18 17:57:31 +00:00
parent 137f7a9c55
commit 712ed586ae
2 changed files with 64 additions and 38 deletions

View File

@ -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}}
% +--------------------------------------------------------+

View File

@ -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}}
% +--------------------------------------------------------+