int gsl_fft_complex_radix2_forward (double * data, const size_t stride, const size_t n) { gsl_fft_direction sign = gsl_fft_forward; int status = gsl_fft_complex_radix2_transform (data, stride, n, sign); return status; }
static VALUE rb_gsl_fft_complex_radix2_transform2(VALUE obj, VALUE val_sign) { size_t stride, n; gsl_complex_packed_array data; gsl_fft_direction sign; VALUE ary; sign = NUM2INT(val_sign); ary = get_complex_stride_n(obj, NULL, &data, &stride, &n); gsl_fft_complex_radix2_transform(data, stride, n, sign); return ary; }
static VALUE rb_gsl_fft_complex_radix2_transform(VALUE obj, VALUE val_sign) { size_t stride, n; gsl_complex_packed_array data; gsl_fft_direction sign; gsl_vector_complex *vin, *vout; sign = NUM2INT(val_sign); get_complex_stride_n(obj, &vin, &data, &stride, &n); vout = gsl_vector_complex_alloc(n); gsl_vector_complex_memcpy(vout, vin); gsl_fft_complex_radix2_transform(vout->data, vout->stride /*1*/, vout->size /*n*/, sign); return Data_Wrap_Struct(cgsl_vector_complex, 0, gsl_vector_complex_free, vout); }