/* $OpenXM: OpenXM/src/ox_gsl/call_gsl_eigen.c,v 1.2 2019/10/26 04:31:10 takayama Exp $ */ #include #include #include #include "ox_gsl.h" extern int Debug; cmo *gsl_complex_to_cmo_array(gsl_complex z) { cmo **cr; cr = (cmo **) GC_malloc(sizeof(cmo *)*2); cr[0] = (cmo *) new_cmo_double(GSL_REAL(z)); cr[1] = (cmo *) new_cmo_double(GSL_IMAG(z)); return (cmo *)new_cmo_list_array((void *)cr,2); } cmo *gsl_vector_complex_to_cmo_array(gsl_vector_complex * v,int n) { cmo **cr; int i; if (n <= 0) return NULL; cr = (cmo **) GC_malloc(sizeof(cmo *)*n); for (i=0; i n0+1) { push(make_error2("call_gsl_eigen_nonsymmv: matrix size must be n^2",NULL,0,-1)); return ; } data = cmo2double_list(&len, mat); for (ii=0; ii