HELP POPMATLAB                                 Aaron Sloman January 2005
                                            Based on work by David Young


LIB POPMATLAB

                Pop11 Matrix/Array Linear Algebra Library
                -----------------------------------------


CONTENTS

 -- Introduction
 -- Array creation utilities
 -- LIB * ARRPACK
 -- LIB * LAPACK
 -- LIB * LAPOP
 -- External language interface
 -- NOTE:

-- Introduction

This is a 'virtual' package which makes visible a subset of the
facilities included in the popvision package, providing general purpose
mathematical tools that are not restricted to being used for vision,
including the well known BLAS and LAPACK toolkits, which are here
made available from pop11.

(At some later stage, the relevant portions of the Popvision library may
be extracted to form a separate package located here.)

To make the facilities available do

    uses popmatlab


This will make the following available:

-- Array creation utilities

Facilities for creating  a variety of types of arrays: of integers,
  bytes, single floats, double floats, single complex numbers, double
  complex numbers.

    * newintarray creates packed integer arrays.

    * newdfloatarray creates double-precision packed floating-point arrays.

    * newrfloatarray creates packed floating-point arrays with precision
        depending on popdprecision.

    * newcfloatarray creates complex single-precision packed
        floating-point arrays with alternating real and imaginary parts.

    * newzfloatarray creates complex double-precision packed floating-point
        arrays with alternating real and imaginary parts.


-- LIB * ARRPACK

    This provides procedures for arithmetic and logical operations on
    real and complex arrays, using external procedures for efficiency.
    This includes facilities for manipulating 1-D and 2-D arrays,
    treating them as matrices to which matrix operations can be applied.
    A whole array or a subset of its elements may be processed in a
    single procedure call.

    To make it available do

        uses arrpack

    For further details see HELP * ARRPACK


-- LIB * LAPACK

    provides an interface between Pop-11 and the Lapack and BLAS
    libraries of routines for linear algebra (matrix operations). Lapack
    and BLAS together provide a suite of high-quality routines for
    linear algebra. For more details, see their web sites:

        http://www.netlib.org/lapack/ http://www.netlib.org/blas/

    LIB LAPACK offers a straightforward way to call many of these
    routines from Pop-11. It offers:

    * loading of the external procedures;

    * simplified calling sequences;

    * argument consistency checking;

    * translation from Pop-11 arrays and array regions to external
    representations;

    * efficient management of workspace arguments.

To make it available do

    uses lapack

    For further details, including problems of checking that the
    BLAS and LAPACK libraries are available and accessible, see
    HELP * LAPACK


-- LIB * LAPOP

    This provides a set of procedures for linear algebra, based on BLAS
    and LAPACK. The library provides a set of procedures for performing
    some of the standard operations of linear algebra. It does not
    attempt to cover all possible operations on arrays, but rather those
    specific to their use as representations of matrices: matrix
    multiplication; exact and least-squares solution of linear
    equations; eigenvalues and eigenvectors; singular value
    decomposition. Both real and complex calculations are supported.

    The calling sequences and conventions are as simple as possible, and
    the library is flexible with respect to the types of data arrays.
    However, it may be used in a way that maximises efficiency - for
    example, garbage generation may be kept low if that is important.

To make it available do

    uses lapop

For further details, including examples, see HELP * LAPOP

NOTE:
    * lapack gives a direct interface to the Lapack linear algebra package,
    which has very wide scope.

    * lapop gives a simpler, higher-level interface to some common linear
    algebra functions, including matrix multiplication, linear equations,
    least-squares problems, eigenvalue and singular value decompositions.



-- External language interface

    * excall allows external functions to be passed the addresses of
      arbitrary elements of vectors.

To make it available do

    uses excall

See also HELP * EXCALL

-- NOTE:

If you don't have blas and lapack on your machine, and wish to use the
new mathematical libraries, you can fetch and install the following
from:
     http://ftp.pld.org.pl/dists/ac/ready/


--- $usepop/pop/packages/popmatlab/help/popmatlab

--- Copyright University of Sussex 2005. All rights reserved.
