Mercurial > hg > octave-lyh
comparison liboctave/oct-fftw.cc @ 10350:12884915a8e4
merge MArray classes & improve Array interface
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Sat, 23 Jan 2010 21:41:03 +0100 |
parents | 07ebe522dac2 |
children | 331fcc41ca23 |
comparison
equal
deleted
inserted
replaced
10349:d4d13389c957 | 10350:12884915a8e4 |
---|---|
761 octave_fftw::fft (const double *in, Complex *out, size_t npts, | 761 octave_fftw::fft (const double *in, Complex *out, size_t npts, |
762 size_t nsamples, octave_idx_type stride, octave_idx_type dist) | 762 size_t nsamples, octave_idx_type stride, octave_idx_type dist) |
763 { | 763 { |
764 dist = (dist < 0 ? npts : dist); | 764 dist = (dist < 0 ? npts : dist); |
765 | 765 |
766 dim_vector dv (npts); | 766 dim_vector dv (npts, 1); |
767 fftw_plan plan = octave_fftw_planner::create_plan (1, dv, nsamples, | 767 fftw_plan plan = octave_fftw_planner::create_plan (1, dv, nsamples, |
768 stride, dist, in, out); | 768 stride, dist, in, out); |
769 | 769 |
770 fftw_execute_dft_r2c (plan, (const_cast<double *>(in)), | 770 fftw_execute_dft_r2c (plan, (const_cast<double *>(in)), |
771 reinterpret_cast<fftw_complex *> (out)); | 771 reinterpret_cast<fftw_complex *> (out)); |
781 octave_fftw::fft (const Complex *in, Complex *out, size_t npts, | 781 octave_fftw::fft (const Complex *in, Complex *out, size_t npts, |
782 size_t nsamples, octave_idx_type stride, octave_idx_type dist) | 782 size_t nsamples, octave_idx_type stride, octave_idx_type dist) |
783 { | 783 { |
784 dist = (dist < 0 ? npts : dist); | 784 dist = (dist < 0 ? npts : dist); |
785 | 785 |
786 dim_vector dv (npts); | 786 dim_vector dv (npts, 1); |
787 fftw_plan plan = octave_fftw_planner::create_plan (FFTW_FORWARD, 1, dv, | 787 fftw_plan plan = octave_fftw_planner::create_plan (FFTW_FORWARD, 1, dv, |
788 nsamples, stride, | 788 nsamples, stride, |
789 dist, in, out); | 789 dist, in, out); |
790 | 790 |
791 fftw_execute_dft (plan, | 791 fftw_execute_dft (plan, |
799 octave_fftw::ifft (const Complex *in, Complex *out, size_t npts, | 799 octave_fftw::ifft (const Complex *in, Complex *out, size_t npts, |
800 size_t nsamples, octave_idx_type stride, octave_idx_type dist) | 800 size_t nsamples, octave_idx_type stride, octave_idx_type dist) |
801 { | 801 { |
802 dist = (dist < 0 ? npts : dist); | 802 dist = (dist < 0 ? npts : dist); |
803 | 803 |
804 dim_vector dv (npts); | 804 dim_vector dv (npts, 1); |
805 fftw_plan plan = octave_fftw_planner::create_plan (FFTW_BACKWARD, 1, dv, | 805 fftw_plan plan = octave_fftw_planner::create_plan (FFTW_BACKWARD, 1, dv, |
806 nsamples, stride, | 806 nsamples, stride, |
807 dist, in, out); | 807 dist, in, out); |
808 | 808 |
809 fftw_execute_dft (plan, | 809 fftw_execute_dft (plan, |
889 octave_fftw::fft (const float *in, FloatComplex *out, size_t npts, | 889 octave_fftw::fft (const float *in, FloatComplex *out, size_t npts, |
890 size_t nsamples, octave_idx_type stride, octave_idx_type dist) | 890 size_t nsamples, octave_idx_type stride, octave_idx_type dist) |
891 { | 891 { |
892 dist = (dist < 0 ? npts : dist); | 892 dist = (dist < 0 ? npts : dist); |
893 | 893 |
894 dim_vector dv (npts); | 894 dim_vector dv (npts, 1); |
895 fftwf_plan plan = octave_float_fftw_planner::create_plan (1, dv, nsamples, | 895 fftwf_plan plan = octave_float_fftw_planner::create_plan (1, dv, nsamples, |
896 stride, dist, | 896 stride, dist, |
897 in, out); | 897 in, out); |
898 | 898 |
899 fftwf_execute_dft_r2c (plan, (const_cast<float *>(in)), | 899 fftwf_execute_dft_r2c (plan, (const_cast<float *>(in)), |
910 octave_fftw::fft (const FloatComplex *in, FloatComplex *out, size_t npts, | 910 octave_fftw::fft (const FloatComplex *in, FloatComplex *out, size_t npts, |
911 size_t nsamples, octave_idx_type stride, octave_idx_type dist) | 911 size_t nsamples, octave_idx_type stride, octave_idx_type dist) |
912 { | 912 { |
913 dist = (dist < 0 ? npts : dist); | 913 dist = (dist < 0 ? npts : dist); |
914 | 914 |
915 dim_vector dv (npts); | 915 dim_vector dv (npts, 1); |
916 fftwf_plan plan = octave_float_fftw_planner::create_plan (FFTW_FORWARD, 1, | 916 fftwf_plan plan = octave_float_fftw_planner::create_plan (FFTW_FORWARD, 1, |
917 dv, nsamples, | 917 dv, nsamples, |
918 stride, dist, | 918 stride, dist, |
919 in, out); | 919 in, out); |
920 | 920 |
929 octave_fftw::ifft (const FloatComplex *in, FloatComplex *out, size_t npts, | 929 octave_fftw::ifft (const FloatComplex *in, FloatComplex *out, size_t npts, |
930 size_t nsamples, octave_idx_type stride, octave_idx_type dist) | 930 size_t nsamples, octave_idx_type stride, octave_idx_type dist) |
931 { | 931 { |
932 dist = (dist < 0 ? npts : dist); | 932 dist = (dist < 0 ? npts : dist); |
933 | 933 |
934 dim_vector dv (npts); | 934 dim_vector dv (npts, 1); |
935 fftwf_plan plan = octave_float_fftw_planner::create_plan (FFTW_BACKWARD, 1, | 935 fftwf_plan plan = octave_float_fftw_planner::create_plan (FFTW_BACKWARD, 1, |
936 dv, nsamples, | 936 dv, nsamples, |
937 stride, dist, | 937 stride, dist, |
938 in, out); | 938 in, out); |
939 | 939 |