Hi,
I have a potential bug to report:
GSL Version: 1.8
HW/OS: Dell Pentium D running Linux CentOS 4.4 Kernel 2.6.9-42 Elsmp on
i686
Compiler: GCC 3.4.6
I have been getting program crashes after using stride values greater
than 1 with the FFT functions. The crashes seem to happen when I try to
free the data buffer that I passed into the FFT function which I
dynamically allocated. My program also crashes sometimes if I free the
wavetable and workspaces. Changing the stride value that I pass into
the FFT function seems to affect which deallocation will fail. Also, it
doesn't seem to be limited to a specific FFT function. The following is
a test program that will hopefully illustrate the problem that I have
been having:
#include <stdio.h>
#include <gsl/gsl_errno.h>
#include <gsl/gsl_fft_complex.h>
int main(void)
{
double* data = malloc(32*sizeof(double));
gsl_fft_complex_wavetable *table =
gsl_fft_complex_wavetable_alloc(16);
gsl_fft_complex_workspace *space =
gsl_fft_complex_workspace_alloc(16);
int i;
for (i = 0; i < 32; i++)
{
data[i] = i;
printf("data[%d] = %f\n", i, data[i]);
}
int retCode = gsl_fft_complex_forward(
data, 2, 16, table, space);
printf("return code = %d\n", retCode);
for (i = 0; i < 32; i++)
{
printf("data[%d] = %f\n", i, data[i]);
}
printf("freeing wavetable\n");
gsl_fft_complex_wavetable_free(table);
printf("free workspace\n");
gsl_fft_complex_workspace_free(space);
printf("free data buffer\n");
free(data);
}
Regards,
Aaron Brown
[EMAIL PROTECTED]
_______________________________________________
Bug-gsl mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-gsl