The SDL Component Suite is an industry leading collection of components supporting scientific and engineering computing. Please visit the SDL Web site for more information....


Declaration:function CalcEigVec (InMat: TMatrix): boolean;

The routine CalcEigVec calculates the eigenvectors and eigenvalues of a symmetric matrix InMat. The parameter InMat is a pointer to an instance of the class Matrix. The function CalcEigVec returns the value TRUE, if the calculations have been completed successfully.

The results of CalcEigVec (i.e. the eigenvalues and the eigenvectors) are stored in memory and can be read by the routine GetEigenResult.

CalcEigVec increments the global variable ProcStat and calls the feedback routine MathFeedBackProc in order to allow feedback to the user during time consuming calculations. The CalcEigVec function can be terminated by setting the global variable AbortMathProc to TRUE.

Hint 1: The eigenvalues and eigenvectors are stored in memory as long as either a new calculation is performed or the results are removed from the memory by explicitly calling the routine RemoveEigenMatrix.

Hint 2: CalcEigVec uses Jacobi rotation to calculate the eigenvectors. Thus it must not be applied to asymmetric matrices.

Example: The statement success := CalcEigVec (data); calculates the eigenvectors and eigenvalues of the matrix data. The variable success is set TRUE, if the calculation has been performed successfully.

Last Update: 2023-Dec-10