lmeigen(3)

LIBRARY ROUTINE
lmeigen - computes the eigenvalues and eigenvectors of a square matrix.

LIBRARY CALL
#include "vinclude.h"
int lmeigen(image,vimage,out_option,arith_type)
  struct xvimage *vimage, *image;
  int arith_type,out_option;

INPUT

image
    pointer to VIFF structure containing image data to be processed.

out_option
    specifies what output is desired. if zero is selected, no output is desired. if 1 is selected, then the eigenvalues only are desired. 2 is used for eigenvectors only. 3 for both eigenvalues and eigenvectors.

arith_type
    type of arithmetic to be used on complex data. 0 specifies scalar arithmetic and 1 specifies vector arithmetic.

OUTPUT

image
    pointer to viff structure containing an array of eigenvectors.

values
    pointer to viff structure containing a triangular matrix of eigenvalues.

Return Value:
    1 on success, 0 on failure.

MODIFICATIONS

Jeremy Worley 09 Aug 1991 10:36 MDT
    Changed real case so that it generates complex results at all times.

Jeremy Worley 27 Jan 1992 09:54 MST
    Changed declaration of leigen() in lmeigen() to static int.

Jeremy Worley 05 Mar 1992 08:44 MST
    Moved the static declaration of leigen into the includes section.

DESCRIPTION
computes the eigenvectors and eigenvalues of a real or complex square matrix.

The input matrices are expected to be n by n, where n is any non zero, positive integer. One matrix is allowed per band. The output consists of two sets of information, the eigenvectors, and the eigenvalues. These are placed in separate files. If the Eigenvalues are output to a file, then they will be output as a diagonal matrix. If the Eigenvectors are output, they will be output as a single matrix consisting of column eigenvectors. The eigenvector in a given column corresponds to the eigenvalue in that same column.

SEE ALSO
meigen(1), intro(3), vipl(3), verror(3), vutils(3)

RESTRICTIONS

AUTHOR
Jeremy Worley

COPYRIGHT
Copyright 1992, University of New Mexico. All rights reserved.