All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
fft_1d.cpp File Reference
`#include <iostream>`
`#include <vector>`
`#include <cmath>`
`#include <complex>`
`#include <algorithm>`
`#include "viennacl/linalg/host_based/fft_operations.hpp"`
`#include "viennacl/linalg/fft_operations.hpp"`
`#include "viennacl/fft.hpp"`

Go to the source code of this file.

## Classes

struct | testData

## Typedefs

typedef float | ScalarType
typedef ScalarType(* | test_function_ptr )(std::vector< ScalarType > &, std::vector< ScalarType > &, unsigned int, unsigned int, unsigned int)
typedef void(* | input_function_ptr )(std::vector< ScalarType > &, std::vector< ScalarType > &, unsigned int &, unsigned int &, unsigned int &, const std::string &)

## Functions

void | set_values_struct (std::vector< ScalarType > &input, std::vector< ScalarType > &output, unsigned int &rows, unsigned int &cols, unsigned int &batch_size, testData &data)
void | set_values_struct (std::vector< ScalarType > &input, std::vector< ScalarType > &input2, std::vector< ScalarType > &output, unsigned int &rows, unsigned int &cols, unsigned int &batch_size, testData &data)
void | read_vectors_pair (std::vector< ScalarType > &input, std::vector< ScalarType > &output, unsigned int &rows, unsigned int &cols, unsigned int &batch_size, const std::string &log_tag)
void | read_vectors_three (std::vector< ScalarType > &input, std::vector< ScalarType > &input2, std::vector< ScalarType > &output, unsigned int &rows, unsigned int &cols, unsigned int &batch_size, const std::string &log_tag)
template<typename ScalarType >
ScalarType | diff (std::vector< ScalarType > &vec, std::vector< ScalarType > &ref)
template<typename ScalarType >
ScalarType | diff_max (std::vector< ScalarType > &vec, std::vector< ScalarType > &ref)
template<class SCALARTYPE , unsigned int ALIGNMENT>
void | copy_to_vector (std::complex< SCALARTYPE > *input_complex, viennacl::vector< SCALARTYPE, ALIGNMENT > &in, unsigned int size)
template<class SCALARTYPE >
void | copy_to_vector (std::complex< SCALARTYPE > *input_complex, SCALARTYPE *in, unsigned int size)
template<class SCALARTYPE >
void | copy_to_complex_array (std::complex< SCALARTYPE > *input_complex, const SCALARTYPE *in, int size)
void | convolve_ref (std::vector< ScalarType > &in1, std::vector< ScalarType > &in2, std::vector< ScalarType > &out)
ScalarType | fft (std::vector< ScalarType > &in, std::vector< ScalarType > &out, unsigned int, unsigned int, unsigned int batch_size)
ScalarType | direct (std::vector< ScalarType > &in, std::vector< ScalarType > &out, unsigned int, unsigned int, unsigned int batch_num)
ScalarType | bluestein (std::vector< ScalarType > &in, std::vector< ScalarType > &out, unsigned int, unsigned int, unsigned int batch_size)
ScalarType | radix2 (std::vector< ScalarType > &in, std::vector< ScalarType > &out, unsigned int, unsigned int, unsigned int batch_num)
ScalarType | fft_ifft_radix2 (std::vector< ScalarType > &in, std::vector< ScalarType > &, unsigned int, unsigned int, unsigned int batch_num)
ScalarType | ifft_fft_radix2 (std::vector< ScalarType > &in, std::vector< ScalarType > &, unsigned int, unsigned int, unsigned int batch_num)
ScalarType | fft_reverse_direct (std::vector< ScalarType > &in, std::vector< ScalarType > &out, unsigned int, unsigned int, unsigned int)
ScalarType | real_to_complex (std::vector< ScalarType > &in, std::vector< ScalarType > &out, unsigned int, unsigned int, unsigned int)
ScalarType | complex_to_real (std::vector< ScalarType > &in, std::vector< ScalarType > &out, unsigned int, unsigned int, unsigned int)
ScalarType | multiply_complex (std::vector< ScalarType > &in, std::vector< ScalarType > &in2, std::vector< ScalarType > &out)
ScalarType | convolve (std::vector< ScalarType > &in1, std::vector< ScalarType > &in2, unsigned int, unsigned int, unsigned int)
int | test_correctness (const std::string &log_tag, input_function_ptr input_function, test_function_ptr func)
int | testcorrectnes_multiply (const std::string &log_tag)
int | main ()

## Variables

const ScalarType | EPS = ScalarType(0.06f)

## Detailed Description

Tests the one-dimensional FFT routines.

Test:
  Tests the one-dimensional FFT routines.

Definition in file fft_1d.cpp.

## Typedef Documentation

typedef void(* input_function_ptr)(std::vector< ScalarType > &, std::vector< ScalarType > &, unsigned int &, unsigned int &, unsigned int &, const std::string &)

Definition at line 48 of file fft_1d.cpp.

typedef float ScalarType

Examples:
  amg.cpp, blas1.cpp, blas2.cpp, blas3.cpp, custom-context.cpp, custom-kernels.cpp, fft.cpp, iterative-armadillo.cpp, iterative-custom.cpp, iterative-eigen.cpp, iterative-mtl4.cpp, iterative-ublas.cpp, iterative.cpp, lanczos.cpp, least-squares.cpp, matrix-free.cpp, matrix-range.cpp, multithreaded.cpp, multithreaded_cg.cpp, power-iter.cpp, qr.cpp, qr_method.cpp, scheduler.cpp, spai.cpp, sparse.cpp, structured-matrices.cpp, tql2.cpp, vector-range.cpp, and wrap-host-buffer.cpp.

Definition at line 42 of file fft_1d.cpp.

typedef ScalarType(* test_function_ptr)(std::vector< ScalarType > &, std::vector< ScalarType > &, unsigned int, unsigned int, unsigned int)

Definition at line 46 of file fft_1d.cpp.

## Function Documentation

ScalarType bluestein | ( | std::vector< ScalarType > & | in,
|  | std::vector< ScalarType > & | out,
|  | unsigned | int,
|  | unsigned | int,
|  | unsigned int | batch_size
| ) |  |

Definition at line 762 of file fft_1d.cpp.

ScalarType complex_to_real | ( | std::vector< ScalarType > & | in,
|  | std::vector< ScalarType > & | out,
|  | unsigned | int,
|  | unsigned | int,
|  | unsigned | int
| ) |  |

Definition at line 896 of file fft_1d.cpp.

ScalarType convolve | ( | std::vector< ScalarType > & | in1,
|  | std::vector< ScalarType > & | in2,
|  | unsigned | int,
|  | unsigned | int,
|  | unsigned | int
| ) |  |

Definition at line 944 of file fft_1d.cpp.

void convolve_ref | ( | std::vector< ScalarType > & | in1,
|  | std::vector< ScalarType > & | in2,
|  | std::vector< ScalarType > & | out
| ) |  |

Definition at line 693 of file fft_1d.cpp.

template<class SCALARTYPE >

void copy_to_complex_array | ( | std::complex< SCALARTYPE > * | input_complex,
|  | const SCALARTYPE * | in,
|  | int | size
| ) |  |

Definition at line 680 of file fft_1d.cpp.

template<class SCALARTYPE , unsigned int ALIGNMENT>

void copy_to_vector | ( | std::complex< SCALARTYPE > * | input_complex,
|  | viennacl::vector< SCALARTYPE, ALIGNMENT > & | in,
|  | unsigned int | size
| ) |  |

Definition at line 658 of file fft_1d.cpp.

template<class SCALARTYPE >

void copy_to_vector | ( | std::complex< SCALARTYPE > * | input_complex,
|  | SCALARTYPE * | in,
|  | unsigned int | size
| ) |  |

Definition at line 668 of file fft_1d.cpp.

template<typename ScalarType >

ScalarType diff | ( | std::vector< ScalarType > & | vec,
|  | std::vector< ScalarType > & | ref
| ) |  |

Definition at line 621 of file fft_1d.cpp.

template<typename ScalarType >

ScalarType diff_max | ( | std::vector< ScalarType > & | vec,
|  | std::vector< ScalarType > & | ref
| ) |  |

Definition at line 636 of file fft_1d.cpp.

ScalarType direct | ( | std::vector< ScalarType > & | in,
|  | std::vector< ScalarType > & | out,
|  | unsigned | int,
|  | unsigned | int,
|  | unsigned int | batch_num
| ) |  |

Definition at line 740 of file fft_1d.cpp.

ScalarType fft | ( | std::vector< ScalarType > & | in,
|  | std::vector< ScalarType > & | out,
|  | unsigned | int,
|  | unsigned | int,
|  | unsigned int | batch_size
| ) |  |

Examples:
  fft.cpp.

Definition at line 719 of file fft_1d.cpp.

ScalarType fft_ifft_radix2 | ( | std::vector< ScalarType > & | in,
|  | std::vector< ScalarType > & | ,
|  | unsigned | int,
|  | unsigned | int,
|  | unsigned int | batch_num
| ) |  |

Definition at line 805 of file fft_1d.cpp.

ScalarType fft_reverse_direct | ( | std::vector< ScalarType > & | in,
|  | std::vector< ScalarType > & | out,
|  | unsigned | int,
|  | unsigned | int,
|  | unsigned | int
| ) |  |

Definition at line 851 of file fft_1d.cpp.

ScalarType ifft_fft_radix2 | ( | std::vector< ScalarType > & | in,
|  | std::vector< ScalarType > & | ,
|  | unsigned | int,
|  | unsigned | int,
|  | unsigned int | batch_num
| ) |  |

Definition at line 828 of file fft_1d.cpp.

int main | ( |  | ) |

Definition at line 1018 of file fft_1d.cpp.

ScalarType multiply_complex | ( | std::vector< ScalarType > & | in,
|  | std::vector< ScalarType > & | in2,
|  | std::vector< ScalarType > & | out
| ) |  |

Definition at line 918 of file fft_1d.cpp.

ScalarType radix2 | ( | std::vector< ScalarType > & | in,
|  | std::vector< ScalarType > & | out,
|  | unsigned | int,
|  | unsigned | int,
|  | unsigned int | batch_num
| ) |  |

Definition at line 783 of file fft_1d.cpp.

void read_vectors_pair | ( | std::vector< ScalarType > & | input,
|  | std::vector< ScalarType > & | output,
|  | unsigned int & | rows,
|  | unsigned int & | cols,
|  | unsigned int & | batch_size,
|  | const std::string & | log_tag
| ) |  |

Definition at line 584 of file fft_1d.cpp.

void read_vectors_three | ( | std::vector< ScalarType > & | input,
|  | std::vector< ScalarType > & | input2,
|  | std::vector< ScalarType > & | output,
|  | unsigned int & | rows,
|  | unsigned int & | cols,
|  | unsigned int & | batch_size,
|  | const std::string & | log_tag
| ) |  |

Definition at line 611 of file fft_1d.cpp.

ScalarType real_to_complex | ( | std::vector< ScalarType > & | in,
|  | std::vector< ScalarType > & | out,
|  | unsigned | int,
|  | unsigned | int,
|  | unsigned | int
| ) |  |

Definition at line 873 of file fft_1d.cpp.

void set_values_struct | ( | std::vector< ScalarType > & | input,
|  | std::vector< ScalarType > & | output,
|  | unsigned int & | rows,
|  | unsigned int & | cols,
|  | unsigned int & | batch_size,
|  | testData & | data
| ) |  |

Definition at line 540 of file fft_1d.cpp.

void set_values_struct | ( | std::vector< ScalarType > & | input,
|  | std::vector< ScalarType > & | input2,
|  | std::vector< ScalarType > & | output,
|  | unsigned int & | rows,
|  | unsigned int & | cols,
|  | unsigned int & | batch_size,
|  | testData & | data
| ) |  |

Definition at line 561 of file fft_1d.cpp.

int test_correctness | ( | const std::string & | log_tag,
|  | input_function_ptr | input_function,
|  | test_function_ptr | func
| ) |  |

Definition at line 970 of file fft_1d.cpp.

int testcorrectnes_multiply | ( | const std::string & | log_tag | ) |

Definition at line 997 of file fft_1d.cpp.

## Variable Documentation

const ScalarType EPS = ScalarType(0.06f)

Definition at line 44 of file fft_1d.cpp.