Eigen(3) NYH Eigen(3) Version 1.0 NAME Eigen - Package for finding the largest eigenvalues of a real symmetric matrix and corresponding eigenvectors SYNOPSIS #include <eigen.h> extern int smoothing; matrix matrixalloc(size) int size; void matrixfree(m,size) int size; matrix rectalloc(rows,cols) int rows, cols; vector vectoralloc(size) int size; void vectorfree(v) vector v; void eigen(m, s, vals, vecs, n) matrix m; int s; matrix vecs; vector vals; int n; DESCRIPTION This is the manual for the C language implementation of the algorithm to find the largest eigenvalues of a real symmetric matrix and corresponding eigenvectors described in Nadav Harel's report "Finding the largest eigenvalues of a real symmetric matrix, and corresponding eigenvectors". This manual only serves as an explanation for the C language implementation of the algorithm, and it is assumed that you have read the report for the mathematical discussion. The main routine defined in this package is eigen. To define the symmetric matrix m whose eigenvalues and eigenvectors are to be found, first allocate a matrix of the wanted size with the matrixalloc function. Next, assign the matrix the wanted values. Notice that the matrix m should be treated like a two dimensional array: m[i][j] is the value in the i'th row and j'th column of the matrix (where i and j are between 0 and size-1). Note that only values where j<=i should be defined, since only that half of the symmetric matrix is looked at. The parameter s of eigen is the size of the matrix m, and the parameter n is the number of wanted eigenvalues. Next you should allocate a vector vals of length n using vectoralloc, in which the - 1 - Formatted: November 14, 2024 Eigen(3) NYH Eigen(3) Version 1.0 eigenvalues are returned. Also, using rectalloc(n,s), allocate a rectangular matrix vecs in which the eigenvectors will be put (e.g., vecs[0] is the vector corresponding to vals[0] which is the biggest eigenvalue). To free unused matrices and vectors, use the freeing functions listed above. Note that the size given to matrixalloc must be again given to matrixfree. Failing to do that, or giving a wrong number may have fatal results. To free a rectangular matrix, just use matrixfree, with the number of rows as the parameter. Note that after eigen returns, the matrix given in m will be overwritten, so m should be freed after eigen returns, so save memory. To choose between the smoothing methods (see report for more explanation), set smoothing to POWERSMOOTH or ADAPTIVESMOOTH, which are defined in eigen.h. If ,I smoothing is not set, then the default is ADAPTIVESMOOTH. COPYRIGHT Copyright (C) 1992 by Nadav Har'El, E-mail: nyh@gauss.technion.ac.il All Rights Reserved - 2 - Formatted: November 14, 2024