58 for (std::size_t i = 0; i < m.size1(); i++)
59 for (std::size_t s = 0; s < m.size2(); s++)
65 for (std::size_t i = 0; i < input_vec.size(); ++i)
78 std::cout <<
"Computing FFT Matrix" << std::endl;
79 std::cout <<
"m: " << m << std::endl;
80 std::cout <<
"o: " << o << std::endl;
82 std::cout <<
"Done" << std::endl;
83 std::cout <<
"m: " << m << std::endl;
84 std::cout <<
"o: " << o << std::endl;
85 std::cout <<
"Transpose" << std::endl;
89 std::cout <<
"m: " << m << std::endl;
90 std::cout <<
"o: " << o << std::endl;
92 std::cout <<
"---------------------" << std::endl;
97 std::cout <<
"Computing FFT bluestein" << std::endl;
99 std::cout <<
"input_vec: " << input_vec << std::endl;
100 std::cout <<
"Done" << std::endl;
102 std::cout <<
"input_vec: " << input_vec << std::endl;
103 std::cout <<
"output_vec: " << output_vec << std::endl;
104 std::cout <<
"---------------------" << std::endl;
109 std::cout <<
"Computing FFT " << std::endl;
111 std::cout <<
"input_vec: " << input_vec << std::endl;
112 std::cout <<
"Done" << std::endl;
114 std::cout <<
"input_vec: " << input_vec << std::endl;
115 std::cout <<
"output_vec: " << output_vec << std::endl;
116 std::cout <<
"---------------------" << std::endl;
121 std::cout <<
"Computing inverse FFT..." << std::endl;
123 viennacl::inplace_ifft(output_vec);
124 std::cout <<
"input_vec: " << input_vec << std::endl;
125 std::cout <<
"output_vec: " << output_vec << std::endl;
126 std::cout <<
"---------------------" << std::endl;
132 std::cout <<
"Computing real to complex..." << std::endl;
133 std::cout <<
"input_vec: " << input_vec << std::endl;
135 std::cout <<
"output_vec: " << output_vec << std::endl;
136 std::cout <<
"---------------------" << std::endl;
138 std::cout <<
"Computing complex to real..." << std::endl;
139 std::cout <<
"input_vec: " << input_vec << std::endl;
142 std::cout <<
"output_vec: " << output_vec << std::endl;
143 std::cout <<
"---------------------" << std::endl;
148 std::cout <<
"Computing multiply complex" << std::endl;
150 std::cout <<
"input_vec: " << input_vec << std::endl;
151 std::cout <<
"input2_vec: " << input2_vec << std::endl;
153 std::cout <<
"Done" << std::endl;
154 std::cout <<
"output_vec: " << output_vec << std::endl;
155 std::cout <<
"---------------------" << std::endl;
160 std::cout <<
"!!!! TUTORIAL COMPLETED SUCCESSFULLY !!!!" << std::endl;
Implementation of the dense matrix class.
void real_to_complex(viennacl::vector_base< NumericT > const &in, viennacl::vector_base< NumericT > &out, vcl_size_t size)
Create complex vector from real vector (even elements(2*k) = real part, odd elements(2*k+1) = imagina...
void complex_to_real(viennacl::vector_base< NumericT > const &in, viennacl::vector_base< NumericT > &out, vcl_size_t size)
Create real vector from complex vector (even elements(2*k) = real part, odd elements(2*k+1) = imagina...
void bluestein(viennacl::vector< NumericT, AlignmentV > &in, viennacl::vector< NumericT, AlignmentV > &out, vcl_size_t)
Bluestein's algorithm for computing Fourier transformation.
Implementations of Fast Furier Transformation.
void multiply_complex(viennacl::vector< NumericT, AlignmentV > const &input1, viennacl::vector< NumericT, AlignmentV > const &input2, viennacl::vector< NumericT, AlignmentV > &output)
Mutiply two complex vectors and store result in output.
void transpose(viennacl::matrix< NumericT, viennacl::row_major, AlignmentV > &input)
Inplace_transpose matrix.
The vector type with operator-overloads and proxy classes is defined here. Linear algebra operations ...
All routines related to the Fast Fourier Transform. Experimental.
ScalarType fft(std::vector< ScalarType > &in, std::vector< ScalarType > &out, unsigned int, unsigned int, unsigned int batch_size)