This is the mail archive of the gsl-discuss@sourceware.cygnus.com mailing list for the GSL project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Some problems in gsl-0.6


Thanks for the bug reports. I will fix those. The multiplicity factor
is missing with ...memcpy also, same problem.

We don't have any routines for diagonalizing complex matrices at the
moment.

Pablo Bianucci writes:
 > Hi!
 > 
 > I am writing a program that does some manipulations on complex matrices and
 > found some buglets:
 > 
 > 1) gsl_matrix_complex_{column,vector} and gsl_vector_complex_subvector 
 > return wrong vectors (they miscompute the start address for the vector data)
 > I think that the submatrices functions may be affected by the same problem.
 > 
 > 2) The complex math functions were not being linked into the library.
 > 
 > 3) gsl_matrix_complex_memcpy failed to copy some parts of a matrix.
 > 
 > I have patches for 1 and 2 (I don't know if they are right, though), and I 
 > could not find why 3 happens.
 > 
 > BTW, are there any routines for diagonalization of complex matrices?
 > 
 > Bye & Good Luck!
 > 
 > Pablo B.
 > 
 > P.S.: As the patches are short, I am attaching them to the message. I apologize
 > if that is not right.
 > 
 > diff -r -u gsl-0.6.orig/Makefile.am gsl-0.6/Makefile.am
 > --- gsl-0.6.orig/Makefile.am	Fri Jun  2 23:23:20 2000
 > +++ gsl-0.6/Makefile.am	Wed Jun  7 00:23:23 2000
 > @@ -4,7 +4,7 @@
 >  
 >  SUBDIRS = gsl utils sys test err complex block vector matrix permutation sort ieee-utils blas linalg eigen specfunc dht qrng rng randist fft poly statistics siman sum integration interpolation histogram monte ode-initval roots multiroots min multimin doc
 >  
 > -SUBLIBS = blas/libgslblas.la block/libgslblock.la dht/libgsldht.la eigen/libgsleigen.la err/libgslerr.la test/libgsltest.la fft/libgslfft.la histogram/libgslhistogram.la ieee-utils/libgslieeeutils.la integration/libgslintegration.la interpolation/libgslinterpolation.la linalg/libgsllinalg.la matrix/libgslmatrix.la min/libgslmin.la monte/libgslmonte.la multimin/libgslmultimin.la multiroots/libgslmultiroots.la ode-initval/libgslodeiv.la permutation/libgslpermutation.la poly/libgslpoly.la qrng/libgslqrng.la randist/libgslrandist.la rng/libgslrng.la roots/libgslroots.la siman/libgslsiman.la sort/libgslsort.la specfunc/libgslspecfunc.la statistics/libgslstatistics.la sum/libgslsum.la sys/libgslsys.la utils/libutils.la vector/libgslvector.la
 > +SUBLIBS = blas/libgslblas.la block/libgslblock.la dht/libgsldht.la eigen/libgsleigen.la err/libgslerr.la test/libgsltest.la fft/libgslfft.la histogram/libgslhistogram.la ieee-utils/libgslieeeutils.la integration/libgslintegration.la interpolation/libgslinterpolation.la linalg/libgsllinalg.la matrix/libgslmatrix.la min/libgslmin.la monte/libgslmonte.la multimin/libgslmultimin.la multiroots/libgslmultiroots.la ode-initval/libgslodeiv.la permutation/libgslpermutation.la poly/libgslpoly.la qrng/libgslqrng.la randist/libgslrandist.la rng/libgslrng.la roots/libgslroots.la siman/libgslsiman.la sort/libgslsort.la specfunc/libgslspecfunc.la statistics/libgslstatistics.la sum/libgslsum.la sys/libgslsys.la utils/libutils.la vector/libgslvector.la complex/libgslcomplex.la
 >  
 >  bin_SCRIPTS = gsl-config
 >  
 > diff -r -u gsl-0.6.orig/matrix/rowcol_source.c gsl-0.6/matrix/rowcol_source.c
 > --- gsl-0.6.orig/matrix/rowcol_source.c	Fri May 19 22:05:56 2000
 > +++ gsl-0.6/matrix/rowcol_source.c	Wed Jun  7 00:56:36 2000
 > @@ -67,7 +67,7 @@
 >        GSL_ERROR_RETURN ("row index is out of range", GSL_EINVAL, v);
 >      }
 >  
 > -  v.data = m->data + i * m->tda;
 > +  v.data = m->data + i * MULTIPLICITY * m->tda;
 >    v.size = m->size2;
 >    v.stride = 1;
 >  
 > @@ -84,7 +84,7 @@
 >        GSL_ERROR_RETURN ("column index is out of range", GSL_EINVAL, v);
 >      }
 >  
 > -  v.data = m->data + j;
 > +  v.data = m->data + j * MULTIPLICITY;
 >    v.size = m->size1;
 >    v.stride = m->tda;
 >  
 > diff -r -u gsl-0.6.orig/vector/init_source.c gsl-0.6/vector/init_source.c
 > --- gsl-0.6.orig/vector/init_source.c	Fri May 19 22:06:40 2000
 > +++ gsl-0.6/vector/init_source.c	Wed Jun  7 01:20:40 2000
 > @@ -214,7 +214,7 @@
 >        GSL_ERROR_RETURN ("vector would extend past end of vector", GSL_EDOM, s);
 >      }
 >  
 > -  s.data = v->data +  v->stride * offset ;
 > +  s.data = v->data +  v->stride * MULTIPLICITY * offset ;
 >    s.size = n;
 >    s.stride = v->stride;
 >  
 > @@ -241,7 +241,7 @@
 >        GSL_ERROR_RETURN ("vector would extend past end of vector", GSL_EDOM, s);
 >      }
 >  
 > -  s.data = v->data + v->stride * offset ;
 > +  s.data = v->data + v->stride * MULTIPLICITY * offset ;
 >    s.size = n;
 >    s.stride = v->stride * stride;
 >  

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]