% \input awffonts % should be *before* atexinfo.tex
\input atexinfo   @c -*-texinfo-*-
@c %**start of header
@setfilename vxl.info
@settitle MUL
@setchapternewpage odd
@paragraphindent 0
@c Set up printed page layout.
@iftex
@afourlatex
@end iftex


@ifset makeinfo
@macro anchor{label}
@end macro
@macro ejectallfigures
@end macro
@end ifset

@c Define the @caption{1} macro
@ifnottex
@macro caption{figurenumber}
@quotation
@strong{Figure \figurenumber\:}
@end macro
@macro endcaption
@end quotation
@end macro
@macro figure
@end macro
@end ifnottex

@c Define the chapsummary macro
@ifnottex
@macro chapsummary
@quotation
@strong{Chapter summary}:@*
@c @cartouche
@end macro

@macro endchapsummary
@c @end cartouche
@end quotation
@end macro
@end ifnottex

@iftex
@tex
\gdef\chapsummary{
@quotation
@cartouche
@strong{Chapter summary}:
}
\gdef\endchapsummary{
@Ecartouche
@Equotation
}
@end tex
@end iftex

@c Define the @vxl{} macro.  v, slanted x, l
@iftex
@macro vxl
v{@sl x}l
@end macro
@end iftex
@ifnottex
@macro vxl
vxl
@end macro
@ifhtml
@macro vxl
v@emph{x}l
@end macro
@end ifhtml
@end ifnottex

@c Define the @LaTeX{} macro
@iftex
@tex
\gdef@LaTeX{L\kern-.36em%
        {\setbox0\hbox{T}\vbox to\ht0{\hbox{\smallrm A}\vss}}%
        \kern-.15em\TeX}
@end tex
@end iftex
@ifnottex
@macro LaTeX
LaTeX
@end macro
@end ifnottex

@c Define the @inputclass{name} macro
@macro inputclass{name}
inputclass \name\
@end macro

@c Define @ttb{text}: teletype bold
@iftex
@macro ttb{text}
@newdimen@ttbskip@ttbskip=.5pt@c
@setbox0@hbox{@kern-0.5em\text\}@c
@copy0@kern-@wd0@kern@ttbskip@unhbox0@kern-@ttbskip@c
@end macro
@end iftex
@ifnottex
@macro ttb{text}
@strong{\text\}
@end macro
@end ifnottex

@c %**end of header

@c -----------------------------------------------------------------------------

@node Top, Introduction, (dir), (dir)

@ifinfo
This documents the MUL collection of C++ libraries.

Copyright 2001 Victoria University of Manchester

Permission is granted to copy and distribute, retaining this
original copyright notice.
@end ifinfo

@c  This title page illustrates only one of the
@c  two methods of forming a title page.

@iftex
@titlepage
@title V@emph{X}L
@subtitle A collection of C++ libraries for model-based computer vision.
@author Imaging science

@c  The following two commands start the copyright page.
@page
@vskip 0pt plus 1filll
Copyright @copyright{} 2001 Victoria University of Manchester
@end titlepage
@shortcontents
@contents
@end iftex

@menu
* Introduction::
* mbl::
* vil3d::
* vpdfl::
* clsfy::
* Index::
@end menu

@node    Introduction, mbl, Top, Top
@comment node-name, next,           previous, up
@chapter Introduction
@cindex Introduction
@cindex IUE
@cindex TargetJr

@chapsummary
 mul is VXL compatible model-based computer vision.
@endchapsummary

@section Manchester
@cindex model-based
@cindex ISBE
@cindex Manchester
@cindex modelling
@cindex computer vision

Manchester, despite being better known for its football teams, is the location
of the Dept. of Imaging Science and Biomedical Engineering, at the University
of Manchester. The mul library was written by members of the department.

The department specialises (amongst other things) in model based computer
vision. This roughly means the designing of statistical models which
represent features in those images, means of training these models from
real images, and the extracting of information from test images using
these models.

@section VXL

The mul libraries are build on VXL.

@section Documentation
@cindex book
@cindex documentation, monolithic
The mul documentation comes in two main forms: this book, and structured
comments in the source code, which are automatically extracted.  The book
is intended to be a single reference, where all the high-level
documentation resides.

@subsection The mul Book

The book (in subdirectory @code{mul/doc/book}) is a human-written collection of VXL
documentation, suitable for printing.  It is intended to be readable as an
introduction to the various facilities provided by the mul libraries,
and to be browsable as a first source of examples and tips.

@subsection Automatically generated documentation
@cindex documentation, automatically generated
@cindex doxygen

Although the human-written mul book is the first source, the definitive
authority on what a class or function does must be the source code
comments.  The book will give a high-level description of the most
important and commonly-used features of a class, but the source code
contains the details.  In order to make these details easier to scan, the
mul source files contain specially structured comments, which can be
scanned by the @emph{Doxygen} program and converted into an attractive
hyperlinked reference.

An example of what the syntax for documentation looks like can be found
in @code{vxl/doc/vxl_doc_rules.[h,cxx]}, but briefly a comment line which
begins with @code{//:} is documentation for the type, function, or
variable which follows it.  For example

@smallexample
//: Brief description of my_class
class my_class @{
  //: \brief Brief description, the long one is in the .cxx file
  my_class();
@};
@end smallexample

You can find the doxygen output at
@uref{http://paine.wiau.man.ac.uk/pub/doc_vxl/index.html, The VXL Documentation site}.

@section The Design and Evolution of mul

Design goals:

@itemize @bullet
@item Cross platform

@item Flexible --- allow heavy use of strategy patterns

@item uniform naming -- of course.
@end itemize

Large parts of MUL came from RADIAL a C++ Computer Vision Library developed at
Manchester. Tim Cootes and Ian Scott were principally responsible for this
conversion and the design of the rest.

@comment ------------------------------------------------------------------
@node    mbl, vil3d, Introduction, Top
@comment node-name, next, previous,     up
@chapter mbl: Manchester basics library.
@cindex mbl


@include chapter_mbl.texi

@comment ------------------------------------------------------------------
@node    vil3d, vpdfl, mbl, Top
@comment node-name, next, previous,     up
@chapter vil3d: 3d Image library.
@cindex vil3d

@include chapter_vil3d.texi

@comment ------------------------------------------------------------------
@node    vpdfl, clsfy, vil3d, Top
@comment node-name, next, previous,     up
@chapter vpdfl: Multivariate Probability Density Modelling
@cindex probability
@cindex pdf
@cindex multivariate
@cindex Gaussian


@include chapter_vpdfl.texi

@comment ------------------------------------------------------------------
@node    clsfy, Index, vpdfl, Top
@comment node-name, next, previous,     up
@chapter clsfy: Statistical Classification
@cindex probability
@cindex statistical classifier
@cindex classifier

@include chapter_clsfy.texi


@comment ------------------------------------------------------------------
@appendix  Filenames and structure
The directory structure of mul is below
@example
  $VXLROOT/vcl
          /vxl
          /mul
              /mbl
              /vil3d
              /vpdfl
              /clsfy
@end example

@comment ------------------------------------------------------------------
@appendix  On The Use of Templates
@cindex templates

Most of the mul libraries try to avoid the use of templates wherever possible.
The main reason for this is that you can end up have large numbers of template
variables - basic type, iterator type, return value type, model 1 type,
model 2 type, builder type, etc. and this is ugly and often painful. Other reasons
include avoiding being forced to use member functions with additional
template parameters, confusion for users.

@comment ------------------------------------------------------------------
@node    Index,  , clsfy, Top
@c        node-name,    next, previous,        up
@unnumbered Index

@printindex cp

@bye
