* Re: Some problems in gsl-0.6
2000-06-09 17:38 Some problems in gsl-0.6 Pablo Bianucci
@ 2000-06-11 12:13 ` Brian Gough
0 siblings, 0 replies; 2+ messages in thread
From: Brian Gough @ 2000-06-11 12:13 UTC (permalink / raw)
To: Pablo Bianucci; +Cc: gsl-discuss
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;
>
^ permalink raw reply [flat|nested] 2+ messages in thread