You may have 2 versions of the gsl library installed on your system. When running your program it may be detecting the older library which doesn't contain the function.

Try doing: ldd 'your_executable'

and make sure that the gsl library is pointing to the right one (1.15)

On 11/13/2011 09:28 PM, [email protected] wrote:
Hi,

I write this program:


#include<stdio.h>
#include<gsl/gsl_math.h>
#include<gsl/gsl_eigen.h>

int main()
{
   double data[]= {-0.500000,0.866025,
                 -0.866025,-0.500000};
   int i;
   gsl_matrix_view m = gsl_matrix_view_array(data,2,2);
   gsl_vector_complex *eval=gsl_vector_complex_alloc(2);
   gsl_matrix_complex *evec=gsl_matrix_complex_alloc(2,2);

   gsl_eigen_nonsymmv_workspace * w = gsl_eigen_nonsymmv_alloc (2);
   gsl_eigen_nonsymmv(&m.matrix, eval, evec, w);

   gsl_eigen_nonsymmv_free(w);

   for(i=0;i<2;i++){
    gsl_complex eval_i = gsl_vector_complex_get(eval,i);
    printf("eigenvalue = % 5f + I % 5f \n",GSL_REAL(eval_i),GSL_IMAG(eval_i));

   }

   gsl_vector_complex_free(eval);
   gsl_matrix_complex_free(evec);

   return 0;
}

It complies okay. When I run it I get the error:
./cplxdiag: symbol lookup error: ./cplxdiag: undefined symbol:
gsl_eigen_nonsymmv_alloc

I am using the version 1.15. This error is not there in an earlier version
which I use in my laptop. There it gives me the correct result:

eigenvalue = -0.500000 + I  0.866025
eigenvalue = -0.500000 + I -0.866025

It would be very nice if this can be fixed as soon as possible.

with best regards,
Debasish Banerjee

Post-Doctoral Fellow
Albert Einstein Centre for Fundamental Physcics,
Institute of Theoretical Physics,
University of Bern.




_______________________________________________
Bug-gsl mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-gsl


_______________________________________________
Bug-gsl mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-gsl

Reply via email to