%%   format=book

\Doc[]
\FrFr[]
\FrTitpg[]\FrTit[]Software User Manual for the \tyxffmxmono[]iac++%
\tyxffmxendmono[] Class Library\FrEndtit[]
\FrEd[]Version \tyxffmxmono[]2.2\tyxffmxendmono[]\FrEnded[]%
\FrMisc[]\Para[]CCVV-94\EnDash[]002\Endpara[]\FrEndmisc[]
\FrSubtit[]\TxtToday[]\FrEndsubtit[]\FrMisc[]\Para[]%
\copyrightsign[] Copyright 1994, 1995, Center for Computer Vision
and Visualization, University of Florida. All rights reserved.%
\Endpara[]\FrEndmisc[]
\FrEndtitpg[]
\FrToc[\def\FrTocTpcentTNumFirstdisp{2}\def\FrTocTpcentTInit{}\def\FrTocSctentTNumFirstdisp{2}\def\FrTocSctentTInit{}\def\FrTocChpentTInit{}\def\FrTocPrtent{F}]
\FrEndtoc[]
\FrEndfr[]
\DivBod[]
\DivLii[]\HdMjLii[]Scope\HdMjEndii[]
\DivLiii[]\HdMjLiii[]Identification\HdMjEndiii[]
\Para[]This Software User Manual applies to the Knowledge Based Algorithm
Development Program (KBAD), contract number F08635\EnDash[]89\EnDash[]C-0134.
This is the initial draft version of the software for the %
\tyxffmxmono[]iac++\tyxffmxendmono[] class library.\Endpara[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]System Overview\HdMjEndiii[]
\Para[]The KBAD program is being carried out to develop mathematical,
software, and architectural aspects of the AFATL image algebra developed
under the Image Processing Language Program (contract F08635\EnDash[]84\EnDash[]C-0295)
by the University of Florida. This program contains three tasks:
\LstList[]
\LstItem[]the enhancement of image algebra and a corresponding demonstration
of that enhancement,\LstEnditem[]
\LstItem[]the development of an Algorithm Development Environment
in which to prepare algorithms using image algebra,\LstEnditem[]
\LstItem[]the analytic evaluation of knowledge based algorithm development
using image algebra.\LstEnditem[]
\LstEndlist[]
Amendment II of the KBAD contract, effective 3 March 1992, provides
for the development of software supporting the use of mnemonically
expressed image algebra in the C++ language and the provision of an
interpretive implementation of this C++ expression of image algebra.
The designs presented in this document support these tasks.%
\Endpara[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]Caveats\HdMjEndiii[]
\Para[]This manual is intended primarily for users of the %
\tyxffmxmono[]iac++\tyxffmxendmono[] class library who will use it
as developed.  For detailed information about extending the library
design please refer to the \tyxffmxmono[]iac++\tyxffmxendmono[] class
library design or maintenance documentation.\Endpara[]
\Para[]Please forward any omissions, discrepancies, or errors, related
to this manual to:
\LstList[\def\LstListNumSty{8}]
\LstItem[]The Center for Computer Vision and Visualization%
\LstEnditem[]
\LstItem[]Department of CIS\LstEnditem[]
\LstItem[]301 CSE Building\LstEnditem[]
\LstItem[]Gainesville, Florida 32611, USA\LstEnditem[]
\LstItem[]or, e-mail to: \Comp[]iacc@cis.ufl.edu\Endcomp[]%
\LstEnditem[]
\LstEndlist[]
\Endpara[]
\DivEndiii[]
\DivEndii[]
\DivLii[]\HdMjLii[]Acronyms, Definitions, and Conventions%
\HdMjEndii[]
\DivLiii[]\HdMjLiii[]Acronyms\HdMjEndiii[]
\LstList[]
\LstItem[]\tyxffmxmono[]iac++\tyxffmxendmono[]: The University of Florida\rsquo[]s
Image Algebra C++ Class Library.\LstEnditem[]
\LstItem[]\tyxffmxmono[]IAA\tyxffmxendmono[]: The University of Florida\rsquo[]s
Image Algebra Ada system.\LstEnditem[]
\LstEndlist[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]Definitions\HdMjEndiii[]
\LstList[]
\LstItem[]Abstract Class:  A class which is defined to declare common
behavior shared by all derived classes.  Such classes may not be instantiated.%
\LstEnditem[]
\LstItem[]Base Class: Any class used in the derivation (declaration)
of another class.\LstEnditem[]
\LstItem[]C++ Template Class:  A parameterized class definition. 
Template classes do not define an actual class.  They serve to define
the structure of a family of classes, which may be realized or instantiated
by declaring an actual class from the template class with actual arguments
substituted for the template class parameters.\LstEnditem[]
\LstItem[]Class: A class definition declares the data and function
members for class instances, called objects.  It may also include
static declarations of members, which are shared by all instances
of the class, and friends of the class.\LstEnditem[]
\LstItem[]Class Member:  Inherited and declared data and function
members of the class.  A class may declare private, protected, and
public members. Private members are only accessible to other members
of the class. Protected members are accessible to other class members
and also to members of derived classes.  Public members are accessible
outside of the class.\LstEnditem[]
\LstItem[]Closure: This concept is utilized extensively in the %
\tyxffmxmono[]iac++\tyxffmxendmono[] class library. Consider a function
of two arguments, one of which parameterizes the function and the
other indicates the conceptual operand. It is possible to define a
closure object which hides the parameterizing argument inside of an
object. The resulting closure object may be treated as a function
of a single operand. Closure objects are also used to provide ways
to extend the \tyxffmxmono[]iac++\tyxffmxendmono[] class library.%
\LstEnditem[]
\LstItem[]Constructor: A class member, with the same name as the class,
that creates and initializes class instances. The result of invoking
a constructor is a new instance of the class.\LstEnditem[]
\LstItem[]Copy Constructor: A class constructor whose sole argument
is an instance of the class. It is used to generate a %
\tyxtstxit[]copy\tyxtstxendit[] of the argument instance.%
\LstEnditem[]
\LstItem[]Coordinate: The image algebra utilizes points. Coordinate
refers to one of the point\rsquo[]s dimensions or the dimension\rsquo[]s
value. For example, given the three dimensional point \Symlt[]-1,
3, 4\Symgt[] the first coordinate value is \EnDash[]1, and the third
coordinate value is 4.\LstEnditem[]
\LstItem[]Derived Class: A class derived from one or more base classes.%
\LstEnditem[]
\LstItem[]Destructor: Used to reclaim storage for a class instance.%
\LstEnditem[]
\LstItem[]Friend: Functions declared a \tyxtstxit[]friend%
\tyxtstxendit[] of a class are allowed to directly access private
and protected members of the class. In C++ individual functions and
entire classes may be declared as friends of a class.%
\LstEnditem[]
\LstItem[]Has-A Relationship:  The relationship between classes in
which one class has declared data members of another class.  The declaring
class \tyxtstxit[]Has-A\tyxtstxendit[] or contains an instance of
the other class.\LstEnditem[]
\LstItem[]Image: Conceptually a mathematical function from a domain
of points into a range of values.  Images can be represented %
\tyxtstxit[]extensively\tyxtstxendit[] by enumerating each domain
and range value.  Images may also be represented \tyxtstxit[]comprehensively%
\tyxtstxendit[] as a function, or closure, over the image\rsquo[]s
domain into its range.\LstEnditem[]
\LstItem[]Image Template: Refers to an \tyxffmxmono[]iac++%
\tyxffmxendmono[] image algebra template operand as opposed to a C++
template class or function.\LstEnditem[]
\LstItem[]Inheritance: \ldquo[]A class can be derived from another
class, which is then called a base class of the derived class.  A
class may be derived from one or more classes.  The derived class
inherits the properties of its base classes, including its data members
and member functions \Cit[\def\citrefpostpunc{, p. 195\Symrbk[]}\def\CitPrnt{T}\def\CitId{ellis90}]%
\Endcit[].\rdquo[]\LstEnditem[]
\LstItem[]Inheritance (public, protected, private): If the derived
class inherits publicly from its base class then all inherited members
have the same accessibility through the derived class as they had
in the base class. Deriving from a class as protected means that only
the class members and derived classes may access inherited members
as members of the class. Private derivation means that only the class
members may access the base class\rsquo[] members.\LstEnditem[]
\LstItem[]Instance: This is an object, which is a member of a class.
 Each variable declared to be of type \Comp[]class Aclass%
\Endcomp[] is an instance of class \Comp[]Aclass\Endcomp[].  While
there is only one class declaration there may be many instances of
the class, each similar in structure, but uniquely identifiable.%
\LstEnditem[]
\LstItem[]Instantiation:  Usually refers to a the creation of a unique
instance of a class. It may also refer to the process involved in
creating a class utilizing a C++ template class during compilation.%
\LstEnditem[]
\LstItem[]Iterator: An iterator allows for sequential access to data
items associated with an instance of the collection class with which
the iterator is associated. The \tyxffmxmono[]iac++%
\tyxffmxendmono[] iterators are implemented as a separate class from
the class over which they iterate. This allows multiple iterators
over the same instance, simultaneously.\LstEnditem[]
\LstItem[]Is-A Relationship:  The relationship of a derived class
to its base class.  A derived class instance \tyxtstxit[]Is-A%
\tyxtstxendit[] base class instance, and may be used in any context
that a base class instance may be used in.\LstEnditem[]
\LstItem[]Lattice: Given a set and a relation on the set, a lattice
is the graph one can draw depicting the set elements and the relation.
An example is the power set of a set and the relation %
\tyxtstxit[]subset\tyxtstxendit[].\LstEnditem[]
\LstItem[]Member Function: A class member which is a function. Member
functions have full access to all members of the class.%
\LstEnditem[]
\LstItem[]Object: An identifiable entity with state and behavior.
In C++ instances of a class are objects.\LstEnditem[]
\LstItem[]Object Oriented Programming:  A programming paradigm in
which programs are viewed as collections of autonomous objects which
communicate to perform the intended purpose of the program.%
\LstEnditem[]
\LstItem[]Operation: Any function that can be applied to an image
algebra entity.\LstEnditem[]
\LstItem[]Pixel (picture element): Represents a point and the value
associated with that point in an image.\LstEnditem[]
\LstItem[]Pixel Point: The point or location associated with a pixel.%
\LstEnditem[]
\LstItem[]Pixel Value: The value associated with a pixel point.%
\LstEnditem[]
\LstItem[]Point: Any vector value with coordinates over some data
domain. Typical examples include: \Symlt[]1,2\Symgt[] a two dimensional
point with integer coordinates, and \Symlt[]e, i, pi, \EnDash[]1,
0\Symgt[] a five dimensional point with complex coordinate values.%
\LstEnditem[]
\LstItem[]Point Set: A set of points, all with the same dimension
and from the same coordinate data domain.  Typically associated with
the domain of an image algebra image.\LstEnditem[]
\LstItem[]Predicate: This denotes a function that evaluates to a truth
value.\LstEnditem[]
\LstItem[]Pure Virtual Function: Functions which are declared, but
have no defining code.  Such functions must be defined by derived
classes for which instances may be created.\LstEnditem[]
\LstItem[]Receiver: The object that is the receiver of a function
application.\LstEnditem[]
\LstItem[]Specialization: A C++ template class may be specialized
by creating a definition of the specialized template class with the
parameterized template type or types defined.\LstEnditem[]
\LstItem[]Value Set: A set of values, typically associated with the
range of an image algebra image.\LstEnditem[]
\LstItem[]Virtual Functions:  Class functions members whose definitions
may be overridden in derived classes.  Virtual functions allow derived
classes to specialize a function on an as needed basis.%
\LstEnditem[]
\LstEndlist[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]Conventions\HdMjEndiii[]
\DivLiv[]\HdMinLiv[]Text Conventions\HdMinEndiv[]
\LstList[]
\LstItem[]Class names appear as: \tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]. This example designates the class of points with
integer coordinates.\LstEnditem[]
\LstEndlist[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Graphic Conventions\HdMinEndiv[]
\Para[]We have adopted the graphics notation from \Cit[\def\CitId{booch94}]%
\Endcit[].\Endpara[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{DocGraphicConventions}]Graphic
Conventions\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\212\\339}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Description of the Graphic
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Example of the Graphic
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Class
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]

\FgBlock[]
\PreProcFgGfx\FgGfx[\FgGfxHt=76.00pt \FgGfxWd=92.00pt \def\FgGfxPath{UM-2.2}\def\FgGfxCache{UM-2.2}\FgGfxX=0.00pt \FgGfxY=0.00pt \FgGfxRes=48 \def\FgGfxProc{None}\def\FgGfxFilename{class.eps}]
\FgEndblock[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Parameterized Class
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]

\FgBlock[]
\PreProcFgGfx\FgGfx[\FgGfxHt=113.00pt \FgGfxWd=126.00pt \def\FgGfxPath{UM-2.2}\def\FgGfxCache{UM-2.2}\FgGfxX=0.00pt \FgGfxY=0.00pt \FgGfxRes=46 \def\FgGfxProc{None}\def\FgGfxFilename{template-class.eps}]
\FgEndblock[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Instantiated Class
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]

\FgBlock[]
\PreProcFgGfx\FgGfx[\FgGfxHt=101.00pt \FgGfxWd=117.00pt \def\FgGfxPath{UM-2.2}\def\FgGfxCache{UM-2.2}\FgGfxX=0.00pt \FgGfxY=0.00pt \FgGfxRes=48 \def\FgGfxProc{None}\def\FgGfxFilename{instantiated-class.eps}]
\FgEndblock[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Class Category
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]

\FgBlock[]
\PreProcFgGfx\FgGfx[\FgGfxHt=90.00pt \FgGfxWd=135.00pt \def\FgGfxPath{UM-2.2}\def\FgGfxCache{UM-2.2}\FgGfxX=0.00pt \FgGfxY=0.00pt \FgGfxRes=51 \def\FgGfxProc{None}\def\FgGfxFilename{class-category.eps}]
\FgEndblock[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Class Relations
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]

\FgBlock[]
\PreProcFgGfx\FgGfx[\FgGfxHt=153.00pt \FgGfxWd=178.00pt \def\FgGfxPath{UM-2.2}\def\FgGfxCache{UM-2.2}\FgGfxX=0.00pt \FgGfxY=0.00pt \FgGfxRes=47 \def\FgGfxProc{None}\def\FgGfxFilename{class-relations.eps}]
\FgEndblock[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Containment Adornments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]

\FgBlock[]
\PreProcFgGfx\FgGfx[\FgGfxHt=54.00pt \FgGfxWd=189.00pt \def\FgGfxPath{UM-2.2}\def\FgGfxCache{UM-2.2}\FgGfxX=0.00pt \FgGfxY=0.00pt \FgGfxRes=51 \def\FgGfxProc{None}\def\FgGfxFilename{containment-adornments.eps}]
\FgEndblock[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Properties
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]

\FgBlock[]
\PreProcFgGfx\FgGfx[\FgGfxHt=207.00pt \FgGfxWd=110.00pt \def\FgGfxPath{UM-2.2}\def\FgGfxCache{UM-2.2}\FgGfxX=0.00pt \FgGfxY=0.00pt \FgGfxRes=51 \def\FgGfxProc{None}\def\FgGfxFilename{properties.eps}]
\FgEndblock[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Object Instance
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]

\FgBlock[]
\PreProcFgGfx\FgGfx[\FgGfxHt=75.00pt \FgGfxWd=91.00pt \def\FgGfxPath{UM-2.2}\def\FgGfxCache{UM-2.2}\FgGfxX=0.00pt \FgGfxY=0.00pt \FgGfxRes=46 \def\FgGfxProc{None}\def\FgGfxFilename{object-instance.eps}]
\FgEndblock[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Table Notation Conventions\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{DocTableConventions}]Table Legend
Conventions\FgEndcap[]
\Tbl[\def\TableRuleWt{1}\def\TableFntTsz{E}\def\TableFntFfm{\MONO}]
\Table[\def\TabColW{\\131\\420}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Table Abbreviation
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Definition
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxtstxbf[]NYI\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Not Yet
Implemented.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Cplx
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
C++ type: \tyxffmxmono[]complex\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
d
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
C++
type: \tyxffmxmono[]double\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
f
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
C++ type: %
\tyxffmxmono[]float\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
i
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
C++ type: \tyxffmxmono[]int%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
ostream
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
C++ type: \tyxffmxmono[]ostream%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
void
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
C++ type: \tyxffmxmono[]void\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
u\Symuns[]char
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
C++
type: \tyxffmxmono[]unsigned\tyxffmxendmono[] char
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
c
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
C++ type modifer:
const
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
u
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
C++ type modifer: \tyxffmxmono[]unsigned\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
T\Symand[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Denotes
a C++ reference to an element of type T.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
T*
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Denotes a C++ pointer to
an element of type T.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
T
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
This symbol is used as to indicate a parameterized
type in a C++ template usage.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
P
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
This symbol is used to indicate a parameterized
\tyxffmxmono[]iac++\tyxffmxendmono[] point type.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
X\Symlt[]T\Symgt[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Indicates
a C++ template class. T denotes any of the parameterized types that
X\Symlt[]T\Symgt[] may be instantiated with.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
X\Symlt[]I\Symgt[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Indicates
an instantiation of the C++ template class X, with the type I.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\=\\=}\def\TabRuleSave{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Y ()(X)
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Function
map of one variable, an element of type X is mapped to an element
of type Y.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Z ()(X,Y)
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Function map of two variables, an element of X
and an element of Y is mapped to an element of Z.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Y (*)(X)
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Denotes a
C++ pointer to a function of one argument of type X, returning a value
of type Y.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Y (*)(const X\Symand[])
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Denotes a C++ pointer to a function
of one argument of type X\newlinetag[]
The argument is passed as \Comp[]const \Symand[]\Endcomp[], or reference
to a constant.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]void\tyxffmxendmono[] ()(X)
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Denotes a C++
function that returns nothing, i.e. a procedure.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
X ()(%
\tyxffmxmono[]void\tyxffmxendmono[])
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Denotes a C++ function with no
arguments that returns an element of type X.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Y X.foo()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Denotes a C++
member function foo(), of class X, which returns a value of type Y.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxtstxbf[]BDI\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Denotes the \tyxffmxmono[]iac++%
\tyxffmxendmono[] class \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]. This notation is used in the header of the Image
tables.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxtstxbf[]CDI\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Denotes the \tyxffmxmono[]iac++%
\tyxffmxendmono[] class \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]complex\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]. This notation is used in the header of the Image
tables.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxtstxbf[]FCI\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Denotes the \tyxffmxmono[]iac++%
\tyxffmxendmono[] class \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]. This notation is used in the header of the Image
tables.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxtstxbf[]FDI\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Denotes the \tyxffmxmono[]iac++%
\tyxffmxendmono[] class \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]. This notation is used in the header of the Image
tables.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxtstxbf[]IDI\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Denotes the \tyxffmxmono[]iac++%
\tyxffmxendmono[] class \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]. This notation is used in the header of the Image
tables.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxtstxbf[]RGB\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Denotes the \tyxffmxmono[]iac++%
\tyxffmxendmono[] class \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]. This notation is used in the header of the Image
tables.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxtstxbf[]UDI\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Denotes the \tyxffmxmono[]iac++%
\tyxffmxendmono[] class \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]. This notation is used in the header of the Image
tables.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Image Algebra to \tyxffmxmono[]iac++%
\tyxffmxendmono[] Library\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{ImageAlgebraTableConventions}]Image
algebra symbols and the corresponding \tyxffmxmono[]iac++%
\tyxffmxendmono[] class library symbol\FgEndcap[]
\Tbl[\def\TableRuleWt{1}\def\TableFntTsz{E}\def\TableFntFfm{\MONO}]
\Table[\def\TabColW{\\77\\139\\334}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Image Algebra Symbol
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]iac++\tyxffmxendmono[] Class Library
0perator or Function
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Interpertation
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]

\DispEqn[]
\DmthEqn[]
{\tt 
\> :=
\> }
\DmthEndeqn[]\EndDispEqn[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
=
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assignment
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]

\DispEqn[]
\DmthEqn[]=
\DmthEndeqn[]\EndDispEqn[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
==
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Equality
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]

\DispEqn[]
\DmthEqn[]mod
\DmthEndeqn[]\EndDispEqn[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Sympct[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Modulus
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]

\DispEqn[]
\DmthEqn[]
\cap 
\DmthEndeqn[]\EndDispEqn[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Symand[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Set intersection
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]

\DispEqn[]
\DmthEqn[]
\cup 
\DmthEndeqn[]\EndDispEqn[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Symor[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Set union
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]

\DispEqn[]
\DmthEqn[]
\setminus 
\DmthEndeqn[]\EndDispEqn[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Symhat[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Set symmetric difference
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]

\DispEqn[]
\DmthEqn[]
\wedge 
\DmthEndeqn[]\EndDispEqn[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
max
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Maximum or Logical AND
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]

\DispEqn[]
\DmthEqn[]
\vee 
\DmthEndeqn[]\EndDispEqn[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
min
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Minumum or Logical OR
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]

\DispEqn[]
\DmthEqn[]
\neg 
\DmthEndeqn[]\EndDispEqn[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
!
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Logical NOT
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]

\DispEqn[]
\DmthEqn[]
\bigcirc 
\DmthEndeqn[]\EndDispEqn[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
compose()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Composition
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]

\DispEqn[]
\DmthEqn[]
\gcon 
\DmthEndeqn[]\EndDispEqn[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
linear\Symuns[]product()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Image-Template product.\newlinetag[]
Weighting function: Multiplication.\newlinetag[]
Reduction function: Addition.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]

\DispEqn[]
\DmthEqn[]
\amax 
\DmthEndeqn[]\EndDispEqn[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
addmax\Symuns[]product()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Image-Template product.\newlinetag[]
Weighting function: Addition.\newlinetag[]
Reduction function: Maximum.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]

\DispEqn[]
\DmthEqn[]
\amin 
\DmthEndeqn[]\EndDispEqn[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
addmin\Symuns[]product()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Image-Template product.\newlinetag[]
Weighting function: Addition.\newlinetag[]
Reduction function: Minimum.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]

\DispEqn[]
\DmthEqn[]
\mmax 
\DmthEndeqn[]\EndDispEqn[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
mulmax\Symuns[]product()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Image-Template product.\newlinetag[]
Weighting function: Multiplication.\newlinetag[]
Reduction function: Maximum.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]

\DispEqn[]
\DmthEqn[]
\mmin 
\DmthEndeqn[]\EndDispEqn[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
mulmin\Symuns[]product()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Image-Template product.\newlinetag[]
Weighting function: Multiplication.\newlinetag[]
Reduction function: Minimum.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivEndiii[]
\DivEndii[]
\DivLii[]\HdMjLii[]\tyxffmxmono[]iac++\tyxffmxendmono[] Library Overview%
\HdMjEndii[]
\DivLiii[]\HdMjLiii[]\tyxffmxmono[]iac++\tyxffmxendmono[] Class Overview%
\HdMjEndiii[]
\Para[]Conceptually the image algebra only utilizes a few objects.
 These are Points, Point Sets, Value Sets, Images and Templates.%
\Endpara[]
\Para[]Figure \Xref[\def\XrefName{iac++UserClasses}] shows the classes
categories supporting the users manipulation of image algebra constructs
in the \tyxffmxmono[]iac++\tyxffmxendmono[] library.\Endpara[]
\FgBlock[\def\FgBlockPlace{O}]
\FgCap[\def\FgCapType{F}\def\FgCapId{UserClassesGraphic}]Conceptual
\tyxffmxmono[]iac++\tyxffmxendmono[] Classes\FgEndcap[]
\XrefId[\def\XrefIdType{14}\def\XrefIdName{iac++UserClasses}]%
\PreProcFgGfx\FgGfx[\FgGfxHt=536.00pt \FgGfxWd=427.00pt \def\FgGfxPath{UM-2.2}\def\FgGfxCache{UM-2.2}\FgGfxX=0.00pt \FgGfxY=0.00pt \FgGfxMag=100 \FgGfxRes=46 \def\FgGfxProc{None}\def\FgGfxFilename{iac++-conceptual-classes.eps}]
\FgEndblock[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]\tyxffmxmono[]iac++\tyxffmxendmono[] Class Library
Realization\HdMjEndiii[]
\Para[]The \tyxffmxmono[]iac++\tyxffmxendmono[] class library is implemented
in C++. While the image algebra can be described by objects that may
be described as Points, Point Sets, Value Sets, Images, and Templates,
the implementation of these classes must be concerned with issues
such as representation of values in C++. Major issues addressed in
the realization of the \tyxffmxmono[]iac++\tyxffmxendmono[] class library
are:
\LstList[]
\LstItem[]Value representations, such as integers and real numbers.%
\LstEnditem[]
\LstItem[]Set representations, such as \tyxtstxit[]\TxtInxtrm[]extensive%
\TxtEndinxtrm[]\tyxtstxendit[] sets, where each element can be enumerated
and \tyxtstxit[]\TxtInxtrm[]comprehensive\TxtEndinxtrm[]%
\tyxtstxendit[] sets, where set membership is determined by a rule
or function.\LstEnditem[]
\LstItem[]Interoperability between different realizations of image
algebra constructs. This issue may be illustrated by considering the
addition of a two dimensional point and an integer or real value.
If the point is an integer point then adding an integer to it should
yield an integer point. However, the addition of an integer point
and a real value should result in a real point.\LstEnditem[]
\LstEndlist[]
\Endpara[]
\Para[]The \tyxffmxmono[]iac++\tyxffmxendmono[] class library includes
separate classes for points with integer coordinate values, %
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[], and points with real values, \tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[].\Endpara[]
\Para[]The \tyxffmxmono[]iac++\tyxffmxendmono[] class library uses several
different underlying representations of images, even though the user
does not, in general, need to be aware of the representation classes.
Images may be represented by data structures or functions or both
as appropriate to achieve expressively and run-time efficiency.%
\Endpara[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]\tyxffmxmono[]iac++\tyxffmxendmono[] Public Classes%
\HdMjEndiii[]
\Para[]The following are the names, table legend abbreviations, and
a short description of each \tyxffmxmono[]iac++\tyxffmxendmono[] class
that users of the \tyxffmxmono[]iac++\tyxffmxendmono[] library are expected
to need.\Endpara[]
\DivLiv[]\HdMinLiv[]Public \tyxffmxmono[]iac++\tyxffmxendmono[] Point
Classes\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{PublicPointClasses}]Publicly available
point classes\FgEndcap[]
\Tbl[\def\TableRuleWt{1}\def\TableFntTsz{E}\def\TableFntFfm{\MONO}]
\Table[\def\TabColW{\\131\\83\\337}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]iac++\tyxffmxendmono[] Image Algebra Class
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Legend Abbreviation
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]T\Symgt[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]P\Symlt[]T\Symgt[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
A C++ template class
used in the definition of point classes
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]P\Symlt[]i\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of points with integer coordinate values.
This class is defined as a specialization of class \tyxffmxmono[]IA\Symuns[]Point\Symlt[]T\Symgt[]%
\tyxffmxendmono[], with \Comp[]T = int\Endcomp[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]P\Symlt[]d\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of points with real coordinate values.
This class is defined as a specialization of class \tyxffmxmono[]IA\Symuns[]Point\Symlt[]T\Symgt[]%
\tyxffmxendmono[], with \Comp[]T = double\Endcomp[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Public \tyxffmxmono[]iac++\tyxffmxendmono[] Point
Set Classes\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{PublicPointSetClasses}]Publicly
available point set classes\FgEndcap[]
\Tbl[\def\TableRuleWt{1}\def\TableFntTsz{E}\def\TableFntFfm{\MONO}]
\Table[\def\TabColW{\\162\\83\\306}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]iac++\tyxffmxendmono[] Image Algebra Class
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Legend Abbreviation
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]Set\Symlt[]T\Symgt[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]Set\Symlt[]T\Symgt[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
A C++ template
class used in the defintion of point sets and value sets. Sets are
always homogenous, T represents the element type that is contained
within the set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Set\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of (possibly empty) sets of %
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[](s). This class is implemented as a specialization
of the class \tyxffmxmono[]IA\Symuns[]Set\Symlt[]T\Symgt[]%
\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]S\Symlt[]P\Symlt[]d\Symgt[]\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of (possibly empty) sets of %
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[](s). This class is implemented as a specialization
of the class \tyxffmxmono[]IA\Symuns[]Set\Symlt[]T\Symgt[]%
\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]PSIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]PSIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
A C++ template class used to define point set iterators.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Public \tyxffmxmono[]iac++\tyxffmxendmono[] Value
Set Classes\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{PublicSetClasses}]Publicly available
value set classes\FgEndcap[]
\Tbl[\def\TableRuleWt{1}\def\TableFntTsz{E}\def\TableFntFfm{\MONO}]
\Table[\def\TabColW{\\162\\84\\305}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]iac++\tyxffmxendmono[] Image Algebra Class
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Legend Abbreviation
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]Set\Symlt[]T\Symgt[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]S\Symlt[]T\Symgt[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
A class used in the
definition of value sets. An actual value set would replace the parameter
\tyxffmxmono[]T\tyxffmxendmono[] with some base type, such as %
\tyxffmxmono[]int\tyxffmxendmono[] or \tyxffmxmono[]double%
\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]S\Symlt[]B\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of sets of \tyxffmxmono[]IA\Symuns[]Bit%
\tyxffmxendmono[] values.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]complex\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]S\Symlt[]Cplx\Symgt[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of sets
of \tyxffmxmono[]complex\tyxffmxendmono[] values.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]S\Symlt[]f\Symgt[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of sets
of \tyxffmxmono[]float\tyxffmxendmono[] values.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]S\Symlt[]i\Symgt[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of sets
of \tyxffmxmono[]int\tyxffmxendmono[] values.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]S\Symlt[]RGB\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of sets of \tyxffmxmono[]IA\Symuns[]RGB%
\tyxffmxendmono[] values.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]S\Symlt[]u\Symuns[]char\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of sets of \tyxffmxmono[]u\Symuns[]char%
\tyxffmxendmono[] values.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]SetIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]SIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of iterators over a value set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Public \tyxffmxmono[]iac++\tyxffmxendmono[] Image
Classes\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{PublicImageClasses}]Publicly available
image classes\FgEndcap[]
\Tbl[\def\TableRuleWt{1}\def\TableFntTsz{E}\def\TableFntFfm{\MONO}]
\Table[\def\TabColW{\\163\\97\\291}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]iac++\tyxffmxendmono[] Image Algebra Class
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Legend Abbreviation
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]CoreImage\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]CI\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
A base class used to define behavior common to all
\tyxffmxmono[]iac++\tyxffmxendmono[] image classes.\Comp[]P%
\Endcomp[] is the point type of the image, and \Comp[]T%
\Endcomp[] is the value type of the image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]I\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
A derived class of class \tyxffmxmono[]IA\Symuns[]CoreImage\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[] which must be specialized to define classes such
as \tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[] and \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[].\Comp[]P\Endcomp[] is the point type of the image,
and \Comp[]T\Endcomp[] is the value type of the image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]I\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of \tyxffmxmono[]iac++%
\tyxffmxendmono[] images over a \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[] with \tyxffmxmono[]IA\Symuns[]Bit%
\tyxffmxendmono[] range values.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]\tyxffmxmono[]complex\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]I\Symlt[]P\Symlt[]i\Symgt[],Cplx\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of \tyxffmxmono[]iac++%
\tyxffmxendmono[] images over a \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[] with \tyxffmxmono[]complex%
\tyxffmxendmono[] range values.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]I\Symlt[]P\Symlt[]d\Symgt[],f\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of \tyxffmxmono[]iac++%
\tyxffmxendmono[] images over an \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[] with \tyxffmxmono[]float%
\tyxffmxendmono[] range values.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]I\Symlt[]P\Symlt[]i\Symgt[],f\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of \tyxffmxmono[]iac++%
\tyxffmxendmono[] images over a \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[] with \tyxffmxmono[]float%
\tyxffmxendmono[] range values.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]I\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of \tyxffmxmono[]iac++%
\tyxffmxendmono[] images over an \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[] with \tyxffmxmono[]int%
\tyxffmxendmono[] range values.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]I\Symlt[]P\Symlt[]i\Symgt[],RGB\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of \tyxffmxmono[]iac++%
\tyxffmxendmono[] images over an \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[] with \tyxffmxmono[]IA\Symuns[]RGB%
\tyxffmxendmono[] range values.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]I\Symlt[]P\Symlt[]i\Symgt[],Uchar\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of \tyxffmxmono[]iac++%
\tyxffmxendmono[] images over an \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[] with \tyxffmxmono[]u\Symuns[]char%
\tyxffmxendmono[] range values.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\=\\=\\=}\def\TabRuleSave{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]IPIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IPIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of iterators over the pixels associated
with an image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]IVIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IVIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of iterators over the values associated
with an image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Public \tyxffmxmono[]iac++\tyxffmxendmono[] Neighborhood
Classes\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{PublicNeighborhoodClasses}]Publicly
available neighborhood classes\FgEndcap[]
\Tbl[\def\TableRuleWt{1}\def\TableFntTsz{E}\def\TableFntFfm{\MONO}]
\Table[\def\TabColW{\\160\\85\\306}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]iac++\tyxffmxendmono[] Image Algebra Class
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Legend Abbreviation
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]Neighborhood\Symlt[]P,Q\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]N\Symlt[]P,Q\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of \tyxffmxmono[]iac++%
\tyxffmxendmono[] image algebra neighborhoods.\newlinetag[]
A neighborhood represents a point to point set mapping. The neighborhood\rsquo[]s
domain contains points of type \Comp[]P\Endcomp[]. The neighborhood\rsquo[]s
range contains point sets over points of type \Comp[]Q\Endcomp[].\newlinetag[]
Evaluating a neighborhood at a point of type \Comp[]P\Endcomp[], will
yield a point set of type \Comp[]IA\Symuns[]Set\Symlt[]Q\Symgt[]%
\Endcomp[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Public \tyxffmxmono[]iac++\tyxffmxendmono[] Template
Classes\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{PublicTemplateClasses}]Publicly
available template classes\FgEndcap[]
\Tbl[\def\TableRuleWt{1}\def\TableFntTsz{E}\def\TableFntFfm{\MONO}]
\Table[\def\TabColW{\\163\\135\\254}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]iac++\tyxffmxendmono[] Image Algebra Class
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Legend Abbreviation
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]DDTemplate\Symlt[]\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]IA\Symuns[]Image\Symlt[]\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxsp[]\tyxffmxendmono[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxsp[]\tyxffmxendmono[]\tyxffmxmono[]IA\Symuns[]Bit%
\tyxffmxendmono[]\Symgt[]\Symgt[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]Tmpl\Symlt[]I\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[]\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of \tyxffmxmono[]iac++%
\tyxffmxendmono[] image algebra templates with a \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[] domain and range values that
are instances of \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]DDTemplate\Symlt[]%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]IA\Symuns[]Image\Symlt[]\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxsp[]\tyxffmxendmono[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxsp[]\tyxffmxendmono[]\tyxffmxmono[]complex\tyxffmxendmono[]\Symgt[]\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]Tmpl\Symlt[]I\Symlt[]P\Symlt[]i\Symgt[],Cplx\Symgt[]\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of \tyxffmxmono[]iac++%
\tyxffmxendmono[] image algebra templates with a \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[] domain and range values that
are instances of \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]complex\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]DDTemplate\Symlt[]%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]IA\Symuns[]Image\Symlt[]\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxsp[]\tyxffmxendmono[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxsp[]\tyxffmxendmono[]\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]Tmpl\Symlt[]I\Symlt[]P\Symlt[]i\Symgt[],f\Symgt[]\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of \tyxffmxmono[]iac++%
\tyxffmxendmono[] image algebra templates with a \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[] domain and range values that
are instances of \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]DDTemplate\Symlt[]%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]IA\Symuns[]Image\Symlt[]\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxsp[]\tyxffmxendmono[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxsp[]\tyxffmxendmono[]\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]Tmpl\Symlt[]I\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[]\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of \tyxffmxmono[]iac++%
\tyxffmxendmono[] image algebra templates with a \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[] domain and range values that
are instances of \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]DDTemplate\Symlt[]%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]IA\Symuns[]Image\Symlt[]\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxsp[]\tyxffmxendmono[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxsp[]\tyxffmxendmono[]\tyxffmxmono[]u\Symuns[]char%
\tyxffmxendmono[]\Symgt[]\Symgt[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]Tmpl\Symlt[]I\Symlt[]P\Symlt[]i\Symgt[],u\Symuns[]char\Symgt[]\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of \tyxffmxmono[]iac++%
\tyxffmxendmono[] image algebra templates with a \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[] domain and range values that
are instances of \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Public \tyxffmxmono[]iac++\tyxffmxendmono[] Closure
Classes\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{PublicClosureClasses}]Publicly
available closure classes\FgEndcap[]
\Tbl[\def\TableRuleWt{1}\def\TableFntTsz{E}\def\TableFntFfm{\MONO}]
\Table[\def\TabColW{\\130\\114\\307}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]iac++\tyxffmxendmono[] Image Algebra Class
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Legend Abbreviation
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]Closure\Symlt[]I,O\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]Closure\Symlt[]I,O\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The base class of user derived parameterized functions,
transforming input values of type \tyxffmxmono[]I%
\tyxffmxendmono[] to output values of type \tyxffmxmono[]O%
\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]ClosurePS\Symlt[]T\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]ClosurePS\Symlt[]T\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The base class of user derived point set representations.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The base class of user derived image representations
type over sets of type \tyxffmxmono[]IA\Symuns[]Set\Symlt[]P\Symgt[]%
\tyxffmxendmono[] and ranges of type \tyxffmxmono[]T%
\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]ClosureDT\Symlt[]I\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]ClosureDT\Symlt[]I\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The base class of user derived template representations
over images of type \tyxffmxmono[]IA\Symuns[]Image\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Public \tyxffmxmono[]iac++\tyxffmxendmono[] Supplemental
Classes\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{PublicSupplementalClasses}]Publicly
available supplemental classes\FgEndcap[]
\Tbl[\def\TableRuleWt{1}\def\TableFntTsz{E}\def\TableFntFfm{\MONO}]
\Table[\def\TabColW{\\135\\137\\280}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]iac++\tyxffmxendmono[] Image Algebra Class
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Legend Abbreviation
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]B%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of bit values, i.e. elements of the set
\Symlbr[]0,1\Symrbr[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Pixel\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]Pxl\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
An instance represents
a (point,value) pair. \Comp[]P\Endcomp[] is the point type of the
pixel, and \Comp[]T\Endcomp[] is the value type of the pixel.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]RGB%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
A class of RGB color values comprising three one
byte intensity values for red, green, and blue, respectively.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\=\\=\\=}\def\TabRuleSave{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA::Error\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxffmxmono[]IA::Error\tyxffmxendmono[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
An enumeration
of error return values.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA::LatticeRelation%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxffmxmono[]IA::LatticeRelation%
\tyxffmxendmono[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
An enumeration of lattice return
values.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Array\Symlt[]\mthxgkxtau[]\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]A\Symlt[]T\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of dynamically sized  arrays.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]Deque\Symlt[]T\Symgt[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]Dq\Symlt[]T\Symgt[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of double
ended queues of items.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]DequeIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]DqIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of iterators over an instance of %
\tyxffmxmono[]IA\Symuns[]Deque\Symlt[]T\Symgt[]\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]List\Symlt[]\mthxgkxtau[]\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]L\Symlt[]T\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of linked lists of items.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]ListIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]LIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of iterators over an instance of %
\tyxffmxmono[]IA\Symuns[]List\Symlt[]\mthxgkxtau[]\Symgt[]%
\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Stack\Symlt[]T\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]Stk\Symlt[]T\Symgt[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The class of stacks of items.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivEndiii[]
\DivEndii[]
\DivLii[\def\DivLiiId{PointChapter}]\HdMjLii[]\tyxffmxmono[]iac++%
\tyxffmxendmono[] Point Classes\HdMjEndii[]
\DivLiii[]\HdMjLiii[]Point Overview\HdMjEndiii[]
\FgBlock[]
\FgCap[]Class Diagram of the \tyxffmxmono[]iac++\tyxffmxendmono[] Point
Classes\FgEndcap[]
\PreProcFgGfx\FgGfx[\FgGfxHt=266.00pt \FgGfxWd=414.00pt \def\FgGfxPath{UM-2.2}\def\FgGfxCache{UM-2.2}\FgGfxX=0.00pt \FgGfxY=0.00pt \def\FgGfxProc{None}\def\FgGfxFilename{point-classes.eps}]
\FgEndblock[]
\Para[]Point classes form the basis for the elements of the domains
of image algebra images. The \tyxffmxmono[]iac++\tyxffmxendmono[] class
library restricts its interest to points over homogeneous Cartesian
product spaces. Every such point has a dimension, which specifies
the number of coordinate values associated with the point, and each
of the coordinate values are of the same type. There are currently
two specializations of the class \tyxffmxmono[]IA\Symuns[]Point\Symlt[]T\Symgt[]%
\tyxffmxendmono[], namely, \tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[] and \tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[].\Endpara[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]Point Header Files\HdMjEndiii[]
\Para[]The headers files that are of interest to user of %
\tyxffmxmono[]iac++\tyxffmxendmono[] point classes are shown the following
figure.\Endpara[]
\FgBlock[]
\FgCap[]Header files for the \tyxffmxmono[]iac++\tyxffmxendmono[] Point
Classes\FgEndcap[]
\PreProcFgGfx\FgGfx[\FgGfxHt=198.00pt \FgGfxWd=252.00pt \def\FgGfxPath{UM-2.2}\def\FgGfxCache{UM-2.2}\FgGfxX=0.00pt \FgGfxY=0.00pt \def\FgGfxProc{None}\def\FgGfxFilename{point-headers.eps}]
\FgEndblock[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]Public Interface\HdMjEndiii[]
\Para[]The following tables contain information about both class %
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[] and class \tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]. Unless otherwise specified, \tyxtstxit[]point%
\tyxtstxendit[] will refer to an instance of either type.%
\Endpara[]
\DivLiv[]\HdMinLiv[]Point Constructors\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{PointConstructors}]Legend: %
\tyxffmxmono[]\tyxtszxeight[]\mthxgkxtau[]\tyxtszxendeight[]%
\tyxffmxendmono[] any Type, \tyxffmxmono[]\tyxtszxeight[]d%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]double%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]i%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]int%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]u%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]unsigned%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]P\Symlt[]d\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]P\Symlt[]i\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\214\\337}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Point Constructor
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Constructor Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\TxtEndinxtrm[]( P\Symlt[]i\Symgt[] )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]( P\Symlt[]i\Symgt[] )\newlinetag[]
\TxtInxtrm[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]\TxtEndinxtrm[]( P\Symlt[]d\Symgt[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a duplicate
of this point.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]( )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]( )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a point of zero dimension.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]( i )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]( d )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a one dimensional point.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]( i, i)\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]( d, d )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a two dimensional point.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]( i, i, i )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]( d, d, d )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a three dimensional point.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]( i, i, i, i )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]( d, d, d, d )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a four dimensional point.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]( i, i, i, i, i )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]( d, d, d, d, d )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a five dimensional point.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]( i*, u )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]( i*, u, i )\newlinetag[]
\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]( d*, u )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]( d*, u, i )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a point from an array of values.\newlinetag[]
First argument specifies an array of coordiante values.\newlinetag[]
Second argument specifies the dimension of the point and thus the
number of array values to use.\newlinetag[]
If the third argument is true then share storage with the array and
assume storage management, otherwise make a copy of the array values.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Point Operators\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{PointOperators}]Legend: %
\tyxffmxmono[]\tyxtszxeight[]\mthxgkxtau[]\tyxtszxendeight[]%
\tyxffmxendmono[] any Type, \tyxffmxmono[]\tyxtszxeight[]d%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]double%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]i%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]int%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]u%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]unsigned%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]P\Symlt[]d\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]P\Symlt[]i\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\104\\331\\56\\60}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-\\-}\def\TabRuleSave{1}]
\Row[\def\TabCellHt{0.340in}]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Point Operator
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Point Operator Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtstxbf[]P\Symlt[]i\Symgt[]\tyxtstxendbf[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtstxbf[]P\Symlt[]d\Symgt[]\tyxtstxendbf[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator =\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign a copy
of the given point.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\=\\=\\=\\=}\def\TabRuleSave{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator
\Symlbk[]\Symrbk[]\TxtEndinxtrm[]( u )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return a reference to the indicated
coordinate of the given point.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]operator ()\TxtEndinxtrm[]( u )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return the value of the
indicated coordinate.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator
+\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the coordinatewise sum of the operands.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator -\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield
the coordinatewise difference of the operands.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator *\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the coordinatewise
product of the operands.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator
/\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the coordinatewise quotient of the operands.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Sympct[]%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the coordinatewise modulus of the operands.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator +=\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign the coordinatewise
sum of the operands to the left operand.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator -=\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign the coordinatewise
difference of the operands to the left operand.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator *=\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign the coordinatewise
product of the operands to the left operand.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator /=\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign the coordinatewise
quotient of the operands to the left operand.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Sympct[]=\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign
the coordinatewise modulus of the operands to the left operand.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator -\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the coordinatewise
unary minus of the operand.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]operator ++\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the coordinatewise prefix
increment of the operand.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator
\mthxsyxmn[]\mthxsyxmn[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the coordinatewise prefix
decrement of the operand.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator
++\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the coordinatewise postfix increment of the
operand.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator %
\mthxsyxmn[]\mthxsyxmn[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the coordinatewise postfix
decrement of the operand.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator
\Symlt[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True IFF each coordinate value in the left
point is less than the corresponding coordinate value in the right
point.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symlt[]=%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True IFF each coordinate value in the left point is
less than or equal to the corresponding coordinate value in the right
point.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symgt[]%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True IFF each coordinate value in the left point is
greater than the corresponding coordinate value in the right point.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symgt[]=%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True IFF each coordinate value in the left point is
greater than or equal to the corresponding coordinate value in the
right point.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator ==%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True IFF each coordinate value in the left point is
equal to the corresponding coordinate value in the right point.\newlinetag[]
NOTE: This is structural equality, not a test for identity.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator !=\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True
IFF any coordinate value in the left point is not equal to the corresponding
coordinate value in the right point.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]operator \Symnot[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the coordinatewise
one\rsquo[]s complement of the operand.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator
\Symlt[]\Symlt[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the coordinatewise logical left
shift of the left point by the right point.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]operator \Symgt[]\Symgt[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the coordinatewise
logical right shift of the left point by the right point.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symand[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the
coordinatewise logical AND of the point by the right point.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symhat[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the
coordinatewise logical XOR of the point by the right point.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symor[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the
coordinatewise logical OR of the left point by the right point.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symlt[]\Symlt[]=%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign the coordinatewise logical left shift of the
left point by the right point to the left point.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]operator \Symgt[]\Symgt[]=\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign the coordinatewise
logical right shift of the left point by the right point to the left
point.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symand[]=%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign the coordinatewise logical AND of the points
to the left point.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symhat[]=%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign the coordinatewise logical XOR of the points
to the left point.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symor[]=%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign the coordinatewise logical OR of the points
to the left point.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Point Member Functions\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{PointMemberOperations}]Legend:
\tyxffmxmono[]\tyxtszxeight[]\mthxgkxtau[]\tyxtszxendeight[]%
\tyxffmxendmono[] any Type, \tyxffmxmono[]\tyxtszxeight[]d%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]double%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]i%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]int%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]u%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]unsigned%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]P\Symlt[]d\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]P\Symlt[]i\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\130\\254\\167}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Point Member Function
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Point Member Function Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]dim\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the dimension of the point.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]u P\Symlt[]i\Symgt[].dim()\newlinetag[]
u P\Symlt[]d\Symgt[].dim()\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]enorm\TxtEndinxtrm[]()\newlinetag[]
\symxdag[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield cartesian distance from the origin.\newlinetag[]
\symxdag[]\tyxffmxmono[]\tyxtstxbf[] Old style usage, to be discontinued.
 See alternative version in table \Xref[\def\XrefName{enorm-0-arg}].%
\tyxtstxendbf[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]d P\Symlt[]i\Symgt[].enorm()\newlinetag[]
d P\Symlt[]d\Symgt[].enorm()\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\=\\=\\=}\def\TabRuleSave{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]derange\TxtEndinxtrm[]( \Symuns[] )\newlinetag[]
\symxdag[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a one dimensional point with coordinate value equal
to the coordinate value of the point as indexed by the argument.\newlinetag[]
\symxdag[]\tyxffmxmono[]\tyxtstxbf[] Old style usage, to be discontinued.
 See alternative version in table \Xref[\def\XrefName{derange-1-arg}].%
\tyxtstxendbf[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]P\Symlt[]i\Symgt[]
P\Symlt[]i\Symgt[].derange(u)\newlinetag[]
P\Symlt[]d\Symgt[] P\Symlt[]d\Symgt[].derange(u)%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
derange( \Symuns[], \Symuns[] )\newlinetag[]
\symxdag[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a two dimensional point with coordinate values equal
to the coordinate values of the point as indexed by the arguments.\newlinetag[]
\symxdag[]\tyxffmxmono[]\tyxtstxbf[] Old style usage, to be discontinued.
 See alternative version in table \Xref[\def\XrefName{derange-2-arg}].%
\tyxtstxendbf[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]P\Symlt[]i\Symgt[]
P\Symlt[]i\Symgt[].derange(u,u)\newlinetag[]
P\Symlt[]d\Symgt[] P\Symlt[]d\Symgt[].derange(u,u)%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
derange( \Symuns[], \Symuns[],
\Symuns[] )\newlinetag[]
\symxdag[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a three dimensional point with coordinate values
equal to the coordinate values of the point as indexed by the arguments.\newlinetag[]
\symxdag[]\tyxffmxmono[]\tyxtstxbf[] Old style usage, to be discontinued.
 See alternative version in table \Xref[\def\XrefName{derange-3-arg}].%
\tyxtstxendbf[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]P\Symlt[]i\Symgt[]
P\Symlt[]i\Symgt[].derange(u,u,u)\newlinetag[]
P\Symlt[]d\Symgt[] P\Symlt[]d\Symgt[].derange(u,u,u)%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
derange( \Symuns[], \Symuns[],
\Symuns[], \Symuns[] )\newlinetag[]
\symxdag[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a four dimensional point with coordinate values equal
to the coordinate values of the point as indexed by the arguments.\newlinetag[]
\symxdag[]\tyxffmxmono[]\tyxtstxbf[] Old style usage, to be discontinued.
 See alternative version in table \Xref[\def\XrefName{derange-4-arg}].%
\tyxtstxendbf[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]P\Symlt[]i\Symgt[]
P\Symlt[]i\Symgt[].derange(u,u,u,u)\newlinetag[]
P\Symlt[]d\Symgt[] P\Symlt[]d\Symgt[].derange(u,u,u,u)%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
derange( \Symuns[], \Symuns[],
\Symuns[], \Symuns[], \Symuns[] )\newlinetag[]
\symxdag[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a five dimensional point with coordinate values equal
to the coordinate values of the point as indexed by the arguments.\newlinetag[]
\symxdag[]\tyxffmxmono[]\tyxtstxbf[] Old style usage, to be discontinued.
 See alternative version in table \Xref[\def\XrefName{derange-5-arg}].%
\tyxtstxendbf[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]P\Symlt[]i\Symgt[]
P\Symlt[]i\Symgt[].derange(u,u,u,u,u)\newlinetag[]
P\Symlt[]d\Symgt[] P\Symlt[]d\Symgt[].derange(u,u,u,u,u)%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
derange( \Symuns[], \Symuns[] )\newlinetag[]
\symxdag[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a point with coordinate values equal to the coordinate
values of the point as indexed by the array values.\newlinetag[]
Dimension is indicated by the second argument.\newlinetag[]
\symxdag[]\tyxffmxmono[]\tyxtstxbf[] Old style usage, to be discontinued.
 See alternative version in table \Xref[\def\XrefName{derange-array-arg}].%
\tyxtstxendbf[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]P\Symlt[]i\Symgt[]
P\Symlt[]i\Symgt[].derange(i*,u)\newlinetag[]
P\Symlt[]d\Symgt[] P\Symlt[]d\Symgt[].derange(d*,u)%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Other Point Functions\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{PointFriendOperations}]Legend:
\tyxffmxmono[]\tyxtszxeight[]\mthxgkxtau[]\tyxtszxendeight[]%
\tyxffmxendmono[] any Type, \tyxffmxmono[]\tyxtszxeight[]d%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]double%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]i%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]int%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]u%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]unsigned%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]P\Symlt[]d\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]P\Symlt[]i\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\131\\253\\83\\84}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Other Point Function
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Other Point Function Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtstxbf[]P\Symlt[]i\Symgt[]\tyxtstxendbf[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtstxbf[]P\Symlt[]d\Symgt[]%
\tyxtstxendbf[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]extend\Symuns[]to\Symuns[]point%
\TxtEndinxtrm[]( \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a point of dimension
equal to the second argument and with all coordiante values equal
to the first argument.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\TabColSpan=2 \def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]P\Symlt[]i\Symgt[]
extend\Symuns[]to\Symuns[]point(i,u)\newlinetag[]
P\Symlt[]d\Symgt[] extend\Symuns[]to\Symuns[]point(d,u)%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]concat%
\TxtEndinxtrm[]( \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a point by concatenation
of the two arguments.\newlinetag[]
Numeric arguments are treated as points of one dimension.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]cdr\TxtEndinxtrm[]( \Symuns[]
)
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a point of one less dimension by removing the first coordiante
of the argument.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
cdr( \Symuns[], i )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create
a point by removing the number of coordinates indicated by the second
argument.\newlinetag[]
If the second argument is positive coordinates are removed from the
front, otherwise they are removed from the back of the point.\newlinetag[]
If the second argument is 0, a copy of the point is returned.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\=\\=\\=\\=}\def\TabRuleSave{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]inf\TxtEndinxtrm[] ( \Symuns[],
\Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the infimum or greatest lower bound of the arguments.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]sup\TxtEndinxtrm[]( \Symuns[],
\Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the supremum or least upper bound of the arguments.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]min\TxtEndinxtrm[]( \Symuns[]
)
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the minimum coordinate value of the argument.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]max\TxtEndinxtrm[]( \Symuns[]
)
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the maximum cooridnate value of the argument.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]abs\TxtEndinxtrm[]( \Symuns[]
)
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield a point with each coordinate value equal to the the absolute
cooridnate value of the argument.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]fabs\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield a point with each
coordinate value equal to the absolute coordinate value of the argument.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]sum\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the
sum of coordinate values of the point.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]product\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the product of
coordinate values of the point.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]enorm\TxtEndinxtrm[]( \Symuns[] )\newlinetag[]
\symxdag[]\XrefId[\def\XrefIdType{15}\def\XrefIdName{enorm-0-arg}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield
cartesian distance, of the point argument, from the origin.\newlinetag[]
 \symxdbldag[] Returns \tyxffmxmono[]double\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[] \symxdbldag[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]inorm%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield \tyxffmxmono[]max( abs( \Symuns[]
) )\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]mnorm%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield \tyxffmxmono[]sum( abs( \Symuns[]
) )\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]derange%
\TxtEndinxtrm[]( \Symuns[], \Symuns[] )\newlinetag[]
\symxdag[]\XrefId[\def\XrefIdType{15}\def\XrefIdName{derange-1-arg}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create
a one dimensional point with coordinate value equal to the coordinate
value of the point argument as indexed by the second argument.\newlinetag[]
\symxdag[]\tyxffmxmono[]\tyxtstxbf[]This is the preferred usage of
this function.\tyxtstxendbf[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
derange( \Symuns[], \Symuns[], \Symuns[] )\newlinetag[]
\symxdag[]\XrefId[\def\XrefIdType{15}\def\XrefIdName{derange-2-arg}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create
a two dimensional point with coordinate values equal to the coordinate
values of the point argument as indexed by the remaining arguments.\newlinetag[]
\symxdag[]\tyxffmxmono[]\tyxtstxbf[]This is the preferred usage of
this function.\tyxtstxendbf[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
derange( \Symuns[], \Symuns[], \Symuns[], \Symuns[] )\newlinetag[]
\symxdag[]\XrefId[\def\XrefIdType{15}\def\XrefIdName{derange-3-arg}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create
a three dimensional point with coordinate values equal to the coordinate
values of the point argument as indexed by the remaining arguments.\newlinetag[]
\symxdag[]\tyxffmxmono[]\tyxtstxbf[]This is the preferred usage of
this function.\tyxtstxendbf[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
derange( \Symuns[], \Symuns[], \Symuns[], \Symuns[],
\Symuns[] )\newlinetag[]
\symxdag[]\XrefId[\def\XrefIdType{15}\def\XrefIdName{derange-4-arg}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create
a four dimensional point with coordinate values equal to the coordinate
values of the point argument as indexed by the remaining arguments.\newlinetag[]
\symxdag[]\tyxffmxmono[]\tyxtstxbf[]This is the preferred usage of
this function.\tyxtstxendbf[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
derange( \Symuns[], \Symuns[], \Symuns[], \Symuns[],
\Symuns[], \Symuns[] )\newlinetag[]
\symxdag[]\XrefId[\def\XrefIdType{15}\def\XrefIdName{derange-5-arg}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create
a five dimensional point with coordinate values equal to the coordinate
values of the point argument as indexed by the remaining arguments.\newlinetag[]
\symxdag[]\tyxffmxmono[]\tyxtstxbf[]This is the preferred usage of
this function.\tyxtstxendbf[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
derange( \Symuns[], \Symuns[] )\newlinetag[]
\symxdag[]\XrefId[\def\XrefIdType{15}\def\XrefIdName{derange-array-arg}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create
a point with coordinate values equal to the coordinate values of the
point argument as indexed by the array values.\newlinetag[]
Dimension of the array, and the resultant point, is indicated by the
third argument.\newlinetag[]
\symxdag[]\tyxffmxmono[]\tyxtstxbf[]This is the preferred usage of
this function.\tyxtstxendbf[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]pointcmp\TxtEndinxtrm[]( \Symuns[], \Symuns[]
)
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Lexigraphically compare two points.\newlinetag[]
Return -1, 0 or 1 if the first point is \Symlt[], ==, or \Symgt[]
the second point.\newlinetag[]
If the dimensions of the points differ, the lower dimension point
is (conceptually) zero extended to the higher dimension.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]aint\TxtEndinxtrm[]( \Symuns[]
)
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return a point with coordinatewise integral value between argument
and 0, nearest 0.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]anint\TxtEndinxtrm[]( \Symuns[]
)
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return a point with coordinatewise nearest integral value to argument,
except halfway cases are rounded to the integral value larger in magnitude.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]ceil\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return a
point with coordinatewise least integral value greater than or equal
to argument. This corresponds to IEEE rounding toward positive infinity.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]floor\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return a
point with coordinatewise values as the greatest integral value less
than or equal to argument. This corresponds to IEEE rounding toward
negative infinity.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]rint\TxtEndinxtrm[]( \Symuns[]
)
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return a point with coordinatewise values rounded to integral value
according to the current IEEE rounding direction.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]irint\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return an %
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[] with coordinatewise values converted into %
\tyxffmxmono[]int\tyxffmxendmono[] format according to the current
IEEE rounding direction.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]nint%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Returns an \tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[] with coordinatewise values converted into %
\tyxffmxmono[]int\tyxffmxendmono[] format rounding to the nearest %
\tyxffmxmono[]int\tyxffmxendmono[] value, except halfway cases are
rounded to the \tyxffmxmono[]int\tyxffmxendmono[] value larger in magnitude.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]trunc\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Returns
an \tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[] with coordinatewise value equal to the result of
constructing an intgral value corresponding to the \tyxffmxmono[]double%
\tyxffmxendmono[] value.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symlt[]\Symlt[]%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Put a representation of the point onto the stream.
Return the stream (this allow cascading to the \tyxffmxmono[]ostream%
\tyxffmxendmono[]).
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\TabColSpan=2 \def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]ostream\Symand[] ostream
\Symlt[]\Symlt[] P\Symlt[]i\Symgt[]\newlinetag[]
ostream\Symand[] ostream\Symand[] \Symlt[]\Symlt[] P\Symlt[]d\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivEndiii[]
\DivEndii[]
\DivLii[]\HdMjLii[]\tyxffmxmono[]iac++\tyxffmxendmono[] Set Classes%
\HdMjEndii[]
\DivLiii[]\HdMjLiii[]Set Overview\HdMjEndiii[]
\FgBlock[]
\FgCap[]Class Diagram of the \tyxffmxmono[]iac++\tyxffmxendmono[] Set
Classes\FgEndcap[]
\PreProcFgGfx\FgGfx[\FgGfxHt=506.00pt \FgGfxWd=553.00pt \def\FgGfxPath{UM-2.2}\def\FgGfxCache{UM-2.2}\FgGfxX=0.00pt \FgGfxY=0.00pt \def\FgGfxProc{None}\def\FgGfxFilename{set-classes.eps}]
\FgEndblock[]
\DivLiv[]\HdMinLiv[]Set Usage\HdMinEndiv[]
\Para[]A \tyxtstxit[]\TxtInxtrm[]set\TxtEndinxtrm[]%
\tyxtstxendit[] represents a collection of items. Unlike mathematical
sets, sets in the \tyxffmxmono[]iac++\tyxffmxendmono[] class library
must be homogenous collections, and hence they must contain elements
of the same type. The \tyxffmxmono[]iac++\tyxffmxendmono[] class library
utilizes sets in two fundamental ways:
\LstList[]
\LstItem[]to represent \tyxtstxit[]\TxtInxtrm[]point sets%
\TxtEndinxtrm[]\tyxtstxendit[], which are homogenous collections of
points, and \LstEnditem[]
\LstItem[]to represent \tyxtstxit[]\TxtInxtrm[]value sets%
\TxtEndinxtrm[]\tyxtstxendit[] which are homogenous collection of
values.\LstEnditem[]
\LstEndlist[]
The reason for distinguishing these two types of sets is related to
both the element types they contain and to their usage. Point sets
are used to represent the domains of images. Value sets are used to
represent image ranges, or subsets of image ranges.\Endpara[]
\Para[]The primary use of point sets is in defining an image. It is
necessary to first define the point set, or domain, upon which the
image will be defined. This typically involves the construction of
a point set, either by defining a new point set or by identifying
a previously defined point set for use. Value sets are usually defined
not to specify an image\rsquo[]s range, but rather to manipulate an
image\rsquo[]s range. A common usage of value sets is for image range
restriction.\Endpara[]
\Para[]Sets are represented in two fundamentally different ways:
\LstList[]
\LstItem[]as an \tyxtstxit[] \TxtInxtrm[]extensive%
\TxtEndinxtrm[]\tyxtstxendit[] set, in which all elements of the sets
are explicitly defined, or \LstEnditem[]
\LstItem[]as a \tyxtstxit[]\TxtInxtrm[]comprehensive%
\TxtEndinxtrm[]\tyxtstxendit[] set, in which a test exists to determine
if a given element is contained in the set or not.\LstEnditem[]
\LstEndlist[]
In general it is possible to define sets in the \tyxffmxmono[]iac++%
\tyxffmxendmono[] class library in either fashion. However, extensive
representations have better support, simply because it is possible
to answer more questions about them. For instance, it is possible
to list all of the points in an extensive set. It may not be possible
to list all of the points in a comprehensive set.\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Set Iterators\HdMinEndiv[]
\Para[]Most sets in the \tyxffmxmono[]iac++\tyxffmxendmono[] class library
support iterators. An iterator provides a standard way to sequentially
access each element associated with a set. There is exactly one iteration
order for any set type. Some non-obvious implication of this fact
are:
\LstList[]
\LstItem[]For any given set, if it can be iterated over, there is
exactly one system defined default iteration order. This order is
independent of the physical order of elements used to defined the
set. Thus the physical ordering of elements in an array used to create
a set, with an array constructor, has no bearing on the iteration
order.\LstEnditem[]
\LstItem[]The type for which a given set is defined must either have
a predefined, or user-provided ordering relation, \Comp[]operator \Symlt[]%
\Endcomp[]. Since the \tyxffmxmono[]iac++\tyxffmxendmono[] class library
supports sets of \tyxffmxmono[]complex\tyxffmxendmono[] values, an ordering
relation has been defined for complex numbers even though there is
no standard, mathematical ordering pre-defined.\LstEnditem[]
\LstItem[]The element ordering relation uniquely determines the set
iteration order.\LstEnditem[]
\LstEndlist[]
Iterators are provided for both point sets and value sets. As noted
previously, only extensive sets support iteration.\Endpara[]
\DivEndiv[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]Set Header Files\HdMjEndiii[]
\Para[]The headers files that are of interest to user of %
\tyxffmxmono[]iac++\tyxffmxendmono[] set classes are shown the following
figure.\Endpara[]
\FgBlock[]
\FgCap[]Header files for the \tyxffmxmono[]iac++\tyxffmxendmono[] Set
Classes\FgEndcap[]
\PreProcFgGfx\FgGfx[\FgGfxHt=306.00pt \FgGfxWd=378.00pt \def\FgGfxPath{UM-2.2}\def\FgGfxCache{UM-2.2}\FgGfxX=0.00pt \FgGfxY=0.00pt \def\FgGfxProc{None}\def\FgGfxFilename{pointset-headers.eps}]
\FgEndblock[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]\tyxffmxmono[]iac++\tyxffmxendmono[] Point Set
Classes\HdMjEndiii[]
\DivLiv[]\HdMinLiv[]Public Interface\HdMinEndiv[]
\Para[]There are several classes used to support the implementation
of point sets as defined in the \tyxffmxmono[]iac++%
\tyxffmxendmono[] class library:
\LstList[]
\LstItem[]\tyxffmxmono[]IA\Symuns[]Set\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[]: defines the public behavior
of point sets over integer valued points. This is a specialization
of the C++ template class \tyxffmxmono[]IA\Symuns[]Set\Symlt[]T\Symgt[]%
\tyxffmxendmono[].\LstEnditem[]
\LstItem[]\tyxffmxmono[]IA\Symuns[]Set\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[]: defines the public behavior
of point sets over real valued points. This is a specialization of
the C++ template class \tyxffmxmono[]IA\Symuns[]Set\Symlt[]T\Symgt[]%
\tyxffmxendmono[].\LstEnditem[]
\LstItem[]\tyxffmxmono[]IA\Symuns[]PSIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[]: defines an iterator for point sets over points of
type \tyxffmxmono[]T\tyxffmxendmono[]. Its interface is described
in a separate section.\LstEnditem[]
\LstItem[]\tyxffmxmono[]IA\Symuns[]ClosurePS\Symlt[]T\Symgt[]%
\tyxffmxendmono[] is provided to facilitate the construction of comprehensive
point sets. Its interface is described in Chapter \Xref[\def\XrefName{ClosureChapter}].%
\LstEnditem[]
\LstEndlist[]
 \Endpara[]
\DivLv[]\HdMinLv[]Point Set Related Static Members\HdMinEndv[]
\DivLvi[]\HdSubLvi[]\tyxffmxmono[]static char \TxtInxtrm[]%
\tyxffmxmono[]IA::throw\Symuns[]on\Symuns[]index\Symuns[]uncontained%
\tyxffmxendmono[]\TxtEndinxtrm[]\tyxffmxendmono[]\HdSubEndvi[]
\Para[]This is a \tyxffmxmono[]static char\tyxffmxendmono[] class
variable that may be set to determine how the \Comp[]index()%
\Endcomp[] member operations behave when given an argument that attempts
to reference a point not in the point set. If this value is non-zero
then the \Comp[]index()\Endcomp[] member operations invokes  %
\tyxffmxmono[]IA::ia\Symuns[]throw()\tyxffmxendmono[]. If this value
is \tyxffmxmono[]0\tyxffmxendmono[] then the value of %
\tyxffmxmono[]IA::index\Symuns[]of\Symuns[]uncontained%
\tyxffmxendmono[] is returned. The value is non-zero by default.%
\Endpara[]
\DivEndvi[]
\DivLvi[]\HdSubLvi[]\tyxffmxmono[]static const unsigned %
\TxtInxtrm[]\tyxffmxmono[]IA::index\Symuns[]of\Symuns[]uncontained%
\tyxffmxendmono[]\TxtEndinxtrm[]\tyxffmxendmono[]\HdSubEndvi[]
\Para[]This is a \tyxffmxmono[]static const unsigned%
\tyxffmxendmono[] class variable whose value can be returned by the
\Comp[]index()\Endcomp[] member operations when they are given an
argument that attempts to reference a point not in the point set.
This value may only be returned if the \tyxffmxmono[]IA::throw\Symuns[]on\Symuns[]index\Symuns[]uncontained%
\tyxffmxendmono[] class variable has been assigned a value as described
previously.\Endpara[]
\DivEndvi[]
\DivEndv[]
\DivLv[]\HdMinLv[]Point Set Constructors\HdMinEndv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{PSConstructors}]Legend: %
\tyxffmxmono[]\tyxtszxeight[]S\Symlt[]T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Set\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[], \tyxffmxmono[]%
\tyxtszxeight[]S\Symlt[]P\Symlt[]d\Symgt[]\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[], \tyxffmxmono[]%
\tyxtszxeight[]PSIter\Symlt[]T\Symgt[]\tyxtszxendeight[]%
\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]PSIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]ClosurePS\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxtszxendeight[]\tyxffmxendmono[] %
\tyxffmxmono[]IA\Symuns[]ClosurePS\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxtstxbf[]\tyxtszxeight[]NYI%
\tyxtszxendeight[]\tyxtstxendbf[] \tyxffmxmono[]Not Yet Implemented%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\217\\334}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Point Set Constructor
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]\tyxffmxmono[]IA\Symuns[]Set\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[]\Symgt[]%
\tyxffmxendmono[]\TxtEndinxtrm[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]P\Symlt[]i\Symgt[] )\newlinetag[]
\TxtInxtrm[]\tyxffmxmono[]IA\Symuns[]Set\Symlt[]IA\Symuns[]Point\Symlt[]double\Symgt[]\Symgt[]%
\tyxffmxendmono[]\TxtEndinxtrm[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]P\Symlt[]d\Symgt[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a point set consisting
of one point.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Set\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]u, i (*)(P\Symlt[]i\Symgt[] )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Set\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]u, i, (*)(P\Symlt[]d\Symgt[]) )\newlinetag[]
\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Set\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]u, i (*)(const P\Symlt[]i\Symgt[]\Symand[]) )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Set\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]u, i (*)(const P\Symlt[]d\Symgt[]\Symand[]) )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Creates
a point set of the specified dimension, with membership defined by
the given function.\newlinetag[]
NOTE: Two variants of membership functions are accepted. The difference
between a function that accepts an argument of \Comp[]IA\Symuns[]Point\Symlt[]T\Symgt[]%
\Endcomp[], versus a functions that accepts an argument of %
\Comp[]const IA\Symuns[]Point\Symlt[]T\Symgt[] \Symand[]%
\Endcomp[] is that the second version is will execute faster.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]Set\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]\tyxffmxmono[]IA\Symuns[]ClosurePS\Symlt[]P\Symlt[]i\Symgt[]\Symgt[]%
\tyxffmxendmono[] )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Set\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]\tyxffmxmono[]IA\Symuns[]ClosurePS\Symlt[]P\Symlt[]d\Symgt[]\Symgt[]%
\tyxffmxendmono[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a point set based on a user defined representation.
The representation defined in a derived class of \tyxffmxmono[]IA\Symuns[]ClosurePS\Symlt[]T\Symgt[]%
\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[]( \newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]u, const P\Symlt[]i\Symgt[]*, u )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Set\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]u, const P\Symlt[]d\Symgt[]*, u )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a point set
with the points indicated. First argument specifies the dimension
of the points. Second argument is the vector of points. Third argument
specifies the number of points in the vector.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[] )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Set\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symlt[]d\Symgt[]\Symgt[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a copy
of this point set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndv[]
\DivLv[]\HdMinLv[]Point Set Operators\HdMinEndv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{PSOperators}]Legend: %
\tyxffmxmono[]\tyxtszxeight[]S\Symlt[]T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Set\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[], \tyxffmxmono[]%
\tyxtszxeight[]S\Symlt[]P\Symlt[]d\Symgt[]\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[], \tyxffmxmono[]%
\tyxtszxeight[]PSIter\Symlt[]T\Symgt[]\tyxtszxendeight[]%
\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]PSIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]ClosurePS\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxtszxendeight[]\tyxffmxendmono[] %
\tyxffmxmono[]IA\Symuns[]ClosurePS\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxtstxbf[]\tyxtszxeight[]NYI%
\tyxtszxendeight[]\tyxtstxendbf[] \tyxffmxmono[]Not Yet Implemented%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\76\\304\\86\\85}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Point Set Operator
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Operator Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtstxbf[]S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[]%
\tyxtstxendbf[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtstxbf[]S\Symlt[]P\Symlt[]d\Symgt[]\Symgt[]%
\tyxtstxendbf[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator =%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign a copy of the given point set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symnot[]%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the set complement of the argument.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\=\\=\\=\\=}\def\TabRuleSave{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator +\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield a point set,
every element of which is the result of the sum of an element from
each of the two argument point sets.\newlinetag[]
Point arguments are treated as singleton sets.\newlinetag[]
\tyxtstxbf[]Note: the result is also refered to as the Minkowski addition
of the point set arguments.\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxtstxbf[]NYI\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator +=%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Perform the addition of the two point sets, as described
above. Assign the result to the left hand point set.\newlinetag[]
Point arguments are treated as singleton sets.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxtstxbf[]NYI\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator -%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield a point set, every element of which is the result
of the negating each element of the argument point set.\newlinetag[]
Point arguments are treated as singleton sets.\newlinetag[]
\tyxtstxbf[]Note: the result is also refered to as the reflection
of the point set through the origin.\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxtstxbf[]NYI%
\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxtstxbf[]NYI\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator
-=\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign the result of the addition of left hand argument
with the negation of the right hand argument, to the left hand argument.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxtstxbf[]NYI\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxtstxbf[]NYI\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]operator \Symlt[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True IFF the first argument
is a proper subset of the second argument.\newlinetag[]
If the result is indeterminant 0 is returned.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]operator \Symgt[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True IFF\tyxsp[]the second
argument is a proper subset of the first argument.\newlinetag[]
If the result is indeterminant 0 is returned.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]operator \Symlt[]=\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True IFF the first argument
is a subset of the second argument.\newlinetag[]
If the result is indeterminant 0 is returned.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]operator \Symgt[]=\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True IFF the second argument
is a subset of the first argument.\newlinetag[]
If the result is indeterminant 0 is returned.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]operator ==\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Test for set equality. True
if the arguments are equal.\newlinetag[]
If the result is indeterminant 0 is returned.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator !=\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Test for set inequality.
True if the arguments are not equal.\newlinetag[]
If the result is indeterminant 0 is returned.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symnot[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the
set complement of the argument.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symand[]%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the set intersection of the arguments.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxtstxbf[]NYI\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symor[]%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the set union of the arguments.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxtstxbf[]NYI\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator /%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the set difference of the arguments.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxtstxbf[]NYI\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symhat[]%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the set symmetric difference of the arguments.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxtstxbf[]NYI\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symand[]=%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign the set intersection of the arguments to the
first argument.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symor[]=%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign the set union of the arguments to the first
argument.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator /=\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign
the set difference of the arguments to the first argument.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symhat[]=\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign
the set symmetric difference of the arguments to the first argument.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndv[]
\DivLv[]\HdMinLv[]Point Set Member Functions\HdMinEndv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{PSMemberOperations}]Legend: %
\tyxffmxmono[]\tyxtszxeight[]S\Symlt[]T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Set\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[], \tyxffmxmono[]%
\tyxtszxeight[]S\Symlt[]P\Symlt[]d\Symgt[]\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[], \tyxffmxmono[]%
\tyxtszxeight[]PSIter\Symlt[]T\Symgt[]\tyxtszxendeight[]%
\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]PSIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]ClosurePS\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxtszxendeight[]\tyxffmxendmono[] %
\tyxffmxmono[]IA\Symuns[]ClosurePS\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxtstxbf[]\tyxtszxeight[]NYI%
\tyxtszxendeight[]\tyxtstxendbf[] \tyxffmxmono[]Not Yet Implemented%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\104\\276\\171}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Point Set Member Function
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Member Function Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]card\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return the number of points in the
point set.\newlinetag[]
Function is guaranteed to work if the set is extensive, otherwise
it may fail. See member function \tyxffmxmono[]\TxtInxtrm[]extensive%
\TxtEndinxtrm[]()\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]u
S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[].card()\newlinetag[]
u S\Symlt[]P\Symlt[]d\Symgt[]\Symgt[].card()\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]choice\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return a point
from the point set. Which point is returned is neither specifed nor
guaranteed.\newlinetag[]
Function is guaranteed to work if the set is extensive, otherwise
it may fail. See member function \tyxffmxmono[]extensive()%
\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]P\Symlt[]i\Symgt[]
S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[].choice()\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]contains\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True
IFF the given point is in the point set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]i S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[].contains()\newlinetag[]
i S\Symlt[]P\Symlt[]d\Symgt[]\Symgt[].contains()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]dim%
\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return the allowable dimension of points in the point
set.\newlinetag[]
\tyxtstxbf[]NOTE: every point in a point set must have the same dimension.%
\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]u S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[].dim()\newlinetag[]
u S\Symlt[]P\Symlt[]d\Symgt[]\Symgt[].dim()\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]empty\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True IFF the point
set contains no points.\newlinetag[]
Function is guaranteed to work if the set is extensive, otherwise
it may fail. See member function \tyxffmxmono[]extensive()%
\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]i S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[].empty()\newlinetag[]
i S\Symlt[]P\Symlt[]d\Symgt[]\Symgt[].empty()\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]extensive\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
If %
\tyxffmxmono[]extensive()\tyxffmxendmono[] returns true, then %
\tyxffmxmono[]\TxtInxtrm[]card\TxtEndinxtrm[]()\tyxffmxendmono[],
\tyxffmxmono[]\TxtInxtrm[]choice\TxtEndinxtrm[]()%
\tyxffmxendmono[], and \tyxffmxmono[]\TxtInxtrm[]empty%
\TxtEndinxtrm[]()\tyxffmxendmono[] are guaranteed to work, and the
set is iterable. Otherwise these functions may fail, and iteration
may not be possible.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]i S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[].extensive()\newlinetag[]
i S\Symlt[]P\Symlt[]d\Symgt[]\Symgt[].extensive()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\=\\=\\=}\def\TabRuleSave{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]index%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return the index of the point in the iteration
order of the point set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]u S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[].index(P\Symlt[]i\Symgt[])\newlinetag[]
u S\Symlt[]P\Symlt[]d\Symgt[]\Symgt[].index(P\Symlt[]d\Symgt[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
index( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return the point
at the given index in the iteration order of the point set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]P\Symlt[]i\Symgt[] S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[].index(u)\newlinetag[]
P\Symlt[]d\Symgt[] S\Symlt[]P\Symlt[]d\Symgt[]\Symgt[].index(u)%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]inf%
\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the infimum or greatest lower bound of the
point set.\newlinetag[]
\tyxtstxbf[]W.R.T. \tyxtstxendbf[]\tyxffmxmono[]operation \Symlt[]=%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]P\Symlt[]i\Symgt[] S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[].inf()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]sup%
\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the supremum or least upper bound of the point
set.\newlinetag[]
\tyxtstxbf[]W.R.T. \tyxtstxendbf[]\tyxffmxmono[]operation \Symlt[]=%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]P\Symlt[]i\Symgt[] S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[].sup()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]min%
\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the lexicographically minimum point in the
point set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]P\Symlt[]i\Symgt[] S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[].min()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]max%
\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the lexicographically maximum point in the
point set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]P\Symlt[]i\Symgt[] S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[].max()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndv[]
\DivLv[]\HdMinLv[]Other Point Set Functions\HdMinEndv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{PSFriendOperations}]Legend: %
\tyxffmxmono[]\tyxtszxeight[]S\Symlt[]T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Set\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[], \tyxffmxmono[]%
\tyxtszxeight[]S\Symlt[]P\Symlt[]d\Symgt[]\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[], \tyxffmxmono[]%
\tyxtszxeight[]PSIter\Symlt[]T\Symgt[]\tyxtszxendeight[]%
\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]PSIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]ClosurePS\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxtszxendeight[]\tyxffmxendmono[] %
\tyxffmxmono[]IA\Symuns[]ClosurePS\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxtstxbf[]\tyxtszxeight[]NYI%
\tyxtszxendeight[]\tyxtstxendbf[] \tyxffmxmono[]Not Yet Implemented%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\176\\218\\158}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Other Point Set Function
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Other Function Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]\tyxffmxmono[]IA\Symuns[]boxy\Symuns[]pset%
\tyxffmxendmono[]\TxtEndinxtrm[]( \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a point
set containing all points contained in the (hyper) rectangle bounded
by the infimum and supremum of the two point arguments.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[] \newlinetag[]
IA\Symuns[]universal\Symuns[]pset(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]P\Symlt[]i\Symgt[], P\Symlt[]i\Symgt[] )%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]\tyxffmxmono[]IA\Symuns[]universal\Symuns[]ipset%
\tyxffmxendmono[]\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a point set containing
all integer valued points of the indicated dimension.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[] \newlinetag[]
IA\Symuns[]universal\Symuns[]ipset( u )\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]\tyxffmxmono[]IA\Symuns[]empty\Symuns[]ipset%
\tyxffmxendmono[]\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create an empty point
set, over the integer valued points, of the indicated dimension.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[] IA\Symuns[]empty\Symuns[]ipset(
u )\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]\tyxffmxmono[]IA\Symuns[]universal\Symuns[]fpset%
\tyxffmxendmono[]\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a point set containing
all real points of the indicated dimension.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]S\Symlt[]P\Symlt[]d\Symgt[]\Symgt[] \newlinetag[]
IA\Symuns[]universal\Symuns[]fpset( u )\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]\tyxffmxmono[]IA\Symuns[]empty\Symuns[]fpset%
\tyxffmxendmono[]\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create an empty point
set, over the real points, of the indicated dimension.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]S\Symlt[]P\Symlt[]d\Symgt[]\Symgt[] IA\Symuns[]empty\Symuns[]fpset(
u )\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\=\\=\\=}\def\TabRuleSave{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]compare%
\TxtEndinxtrm[]( \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Compare the two point set arguments.\newlinetag[]
Return an \tyxffmxmono[]IA::LatticeRelation\tyxffmxendmono[] value indicating
the inclusion relationship which holds between the arguments.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]IA::LatticeRelation compare(,S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]transpose%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the point set with transposed points.\newlinetag[]
\tyxtstxbf[]NOTE\tyxtstxendbf[]: This is only defined for two (2)
dimensional point sets over integer points.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[] transpose(S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndv[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Point Set Iterator\HdMinEndiv[]
\Para[]Point set iterators provide a mechanism to iterate over each
point contained in a given point set, however, the point set must
be \tyxtstxit[]\TxtInxtrm[]extensive\TxtEndinxtrm[]%
\tyxtstxendit[]. In the \tyxffmxmono[]iac++\tyxffmxendmono[] class library,
every extensive point set has an associated iterator, which defines
the \tyxtstxit[]\TxtInxtrm[]iteration order\TxtEndinxtrm[]%
\tyxtstxendit[] of the point set.\Endpara[]
\Para[]Point set classes are implemented as specializations of the
C++ template class: \tyxffmxmono[]IA\Symuns[]PSIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[].\Endpara[]
\DivLv[]\HdMinLv[]Point Set Iterator Constructors\HdMinEndv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{PSIterConstructors}]Legend: %
\tyxffmxmono[]\tyxtszxeight[]S\Symlt[]T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Set\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[], \tyxffmxmono[]%
\tyxtszxeight[]S\Symlt[]P\Symlt[]d\Symgt[]\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[], \tyxffmxmono[]%
\tyxtszxeight[]PSIter\Symlt[]T\Symgt[]\tyxtszxendeight[]%
\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]PSIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]ClosurePS\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxtszxendeight[]\tyxffmxendmono[] %
\tyxffmxmono[]IA\Symuns[]ClosurePS\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxtstxbf[]\tyxtszxeight[]NYI%
\tyxtszxendeight[]\tyxtstxendbf[] \tyxffmxmono[]Not Yet Implemented%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\212\\339}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]PSIter\Symlt[]T\Symgt[]\tyxffmxendmono[] Constructor
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]\tyxffmxmono[]IA\Symuns[]PSIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[]\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Construct an iterator over the set
of all points of dimension 0.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]PSIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[]( S\Symlt[]P\Symgt[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Construct an iterator over the
point set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]PSIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[]( PSIter\Symlt[]P\Symgt[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Construct a copy of this
iterator over the same point set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndv[]
\DivLv[]\HdMinLv[]Point Set Iterator Member Operators%
\HdMinEndv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{PSIterMemberOperators}]Legend:
\tyxffmxmono[]\tyxtszxeight[]S\Symlt[]T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Set\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[], \tyxffmxmono[]%
\tyxtszxeight[]S\Symlt[]P\Symlt[]d\Symgt[]\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[], \tyxffmxmono[]%
\tyxtszxeight[]PSIter\Symlt[]T\Symgt[]\tyxtszxendeight[]%
\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]PSIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]ClosurePS\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxtszxendeight[]\tyxffmxendmono[] %
\tyxffmxmono[]IA\Symuns[]ClosurePS\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxtstxbf[]\tyxtszxeight[]NYI%
\tyxtszxendeight[]\tyxtstxendbf[] \tyxffmxmono[]Not Yet Implemented%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\104\\275\\172}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Member Operator
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Member Operator Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]operator =\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign the right iterator to
the left iterator.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]PSIter\Symlt[]P\Symgt[]\Symand[]
= PSIter\Symlt[]P\Symgt[]\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
operator
=
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign the point set that the iterator will iterate over.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]PSIter\Symlt[]P\Symgt[]\Symand[] = S\Symlt[]P\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\=\\=\\=}\def\TabRuleSave{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator ()%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True IFF the next point in the iteration
order has been assigned to the reference argument.\newlinetag[]
If there is no next point then 0 is returned.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]i PSIter\Symlt[]P\Symgt[](P\Symand[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndv[]
\DivLv[]\HdMinLv[]Point Set Iterator Member Functions%
\HdMinEndv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{PSIterMemberOperations}]Legend:
\tyxffmxmono[]\tyxtszxeight[]S\Symlt[]T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Set\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[], \tyxffmxmono[]%
\tyxtszxeight[]S\Symlt[]P\Symlt[]d\Symgt[]\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[], \tyxffmxmono[]%
\tyxtszxeight[]PSIter\Symlt[]T\Symgt[]\tyxtszxendeight[]%
\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]PSIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]ClosurePS\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxtszxendeight[]\tyxffmxendmono[] %
\tyxffmxmono[]IA\Symuns[]ClosurePS\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxtstxbf[]\tyxtszxeight[]NYI%
\tyxtszxendeight[]\tyxtstxendbf[] \tyxffmxmono[]Not Yet Implemented%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\103\\276\\171}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Member Function
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Member Function Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]domain\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return the point set associated
with the iterator.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]PSIter\Symlt[]P\Symgt[]
PSIter\Symlt[]P\Symgt[].domain()\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]reset\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The next call to
\tyxffmxmono[]operator ()\tyxffmxendmono[] will return the first point
in the iteration order.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]%
\tyxffmxmono[]void\tyxffmxendmono[] PSIter\Symlt[]P\Symgt[].reset()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndv[]
\DivEndiv[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]\tyxffmxmono[]iac++\tyxffmxendmono[] Value Set
Classes\HdMjEndiii[]
\DivLiv[]\HdMinLiv[]Public Interface\HdMinEndiv[]
\Para[]Classes used to support the implementation of value sets as
defined in the \tyxffmxmono[]iac++\tyxffmxendmono[] class library are:
\LstList[]
\LstItem[]\tyxffmxmono[]IA\Symuns[]Set\Symlt[]T\Symgt[]%
\tyxffmxendmono[]: defines the public behavior of sets, which are sets
containing elements of type \tyxffmxmono[]T\tyxffmxendmono[].%
\LstEnditem[]
\LstItem[]\tyxffmxmono[]IA\Symuns[]SetIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[]: defines an iterator for value sets over values of
type \tyxffmxmono[]T\tyxffmxendmono[]. Its interface is described
in a separate section.\LstEnditem[]
\LstEndlist[]
 \Endpara[]
\Para[]Value sets are instances of the C++ template class %
\tyxffmxmono[]IA\Symuns[]Set\Symlt[]T\Symgt[]\tyxffmxendmono[]. The
currently supported types for \Comp[]T\Endcomp[] are:
\LstList[]
\LstItem[]\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]%
\LstEnditem[]
\LstItem[]\tyxffmxmono[]complex\tyxffmxendmono[]\LstEnditem[]
\LstItem[]\tyxffmxmono[]float\tyxffmxendmono[]\LstEnditem[]
\LstItem[]\tyxffmxmono[]int\tyxffmxendmono[]\LstEnditem[]
\LstItem[]\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[]%
\LstEnditem[]
\LstItem[]\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[]%
\LstEnditem[]
\LstEndlist[]
\Endpara[]
\DivLv[]\HdMinLv[]Value Set Constructors\HdMinEndv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{SConstructors}]Legend: %
\tyxffmxmono[]\tyxtszxeight[]\mthxgkxtau[]\tyxtszxendeight[]%
\tyxffmxendmono[] chosen from: \tyxffmxmono[]IA\Symuns[]Bit%
\tyxffmxendmono[], \tyxffmxmono[]complex\tyxffmxendmono[], %
\tyxffmxmono[]float\tyxffmxendmono[], \tyxffmxmono[]int%
\tyxffmxendmono[], \tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[], %
\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[], \tyxffmxmono[]%
\tyxtszxeight[]S\Symlt[]\mthxgkxtau[]\Symgt[]\tyxtszxendeight[]%
\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Set\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]SIter\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxtszxendeight[]\tyxffmxendmono[] %
\tyxffmxmono[]IA\Symuns[]SetIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\214\\337}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Value Set Constructor
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]\tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxffmxendmono[]\TxtEndinxtrm[]( )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create an
empty value set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Set\Symlt[]T\Symgt[]%
\tyxffmxendmono[]( \mthxgkxtau[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a value set with one value.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]Set\Symlt[]T\Symgt[]\tyxffmxendmono[]( %
\mthxgkxtau[],\mthxgkxtau[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a value set with two values.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]Set\Symlt[]T\Symgt[]\tyxffmxendmono[]( %
\mthxgkxtau[],\mthxgkxtau[],\mthxgkxtau[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a value set with
three values.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Set\Symlt[]T\Symgt[]%
\tyxffmxendmono[]( \mthxgkxtau[],\mthxgkxtau[],\mthxgkxtau[],%
\mthxgkxtau[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a value set with four values.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Set\Symlt[]T\Symgt[]%
\tyxffmxendmono[]( \mthxgkxtau[],\mthxgkxtau[],\mthxgkxtau[],%
\mthxgkxtau[],T )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a value set with five values.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]Set\Symlt[]T\Symgt[]\tyxffmxendmono[](const
\mthxgkxtau[]*, u )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a value set from an array of values.\newlinetag[]
Second argument specifies the number of values in the array.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]Set\Symlt[]T\Symgt[]\tyxffmxendmono[]( S\Symlt[]T\Symgt[]
)
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a copy of this value set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndv[]
\DivLv[]\HdMinLv[]Value Set Operators\HdMinEndv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{SArithmetic}]Legend: %
\tyxffmxmono[]\tyxtszxeight[]\mthxgkxtau[]\tyxtszxendeight[]%
\tyxffmxendmono[] any Type, \tyxffmxmono[]\tyxtszxeight[]S\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxtszxendeight[]\tyxffmxendmono[] %
\tyxffmxmono[]IA\Symuns[]Set\Symlt[]T\Symgt[]\tyxffmxendmono[], %
\tyxffmxmono[]\tyxtszxeight[]SIter\Symlt[]\mthxgkxtau[]\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]SetIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\104\\300\\148}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Value Set Operator
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Operator Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]operator =\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign a copy of the given value
set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]S\Symlt[]T\Symgt[]\Symand[] = S\Symlt[]T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\=\\=\\=}\def\TabRuleSave{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symor[]%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the set union of the arguments.\newlinetag[]
If one of the arguments is an single value then treat it as a singleton
set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]S\Symlt[]T\Symgt[] \Symor[] S\Symlt[]T\Symgt[]\newlinetag[]
S\Symlt[]T\Symgt[] \Symor[] T\newlinetag[]
T    \Symor[] S\Symlt[]T\Symgt[]\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symand[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield
the set intersection of the arguments.\newlinetag[]
If one of the arguments is an single value then treat it as a singleton
set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]S\Symlt[]T\Symgt[] \Symand[] S\Symlt[]T\Symgt[]\newlinetag[]
S\Symlt[]T\Symgt[] \Symand[] T\newlinetag[]
T    \Symand[] S\Symlt[]T\Symgt[]\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator /\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the set
difference of the arguments.\newlinetag[]
If one of the arguments is an single value then treat it as a singleton
set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]S\Symlt[]T\Symgt[] / S\Symlt[]T\Symgt[]\newlinetag[]
S\Symlt[]T\Symgt[] / T\newlinetag[]
T    / S\Symlt[]T\Symgt[]\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]operator \Symhat[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the set symmetric
difference of the arguments.\newlinetag[]
If one of the arguments is an single value then treat it as a singleton
set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]S\Symlt[]T\Symgt[] \Symhat[] S\Symlt[]T\Symgt[]\newlinetag[]
S\Symlt[]T\Symgt[] \Symhat[] T\newlinetag[]
T    \Symhat[] S\Symlt[]T\Symgt[]\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symlt[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Test
if the left operand is a subset of the right operand.\newlinetag[]
If one of the arguments is an single value then treat it as a singleton
set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]i S\Symlt[]T\Symgt[] \Symlt[] S\Symlt[]T\Symgt[]\newlinetag[]
i S\Symlt[]T\Symgt[] \Symlt[] T\newlinetag[]
i T    \Symlt[] S\Symlt[]T\Symgt[]\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symlt[]=\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Test
if the left operand is a proper subset of the right operand.\newlinetag[]
If one of the arguments is an single value then treat it as a singleton
set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]i S\Symlt[]T\Symgt[] \Symlt[]= S\Symlt[]T\Symgt[]\newlinetag[]
i S\Symlt[]T\Symgt[] \Symlt[]= T\newlinetag[]
i T    \Symlt[]= S\Symlt[]T\Symgt[]\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symgt[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Test
if the right operand is a proper superset of the left operand.\newlinetag[]
If one of the arguments is an single value then treat it as a singleton
set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]i S\Symlt[]T\Symgt[] \Symgt[] S\Symlt[]T\Symgt[]\newlinetag[]
i S\Symlt[]T\Symgt[] \Symgt[] T\newlinetag[]
i T    \Symgt[] S\Symlt[]T\Symgt[]\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symgt[]=\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Test
if the right operand is a subset of the left operand.\newlinetag[]
If one of the arguments is an single value then treat it as a singleton
set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]i S\Symlt[]T\Symgt[] \Symgt[]= S\Symlt[]T\Symgt[]\newlinetag[]
i S\Symlt[]T\Symgt[] \Symgt[]= T\newlinetag[]
i T    \Symgt[]= S\Symlt[]T\Symgt[]\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator ==\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Test if two
sets are equal\newlinetag[]
If one of the arguments is an single value then treat it as a singleton
set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]i S\Symlt[]T\Symgt[] == S\Symlt[]T\Symgt[]\newlinetag[]
i S\Symlt[]T\Symgt[] == T\newlinetag[]
i T    == S\Symlt[]T\Symgt[]\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]operator !=\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Test if two sets are not equal\newlinetag[]
If one of the arguments is an single value then treat it as a singleton
set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]i S\Symlt[]T\Symgt[] != S\Symlt[]T\Symgt[]\newlinetag[]
i S\Symlt[]T\Symgt[] != T\newlinetag[]
i T    != S\Symlt[]T\Symgt[]\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndv[]
\DivLv[]\HdMinLv[]Value Set Member Functions\HdMinEndv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{SMemberOperations}]Legend: %
\tyxffmxmono[]\tyxtszxeight[]\mthxgkxtau[]\tyxtszxendeight[]%
\tyxffmxendmono[] any Type, \tyxffmxmono[]\tyxtszxeight[]S\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxtszxendeight[]\tyxffmxendmono[] %
\tyxffmxmono[]IA\Symuns[]Set\Symlt[]T\Symgt[]\tyxffmxendmono[], %
\tyxffmxmono[]\tyxtszxeight[]SIter\Symlt[]\mthxgkxtau[]\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]SetIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\104\\303\\144}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Value Set Member Function
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Member Function Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]card\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return the number of values in the
value set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]u S\Symlt[]T\Symgt[].card()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]choice%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yields some element of the set.\newlinetag[]
\tyxtstxbf[]NOTE\tyxtstxendbf[]: there is no guarantee that multiple
calls to \tyxffmxmono[]choice()\tyxffmxendmono[] will yield different
values.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]i S\Symlt[]T\Symgt[].choice()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]contains%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True if the argument value is in the value
set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]i S\Symlt[]T\Symgt[].contains(T)%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]extensive%
\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
If \tyxffmxmono[]extensive()\tyxffmxendmono[] returns
true, then \tyxffmxmono[]\TxtInxtrm[]card\TxtEndinxtrm[]()%
\tyxffmxendmono[], \tyxffmxmono[]\TxtInxtrm[]choice%
\TxtEndinxtrm[]()\tyxffmxendmono[], and \tyxffmxmono[]%
\TxtInxtrm[]empty\TxtEndinxtrm[]()\tyxffmxendmono[] are guaranteed
to work, and the set is iterable. Otherwise these functions may fail,
and iteration may not be possible.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxtstxbf[]NYI\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\=\\=\\=}\def\TabRuleSave{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]empty\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True IFF the value set is empty.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]i S\Symlt[]T\Symgt[].empty()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]max%
\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return the maximum value in the value set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]T S\Symlt[]T\Symgt[].max()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]min%
\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return the minimum value in the value set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]T S\Symlt[]T\Symgt[].min()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndv[]
\DivLv[]\HdMinLv[]Other Value Set Functions\HdMinEndv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{SFriendOperations}]Legend: %
\tyxffmxmono[]\tyxtszxeight[]\mthxgkxtau[]\tyxtszxendeight[]%
\tyxffmxendmono[] any Type, \tyxffmxmono[]\tyxtszxeight[]S\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxtszxendeight[]\tyxffmxendmono[] %
\tyxffmxmono[]IA\Symuns[]Set\Symlt[]T\Symgt[]\tyxffmxendmono[], %
\tyxffmxmono[]\tyxtszxeight[]SIter\Symlt[]\mthxgkxtau[]\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]SetIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\128\\256\\168}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Other Value Set Functions
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Other Function Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]compare\TxtEndinxtrm[]( \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Compare
two value sets.\newlinetag[]
Reference \tyxffmxmono[]IA::LatticeRelation\tyxffmxendmono[] for possible
return values.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]\tyxffmxmono[]IA::LatticeRelation%
\tyxffmxendmono[] compare(S\Symlt[]T\Symgt[],S\Symlt[]T\Symgt[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndv[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Value Set Iterator\HdMinEndiv[]
\Para[]Value set iterators provide a mechanism to iterate over each
value contained in a given value set, however, the value set must
be \tyxtstxit[]\TxtInxtrm[]extensive\TxtEndinxtrm[]%
\tyxtstxendit[]. In the \tyxffmxmono[]iac++\tyxffmxendmono[] class library,
every extensive value set has an associated iterator, which defines
the \tyxtstxit[]\TxtInxtrm[]iteration order\TxtEndinxtrm[]%
\tyxtstxendit[] of the value set.\Endpara[]
\Para[]Value set classes are implemented as specializations of the
C++ template class: \tyxffmxmono[]IA\Symuns[]SetIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[].\Endpara[]
\DivLv[]\HdMinLv[]Value Set Iterator Constructors\HdMinEndv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{SIterConstructors}]Legend: %
\tyxffmxmono[]\tyxtszxeight[]\mthxgkxtau[]\tyxtszxendeight[]%
\tyxffmxendmono[] chosen from: \tyxffmxmono[]IA\Symuns[]Bit%
\tyxffmxendmono[], \tyxffmxmono[]complex\tyxffmxendmono[], %
\tyxffmxmono[]float\tyxffmxendmono[], \tyxffmxmono[]int%
\tyxffmxendmono[], \tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[], %
\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[], \tyxffmxmono[]%
\tyxtszxeight[]S\Symlt[]\mthxgkxtau[]\Symgt[]\tyxtszxendeight[]%
\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Set\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]SIter\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxtszxendeight[]\tyxffmxendmono[] %
\tyxffmxmono[]IA\Symuns[]SetIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\212\\339}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Value Set Iterator Constructor
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]%
\tyxffmxmono[]IA\Symuns[]SetIter\Symlt[]T\Symgt[]( )%
\tyxffmxendmono[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Construct an iterator over an empty
value set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]SetIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[]( S\Symlt[]T\Symgt[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Construct an iterator over the
value set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]SetIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[]( SIter\Symlt[]T\Symgt[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Construct a copy of the
set iterator.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndv[]
\DivLv[]\HdMinLv[]Value Set Iterator Member Operators%
\HdMinEndv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{SIterMemberOperators}]Legend:
\tyxffmxmono[]\tyxtszxeight[]\mthxgkxtau[]\tyxtszxendeight[]%
\tyxffmxendmono[] chosen from: \tyxffmxmono[]IA\Symuns[]Bit%
\tyxffmxendmono[], \tyxffmxmono[]complex\tyxffmxendmono[], %
\tyxffmxmono[]float\tyxffmxendmono[], \tyxffmxmono[]int%
\tyxffmxendmono[], \tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[], %
\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[], \tyxffmxmono[]%
\tyxtszxeight[]S\Symlt[]\mthxgkxtau[]\Symgt[]\tyxtszxendeight[]%
\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Set\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]SIter\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxtszxendeight[]\tyxffmxendmono[] %
\tyxffmxmono[]IA\Symuns[]SetIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\101\\278\\172}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Value Set Operator
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Operator Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]operator =\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign the set the iterator will
iterate over.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]SIter\Symlt[]T\Symgt[] =
S\Symlt[]T\Symgt[]\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]operator =\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign the right iterator to
the left iterator.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]SIter\Symlt[]T\Symgt[]
= SIter\Symlt[]T\Symgt[]\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]operator ()\TxtEndinxtrm[] ( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign the next
value in the value set to the argument and return 1. If there is no
next value then return 0.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]I SIter\Symlt[]T\Symgt[](T\Symand[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndv[]
\DivLv[]\HdMinLv[]Value Set Iterator Member Functions%
\HdMinEndv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{SIterMemberOperations}]Legend:
\tyxffmxmono[]\tyxtszxeight[]\mthxgkxtau[]\tyxtszxendeight[]%
\tyxffmxendmono[] chosen from: \tyxffmxmono[]IA\Symuns[]Bit%
\tyxffmxendmono[], \tyxffmxmono[]complex\tyxffmxendmono[], %
\tyxffmxmono[]float\tyxffmxendmono[], \tyxffmxmono[]int%
\tyxffmxendmono[], \tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[], %
\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[], \tyxffmxmono[]%
\tyxtszxeight[]S\Symlt[]\mthxgkxtau[]\Symgt[]\tyxtszxendeight[]%
\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Set\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]SIter\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxtszxendeight[]\tyxffmxendmono[] %
\tyxffmxmono[]IA\Symuns[]SetIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\103\\277\\171}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Member Function
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Member Function Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]domain\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return the value set associated
with the iterator.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]SIter\Symlt[]T\Symgt[]
SIter\Symlt[]T\Symgt[].domain()\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]reset\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
The next call to
\tyxffmxmono[]operator ()\tyxffmxendmono[] will return the first value
in the iteration order.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]%
\tyxffmxmono[]void\tyxffmxendmono[] SIter\Symlt[]T\Symgt[].reset()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndv[]
\DivEndiv[]
\DivEndiii[]
\DivEndii[]
\DivLii[\def\DivLiiId{ImageChapter}]\HdMjLii[]\tyxffmxmono[]iac++%
\tyxffmxendmono[] Image Classes\HdMjEndii[]
\DivLiii[]\HdMjLiii[]Image Overview\HdMjEndiii[]
\FgBlock[]
\FgCap[]Class Diagram of the \tyxffmxmono[]iac++\tyxffmxendmono[] Image
Classes\FgEndcap[]
\PreProcFgGfx\FgGfx[\FgGfxHt=470.00pt \FgGfxWd=544.00pt \def\FgGfxPath{UM-2.2}\def\FgGfxCache{UM-2.2}\FgGfxX=0.00pt \FgGfxY=0.00pt \def\FgGfxProc{None}\def\FgGfxFilename{image-classes.eps}]
\FgEndblock[]
\Para[]Images may be thought of as either a mapping from a domain
of points to a range of values, or simply as a collection of %
\tyxffmxmono[](point, value)\tyxffmxendmono[] pairs. The %
\tyxffmxmono[]iac++\tyxffmxendmono[] class library represents images
as instances of C++ parameterized template classes, parameterized
on both the element type of the domain, a \tyxtstxit[]%
\TxtInxtrm[]point type\TxtEndinxtrm[]\tyxtstxendit[], and the range,
a \tyxtstxit[]\TxtInxtrm[]value type\TxtEndinxtrm[]%
\tyxtstxendit[]. Thus images are instances of the class %
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], where \tyxtstxbf[]\tyxffmxmono[]P%
\tyxffmxendmono[]\tyxtstxendbf[] is a point type class as defined
in Chapter \Xref[\def\XrefName{PointChapter}], and \tyxtstxbf[]%
\tyxffmxmono[]T\tyxffmxendmono[]\tyxtstxendbf[] may be any of the
library supported types.\Endpara[]
\Para[]There are two broad characterizations of image representations
supported by the \tyxffmxmono[]iac++\tyxffmxendmono[] class library.
An understanding of these image representations will facilitate effective
library use:
\LstList[]
\LstItem[]An \tyxtstxit[]\TxtInxtrm[]extensive\TxtEndinxtrm[]%
\tyxtstxendit[] image representation explicitly stores the values
associated with the image pixels.\LstEnditem[]
\LstItem[]A \tyxtstxit[]\TxtInxtrm[]comprehensive\TxtEndinxtrm[]%
\tyxtstxendit[] image representation employs a function to represent
the point to value mapping associated with an image.%
\LstEnditem[]
\LstEndlist[]
In general extensive images have better support in the library. For
instance, at this time, it is not possible to add two comprehensive
images. Future versions of the library may provide further support
for comprehensive image operations.\Endpara[]
\Para[]The image types that are predefined and delivered with the
library are:
\LstList[]
\LstItem[]\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]: Bit valued images over integer points.%
\LstEnditem[]
\LstItem[]\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]complex\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]: Complex valued images over integer points.%
\LstEnditem[]
\LstItem[]\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]: Float valued images over real points.%
\LstEnditem[]
\LstItem[]\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]: Float valued images over integer points.%
\LstEnditem[]
\LstItem[]\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]: Integer valued images over integer points.%
\LstEnditem[]
\LstItem[]\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]: Unsigned character valued images over integer points.%
\LstEnditem[]
\LstEndlist[]
These classes are specializations of the C++ template class: %
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], which defines common behavior applicable to all
images.\Endpara[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]Image Header Files\HdMjEndiii[]
\Para[]The headers files that are of interest to user of %
\tyxffmxmono[]iac++\tyxffmxendmono[] image classes are shown the following
figure.\Endpara[]
\FgBlock[]
\FgCap[]Header files for the \tyxffmxmono[]iac++\tyxffmxendmono[] Image
Classes\FgEndcap[]
\PreProcFgGfx\FgGfx[\FgGfxHt=540.00pt \FgGfxWd=423.00pt \def\FgGfxPath{UM-2.2}\def\FgGfxCache{UM-2.2}\FgGfxX=0.00pt \FgGfxY=0.00pt \def\FgGfxProc{None}\def\FgGfxFilename{image-headers.eps}]
\FgEndblock[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]Public Interface\HdMjEndiii[]
\DivLiv[]\HdMinLiv[]Image Constructors\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{IDIConstructors}]Legend: %
\tyxffmxmono[]\tyxtszxeight[]P\tyxtszxendeight[]%
\tyxffmxendmono[] any Point type, \tyxffmxmono[]\tyxtszxeight[]%
\mthxgkxtau[]\tyxtszxendeight[]\tyxffmxendmono[] any Type, %
\tyxffmxmono[]\tyxtszxeight[]CI\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]CoreImage\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],Cplx\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]complex\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]d\Symgt[],f\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]d\Symgt[],f\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],RGB\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],Uchar\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]IPIter\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]IPIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]IVIter\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]IVIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\357\\195}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Image Constructor
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Constructor Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]%
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],IA\Symuns[]Bit\Symgt[]%
\tyxffmxendmono[]\TxtEndinxtrm[]( )\newlinetag[]
\TxtInxtrm[]\tyxffmxmono[]IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],complex\Symgt[]%
\tyxffmxendmono[]\TxtEndinxtrm[]( )\newlinetag[]
\TxtInxtrm[]\tyxffmxmono[]IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]double\Symgt[],float\Symgt[]%
\tyxffmxendmono[]\TxtEndinxtrm[]( )\newlinetag[]
\TxtInxtrm[]\tyxffmxmono[]IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],float\Symgt[]%
\tyxffmxendmono[]\TxtEndinxtrm[]( )\newlinetag[]
\TxtInxtrm[]\tyxffmxmono[]IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],int\Symgt[]%
\tyxffmxendmono[]\TxtEndinxtrm[]( )\newlinetag[]
\TxtInxtrm[]\tyxffmxmono[]IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],IA\Symuns[]RGB\Symgt[]%
\tyxffmxendmono[]\TxtEndinxtrm[]( )\newlinetag[]
\TxtInxtrm[]\tyxffmxmono[]IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],u\Symuns[]char\Symgt[]%
\tyxffmxendmono[]\TxtEndinxtrm[]( )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create an empty image of the appropriate
type.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( I\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[] )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]complex\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( I\Symlt[]P\Symlt[]i\Symgt[],Cplx\Symgt[] )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( I\Symlt[]P\Symlt[]d\Symgt[],f\Symgt[] )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( I\Symlt[]P\Symlt[]i\Symgt[],f\Symgt[] )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( I\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[] )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( I\Symlt[]P\Symlt[]i\Symgt[],RGB\Symgt[] )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( I\Symlt[]P\Symlt[]i\Symgt[],u\Symuns[]char\Symgt[]
)
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a duplicate of the argument image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[], B )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]complex\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[], Cplx )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( S\Symlt[]P\Symlt[]d\Symgt[]\Symgt[], f )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[], f )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[], i )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[], RGB )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[], u\Symuns[]char
)
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create an image with the same value at every point in the given point
set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[], B*, u, i )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]complex\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[], Cplx*, u, i )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symlt[]d\Symgt[]\Symgt[], f*, u, i )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[], f*, u, i )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[], i*, u, i )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[], RGB*, u, i )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[], u\Symuns[]char*,
u, i )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create an image from a set of points and an array.\newlinetag[]
First argument is the domain of the image.\newlinetag[]
Second argument is an array of pixel values. \tyxtstxbf[]NOTE%
\tyxtstxendbf[]: This array must be the same size as the domain argument,
and the values are assumed to be stored in the same order as the corresponding
domain\rsquo[]s point set iterator order.\newlinetag[]
Third image is the number of pixel values in the array.\newlinetag[]
If the forth argument exists, assume storage management for the input
array IFF the fourth argument is true.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]P\Symlt[]i\Symgt[]*, u, i*, u, i )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]P\Symlt[]i\Symgt[]*, u, RGB*, u, i )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create an image
from two arrays, one of points, and one of values. \tyxtstxbf[]NOTE%
\tyxtstxendbf[]: These arrays must be the same size, and it is assumed
that the corresponding indices match (point, value) pixels.\newlinetag[]
First argument is the array of points.\newlinetag[]
Second argument is the point array size.\newlinetag[]
Third argument is the array of values. Forth arugment is the value
array size. This should match the size of the point array.\newlinetag[]
If the fifth argument exists, assume storage management for the value
array IFF the fifth argument is true.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[], B (*)(const P\Symlt[]i\Symgt[]\Symand[])
)\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]complex\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[], Cplx (*)(const
P\Symlt[]i\Symgt[]\Symand[]) )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[], f (*)(const F\Symlt[]d\Symgt[]\Symand[])
)\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[], f (*)(const P\Symlt[]i\Symgt[]\Symand[])
)\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[], i (*)(const P\Symlt[]i\Symgt[]\Symand[])
)\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[], RGB (*)(const
P\Symlt[]i\Symgt[]\Symand[]) )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[], u\Symuns[]char
(*)(const P\Symlt[]i\Symgt[]\Symand[]) )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create an image whose domain
is the first argument and whose pixel values are calculated by the
given function.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]IA\Symuns[]ClosureI\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[]
)\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]complex\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]IA\Symuns[]ClosureI\Symlt[]P\Symlt[]i\Symgt[],Cplx\Symgt[]
)\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]IA\Symuns[]ClosureI\Symlt[]P\Symlt[]d\Symgt[],f\Symgt[]
)\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]IA\Symuns[]ClosureI\Symlt[]P\Symlt[]i\Symgt[],f\Symgt[]
)\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]IA\Symuns[]ClosureI\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[]
)\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]IA\Symuns[]ClosureI\Symlt[]P\Symlt[]i\Symgt[],RGB\Symgt[]
)\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]IA\Symuns[]ClosureI\Symlt[]P\Symlt[]i\Symgt[],u\Symuns[]char\Symgt[]
)
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create an image from a user defined class derived from the %
\tyxffmxmono[]IA\Symuns[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[] image class.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\=\\=}\def\TabRuleSave{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( CI\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[] )\newlinetag[]
\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]complex\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( CI\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[] )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]complex\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( CI\Symlt[]P\Symlt[]i\Symgt[],Cplx\Symgt[] )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]complex\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( CI\Symlt[]P\Symlt[]i\Symgt[],f\Symgt[] )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]complex\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( CI\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[] )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]complex\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( CI\Symlt[]P\Symlt[]i\Symgt[],u\Symuns[]char\Symgt[]
)\newlinetag[]
\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( CI\Symlt[]P\Symlt[]d\Symgt[],f\Symgt[] )\newlinetag[]
\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( CI\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[] )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( CI\Symlt[]P\Symlt[]i\Symgt[],f\Symgt[] )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( CI\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[] )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( CI\Symlt[]P\Symlt[]i\Symgt[],u\Symuns[]char\Symgt[]
)\newlinetag[]
\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( CI\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[] )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( CI\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[] )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( CI\Symlt[]P\Symlt[]i\Symgt[],u\Symuns[]char\Symgt[]
)\newlinetag[]
\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( CI\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[] )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( CI\Symlt[]P\Symlt[]i\Symgt[],RGB\Symgt[] )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( CI\Symlt[]P\Symlt[]i\Symgt[],u\Symuns[]char\Symgt[]
)\newlinetag[]
\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( CI\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[] )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]( CI\Symlt[]P\Symlt[]i\Symgt[],u\Symuns[]char\Symgt[]
)
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create an image from a base class representation of a parameterized
image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]complex\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[](\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]I\Symlt[]P\Symlt[]i\Symgt[],f\Symgt[], I\Symlt[]P\Symlt[]i\Symgt[],f\Symgt[]
)
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a complex image from two images. The point sets of the two
argument images must be the same. The pixel value at each point in
the complex image consists of a complex value whose real part is from
the first image and whose imaginary part is from the second image,
each evaluated at the same point.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Image Operators\HdMinEndiv[]
\Para[]In general operations between images require that the image
arguments be of the same type. However, if one of the operands is
a scalar value the operand is treated as if it defines a constant
image with pixel values equal to the numeric operand and with the
same domain as the image operand.\Endpara[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{ImageOperators}]Legend: %
\tyxffmxmono[]\tyxtszxeight[]P\tyxtszxendeight[]%
\tyxffmxendmono[] any Point type, \tyxffmxmono[]\tyxtszxeight[]%
\mthxgkxtau[]\tyxtszxendeight[]\tyxffmxendmono[] any Type, %
\tyxffmxmono[]\tyxtszxeight[]CI\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]CoreImage\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],Cplx\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]complex\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]d\Symgt[],f\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]d\Symgt[],f\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],RGB\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],Uchar\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]IPIter\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]IPIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]IVIter\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]IVIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\82\\278\\26\\27\\25\\28\\29\\28\\29}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-\\-\\-\\-\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Image Member Operator
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Operator Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtstxbf[]B\newlinetag[]
D\newlinetag[]
I\tyxtstxendbf[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtstxbf[]C\newlinetag[]
D\newlinetag[]
I\tyxtstxendbf[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtstxbf[]F\newlinetag[]
C\newlinetag[]
I\tyxtstxendbf[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtstxbf[]F\newlinetag[]
D\newlinetag[]
I\tyxtstxendbf[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtstxbf[]I\newlinetag[]
D\newlinetag[]
I\tyxtstxendbf[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtstxbf[]R\newlinetag[]
G\newlinetag[]
B\tyxtstxendbf[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtstxbf[]U\newlinetag[]
D\newlinetag[]
I\tyxtstxendbf[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+\\+\\+\\+\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator ()%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Evaluate the image at a point.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\TabColSpan=7 \def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]T I\Symlt[]P,T\Symgt[](P)\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symlbk[]\Symrbk[]%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return a reference to the value of the image at a point.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\TabColSpan=7 \def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]T\Symand[] I\Symlt[]P,T\Symgt[]\Symlbk[]P\Symrbk[]%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator =%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign a copy of the image
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
operator =
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign a constant to each pixel
value in the image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\TabColSpan=7 \def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P,T\Symgt[]
= T\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator +%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the pointwise sum of the operands.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator
-\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the pointwise difference of the operands.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator
*\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the pointwise product of the operands.\newlinetag[]
\symxdag[]\tyxtstxbf[]For BDI use: \tyxtstxendbf[]\tyxffmxmono[]operator
\Symand[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\symxdag[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator /\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield
the pointwise quotient of the operands.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Sympct[]%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the pointwise modulus of the operands.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator -\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield
the pointwise uniary minus of each pixel value.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator +=%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign the pointwise sum of the operands to the left
operand.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]operator -=\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign the pointwise difference
of the operands to the left operand.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator *=\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign
the pointwise product of the operands to the left operand.\newlinetag[]
\symxdag[]\tyxtstxbf[]For BDI use: \tyxtstxendbf[]\tyxffmxmono[]operator
\Symand[]=\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\symxdag[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator /=\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign
the pointwise quotient of the operands to the left operand.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator
\Sympct[]=\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign the pointwise modulus of the operands
to the left operand.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\=\\=\\=\\=\\=\\=\\=\\=\\=}\def\TabRuleSave{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator
\Symlt[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True IFF each pixel value in the left image
is less than the corresponding pixel value in the second image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symlt[]=%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True IFF each pixel value in the left image is less
than or equal to the corresponding pixel value in the right image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symgt[]%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True IFF each pixel value in the left image is greater
than the corresponding pixel value in the right image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symgt[]=%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True IFF each pixel value in the left image is greater
than or equal to the corresponding pixel value in the right image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator ==%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True IFF the two images have the same value at each
pixel.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator !=\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True
IFF there exists at least one point where the pixel values are not
equal.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symand[]\Symand[]%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the pointwise logical AND of the operands.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator
\Symor[]\Symor[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the pointwise logical OR of the
operands.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]operator !\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the pointwise logical NOT
of the operand.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symnot[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the
pointwise one\rsquo[]s complement of each pixel value.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symlt[]\Symlt[]%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the pointwise left shift of the left operand
by the right operand.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator
\Symgt[]\Symgt[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the pointwise right shift of
the left operand by the right operand.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]operator \Symand[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the pointwise binary
AND of the operands.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]operator \Symor[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the pointwise binary
OR of the operands.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]operator \Symhat[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the pointwise binary
XOR of the operands.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]operator \Symlt[]\Symlt[]=\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign the pointwise
left shift of the operands to the left operand.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symgt[]\Symgt[]=%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign the pointwise right shift of the operands to
the left operand.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symand[]=%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign the pointwise binary AND of the operands to
the left operand.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]operator \Symor[]=\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign the pointwise
binary OR of the operands to the left operand.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symhat[]=%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign the pointwise binary XOR of the operands to
the left operand.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Image Member Functions\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{ImageMemberFunctions}]Legend:
\tyxffmxmono[]\tyxtszxeight[]P\tyxtszxendeight[]%
\tyxffmxendmono[] any Point type, \tyxffmxmono[]\tyxtszxeight[]%
\mthxgkxtau[]\tyxtszxendeight[]\tyxffmxendmono[] any Type, %
\tyxffmxmono[]\tyxtszxeight[]CI\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]CoreImage\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],Cplx\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]complex\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]d\Symgt[],f\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]d\Symgt[],f\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],RGB\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],Uchar\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]IPIter\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]IPIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]IVIter\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]IVIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\117\\236\\198}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Image Member Function
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Member Function Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]extend\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield a result which
is the extension of the image by the argument image. The resultant
image includes all of the original image\rsquo[]s pixels and those
pixels from the argument image which are not in the image\rsquo[]s
domain.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]CI\Symlt[]P,T\Symgt[] CI\Symlt[]P,T\Symgt[].extend(I\Symlt[]P,T\Symgt[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]reduce%
\TxtEndinxtrm[]( \Symuns[] ,\Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield a result which is the
reduction of the image by the function.\newlinetag[]
First argument is the reduction function.\newlinetag[]
Second argument is the reduction identity element.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]T I\Symlt[]P,T\Symgt[].reduce(T (*)(T,T),T)\newlinetag[]
\newlinetag[]
T I\Symlt[]P,T\Symgt[].reduce(const T\Symand[], const T\Symand[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]restrict%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield an image which is the domain restriction
of the image to the point set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]CI\Symlt[]P\Symlt[]i\Symgt[],T\Symgt[]
CI\Symlt[]P,T\Symgt[].restrict(S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[])\newlinetag[]
\newlinetag[]
CI\Symlt[]P,T\Symgt[] CI\Symlt[]P,T\Symgt[].restrict(S\Symlt[]P\Symlt[]d\Symgt[]\Symgt[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
restrict( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield a result
which is the restriction of the image to those pixels having a value
in the value set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]CI\Symlt[]P,T\Symgt[]
CI\Symlt[]P,T\Symgt[].restrict(S\Symlt[]T\Symgt[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]restrict\Symuns[]assign%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Modify the image\rsquo[]s domain to be
the union of the domains of the two images. Modify the range to be
equal to result of assigning the original image first and the argument
image second.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]CI\Symlt[]P,T\Symgt[] CI\Symlt[]P,T\Symgt[].restrict\Symuns[]assign(CI\Symlt[]P,T\Symgt[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]translate%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield a result which is the translation
of the image by the point.\newlinetag[]
\tyxtstxbf[]Note:\tyxtstxendbf[] This functions does not modify the
original image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]CI\Symlt[]P,T\Symgt[]
CI\Symlt[]P,T\Symgt[].translate(P)\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\=\\=\\=}\def\TabRuleSave{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]card\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return the cardinality
of the image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]u CI\Symlt[]P,T\Symgt[].card()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]domain%
\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return the domain of the image as a point set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]Set\Symlt[]P\Symgt[] CI\Symlt[]P,T\Symgt[].domain()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]extensive%
\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True IFF the image\rsquo[]s representation is extensive.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]i CI\Symlt[]P,T\Symgt[].extensive()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]range%
\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return the range of the image as a value set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]S\Symlt[]T\Symgt[] CI\Symlt[]P,T\Symgt[].range()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]value\Symuns[]array%
\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return an array of the image\rsquo[]s range values.\newlinetag[]
Values are returned in the image\rsquo[]s point set iteration order.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]Array\Symlt[]T\Symgt[] CI\Symlt[]P,T\Symgt[].value\Symuns[]array()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Other Image Functions\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{ImageFriendFunctions}]Legend:
\tyxffmxmono[]\tyxtszxeight[]P\tyxtszxendeight[]%
\tyxffmxendmono[] any Point type, \tyxffmxmono[]\tyxtszxeight[]%
\mthxgkxtau[]\tyxtszxendeight[]\tyxffmxendmono[] any Type, %
\tyxffmxmono[]\tyxtszxeight[]CI\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]CoreImage\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],Cplx\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]complex\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]d\Symgt[],f\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]d\Symgt[],f\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],RGB\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],Uchar\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]IPIter\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]IPIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]IVIter\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]IVIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\94\\267\\27\\25\\29\\26\\28\\27\\29}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-\\-\\-\\-\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Other Image Function
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Other Image Function Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtstxbf[]B\newlinetag[]
D\newlinetag[]
I\tyxtstxendbf[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtstxbf[]C\newlinetag[]
D\newlinetag[]
I\tyxtstxendbf[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtstxbf[]F\newlinetag[]
C\newlinetag[]
I\tyxtstxendbf[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtstxbf[]F\newlinetag[]
D\newlinetag[]
I\tyxtstxendbf[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtstxbf[]I\newlinetag[]
D\newlinetag[]
I\tyxtstxendbf[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtstxbf[]R\newlinetag[]
G\newlinetag[]
B\tyxtstxendbf[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtstxbf[]U\newlinetag[]
D\newlinetag[]
I\tyxtstxendbf[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+\\+\\+\\+\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]to\Symuns[]bit%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield a result image which is the pointwise
conversion of the arguement image\rsquo[]s pixel values to %
\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]to\Symuns[]float\TxtEndinxtrm[]( \Symuns[]
)
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield a result image which is the pointwise conversion of the arguement
image\rsquo[]s pixel values to \tyxffmxmono[]float%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]to\Symuns[]int%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield a result image which is the pointwise
conversion of the arguement image\rsquo[]s pixel values to integer
using the cast \Comp[](int).\Endcomp[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]to\Symuns[]uchar\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield a result
image which is the pointwise conversion of the arguement image\rsquo[]s
pixel values to unsigned character using the cast \Comp[](unsigned char).%
\Endcomp[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\=\\=\\=\\=\\=\\=\\=\\=\\=}\def\TabRuleSave{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]strict\Symuns[]ne%
\TxtEndinxtrm[]( \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True IFF the not equal relation
holds for every point in the two images, 0 otherwise.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]chi\Symuns[]lt%
\TxtEndinxtrm[]( \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield an image with range value
1 at every point where the \Symlt[] relation holds, 0 otherwise. Result
is of type \tyxffmxmono[]IA\Symuns[]CoreImage\Symlt[]P\Symlt[]T\Symgt[],%
\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]chi\Symuns[]le\TxtEndinxtrm[]( \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield
an image with range value 1 at every point where the \Symlt[]= relation
holds, 0 otherwise. Result is of type \tyxffmxmono[]IA\Symuns[]CoreImage\Symlt[]P\Symlt[]T\Symgt[],%
\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]chi\Symuns[]eq\TxtEndinxtrm[]( \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield
an image with range value 1 at every point where the == relation holds,
0 otherwise. Result is of type \tyxffmxmono[]IA\Symuns[]CoreImage\Symlt[]P\Symlt[]T\Symgt[],%
\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]chi\Symuns[]ne%
\TxtEndinxtrm[]( \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield an image with range value
1 at every point where the != relation holds, 0 otherwise. Result
is of type \tyxffmxmono[]IA\Symuns[]CoreImage\Symlt[]P\Symlt[]T\Symgt[],%
\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]chi\Symuns[]ge%
\TxtEndinxtrm[]( \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield an image with range value
1 at every point where the \Symgt[]= relation holds, 0 otherwise.
Result is of type \tyxffmxmono[]IA\Symuns[]CoreImage\Symlt[]P\Symlt[]T\Symgt[],%
\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]chi\Symuns[]gt\TxtEndinxtrm[]( \Symuns[] ,\Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield
an image with range value 1 at every point where the \Symgt[] relation
holds, 0 otherwise. Result is of type \tyxffmxmono[]IA\Symuns[]CoreImage\Symlt[]P\Symlt[]T\Symgt[],%
\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]chi\Symuns[]contains\TxtEndinxtrm[]( \Symuns[] ,\Symuns[]
)
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield an image with range value 1 at every point where the pixel
value is contained in the set, 0 otherwise. Result is of type %
\tyxffmxmono[]IA\Symuns[]CoreImage\Symlt[]P\Symlt[]T\Symgt[],%
\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\TabColSpan=7 \def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]CI\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[]
chi\Symuns[]contains(I\Symlt[]P,T\Symgt[], S\Symlt[]T\Symgt[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]pseudo\Symuns[]div%
\TxtEndinxtrm[]( \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield an image with each pixel
value equal to the quotient of the two arguments.\newlinetag[]
If the quotient is undefined, the value 0 is assigned.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]pseudo\Symuns[]inv%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield an image with each pixel value equal
to the multiplicitive inverse.\newlinetag[]
If the inverse is undefined, the value 0 is assigned.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]isqrt\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield an
image with each pixel value equal to the integer result of the square
root of the value.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]sqrt\TxtEndinxtrm[]( \Symuns[]
)
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield an image with each pixel value equal to the square root of
the value.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]sqr%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield an image with each pixel value equal
to the square of the value.\newlinetag[]
\symxdag[]\tyxffmxmono[]\tyxtszxeight[] I\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[]
sqr( I\Symlt[]P\Symlt[]i\Symgt[],Uchar\Symgt[] )%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]\newlinetag[]
\symxdag[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]max\TxtEndinxtrm[]( \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield
an image with pixel values as the maximum of the arguments.\newlinetag[]
\symxdag[]\tyxffmxmono[]\tyxtszxeight[] Use operator\Symand[] for
I\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[]\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\symxdag[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
max( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the maximum pixel value in the
agrument image.\newlinetag[]
\symxdag[]\tyxffmxmono[]\tyxtszxeight[] d max( I\Symlt[]P\Symlt[]i\Symgt[],f\Symgt[]
)\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]\symxdag[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]min\TxtEndinxtrm[]( \Symuns[],
\Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield an image with pixel values as the minimum of the
arguments.\newlinetag[]
\symxdag[]\tyxffmxmono[]\tyxtszxeight[] Use operator\Symor[] for I\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\symxdag[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
min( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the minimum pixel
value in the agrument image.\newlinetag[]
\symxdag[]\tyxffmxmono[]\tyxtszxeight[] d min( I\Symlt[]P\Symlt[]i\Symgt[],f\Symgt[]
)\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]\symxdag[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]sum\TxtEndinxtrm[]( \Symuns[]
)
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the sum of the pixel values in the argument image.\newlinetag[]
\symxdag[] \tyxffmxmono[]\tyxtszxeight[]int sum(I\Symlt[]P\Symlt[]i\Symgt[],Uchar\Symgt[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]\newlinetag[]
\symxdag[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]product\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the
product of the pixel values in the argument image.\newlinetag[]
\symxdag[] \tyxffmxmono[]\tyxtszxeight[]int product(I\Symlt[]P\Symlt[]i\Symgt[],Uchar\Symgt[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]\newlinetag[]
\symxdag[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]transpose\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the
transpose of the image.\newlinetag[]
\tyxtstxbf[]NOTE\tyxtstxendbf[]: this is only applicable to images
with \tyxffmxmono[]IA\Symuns[]Set\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[] domains of dimension 2.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]abs\Symuns[]f%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield an image of real values, by applying
the complex abs() function pointwise.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\TabColSpan=7 \def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],f\Symgt[] abs\Symuns[]f(I\Symlt[]P\Symlt[]i\Symgt[],Cplx\Symgt[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]arg\Symuns[]f%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield an image of real values, by applying
the complex arg() function pointwise.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\TabColSpan=7 \def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],f\Symgt[] arg\Symuns[]f(I\Symlt[]P\Symlt[]i\Symgt[],Cplx\Symgt[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]conj%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the conjugate of the complex image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\TabColSpan=7 \def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],Cplx\Symgt[]
real\Symuns[]f(I\Symlt[]P\Symlt[]i\Symgt[],Cplx\Symgt[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]real\Symuns[]f%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield an image of the real values in the
complex image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\TabColSpan=7 \def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],f\Symgt[]
real\Symuns[]f(I\Symlt[]P\Symlt[]i\Symgt[],Cplx\Symgt[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]imag\Symuns[]f%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield an image of the imaginary values
in the complex image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\TabColSpan=7 \def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],f\Symgt[]
imag\Symuns[]f(I\Symlt[]P\Symlt[]i\Symgt[],Cplx\Symgt[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]abs%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the pointwise absolute value of
the image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\mthxsyxbul[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]fabs%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the pointwise absolute value of
the image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\TabColSpan=7 \def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],f\Symgt[]
fabs(I\Symlt[]P\Symlt[]i\Symgt[],f\Symgt[])\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]ceil\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield
the pointwise ceiling of the image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\TabColSpan=7 \def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],f\Symgt[]
ceil(I\Symlt[]P\Symlt[]i\Symgt[],f\Symgt[])\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]floor\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield
the pointwise floor of the image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\TabColSpan=7 \def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],f\Symgt[]
floor(I\Symlt[]P\Symlt[]i\Symgt[],f\Symgt[])\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]exp\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield
the pointwise natural exponentiation of the image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\TabColSpan=7 \def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],f\Symgt[] exp(I\Symlt[]P\Symlt[]i\Symgt[],f\Symgt[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]log%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the pointwise natural logrithm of
the image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\TabColSpan=7 \def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],f\Symgt[]
log(I\Symlt[]P\Symlt[]i\Symgt[],f\Symgt[])\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]cos\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield
the pointwise cosine of the image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\TabColSpan=7 \def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],f\Symgt[]
cos(I\Symlt[]P\Symlt[]i\Symgt[],f\Symgt[])\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]sin\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield
the pointwise sine of the image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\TabColSpan=7 \def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],f\Symgt[]
sin(I\Symlt[]P\Symlt[]i\Symgt[],f\Symgt[])\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]tan\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield
the pointwise tanget of the image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\TabColSpan=7 \def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],f\Symgt[]
tan(I\Symlt[]P\Symlt[]i\Symgt[],f\Symgt[])\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]compose\TxtEndinxtrm[]( \Symuns[], \Symuns[]
)\newlinetag[]
\TxtInxtrm[]compose\TxtEndinxtrm[]( \Symuns[], \Symuns[], \Symuns[])
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return
the composition of the image with an instance of \tyxffmxmono[]IA\Symuns[]Closure\Symlt[]I,O\Symgt[]%
\tyxffmxendmono[].\newlinetag[]
If the third argument is present it will be the domain of the resultant
composition.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\TabColSpan=7 \def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]\newlinetag[]
CI\Symlt[]P,T\Symgt[]\newlinetag[]
compose(CI\Symlt[]P,T\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]Closure\Symlt[]P,P\Symgt[])\newlinetag[]
\newlinetag[]
CI\Symlt[]P,T\Symgt[]\newlinetag[]
compose(CI\Symlt[]P,T\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]Closure\Symlt[]P,P\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]Set\Symlt[]P\Symgt[])\newlinetag[]
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
compose( \Symuns[], \Symuns[] )\newlinetag[]
\TxtInxtrm[]compose\TxtEndinxtrm[]( \Symuns[], \Symuns[], \Symuns[])
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return
the composition of the image with a function mapping points to points.\newlinetag[]
If the third argument is present it will be the domain of the resultant
composition.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\TabColSpan=7 \def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]CI\Symlt[]P,T\Symgt[]\newlinetag[]
compose( CI\Symlt[]P,T\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]P (*)(const P\Symand[]),\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]Set\Symlt[]P\Symgt[])\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
compose( \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return the composition
of a function mapping values to values with the image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\TabColSpan=7 \def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]CI\Symlt[]P,T\Symgt[]\newlinetag[]
compose( T (*)(T), I\Symlt[]P,T\Symgt[])\newlinetag[]
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
compose( \Symuns[], \Symuns[],
\Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return the composition of a function, with type %
\tyxffmxmono[]double\tyxffmxendmono[](*)\tyxffmxmono[]double%
\tyxffmxendmono[], with either a \tyxffmxmono[]IA\Symuns[]Image\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[] or a \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[] image.\newlinetag[]
The third argument should be \Comp[](const S*)0\Endcomp[].\newlinetag[]
\tyxtstxbf[]Note:\tyxtstxendbf[] This function exist to support the
composition of C/C++ library functions with \tyxffmxmono[]iac++%
\tyxffmxendmono[] image types.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\TabColSpan=7 \def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]CI\Symlt[]P,S\Symgt[]\newlinetag[]
compose( d(*)(d),\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P,T\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]const S*)\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
compose(
\Symuns[], \Symuns[], \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return the composition
of the function with the image.\newlinetag[]
The third argument should be \Comp[](const R*)0\Endcomp[]. \newlinetag[]
The fourth argument should be \Comp[](const S*)0\Endcomp[]\newlinetag[]
\tyxtstxbf[]NOTE\tyxtstxendbf[]: Type T must be convertible to type
S.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\TabColSpan=7 \def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]CI\Symlt[]P,R\Symgt[]\newlinetag[]
compose( R (*)(S),\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P,T\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]const R*,\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]const S*)\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
compose(
\Symuns[], \Symuns[], \Symuns[], \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return the
composition of the function with the image.\newlinetag[]
The third argument should be \Comp[](const Q*)0\Endcomp[]\newlinetag[]
The fourth argument should be \Comp[](const R*)0\Endcomp[]\newlinetag[]
The fifth argument should be \Comp[](const S*)0\Endcomp[].\newlinetag[]
\tyxtstxbf[]NOTE\tyxtstxendbf[]: Type T must convertible to type S,
and type R must be convertible to type Q.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\TabColSpan=7 \def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]CI\Symlt[]P,Q\Symgt[]\newlinetag[]
compose( R (*)(S),\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P,T\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]const Q*,\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]const R*,\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]const S*)\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
compose(
\Symuns[], \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return the composition of an instance
of a closure class and an image.\newlinetag[]
\tyxtstxbf[]NOTE\tyxtstxendbf[]: Type T must convertible to type S,
and type R must be convertible to type Q.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\TabColSpan=7 \def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]CI\Symlt[]P,Q\Symgt[]\newlinetag[]
compose( Closure\Symlt[]S,R\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P,T\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]const Q*)\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
compose(
\Symuns[], \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return the composition of an instance
of a closure class and an image.\newlinetag[]
\tyxtstxbf[]NOTE\tyxtstxendbf[]: Type T must convertible to type S
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\TabColSpan=7 \def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]CI\Symlt[]P,R\Symgt[]\newlinetag[]
compose( Closure\Symlt[]S,R\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P,T\Symgt[])\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]red\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Extract
the red component of the RGB image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\TabColSpan=7 \def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P,Uchar\Symgt[]\newlinetag[]
 red( I\Symlt[]P\Symlt[]i\Symgt[],RGB\Symgt[] )%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]green%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Extract the green component of the RGB
image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\TabColSpan=7 \def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P,Uchar\Symgt[]\newlinetag[]
 green( I\Symlt[]P\Symlt[]i\Symgt[],RGB\Symgt[] )%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]blue%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Extract the blue component of the RGB
image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\TabColSpan=7 \def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P,Uchar\Symgt[]\newlinetag[]
 blue( I\Symlt[]P\Symlt[]i\Symgt[],RGB\Symgt[] )%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Image Input/Output Functions\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{ImageInputOutputFunctions}]Legend:
\tyxffmxmono[]\tyxtszxeight[]P\tyxtszxendeight[]%
\tyxffmxendmono[] any Point type, \tyxffmxmono[]\tyxtszxeight[]%
\mthxgkxtau[]\tyxtszxendeight[]\tyxffmxendmono[] any Type, %
\tyxffmxmono[]\tyxtszxeight[]CI\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]CoreImage\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],Cplx\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]complex\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]d\Symgt[],f\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]d\Symgt[],f\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],RGB\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],Uchar\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]IPIter\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]IPIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]IVIter\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]IVIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\137\\245\\169}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Image Input/Output\newlinetag[]
Function
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Image Input/Output Function Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]read\Symuns[]PBM\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create an
image by reading a Portable Bit Map (PBM) file.\newlinetag[]
The argument is an input stream.\newlinetag[]
\tyxtstxbf[]Note:\tyxtstxendbf[] this is a class static function.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[]
I\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[]::read\Symuns[]PBM(%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]istream\Symand[])\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
read\Symuns[]PBM( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create an image by reading
a Portable Bit Map (PBM) file.\newlinetag[]
The argument is an input file name.\newlinetag[]
\tyxtstxbf[]Note:\tyxtstxendbf[] this is a class static function.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[]
I\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[]::read\Symuns[]PBM(%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]const char*)\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]write\Symuns[]PBM\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Write a Portable
Bit Map representation of the image.\newlinetag[]
The argument is either an output stream or the file name to write
to.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]ostream\Symand[] I\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[].write\Symuns[]PBM(%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]ostream\Symand[])\newlinetag[]
\newlinetag[]
void I\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[].write\Symuns[]PBM(%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]const char*)\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
write\Symuns[]PBM(
\Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Write a Portable Bit Map representation of the image.\newlinetag[]
The argument is either an output stream or the file name to write
to.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]ostream\Symand[] write\Symuns[]PBM(%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[], ostream\Symand[])\newlinetag[]
\newlinetag[]
void write\Symuns[]PBM(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[], const char*)%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\=\\=\\=}\def\TabRuleSave{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]read\Symuns[]PGM%
\TxtEndinxtrm[]( \Symuns[] )\newlinetag[]
read\Symuns[]PGM( \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create an image by reading
a Portable Grey Map (PGM) file.\newlinetag[]
The first argument is an input stream.\newlinetag[]
If the second argument exists, it is the maximum input value to read.\newlinetag[]
\tyxtstxbf[]Note:\tyxtstxendbf[] this is a class static function.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[]
I\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[]::read\Symuns[]PGM(%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]istream\Symand[])\tyxtszxendeight[]%
\tyxffmxendmono[]\newlinetag[]
\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],u\Symuns[]char\Symgt[]
I\Symlt[]P\Symlt[]i\Symgt[],u\Symuns[]char\Symgt[]::read\Symuns[]PGM(%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]istream\Symand[])\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
read\Symuns[]PGM( \Symuns[] )\newlinetag[]
read\Symuns[]PGM( \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create an image by reading
a Portable Grey Map (PGM) file.\newlinetag[]
The first argument is an input file name.\newlinetag[]
If the second argument exists, it is the maximum input value to read.\newlinetag[]
\tyxtstxbf[]Note:\tyxtstxendbf[] this is a class static function.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[]
I\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[]::read\Symuns[]PGM(%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]const char*)\tyxtszxendeight[]\tyxffmxendmono[]\newlinetag[]
\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],u\Symuns[]char\Symgt[]
I\Symlt[]P\Symlt[]i\Symgt[],u\Symuns[]char\Symgt[]::read\Symuns[]PGM(%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]const char*)\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]read\Symuns[]int\Symuns[]PGM\TxtEndinxtrm[]( \Symuns[]
)\newlinetag[]
read\Symuns[]int\Symuns[]PGM( \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create an image
by reading a Portable Gray Map (PGM) file.\newlinetag[]
The first argument is an input stream.\newlinetag[]
The second argument, if it exists, is a pointer to the maximum input
value allowed.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[]
read\Symuns[]int\Symuns[]PGM(istream\Symand[])\newlinetag[]
I\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[] read\Symuns[]int\Symuns[]PGM(istream\Symand[],%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]const i*)\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
read\Symuns[]int\Symuns[]PGM(
\Symuns[] )\newlinetag[]
read\Symuns[]int\Symuns[]PGM( \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create an image
by reading a Portable Gray Map (PGM) file.\newlinetag[]
The first argument is the input file name.\newlinetag[]
The second argument, if it exists, is a pointer to the maximum input
value allowed.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[]
read\Symuns[]int\Symuns[]PGM(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]const char*)\newlinetag[]
I\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[] read\Symuns[]int\Symuns[]PGM(%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]const char*, const i*)\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]read\Symuns[]uchar\Symuns[]PGM%
\TxtEndinxtrm[]( \Symuns[] )\newlinetag[]
read\Symuns[]uchar\Symuns[]PGM( \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create an image
by reading a Portable Gray Map (PGM) file.\newlinetag[]
The first argument is an input stream.\newlinetag[]
The second argument, if it exists, is a pointer to the maximum input
value allowed.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],u\Symuns[]char\Symgt[]
read\Symuns[]int\Symuns[]PGM(istream\Symand[])\newlinetag[]
I\Symlt[]P\Symlt[]i\Symgt[],u\Symuns[]char\Symgt[] read\Symuns[]int\Symuns[]PGM(istream\Symand[],%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]const i*)\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
read\Symuns[]uchar\Symuns[]PGM(
\Symuns[] )\newlinetag[]
read\Symuns[]uchar\Symuns[]PGM( \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create an image
by reading a Portable Gray Map (PGM) file.\newlinetag[]
The first argument is the input file name.\newlinetag[]
The second argument, if it exists, is a pointer to the maximum input
value allowed.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],u\Symuns[]char\Symgt[]
read\Symuns[]int\Symuns[]PGM(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]const char*)\newlinetag[]
I\Symlt[]P\Symlt[]i\Symgt[],u\Symuns[]Char\Symgt[] read\Symuns[]int\Symuns[]PGM(%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]const char*,const i*)\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]write\Symuns[]PGM\TxtEndinxtrm[]( \Symuns[]
)\newlinetag[]
write\Symuns[]PGM( \Symuns[], \Symuns[])
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Write a Portable Grey Map
representation of the image.\newlinetag[]
The first argument is the output stream or the file name to write
to.\newlinetag[]
The second argument, if it exists, is the maximum value that may be
written.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]ostream\Symand[] I\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[].write\Symuns[]PGM(%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]ostream\Symand[])\newlinetag[]
ostream\Symand[] I\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[].write\Symuns[]PGM(%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]ostream\Symand[],u)\newlinetag[]
\newlinetag[]
void I\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[].write\Symuns[]PGM(%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]char*)\newlinetag[]
void I\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[].write\Symuns[]PGM(%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]char*,u)\newlinetag[]
\newlinetag[]
ostream\Symand[] I\Symlt[]P\Symlt[]i\Symgt[],u\Symuns[]char\Symgt[].write\Symuns[]PGM(%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]ostream\Symand[])\newlinetag[]
ostream\Symand[] I\Symlt[]P\Symlt[]i\Symgt[],u\Symuns[]char\Symgt[].write\Symuns[]PGM(%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]ostream\Symand[],u)\newlinetag[]
void I\Symlt[]P\Symlt[]i\Symgt[],u\Symuns[]char\Symgt[].write\Symuns[]PGM(%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]char*)\newlinetag[]
void I\Symlt[]P\Symlt[]i\Symgt[],u\Symuns[]char\Symgt[].write\Symuns[]PGM(%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]char*,u)\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
write\Symuns[]PGM(
\Symuns[], \Symuns[] )\newlinetag[]
write\Symuns[]PGM( \Symuns[], \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Write a Portable
Grey Map representation of the image.\newlinetag[]
First argument is the output image.\newlinetag[]
Second argument, is either the output steam or the file name to write
to.\newlinetag[]
Third argument, if it exists, specifies the maximum value that may
be written.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]ostream\Symand[] write\Symuns[]PGM(%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[],%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]ostream\Symand[])\newlinetag[]
ostream\Symand[] write\Symuns[]PGM(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[],%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]ostream\Symand[],u)\newlinetag[]
\newlinetag[]
void write\Symuns[]PGM(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[],%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]char*)\newlinetag[]
void write\Symuns[]PGM(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[],%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]char*,u)\newlinetag[]
\newlinetag[]
ostream\Symand[] write\Symuns[]PGM(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P\Symlt[]i\Symgt[],u\Symuns[]char\Symgt[],%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]ostream\Symand[])\newlinetag[]
ostream\Symand[] write\Symuns[]PGM(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P\Symlt[]i\Symgt[],u\Symuns[]char\Symgt[],%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]ostream\Symand[],u\Symuns[]char)\newlinetag[]
\newlinetag[]
void write\Symuns[]PGM(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P\Symlt[]i\Symgt[],u\Symuns[]char\Symgt[],%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]char*)\newlinetag[]
void write\Symuns[]PGM(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P\Symlt[]i\Symgt[],u\Symuns[]char\Symgt[],%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]char*,u\Symuns[]char)\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
read\Symuns[]PPM( \Symuns[] )\newlinetag[]
read\Symuns[]PPM( \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create an image by reading
a Portable Pixel Map (PPM) file.\newlinetag[]
The argument is the input stream.\newlinetag[]
The second argument, if it exists, is a pointer to the maximum input
value allowed.\newlinetag[]
\tyxtstxbf[]Note:\tyxtstxendbf[] this is a class static function.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],RGB\Symgt[]
read\Symuns[]PPM(istream\Symand[])\newlinetag[]
I\Symlt[]P\Symlt[]i\Symgt[],RGB\Symgt[] read\Symuns[]PPM(istream\Symand[],i*)%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
read\Symuns[]PPM( \Symuns[] )\newlinetag[]
read\Symuns[]PPM( \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create an image by reading
a Portable Pixel Map (PPM) file.\newlinetag[]
The argument is the input file name.\newlinetag[]
The second argument, if it exists, is a pointer to the maximum input
value allowed.\newlinetag[]
\tyxtstxbf[]Note:\tyxtstxendbf[] this is a class static function.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],RGB\Symgt[]
read\Symuns[]PPM(char*)\newlinetag[]
I\Symlt[]P\Symlt[]i\Symgt[],RGB\Symgt[] read\Symuns[]PPM(char*,i*)%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]write\Symuns[]PPM%
\TxtEndinxtrm[]( \Symuns[] )\newlinetag[]
write\Symuns[]PPM( \Symuns[], \Symuns[])
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Write a Portable Pixel Map
representation of the image.\newlinetag[]
The first argument is the output stream or the file name to write
to.\newlinetag[]
The second argument, if it exists, is the maximum value that may be
written.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]ostream\Symand[] I\Symlt[]P\Symlt[]i\Symgt[],RGB\Symgt[].write\Symuns[]PGM(%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]ostream\Symand[])\newlinetag[]
void I\Symlt[]P\Symlt[]i\Symgt[],RGB\Symgt[].write\Symuns[]PGM(%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]char*)\newlinetag[]
\newlinetag[]
ostream\Symand[] I\Symlt[]P\Symlt[]i\Symgt[],RGB\Symgt[].write\Symuns[]PGM(%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]ostream\Symand[],u)\newlinetag[]
void I\Symlt[]P\Symlt[]i\Symgt[],RGB\Symgt[].write\Symuns[]PGM(%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]char*,u)\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
write\Symuns[]PPM(
\Symuns[], \Symuns[] )\newlinetag[]
write\Symuns[]PPM( \Symuns[], \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Write a Portable
Pixel Map representation of the image.\newlinetag[]
First argument is the image to ouput.\newlinetag[]
Second argument is either the output stream or the file name to write
to.\newlinetag[]
Third argument, if it exists, specifies the maximum value that may
be written.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]ostream\Symand[] write\Symuns[]PGM(%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P\Symlt[]i\Symgt[],RGB\Symgt[],%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]ostream\Symand[])\newlinetag[]
void write\Symuns[]PGM(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P\Symlt[]i\Symgt[],RGB\Symgt[],%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]char*)\newlinetag[]
\newlinetag[]
ostream\Symand[] write\Symuns[]PGM(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P\Symlt[]i\Symgt[],RGB\Symgt[],%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]ostream\Symand[],u)\newlinetag[]
void write\Symuns[]PGM(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P\Symlt[]i\Symgt[],RGB\Symgt[],%
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]char*,u)\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]display\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Display an %
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[] instance.\newlinetag[]
This mechanism utilizes the \Comp[]UNIX shell\Endcomp[] environment
variable \Comp[]IMAGE\Symuns[]DISPLAY\Endcomp[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]pid\Symuns[]t display(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]I\Symlt[]P\Symlt[]i\Symgt[],u\Symuns[]char)%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\Para[]NOTE: Since \Comp[] read\Symuns[]PGM()\Endcomp[] is a %
\tyxtstxit[]\TxtInxtrm[]static\TxtEndinxtrm[]\tyxtstxendit[] member
function available in several classes it is necessary to utilize the
\TxtInxtrm[]scope resolution operator\TxtEndinxtrm[] \Comp[]operator ::%
\Endcomp[] to refer to a particular version of this function. For
an example of usage see \tyxtstxbf[]Appendix \Xref[\def\XrefName{codeExamples}],
section \Xref[\def\XrefName{imageCodeExamples}]\tyxtstxendbf[]. Similar
functions, which have a type name as part of the function name, e.g.
\Comp[] read\Symuns[]int\Symuns[]PGM()\Endcomp[] are also available,
and do not require the scope resolution operator.\Endpara[]
\DivEndiv[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]Image Class Iterators\HdMjEndiii[]
\DivLiv[]\HdMinLiv[]Class Purpose\HdMinEndiv[]
\Para[]Two types of iterators are provided for images, a %
\tyxtstxit[]\TxtInxtrm[]value iterator\TxtEndinxtrm[]%
\tyxtstxendit[], yielding values in the range of the image, and a
\tyxtstxit[]\TxtInxtrm[]pixel iterator\TxtEndinxtrm[]%
\tyxtstxendit[] yielding pairs of values, from the domain and range.
An iterator iterates over the image\rsquo[]s point set in the point
set\rsquo[]s iteration order. If the image\rsquo[]s point set is %
\TxtInxtrm[]extensive\TxtEndinxtrm[], these iterators must exist.
Each time the iterator is invoked it determines if there is a next
point in the point set iteration order, if so the image\rsquo[]s value
at that point is calculated.\Endpara[]
\Para[]Iterators return a status value and if available, the associated
image data. The status value is a boolean value, which indicates if
there was another point in the iteration order of the image\rsquo[]s
pointset. If there was a point then the reference argument(s) to the
iterator are assigned value(s). Value iterators only assign the image
value at the point. Pixel iterators return both the point and the
image value. What discriminates these two types of iterators is whether
they have one or two parameters and thus whether one or two values
are assigned. The classes that describe these iterators are:
\LstList[]
\LstItem[]\tyxffmxmono[]IA\Symuns[]IPIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[]: Image Pixel Iterator.\LstEnditem[]
\LstItem[]\tyxffmxmono[]IA\Symuns[]IVIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[]: Image Value Iterator.\LstEnditem[]
\LstEndlist[]
\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Image Class Iterators Constructors%
\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{DIP&VIterConstructors}]Legend:
\tyxffmxmono[]\tyxtszxeight[]P\tyxtszxendeight[]%
\tyxffmxendmono[] any Point type, \tyxffmxmono[]\tyxtszxeight[]%
\mthxgkxtau[]\tyxtszxendeight[]\tyxffmxendmono[] any Type, %
\tyxffmxmono[]\tyxtszxeight[]CI\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]CoreImage\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],Cplx\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]complex\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]d\Symgt[],f\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]d\Symgt[],f\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],RGB\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],Uchar\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]IPIter\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]IPIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]IVIter\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]IVIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\214\\337}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Image Iterator Constructor
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Constructor Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]%
\tyxffmxmono[]IA\Symuns[]IPIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[]\TxtEndinxtrm[]( )\newlinetag[]
\TxtInxtrm[]\tyxffmxmono[]IA\Symuns[]IVIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[]\TxtEndinxtrm[]( )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create an iterator that is not
bound to an image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]IPIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[]( CI\Symlt[]P,T\Symgt[] )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]IVIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[]( CI\Symlt[]P,T\Symgt[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create an iterator over the
given image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]IPIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[]( IPIter\Symlt[]P,T\Symgt[] )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]IVIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[]( IVIter\Symlt[]P,T\Symgt[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a copy of the
given iterator.\newlinetag[]
\tyxtstxbf[]Note\tyxtstxendbf[]: the copy is in exactly the same state
as the original iterator.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Image Class Iterators Operators\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{DIP&VIterOperators}]Legend: %
\tyxffmxmono[]\tyxtszxeight[]P\tyxtszxendeight[]%
\tyxffmxendmono[] any Point type, \tyxffmxmono[]\tyxtszxeight[]%
\mthxgkxtau[]\tyxtszxendeight[]\tyxffmxendmono[] any Type, %
\tyxffmxmono[]\tyxtszxeight[]CI\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]CoreImage\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],Cplx\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]complex\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]d\Symgt[],f\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]d\Symgt[],f\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],RGB\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],Uchar\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]IPIter\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]IPIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]IVIter\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]IVIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\104\\222\\225}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Image Iterator Member Operator
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Image Iterator Operator Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported
Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator =\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign the left operand
iterator to be the same as the right iterator.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]IPIter\Symlt[]P,T\Symgt[]\Symand[] = IPIter\Symlt[]P,T\Symgt[]\newlinetag[]
IVIter\Symlt[]P,T\Symgt[]\Symand[] = IVIter\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
operator =
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Associate the left operand
iterator with the right operand image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]IPIter\Symlt[]P,T\Symgt[]\Symand[] = CI\Symlt[]P,T\Symgt[]\newlinetag[]
IVIter\Symlt[]P,T\Symgt[]\Symand[] = CI\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\=\\=\\=}\def\TabRuleSave{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator ()%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Evaluate the image for the next image
value based on the iteration order of the image\rsquo[]s point set.\newlinetag[]
Return 1 IFF this value exists, and assign the value to the reference
argument. Return 0 otherwise.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]i IVIter\Symlt[]P,T\Symgt[](T\Symand[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator ()%
\TxtEndinxtrm[]( \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Evaluate the image for the
next image pixel.\newlinetag[]
Return 1 IFF this pixel exists, and assign its point to the first
argument and value to the second argument. Return 0 otherwise.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]i IPIter\Symlt[]P,T\Symgt[](P\Symand[],T\Symand[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Image Class Iterators Member Functions%
\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{DIP&VIterMemberFunctions}]Legend:
\tyxffmxmono[]\tyxtszxeight[]P\tyxtszxendeight[]%
\tyxffmxendmono[] any Point type, \tyxffmxmono[]\tyxtszxeight[]%
\mthxgkxtau[]\tyxtszxendeight[]\tyxffmxendmono[] any Type, %
\tyxffmxmono[]\tyxtszxeight[]CI\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]CoreImage\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],Cplx\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]complex\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]d\Symgt[],f\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]d\Symgt[],f\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],RGB\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],Uchar\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]IPIter\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]IPIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]IVIter\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]IVIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\103\\222\\226}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Image Iterator Member Function
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Image Iterator Member Function Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported
Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]domain\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the image associated
with the iterator.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]CI\Symlt[]P,T\Symgt[]
IPIter\Symlt[]P,T\Symgt[].domain()\newlinetag[]
CI\Symlt[]P,T\Symgt[] IVIter\Symlt[]P,T\Symgt[].domain()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]reset%
\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Reset the iterator to the begining of the iteration
order.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]\tyxffmxmono[]void%
\tyxffmxendmono[] IPIter\Symlt[]P,T\Symgt[].reset()\newlinetag[]
\tyxffmxmono[]void\tyxffmxendmono[] IVIter\Symlt[]P,T\Symgt[].reset()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivEndiii[]
\DivEndii[]
\DivLii[]\HdMjLii[]\tyxffmxmono[]iac++\tyxffmxendmono[] Neighborhood
Classes\HdMjEndii[]
\DivLiii[]\HdMjLiii[]Neighborhood Overview\HdMjEndiii[]
\FgBlock[]
\FgCap[]Class Diagram of the \tyxffmxmono[]iac++\tyxffmxendmono[] Neighborhood
Classes\FgEndcap[]
\PreProcFgGfx\FgGfx[\FgGfxHt=132.00pt \FgGfxWd=414.00pt \def\FgGfxPath{UM-2.2}\def\FgGfxCache{UM-2.2}\FgGfxX=0.00pt \FgGfxY=0.00pt \def\FgGfxProc{None}\def\FgGfxFilename{neighborhood-classes.eps}]
\FgEndblock[]
\Para[]\tyxffmxmono[]iac++\tyxffmxendmono[] neighborhood classes form
the basis for image algebra neighborhoods. Image algebra neighborhoods
are conceptually similar to image algebra templates. A neighborhood
defines a mapping from a point to a point set. While in theory this
point to point set mapping could be from any point type to any point
set type, currently only neighborhoods form \tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\rsquo[]s to \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[]\rsquo[]s are supported.%
\Endpara[]
\Para[]A neighborhood yields point set values, rather than images,
however it is used in a similar fashion as to template, except the
weighting function is nonexistent, or maybe thought of as always being
the identity function. In use an image algebra neighborhood identifies
the image points that are considered in the reduction step of the
general image product operations. Hence neighborhoods are used to
collect and process image values.\Endpara[]
\Para[]The publicly available \tyxffmxmono[]iac++%
\tyxffmxendmono[] image algebra neighborhood classes are:
\LstList[]
\LstItem[]\tyxffmxmono[]IA\Symuns[]Neighborhood\Symlt[]P,Q\Symgt[]%
\tyxffmxendmono[]: A neighborhood defined by a point set.%
\LstEnditem[]
\LstEndlist[]
\Endpara[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]Neighborhood Header Files\HdMjEndiii[]
\Para[]The headers files that are of interest to user of %
\tyxffmxmono[]iac++\tyxffmxendmono[] neighborhood classes are shown
the following figure.\Endpara[]
\FgBlock[]
\FgCap[]Header files for the \tyxffmxmono[]iac++\tyxffmxendmono[] Neighborhood
Classes\FgEndcap[]
\PreProcFgGfx\FgGfx[\FgGfxHt=126.00pt \FgGfxWd=414.00pt \def\FgGfxPath{UM-2.2}\def\FgGfxCache{UM-2.2}\FgGfxX=0.00pt \FgGfxY=0.00pt \def\FgGfxProc{None}\def\FgGfxFilename{neighborhood-headers.eps}]
\FgEndblock[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]Neighborhood Class Interface\HdMjEndiii[]
\DivLiv[]\HdMinLiv[]Neighborhood Constructors\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{NeighborhoodConstructors}]Legend:
\tyxffmxmono[]\tyxtszxeight[]P or Q\tyxtszxendeight[]%
\tyxffmxendmono[] any Point Type, \tyxffmxmono[]\tyxtszxeight[]N\Symlt[]P,Q\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Neighborhood\Symlt[]P,Q\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\298\\253}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Neighborhood Constructor
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Constructor Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]%
\tyxffmxmono[]IA\Symuns[]Neighborhood\Symlt[]P,Q\Symgt[]%
\tyxffmxendmono[]\TxtEndinxtrm[]( u, S\Symlt[]P\Symgt[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Construct
a translation invariant neighborhood of the specified dimension, with
value at the origin given by the point set argument.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]Neighborhood\Symlt[]P,Q\Symgt[]%
\tyxffmxendmono[]( N\Symlt[]P,Q\Symgt[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Construct a copy of the neighborhood.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Neighborhood Operators\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{NeighborhoodOperators}]Legend:
\tyxffmxmono[]\tyxtszxeight[]P or Q\tyxtszxendeight[]%
\tyxffmxendmono[] any Point Type, \tyxffmxmono[]\tyxtszxeight[]N\Symlt[]P,Q\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Neighborhood\Symlt[]P,Q\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\130\\251\\170}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Template Operator
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Operator Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]operator =\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign the left
neighborhood argument to have the same value as the right.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]N\Symlt[]P,Q\Symgt[]\Symand[] = N\Symlt[]P,Q\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator ()%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Evaluate the neighborhood at the point
and return the associated point set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]S\Symlt[]P\Symgt[] N\Symlt[]P,Q\Symgt[](Q)%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Neighborhood Member Operations\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{NeighborhoodMemberOperations}]Legend:
\tyxffmxmono[]\tyxtszxeight[]P or Q\tyxtszxendeight[]%
\tyxffmxendmono[] any Point Type, \tyxffmxmono[]\tyxtszxeight[]N\Symlt[]P,Q\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Neighborhood\Symlt[]P,Q\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\128\\226\\197}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Common Template Member Function
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Member Function Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported
Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]domain\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return the point set which
the neighborhood is defined over.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]S\Symlt[]Q\Symgt[]
N\Symlt[]P,Q\Symgt[].domain()\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Neighborhood Reduction Functions%
\HdMinEndiv[]
\Para[]Each of the \tyxtstxit[]\TxtInxtrm[]image-neighborhood reduction%
\TxtEndinxtrm[]\tyxtstxendit[] functions involves some or all of the
following:
\LstList[]
\LstItem[]An \tyxffmxmono[]iac++\tyxffmxendmono[] image.%
\LstEnditem[]
\LstItem[]An \tyxffmxmono[]iac++\tyxffmxendmono[] neighborhood.%
\LstEnditem[]
\LstItem[]Optionally, an \tyxffmxmono[]iac++\tyxffmxendmono[] point
set, which is the domain of the result of the image\EmDash[]neighborhood
reduction operation. If this argument is missing, then the domain
of the image will be the domain of the result.\LstEnditem[]
\LstItem[]A \TxtInxtrm[]gamma\TxtEndinxtrm[] function which defined
either a point reduction.\LstEnditem[]
\LstItem[]Some additional constants, which define the gamma function
zero, or are used to identify C++ type information for the C++ compiler.%
\LstEnditem[]
\LstEndlist[]
\Endpara[]
\Para[]Calculating the resultant image value at each point in the
point set involves carrying out the operations defined by this equation:
\DispEqn[]
\DmthEqn[]
\Eqalign{&
{\bf c}
\left( {
{\bf x}}
\right) =
{\textstyle 
\RGamma \nolimits }
{\bf a}
\vert {{
{\scriptstyle 
{\scriptscriptstyle 
{\scriptstyle }}}} \atop {
{\scriptstyle N
\left( {
{\bf x}}
\right) }}}\Cr &where:\Cr &
\Gamma 
\; 
\; represents
\; the
\; reduction
\; function\Cr }{3}
\DmthEndeqn[]\EndDispEqn[]
\Endpara[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{NeighborhoodReductionFunctions}]Legend:
\tyxffmxmono[]\tyxtszxeight[]P or Q\tyxtszxendeight[]%
\tyxffmxendmono[] any Point Type, \tyxffmxmono[]\tyxtszxeight[]N\Symlt[]P,Q\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Neighborhood\Symlt[]P,Q\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\144\\212\\196}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Neighborhood Reduction Function
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Reduction Function Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported
Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]neighborhood\Symuns[]reduction%
\TxtEndinxtrm[]( \Symuns[], \Symuns[], \Symuns[], \Symuns[] )\newlinetag[]
\newlinetag[]
neighborhood\Symuns[]reduction( \Symuns[], \Symuns[], \Symuns[], \Symuns[],
\Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxtstxit[]Right image-neighborhood reduction%
\tyxtstxendit[]\newlinetag[]
First argument: Image\newlinetag[]
Second argument: Neighborhood\newlinetag[]
Third argument: Destination point set.\newlinetag[]
\newlinetag[]
The reduction functions either take two image values, or an array
of image values and a count. This function returns the same type as
the value type of the resultant image.\newlinetag[]
\newlinetag[]
A single argument of type \tyxffmxmono[]T\tyxffmxendmono[] should
be the reduction function zero value. In general, if this value is
not specified, the operation is less efficient.\newlinetag[]
\newlinetag[]
A single argument of type \tyxffmxmono[]S*\tyxffmxendmono[], should
be a pointer to any value of type \tyxffmxmono[]S%
\tyxffmxendmono[].\newlinetag[]
\newlinetag[]
Point type \tyxffmxmono[]P\tyxffmxendmono[] is \tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]\tyxtstxit[]Right reduction%
\tyxtstxendit[]\newlinetag[]
I\Symlt[]P,T\Symgt[] neighborhood\Symuns[]reduction(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P,T\Symgt[], N\Symlt[]P,P\Symgt[], S\Symlt[]P\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]T(*)(T,T), T)\newlinetag[]
\newlinetag[]
I\Symlt[]P,T\Symgt[] neighborhood\Symuns[]reduction(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[] CI\Symlt[]P,T\Symgt[], N\Symlt[]P,P\Symgt[], S\Symlt[]P\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[] T(*)(T*,u) )\newlinetag[]
\newlinetag[]
I\Symlt[]P,T\Symgt[] neighborhood\Symuns[]reduction(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P,T\Symgt[], N\Symlt[]P,P\Symgt[], S\Symlt[]P\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]T, T(*)(T*,u) )\newlinetag[]
\newlinetag[]
I\Symlt[]P,S\Symgt[] neighborhood\Symuns[]reduction(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P,T\Symgt[], N\Symlt[]P,P\Symgt[], S\Symlt[]P\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S(*)(T*,u), const S* )\newlinetag[]
\newlinetag[]
I\Symlt[]P,S\Symgt[] neighborhood\Symuns[]reduction(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P,T\Symgt[], N\Symlt[]P,P\Symgt[], S\Symlt[]P\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]T, S(*)(T*,u), const S* )\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]neighborhood\Symuns[]reduction%
\TxtEndinxtrm[]( \Symuns[], \Symuns[], \Symuns[], \Symuns[] )\newlinetag[]
\newlinetag[]
neighborhood\Symuns[]reduction( \Symuns[], \Symuns[], \Symuns[], \Symuns[],
\Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxtstxit[]Left image-neighborhood reduction%
\tyxtstxendit[]\newlinetag[]
First argument: Neighborhood\newlinetag[]
Second argument: Image\newlinetag[]
Third argument: Destination point set.\newlinetag[]
\newlinetag[]
The reduction functions either take two image values, or an array
of image values and a count. This function returns the same type as
the value type of the resultant image.\newlinetag[]
\newlinetag[]
A single argument of type \tyxffmxmono[]T\tyxffmxendmono[] should
be the reduction function zero value. In general, if this value is
not specified, the operation is less efficient.\newlinetag[]
\newlinetag[]
A single argument of type \tyxffmxmono[]S*\tyxffmxendmono[], should
be a pointer to any value of type \tyxffmxmono[]S%
\tyxffmxendmono[].\newlinetag[]
\newlinetag[]
Point type \tyxffmxmono[]P\tyxffmxendmono[] is \tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]\tyxtstxit[]Left reduction%
\tyxtstxendit[]\newlinetag[]
I\Symlt[]P,T\Symgt[] neighborhood\Symuns[]reduction(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]N\Symlt[]P,P\Symgt[], CI\Symlt[]P,T\Symgt[], S\Symlt[]P\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]T(*)(T,T), T)\newlinetag[]
\newlinetag[]
I\Symlt[]P,T\Symgt[] neighborhood\Symuns[]reduction(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]N\Symlt[]P,P\Symgt[], CI\Symlt[]P,T\Symgt[], S\Symlt[]P\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]T(*)(T*,u) )\newlinetag[]
\newlinetag[]
I\Symlt[]P,T\Symgt[] neighborhood\Symuns[]reduction(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]N\Symlt[]P,P\Symgt[], CI\Symlt[]P,T\Symgt[], S\Symlt[]P\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]T, T(*)(T*,u) )\newlinetag[]
\newlinetag[]
I\Symlt[]P,T\Symgt[] neighborhood\Symuns[]reduction(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]N\Symlt[]P,P\Symgt[], CI\Symlt[]P,T\Symgt[], S\Symlt[]P\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S(*)(T*,u), const S*)\newlinetag[]
\newlinetag[]
I\Symlt[]P,T\Symgt[] neighborhood\Symuns[]reduction(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]N\Symlt[]P,P\Symgt[], CI\Symlt[]P,T\Symgt[], S\Symlt[]P\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]T, S(*)(T*,u), const S* )\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]min\TxtEndinxtrm[]( \Symuns[], \Symuns[]
)\newlinetag[]
min( \Symuns[], \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield an \tyxffmxmono[]IA\Symuns[]Image\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[] using the minimum function as the neighborhood reduction
function.\newlinetag[]
\newlinetag[]
Point type \tyxffmxmono[]P\tyxffmxendmono[] is \tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[].\newlinetag[]
\newlinetag[]
Value type \tyxffmxmono[]T\tyxffmxendmono[] is one of: %
\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[], \tyxffmxmono[]float%
\tyxffmxendmono[], \tyxffmxmono[]int\tyxffmxendmono[] ,%
\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]\newlinetag[]
I\Symlt[]P,T\Symgt[] min( CI\Symlt[]P,T\Symgt[], N\Symlt[]P,P\Symgt[]
)\newlinetag[]
I\Symlt[]P,T\Symgt[] min( CI\Symlt[]P,T\Symgt[], N\Symlt[]P,P\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[] )\newlinetag[]
\newlinetag[]
I\Symlt[]P,T\Symgt[] min( N\Symlt[]P,P\Symgt[], CI\Symlt[]P,T\Symgt[]
)\newlinetag[]
I\Symlt[]P,T\Symgt[] min( N\Symlt[]P,P\Symgt[], CI\Symlt[]P,T\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[] )\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]max\TxtEndinxtrm[]( \Symuns[], \Symuns[]
)\newlinetag[]
max( \Symuns[], \Symuns[] , \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield an \tyxffmxmono[]IA\Symuns[]Image\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[] using the maximum function as the neighborhood reduction
function.\newlinetag[]
\newlinetag[]
Point type \tyxffmxmono[]P\tyxffmxendmono[] is \tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[].\newlinetag[]
\newlinetag[]
Value type \tyxffmxmono[]T\tyxffmxendmono[] is one of: %
\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[], \tyxffmxmono[]float%
\tyxffmxendmono[], \tyxffmxmono[]int\tyxffmxendmono[] ,%
\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]\newlinetag[]
I\Symlt[]P,T\Symgt[] max( CI\Symlt[]P,T\Symgt[], N\Symlt[]P,P\Symgt[]
)\newlinetag[]
I\Symlt[]P,T\Symgt[] max( CI\Symlt[]P,T\Symgt[], N\Symlt[]P,P\Symgt[],
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[] )\newlinetag[]
\newlinetag[]
I\Symlt[]P,T\Symgt[] max( N\Symlt[]P,P\Symgt[], CI\Symlt[]P,T\Symgt[]
)\newlinetag[]
I\Symlt[]P,T\Symgt[] max( N\Symlt[]P,P\Symgt[], CI\Symlt[]P,T\Symgt[],
\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[] )\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]product\TxtEndinxtrm[]( \Symuns[], \Symuns[]
)\newlinetag[]
product( \Symuns[], \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield an \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[] using the product function as the neighborhood reduction
function.\newlinetag[]
\newlinetag[]
Point type \tyxffmxmono[]P\tyxffmxendmono[] is \tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[].\newlinetag[]
\newlinetag[]
Value type \tyxffmxmono[]T\tyxffmxendmono[] is one of: %
\tyxffmxmono[]complex\tyxffmxendmono[], \tyxffmxmono[]float%
\tyxffmxendmono[], \tyxffmxmono[]int\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]\newlinetag[]
I\Symlt[]P,T\Symgt[] product( CI\Symlt[]P,T\Symgt[], N\Symlt[]P,P\Symgt[]
)\newlinetag[]
I\Symlt[]P,T\Symgt[] product( CI\Symlt[]P,T\Symgt[], N\Symlt[]P,P\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[] )\newlinetag[]
\newlinetag[]
I\Symlt[]P,T\Symgt[] product( N\Symlt[]P,P\Symgt[], CI\Symlt[]P,T\Symgt[]
)\newlinetag[]
I\Symlt[]P,T\Symgt[] product( N\Symlt[]P,P\Symgt[], CI\Symlt[]P,T\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[] )\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]sum\TxtEndinxtrm[]( \Symuns[], \Symuns[]
)\newlinetag[]
sum( \Symuns[], \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield an \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[] using the sum function as the neighborhood reduction
function.\newlinetag[]
\newlinetag[]
Point type \tyxffmxmono[]P\tyxffmxendmono[] is \tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[].\newlinetag[]
\newlinetag[]
Value type \tyxffmxmono[]T\tyxffmxendmono[] is one of: %
\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[], \tyxffmxmono[]complex%
\tyxffmxendmono[], \tyxffmxmono[]float\tyxffmxendmono[], %
\tyxffmxmono[]int\tyxffmxendmono[], \tyxffmxmono[]u\Symuns[]char%
\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]\newlinetag[]
I\Symlt[]P,T\Symgt[] sum( CI\Symlt[]P,T\Symgt[], N\Symlt[]P,P\Symgt[]
)\newlinetag[]
I\Symlt[]P,T\Symgt[] sum( CI\Symlt[]P,T\Symgt[], N\Symlt[]P,P\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[] )\newlinetag[]
\newlinetag[]
I\Symlt[]P,i\Symgt[] sum( N\Symlt[]P,P\Symgt[], CI\Symlt[]P,T\Symgt[]
)\newlinetag[]
I\Symlt[]P,i\Symgt[] sum( N\Symlt[]P,P\Symgt[], CI\Symlt[]P,T\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[] )\newlinetag[]
\newlinetag[]
I\Symlt[]P,i\Symgt[] sum( N\Symlt[]P,P\Symgt[], CI\Symlt[]P,B\Symgt[]
)\newlinetag[]
I\Symlt[]P,i\Symgt[] sum( N\Symlt[]P,P\Symgt[], CI\Symlt[]P,B\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[] )\newlinetag[]
\newlinetag[]
I\Symlt[]P,i\Symgt[] sum( N\Symlt[]P,P\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P,u\Symuns[]char\Symgt[] )\newlinetag[]
I\Symlt[]P,i\Symgt[] sum( N\Symlt[]P,P\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P,u\Symuns[]char\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[] )\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivEndiii[]
\DivEndii[]
\DivLii[]\HdMjLii[]\tyxffmxmono[]iac++\tyxffmxendmono[] Template Classes%
\HdMjEndii[]
\DivLiii[]\HdMjLiii[]Template Overview\HdMjEndiii[]
\FgBlock[]
\FgCap[]Class Diagram of the \tyxffmxmono[]iac++\tyxffmxendmono[] Template
Classes\FgEndcap[]
\PreProcFgGfx\FgGfx[\FgGfxHt=371.00pt \FgGfxWd=472.00pt \def\FgGfxPath{UM-2.2}\def\FgGfxCache{UM-2.2}\FgGfxX=0.00pt \FgGfxY=0.00pt \def\FgGfxProc{None}\def\FgGfxFilename{template-classes.eps}]
\FgEndblock[]
\Para[]\tyxffmxmono[]iac++\tyxffmxendmono[] template classes form the
basis for image algebra templates. An image algebra template is an
image which has images as its pixel values. Thus the template associates
a point with an image. Both translation variant and translation invariant
templates may be defined, in which the template\rsquo[]s domain is
a \tyxtstxit[]\TxtInxtrm[]discrete point set\TxtEndinxtrm[]%
\tyxtstxendit[] and the domain of the template\rsquo[]s range is also
discrete. The designation \tyxffmxmono[]DDTemplate%
\tyxffmxendmono[] stands for \tyxffmxmono[]Discrete-Discrete-Template%
\tyxffmxendmono[]. The publicly available \tyxffmxmono[]iac++%
\tyxffmxendmono[] image algebra template classes are:
\LstList[]
\LstItem[]\tyxffmxmono[]IA\Symuns[]DDTemplate\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[]: the value of the template
at an \tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[] is an instance of: \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[].\LstEnditem[]
\LstItem[]\tyxffmxmono[]IA\Symuns[]DDTemplate\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]complex\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[]: the value of the template
at an \tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[] is an instance of \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]complex\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[].\LstEnditem[]
\LstItem[]\tyxffmxmono[]IA\Symuns[]DDTemplate\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[]: the value of the template
at an \tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[] is an instance of \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[].\LstEnditem[]
\LstItem[]\tyxffmxmono[]IA\Symuns[]DDTemplate\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[]: the value of the template
at an \tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[] is an instance of \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[].\LstEnditem[]
\LstItem[]\tyxffmxmono[]IA\Symuns[]DDTemplate\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[]: the value of the template
at an \tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[] is an instance of \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[].\LstEnditem[]
\LstEndlist[]
Each of these classes is an instantiation of the C++ template class
\tyxffmxmono[]IA\Symuns[]DDTemplate\Symlt[]I\Symgt[]%
\tyxffmxendmono[]. Instances of these templates have a domain which
is an instance of the class: \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[].\Endpara[]
\Para[]NOTE: In this section, the C++ template type designation %
\tyxffmxmono[]I\tyxffmxendmono[] will be referring to %
\tyxffmxmono[]iac++\tyxffmxendmono[] image class types as defined in
Chapter \Xref[\def\XrefName{ImageChapter}] when used in the definition
of \tyxffmxmono[]iac++\tyxffmxendmono[] template class types.%
\Endpara[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]Template Header Files\HdMjEndiii[]
\Para[]The headers files that are of interest to user of %
\tyxffmxmono[]iac++\tyxffmxendmono[] template classes are shown the
following figure.\Endpara[]
\FgBlock[]
\FgCap[]Header files for the \tyxffmxmono[]iac++\tyxffmxendmono[] Template
Classes\FgEndcap[]
\PreProcFgGfx\FgGfx[\FgGfxHt=342.00pt \FgGfxWd=423.00pt \def\FgGfxPath{UM-2.2}\def\FgGfxCache{UM-2.2}\FgGfxX=0.00pt \FgGfxY=0.00pt \def\FgGfxProc{None}\def\FgGfxFilename{template-headers.eps}]
\FgEndblock[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]Template Class Interface\HdMjEndiii[]
\DivLiv[]\HdMinLiv[]Template Constructors\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{DDTConstructors}]Legend: Type
\tyxffmxmono[]\tyxtszxeight[]P=\tyxtszxendeight[]%
\tyxffmxendmono[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[], Type \tyxffmxmono[]\tyxtszxeight[]T%
\tyxtszxendeight[]\tyxffmxendmono[] one of: \tyxffmxmono[]IA\Symuns[]Bit%
\tyxffmxendmono[], \tyxffmxmono[]complex\tyxffmxendmono[], %
\tyxffmxmono[]float\tyxffmxendmono[], \tyxffmxmono[]int%
\tyxffmxendmono[], \tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[].  Type
\tyxffmxmono[]\tyxtszxeight[]I\tyxtszxendeight[]%
\tyxffmxendmono[] an image type. \tyxffmxmono[]\tyxtszxeight[]DDTmpl\Symlt[]I\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]DDTemplate\Symlt[]I\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]ClosureDT\Symlt[]I\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]ClosureDT\Symlt[]I\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\273\\278}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Template Constructor
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Constructor Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]%
\tyxffmxmono[]IA\Symuns[]DDTemplate\Symlt[]I\Symgt[]%
\tyxffmxendmono[]\TxtEndinxtrm[](  )\newlinetag[]

\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create an empty template of unspecified domain and range.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]DDTemplate\Symlt[]I\Symgt[]%
\tyxffmxendmono[]( DDTmpl\Symlt[]I\Symlt[]P,T\Symgt[]\Symgt[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create
a copy of the argument template.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]DDTemplate\Symlt[]I\Symgt[]%
\tyxffmxendmono[]( S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[], I\Symlt[]P,T\Symgt[]
)
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a translation invariant template.\newlinetag[]
Use the given point set for the domain.\newlinetag[]
Use the given image as the value of the template at the origin in
its domain.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]DDTemplate\Symlt[]I\Symgt[]%
\tyxffmxendmono[]( u, I\Symlt[]P,T\Symgt[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a translation invariant
template.\newlinetag[]
Use the first argument as the dimension of the domain.\newlinetag[]
Use the given image as the value of the template at the origin in
its domain.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]DDTemplate\Symlt[]I\Symgt[]%
\tyxffmxendmono[]( S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]I\Symlt[]P,T\Symgt[](*)(const P\Symlt[]i\Symgt[]\Symand[]
)
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a function defined template.\newlinetag[]
Use the given point set for the domain.\newlinetag[]
Second argument is a function which returns an image when evaluated
at an \tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[].\newlinetag[]
This constructor may be used to create both translation invariant
and translation variant templates.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]DDTemplate\Symlt[]I\Symgt[]%
\tyxffmxendmono[]( S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]ClosureDT\Symlt[]I\Symlt[]P,T\Symgt[]\Symgt[])
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create
a template from a user defined class derived from class %
\tyxffmxmono[]IA\Symuns[]ClosureDT\Symlt[]I\Symgt[]%
\tyxffmxendmono[].\newlinetag[]
Use the given point set for the domain.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Template Operators\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{DDTemplateOperators}]Legend: Type
\tyxffmxmono[]\tyxtszxeight[]P=\tyxtszxendeight[]%
\tyxffmxendmono[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[], Type \tyxffmxmono[]\tyxtszxeight[]T%
\tyxtszxendeight[]\tyxffmxendmono[] one of: \tyxffmxmono[]IA\Symuns[]Bit%
\tyxffmxendmono[], \tyxffmxmono[]complex\tyxffmxendmono[], %
\tyxffmxmono[]float\tyxffmxendmono[], \tyxffmxmono[]int%
\tyxffmxendmono[], \tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[].  Type
\tyxffmxmono[]\tyxtszxeight[]I\tyxtszxendeight[]%
\tyxffmxendmono[] an image type. \tyxffmxmono[]\tyxtszxeight[]DDTmpl\Symlt[]I\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]DDTemplate\Symlt[]I\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]ClosureDT\Symlt[]I\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]ClosureDT\Symlt[]I\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\130\\251\\170}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Template Operator
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Operator Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]operator =\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign a copy of the template.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]DDTmpl\Symlt[]I\Symlt[]P,T\Symgt[]\Symgt[]
=\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]DDTmpl\Symlt[]I\Symlt[]P,T\Symgt[]\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator ()%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Evaluate the template at the point and return the associated
image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P,T\Symgt[]\newlinetag[]
DDTmpl\Symlt[]I\Symlt[]P,T\Symgt[]\Symgt[]( P )%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Template Member Operations\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{DDTemplateMemberOperations}]Legend:
Type \tyxffmxmono[]\tyxtszxeight[]P=\tyxtszxendeight[]%
\tyxffmxendmono[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[], Type \tyxffmxmono[]\tyxtszxeight[]T%
\tyxtszxendeight[]\tyxffmxendmono[] one of: \tyxffmxmono[]IA\Symuns[]Bit%
\tyxffmxendmono[], \tyxffmxmono[]complex\tyxffmxendmono[], %
\tyxffmxmono[]float\tyxffmxendmono[], \tyxffmxmono[]int%
\tyxffmxendmono[], \tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[].  Type
\tyxffmxmono[]\tyxtszxeight[]I\tyxtszxendeight[]%
\tyxffmxendmono[] an image type. \tyxffmxmono[]\tyxtszxeight[]DDTmpl\Symlt[]I\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]DDTemplate\Symlt[]I\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]ClosureDT\Symlt[]I\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]ClosureDT\Symlt[]I\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\128\\226\\197}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Common Template Member Function
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Member Function Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported
Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]domain\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return a point set which
is the domain of the template.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[]
DDTmpl\Symlt[]I\Symgt[].domain()\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Template Product Functions\HdMinEndiv[]
\Para[]Each of the \tyxtstxit[]\TxtInxtrm[]image-template product%
\TxtEndinxtrm[]\tyxtstxendit[] functions involves either two or three
objects:
\LstList[]
\LstItem[]An \tyxffmxmono[]iac++\tyxffmxendmono[] image.%
\LstEnditem[]
\LstItem[]An \tyxffmxmono[]iac++\tyxffmxendmono[] template.%
\LstEnditem[]
\LstItem[]Optionally, an \tyxffmxmono[]iac++\tyxffmxendmono[] point
set, which is the domain of the result of the image-template production
operation. If this argument is missing, then the domain of the image
will be the domain of the result.\LstEnditem[]
\LstEndlist[]
\Endpara[]
\Para[]Calculating the resultant image value at each point in the
point set involves carrying out the operations defined by this equation:
\DispEqn[]
\DmthEqn[]
\Eqalign{&
{\bf c}
\left( {
{\bf x}}
\right) =
\RGamma \nolimits 
\left( {
{\bf a}
\bigcirc 
{\bf t}
\left( {
{\bf x}}
\right) }
\right) \Cr &where:\Cr &
\bigcirc 
\; represents
\; the
\; weighting
\; function\Cr &
\Gamma 
\; 
\; represents
\; the
\; reduction
\; function\Cr }{4}
\DmthEndeqn[]\EndDispEqn[]
\Endpara[]
\Para[] The template operations below define the weighting and reduction
functions that are used in the template operation.\Endpara[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{DDTFriendFunctions}]Legend: Type
\tyxffmxmono[]\tyxtszxeight[]P=\tyxtszxendeight[]%
\tyxffmxendmono[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[], Type \tyxffmxmono[]\tyxtszxeight[]T%
\tyxtszxendeight[]\tyxffmxendmono[] one of: \tyxffmxmono[]complex%
\tyxffmxendmono[], \tyxffmxmono[]float\tyxffmxendmono[], %
\tyxffmxmono[]int\tyxffmxendmono[], \tyxffmxmono[]u\Symuns[]char%
\tyxffmxendmono[].  Type \tyxffmxmono[]\tyxtszxeight[]I%
\tyxtszxendeight[]\tyxffmxendmono[] an image type. %
\tyxffmxmono[]\tyxtszxeight[]DDTmpl\Symlt[]I\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]DDTemplate\Symlt[]I\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]ClosureDT\Symlt[]I\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]ClosureDT\Symlt[]I\Symgt[]%
\tyxffmxendmono[]\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\131\\226\\194}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Template Function
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Function Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]linear\Symuns[]product\TxtEndinxtrm[]( \Symuns[], \Symuns[]
)\newlinetag[]
linear\Symuns[]product( \Symuns[], \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxtstxit[]Right \TxtInxtrm[]image-template product%
\TxtEndinxtrm[]\tyxtstxendit[]\newlinetag[]
First argument: Image\newlinetag[]
Second argument: Template\newlinetag[]
\newlinetag[]
\tyxtstxit[]Left image-template product\tyxtstxendit[]\newlinetag[]
First argument: Template\newlinetag[]
Second argument: Image\newlinetag[]
\newlinetag[]
Third argument: If present it is used as the destination point set,
defaults to the domain of the first argument.\newlinetag[]
\newlinetag[]
Weighting function: multiplication\newlinetag[]
Reduction function: addition
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]%
\tyxtstxit[]Right product\tyxtstxendit[]\newlinetag[]
I\Symlt[]P,T\Symgt[] linear\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P,T\Symgt[],DDTmpl\Symlt[]I\Symlt[]P,T\Symgt[]\Symgt[])\newlinetag[]
I\Symlt[]P,T\Symgt[] linear\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P,T\Symgt[], DDTmpl\Symlt[]I\Symlt[]P,T\Symgt[]\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[])\tyxtszxendeight[]\newlinetag[]
\newlinetag[]
\tyxffmxendmono[]\tyxffmxmono[]\tyxtszxeight[]\tyxtstxit[]Left product%
\tyxtstxendit[]\newlinetag[]
I\Symlt[]P,T\Symgt[] linear\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]DDTmpl\Symlt[]I\Symlt[]P,T\Symgt[]\Symgt[], CI\Symlt[]P,T\Symgt[])\newlinetag[]
I\Symlt[]P,T\Symgt[] linear\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]DDTmpl\Symlt[]I\Symlt[]P,T\Symgt[]\Symgt[], CI\Symlt[]P,T\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[])\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]addmax\Symuns[]product%
\TxtEndinxtrm[]( \Symuns[], \Symuns[] )\newlinetag[]
addmax\Symuns[]product( \Symuns[], \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxtstxit[]Right image-template product\tyxtstxendit[]\newlinetag[]
First argument: Image\newlinetag[]
Second argument: Template\newlinetag[]
\newlinetag[]
\tyxtstxit[]Left image-template product\tyxtstxendit[]\newlinetag[]
First argument: Template\newlinetag[]
Second argument: Image\newlinetag[]
\newlinetag[]
Third argument: If present it is used as the destination point set,
defaults to the domain of the image argument.\newlinetag[]
\newlinetag[]
Weighting function: addition\newlinetag[]
Reduction function: maximum\newlinetag[]
\newlinetag[]
\tyxtstxbf[]Note: \tyxtstxendbf[] type \tyxffmxmono[]T%
\tyxffmxendmono[] chosen from: \tyxffmxmono[]float%
\tyxffmxendmono[], \tyxffmxmono[]int\tyxffmxendmono[], %
\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]\tyxtstxit[]Right product\tyxtstxendit[]\newlinetag[]
I\Symlt[]P,T\Symgt[] addmax\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P,T\Symgt[], DDTmpl\Symlt[]I\Symlt[]P,T\Symgt[]\Symgt[])\newlinetag[]
I\Symlt[]P,T\Symgt[] addmax\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P,T\Symgt[], DDTmpl\Symlt[]I\Symlt[]P,T\Symgt[]\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[])\tyxtszxendeight[]\newlinetag[]
\newlinetag[]
\tyxffmxendmono[]\tyxffmxmono[]\tyxtszxeight[]\tyxtstxit[]Left product%
\tyxtstxendit[]\newlinetag[]
I\Symlt[]P,T\Symgt[] addmax\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]DDTmpl\Symlt[]I\Symlt[]P,T\Symgt[]\Symgt[], CI\Symlt[]P,T\Symgt[])\newlinetag[]
I\Symlt[]P,T\Symgt[] addmax\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]DDTmpl\Symlt[]I\Symlt[]P,T\Symgt[]\Symgt[], CI\Symlt[]P,T\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[])\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]addmin\Symuns[]product%
\TxtEndinxtrm[]( \Symuns[], \Symuns[] )\newlinetag[]
addmin\Symuns[]product( \Symuns[], \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxtstxit[]Right image-template product\tyxtstxendit[]\newlinetag[]
First argument: Image\newlinetag[]
Second argument: Template\newlinetag[]
\newlinetag[]
\tyxtstxit[]Left image-template product\tyxtstxendit[]\newlinetag[]
First argument: Template\newlinetag[]
Second argument: Image\newlinetag[]
\newlinetag[]
Third argument: If present it is used as the destination point set,
defaults to the domain of the image argument.\newlinetag[]
\newlinetag[]
Weighting function: addition\newlinetag[]
Reduction function: minimum\newlinetag[]
\newlinetag[]
\tyxtstxbf[]Note: \tyxtstxendbf[] type \tyxffmxmono[]T%
\tyxffmxendmono[] chosen from: \tyxffmxmono[]float%
\tyxffmxendmono[], \tyxffmxmono[]int\tyxffmxendmono[], %
\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]\tyxtstxit[]Right product\tyxtstxendit[]\newlinetag[]
I\Symlt[]P,T\Symgt[] addmin\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P,T\Symgt[], DDTmpl\Symlt[]I\Symlt[]P,T\Symgt[]\Symgt[])\newlinetag[]
I\Symlt[]P,T\Symgt[] addmin\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P,T\Symgt[], DDTmpl\Symlt[]I\Symlt[]P,T\Symgt[]\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[])\tyxtszxendeight[]\newlinetag[]
\newlinetag[]
\tyxffmxendmono[]\tyxffmxmono[]\tyxtszxeight[]\tyxtstxit[]Left product%
\tyxtstxendit[]\newlinetag[]
I\Symlt[]P,T\Symgt[] addmin\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]DDTmpl\Symlt[]I\Symlt[]P,T\Symgt[]\Symgt[], CI\Symlt[]P,T\Symgt[])\newlinetag[]
I\Symlt[]P,T\Symgt[] addmin\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]DDTmpl\Symlt[]I\Symlt[]P,T\Symgt[]\Symgt[], CI\Symlt[]P,T\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[])\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]mulmax\Symuns[]product%
\TxtEndinxtrm[]( \Symuns[], \Symuns[] )\newlinetag[]
mulmax\Symuns[]product( \Symuns[], \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxtstxit[]Right image-template product\tyxtstxendit[]\newlinetag[]
First argument: Image\newlinetag[]
Second argument: Template\newlinetag[]
\newlinetag[]
\tyxtstxit[]Left image-template product\tyxtstxendit[]\newlinetag[]
First argument: Template\newlinetag[]
Second argument: Image\newlinetag[]
\newlinetag[]
Third argument: If present it is used as the destination point set,
defaults to the domain of the image argument.\newlinetag[]
\newlinetag[]
Weighting function: multiplication\newlinetag[]
Reduction function: maximum\newlinetag[]
\newlinetag[]
\tyxtstxbf[]Note: \tyxtstxendbf[] type \tyxffmxmono[]T%
\tyxffmxendmono[] chosen from: \tyxffmxmono[]float%
\tyxffmxendmono[], \tyxffmxmono[]int\tyxffmxendmono[], %
\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]\tyxtstxit[]Right product\tyxtstxendit[]\newlinetag[]
I\Symlt[]P,T\Symgt[] mulmax\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P,T\Symgt[], DDTmpl\Symlt[]I\Symlt[]P,T\Symgt[]\Symgt[])\newlinetag[]
I\Symlt[]P,T\Symgt[] mulmax\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P,T\Symgt[], DDTmpl\Symlt[]I\Symlt[]P,T\Symgt[]\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[])\tyxtszxendeight[]\newlinetag[]
\newlinetag[]
\tyxffmxendmono[]\tyxffmxmono[]\tyxtszxeight[]\tyxtstxit[]Left product%
\tyxtstxendit[]\newlinetag[]
I\Symlt[]P,T\Symgt[] mulmax\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]DDTmpl\Symlt[]I\Symlt[]P,T\Symgt[]\Symgt[], CI\Symlt[]P,T\Symgt[])\newlinetag[]
I\Symlt[]P,T\Symgt[] mulmax\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]DDTmpl\Symlt[]I\Symlt[]P,T\Symgt[]\Symgt[], CI\Symlt[]P,T\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[])\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]mulmin\Symuns[]product%
\TxtEndinxtrm[]( \Symuns[], \Symuns[] )\newlinetag[]
mulmin\Symuns[]product( \Symuns[], \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxtstxit[]Right image-template product\tyxtstxendit[]\newlinetag[]
First argument: Image\newlinetag[]
Second argument: Template\newlinetag[]
\newlinetag[]
\tyxtstxit[]Left image-template product\tyxtstxendit[]\newlinetag[]
First argument: Template\newlinetag[]
Second argument: Image\newlinetag[]
\newlinetag[]
Third argument: If present it is used as the destination point set,
defaults to the domain of the image argument.\newlinetag[]
\newlinetag[]
Weighting function: multiplication\newlinetag[]
Reduction function: minimum\newlinetag[]
\newlinetag[]
\tyxtstxbf[]Note: \tyxtstxendbf[] type \tyxffmxmono[]T%
\tyxffmxendmono[] chosen from: \tyxffmxmono[]float%
\tyxffmxendmono[], \tyxffmxmono[]int\tyxffmxendmono[], %
\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]\tyxtstxit[]Right product\tyxtstxendit[]\newlinetag[]
I\Symlt[]P,T\Symgt[] mulmin\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P,T\Symgt[], DDTmpl\Symlt[]I\Symlt[]P,T\Symgt[]\Symgt[])\newlinetag[]
I\Symlt[]P,T\Symgt[] mulmin\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P,T\Symgt[], DDTmpl\Symlt[]I\Symlt[]P,T\Symgt[]\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[])\tyxtszxendeight[]\newlinetag[]
\newlinetag[]
\tyxffmxendmono[]\tyxffmxmono[]\tyxtszxeight[]\tyxtstxit[]Left product%
\tyxtstxendit[]\newlinetag[]
I\Symlt[]P,T\Symgt[] mulmin\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]DDTmpl\Symlt[]I\Symlt[]P,T\Symgt[]\Symgt[], CI\Symlt[]P,T\Symgt[])\newlinetag[]
I\Symlt[]P,T\Symgt[] mulmin\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]DDTmpl\Symlt[]I\Symlt[]P,T\Symgt[]\Symgt[], CI\Symlt[]P,T\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[])\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\=\\=\\=}\def\TabRuleSave{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]generic\Symuns[]product%
\TxtEndinxtrm[]( \Symuns[], \Symuns[], \Symuns[], \Symuns[], \Symuns[],
\Symuns[], \Symuns[] )\newlinetag[]
\newlinetag[]
generic\Symuns[]product( \Symuns[], \Symuns[], \Symuns[], \Symuns[],
\Symuns[], \Symuns[], \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxtstxit[]Right %
\TxtInxtrm[]image-template product\TxtEndinxtrm[]\tyxtstxendit[]\newlinetag[]
First argument: Image\newlinetag[]
Second argument: Template\newlinetag[]
\newlinetag[]
\tyxtstxit[]Left image-template product\tyxtstxendit[]\newlinetag[]
First argument: Template\newlinetag[]
Second argument: Image\newlinetag[]
\newlinetag[]
Third argument: Is used as the destination point set.\newlinetag[]
\newlinetag[]
Weighting function: circle\newlinetag[]
Reduction function: gamma\newlinetag[]
\newlinetag[]
This version of the generic product uses a pairwise point reduciton
function, gamma, and the gamma\Symuns[]zero value to yield the final
image pixel value.\newlinetag[]
\newlinetag[]
\tyxffmxmono[]const S*\tyxffmxendmono[] may point to any value of
type \tyxffmxmono[]S\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]\tyxtstxit[]Right product\tyxtstxendit[]\newlinetag[]
I\Symlt[]P,T\Symgt[] general\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P,T\Symgt[], DDTmpl\Symlt[]I\Symlt[]P,T\Symgt[]\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]T(*circle)(T,T),\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]T(*gamma)(T,T),\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]T gamma\Symuns[]zero,\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]T ring\Symuns[]zero)\newlinetag[]
\newlinetag[]
I\Symlt[]P,R\Symgt[] general\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P,T\Symgt[], DDTmpl\Symlt[]I\Symlt[]P,S\Symgt[]\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]R(*circle)(T,S),\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]R(*gamma)(R,R),\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]R gamma\Symuns[]zero,\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]T ring\Symuns[]zero,\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]const S*)\tyxtszxendeight[]\tyxffmxendmono[]\newlinetag[]
\newlinetag[]
\tyxffmxmono[]\tyxtszxeight[]\tyxtstxit[]Left product%
\tyxtstxendit[]\newlinetag[]
I\Symlt[]P,T\Symgt[] general\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]DDTmpl\Symlt[]I\Symlt[]P,T\Symgt[]\Symgt[], CI\Symlt[]P,T\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]T(*circle)(T,T),\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]T(*gamma)(T,T),\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]T gamma\Symuns[]zero,\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]T ring\Symuns[]zero)\newlinetag[]
\newlinetag[]
I\Symlt[]P,R\Symgt[] general\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]DDTmpl\Symlt[]I\Symlt[]P,S\Symgt[]\Symgt[], CI\Symlt[]P,T\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]R(*circle)(T,S),\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]R(*gamma)(R,R),\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]R gamma\Symuns[]zero,\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]T ring\Symuns[]zero,\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]const S*)\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]generic\Symuns[]product\TxtEndinxtrm[]( \Symuns[], \Symuns[],
\Symuns[], \Symuns[], \Symuns[], \Symuns[], \Symuns[] )\newlinetag[]
\newlinetag[]
generic\Symuns[]product( \Symuns[], \Symuns[], \Symuns[], \Symuns[],
\Symuns[], \Symuns[], \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxtstxit[]Right %
\TxtInxtrm[]image-template product\TxtEndinxtrm[]\tyxtstxendit[]\newlinetag[]
First argument: Image\newlinetag[]
Second argument: Template\newlinetag[]
\newlinetag[]
Third argument: Is used as the destination point set.\newlinetag[]
\newlinetag[]
Weighting function: circle\newlinetag[]
Reduction function: gamma\newlinetag[]
\newlinetag[]
This version of the generic product uses a vector point reduction
function, gamma, and the gamma\Symuns[]zero value to yield the final
image pixel value.\newlinetag[]
\newlinetag[]
\tyxffmxmono[]const Q*\tyxffmxendmono[] may point to any value of
type \tyxffmxmono[]Q\tyxffmxendmono[].\newlinetag[]
\tyxffmxmono[]const R*\tyxffmxendmono[] may point to any value of
type \tyxffmxmono[]R\tyxffmxendmono[].\newlinetag[]
\tyxffmxmono[]const S*\tyxffmxendmono[] may point to any value of
type \tyxffmxmono[]S\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]\tyxtstxit[]Right product\tyxtstxendit[]\newlinetag[]
I\Symlt[]P,T\Symgt[] general\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P,T\Symgt[], DDTmpl\Symlt[]I\Symlt[]P,T\Symgt[]\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]T(*circle)(T,T),\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]T(*gamma)(T*,u),\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]T ring\Symuns[]zero)\newlinetag[]
\newlinetag[]
I\Symlt[]P,Q\Symgt[] general\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P,T\Symgt[], DDTmpl\Symlt[]I\Symlt[]P,S\Symgt[]\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]R(*circle)(T,S),\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]Q(*gamma)(R*,u),\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]T ring\Symuns[]zero,\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]const Q*,\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]const R*,\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]const S*)\newlinetag[]
\newlinetag[]
I\Symlt[]P,T\Symgt[] general\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P,T\Symgt[], DDTmpl\Symlt[]I\Symlt[]P,T\Symgt[]\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]T(*circle)(T,T),\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]T(*gamma)(T*,u))\newlinetag[]
\newlinetag[]
I\Symlt[]P,Q\Symgt[] general\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P,T\Symgt[], DDTmpl\Symlt[]I\Symlt[]P,S\Symgt[]\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]R(*circle)(T,S),\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]Q(*gamma)(R*,u),\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]const Q*,\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]const R*,\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]const S*)\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]generic\Symuns[]product\TxtEndinxtrm[]( \Symuns[], \Symuns[],
\Symuns[], \Symuns[], \Symuns[], \Symuns[], \Symuns[] )\newlinetag[]
\newlinetag[]
generic\Symuns[]product( \Symuns[], \Symuns[], \Symuns[], \Symuns[],
\Symuns[], \Symuns[], \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxtstxit[]Left image-template
product\tyxtstxendit[]\newlinetag[]
First argument: Template\newlinetag[]
Second argument: Image\newlinetag[]
\newlinetag[]
Third argument: Is used as the destination point set.\newlinetag[]
\newlinetag[]
Weighting function: circle\newlinetag[]
Reduction function: gamma\newlinetag[]
\newlinetag[]
This version of the generic product uses a vector point reduction
function, gamma, and the gamma\Symuns[]zero value to yield the final
image pixel value.\newlinetag[]
\newlinetag[]
\tyxffmxmono[]const Q*\tyxffmxendmono[] may point to any value of
type \tyxffmxmono[]Q\tyxffmxendmono[].\newlinetag[]
\tyxffmxmono[]const R*\tyxffmxendmono[] may point to any value of
type \tyxffmxmono[]R\tyxffmxendmono[].\newlinetag[]
\tyxffmxmono[]const S*\tyxffmxendmono[] may point to any value of
type \tyxffmxmono[]S\tyxffmxendmono[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]\tyxtstxit[]left product\tyxtstxendit[]\newlinetag[]
I\Symlt[]P,T\Symgt[] general\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]DDTmpl\Symlt[]I\Symlt[]P,T\Symgt[]\Symgt[], CI\Symlt[]P,T\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]T(*circle)(T,T),\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]T(*gamma)(T*,u),\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]T ring\Symuns[]zero)\newlinetag[]
\newlinetag[]
I\Symlt[]P,Q\Symgt[] general\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]DDTmpl\Symlt[]I\Symlt[]P,S\Symgt[]\Symgt[], CI\Symlt[]P,T\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]R(*circle)(T,S),\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]Q(*gamma)(R*,u),\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]T ring\Symuns[]zero,\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]const Q*,\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]const R*,\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]const S*)\newlinetag[]
\newlinetag[]
I\Symlt[]P,T\Symgt[] general\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]DDTmpl\Symlt[]I\Symlt[]P,T\Symgt[]\Symgt[], CI\Symlt[]P,T\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]T(*circle)(T,T),\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]T(*gamma)(T*,u))\newlinetag[]
\newlinetag[]
I\Symlt[]P,Q\Symgt[] general\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]DDTmpl\Symlt[]I\Symlt[]P,S\Symgt[]\Symgt[], CI\Symlt[]P,T\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]R(*circle)(T,S),\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]Q(*gamma)(R*,u),\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]const Q*,\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]const R*,\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]const S*)\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]hit\Symuns[]miss\TxtEndinxtrm[]( \Symuns[], \Symuns[]
)\newlinetag[]
hit\Symuns[]miss( \Symuns[], \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxtstxit[]Right
image-template product\tyxtstxendit[]\newlinetag[]
First argument: Image\newlinetag[]
Second argument: Template\newlinetag[]
\newlinetag[]
\tyxtstxit[]Left image-template product\tyxtstxendit[]\newlinetag[]
First argument: Template\newlinetag[]
Second argument: Image\newlinetag[]
\newlinetag[]
Third argument: If present it is used as the destination point set,
if missing defaults to the domain of the first argument.\newlinetag[]
\newlinetag[]
Weighting function: equals(==)\newlinetag[]
Reduction function: AND(\Symand[]\Symand[])
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]\tyxtstxit[]Right product\tyxtstxendit[]\newlinetag[]
I\Symlt[]P,B\Symgt[] hit\Symuns[]miss(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P,B\Symgt[], DDTmpl\Symlt[]I\Symlt[]P,B\Symgt[]\Symgt[])\newlinetag[]
I\Symlt[]P,B\Symgt[] hit\Symuns[]miss(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]CI\Symlt[]P,B\Symgt[], DDTmpl\Symlt[]I\Symlt[]P,B\Symgt[]\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[])\tyxtszxendeight[]%
\tyxffmxendmono[]\newlinetag[]
\newlinetag[]
\tyxffmxmono[]\tyxtszxeight[]\tyxtstxit[]Left product%
\tyxtstxendit[]\newlinetag[]
I\Symlt[]P,B\Symgt[] hit\Symuns[]miss(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]DDTmpl\Symlt[]I\Symlt[]P,B\Symgt[]\Symgt[], CI\Symlt[]P,B\Symgt[])\newlinetag[]
I\Symlt[]P,B\Symgt[] hit\Symuns[]miss(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]DDTmpl\Symlt[]I\Symlt[]P,B\Symgt[]\Symgt[], CI\Symlt[]P,B\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[])\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]max\TxtEndinxtrm[]( \Symuns[], \Symuns[],
\Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield an image which represents the maximum of images defined
by the template.\newlinetag[]
The first argument is the set of points over which to evaluate the
template.\newlinetag[]
Second argument is the template to maximize.\newlinetag[]
Third argument is the domain of the result image.\newlinetag[]
That is, all images determined by the template when applied over the
first argument point set are restricted to the third argument point
set and maximized together.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P,f\Symgt[]
max(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[], DDTmpl\Symlt[]I\Symlt[]P,f\Symgt[]\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[])\newlinetag[]
\newlinetag[]
I\Symlt[]P,i\Symgt[] max(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[], DDTmpl\Symlt[]I\Symlt[]P,i\Symgt[]\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[])\newlinetag[]
\newlinetag[]
I\Symlt[]P,u\Symuns[]char\Symgt[] max(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[], DDTmpl\Symlt[]I\Symlt[]P,u\Symuns[]char\Symgt[]\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[])\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]min\TxtEndinxtrm[]( \Symuns[], \Symuns[],
\Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield an image which represents the minimum of images defined
by the template.\newlinetag[]
The first argument is the set of points over which to evaluate the
template.\newlinetag[]
Second argument is the template to minimize.\newlinetag[]
Third argument is the domain of the result image.\newlinetag[]
That is, all images determined by the template when applied over the
first argument point set are restricted to the third argument point
set and minimized together.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P,f\Symgt[]
min(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[], DDTmpl\Symlt[]I\Symlt[]P,f\Symgt[]\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[])\newlinetag[]
\newlinetag[]
I\Symlt[]P,i\Symgt[] min(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[], DDTmpl\Symlt[]I\Symlt[]P,i\Symgt[]\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[])\newlinetag[]
\newlinetag[]
I\Symlt[]P,u\Symuns[]char\Symgt[] min(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[], DDTmpl\Symlt[]I\Symlt[]P,u\Symuns[]char\Symgt[]\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[])\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]sum\TxtEndinxtrm[]( \Symuns[], \Symuns[],
\Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield an image which represents the sum of images defined
by the template.\newlinetag[]
The first argument is the set of points over which to evaluate the
template.\newlinetag[]
Second argument is the template to sum.\newlinetag[]
Third argument is the domain of the result image.\newlinetag[]
That is, all images determined by the template when applied over the
first argument point set are restricted to the third argument point
set and summed together.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P,Cplx\Symgt[]
sum(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[], DDTmpl\Symlt[]I\Symlt[]P,Cplx\Symgt[]\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[])\newlinetag[]
\newlinetag[]
I\Symlt[]P,f\Symgt[] sum(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[], DDTmpl\Symlt[]I\Symlt[]P,f\Symgt[]\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[])\newlinetag[]
\newlinetag[]
I\Symlt[]P,i\Symgt[] sum(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[], DDTmpl\Symlt[]I\Symlt[]P,i\Symgt[]\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[])\newlinetag[]
\newlinetag[]
I\Symlt[]P,i\Symgt[] sum(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[], DDTmpl\Symlt[]I\Symlt[]P,u\Symuns[]char\Symgt[]\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[])\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
linear\Symuns[]product( \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxtstxit[]\TxtInxtrm[]template-template product\TxtEndinxtrm[]%
\tyxtstxendit[]\newlinetag[]
First argument: Template\newlinetag[]
Second argument: Template\newlinetag[]
\newlinetag[]
Yield the linear\Symuns[]product of the two templates.\newlinetag[]
Using the resultant template with an image should be equivalent to
applying the two argument templates in succession to an image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]\newlinetag[]
DDTmpl\Symlt[]I\Symlt[]P,Cplx\Symgt[]\Symgt[] linear\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]DDTmpl\Symlt[]I\Symlt[]P,Cplx\Symgt[]\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]DDTmpl\Symlt[]I\Symlt[]P,Cplx\Symgt[]\Symgt[])\newlinetag[]
\newlinetag[]
DDTmpl\Symlt[]I\Symlt[]P,i\Symgt[]\Symgt[] linear\Symuns[]product(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]DDTmpl\Symlt[]I\Symlt[]P,i\Symgt[]\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]DDTmpl\Symlt[]I\Symlt[]P,i\Symgt[]\Symgt[],\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]S\Symlt[]P\Symgt[])\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator +\TxtEndinxtrm[]( \Symuns[],
\Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
First argument: Template\newlinetag[]
Second argument: Template\newlinetag[]
\newlinetag[]
Yield the pointwise sum of the two templates.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]\newlinetag[]
DDTmpl\Symlt[]I\Symlt[]P,i\Symgt[]\Symgt[] DDTmpl\Symlt[]I\Symlt[]P,i\Symgt[]\Symgt[])\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]+ DDTmpl\Symlt[]I\Symlt[]P,i\Symgt[]\Symgt[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]max%
\TxtEndinxtrm[]( \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
First argument: Template\newlinetag[]
Second argument: Template\newlinetag[]
\newlinetag[]
Yield the pointwise max of the two templates.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]\newlinetag[]
DDTmpl\Symlt[]I\Symlt[]P,i\Symgt[]\Symgt[] max(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]DDTmpl\Symlt[]I\Symlt[]P,i\Symgt[]\Symgt[]),\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]DDTmpl\Symlt[]I\Symlt[]P,i\Symgt[]\Symgt[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]min%
\TxtEndinxtrm[]( \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
First argument: Template\newlinetag[]
Second argument: Template\newlinetag[]
\newlinetag[]
Yield the pointwise max of the two templates.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]\newlinetag[]
DDTmpl\Symlt[]I\Symlt[]P,i\Symgt[]\Symgt[] min(\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]DDTmpl\Symlt[]I\Symlt[]P,i\Symgt[]\Symgt[]),\newlinetag[]
\tyxffmxmono[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]\tyxsp[]%
\tyxffmxendmono[]DDTmpl\Symlt[]I\Symlt[]P,i\Symgt[]\Symgt[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivEndiii[]
\DivEndii[]
\DivLii[\def\DivLiiId{ClosureChapter}]\HdMjLii[]Closure Classes%
\HdMjEndii[]
\DivLiii[]\HdMjLiii[]Closures\HdMjEndiii[]
\Para[]A \tyxtstxit[]\TxtInxtrm[]closure\TxtEndinxtrm[]%
\tyxtstxendit[] is a function together with some data. The %
\tyxffmxmono[]iac++\tyxffmxendmono[] class library utilizes closure
classes as a standard way for users to extend the library. By %
\tyxtstxit[]\TxtInxtrm[]deriving\TxtEndinxtrm[]\tyxtstxendit[] user
defined classes from closure classes it is possible to encapsulate
the library user\rsquo[]s function and data representation in a way
that is transparent to the \tyxffmxmono[]iac++\tyxffmxendmono[] class
library.\Endpara[]
\Para[]A closure is often used to define a family of related functions.
Consider, for example, the family of all functions \InlEqn[]\LmthEqn[]rot{{} \atop {
\theta }}
\LmthEndeqn[]%
\EndInlEqn[] which rotate point arguments about the origin by some
value \InlEqn[]\LmthEqn[]
\theta 
\LmthEndeqn[]\EndInlEqn[]. You can consider \InlEqn[]\LmthEqn[]
\theta 
\LmthEndeqn[]%
\EndInlEqn[] to be a datum which is stored with the function %
\tyxtstxit[]rot\tyxtstxendit[] to form an appropriate closure class.
In the case of the \tyxffmxmono[]iac++\tyxffmxendmono[] class library,
a derived class would be defined with a constructor that accepts a
value for \InlEqn[]\LmthEqn[]
\theta 
\LmthEndeqn[]\EndInlEqn[], which would be saved. When the closure
object is evaluated at some point, the stored value of \InlEqn[]\LmthEqn[]
\theta 
\LmthEndeqn[]%
\EndInlEqn[] would then be available for computation of the new point
value.\Endpara[]
\Para[]In the following sections we discuss the closure classes that
exist in version \tyxffmxmono[]2.2\tyxffmxendmono[] of the %
\tyxffmxmono[]iac++\tyxffmxendmono[] class library. Some examples of
closure class usage are provided in \tyxtstxbf[]Appendix \Xref[\def\XrefName{codeExamples}]%
\tyxtstxendbf[].\Endpara[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]General Usage Notes\HdMjEndiii[]
\Para[]Each of the closure classes provided by the \tyxffmxmono[]iac++%
\tyxffmxendmono[] class library is incomplete. The following two functions
are pure virtual member functions of the closure class and %
\tyxtstxbf[]must\tyxtstxendbf[] be defined in the derived class:
\LstList[]
\LstItem[]\tyxffmxmono[]\tyxtstxit[]closure-class-name%
\tyxtstxendit[] * \TxtInxtrm[]clone\Symuns[]self\TxtEndinxtrm[]()
const\tyxffmxendmono[] which constructs a copy of the derived class
instance in heap memory by invoking the \TxtInxtrm[]copy constructor%
\TxtEndinxtrm[] of the user defined class \tyxtstxit[]derived-class-name%
\tyxtstxendit[], based on the current object. This function returns
a pointer to the copy. It is usually sufficient to define this function
as: \Comp[]
\tyxtstxit[]    closure-class-name\tyxtstxendit[] * clone\Symuns[]self() const \Symlbr[]
        return new \tyxtstxit[]derived-class-name\tyxtstxendit[]( *this );\Symrbr[]%
\Endcomp[]\LstEnditem[]
\LstItem[]\tyxffmxmono[]\tyxtstxit[]closure\EmDash[]parameter-type%
\tyxtstxendit[] \TxtInxtrm[]operator ()\TxtEndinxtrm[](const %
\tyxtstxit[]argument-type\tyxtstxendit[] \Symand[] ) const%
\tyxffmxendmono[] which maps an input value to an output value. This
is the primary mechanism for evaluating any closure object.%
\LstEnditem[]
\LstEndlist[]
\Endpara[]
\Para[]It is permissible to define additional members in the derived
class. Thus, in addition to the mandatory functions described above,
it is often the case that any or all of the following may also be
defined in a user defined class, derived from one of the %
\tyxffmxmono[]iac++\tyxffmxendmono[] class library closure classes:
\LstList[]
\LstItem[]\tyxffmxmono[]\tyxtstxit[]derived-class-name%
\tyxtstxendit[]( \tyxtstxit[]argument-list\tyxtstxendit[] )%
\tyxffmxendmono[] this defines a constructor for the derived class.
If no constructor is provided by the user, then a default constructor
is provided by \tyxffmxmono[]C++\tyxffmxendmono[]. It is permissible
to define more than one constructor for a class.\LstEnditem[]
\LstItem[]\tyxffmxmono[]\tyxtstxit[]derived-class-name%
\tyxtstxendit[]( const \tyxtstxit[]derived-class-name%
\tyxtstxendit[] \Symand[] )\tyxffmxendmono[] this defines the %
\TxtInxtrm[]copy constructor\TxtEndinxtrm[] for the derived class.
If no copy constructor is provided by the user, then a default copy
constructor is provided by \tyxffmxmono[]C++\tyxffmxendmono[]. Usually
the default copy constructor is sufficient, unless the derived class
allocates memory or other non-sharable resources, in which case a
user defined copy constructor is essential.\LstEnditem[]
\LstItem[]\tyxffmxmono[]\Symnot[]\tyxtstxit[]derived-class-name%
\tyxtstxendit[]( )\tyxffmxendmono[] this defines the %
\TxtInxtrm[]destructor\TxtEndinxtrm[] for the derived class. This
is only necessary if the derived class allocates memory or other non-sharable
resources.\LstEnditem[]
\LstItem[]\tyxffmxmono[]\tyxtstxit[]function-member%
\tyxtstxendit[]( \tyxtstxit[]argument-list\tyxtstxendit[] )%
\tyxffmxendmono[] these are user defined functions of the derived
class. Note that \tyxffmxmono[]\tyxtstxit[]argument-list%
\tyxtstxendit[]\tyxffmxendmono[] may be empty.\LstEnditem[]
\LstItem[]\tyxffmxmono[]\tyxtstxit[]data-member\tyxtstxendit[]%
\tyxffmxendmono[] these are the instance variables of the derived
class.\LstEnditem[]
\LstEndlist[]
The interested reader is encouraged to refer to \Cit[\def\citrefpostpunc{,
\sectionxsign[]12.1\Symrbk[]}\def\CitId{ellis90}]\Endcit[] for an
in-depth discussion of base and derived classes in \tyxffmxmono[]C++%
\tyxffmxendmono[].\Endpara[]
\Para[]\tyxtstxbf[]NOTE:\tyxtstxendbf[] With the exception of class
\tyxffmxmono[]IA\Symuns[]Closure\Symlt[]I,O\Symgt[]%
\tyxffmxendmono[], derived classes of \tyxffmxmono[]iac++%
\tyxffmxendmono[] class library closure classes must be initialized
whenever an instance of a derived class is created. %
\tyxffmxmono[]iac++\tyxffmxendmono[] class library closure classes
that require initialization are documented by inclusion of a constructor
table for the base closure class. \tyxtstxbf[]Constructors in derived
classes must initalize the base class object by invoking the documented
base class constructor.\tyxtstxendbf[]\Endpara[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]Function closure class \tyxffmxmono[]IA\Symuns[]Closure\Symlt[]I,O\Symgt[]%
\tyxffmxendmono[]\HdMjEndiii[]
\DivLiv[]\HdMinLiv[]Class Purpose\HdMinEndiv[]
\Para[]\tyxffmxmono[]IA\Symuns[]Closure\Symlt[]I,O\Symgt[]%
\tyxffmxendmono[] is an abstract class that may be used as a base class
for user defined representations of functions of a single argument.
The user defines such a representation by creating a derived class
of \tyxffmxmono[]IA\Symuns[]Closure\Symlt[]I,O\Symgt[]%
\tyxffmxendmono[]. The advantage of such a class is that by defining
a standard interface, the \tyxffmxmono[]iac++\tyxffmxendmono[] class
library does not have to contain all possible function signatures
in its interface, the closure interface is sufficient.\Endpara[]
\Para[]Derived classes of \tyxffmxmono[]IA\Symuns[]Closure\Symlt[]I,O\Symgt[]%
\tyxffmxendmono[] define functions in the sense that they encapsulate
how to convert the input value type to a potentially different output
value type. The class \tyxffmxmono[]IA\Symuns[]Closure\Symlt[]I,O\Symgt[]%
\tyxffmxendmono[] provides two virtual functions to support this extension
of the \tyxffmxmono[]iac++\tyxffmxendmono[] class library, namely:
\LstList[]
\LstItem[]\tyxffmxmono[]\TxtInxtrm[]clone\Symuns[]self%
\TxtEndinxtrm[]() const\tyxffmxendmono[] which constructs a copy of
the closure, and\LstEnditem[]
\LstItem[]\tyxffmxmono[]\TxtInxtrm[]operator ()\TxtEndinxtrm[]( const
I \Symand[] ) const\tyxffmxendmono[] which maps an input value of
type \tyxffmxmono[]I\tyxffmxendmono[] to an output value of type %
\tyxffmxmono[]0\tyxffmxendmono[].\LstEnditem[]
\LstEndlist[]
These functions must be defined in any class derived from class %
\tyxffmxmono[]IA\Symuns[]Closure\Symlt[]I,O\Symgt[]%
\tyxffmxendmono[]. In addition to the required functions, the user
may provide: 
\LstList[]
\LstItem[]Data members, to store information necessary for later computation.%
\LstEnditem[]
\LstItem[]Additional constructors, to allow proper initialization
of instances.\LstEnditem[]
\LstItem[]Any other desired operators, member functions or friends
necessary to represent the user defined derived class.%
\LstEnditem[]
\LstEndlist[]
\Endpara[]
\Para[]See \tyxtstxbf[]Appendix \Xref[\def\XrefName{codeExamples}],
Image Example \Xref[\def\XrefName{image-example-05}]%
\tyxtstxendbf[] for an example of usage.\Endpara[]
\DivEndiv[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]Point Set closure class \tyxffmxmono[]IA\Symuns[]ClosurePS\Symlt[]T\Symgt[]%
\tyxffmxendmono[]\HdMjEndiii[]
\DivLiv[]\HdMinLiv[]Class Purpose\HdMinEndiv[]
\Para[]\tyxffmxmono[]IA\Symuns[]ClosurePS\Symlt[]T\Symgt[]%
\tyxffmxendmono[] is an abstract class that may be used to create user
defined representations of point sets. The user defines such a representation
by creating a derived class of \tyxffmxmono[]IA\Symuns[]ClosurePS\Symlt[]T\Symgt[]%
\tyxffmxendmono[].\Endpara[]
\Para[]Derived classes of \tyxffmxmono[]IA\Symuns[]ClosurePS\Symlt[]T\Symgt[]%
\tyxffmxendmono[] define new point set representations, distinct from
those already presented in the \tyxffmxmono[]iac++%
\tyxffmxendmono[] class library. The class \tyxffmxmono[]IA\Symuns[]ClosurePS\Symlt[]T\Symgt[]%
\tyxffmxendmono[] provides two virtual functions to support the extension
of the \tyxffmxmono[]iac++\tyxffmxendmono[] class library, namely:
\LstList[]
\LstItem[]\tyxffmxmono[]\TxtInxtrm[]clone\Symuns[]self%
\TxtEndinxtrm[]() const\tyxffmxendmono[] which constructs a copy of
the point set, and\LstEnditem[]
\LstItem[]\tyxffmxmono[]\TxtInxtrm[]contains\TxtEndinxtrm[](const
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[] \Symand[]) const\tyxffmxendmono[] which determines
set membership of the point argument.\LstEnditem[]
\LstEndlist[]
These functions must be defined in any class derived from class %
\tyxffmxmono[]IA\Symuns[]ClosurePS\Symlt[]T\Symgt[]%
\tyxffmxendmono[]. In addition to the required functions, the user
may provide: 
\LstList[]
\LstItem[]Data members, to store information necessary for later computation.%
\LstEnditem[]
\LstItem[]Additional constructors, to allow proper initialization
of instances.\LstEnditem[]
\LstItem[]Any other desired operators, member functions or friends
necessary to represent the user defined derived class.%
\LstEnditem[]
\LstEndlist[]
\Endpara[]
\Para[]See \tyxtstxbf[]Appendix \Xref[\def\XrefName{codeExamples}],
Point Set Example \Xref[\def\XrefName{pointset-example-05}]%
\tyxtstxendbf[] for an example of usage.\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]\tyxffmxmono[]IA\Symuns[]ClosurePS\Symlt[]T\Symgt[]%
\tyxffmxendmono[] Point Set Constructors\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{ClosurePSConstructors}]Legend:
\tyxffmxmono[]\tyxtszxeight[]S\Symlt[]T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Set\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[], \tyxffmxmono[]%
\tyxtszxeight[]S\Symlt[]P\Symlt[]d\Symgt[]\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[], \tyxffmxmono[]%
\tyxtszxeight[]PSIter\Symlt[]T\Symgt[]\tyxtszxendeight[]%
\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]PSIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]ClosurePS\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxtszxendeight[]\tyxffmxendmono[] %
\tyxffmxmono[]IA\Symuns[]ClosurePS\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxtstxbf[]\tyxtszxeight[]NYI%
\tyxtszxendeight[]\tyxtstxendbf[] \tyxffmxmono[]Not Yet Implemented%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\212\\339}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]ClosurePS\Symlt[]T\Symgt[]%
\tyxffmxendmono[] Point Set Constructor
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]%
\tyxffmxmono[]IA\Symuns[]ClosurePS\Symlt[]\mthxgkxtau[]\Symgt[]%
\tyxffmxendmono[]\TxtEndinxtrm[]( u )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a point set of the indicated
dimension.\newlinetag[]
NOTE: Instances of class \tyxffmxmono[]IA\Symuns[]ClosurePS\Symlt[]T\Symgt[]%
\tyxffmxendmono[] can not be created, only instances of user defined
classes derived from this class.\newlinetag[]
\tyxtstxbf[]This constructor must be included in the initialization
of every user defined derived class constructor.\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]\tyxffmxmono[]IA\Symuns[]ClosurePS\Symlt[]T\Symgt[]%
\tyxffmxendmono[] Point Set Member Functions\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{ClosurePSMemberFunctions}]Legend:
\tyxffmxmono[]\tyxtszxeight[]S\Symlt[]T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Set\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[], \tyxffmxmono[]%
\tyxtszxeight[]S\Symlt[]P\Symlt[]d\Symgt[]\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[], \tyxffmxmono[]%
\tyxtszxeight[]PSIter\Symlt[]T\Symgt[]\tyxtszxendeight[]%
\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]PSIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]ClosurePS\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxtszxendeight[]\tyxffmxendmono[] %
\tyxffmxmono[]IA\Symuns[]ClosurePS\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxtstxbf[]\tyxtszxeight[]NYI%
\tyxtszxendeight[]\tyxtstxendbf[] \tyxffmxmono[]Not Yet Implemented%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\130\\221\\200}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]ClosurePS\Symlt[]T\Symgt[]%
\tyxffmxendmono[] Member Function
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Member Function Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported
Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]equal\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True IFF the
two point sets are really the same point set.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]i ClosurePS\Symlt[]T\Symgt[].equal(S\Symlt[]P\Symgt[]*)%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]extensive%
\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True IFF the point set is extensive.\newlinetag[]
\tyxtstxbf[]Default value always returns false.\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]i ClosurePS\Symlt[]T\Symgt[].extensive()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]output%
\TxtEndinxtrm[]( \Symuns[] )\newlinetag[]
output( \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Output a representation of the point
set on the stream.\newlinetag[]
If the second argument is present, indent the output by that amount.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]\tyxffmxmono[]void\tyxffmxendmono[] ClosurePS\Symlt[]T\Symgt[].output(ostream\Symand[])\newlinetag[]
\tyxffmxmono[]void\tyxffmxendmono[] ClosurePS\Symlt[]T\Symgt[].output(ostream\Symand[],u)%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\=\\=\\=}\def\TabRuleSave{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]clone\Symuns[]self%
\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxtstxbf[]Must be defined by the user in a derived
class.\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]ClosurePS\Symlt[]T\Symgt[]*
ClosurePS\Symlt[]T\Symgt[].clone\Symuns[]self()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]contains%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxtstxbf[]Must be defined by the user
in a derived class.\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]i ClosurePS\Symlt[]T\Symgt[].contains(P\Symlt[]i\Symgt[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]Image closure class \tyxffmxmono[]IA\Symuns[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[]\HdMjEndiii[]
\DivLiv[]\HdMinLiv[]Class Purpose\HdMinEndiv[]
\Para[]\tyxffmxmono[]IA\Symuns[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[] is an abstract class that may be used as a base class
for user defined representations of images. The user defines such
a representation by creating a derived class of \tyxffmxmono[]IA\Symuns[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[].\Endpara[]
\Para[]Derived classes of \tyxffmxmono[]IA\Symuns[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[] define images in the sense that they encapsulate
how to convert a point to a value. The class \tyxffmxmono[]IA\Symuns[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[] provides two virtual functions to support this extension
of the \tyxffmxmono[]iac++\tyxffmxendmono[] class library, namely:
\LstList[]
\LstItem[]\tyxffmxmono[]\TxtInxtrm[]clone\Symuns[]self%
\TxtEndinxtrm[]() const\tyxffmxendmono[] which constructs a copy of
the closure, and\LstEnditem[]
\LstItem[]\tyxffmxmono[]\TxtInxtrm[]operator ()\TxtEndinxtrm[]( const
P \Symand[] ) const\tyxffmxendmono[] which maps a point of type %
\tyxffmxmono[]P\tyxffmxendmono[] to a value of type %
\tyxffmxmono[]T\tyxffmxendmono[].\LstEnditem[]
\LstEndlist[]
These functions must be defined in any class derived from class %
\tyxffmxmono[]IA\Symuns[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[]. In addition to the required functions, the user
may provide: 
\LstList[]
\LstItem[]Data members, to store information necessary for later computation.%
\LstEnditem[]
\LstItem[]Additional constructors, to allow proper initialization
of instances.\LstEnditem[]
\LstItem[]Any other desired operators, member functions or friends
necessary to represent the user defined derived class.%
\LstEnditem[]
\LstEndlist[]
\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]\tyxffmxmono[]IA\Symuns[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[] Image Constructors\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{ClosureIConstructors}]Legend:
\tyxffmxmono[]\tyxtszxeight[]P\tyxtszxendeight[]%
\tyxffmxendmono[] any Point type, \tyxffmxmono[]\tyxtszxeight[]%
\mthxgkxtau[]\tyxtszxendeight[]\tyxffmxendmono[] any Type, %
\tyxffmxmono[]\tyxtszxeight[]CI\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]CoreImage\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],Cplx\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]complex\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]d\Symgt[],f\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]d\Symgt[],f\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],RGB\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],Uchar\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]IPIter\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]IPIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]IVIter\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]IVIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\212\\339}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[] Image Constructor
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]%
\tyxffmxmono[]IA\Symuns[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[]\TxtEndinxtrm[]( Set\Symlt[]P\Symgt[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a user
defined image over the given point set.\newlinetag[]
\newlinetag[]
NOTE: An instance of this class is never created, only instances of
user defined derived classes.\newlinetag[]
\tyxtstxbf[]This constructor must be included in the initialization
of every user defined derived class constructor.\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]\tyxffmxmono[]IA\Symuns[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[] Image Member Operators\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{ClosureIOperators}]Legend: %
\tyxffmxmono[]\tyxtszxeight[]P\tyxtszxendeight[]%
\tyxffmxendmono[] any Point type, \tyxffmxmono[]\tyxtszxeight[]%
\mthxgkxtau[]\tyxtszxendeight[]\tyxffmxendmono[] any Type, %
\tyxffmxmono[]\tyxtszxeight[]CI\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]CoreImage\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],Cplx\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]complex\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]d\Symgt[],f\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]d\Symgt[],f\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],RGB\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],Uchar\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]IPIter\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]IPIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]IVIter\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]IVIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\130\\223\\198}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[] Image Member Operator
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Operator Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported
Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator ()\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Evaluate
the image at the given point.\newlinetag[]
\tyxtstxbf[]User must define in the derived class.%
\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]T ClosureI\Symlt[]P,T\Symgt[](P)%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\=\\=\\=}\def\TabRuleSave{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symlbk[]\Symrbk[]%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return a reference to the image\rsquo[]s pixel value
at the given point.\newlinetag[]
\tyxtstxbf[]User must define in the derived class if the class is
to be extensive.\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]T\Symand[]
ClosureI\Symlt[]P,T\Symgt[]\Symlbk[]P\Symrbk[]\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]\tyxffmxmono[]IA\Symuns[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[] Image Member Functions\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{OtherDIMemberFunctions}]Legend:
\tyxffmxmono[]\tyxtszxeight[]P\tyxtszxendeight[]%
\tyxffmxendmono[] any Point type, \tyxffmxmono[]\tyxtszxeight[]%
\mthxgkxtau[]\tyxtszxendeight[]\tyxffmxendmono[] any Type, %
\tyxffmxmono[]\tyxtszxeight[]CI\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]CoreImage\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],B\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],Cplx\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]complex\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]d\Symgt[],f\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]d\Symgt[],f\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],i\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],RGB\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]\tyxtszxeight[]I\Symlt[]P\Symlt[]i\Symgt[],Uchar\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]IPIter\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]IPIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]IVIter\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]IVIter\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\133\\221\\197}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[] Image Member Function
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
User Defined Member Function
Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]extensive%
\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True IFF the point set is extensive.\newlinetag[]
\tyxtstxbf[]Default value always returns false.\newlinetag[]
Must be redefined by the user in the derived class if the class is
to be extensive.\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]i ClosureI\Symlt[]P,T\Symgt[].extensive()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]clone\Symuns[]self%
\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxtstxbf[]Must be defined by the user in the derived
class.\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]ClosureI\Symlt[]P,T\Symgt[]*
ClosureI\Symlt[]P,T\Symgt[].clone\Symuns[]self()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\=\\=\\=}\def\TabRuleSave{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]print\Symuns[]this%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxtstxbf[]Recommended that this be redefined
by the user in the derived class.\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]ostream\Symand[] ClosureI\Symlt[]P,T\Symgt[].print\Symuns[]this(ostream\Symand[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]Template closure class \tyxffmxmono[]IA\Symuns[]ClosureDT\Symlt[]I\Symgt[]%
\tyxffmxendmono[]\HdMjEndiii[]
\DivLiv[]\HdMinLiv[]Class Purpose\HdMinEndiv[]
\Para[]\tyxffmxmono[]IA\Symuns[]ClosureDT\Symlt[]I\Symgt[]%
\tyxffmxendmono[] is an abstract class that may be used as a base class
for user defined representations of image templates. The user defines
such a representation by creating a derived class of %
\tyxffmxmono[]IA\Symuns[]ClosureDT\Symlt[]I\Symgt[]%
\tyxffmxendmono[].\Endpara[]
\Para[]Derived classes of \tyxffmxmono[]IA\Symuns[]ClosureDT\Symlt[]I\Symgt[]%
\tyxffmxendmono[] define templates in the sense that they encapsulate
how to convert a point to an image value. The class %
\tyxffmxmono[]IA\Symuns[]ClosureDT\Symlt[]I\Symgt[]%
\tyxffmxendmono[] provides two virtual functions to support this extension
of the \tyxffmxmono[]iac++\tyxffmxendmono[] class library, namely:
\LstList[]
\LstItem[]\tyxffmxmono[]\TxtInxtrm[]clone\Symuns[]self%
\TxtEndinxtrm[]() const\tyxffmxendmono[] which constructs a copy of
the closure, and\LstEnditem[]
\LstItem[]\tyxffmxmono[]\TxtInxtrm[]operator ()\TxtEndinxtrm[]( const
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[] \Symand[] ) const\tyxffmxendmono[] which maps a point
of type \tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[] to an image value of type \tyxffmxmono[]I%
\tyxffmxendmono[].\LstEnditem[]
\LstEndlist[]
These functions must be defined in any class derived from class %
\tyxffmxmono[]IA\Symuns[]ClosureDT\Symlt[]I\Symgt[]%
\tyxffmxendmono[]. In addition to the required functions, the user
may provide: 
\LstList[]
\LstItem[]Data members, to store information necessary for later computation.%
\LstEnditem[]
\LstItem[]Additional constructors, to allow proper initialization
of instances.\LstEnditem[]
\LstItem[]Any other desired operators, member functions or friends
necessary to represent the user defined derived class.%
\LstEnditem[]
\LstEndlist[]
\Endpara[]
\Para[]See \tyxtstxbf[]Appendix \Xref[\def\XrefName{codeExamples}],
Template Example \Xref[\def\XrefName{template-example-03}]%
\tyxtstxendbf[] and \tyxtstxbf[]Template Example \Xref[\def\XrefName{template-example-04}]%
\tyxtstxendbf[] for examples of usage.\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]\tyxffmxmono[]IA\Symuns[]ClosureDT\Symlt[]I\Symgt[]%
\tyxffmxendmono[] Template Constructors\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{ClosureDTConstructors}]Legend:
Type \tyxffmxmono[]\tyxtszxeight[]P=\tyxtszxendeight[]%
\tyxffmxendmono[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[], Type \tyxffmxmono[]\tyxtszxeight[]T%
\tyxtszxendeight[]\tyxffmxendmono[] one of: \tyxffmxmono[]IA\Symuns[]Bit%
\tyxffmxendmono[], \tyxffmxmono[]complex\tyxffmxendmono[], %
\tyxffmxmono[]float\tyxffmxendmono[], \tyxffmxmono[]int%
\tyxffmxendmono[], \tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[].  Type
\tyxffmxmono[]\tyxtszxeight[]I\tyxtszxendeight[]%
\tyxffmxendmono[] an image type. \tyxffmxmono[]\tyxtszxeight[]DDTmpl\Symlt[]I\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]DDTemplate\Symlt[]I\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]ClosureDT\Symlt[]I\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]ClosureDT\Symlt[]I\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\214\\337}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]ClosureDT\Symlt[]I\Symgt[]%
\tyxffmxendmono[] Template Constructor
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]%
\tyxffmxmono[]IA\Symuns[]ClosureDT\Symlt[]I\Symgt[]%
\tyxffmxendmono[]\TxtEndinxtrm[]( S\Symlt[]P\Symlt[]i\Symgt[]\Symgt[]
)
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a user defined template over the given point set.\newlinetag[]
NOTE: The template parameter \tyxffmxmono[]\Symlt[]I\Symgt[]%
\tyxffmxendmono[] will be an \tyxffmxmono[]iac++\tyxffmxendmono[] image
type.\newlinetag[]
\tyxtstxbf[]This constructor must be included in the initialization
of every user defined derived class constructor.\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]\tyxffmxmono[]IA\Symuns[]ClosureDT\Symlt[]I\Symgt[]%
\tyxffmxendmono[] Template Member Operators\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{ClosureDTOperators}]Legend: Type
\tyxffmxmono[]\tyxtszxeight[]P=\tyxtszxendeight[]%
\tyxffmxendmono[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[], Type \tyxffmxmono[]\tyxtszxeight[]T%
\tyxtszxendeight[]\tyxffmxendmono[] one of: \tyxffmxmono[]IA\Symuns[]Bit%
\tyxffmxendmono[], \tyxffmxmono[]complex\tyxffmxendmono[], %
\tyxffmxmono[]float\tyxffmxendmono[], \tyxffmxmono[]int%
\tyxffmxendmono[], \tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[].  Type
\tyxffmxmono[]\tyxtszxeight[]I\tyxtszxendeight[]%
\tyxffmxendmono[] an image type. \tyxffmxmono[]\tyxtszxeight[]DDTmpl\Symlt[]I\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]DDTemplate\Symlt[]I\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]ClosureDT\Symlt[]I\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]ClosureDT\Symlt[]I\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\130\\221\\200}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]ClosureDT\Symlt[]I\Symgt[]%
\tyxffmxendmono[] Template Member Operator
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Operator Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported
Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator ()\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Evaluate
the template at the given point. Return an image which is the value
of the tempate at the point.\newlinetag[]
\tyxtstxbf[]Must be defined in the derived class.\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]I ClosureDT\Symlt[]I\Symgt[](P\Symlt[]i\Symgt[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]\tyxffmxmono[]IA\Symuns[]ClosureDT\Symlt[]I\Symgt[]%
\tyxffmxendmono[] Template Member Functions\HdMinEndiv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{ClosureDTMemberFunctions}]Legend:
Type \tyxffmxmono[]\tyxtszxeight[]P=\tyxtszxendeight[]%
\tyxffmxendmono[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[], Type \tyxffmxmono[]\tyxtszxeight[]T%
\tyxtszxendeight[]\tyxffmxendmono[] one of: \tyxffmxmono[]IA\Symuns[]Bit%
\tyxffmxendmono[], \tyxffmxmono[]complex\tyxffmxendmono[], %
\tyxffmxmono[]float\tyxffmxendmono[], \tyxffmxmono[]int%
\tyxffmxendmono[], \tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[].  Type
\tyxffmxmono[]\tyxtszxeight[]I\tyxtszxendeight[]%
\tyxffmxendmono[] an image type. \tyxffmxmono[]\tyxtszxeight[]DDTmpl\Symlt[]I\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]DDTemplate\Symlt[]I\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]ClosureDT\Symlt[]I\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]ClosureDT\Symlt[]I\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\131\\223\\197}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]ClosureDT\Symlt[]I\Symgt[]%
\tyxffmxendmono[] Template Member Function
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Member Function Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported
Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]clone\Symuns[]self\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxtstxbf[]Must be defined in the derived class.\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]ClosureDT\Symlt[]T\Symgt[]* ClosureDT\Symlt[]T\Symgt[].clone\Symuns[]self()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\=\\=\\=}\def\TabRuleSave{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]print\Symuns[]this%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxtstxbf[]Recommended that this be redefined
in the derived class.\tyxtstxendbf[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]ostream\Symand[] ClosureDT\Symlt[]T\Symgt[].print\Symuns[]this(ostream\Symand[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivEndiii[]
\DivEndii[]
\DivLii[]\HdMjLii[]\tyxffmxmono[]iac++\tyxffmxendmono[] Supplemental
Classes\HdMjEndii[]
\DivLiii[]\HdMjLiii[]Class \TxtInxtrm[]\tyxffmxmono[]IA%
\tyxffmxendmono[]\TxtEndinxtrm[]\HdMjEndiii[]
\Para[]This class defines enumerations, static variables, and static
functions utilized by the \tyxffmxmono[]iac++\tyxffmxendmono[] class
library.\Endpara[]
\DivLiv[]\HdMinLiv[]\tyxffmxmono[]void \TxtInxtrm[]%
\tyxffmxmono[]ia\Symuns[]throw\tyxffmxendmono[]\TxtEndinxtrm[]( IA::Error,
char*, int)\tyxffmxendmono[]\HdMinEndiv[]
\Para[]\tyxffmxmono[]IA::ia\Symuns[]throw()\tyxffmxendmono[] is the
general error function for the \tyxffmxmono[]iac++%
\tyxffmxendmono[] image algebra class library. When invoked it reports
the text associated with the indicated error and the C++ file and
line that the function was invoked from.\Endpara[]
\Para[]\tyxffmxmono[]IA::ia\Symuns[]throw()\tyxffmxendmono[] can return
to the point of invocation provided that \tyxffmxmono[]IA::abort\Symuns[]on\Symuns[]throw%
\tyxffmxendmono[] has value \tyxffmxmono[]0\tyxffmxendmono[], otherwise
the program aborts.\Endpara[]
\Para[]\tyxtstxbf[]The default behavior of \tyxffmxmono[]IA::ia\Symuns[]throw()%
\tyxffmxendmono[] is to abort.\tyxtstxendbf[].\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]static int \TxtInxtrm[]\tyxffmxmono[]IA::abort\Symuns[]on\Symuns[]throw%
\tyxffmxendmono[]\TxtEndinxtrm[]\HdMinEndiv[]
\Para[]The value of \tyxffmxmono[]IA::abort\Symuns[]on\Symuns[]throw%
\tyxffmxendmono[] determines the return behavior of the error function
\tyxffmxmono[]IA::ia\Symuns[]throw()\tyxffmxendmono[]. If this value
is set to \tyxffmxmono[]0\tyxffmxendmono[] the error function returns
after being invoked, otherwise the error function causes the program
to abort.\Endpara[]
\Para[]The default value is \tyxffmxmono[]1\tyxffmxendmono[], causing
any \tyxffmxmono[]iac++\tyxffmxendmono[] errors to abort the program.
This may be changed by adding the line: \Comp[]  IA::abort\Symuns[]on\Symuns[]throw := 0;  %
\Endcomp[] to the program. The value of \tyxffmxmono[]IA::abort\Symuns[]on\Symuns[]throw%
\tyxffmxendmono[] may be changed multiple times by the executing program.%
\Endpara[]
\Para[]\tyxtstxbf[]The default value of \tyxffmxmono[]IA::abort\Symuns[]on\Symuns[]throw%
\tyxffmxendmono[] is \Comp[]1\Endcomp[], causing any %
\tyxffmxmono[]iac++\tyxffmxendmono[] error to abort the program.%
\tyxtstxendbf[]\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]\tyxffmxmono[]enum \TxtInxtrm[]%
\tyxffmxmono[]IA::Error\tyxffmxendmono[]\TxtEndinxtrm[]%
\tyxffmxendmono[]\HdMinEndiv[]
\Para[]This enumeration defines errors that are recognized by the
\tyxffmxmono[]iac++\tyxffmxendmono[] class library. When the function
\tyxffmxmono[]IA::ia\Symuns[]throw()\tyxffmxendmono[] is invoked its
first argument should be one of the enumeration values defined by
\tyxffmxmono[]IA::Error\tyxffmxendmono[]. The table below lists each
enumeration and the text of the error message that is displayed by
the \tyxffmxmono[]IA::ia\Symuns[]throw()\tyxffmxendmono[] function for
each value.\Endpara[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{IA::Error}]\tyxffmxmono[]IA::Error%
\tyxffmxendmono[] enumerations and their meanings.\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\265\\286}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA::Error\tyxffmxendmono[] Value
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Error Text
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]TYPE\Symuns[]MISMATCHED\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
throw: fatal
Type Mismatch at \tyxtstxit[]file\tyxtstxendit[]:\tyxtstxit[]line%
\tyxtstxendit[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]TYPE\Symuns[]UNSPECIFIED%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
throw: fatal Type Unspecified at \tyxtstxit[]file%
\tyxtstxendit[]:\tyxtstxit[]line\tyxtstxendit[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]POINT\Symuns[]INDEX\Symuns[]MISMATCH%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
throw: fatal Point Index Mismatch at %
\tyxtstxit[]file\tyxtstxendit[]:\tyxtstxit[]line\tyxtstxendit[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]POINT\Symuns[]UNINITIALIZED\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
throw: fatal
Point Uninitialized at \tyxtstxit[]file\tyxtstxendit[]:%
\tyxtstxit[]line\tyxtstxendit[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]POINT\Symuns[]TOO\Symuns[]LARGE%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
throw: fatal Result Point has too many dimensions
at \tyxtstxit[]file\tyxtstxendit[]:\tyxtstxit[]line%
\tyxtstxendit[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]PSET\Symuns[]REQUIRE\Symuns[]EXTENSIVE%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
throw: fatal Operation requires an extensive PointSet
at \tyxtstxit[]file\tyxtstxendit[]:\tyxtstxit[]line%
\tyxtstxendit[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]PSET\Symuns[]DIMENSION\Symuns[]MISMATCH%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
throw: fatal Dimensions of argument PointSets don\rsquo[]t
match at \tyxtstxit[]file\tyxtstxendit[]:\tyxtstxit[]line%
\tyxtstxendit[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]PSET\Symuns[]INDEX\Symuns[]UNCONTAINED%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
throw: fatal Operation tried to index point not contained
in a PointSet at \tyxtstxit[]file\tyxtstxendit[]:\tyxtstxit[]line%
\tyxtstxendit[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]PSET\Symuns[]SIZE\Symuns[]MISMATCH%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
throw: fatal Cardinality of argument PointSet is
not correct at \tyxtstxit[]file\tyxtstxendit[]:\tyxtstxit[]line%
\tyxtstxendit[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]INVALID\Symuns[]OPERATION%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
throw: fatal Invalid Operation at \tyxtstxit[]file%
\tyxtstxendit[]:\tyxtstxit[]line\tyxtstxendit[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IMAGE\Symuns[]REQUIRE\Symuns[]VALUE%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
throw: fatal Operation requires image arguments to
have values at \tyxtstxit[]file\tyxtstxendit[]:\tyxtstxit[]line%
\tyxtstxendit[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IMAGE\Symuns[]REQUIRE\Symuns[]EXTENSIVE%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
throw: fatal Operation requires extensive image arguments
at \tyxtstxit[]file\tyxtstxendit[]:\tyxtstxit[]line%
\tyxtstxendit[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IMAGE\Symuns[]STRUCTURE\Symuns[]NOT\Symuns[]SUPPORTED%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
throw: fatal Operation is undefined on images with
the specified structure at \tyxtstxit[]file\tyxtstxendit[]:%
\tyxtstxit[]line\tyxtstxendit[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]PSET\Symuns[]MISMATCH%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
throw: fatal Operation is defined only with exactly
matching PointSets at \tyxtstxit[]file\tyxtstxendit[]:%
\tyxtstxit[]line\tyxtstxendit[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IMAGE\Symuns[]DOMAIN\Symuns[]ERROR%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
throw: fatal Operation attempted to find a point
not in an image\rsquo[]s domain at \tyxtstxit[]file%
\tyxtstxendit[]:\tyxtstxit[]line\tyxtstxendit[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IMAGE\Symuns[]REQUIRE\Symuns[]VALUE\Symuns[]ITER%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
throw: fatal Operation requires an image value iterator
at \tyxtstxit[]file\tyxtstxendit[]:\tyxtstxit[]line%
\tyxtstxendit[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IMAGE\Symuns[]REQUIRE\Symuns[]PIXEL\Symuns[]ITER%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
throw: fatal Operation requires an image pixel iterator
at \tyxtstxit[]file\tyxtstxendit[]:\tyxtstxit[]line%
\tyxtstxendit[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IMAGE\Symuns[]VECTOR\Symuns[]CNSTR\Symuns[]SZMISMATCH%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
throw: fatal Vector size mismatch in vector image
constructor at \tyxtstxit[]file\tyxtstxendit[]:\tyxtstxit[]line%
\tyxtstxendit[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IMAGE\Symuns[]POINT\Symuns[]OUTSIDE\Symuns[]DOMAIN%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
throw: fatal Attempt to reference image value outside
image domain at \tyxtstxit[]file\tyxtstxendit[]:\tyxtstxit[]line%
\tyxtstxendit[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IAAIO\Symuns[]FORMAT\Symuns[]ERROR%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
throw: fatal Format error during IAA file I/O at
\tyxtstxit[]file\tyxtstxendit[]:\tyxtstxit[]line\tyxtstxendit[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]PNM\Symuns[]IO\Symuns[]ERROR\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
throw:
fatal Error during PNM file I/O at \tyxtstxit[]file%
\tyxtstxendit[]:\tyxtstxit[]line\tyxtstxendit[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxtstxit[]unknow
enumeration value\tyxtstxendit[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
throw: fatal unnamed exception (%
\tyxtstxit[]unknow enumeration numeric value\tyxtstxendit[]) at %
\tyxtstxit[]file\tyxtstxendit[]:\tyxtstxit[]line\tyxtstxendit[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]\tyxffmxmono[]enum \TxtInxtrm[]%
\tyxffmxmono[]IA::LatticeRelation\tyxffmxendmono[]%
\TxtEndinxtrm[]\tyxffmxendmono[]\HdMinEndiv[]
\Para[]This enumeration is defined for use by comparison functions
for sets. The sets may have either extensive or comprehensive representations.
The enumeration is, however, descriptive of comparisons on any kind
of lattice or directed acylic graph structure. The table below lists
each enumeration and its meaning.\Endpara[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{IA::LatticeRelation}]%
\tyxffmxmono[]IA::LatticeRelation\tyxffmxendmono[]  enumerations and
their meanings.\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\266\\285}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA::LatticeRelation\tyxffmxendmono[] Value
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Value Meaning
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]\tyxffmxmono[]P\Symuns[]SUBSET\tyxffmxendmono[]%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Proper subset.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]\tyxffmxmono[]MP\Symuns[]SUBSET%
\tyxffmxendmono[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Subset.\newlinetag[]
Properness cannot be determined.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]\tyxffmxmono[]EQUAL%
\tyxffmxendmono[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Equal.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]\tyxffmxmono[]MP\Symuns[]SUPERSET%
\tyxffmxendmono[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Superset.\newlinetag[]
Properness cannot be determined.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]\tyxffmxmono[]P\Symuns[]SUPERSET%
\tyxffmxendmono[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Proper superset.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]%
\tyxffmxmono[]NO\Symuns[]REL\tyxffmxendmono[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
None of
the relations:\newlinetag[]
\tyxffmxmono[]P\Symuns[]SUBSET, MP\Symuns[]SUBSET, EQUAL, MP\Symuns[]SUPERSET,
P\Symuns[]SUPERSET\tyxffmxendmono[]\newlinetag[]
hold.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]\tyxffmxmono[]UNKNOWN\tyxffmxendmono[]%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Relation could not be determined.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Run-time Library Version Identification%
\HdMinEndiv[]
\Para[]Two \Comp[]static const int\Endcomp[] variables exist that
defined the current version of the library. These are:
\LstList[]
\LstItem[]\Comp[]IA::major\Symuns[]version\Symuns[]number%
\Endcomp[],\LstEnditem[]
\LstItem[]\Comp[]IA::minor\Symuns[]version\Symuns[]number%
\Endcomp[].\LstEnditem[]
\LstEndlist[]
\Endpara[]
\DivEndiv[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]Class \TxtInxtrm[]\tyxffmxmono[]IA\Symuns[]Bit%
\tyxffmxendmono[]\TxtEndinxtrm[]\HdMjEndiii[]
\DivLiv[]\HdMinLiv[]Class Purpose\HdMinEndiv[]
\Para[]This class provides an implementation of the bit values %
\tyxffmxmono[]0\tyxffmxendmono[] and \tyxffmxmono[]1%
\tyxffmxendmono[]. Bit valued images utilize this type. Also, the
\tyxtstxit[]chi\tyxtstxendit[] family of image functions generally
return an \tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[] valued image.%
\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[] Public
Interface\HdMinEndiv[]
\Para[]The following tables contain information about C++ template
class \tyxffmxmono[]IA\Symuns[]Array\Symlt[]\mthxgkxtau[]\Symgt[]%
\tyxffmxendmono[].\Endpara[]
\DivLv[]\HdMinLv[]\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[] Constructors%
\HdMinEndv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{BitConstructors}]Legend: %
\tyxffmxmono[]\tyxtszxeight[]\mthxgkxtau[]\tyxtszxendeight[]%
\tyxffmxendmono[] any Type, \tyxffmxmono[]\tyxtszxeight[]B%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Bit%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\268\\283}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[] Constructor
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Constructor
Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]\tyxffmxmono[]IA\Symuns[]Bit%
\tyxffmxendmono[]\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Construct an uninitialized bit value.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[]( i )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Construct an bit
value, which will be \tyxffmxmono[]0\tyxffmxendmono[], if the argument
is \tyxffmxmono[]0\tyxffmxendmono[], \tyxffmxmono[]1%
\tyxffmxendmono[] otherwise.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndv[]
\DivLv[]\HdMinLv[]\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[] Operators%
\HdMinEndv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{BitOperators}]Legend: %
\tyxffmxmono[]\tyxtszxeight[]\mthxgkxtau[]\tyxtszxendeight[]%
\tyxffmxendmono[] any Type, \tyxffmxmono[]\tyxtszxeight[]B%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Bit%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\131\\226\\194}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Bit\tyxffmxendmono[] Operator
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Operator Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported
Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator =\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign a copy of the
given bit.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]B\Symand[] = B\newlinetag[]
B\Symand[] = i\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\=\\=\\=}\def\TabRuleSave{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator
int\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Convert the bit value to an integer.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]int( B )\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symlt[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True
IFF the left argument is less than the right argument.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]i B \Symlt[] B\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symlt[]=\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True
IFF the left argument is less than or equal to the right argument.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]i B \Symlt[]= B\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator ==\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True IFF the
left argument is equal to the right argument.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]i B == B\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]operator !=\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True IFF the left argument is
not equal to the right argument.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]i B !=
B\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symgt[]=%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True IFF the left argument is greater than or equal
to the right argument.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]i B \Symgt[]= B%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symgt[]%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True IFF the left argument is greater than the right
argument.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]i B \Symgt[] B%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator !%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the logical NOT of the operand.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]i !B\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symand[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield
the logical AND of the operands.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]i B \Symand[]
B\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symor[]%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the logical OR of the operands.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]i B \Symor[] B\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symhat[]\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield
the logical XOR of the operands.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]i B \Symhat[]
B\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symand[]=%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign the logical AND of the operands.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]B\Symand[] \Symand[]= B%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symor[]=%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign the logical OR of the operands.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]B\Symand[] \Symor[]= B%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symhat[]=%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign the logical XOR of the operands.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]B\Symand[] \Symhat[]= B%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator *%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield the result of multiplying the bit value with
another value, which may be of anther type.\newlinetag[]
The product either returns \tyxffmxmono[]0\tyxffmxendmono[], or the
original value.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]T B * T\newlinetag[]
T T * B\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symlt[]\Symlt[]%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Output an integer representation of the bit value on
the output stream.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]ostream\Symand[]\newlinetag[]
ostream\Symand[] \Symlt[]\Symlt[] B\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndv[]
\DivEndiv[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]Class \TxtInxtrm[]\tyxffmxmono[]IA\Symuns[]RGB%
\tyxffmxendmono[]\TxtEndinxtrm[]\HdMjEndiii[]
\DivLiv[]\HdMinLiv[]Class Purpose\HdMinEndiv[]
\Para[]This class provides an implementation of RGB color values comprising
three one byte intensity values for red, green, and blue, respectively.%
\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[] Public
Interface\HdMinEndiv[]
\Para[]The following tables contain information about C++ template
class \tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[].\Endpara[]
\DivLv[]\HdMinLv[]\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[] Constructors%
\HdMinEndv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{RGBConstructors}]Legend: %
\tyxffmxmono[]\tyxtszxeight[]\mthxgkxtau[]\tyxtszxendeight[]%
\tyxffmxendmono[] any Type, \tyxffmxmono[]\tyxtszxeight[]RGB%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]RGB%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\268\\283}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[] Constructor
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Constructor
Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]\tyxffmxmono[]IA\Symuns[]RGB%
\tyxffmxendmono[]\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Construct an RGB value, with default
intensity values of zero.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]RGB%
\tyxffmxendmono[]( i, i, i )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Construct an RGB value, the first argument
is the red intensity value, the second is the green intensity value,
and the third argument is the blue intensity value.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]RGB%
\tyxffmxendmono[]( u\Symuns[]char* )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Construct an RGB value from the
array of values. It is assumed that there are at least three values
in the array, and the order of values is red, green, blue.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[]( RGB )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Construct a copy
of the RGB value.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[]( i )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Construct
an RGB value, with each component being assigned the intensity value
of the given argument.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndv[]
\DivLv[]\HdMinLv[]\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[] Operators%
\HdMinEndv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{RGBOperators}]Legend: %
\tyxffmxmono[]\tyxtszxeight[]\mthxgkxtau[]\tyxtszxendeight[]%
\tyxffmxendmono[] any Type, \tyxffmxmono[]\tyxtszxeight[]RGB%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]RGB%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\131\\226\\194}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Array\Symlt[]\mthxgkxtau[]\Symgt[]%
\tyxffmxendmono[] Operator
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Operator Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]operator =\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign a copy of the given array.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]RGB\Symand[] = RGB\newlinetag[]
RGB\Symand[] = i\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\=\\=\\=}\def\TabRuleSave{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator
==\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True IFF the two RGB arguments have the same intensity
values for all three components.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]i RGB
== RGB\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator !=%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True IFF the two RGB arguments differ in any component
value.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]i RGB != RGB%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symlt[]\Symlt[]%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Output a textual representation of the RGB value on
the output stream.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]ostream\Symand[]\newlinetag[]
ostream\Symand[] \Symlt[]\Symlt[] RGB\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndv[]
\DivLv[]\HdMinLv[]\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[] Member
Functions\HdMinEndv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{RGBMemberFunctions}]Legend: %
\tyxffmxmono[]\tyxtszxeight[]\mthxgkxtau[]\tyxtszxendeight[]%
\tyxffmxendmono[] any Type, \tyxffmxmono[]\tyxtszxeight[]RGB%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]RGB%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\158\\200\\193}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[] Member Function
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Member
Function Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]to\Symuns[]int%
\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield an \tyxffmxmono[]int\tyxffmxendmono[] approximation
to the RGB value.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]i RGB.to\Symuns[]int()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]to\Symuns[]float%
\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield a \tyxffmxmono[]float\tyxffmxendmono[] approximation
to the RGB value.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]f RGB.to\Symuns[]float()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]red%
\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield a reference to the red component of the RGB
value.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]u\Symuns[]char\Symand[] RGB.red()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]green%
\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield a reference to the green component of the RGB
value.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]u\Symuns[]char\Symand[] RGB.green()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]blue%
\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Yield a reference to the blue component of the RGB
value.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]u\Symuns[]char\Symand[] RGB.blue()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndv[]
\DivLv[]\HdMinLv[]Other \tyxffmxmono[]IA\Symuns[]RGB%
\tyxffmxendmono[] Functions\HdMinEndv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{RGBOtherFunctions}]Legend: %
\tyxffmxmono[]\tyxtszxeight[]\mthxgkxtau[]\tyxtszxendeight[]%
\tyxffmxendmono[] any Type, \tyxffmxmono[]\tyxtszxeight[]RGB%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]RGB%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\158\\200\\193}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Other \tyxffmxmono[]IA\Symuns[]RGB\tyxffmxendmono[] Function
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Other Function
Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]pseudocolor%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Map each \tyxffmxmono[]u\Symuns[]char%
\tyxffmxendmono[] value in the range \tyxffmxmono[]\Symlbk[]0,255\Symrbk[]%
\tyxffmxendmono[] to a unique RGB color. These colors have been chosen
so that neighboring \tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[] values
correspond to neighboring colors in RGB space.\newlinetag[]
Pseudocoloring an image helps one distinguish more variations of value
than one can distinguish in the grey-tone representation of that image.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]RGB pseudocolor( u\Symuns[]char\tyxsp[]
)\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndv[]
\DivEndiv[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]Class \TxtInxtrm[]\tyxffmxmono[]IA\Symuns[]Array\Symlt[]T\Symgt[]%
\tyxffmxendmono[]\TxtEndinxtrm[]\HdMjEndiii[]
\DivLiv[]\HdMinLiv[]Class Purpose\HdMinEndiv[]
\Para[]This class provides an implementation of dynamic arrays. The
size of dynamic arrays can be changed at run time. Storage management
is handled automatically.\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Usage Notes\HdMinEndiv[]
\Para[]References or pointers to values contained by instances of
\tyxffmxmono[]IA\Symuns[]Array\Symlt[]\mthxgkxtau[]\Symgt[]%
\tyxffmxendmono[] may become undefined if the size of the %
\tyxffmxmono[]IA\Symuns[]Array\Symlt[]\mthxgkxtau[]\Symgt[]%
\tyxffmxendmono[] instance is changed after the reference or pointer
is assigned its value.\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]\tyxffmxmono[]IA\Symuns[]Array\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxffmxendmono[] Public Interface%
\HdMinEndiv[]
\Para[]The following tables contain information about C++ template
class \tyxffmxmono[]IA\Symuns[]Array\Symlt[]\mthxgkxtau[]\Symgt[]%
\tyxffmxendmono[].\Endpara[]
\DivLv[]\HdMinLv[]\tyxffmxmono[]IA\Symuns[]Array\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxffmxendmono[] Constructors\HdMinEndv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{ArrayConstructors}]Legend: %
\tyxffmxmono[]\tyxtszxeight[]\mthxgkxtau[]\tyxtszxendeight[]%
\tyxffmxendmono[] any Type, \tyxffmxmono[]\tyxtszxeight[]A\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxtszxendeight[]\tyxffmxendmono[] %
\tyxffmxmono[]IA\Symuns[]Array\Symlt[]\mthxgkxtau[]\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\268\\283}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Array\Symlt[]\mthxgkxtau[]\Symgt[]%
\tyxffmxendmono[] Constructor
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Constructor Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]%
\tyxffmxmono[]IA\Symuns[]Array\Symlt[]\mthxgkxtau[]\Symgt[]%
\tyxffmxendmono[]\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Construct an array of the given
element type.\newlinetag[]
Default size is 16 elements.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Array\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxffmxendmono[]( u )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Construct an array of the
indicated size.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Array\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxffmxendmono[]( T*, u )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
First argument is the
values for the array.\newlinetag[]
Second argument indicates the number of elements in the array.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]Array\Symlt[]\mthxgkxtau[]\Symgt[]%
\tyxffmxendmono[]( T*, u, i )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
First argument is the values for the array.\newlinetag[]
Second argument indicates the number of elements in the array.\newlinetag[]
Third argument, if non-zero, indicates that storage management for
the array should be assumed by the new \tyxffmxmono[]IA\Symuns[]Array\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxffmxendmono[] instance.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Array\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxffmxendmono[]( A\Symlt[]T\Symgt[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Construct
a copy of this array.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndv[]
\DivLv[]\HdMinLv[]\tyxffmxmono[]IA\Symuns[]Array\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxffmxendmono[] Operators\HdMinEndv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{ArrayOperators}]Legend: %
\tyxffmxmono[]\tyxtszxeight[]\mthxgkxtau[]\tyxtszxendeight[]%
\tyxffmxendmono[] any Type, \tyxffmxmono[]\tyxtszxeight[]A\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxtszxendeight[]\tyxffmxendmono[] %
\tyxffmxmono[]IA\Symuns[]Array\Symlt[]\mthxgkxtau[]\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\131\\226\\194}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Array\Symlt[]\mthxgkxtau[]\Symgt[]%
\tyxffmxendmono[] Operator
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Operator Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]operator =\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign a copy of the given array.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]A\Symlt[]\mthxgkxtau[]\Symgt[]\Symand[]
= A\Symlt[]\mthxgkxtau[]\Symgt[]\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\=\\=\\=}\def\TabRuleSave{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symlbk[]\Symrbk[]%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return a reference to the indicated array value.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]T\Symand[] A\Symlt[]\mthxgkxtau[]\Symgt[]\Symlbk[]u\Symrbk[]%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
operator \Symlbk[]\Symrbk[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return
the value of the indicated array value.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]T A\Symlt[]\mthxgkxtau[]\Symgt[]\Symlbk[]u\Symrbk[]%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndv[]
\DivLv[]\HdMinLv[]\tyxffmxmono[]IA\Symuns[]Array\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxffmxendmono[] Member Functions%
\HdMinEndv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{ArrayMemberFunctions}]Legend:
\tyxffmxmono[]\tyxtszxeight[]\mthxgkxtau[]\tyxtszxendeight[]%
\tyxffmxendmono[] any Type, \tyxffmxmono[]\tyxtszxeight[]A\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxtszxendeight[]\tyxffmxendmono[] %
\tyxffmxmono[]IA\Symuns[]Array\Symlt[]\mthxgkxtau[]\Symgt[]%
\tyxffmxendmono[].\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\158\\200\\193}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Array\Symlt[]\mthxgkxtau[]\Symgt[]%
\tyxffmxendmono[] Member Function
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Member Function Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported
Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]after\Symuns[]last\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Returns a
reference to the value past the currently defined length of the array.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]T\Symand[] A\Symlt[]T\Symgt[].after\Symuns[]last()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]last%
\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Returns a reference to the last data value.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]T\Symand[] A\Symlt[]T\Symgt[].last()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
last()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Returns the last data value.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]T A\Symlt[]T\Symgt[].last()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]data\Symuns[]start%
\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Returns a pointer to the value array (a la C++).
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]T* A\Symlt[]T\Symgt[].data\Symuns[]start()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]len%
\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Answer the current length of the array.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]u A\Symlt[]T\Symgt[].len()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]shorten%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Shorten the size of the array as indicated
by the argument.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]u A\Symlt[]T\Symgt[].shorten(u)%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]lengthen%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Lengthen the size of the array as indicated
by the argument.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]u A\Symlt[]T\Symgt[].lengthen(u)%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]resize%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Resize the array by shortening or lengthening
as necessary.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]u A\Symlt[]T\Symgt[].resize(u)%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndv[]
\DivEndiv[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]\TxtInxtrm[]\tyxffmxmono[]IA\Symuns[]Deque\Symlt[]T\Symgt[]%
\tyxffmxendmono[]\TxtEndinxtrm[], \TxtInxtrm[]\tyxffmxmono[]IA\Symuns[]List\Symlt[]T\Symgt[]%
\tyxffmxendmono[]\TxtEndinxtrm[], and \TxtInxtrm[]\tyxffmxmono[]IA\Symuns[]Stack\Symlt[]T\Symgt[]%
\tyxffmxendmono[]\TxtEndinxtrm[] Classes\HdMjEndiii[]
\DivLiv[]\HdMinLiv[]Class Purpose\HdMinEndiv[]
\Para[]These classes provides an implementation of linked lists, doubly
linked lists, and stacks. Storage management is handled automatically.%
\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Usage Notes\HdMinEndiv[]
\Para[]Copies of objects are stored in these structures, not pointers
to the objects.\Endpara[]
\Para[]References or pointers to objects contained by instances of
\tyxffmxmono[]IA\Symuns[]Deque\Symlt[]T\Symgt[]\tyxffmxendmono[], %
\tyxffmxmono[]IA\Symuns[]List\Symlt[]\mthxgkxtau[]\Symgt[]%
\tyxffmxendmono[], and \tyxffmxmono[]IA\Symuns[]Stack\Symlt[]T\Symgt[]%
\tyxffmxendmono[] may become undefined if any deletion functions are
applied to the structure.\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Public Interface\HdMinEndiv[]
\DivLv[]\HdMinLv[]Deque, List and Stack Constructors\HdMinEndv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{LegendConstructors}]%
\tyxffmxmono[]Legend: \tyxffmxmono[]\tyxtszxeight[]T%
\tyxtszxendeight[]\tyxffmxendmono[] any Type, \tyxffmxmono[]%
\tyxtszxeight[]Dq\Symlt[]T\Symgt[]\tyxtszxendeight[]%
\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Deque\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]DqIter%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]DequeIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]L\Symlt[]T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]List\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxffmxendmono[], \tyxffmxmono[]%
\tyxtszxeight[]LIter\tyxtszxendeight[]\tyxffmxendmono[] %
\tyxffmxmono[]IA\Symuns[]ListIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]Stk\Symlt[]T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Stack\Symlt[]T\Symgt[]%
\tyxffmxendmono[]\tyxffmxendmono[]\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\268\\283}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Deque, List or Stack Constructor
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Constructor Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]\tyxffmxmono[]IA\Symuns[]Deque\Symlt[]\mthxgkxtau[]\Symgt[]%
\tyxffmxendmono[]\TxtEndinxtrm[]()\newlinetag[]
\TxtInxtrm[]\tyxffmxmono[]IA\Symuns[]List\Symlt[]\mthxgkxtau[]\Symgt[]%
\tyxffmxendmono[]\TxtEndinxtrm[]()\newlinetag[]
\TxtInxtrm[]\tyxffmxmono[]IA\Symuns[]Stack\Symlt[]\mthxgkxtau[]\Symgt[]%
\tyxffmxendmono[]\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create an empty deque, list or stack.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]Deque\Symlt[]T\Symgt[]\tyxffmxendmono[]( T
)\newlinetag[]
\tyxffmxmono[]IA\Symuns[]List\Symlt[]\mthxgkxtau[]\Symgt[]%
\tyxffmxendmono[]( T )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Stack\Symlt[]T\Symgt[]\tyxffmxendmono[]( T
)
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a deque, list or stack with one value.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Deque\Symlt[]T\Symgt[]%
\tyxffmxendmono[]( T, T )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]List\Symlt[]\mthxgkxtau[]\Symgt[]%
\tyxffmxendmono[]( T, T )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Stack\Symlt[]T\Symgt[]\tyxffmxendmono[]( T,
T )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a deque, list or stack with two values.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Deque\Symlt[]T\Symgt[]%
\tyxffmxendmono[]( T, T, T )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]List\Symlt[]\mthxgkxtau[]\Symgt[]%
\tyxffmxendmono[]( T, T, T )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Stack\Symlt[]T\Symgt[]\tyxffmxendmono[]( T,
T, T )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a deque, list or stack with three values.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]Deque\Symlt[]T\Symgt[]\tyxffmxendmono[]( T,
T, T, T )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]List\Symlt[]\mthxgkxtau[]\Symgt[]%
\tyxffmxendmono[]( T, T, T, T )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Stack\Symlt[]T\Symgt[]\tyxffmxendmono[]( T,
T, T, T )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a deque, list or stack with four values.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]Deque\Symlt[]T\Symgt[]\tyxffmxendmono[]( T,
T, T, T, T )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]List\Symlt[]\mthxgkxtau[]\Symgt[]%
\tyxffmxendmono[]( T, T, T, T, T )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Stack\Symlt[]T\Symgt[]\tyxffmxendmono[]( T,
T, T, T, T )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a deque, list or stack with five values.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]IA\Symuns[]Deque\Symlt[]T\Symgt[]\tyxffmxendmono[]( T*,
u )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]List\Symlt[]\mthxgkxtau[]\Symgt[]%
\tyxffmxendmono[]( \mthxgkxtau[]*, u )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Stack\Symlt[]T\Symgt[]\tyxffmxendmono[]( T*,
u )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a deque, list or stack using the array of values from the
first argument.\newlinetag[]
Second argument indicates number of values.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]Deque\Symlt[]T\Symgt[]%
\tyxffmxendmono[]( Dq\Symlt[]T\Symgt[] )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]List\Symlt[]\mthxgkxtau[]\Symgt[]%
\tyxffmxendmono[]( L\Symlt[]\mthxgkxtau[]\Symgt[] )\newlinetag[]
\tyxffmxmono[]IA\Symuns[]Stack\Symlt[]T\Symgt[]\tyxffmxendmono[]( Stk\Symlt[]T\Symgt[]
)
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Create a copy of the deque, list or stack.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndv[]
\DivLv[]\HdMinLv[]Deque, List and Stack Operators\HdMinEndv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{ListOperators}]%
\tyxffmxmono[]Legend: \tyxffmxmono[]\tyxtszxeight[]T%
\tyxtszxendeight[]\tyxffmxendmono[] any Type, \tyxffmxmono[]%
\tyxtszxeight[]Dq\Symlt[]T\Symgt[]\tyxtszxendeight[]%
\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Deque\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]DqIter%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]DequeIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]L\Symlt[]T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]List\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxffmxendmono[], \tyxffmxmono[]%
\tyxtszxeight[]LIter\tyxtszxendeight[]\tyxffmxendmono[] %
\tyxffmxmono[]IA\Symuns[]ListIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]Stk\Symlt[]T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Stack\Symlt[]T\Symgt[]%
\tyxffmxendmono[]\tyxffmxendmono[]\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\131\\226\\194}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Deque, List or Stack Operator
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Operator Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]operator =\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Assign a copy of the given deque,
list or stack.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]Dq\Symlt[]T\Symgt[]\Symand[]
= Dq\Symlt[]T\Symgt[]\newlinetag[]
L\Symlt[]T\Symgt[]\Symand[] = L\Symlt[]T\Symgt[]\newlinetag[]
S\Symlt[]T\Symgt[]\Symand[] = S\Symlt[]T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\=\\=\\=}\def\TabRuleSave{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator \Symlbk[]\Symrbk[]%
\TxtEndinxtrm[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return a reference to the indicated value. An argument
of 0 returns the first value.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]T\Symand[]
Dq\Symlt[]T\Symgt[]\Symlbk[]i\Symrbk[]\newlinetag[]
T\Symand[] L\Symlt[]T\Symgt[]\Symlbk[]u\Symrbk[]\newlinetag[]
T\Symand[] S\Symlt[]T\Symgt[]\Symlbk[]u\Symrbk[]%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
operator ()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return the value of
the indicated value. An argument of 0 returns the first value.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]T Dq\Symlt[]T\Symgt[](i)\newlinetag[]
T L\Symlt[]T\Symgt[](u)\newlinetag[]
T S\Symlt[]T\Symgt[](u)\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndv[]
\DivLv[]\HdMinLv[]Deque, List and Stack Member Functions%
\HdMinEndv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{ListMemberFunctions}]%
\tyxffmxmono[]Legend: \tyxffmxmono[]\tyxtszxeight[]T%
\tyxtszxendeight[]\tyxffmxendmono[] any Type, \tyxffmxmono[]%
\tyxtszxeight[]Dq\Symlt[]T\Symgt[]\tyxtszxendeight[]%
\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Deque\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]DqIter%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]DequeIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]L\Symlt[]T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]List\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxffmxendmono[], \tyxffmxmono[]%
\tyxtszxeight[]LIter\tyxtszxendeight[]\tyxffmxendmono[] %
\tyxffmxmono[]IA\Symuns[]ListIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]Stk\Symlt[]T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Stack\Symlt[]T\Symgt[]%
\tyxffmxendmono[]\tyxffmxendmono[]\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\130\\224\\197}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Deque, List or Stack Member Function
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Member Function Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported
Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]empty\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
True IFF the receiver is
empty.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]I Dq\Symlt[]T\Symgt[].empty()\newlinetag[]
i L\Symlt[]T\Symgt[].empty()\newlinetag[]
i Stk\Symlt[]T\Symgt[].empty()\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]length\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Answer the number
of values the receiver holds.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]u Dq\Symlt[]T\Symgt[].length()\newlinetag[]
u L\Symlt[]T\Symgt[].length()\newlinetag[]
u Stk\Symlt[]T\Symgt[].length()\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\=\\=\\=}\def\TabRuleSave{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]first\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Answer the first
element of the deque.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]T Dq\Symlt[]T\Symgt[].first()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]head%
\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Answer the first element value of receiver.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]\newlinetag[]
T L\Symlt[]T\Symgt[].head()\newlinetag[]
T Stk\Symlt[]T\Symgt[].head()\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\TxtInxtrm[]last\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Answer the last element value of
the receiver.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]T Dq\Symlt[]T\Symgt[].last()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]tail%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Answer the a list or stack like the receiver,
but without the first element.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]\newlinetag[]
\tyxffmxmono[]void\tyxffmxendmono[] L\Symlt[]T\Symgt[].tail(L\Symlt[]T\Symgt[]\Symand[])\newlinetag[]
\tyxffmxmono[]void\tyxffmxendmono[] Stk\Symlt[]T\Symgt[].tail(Stk\Symlt[]T\Symgt[]\Symand[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]ins%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Insert an element at the front of the
receiver.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]\newlinetag[]
\tyxffmxmono[]void\tyxffmxendmono[] L\Symlt[]T\Symgt[].ins(T)%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]insFront%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Insert an element at the front of the
receiver.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]\tyxffmxmono[]void%
\tyxffmxendmono[] Dq\Symlt[]T\Symgt[].insFront(T)%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]insBack%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Insert an element at the front of the
receiver.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]\tyxffmxmono[]void%
\tyxffmxendmono[] Dq\Symlt[]T\Symgt[].insBack(T)%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]push%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Insert an element onto the receiver.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]\newlinetag[]
\newlinetag[]
\tyxffmxmono[]void\tyxffmxendmono[] Stk\Symlt[]T\Symgt[].push(%
\mthxgkxtau[])\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]del%
\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Delete the first element of the list.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]\newlinetag[]
\tyxffmxmono[]void\tyxffmxendmono[] L\Symlt[]T\Symgt[].del()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]delBack%
\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Delete the back element of the deque.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]\tyxffmxmono[]void\tyxffmxendmono[] Dq\Symlt[]T\Symgt[].delBack()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]delFront%
\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Delete the front element of the deque.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]\tyxffmxmono[]void\tyxffmxendmono[] Dq\Symlt[]T\Symgt[].delFront()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]delNth%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Delete the Nth element, with indexing
starting at zero.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]\tyxffmxmono[]void%
\tyxffmxendmono[] Dq\Symlt[]T\Symgt[].delNth(i)\newlinetag[]
\tyxffmxmono[]void\tyxffmxendmono[] L\Symlt[]T\Symgt[].delNth(u)%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]delValue%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Delete the first occurance of this value
in the list.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]\tyxffmxmono[]void%
\tyxffmxendmono[] Dq\Symlt[]T\Symgt[].delValue(T)\newlinetag[]
\tyxffmxmono[]void\tyxffmxendmono[] L\Symlt[]T\Symgt[].delValue(%
\mthxgkxtau[])\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]pop%
\TxtEndinxtrm[]()
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Remove an element from the receiver.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
%
\tyxffmxmono[]\tyxtszxeight[]\newlinetag[]
\newlinetag[]
\tyxffmxmono[]void\tyxffmxendmono[] Stk\Symlt[]T\Symgt[].pop()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]reverse%
\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return a reversed copy of the list as
the argument.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]\tyxffmxmono[]void%
\tyxffmxendmono[] Dq\Symlt[]T\Symgt[].reverse(Dq\Symlt[]T\Symgt[]\Symand[])\newlinetag[]
\tyxffmxmono[]void\tyxffmxendmono[] L\Symlt[]T\Symgt[].reverse(L\Symlt[]T\Symgt[]\Symand[])\newlinetag[]
\tyxffmxmono[]void\tyxffmxendmono[] Stk\Symlt[]T\Symgt[].reverse(Stk\Symlt[]T\Symgt[]\Symand[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]sub%
\TxtEndinxtrm[]( \Symuns[], \Symuns[], \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return a sub deque
or sublist of the receiver. First argument indicates the index of
the starting value. Second argument indicates the index of the ending
value. Third argument is the result.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]%
\tyxtszxeight[]\tyxffmxmono[]void\tyxffmxendmono[] Dq\Symlt[]T\Symgt[].sub(i,i,Dq\Symlt[]T\Symgt[]\Symand[])\newlinetag[]
\tyxffmxmono[]void\tyxffmxendmono[] L\Symlt[]T\Symgt[].sub(u,u,L\Symlt[]T\Symgt[]\Symand[])\newlinetag[]
\tyxffmxmono[]void\tyxffmxendmono[] Stk\Symlt[]T\Symgt[].sub(u,u,Stk\Symlt[]T\Symgt[]\Symand[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndv[]
\DivLv[]\HdMinLv[]Deque and List Friend Functions\HdMinEndv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{ListFriendFunctions}]%
\tyxffmxmono[]Legend: \tyxffmxmono[]\tyxtszxeight[]T%
\tyxtszxendeight[]\tyxffmxendmono[] any Type, \tyxffmxmono[]%
\tyxtszxeight[]Dq\Symlt[]T\Symgt[]\tyxtszxendeight[]%
\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Deque\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]DqIter%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]DequeIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]L\Symlt[]T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]List\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxffmxendmono[], \tyxffmxmono[]%
\tyxtszxeight[]LIter\tyxtszxendeight[]\tyxffmxendmono[] %
\tyxffmxmono[]IA\Symuns[]ListIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]Stk\Symlt[]T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Stack\Symlt[]T\Symgt[]%
\tyxffmxendmono[]\tyxffmxendmono[]\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\158\\199\\193}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Deque, List or Stack Friend Function
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Friend Function Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported
Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]concat\TxtEndinxtrm[]( \Symuns[], \Symuns[],
\Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Concatenate the first and second arguments. Return the
result in the third argument.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]%
\tyxffmxmono[]void\tyxffmxendmono[] concat(Dq\Symlt[]T\Symgt[],Dq\Symlt[]T\Symgt[],Dq\Symlt[]T\Symgt[]\Symand[])\newlinetag[]
\tyxffmxmono[]void\tyxffmxendmono[] concat(L\Symlt[]T\Symgt[],L\Symlt[]T\Symgt[],L\Symlt[]T\Symgt[]\Symand[])%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndv[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Deque and List Iterator\HdMinEndiv[]
\DivLv[]\HdMinLv[]Iterator Usage Notes\HdMinEndv[]
\Para[]An iterators stores a pointer to the object it iterates over.%
\Endpara[]
\Para[]The behavior of an iterator is undefined if the object it iterates
over is modified during the lifetime of the iterator.\Endpara[]
\DivEndv[]
\DivLv[]\HdMinLv[]Deque and List Iterator Constructors%
\HdMinEndv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{ListIterConstructors}]%
\tyxffmxmono[]Legend: \tyxffmxmono[]\tyxtszxeight[]T%
\tyxtszxendeight[]\tyxffmxendmono[] any Type, \tyxffmxmono[]%
\tyxtszxeight[]Dq\Symlt[]T\Symgt[]\tyxtszxendeight[]%
\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Deque\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]DqIter%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]DequeIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]L\Symlt[]T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]List\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxffmxendmono[], \tyxffmxmono[]%
\tyxtszxeight[]LIter\tyxtszxendeight[]\tyxffmxendmono[] %
\tyxffmxmono[]IA\Symuns[]ListIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]Stk\Symlt[]T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Stack\Symlt[]T\Symgt[]%
\tyxffmxendmono[]\tyxffmxendmono[]\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\270\\281}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Deque or List Constructor
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]\tyxffmxmono[]IA\Symuns[]DequeIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[]\TxtEndinxtrm[]( Dq\Symlt[]T\Symgt[] )\newlinetag[]
\TxtInxtrm[]\tyxffmxmono[]IA\Symuns[]ListIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[]\TxtEndinxtrm[]( L\Symlt[]T\Symgt[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Construct an
iterator over the given deque or list.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]IA\Symuns[]DequeIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[]( Dq\Symlt[]T\Symgt[], i )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Construct an iterator over
the given deque. If the second argument is negative then iterate in
reverse order.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndv[]
\DivLv[]\HdMinLv[]Deque and List Iterator Member Operators%
\HdMinEndv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{ListIterMemberOperators}]%
\tyxffmxmono[]Legend: \tyxffmxmono[]\tyxtszxeight[]T%
\tyxtszxendeight[]\tyxffmxendmono[] any Type, \tyxffmxmono[]%
\tyxtszxeight[]Dq\Symlt[]T\Symgt[]\tyxtszxendeight[]%
\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Deque\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]DqIter%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]DequeIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]L\Symlt[]T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]List\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxffmxendmono[], \tyxffmxmono[]%
\tyxtszxeight[]LIter\tyxtszxendeight[]\tyxffmxendmono[] %
\tyxffmxmono[]IA\Symuns[]ListIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]Stk\Symlt[]T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Stack\Symlt[]T\Symgt[]%
\tyxffmxendmono[]\tyxffmxendmono[]\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\132\\250\\169}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Deque or List Member Operator
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Member Operator Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported
Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]operator ()\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Evaluate
the deque or list for the next value.\newlinetag[]
Return 1 IFF this value exists, and assign its value to the argument.
Return 0 otherwise.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]i DqIter\Symlt[]T\Symgt[](T\Symand[])\newlinetag[]
i LIter\Symlt[]T\Symgt[](T\Symand[])\tyxtszxendeight[]%
\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndv[]
\DivLv[]\HdMinLv[]Deque and List Iterator Member Functions%
\HdMinEndv[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{ListIterMemberFunctions}]%
\tyxffmxmono[]Legend: \tyxffmxmono[]\tyxtszxeight[]T%
\tyxtszxendeight[]\tyxffmxendmono[] any Type, \tyxffmxmono[]%
\tyxtszxeight[]Dq\Symlt[]T\Symgt[]\tyxtszxendeight[]%
\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Deque\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]DqIter%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]DequeIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]L\Symlt[]T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]List\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxffmxendmono[], \tyxffmxmono[]%
\tyxtszxeight[]LIter\tyxtszxendeight[]\tyxffmxendmono[] %
\tyxffmxmono[]IA\Symuns[]ListIter\Symlt[]T\Symgt[]%
\tyxffmxendmono[], \tyxffmxmono[]\tyxtszxeight[]Stk\Symlt[]T\Symgt[]%
\tyxtszxendeight[]\tyxffmxendmono[] \tyxffmxmono[]IA\Symuns[]Stack\Symlt[]T\Symgt[]%
\tyxffmxendmono[]\tyxffmxendmono[]\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\132\\247\\172}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Deque or List Member Function
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Deque or List Member Function Description
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Supported
Arguments
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\TxtInxtrm[]forward\TxtEndinxtrm[]( \Symuns[] )
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Return 1 if
the iterator iterates in the forward direction.\newlinetag[]
Return 0 otherwise.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\tyxffmxmono[]\tyxtszxeight[]i DqIter\Symlt[]T\Symgt[].forward()%
\tyxtszxendeight[]\tyxffmxendmono[]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{1}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndv[]
\DivEndiv[]
\DivEndiii[]
\DivEndii[]
\DivEndbod[]
\RearRear[]
\RearApp[\def\RearAppId{codeExamples}]\RearApphd[]\tyxffmxmono[]iac++%
\tyxffmxendmono[] Library Usage Examples\RearEndapphd[]
\DivLiii[]\HdMjLiii[]Purpose\HdMjEndiii[]
\Para[]This section will illustrate, by the means of several short
programs, usages of the \tyxffmxmono[]iac++\tyxffmxendmono[] class library.
 Our intent is to examine common usages, and while not claiming to
be exhaustive, to also show usages that may not be clear from the
text of the user manual alone.\Endpara[]
\Para[]As we have seen the \tyxffmxmono[]iac++\tyxffmxendmono[] class
library supports constructs for each of the major conceptual image
algebra objects: points, point sets, value sets, images and templates.
 Other parts of the user manual describe both classes defined to supports
these constructs, and functions available to manipulate them.%
\Endpara[]
\Para[]The class library is written in the C++ language, which supports
the object-oriented paradigm.  We have attempted to utilize this paradigm
as much as possible. This simply means that the library supports the
image algebra by considering image algebra programs as collections
of objects which must be created, communicate with other image algebra
objects and eventually be destroyed.\Endpara[]
\Para[]Creation of an object is either done explicitly, by the use
of a \tyxtstxit[]constructor\tyxtstxendit[] or implicitly, as the
side effect of some operation.  Object communication involves sending
a message to an object, possibly with arguments.  For the most part
destruction of objects is handled by the compiler and the class library.%
\Endpara[]
\DivEndiii[]
\DivLiii[\def\DivLiiiFolioPretextVal{Point Examples}\def\DivLiiiFolioNumSty{I}\def\DivLiiiId{pointCodeExamples}]%
\HdMjLiii[]Point Examples\HdMjEndiii[]
\DivLiv[]\HdMinLiv[]Point Example 1\HdMinEndiv[]
\Para[]The first point example illustrate the create of two points.
The first is an instance of \tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[] and the second is an instance of \tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]. The two points are created and their value is placed
on the standard output stream \tyxffmxmono[]cout%
\tyxffmxendmono[].
\FgBlock[]
\FgCap[\def\FgCapType{O}\def\FgCapTypeONumFirstdisp{99}]Point constructor%
\FgEndcap[]
\Comp[]
// point\Symuns[]example.01.c
// IA\Symuns[]Point\Symlt[]int\Symgt[] and IA\Symuns[]Point\Symlt[]double\Symgt[] constructor example

\Sympnd[]include \quot[]IntPoint.h\quot[]
\Sympnd[]include \quot[]DblPoint.h\quot[]

int main()
\Symlbr[]
    IA\Symuns[]Point\Symlt[]int\Symgt[] ipoint(0,0,0);
    // ipoint == origin in 3D integral Cartesian Space

    IA\Symuns[]Point\Symlt[]double\Symgt[] fpoint(1.3,2.7);
    // fpoint is a point in 2D real Cartesian space

    cout \Symlt[]\Symlt[] \quot[]ipoint has value \quot[] \Symlt[]\Symlt[] ipoint \Symlt[]\Symlt[] \quot[]\Symbs[]n\quot[];
    cout \Symlt[]\Symlt[] \quot[]fpoint has value \quot[] \Symlt[]\Symlt[] fpoint \Symlt[]\Symlt[] \quot[]\Symbs[]n\quot[];

    return 0;
\Symrbr[]\Endcomp[]
\FgEndblock[]
\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Point Example 2\HdMinEndiv[]
\Para[]This next example illustrates creation of points using the
point vector constructors, and also by copy construction. Vector constructors
allow the creation of points by specifying both a vector of coordinate
values and the actual dimension of the point to be created. Copy construction
occurs when a point is created based on the value of another point.
\FgBlock[]
\FgCap[\def\FgCapType{O}\def\FgCapTypeONumFirstdisp{99}]Point vector
constructor\FgEndcap[]
\Comp[]
// point\Symuns[]example.02.c        Further point constructor examples

\Sympnd[]include \quot[]IntPoint.h\quot[]
\Sympnd[]include \quot[]DblPoint.h\quot[]

int iarray\Symlbk[]\Symrbk[] = \Symlbr[] 0, 1, 2, 3 \Symrbr[];

double farray\Symlbk[]\Symrbk[] = \Symlbr[] 0.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9 \Symrbr[];

int main()
\Symlbr[]
    IA\Symuns[]Point\Symlt[]int\Symgt[] ipoint4(iarray, 4);
    // ipoint4 is 4D point initialized from the array iarray

    IA\Symuns[]Point\Symlt[]double\Symgt[] fpoint10(farray, 10);
    // fpoint10 is a 10D point initialized from the array farray

    cout \Symlt[]\Symlt[] \quot[]ipoint4 has value \quot[] \Symlt[]\Symlt[] ipoint4 \Symlt[]\Symlt[] \quot[]\Symbs[]n\quot[];
    cout \Symlt[]\Symlt[] \quot[]fpoint10 has value \quot[] \Symlt[]\Symlt[] fpoint10 \Symlt[]\Symlt[] \quot[]\Symbs[]n\quot[];

    IA\Symuns[]Point\Symlt[]int\Symgt[] ipoint;               // ipoint has no initial value
    ipoint = ipoint4;           // ipoint is assigned ipoint4\Symbs[]\rsquo[]s value

    IA\Symuns[]Point\Symlt[]double\Symgt[] fpoint(ipoint4);
    // fpoint is initialized with ipoint4\Symbs[]\rsquo[]s value

    cout \Symlt[]\Symlt[] \quot[]ipoint has value \quot[] \Symlt[]\Symlt[] ipoint \Symlt[]\Symlt[] \quot[]\Symbs[]n\quot[];
    cout \Symlt[]\Symlt[] \quot[]fpoint has value \quot[] \Symlt[]\Symlt[] fpoint \Symlt[]\Symlt[] \quot[]\Symbs[]n\quot[];

    return 0;
\Symrbr[]\Endcomp[]
\FgEndblock[]
\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Point Example 3\HdMinEndiv[]
\Para[]Points may be considered as an array of coordinate values.
Thus it is reasonable to interrogate the value of a specific coordinate.
This is done by subscripting the point, starting with subscript %
\tyxffmxmono[]0\tyxffmxendmono[].\Endpara[]
\Para[]Most point operations involve applying the operation coordinatewise
to the point operand(s). In particular point arithmetic is performed
by applying the arithmetic operation to each pair coordinate values
in turn. An exception to this are unary operations, such as %
\tyxtstxit[]unary minus\tyxtstxendit[] in which only one point is
involved.\Endpara[]
\Para[]This next example illustrates each of the above concepts.
\FgBlock[]
\FgCap[\def\FgCapType{O}\def\FgCapTypeONumFirstdisp{99}]Point operators%
\FgEndcap[]
\Comp[]
// point\Symuns[]example.03.c       Point operators

\Sympnd[]include \quot[]IntPoint.h\quot[]

int main()
\Symlbr[]
    IA\Symuns[]Point\Symlt[]int\Symgt[]
        ipoint1(0, 0, 0),  //   initialized to \Symlt[]0 0 0\Symgt[]
        ipoint2,                   // uninitialized point
        ipoint3(1, 2, 3);          //   initialized to \Symlt[]1 2 3\Symgt[]

    // Subscripting
    ipoint1\Symlbk[]0\Symrbk[] = 1;     // new value is \Symlt[]1 0 0\Symgt[]
    ipoint1\Symlbk[]2\Symrbk[] = 2;     // new value is \Symlt[]1 0 2\Symgt[]

    ipoint2 = ipoint1 + ipoint3;
    // ipoint2 has value \Symlt[]2 2 5\Symgt[]

    // Here we treat the constructor as a function which returns
    //   a new point \Symlt[]0 0 1\Symgt[], which is subtracted from ipoint2
    ipoint2 -= IA\Symuns[]Point\Symlt[]int\Symgt[](0, 0, 1);  // new value is \Symlt[]2 2 4\Symgt[]

    cout \Symlt[]\Symlt[] \quot[]ipoint2 has value \quot[] \Symlt[]\Symlt[] ipoint2++ \Symlt[]\Symlt[] \quot[]\Symbs[]n\quot[];
    // Prints \Symlt[]2 2 4\Symgt[], new value of ipoint is \Symlt[]3 3 5\Symgt[]

    cout \Symlt[]\Symlt[] \quot[]ipoint2 has value \quot[] \Symlt[]\Symlt[] ipoint2 \Symlt[]\Symlt[] \quot[]\Symbs[]n\quot[];

    return 0;
\Symrbr[]\Endcomp[]
\FgEndblock[]
\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Point Example 4\HdMinEndiv[]
\Para[]Relational operations may also be applied to points. One may
check for point equality \tyxffmxmono[](==)\tyxffmxendmono[], point
inequality \tyxffmxmono[](!=)\tyxffmxendmono[] and also comparisons
such as less than \tyxffmxmono[](\Symlt[])\tyxffmxendmono[], less
than or equal \tyxffmxmono[](\Symlt[]=)\tyxffmxendmono[], greater
than \tyxffmxmono[](\Symgt[])\tyxffmxendmono[], greater than or equal
\tyxffmxmono[](\Symgt[]=)\tyxffmxendmono[]. However points of dimension
greater than one form a lattice, and thus a total ordering is not
defined. Consider the two points \tyxffmxmono[]\Symlt[]1 2\Symgt[],
\Symlt[]2 1\Symgt[]\tyxffmxendmono[], these points are not comparable,
because we can not say which point is less than the other. However
it is still possible to check them for equality or inequality. In
general a comparison is performed by applying the relation coordinatewise.
A comparison is considered \tyxtstxit[]true\tyxtstxendit[] if it is
true at each coordinate, otherwise it is considered \tyxtstxit[]false%
\tyxtstxendit[]. The exception to this rule is point inequality, which
is defined as the logical negation of point equality.
\FgBlock[]
\FgCap[\def\FgCapType{O}\def\FgCapTypeONumFirstdisp{99}]Point relational
operations\FgEndcap[]
\Comp[]
// point\Symuns[]example.04.c        Point relational operators

\Sympnd[]include \quot[]IntPoint.h\quot[]

int  main()
\Symlbr[]
    IA\Symuns[]Point\Symlt[]int\Symgt[]
        ipoint123(1, 2, 3),
        ipoint321(3, 2, 1),
        ipoint333(3, 3, 3);

    cout \Symlt[]\Symlt[] (ipoint123 \Symlt[] ipoint321) \Symlt[]\Symlt[] \quot[]\Symbs[]n\quot[];
    // This has value 0 (false) because the relational operators (with the
    //   exception of !=) require the relation to hold at each coordinate.

    cout \Symlt[]\Symlt[] (ipoint333 \Symgt[]= ipoint123) \Symlt[]\Symlt[] \quot[]\Symbs[]n\quot[];
    // This has value 1 (true). (The relation holds for each coordinate.)

    cout \Symlt[]\Symlt[] (ipoint123 != ipoint321) \Symlt[]\Symlt[] \quot[]\Symbs[]n\quot[];
    // This has value 1 (true) because != returns the negation of the ==
    // relation (which does not hold at coordinates 0 and 2).

    return 0;
\Symrbr[]\Endcomp[]
\FgEndblock[]
\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Point Example 5\HdMinEndiv[]
\Para[]Our final point example program illustrates some of the point
member and friend functions available. Note that the distinction made
between member and friend functions has implications as to the syntax
involved to invoke the function. A member function is invoked by using
dot notation, whereas a friend function is invoked using the same
syntax as a \tyxffmxmono[]C\tyxffmxendmono[] function.
\FgBlock[]
\FgCap[\def\FgCapType{O}\def\FgCapTypeONumFirstdisp{99}]Point member
and friend functions\FgEndcap[]
\Comp[]
// point\Symuns[]example.05.c        Point member functions

\Sympnd[]include \quot[]IntPoint.h\quot[]
\Sympnd[]include \quot[]DblPoint.h\quot[]

int main()
\Symlbr[]
    IA\Symuns[]Point\Symlt[]int\Symgt[] ipoint1(1,2,3), ipoint2;

    // dim() is a member function, so its syntax used the dot notation
    cout \Symlt[]\Symlt[] \quot[]ipoint1 has value \quot[] \Symlt[]\Symlt[] ipoint1 \Symlt[]\Symlt[] \quot[]\Symbs[]n\quot[];
    cout \Symlt[]\Symlt[] ipoint1.dim() \Symlt[]\Symlt[] \quot[]\Symbs[]n\quot[];      // dimensionality of ipoint1 is 3

    // enorm() is not member function, so it uses normal C syntax
    cout \Symlt[]\Symlt[] enorm( ipoint1 ) \Symlt[]\Symlt[] \quot[]\Symbs[]n\quot[];
    // enorm in this case is sqrt(1*1 + 2*2 + 3*3 ) \Symnot[] 3.74166

    // derange() is a not member function
    ipoint2 = derange(ipoint1,2,1,2,0);
    // ipoint2 is now a 4D point with coordinate values
    // ipoint\Symlbk[]2\Symrbk[], ipoint\Symlbk[]1\Symrbk[], ipoint\Symlbk[]2\Symrbk[], ipoint\Symlbk[]0\Symrbk[]

    cout \Symlt[]\Symlt[] \quot[]ipoint2 has value \quot[] \Symlt[]\Symlt[] ipoint2 \Symlt[]\Symlt[] \quot[]\Symbs[]n\quot[];

    // concat() is a friend function, and hence does *NOT*
    //    use dot notation
    // concat(ipoint1,ipoint2) == \Symlt[]1 2 3 3 2 3 1\Symgt[]
    cout \Symlt[]\Symlt[] \quot[]concat(ipoint1,ipoint2) has value \quot[]
         \Symlt[]\Symlt[] concat(ipoint1,ipoint2)
         \Symlt[]\Symlt[] \quot[]\Symbs[]n\quot[];

    return 0;
\Symrbr[]
\Endcomp[]
\FgEndblock[]
\Endpara[]
\DivEndiv[]
\DivEndiii[]
\DivLiii[\def\DivLiiiFolioPretextVal{Point Set Examples}\def\DivLiiiId{pointsetCodeExamples}]%
\HdMjLiii[]Point Set Examples\HdMjEndiii[]
\Para[]Point sets are homogenous sets of points. The %
\tyxffmxmono[]iac++\tyxffmxendmono[] class library supports the creation
of point sets of \tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[](s) and \tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[](s). These point sets are instances of the %
\tyxffmxmono[]iac++\tyxffmxendmono[] classes \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[] and \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[], respectively. In the following
examples we show some example usages of point sets.\Endpara[]
\DivLiv[]\HdMinLiv[]Point Set Example 1\HdMinEndiv[]
\Para[]In this example we show the construction of two point sets.
The first contains exactly one point. The second defines the set of
points bounded the rectangle determined by two points. A print function
is also defined, illustrating a possible usage of point set iterators.
\FgBlock[]
\FgCap[\def\FgCapType{O}\def\FgCapTypeONumFirstdisp{99}]Point set
constructor\FgEndcap[]
\Comp[]
// pointset\Symuns[]example.01.c
// IA\Symuns[]Set\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[] \Symgt[] constructor and iterator examples

\Sympnd[]include \quot[]IntPS.h\quot[]
\Sympnd[]include \quot[]printIPS.c\quot[]


int main()
\Symlbr[]
    IA\Symuns[]Set\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[] \Symgt[]
        ips1(IA\Symuns[]Point\Symlt[]int\Symgt[](1,1));
    // ips1 contains the single point \Symlt[]1 1\Symgt[]

    IA\Symuns[]Set\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[] \Symgt[]
        ips2 = IA\Symuns[]boxy\Symuns[]pset( IA\Symuns[]Point\Symlt[]int\Symgt[](0,0),
                             IA\Symuns[]Point\Symlt[]int\Symgt[](9,9) );
    // ips2 contains all points in the rectangle
    //    bounded by \Symlt[]0 0\Symgt[] and \Symlt[]9 9\Symgt[]


    // print the elements of the set ips1
    cout \Symlt[]\Symlt[] \quot[]*** ips1 ***\Symbs[]n\quot[];
    printIPS(ips1);

    // print the elements of the set ips2
    cout \Symlt[]\Symlt[] \quot[]\Symbs[]n*** ips2 ***\Symbs[]n\quot[];
    printIPS(ips2);

    return 0;
\Symrbr[]\Endcomp[]
\FgEndblock[]
\Endpara[]
\Para[]The following code is a print routine called by several point
set examples.
\FgBlock[]
\FgCap[\def\FgCapType{O}\def\FgCapTypeONumFirstdisp{99}]Point set
iterator\FgEndcap[]
\Comp[]
// printIPS.c      Subroutine to print int point sets.

\Sympnd[]include \quot[]IntPS.h\quot[]
\Sympnd[]include \quot[]PSIter.h\quot[]

typedef IA\Symuns[]PSIter\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[] \Symgt[] IA\Symuns[]IPSIter;

void printIPS( const IA\Symuns[]Set\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[] \Symgt[] \Symand[] ips ) \Symlbr[]
    IA\Symuns[]Point\Symlt[]int\Symgt[] ip;
    IA\Symuns[]IPSIter    iter(ips); // iter is an iterator over the points in ips

    cout \Symlt[]\Symlt[] \quot[]\Symlbr[]\quot[];
    for(iter(ip);;) \Symlbr[]             // Get first point
        cout \Symlt[]\Symlt[] ip;               // Print it
        if (iter(ip) == 0) break; // Check (and get) next point OR exit
        cout \Symlt[]\Symlt[] \quot[], \quot[];             // Print comma for the new point
    \Symrbr[]
    cout \Symlt[]\Symlt[] \quot[]\Symrbr[]\quot[];
\Symrbr[]\Endcomp[]
\FgEndblock[]
\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Point Set Example 2\HdMinEndiv[]
\Para[]In this example we illustrate the construction of a point set
from a vector of points.
\FgBlock[]
\FgCap[\def\FgCapType{O}\def\FgCapTypeONumFirstdisp{99}]Point set
vector constructor\FgEndcap[]
\Comp[]
// pointset\Symuns[]example.02.c
// More IA\Symuns[]Set\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[] \Symgt[] constructor examples

\Sympnd[]include \quot[]IntPS.h\quot[]
\Sympnd[]include \quot[]printIPS.c\quot[]


IA\Symuns[]Point\Symlt[]int\Symgt[] vec\Symlbk[]\Symrbk[] = \Symlbr[] IA\Symuns[]Point\Symlt[]int\Symgt[](1,1), IA\Symuns[]Point\Symlt[]int\Symgt[](2,2),
                        IA\Symuns[]Point\Symlt[]int\Symgt[](3,3), IA\Symuns[]Point\Symlt[]int\Symgt[](4,4) \Symrbr[];

int main() \Symlbr[]

    IA\Symuns[]Set\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[] \Symgt[]
        ips3( 2,        // dimension of the points in this set
              vec,      // array of points
              4   );    // number of points in the array

    // ips3 = \Symlbr[] \Symlt[]1 1\Symgt[], \Symlt[]2 2\Symgt[], \Symlt[]3 3\Symgt[], \Symlt[]4 4\Symgt[] \Symrbr[]

    cout \Symlt[]\Symlt[] \quot[]*** ips3 ***\Symbs[]n\quot[];
    printIPS(ips3);

    return 0;
\Symrbr[]\Endcomp[]
\FgEndblock[]
\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Point Set Example 3\HdMinEndiv[]
\Para[] Point sets may be \tyxtstxit[]\TxtInxtrm[]extensive%
\TxtEndinxtrm[]\tyxtstxendit[] or \tyxtstxit[]\TxtInxtrm[]comprehensive%
\TxtEndinxtrm[]\tyxtstxendit[]. Our first two examples created extensive
point sets. In this next example we will create a comprehensive point
set. This is done by providing a function which determines membership
in the point set. Since the function is defined by the user, and a
pointer to the function is passed to the point set constructor it
is possible to define arbitrary point sets in this manner.%
\Endpara[]
\Para[]Note that \tyxtstxit[]comprehensive\tyxtstxendit[] point sets
may not be iterated over. Attempts to do so will cause an error. Depending
on the value of \tyxffmxmono[]IA::abort\Symuns[]on\Symuns[]throw%
\tyxffmxendmono[] this can cause the program to abort.
\FgBlock[]
\FgCap[\def\FgCapType{O}\def\FgCapTypeONumFirstdisp{99}]Point set
construction of a comprehensive point set \FgEndcap[]
\Comp[]
// pointset\Symuns[]example.03.c      IA\Symuns[]IntPointSet constructor examples

\Sympnd[]include \quot[]IntPS.h\quot[]
\Sympnd[]include \quot[]printIPS.c\quot[]


int pos\Symuns[]half\Symuns[]plane(const IA\Symuns[]Point\Symlt[]int\Symgt[] \Symand[] p) \Symlbr[]

    return p\Symlbk[]0\Symrbk[] \Symgt[] 0;
\Symrbr[]


int main()
\Symlbr[]
    IA\Symuns[]Set\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[] \Symgt[]
        ips4( 2,               // dimension of the points in this set
              pos\Symuns[]half\Symuns[]plane); // pointer to predicate function
                               // defining this set

    // ips4 contains all 2-D points whose first coordinate is \Symgt[] 0
    // NOTE: ips4 is *comprehensive* (its points cannot be enumerated).
    // all the other pointsets we\Symbs[]\rsquo[]ve encountered so far have been
    // *extensive* (their points can be enumerated).

    // Because ips4 is comprehensive, any attempt to print all its
    // elements should fail.

    cout \Symlt[]\Symlt[] \quot[]\Symbs[]n*** ips4 ***\Symbs[]n\quot[];
    printIPS(ips4);

    return 0;
\Symrbr[]\Endcomp[]
\FgEndblock[]
\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Point Set Example 4\HdMinEndiv[]
\Para[]In this example we create a point set that conceptually contains
all \tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]\rsquo[]s in the disk of radius \tyxffmxmono[]5%
\tyxffmxendmono[], centered at the origin. In general all instances
of class \tyxffmxmono[]IA\Symuns[]Set\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[] will be \tyxtstxit[]comprehensive%
\tyxtstxendit[] point sets, thus it is not possible to iterate over
such sets. But it is still possible ask such a point set if it contains
a specific point.
\FgBlock[]
\FgCap[\def\FgCapType{O}\def\FgCapTypeONumFirstdisp{99}]Point set
testing of a comprehensive point set\FgEndcap[]
\Comp[]
// pointset\Symuns[]example.04.c          Float point set example

\Sympnd[]include \quot[]DblPS.h\quot[]

int radius5disk(const IA\Symuns[]Point\Symlt[]double\Symgt[] \Symand[]fp) \Symlbr[]
    return fp.enorm() \Symlt[]= 5;
\Symrbr[]

int main() \Symlbr[]
    IA\Symuns[]Set\Symlt[]IA\Symuns[]Point\Symlt[]double\Symgt[] \Symgt[]
        fps1( 2,            // dim. of the points in this set
              radius5disk); // pointer to predicate function
                            // defining this set

    cout \Symlt[]\Symlt[] fps1.contains(IA\Symuns[]Point\Symlt[]double\Symgt[](0.0,0.0)) \Symlt[]\Symlt[] \quot[]\Symbs[]n\quot[];  // true
    cout \Symlt[]\Symlt[] fps1.contains(IA\Symuns[]Point\Symlt[]double\Symgt[](5.0,0.0)) \Symlt[]\Symlt[] \quot[]\Symbs[]n\quot[];  // true
    cout \Symlt[]\Symlt[] fps1.contains(IA\Symuns[]Point\Symlt[]double\Symgt[](5.0,1.0)) \Symlt[]\Symlt[] \quot[]\Symbs[]n\quot[];  // false

    return 0;
\Symrbr[]\Endcomp[]
\FgEndblock[]
\Endpara[]
\DivEndiv[]
\DivLiv[\def\DivLivFolioPretextVal{}\def\DivLivId{pointset-example-05}]%
\HdMinLiv[]Point Set Example 5\HdMinEndiv[]
\Para[]This next example illustrates a possible usage of the %
\tyxtstxit[]\TxtInxtrm[]closure\TxtEndinxtrm[]\tyxtstxendit[] concept
discussed elsewhere in this document. This program gives an example
of a user defined class, in this the class \tyxffmxmono[]IA\Symuns[]PPCompositionIPS%
\tyxffmxendmono[], derived from the class \tyxffmxmono[]IA\Symuns[]ClosurePS\Symlt[]T\Symgt[]%
\tyxffmxendmono[].\Endpara[]
\Para[]The class \tyxffmxmono[]IA\Symuns[]PPCompositionIPS%
\tyxffmxendmono[] defines a new point set which is the result of composing
a pointset with a function, e.g. the pointset \tyxffmxmono[]ips4%
\tyxffmxendmono[] and the function \tyxffmxmono[]translate\Symuns[]minus\Symuns[]1()%
\tyxffmxendmono[].
\FgBlock[]
\FgCap[\def\FgCapType{O}\def\FgCapTypeONumFirstdisp{99}\def\FgCapId{ClosurePSUsageExample}]Point
set closure\FgEndcap[]
\Comp[]
// pointset\Symuns[]example.05.c      An example of a ClosurePS point set


\Sympnd[]include \quot[]IntPS.h\quot[]
\Sympnd[]include \quot[]ClosurePS.h\quot[]


// An IA\Symuns[]PPCompositionIPS point set represents a point set
//   constructed from a point-to-point mapping function, f,
//   applied to a base point set, base.
//
// The contains function of the newly defined point set when applied to a
// point p checks to see if f(p) is in the base point set.
//
// This is useful for transforming comprehensive point sets.

class IA\Symuns[]PPCompositionIPS: public IA\Symuns[]ClosurePS\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[] \Symgt[] \Symlbr[]
private:
    IA\Symuns[]Point\Symlt[]int\Symgt[]               ( *ppcFunc )(const IA\Symuns[]Point\Symlt[]int\Symgt[]\Symand[]);
    IA\Symuns[]Set\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[] \Symgt[]      base;
public:

    // This is the constructor function.
    // Its two arguments are the mapping function and the base point set
    IA\Symuns[]PPCompositionIPS(const IA\Symuns[]Set\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[] \Symgt[] \Symand[]base\Symuns[],
                        IA\Symuns[]Point\Symlt[]int\Symgt[] (*f\Symuns[])(const IA\Symuns[]Point\Symlt[]int\Symgt[]\Symand[]))
    :IA\Symuns[]ClosurePS\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[] \Symgt[](base\Symuns[].dim()),  // initialize base class
     base(base\Symuns[]), ppcFunc(f\Symuns[]) \Symlbr[]
    \Symrbr[]

    // clone self  is an abstract virtual in IA\Symuns[]ClosurePS\Symlt[]T\Symgt[].
    // It must return a copy of *this.
    IA\Symuns[]ClosurePS\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[] \Symgt[] *clone\Symuns[]self() const \Symlbr[]
        return new IA\Symuns[]PPCompositionIPS(*this);
    \Symrbr[]

    // contains  is an abstract virtual in IA\Symuns[]ClosurePS\Symlt[]T\Symgt[].
    // It must return 1 when its argument is contained in the point set
    // and 0 otherwise.

    int contains(const IA\Symuns[]Point\Symlt[]int\Symgt[] \Symand[]ip) const \Symlbr[]
        return base.contains( ppcFunc(ip) );     // invoke ppcFunc()
    \Symrbr[]
\Symrbr[];

int pos\Symuns[]half\Symuns[]plane(const IA\Symuns[]Point\Symlt[]int\Symgt[] \Symand[]p) \Symlbr[]
//    return p(0) \Symgt[] 0;
    return p\Symlbk[]0\Symrbk[] \Symgt[] 0;
\Symrbr[]


IA\Symuns[]Point\Symlt[]int\Symgt[] translate\Symuns[]minus\Symuns[]1(const IA\Symuns[]Point\Symlt[]int\Symgt[] \Symand[]p) \Symlbr[]
    return p-1;
\Symrbr[]


int main() \Symlbr[]

    IA\Symuns[]Set\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[] \Symgt[]
        ips4( 2,                // dimension of the point set
              pos\Symuns[]half\Symuns[]plane ); // pointer to predicate function
                                // defining this set


    // ips5 is the point set created by composing point set ips4 with
    // the point-to-point function translate\Symuns[]minus\Symuns[]1.
    IA\Symuns[]Set\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[] \Symgt[]
        ips5( IA\Symuns[]PPCompositionIPS(ips4, translate\Symuns[]minus\Symuns[]1) );


    cout \Symlt[]\Symlt[] ips4.contains(IA\Symuns[]Point\Symlt[]int\Symgt[](1,1)) \Symlt[]\Symlt[] \quot[]\Symbs[]n\quot[];
    // \Symlt[]1 1\Symgt[] is in the positive half plane of 2D space

    cout \Symlt[]\Symlt[] ips5.contains(IA\Symuns[]Point\Symlt[]int\Symgt[](1,1)) \Symlt[]\Symlt[] \quot[]\Symbs[]n\quot[];
    // translate\Symuns[]minus\Symuns[]1(\Symlt[]1 1\Symgt[]) is \Symlt[]0 0\Symgt[], which is not in ips4!

    cout \Symlt[]\Symlt[] ips5.contains(IA\Symuns[]Point\Symlt[]int\Symgt[](10,10)) \Symlt[]\Symlt[] \quot[]\Symbs[]n\quot[];
    // translate\Symuns[]minus\Symuns[]1(\Symlt[]10 10\Symgt[]) is \Symlt[]9 9\Symgt[] which is in ips4

    return 0;
\Symrbr[]\Endcomp[]
\FgEndblock[]
\Endpara[]
\DivEndiv[]
\DivEndiii[]
\DivLiii[\def\DivLiiiFolioPretextVal{}\def\DivLiiiId{imageCodeExamples}]%
\HdMjLiii[]Image Examples\HdMjEndiii[]
\DivLiv[]\HdMinLiv[]Image Example 1\HdMinEndiv[]
\Para[]The \tyxffmxmono[]iac++\tyxffmxendmono[] class library supports
several image types, including unsigned byte (\tyxffmxmono[]u\Symuns[]char%
\tyxffmxendmono[]) and integer valued images. These types of images
are instances of \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]u\Symuns[]char\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[] and \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]int\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], respectively. It is also possible to read (and write)
images that are compatible with the \tyxtstxit[]portable gray map%
\tyxtstxendit[] (PGM) format. This example illustrates how to read
a PGM image, perform some simple processing to it, and then write
the processed image as a \TxtInxtrm[]portable gray map%
\TxtEndinxtrm[] (\TxtInxtrm[]PGM\TxtEndinxtrm[]) file.
\FgBlock[]
\FgCap[\def\FgCapType{O}\def\FgCapTypeONumFirstdisp{99}]Reading and
displaying a PGM image\FgEndcap[]
\Comp[]
// image\Symuns[]example.01.c     Read a PGM file and display it

\Sympnd[]include \quot[]UcharDI.h\quot[]
\Sympnd[]include \quot[]IntDI.h\quot[]


int main() \Symlbr[]
    IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],int\Symgt[]
        im1;    // im1 is an uninitialized image whose
                // pixel values of type int

    IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],u\Symuns[]char\Symgt[] 
        im2;    // im2 is an uninitialized image whose
                // pixel values of type unsigned char

    im1 = read\Symuns[]int\Symuns[]PGM(cin);
    // im1 is initialized from the standard input stream

    cout \Symlt[]\Symlt[] \quot[]Domain infimum is:  \quot[] \Symlt[]\Symlt[] im1.domain().inf() \Symlt[]\Symlt[] \quot[].\Symbs[]n\quot[]
         \Symlt[]\Symlt[] \quot[]Domain supremum is: \quot[] \Symlt[]\Symlt[] im1.domain().sup() \Symlt[]\Symlt[] \quot[].\Symbs[]n\quot[];

    im2 = to\Symuns[]uchar(im1);
    // im1 is converted to an IA\Symuns[]UcharDiscreteImage
    // whose value is assigned to im2

    im2 = max(im2) - im2;  // This inverts the sense of the values in im2.

    display( im2 );

    return 0;
\Symrbr[]\Endcomp[]
\FgEndblock[]
\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Image Example 2\HdMinEndiv[]
\Para[]In this example we calculate the centroid of an image.
\FgBlock[]
\FgCap[\def\FgCapType{O}\def\FgCapTypeONumFirstdisp{99}]Image centroid
calculation\FgEndcap[]
\Comp[]
// image\Symuns[]example.02.c      Image centroid calculation

\Sympnd[]include \quot[]PSIter.h\quot[]
\Sympnd[]include \quot[]IntDI.h\quot[]


int main()
\Symlbr[]

    IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],int\Symgt[] a;  // Image should be binary

    a = read\Symuns[]int\Symuns[]PGM(cin);

    IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],int\Symgt[]
        bx(a.domain(),(int) 0 ),
        by(a.domain(), (int) 0 );

    IA\Symuns[]PSIter\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[] \Symgt[]  psi(a.domain());


    IA\Symuns[]Point\Symlt[]int\Symgt[]  ip;

    // bx: image with each pixel\Symbs[]\rsquo[]s value as the point\Symbs[]\rsquo[]s 1st coordinate
    // by: image with each pixel\Symbs[]\rsquo[]s value as the point\Symbs[]\rsquo[]s 2nd coordinate
    while( psi(ip) ) \Symlbr[]
        bx\Symlbk[]ip\Symrbk[] = ip\Symlbk[]0\Symrbk[];
        by\Symlbk[]ip\Symrbk[] = ip\Symlbk[]1\Symrbk[];
    \Symrbr[]

    int  sa, cx1, cx2;

        sa = sum( IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],int\Symgt[]( chi\Symuns[]ne(a,(int)0) ) );

    cx1 = sum((bx*a));
    cx1 = cx1/sa;

    cx2 = sum((by*a));
    cx2 = cx2/sa;

    cout \Symlt[]\Symlt[] \quot[]Image is bound by points: \quot[]
         \Symlt[]\Symlt[] a.domain().inf() \Symlt[]\Symlt[] \quot[] and \quot[]
         \Symlt[]\Symlt[] a.domain().sup() \Symlt[]\Symlt[] \quot[]\Symbs[]n\quot[]
         \Symlt[]\Symlt[] \quot[]Image centroid is at: \quot[]
         \Symlt[]\Symlt[] IA\Symuns[]Point\Symlt[]int\Symgt[](cx1,cx2) \Symlt[]\Symlt[] \quot[]\Symbs[]n\quot[];

    return 0;
\Symrbr[]\Endcomp[]
\FgEndblock[]
\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Image Example 3\HdMinEndiv[]
\Para[]In this example we calculate an image \TxtInxtrm[]histogram%
\TxtEndinxtrm[]. This is done by iterating through the image values
using an image \tyxtstxit[]\TxtInxtrm[]value iterator%
\TxtEndinxtrm[]\tyxtstxendit[]. This example also utilizes the supplemental
\tyxffmxmono[]iac++\tyxffmxendmono[] class \tyxffmxmono[]IA\Symuns[]Array\Symlt[]%
\mthxgkxtau[]\Symgt[]\tyxffmxendmono[] to store the histogram values.
\FgBlock[]
\FgCap[\def\FgCapType{O}\def\FgCapTypeONumFirstdisp{99}]Image iterator
to calculate histogram\FgEndcap[]
\Comp[]
// image\Symuns[]example.03.c    Image histogram

\Sympnd[]include \quot[]UcharDI.h\quot[]
\Sympnd[]include \quot[]ImageIter.h\quot[]


int main() \Symlbr[]
    IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],u\Symuns[]char\Symgt[]  inImage;

    inImage = read\Symuns[]uchar\Symuns[]PGM(cin);

    u\Symuns[]char  imageMin, imageMax;

    imageMin = min(inImage);
    imageMax = max(inImage);

    IA\Symuns[]Array\Symlt[]int\Symgt[]  histogram( imageMax - imageMin + 1 );

    for (int tmp=imageMin; tmp\Symlt[]=imageMax; tmp++)
        histogram\Symlbk[]tmp\Symrbk[] = 0;

    IA\Symuns[]IVIter\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],u\Symuns[]char\Symgt[]
        iIter(inImage);  // Value iterator over input image

    u\Symuns[]char value;

    while (iIter(value)) \Symlbr[]
        histogram\Symlbk[]value-imageMin\Symrbk[]++;
    \Symrbr[]

    // Now spit out the results

    cout \Symlt[]\Symlt[] \quot[]Minimum image value: \quot[] \Symlt[]\Symlt[] (int) imageMin \Symlt[]\Symlt[] \quot[]\Symbs[]n\quot[]
         \Symlt[]\Symlt[] \quot[]Maximum image value: \quot[] \Symlt[]\Symlt[] (int) imageMax \Symlt[]\Symlt[] \quot[]\Symbs[]n\quot[];

    cout \Symlt[]\Symlt[] \quot[]I Val\Symbs[]tH Val\Symbs[]n\quot[];
    for (int i=imageMin; i \Symlt[]= imageMax; i++) \Symlbr[]
        cout \Symlt[]\Symlt[] i
             \Symlt[]\Symlt[] \quot[]\Symbs[]t\quot[]
             \Symlt[]\Symlt[] histogram\Symlbk[]i\Symrbk[]
             \Symlt[]\Symlt[] \quot[]\Symbs[]n\quot[];
    \Symrbr[]

    return 0;
\Symrbr[]\Endcomp[]
\FgEndblock[]
\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Image Example 4\HdMinEndiv[]
\Para[]In this example we read a PGM file in from the standard input
stream, and convert it to a real valued image, which is an instance
of \tyxffmxmono[]IA\Symuns[]Image\Symlt[]\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]. A binary interpolation of this image is then created
as a continuous valued image, which is then rotated 30 degrees. The
resultant image is converted back to a byte valued image and written
out as a PGM file.
\FgBlock[]
\FgCap[\def\FgCapType{O}\def\FgCapTypeONumFirstdisp{99}]Image composition%
\FgEndcap[]
\Comp[]
// image\Symuns[]example.04.c   Image composition with point-to-point function

\Sympnd[]include \quot[]UcharDI.h\quot[]
\Sympnd[]include \quot[]FloatDI.h\quot[]
\Sympnd[]include \quot[]FloatCI.h\quot[]
\Sympnd[]include \quot[]BLInterp.h\quot[]

IA\Symuns[]Point\Symlt[]double\Symgt[]  rot30(const IA\Symuns[]Point\Symlt[]double\Symgt[]  \Symand[]p) \Symlbr[]
    static double theta = .523598776;
    return IA\Symuns[]Point\Symlt[]double\Symgt[](p\Symlbk[]0\Symrbk[]*cos(theta) + p\Symlbk[]1\Symrbk[]*sin(theta),
                         p\Symlbk[]1\Symrbk[]*cos(theta) - p\Symlbk[]0\Symrbk[]*sin(theta));
\Symrbr[]

int main() \Symlbr[]
    // Declare  im1  as a byte valued image and assign its value by
    //   reading a PGM image created by image\Symuns[]example.01.c
    //   using the static image member.
    IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],u\Symuns[]char\Symgt[]
        im1 = read\Symuns[]uchar\Symuns[]PGM(cin);

    // Declare  im2  to be a real valued image whose value is based on
    //  an Binary Interpolation of  im1
    IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]double\Symgt[],float\Symgt[]
        im2 = IA\Symuns[]BLInterp\Symlt[]float\Symgt[](IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],float\Symgt[](im1));

    // Rotate the image 30 degrees and assign to  im2
    im2 = IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]double\Symgt[],float\Symgt[]( compose(im2, rot30) );

    // Create an byte valued image of the result
    IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],u\Symuns[]char\Symgt[]
        udi(to\Symuns[]uchar(im2.restrict(im1.domain())));

    // Display the results
    display( udi );

    return 0;
\Symrbr[]\Endcomp[]
\FgEndblock[]
\Endpara[]
\Para[]The include file \Comp[]BLInterp.h\Endcomp[] follows, for completeness.
The class \tyxffmxmono[]IA\Symuns[]BLInterp\Symlt[]T\Symgt[]%
\tyxffmxendmono[] is an example of a derived class of the image closure
class \tyxffmxmono[]IA\Symuns[]ClosureI\Symlt[]P,T\Symgt[]%
\tyxffmxendmono[]. The code in this file supports the creation of a
continuous image, \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[], from a \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]int\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[]. Instances of \tyxffmxmono[]IA\Symuns[]Image\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[],\tyxffmxmono[]float\tyxffmxendmono[]\Symgt[]%
\tyxffmxendmono[] are images over a \tyxffmxmono[]IA\Symuns[]Set\Symlt[]%
\tyxffmxmono[]IA\Symuns[]Point\Symlt[]double\Symgt[]%
\tyxffmxendmono[]\Symgt[]\tyxffmxendmono[].
\FgBlock[]
\FgCap[\def\FgCapType{O}\def\FgCapTypeONumFirstdisp{99}]Image composition
include file: BLInterp.h\FgEndcap[]
\Comp[]
// BLInterp.h
//      Copyright 1994, Center for Computer Vision and Visualization,
//      University of Florida.  All rights reserved.
//

\Sympnd[]ifndef BLInterp\Symuns[]h\Symuns[]
\Sympnd[]define BLInterp\Symuns[]h\Symuns[]

\Sympnd[]include        \Symlt[]math.h\Symgt[]

\Sympnd[]include \quot[]UcharDI.h\quot[]
\Sympnd[]include \quot[]IntDI.h\quot[]
\Sympnd[]include \quot[]FloatDI.h\quot[]
\Sympnd[]include \quot[]FloatCI.h\quot[]
\Sympnd[]include \quot[]ClosureI.h\quot[]

template \Symlt[]class T\Symgt[]
class IA\Symuns[]BLInterp : public IA\Symuns[]ClosureI\Symlt[]IA\Symuns[]Point\Symlt[]double\Symgt[],T\Symgt[] \Symlbr[]
    IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],T\Symgt[]   im;
public:
    IA\Symuns[]BLInterp(IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],T\Symgt[] im\Symuns[])
    :IA\Symuns[]ClosureI\Symlt[]IA\Symuns[]Point\Symlt[]double\Symgt[],T\Symgt[](
        IA\Symuns[]universal\Symuns[]fpset(im\Symuns[].domain().dim())),
     im(im\Symuns[]) \Symlbr[]\Symrbr[]

    T operator()(const IA\Symuns[]Point\Symlt[]double\Symgt[] \Symand[]fp) const;
    IA\Symuns[]ClosureI\Symlt[]IA\Symuns[]Point\Symlt[]double\Symgt[],T\Symgt[] *clone\Symuns[]self() const \Symlbr[]
        return new IA\Symuns[]BLInterp(*this); \Symrbr[]
\Symrbr[];


template \Symlt[]class T\Symgt[]
T IA\Symuns[]BLInterp\Symlt[]T\Symgt[]::operator() (const IA\Symuns[]Point\Symlt[]double\Symgt[] \Symand[]fp) const
\Symlbr[]
    int      ncorners = 1\Symlt[]\Symlt[]fp.dim();
    T       *vals     = new T\Symlbk[]ncorners\Symrbk[];
    int     *point    = new int\Symlbk[]fp.dim()\Symrbk[];
    double  *offset   = new double\Symlbk[]fp.dim()\Symrbk[];

    int i;
    for (i=0; i\Symlt[]fp.dim(); i++)
        offset\Symlbk[]i\Symrbk[] = fp\Symlbk[]i\Symrbk[] - floor(fp\Symlbk[]i\Symrbk[]);

    for (i=0; i\Symlt[]ncorners; i++) \Symlbr[]
        int     k=i;
        for (int idx=0; idx\Symlt[]fp.dim(); idx++) \Symlbr[]
            point\Symlbk[]idx\Symrbk[] = (int)floor(fp\Symlbk[]idx\Symrbk[]) + (k\Symand[]1);
            k \Symgt[]\Symgt[]= 1;
        \Symrbr[]
        IA\Symuns[]Point\Symlt[]int\Symgt[]  p(point, fp.dim());
        vals\Symlbk[]i\Symrbk[] = im.domain().contains(p) ? im(p) : 0;
    \Symrbr[]

    int k=fp.dim()-1;
    ncorners \Symgt[]\Symgt[]=1;
    while (ncorners) \Symlbr[]
        for (i=0; i\Symlt[]ncorners; i++) \Symlbr[]
            vals\Symlbk[]i\Symrbk[] = (1-offset\Symlbk[]k\Symrbk[])*vals\Symlbk[]i\Symrbk[] + offset\Symlbk[]k\Symrbk[]*vals\Symlbk[]i+ncorners\Symrbk[];
        \Symrbr[]
        ncorners \Symgt[]\Symgt[]=1;
        k--;
    \Symrbr[]

    T   rval = vals\Symlbk[]0\Symrbk[];
    delete\Symlbk[]\Symrbk[] offset;
    delete\Symlbk[]\Symrbk[] vals;
    delete\Symlbk[]\Symrbk[] point;

    return rval;
\Symrbr[]

\Sympnd[]endif\Endcomp[]
\FgEndblock[]
\Endpara[]
\DivEndiv[]
\DivLiv[\def\DivLivFolioPretextVal{}\def\DivLivId{image-example-05}]%
\HdMinLiv[]Image Example 5\HdMinEndiv[]
\Para[]In this example we again consider the problem of rotating an
image, but this time utilize the construction of a class derived from
class \tyxffmxmono[]IA\Symuns[]Closure\Symlt[]I,O\Symgt[]%
\tyxffmxendmono[]. Instances of such a class may be composed with %
\tyxffmxmono[]iac++\tyxffmxendmono[] image class instances, much in
the way that a function may be composed with images, as in the last
example. The advantage of this approach is that the derived class
may be used to define different instances, each representing a different
amount of rotation. This compares with the last example where it would
be necessary to define different rotation functions for each different
amount of rotation that is desired.
\FgBlock[]
\FgCap[\def\FgCapType{O}\def\FgCapTypeONumFirstdisp{99}]Image closure%
\FgEndcap[]
\Comp[]
// image\Symuns[]example.05.c   Image composition with point-to-point function

\Sympnd[]include \quot[]UcharDI.h\quot[]
\Sympnd[]include \quot[]FloatCI.h\quot[]
\Sympnd[]include \quot[]BLInterp.h\quot[]


// Instances of class rot  represent functions that rotate an
//    IA\Symuns[]Point\Symlt[]double\Symgt[]   through a fixed rotation.
// NOTE: the angle of rotation is defined at instance
//    creation time.  Hence different instances of class  rot
//    may represent different rotation functions.

class rot : public IA\Symuns[]Closure\Symlt[]IA\Symuns[]Point\Symlt[]double\Symgt[] , IA\Symuns[]Point\Symlt[]double\Symgt[] \Symgt[] \Symlbr[]
    const double S,C;
  public:
    rot(double theta)
    :S(sin(theta)), C(cos(theta)) \Symlbr[] \Symrbr[]
    IA\Symuns[]Closure\Symlt[]IA\Symuns[]Point\Symlt[]double\Symgt[] , IA\Symuns[]Point\Symlt[]double\Symgt[] \Symgt[]* clone\Symuns[]self() const \Symlbr[]
 return new rot(*this);
    \Symrbr[]
    IA\Symuns[]Point\Symlt[]double\Symgt[]  operator()(const IA\Symuns[]Point\Symlt[]double\Symgt[]  \Symand[]p) const \Symlbr[]
 return IA\Symuns[]Point\Symlt[]double\Symgt[] (p\Symlbk[]0\Symrbk[]*C + p\Symlbk[]1\Symrbk[]*S, p\Symlbk[]1\Symrbk[]*C-p\Symlbk[]0\Symrbk[]*S);
    \Symrbr[]
\Symrbr[];


int main()
\Symlbr[]
    IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],u\Symuns[]char\Symgt[]
 im1 = read\Symuns[]uchar\Symuns[]PGM(cin);

    IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]double\Symgt[],float\Symgt[]
 im2(IA\Symuns[]BLInterp\Symlt[]float\Symgt[](IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],float\Symgt[](im1)));


    // Rotate 40 degrees
    im2 = IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]double\Symgt[],float\Symgt[](
 compose(im2, rot(M\Symuns[]PI*40.0/180))
 );


    IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],u\Symuns[]char\Symgt[]
 udi(to\Symuns[]uchar(im2.restrict(im1.domain())));

    display( udi );

    return 0;
\Symrbr[]\Endcomp[]
\FgEndblock[]
\Endpara[]
\DivEndiv[]
\DivEndiii[]
\DivLiii[\def\DivLiiiFolioPretextVal{Neighborhood Examples}\def\DivLiiiId{NeighborhoodCodeExamples}]%
\HdMjLiii[]Neighborhood Examples\HdMjEndiii[]
\DivLiv[]\HdMinLiv[]Neighborhood Example 1\HdMinEndiv[]
\Para[]In this example we average an image in a straight forward application
of the neighborhood \Comp[]sum()\Endcomp[] reduction function. However,
this method is somewhat inaccurate at the boundaries of the image.
\FgBlock[]
\FgCap[\def\FgCapType{O}\def\FgCapTypeONumFirstdisp{99}]Neighborhood
Image Averaging with edge effects\FgEndcap[]
\Comp[]
// neighborhood\Symuns[]example.01.c
// Averaging using neighborhoods and the neighborhood reduction
//   function sum().

// We will average the image at each point over a localized set
//   of 9 points, i.e. the point in question and it\Symbs[]\rsquo[]s eight
//   neighboring points.

// We will calculate the average by:
//    1) Creating a summation image, which will have a value equal
//       to the sum of values of the points in the neighborhood.
//    2) Divide the resultant image by the size of the neighborhood.

// Note: This approach has the failing that average calculated at the
//    boundary of the image maybe too small.  This is because this
//    method does not take into account that not every point has a
//    full neighborhood.


\Sympnd[]include \quot[]IntDI.h\quot[]
\Sympnd[]include \quot[]UcharDI.h\quot[]
\Sympnd[]include \quot[]Nbh.h\quot[]


int main() \Symlbr[]

    // Read in the image from the standard input stream: cin
    IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],int\Symgt[]
        in\Symuns[]image = read\Symuns[]int\Symuns[]PGM( cin );

    // Declare the intermediate and final result images
    IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],int\Symgt[]
        sum\Symuns[]image,
        avg\Symuns[]image;

    // Define the point set of the 9 points centered at \Symlt[]0,0\Symgt[]
    IA\Symuns[]Set\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[] \Symgt[]
        nbhd\Symuns[]ps = IA\Symuns[]boxy\Symuns[]pset( IA\Symuns[]Point\Symlt[]int\Symgt[](-1,-1),
                                IA\Symuns[]Point\Symlt[]int\Symgt[]( 1, 1) );

    // Now create the neighborhood based on the point set just defined.
    IA\Symuns[]Neighborhood\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],IA\Symuns[]Point\Symlt[]int\Symgt[] \Symgt[]
        nbhd( 2,          // The dimension of the pointset
              nbhd\Symuns[]ps );  // This is similar to a template\Symbs[]\rsquo[]s image

    // Now we will create the summation image
    sum\Symuns[]image = sum( in\Symuns[]image,
                     nbhd,
                     in\Symuns[]image.domain()  // Resultant image domain
                     );


    // Finally calculate the image by simple division
    avg\Symuns[]image = sum\Symuns[]image/( nbhd\Symuns[]ps.card() );


    // Write the result to the standard output stream
    avg\Symuns[]image.write\Symuns[]PGM( cout );

    return 0;
\Symrbr[]\Endcomp[]
\FgEndblock[]
\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Neighborhood Example 2\HdMinEndiv[]
\Para[]In this example we define a image averaging algorithm employing
neighborhoods that should be accurate over the entire image. The primary
difference between this example and the previous is that we will employ
the array version of the general \Comp[]neighborhood\Symuns[]reduction()%
\Endcomp[] function. This version will only average values that are
in the image, and hence can account for edge effects.
\FgBlock[]
\FgCap[\def\FgCapType{O}\def\FgCapTypeONumFirstdisp{99}]Neighborhood
Image Averaging without edge effects\FgEndcap[]
\Comp[]
// neighborhood\Symuns[]example.02.c
// Averaging using neighborhoods and the array version of the
//    general neighborhood\Symuns[]reduction().

// We will average the image at each point over a localized set
//   of 9 points, the point in question, and it\Symbs[]\rsquo[]s eight
//   neighborhooding point.

// We will calculate the average by:
//    1) Providing an averaging function that takes an array of
//       of values and the array size to determine the average.


// Note: This approach has the failing that average calculated at the
//    boundary of the image maybe too small.  This is because this
//    method does not take into account that not every point has a
//    full neighborhood.


\Sympnd[]include \quot[]IntDI.h\quot[]
\Sympnd[]include \quot[]Nbh.h\quot[]


// This little function simply adds up the elements of an array and
//   returns the average of that value.
//
average\Symuns[]array( int* values, unsigned int array\Symuns[]size ) \Symlbr[]
    int total( 0 );

    // We should probably check if array\Symuns[]size \Symgt[] 0 ...
    for (int i=0; i\Symlt[] array\Symuns[]size; i++ ) \Symlbr[]
        total += values\Symlbk[]i\Symrbk[];
    \Symrbr[]
    return total/array\Symuns[]size;
\Symrbr[]


int main() \Symlbr[]

    // Read in the image from the standard input stream: cin
    IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],int\Symgt[]
        in\Symuns[]image = read\Symuns[]int\Symuns[]PGM( cin );

    IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],int\Symgt[]
        avg\Symuns[]image;

    // Define the point set of the 9 points centered at \Symlt[]0,0\Symgt[]
    IA\Symuns[]Set\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[] \Symgt[]
        nbhd\Symuns[]ps = IA\Symuns[]boxy\Symuns[]pset( IA\Symuns[]Point\Symlt[]int\Symgt[](-1,-1),
                                IA\Symuns[]Point\Symlt[]int\Symgt[]( 1, 1) );

    // Now create the neighborhood based on the point set just defined.
    IA\Symuns[]Neighborhood\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],IA\Symuns[]Point\Symlt[]int\Symgt[] \Symgt[]
        nbhd( 2,          // The dimension of the pointset
              nbhd\Symuns[]ps );  // This is similar to a template\Symbs[]\rsquo[]s image


    // Finally calculate the image by simple division
    avg\Symuns[]image = neighborhood\Symuns[]reduction( in\Symuns[]image,
                                        nbhd,
                                        in\Symuns[]image.domain(),
                                        average\Symuns[]array );


    // Write the result to the standard output stream
    avg\Symuns[]image.write\Symuns[]PGM( cout );

    return 0;
\Symrbr[]\Endcomp[]
\FgEndblock[]
\Endpara[]
\DivEndiv[]
\DivEndiii[]
\DivLiii[\def\DivLiiiFolioPretextVal{}\def\DivLiiiId{templateCodeExamples}]%
\HdMjLiii[]Template Examples\HdMjEndiii[]
\DivLiv[]\HdMinLiv[]Template Example 1\HdMinEndiv[]
\Para[]In this example we illustrate the usage of translation invariant
templates to find boundaries in an image. Two templates are created,
and each is used in two different ways to calculate the interior and
exterior 8\EnDash[]boundary and 4\EnDash[]boundary of the input image.
The resultant images are displayed with the \Comp[]display()%
\Endcomp[] function.
\FgBlock[]
\FgCap[\def\FgCapType{O}\def\FgCapTypeONumFirstdisp{99}]Template constructor%
\FgEndcap[]
\Comp[]
// template\Symuns[]example.01.c

\Sympnd[]include \quot[]DDTempl.h\quot[]
\Sympnd[]include \quot[]UcharConv.h\quot[]


////////////////////////////////////////////////////////////////
// Binary Image Boundaries
////////////////////////////////////////////////////////////////

int main() \Symlbr[]

// The first order of business is to create the two templates
// we need.  The 4-boundary template image is a little harder to
// create because we must create an array of Point\Symlt[]int\Symgt[]s to initialize
// the point set with.  The 8-boundary template image is easier, since
// it is rectangular.


// Create the 4-boundary template image sImage

    IA\Symuns[]Point\Symlt[]int\Symgt[]  sipa\Symlbk[]5\Symrbk[];  // Declare an array for the 5 points
    sipa\Symlbk[]0\Symrbk[] = IA\Symuns[]Point\Symlt[]int\Symgt[]( 0, 0 );
    sipa\Symlbk[]1\Symrbk[] = IA\Symuns[]Point\Symlt[]int\Symgt[]( 1, 0 );
    sipa\Symlbk[]2\Symrbk[] = IA\Symuns[]Point\Symlt[]int\Symgt[]( 0, 1 );
    sipa\Symlbk[]3\Symrbk[] = IA\Symuns[]Point\Symlt[]int\Symgt[]( 0,-1 );
    sipa\Symlbk[]4\Symrbk[] = IA\Symuns[]Point\Symlt[]int\Symgt[](-1, 0 );

    IA\Symuns[]Set\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[] \Symgt[]
        sips( 2,     // Dimension 2
              sipa,  // The array of Point\Symlt[]int\Symgt[]s
              5 );   // The number of Point\Symlt[]int\Symgt[]s.

    IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],u\Symuns[]char\Symgt[]
        sImage(sips, u\Symuns[]char(0) );


// Create the 8-boundary template image tImage

    IA\Symuns[]Set\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[] \Symgt[]
        tips( IA\Symuns[]Point\Symlt[]int\Symgt[](-1,-1),
              IA\Symuns[]Point\Symlt[]int\Symgt[]( 1, 1) );

    IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],u\Symuns[]char\Symgt[]
        tImage(tips, u\Symuns[]char(0) );


// Now we can create the templates s \Symand[] t

    IA\Symuns[]DDTemplate\Symlt[]IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],u\Symuns[]char\Symgt[] \Symgt[]
        s( 2,         // Dimension 2
           sImage ),  // Template range image
        t( 2,
           tImage );


// Now read in the image from standard input
    IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],u\Symuns[]char\Symgt[]
        inImage( read\Symuns[]uchar\Symuns[]PGM( cin ) );


// Force it to be binary.

    IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],u\Symuns[]char\Symgt[]
        aImage( chi\Symuns[]ne( inImage, (u\Symuns[]char) 0 ) );


// Now calculate the external boundaries and display each

    IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],u\Symuns[]char\Symgt[]
        bImage;   // the result image


// Exterior 8-boundary calculation and output
    bImage = (1 - aImage) * addmax\Symuns[]product(aImage, s);
    display( bImage );


// Exterior 4-boundary calculation and output
    bImage = (1 - aImage) * addmax\Symuns[]product(aImage, t );
    display( bImage );

    return 0;
\Symrbr[]\Endcomp[]
\FgEndblock[]
\Endpara[]
\DivEndiv[]
\DivLiv[]\HdMinLiv[]Template Example 2\HdMinEndiv[]
\Para[]In this example we define a magnifying template that utilizes
a function to calculate image values for the template range values.
\FgBlock[]
\FgCap[\def\FgCapType{O}\def\FgCapTypeONumFirstdisp{99}]Template constructor%
\FgEndcap[]
\Comp[]
// template\Symuns[]example.02.c

//
// FloatDI magnification -- non closure version
//

\Sympnd[]include \quot[]FloatDI.h\quot[]
\Sympnd[]include \quot[]UcharDI.h\quot[]           // Needed for display()
\Sympnd[]include \quot[]DDTempl.h\quot[]
\Sympnd[]include \quot[]FloatConv.h\quot[]


const int  ident = 1;
const int  factor = 3;

IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],float\Symgt[] magnify(const IA\Symuns[]Point\Symlt[]int\Symgt[] \Symand[]p)
\Symlbr[]
    IA\Symuns[]Point\Symlt[]int\Symgt[]               inf\Symuns[] = p*factor;
    IA\Symuns[]Point\Symlt[]int\Symgt[]               sup\Symuns[] = (p+1)*factor - 1;

    IA\Symuns[]Set\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[] \Symgt[]
        ps(inf\Symuns[], sup(inf\Symuns[],sup\Symuns[]));

    return IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],float\Symgt[]( ps, 1.0/ps.card() );
\Symrbr[]


int main() \Symlbr[]

    IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],float\Symgt[]
        im = read\Symuns[]int\Symuns[]PGM(cin);

    IA\Symuns[]Set\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[] \Symgt[]
        ps = im.domain();

    IA\Symuns[]DDTemplate\Symlt[]IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],float\Symgt[] \Symgt[]
        mag( IA\Symuns[]universal\Symuns[]ipset(2), magnify );  // Function constructor

    IA\Symuns[]Set\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[] \Symgt[]
        destPS( ps.inf()/factor, ps.sup()/factor );

    IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],int\Symgt[]
        im2 = to\Symuns[]int( linear\Symuns[]product( im, mag, destPS ));

    display(to\Symuns[]uchar(im));
    display(to\Symuns[]uchar(im2));

    return 0;
\Symrbr[]\Endcomp[]
\FgEndblock[]
\Endpara[]
\DivEndiv[]
\DivLiv[\def\DivLivFolioPretextVal{}\def\DivLivId{template-example-03}]%
\HdMinLiv[]Template Example 3\HdMinEndiv[]
\Para[]In this example we define a shrinking template, however, it
is defined by being derived from class \tyxffmxmono[]IA\Symuns[]ClosureDT\Symlt[]I\Symgt[]%
\tyxffmxendmono[]. The advantage of this approach, versus the previous
example, is that the same template definition my be used to create
different shrinking templates. The previous example would need different
functions defined for each desired shrinking template.
\FgBlock[]
\FgCap[\def\FgCapType{O}\def\FgCapTypeONumFirstdisp{99}]Template closure%
\FgEndcap[]
\Comp[]
// template\Symuns[]example.03.c

//
// FloatDI magnification -- closure version
//

\Sympnd[]include \quot[]FloatDI.h\quot[]
\Sympnd[]include \quot[]UcharDI.h\quot[]
\Sympnd[]include \quot[]DDTempl.h\quot[]
\Sympnd[]include \quot[]ClosureDT.h\quot[]
\Sympnd[]include \quot[]FloatConv.h\quot[]


const int       ident=1;


class shrinkDT: public IA\Symuns[]ClosureDT\Symlt[]IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],float\Symgt[] \Symgt[] \Symlbr[]
    int fact;
public:
    shrinkDT(unsigned dim, int fact\Symuns[])
    :IA\Symuns[]ClosureDT\Symlt[]IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],float\Symgt[] \Symgt[](
        IA\Symuns[]universal\Symuns[]ipset(dim)
        ) \Symlbr[]
        fact = fact\Symuns[]; \Symrbr[]

    IA\Symuns[]ClosureDT\Symlt[]IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],float\Symgt[] \Symgt[] *
    clone\Symuns[]self() const \Symlbr[]
        return new shrinkDT(*this); \Symrbr[]

    IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],float\Symgt[]
    operator()(const IA\Symuns[]Point\Symlt[]int\Symgt[] \Symand[]) const;

    ostream \Symand[]print\Symuns[]this(ostream \Symand[]o) const \Symlbr[]
        return o\Symlt[]\Symlt[]\quot[]magnify by \quot[] \Symlt[]\Symlt[] fact \Symlt[]\Symlt[] \quot[]\Symbs[]n\quot[]; \Symrbr[]
\Symrbr[];


IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],float\Symgt[]
shrinkDT::operator()(const IA\Symuns[]Point\Symlt[]int\Symgt[] \Symand[]p) const
\Symlbr[]
    IA\Symuns[]Point\Symlt[]int\Symgt[]               inf\Symuns[] = p*fact;
    IA\Symuns[]Point\Symlt[]int\Symgt[]               sup\Symuns[] = (p+1)*fact -1;
    IA\Symuns[]Set\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[] \Symgt[]
        ps( IA\Symuns[]boxy\Symuns[]pset(inf\Symuns[], sup(inf\Symuns[],sup\Symuns[])) );

    return IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],float\Symgt[]( ps, 1.0/ps.card() );
\Symrbr[]


int main()
\Symlbr[]
    IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],float\Symgt[] 
        im = IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],int\Symgt[]::read\Symuns[]PGM(cin);

    IA\Symuns[]Set\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[] \Symgt[]
        ps = im.domain();

    const int factor=3;

    IA\Symuns[]DDTemplate\Symlt[]IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],float\Symgt[] \Symgt[]
        mag(shrinkDT(2, factor));  // 2-D, 1/3 image size

    IA\Symuns[]Set\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[] \Symgt[] destPS( ps.inf()/factor, ps.sup()/factor );

    IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],int\Symgt[]
        im2 = to\Symuns[]int( linear\Symuns[]product( im, mag, destPS ) );

    display(to\Symuns[]uchar(im));    // display original image
    display(to\Symuns[]uchar(im2));   // display shrunk image

    return 0;
\Symrbr[]\Endcomp[]
\FgEndblock[]
\Endpara[]
\DivEndiv[]
\DivLiv[\def\DivLivId{template-example-04}\def\DivLivFolioPretextVal{}]%
\HdMinLiv[]Template Example 4\HdMinEndiv[]
\Para[]In this example we again calculate image histograms, but utilizing
a template derived from the template closure class \tyxffmxmono[]IA\Symuns[]ClosureDT\Symlt[]I\Symgt[]%
\tyxffmxendmono[].
\FgBlock[]
\FgCap[\def\FgCapType{O}\def\FgCapTypeONumFirstdisp{99}]Template histogram
and smoothing\FgEndcap[]
\Comp[]
// template\Symuns[]example.04.c
//
// Demonstrates image algebra approach to inverse smoothing of an image.
//

\Sympnd[]include \quot[]DDTempl.h\quot[]
\Sympnd[]include \quot[]IntConv.h\quot[]
\Sympnd[]include \quot[]histogram.c\quot[]


int main() \Symlbr[]

    IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],u\Symuns[]char\Symgt[] a, out\Symuns[]uchar;

    // read and display source image

    a = IA\Symuns[]Image\Symlt[] IA\Symuns[]Point\Symlt[]int\Symgt[],u\Symuns[]char\Symgt[]::read\Symuns[]PGM(cin);

    // Here we use the closure constructor for templates.
    // Since IA\Symuns[]HistogramTemplate is derieved from IA\Symuns[]ClosureDT\Symlt[]I\Symgt[]
    //   it is a closure also.

    // The histogram template is parameterized by the image
    //   we want the histogram of, in this case image a.

    IA\Symuns[]DDTemplate\Symlt[] IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],int\Symgt[] \Symgt[]
        h( IA\Symuns[]HistogramTemplate\Symlt[] IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],u\Symuns[]char\Symgt[] \Symgt[](a) );

    // Now define an image which is simply the template sum
    //   of the histogram template.  
    IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],int\Symgt[]
        a\Symuns[]histogram( sum( a.domain(),
                          h,
                          IA\Symuns[]boxy\Symuns[]pset( IA\Symuns[]Point\Symlt[]int\Symgt[](min(a)),
                                        IA\Symuns[]Point\Symlt[]int\Symgt[](max(a)) )
                          ) );

    cout \Symlt[]\Symlt[] a\Symuns[]histogram \Symlt[]\Symlt[] endl;

    return 0;
\Symrbr[]\Endcomp[]
\FgEndblock[]
\Endpara[]
\Para[]The following is the include file and \Comp[]histogram.c%
\Endcomp[].
\FgBlock[]
\FgCap[\def\FgCapType{O}\def\FgCapTypeONumFirstdisp{99}]Template include
file: histogram.c\FgEndcap[]
\Comp[]
// histogram.c
//    This is the implementation file for the template versions of
//    the histogram and cumulative histogram programs.
//

\Sympnd[]include \quot[]UcharDI.h\quot[]
\Sympnd[]include \quot[]IntDI.h\quot[]

\Sympnd[]include \quot[]PSIter.h\quot[]
\Sympnd[]include \quot[]DDTempl.h\quot[]
\Sympnd[]include \quot[]ClosureDT.h\quot[]

//////////////////////////////////////////////////////////////////
//
// class IA\Symuns[]HistogramTemplate\Symlt[]IA\Symuns[]Image\Symlt[]P,T\Symgt[]\Symgt[]
//
//////////////////////////////////////////////////////////////////

// Create a parameterized template which will evaluate
//   to a one point image at each point in the
//   parameterized template domain.

template \Symlt[]class I\Symgt[]
class IA\Symuns[]HistogramTemplate
: public IA\Symuns[]ClosureDT\Symlt[]IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],int\Symgt[] \Symgt[] \Symlbr[]
private:
    I im;   // The image we are creating a histogram for

public:
    IA\Symuns[]HistogramTemplate( const I \Symand[]inImage )
    : IA\Symuns[]ClosureDT\Symlt[]IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],int\Symgt[] \Symgt[](inImage.domain()),
      im(inImage) \Symlbr[]\Symrbr[]

    IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],int\Symgt[]
    operator() (const IA\Symuns[]Point\Symlt[]int\Symgt[] \Symand[]aPt) const;

    IA\Symuns[]ClosureDT\Symlt[]IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],int\Symgt[] \Symgt[] *clone\Symuns[]self() const;

    ostream \Symand[]print\Symuns[]this(ostream \Symand[]o) const;
\Symrbr[];



template \Symlt[]class I\Symgt[]
IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],int\Symgt[]
IA\Symuns[]HistogramTemplate\Symlt[]I\Symgt[]::operator() (const IA\Symuns[]Point\Symlt[]int\Symgt[] \Symand[]aPt) const \Symlbr[]

    // We return an image that is defined only on the support,
    // namely the one point associated with a non-zero value.

    // Hence, we return a one point image, only defined at the
    // template\Symbs[]\rsquo[]s support.
    return
        IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],int\Symgt[](
            IA\Symuns[]Set\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[] \Symgt[]( IA\Symuns[]Point\Symlt[]int\Symgt[](im(aPt)) ),
            1 );
\Symrbr[]


template \Symlt[]class I\Symgt[]
IA\Symuns[]ClosureDT\Symlt[]IA\Symuns[]Image\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[],int\Symgt[] \Symgt[] *
IA\Symuns[]HistogramTemplate\Symlt[]I\Symgt[]::clone\Symuns[]self() const \Symlbr[]
    return new IA\Symuns[]HistogramTemplate\Symlt[]I\Symgt[](this-\Symgt[]im);
\Symrbr[]


template \Symlt[]class I\Symgt[]
ostream \Symand[] IA\Symuns[]HistogramTemplate\Symlt[]I\Symgt[]::print\Symuns[]this(ostream \Symand[]o) const \Symlbr[]

    IA\Symuns[]PSIter\Symlt[]IA\Symuns[]Point\Symlt[]int\Symgt[] \Symgt[]  htIter( (this-\Symgt[]im).domain() );
    // The template point set

    IA\Symuns[]Point\Symlt[]int\Symgt[]          iPt;

    while ( htIter( iPt ) ) \Symlbr[]  // for each point in the domain
        o   \Symlt[]\Symlt[] \quot[](\quot[] \Symlt[]\Symlt[] iPt \Symlt[]\Symlt[] \quot[],\quot[]
            \Symlt[]\Symlt[] this-\Symgt[]operator()(iPt)  // range value is an image
            \Symlt[]\Symlt[] \quot[])\quot[];
    \Symrbr[]
    return o;
\Symrbr[]\Endcomp[]
\FgEndblock[]
\Endpara[]
\DivEndiv[]
\DivEndiii[]
\RearEndapp[]
\RearApp[]\RearApphd[]Configuration Requirements\RearEndapphd[]
\Para[]The current release of the \tyxffmxmono[]iac++%
\tyxffmxendmono[] class library, which includes all documentation,
source and object files, is release \tyxffmxmono[]2.2%
\tyxffmxendmono[]. Versions of the \tyxffmxmono[]iac++%
\tyxffmxendmono[] class library are provided for \Comp[]PC-DOS%
\Endcomp[], \Comp[]Apple PowerMacintosh\Endcomp[], and \Comp[]Unix%
\Endcomp[]\Endpara[]
\DivLiii[]\HdMjLiii[]System Requirements\HdMjEndiii[]
\Para[]The system requirements, as listed in Table \Xref[\def\XrefName{SystemRequirements}],
are known to work. Other configurations may also be compatible, but
have not been tested.\Endpara[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{SystemRequirements}]System Requirements
for DOS, Macintosh, and Unix systems. NOTE: These confirgurations
are know to work, other configurations may also work.\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\108\\145\\146\\152}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\.\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{.}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{c}\def\TabJustV{t}]
DOS
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{c}\def\TabJustV{t}]
Macintosh
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{c}\def\TabJustV{t}]
Unix
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Compiler Tools
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Borland C++ 4.02\newlinetag[]
PowerPack for DOS 1.0
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Symantec C++ 7.0\newlinetag[]
Symantec CDK 7.0.4.1
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Cfront 3.0.3 or\newlinetag[]
g++ 2.6
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\-\\-\\-\\-}\def\TabRuleSave{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Machine
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
80486\newlinetag[]
16MB RAM
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
PowerMacintosh\newlinetag[]
24MB RAM
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Sun Sparcstation
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Operating System
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
DOS 6.x\newlinetag[]
MS-Windows 3.1
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
System 7.1
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
SunOS 4.1.3
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Additional software needed to build
the \tyxffmxmono[]iac++\tyxffmxendmono[] class library from source files.
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\newlinetag[]
\newlinetag[]
m4\newlinetag[]
Perl\newlinetag[]
uudecode
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\newlinetag[]
\newlinetag[]
\newlinetag[]
MacPerl\newlinetag[]
BinHex 4.0
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
GNU gunzip\newlinetag[]
GNU Make\newlinetag[]
GNU m4\newlinetag[]
Perl
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Distribution Disk Space
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
TBD
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
TBD
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
TBD
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Compilation Disk Space
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
TBD
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
TBD
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
TBD
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]How to get the \tyxffmxmono[]iac++%
\tyxffmxendmono[] Documentation\HdMjEndiii[]
\LstList[]
\LstItem[]Connect, via anonymous ftp, to: \tyxffmxmono[]ftp.cis.ufl.edu%
\tyxffmxendmono[].\LstEnditem[]
\LstItem[]\tyxffmxmono[]cd /pub/ia/documents\tyxffmxendmono[].%
\LstEnditem[]
\LstItem[]Change ftp transfer mode to: \tyxtstxbf[]binary%
\tyxtstxendbf[].\LstEnditem[]
\LstItem[]Download the user manual with the command: %
\tyxffmxmono[]get iac++.userman.ps.gz\tyxffmxendmono[]%
\LstEnditem[]
\LstEndlist[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]How to get the \tyxffmxmono[]iac++%
\tyxffmxendmono[] Release\HdMjEndiii[]
\LstList[]
\LstItem[]Connect, via anonymous ftp, to: \tyxffmxmono[]ftp.cis.ufl.edu%
\tyxffmxendmono[].\LstEnditem[]
\LstItem[]\tyxffmxmono[]cd /pub/ia/iac++\tyxffmxendmono[].%
\LstEnditem[]
\LstItem[]Use the appropriate entry from Table \Xref[\def\XrefName{SystemReleases}]
to retrieve the version of the \tyxffmxmono[]iac++%
\tyxffmxendmono[] class library you want.\LstEnditem[]
\LstEndlist[]
\FgBlock[]
\FgCap[\def\FgCapType{T}\def\FgCapId{SystemReleases}]Release file
names and encoding conventions for DOS, Macintosh, and Unix systems.%
\FgEndcap[]
\Tbl[]
\Table[\def\TabColW{\\108\\145\\146\\152}]
\Tabheading[]
\Rrule[\def\TabRuleHS{\\.\\-\\-\\-}\def\TabRuleSave{1}]
\Row[]
\Crule[\def\TabRuleV{.}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{c}\def\TabJustV{t}]
DOS
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{c}\def\TabJustV{t}]
Macintosh
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{c}\def\TabJustV{t}]
Unix
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\+\\+\\+\\+}\def\TabRuleSave{2}]
\Endtabheading[]
\Row[\Rpenalty=10000]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
Binary version of release. Use ftp mode %
\tyxtstxbf[]binary\tyxtstxendbf[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
iac++.pc.zip\newlinetag[]
\newlinetag[]
Pkzip encoded file
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
iac++.mac.sea\newlinetag[]
\newlinetag[]
Self extracting archive file
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
iac++.tar.gz\newlinetag[]
\newlinetag[]
Unix tar and gzip encoded file
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleHS{\\-\\-\\-\\-}\def\TabRuleSave{3}]
\Row[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
ASCII version of release. Use ftp mode
\tyxtstxbf[]ascii\tyxtstxendbf[].
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
iac++.pc.uu\newlinetag[]
\newlinetag[]
Uuencoded file
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
iac++.mac.hqx\newlinetag[]
\newlinetag[]
BinHex encoded file
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Cell[\def\TabJustH{l}\def\TabJustV{t}]
\newlinetag[]
\newlinetag[]
Not provided
\Endcell[]
\Crule[\def\TabRuleV{-}]
\Endrow[]
\Rrule[\def\TabRuleUse{3}]
\Endtable[]
\EndTbl[]
\FgEndblock[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]How to Build the \tyxffmxmono[]iac++%
\tyxffmxendmono[] Class Library\HdMjEndiii[]
\Para[]After retrieving the appropriate version of the %
\tyxffmxmono[]iac++\tyxffmxendmono[] class library, follow the instructions
listed in the file: \tyxffmxmono[]README\tyxffmxendmono[].%
\Endpara[]
\DivEndiii[]
\DivLiii[]\HdMjLiii[]Where to get \tyxffmxmono[]perl%
\tyxffmxendmono[], \tyxffmxmono[]m4\tyxffmxendmono[], %
\tyxffmxmono[]gnumake\tyxffmxendmono[], and \tyxffmxmono[]gunzip%
\tyxffmxendmono[] Documentation and Source Code\HdMjEndiii[]
\LstList[]
\LstItem[]Connect, via anonymous ftp, to: \tyxffmxmono[]prep.ai.mit.edu%
\tyxffmxendmono[].\LstEnditem[]
\LstItem[]Locate the documents in the GNU archives.\LstEnditem[]
\LstItem[]Download the documents of interest to you.%
\LstEnditem[]
\LstEndlist[]
\DivEndiii[]
\RearEndapp[]
\RearApp[]\RearApphd[]Reference Documents\RearEndapphd[]
\Bib[\def\BibHdTxt{References}]\Bibdat[\def\BibdatType{D}\def\BibdatId{/cis/research/vision/bibliography}]%
\BibEnddat[]
\Para[]\Cit[\def\CitPrnt{F}\def\CitId{c++lsr3.0.2im,c++lsr3.0.2lm,c++lsr3.0.2mrdrn}]%
\Endcit[]\Cit[\def\CitPrnt{F}\def\CitId{c++lsr3.0.2rn,c++lsr3.0.2sr}]%
\Endcit[]\Cit[\def\CitPrnt{F}\def\CitId{booch94}]\Endcit[]\Cit[\def\CitPrnt{F}\def\CitId{ellis90}]%
\Endcit[]\Cit[\def\CitPrnt{F}\def\CitId{poskanzer}]\Endcit[]%
\Cit[\def\CitPrnt{F}\def\CitId{seindal91}]\Endcit[]\Cit[\def\CitPrnt{F}\def\CitId{stallman91}]%
\Endcit[]\Cit[\def\CitPrnt{F}\def\CitId{ritter93}]\Endcit[]%
\Cit[\def\CitPrnt{F}\def\CitId{stroustrup91}]\Endcit[]\Cit[\def\CitPrnt{F}\def\CitId{wall91}]%
\Endcit[]\Endpara[]
\Endbib[]
\RearEndapp[]
\RearInx[]
\RearEndinx[]
\RearEndrear[]
\Enddoc[]
