#include <stdio.h>
#include <nicklib.h>
#include <stdlib.h>
#include "eigsubs.h"
#include <unistd.h>

int main()
{
  int NSAMPLES, n, k;
  double *eval, *evec, *XTX;

  NSAMPLES = 2;

  /* malloc */
  if((eval = (double *) malloc(NSAMPLES*sizeof(*eval))) == NULL)
    { fprintf(stderr,"CM\n");  exit(1); }
  if((evec = (double *) malloc(NSAMPLES*NSAMPLES*sizeof(*evec))) == NULL)
    { fprintf(stderr,"CM\n");  exit(1); }
  if((XTX = (double *) malloc(NSAMPLES*NSAMPLES*sizeof(*XTX))) == NULL)
    { fprintf(stderr,"CM\n");  exit(1); }

  XTX[0] = 1; XTX[1] = 0; XTX[2] = 0; XTX[3] = 1; /* 2x2 identity matrix */

  eigvecs(XTX, eval, evec, NSAMPLES); /* eigenvector k is evec[k*NSAMPLES+n] */

  /* print eval and evec */
  printf("The eigenvectors of the 2x2 identity matrix are:\n");
  for(n=0; n<NSAMPLES; n++)
  {
    for(k=0; k<NSAMPLES; k++)
    {
      printf(" ");
      printf("%.02f",evec[k*NSAMPLES+n]);
    }
    printf("\n");
  }
  return 0;
}
