/*  theigval.c    CCMATH mathematics library source code.
 *
 *  Copyright (C)  2000   Daniel A. Atkinson    All rights reserved.
 *  This code may be redistributed under the terms of the GNU library
 *  public license (LGPL). ( See the lgpl.license file for details.)
 * ------------------------------------------------------------------------
 */
/*
    Test:  heigval

    Uses:  cmprt  matprt

    Input file:  hm4.bin
*/
#include "ccmath.h"
char fmt[]="(%7.3f,%7.3f)";
void main(int na,char **av)
{ Cpx *a; double *ev; int n;
  FILE *fb;
  if(na!=2){ printf("para: input_file\n"); exit(1);}
  fb=fopen(*++av,"rb");
  fread((void *)&n,sizeof(int),1,fb);
  printf(" Hermitian eigenvalues: dim=%d\n",n);
  a=(Cpx *)calloc(n*n,sizeof(Cpx));
  ev=(double *)calloc(n,sizeof(double));
  fread((void *)a,sizeof(Cpx),n*n,fb);
  printf(" H-in:\n"); cmprt(a,n,n,fmt);

/* compute eigenvalues of a Hermitian matrix */
  heigval(a,ev,n);

  printf(" eigenvalues:\n");
  matprt(ev,1,n,"%8.4f");
}
/* Test output

 Hermitian eigenvalues: dim=4
 H-in:
(  2.232, -0.000)( -0.073, -0.075)( -0.321,  0.030)(  0.379,  0.031)
( -0.073,  0.075)(  1.673,  0.000)( -0.102, -0.006)(  0.266, -0.178)
( -0.321, -0.030)( -0.102,  0.006)(  1.284,  0.000)(  0.143,  0.048)
(  0.379, -0.031)(  0.266,  0.178)(  0.143, -0.048)(  1.812,  0.000)
 eigenvalues:
  2.5000  1.0000  2.0000  1.5000
*/


syntax highlighted by Code2HTML, v. 0.9.1