Highly Efficient FFT for Exascale: HeFFTe v2.3
heffte_compute_transform.h
1 /*
2  -- heFFTe --
3  Univ. of Tennessee, Knoxville
4  @date
5 */
6 
7 #ifndef HEFFTE_COMPUTE_TRANSFORM_H
8 #define HEFFTE_COMPUTE_TRANSFORM_H
9 
10 #include "heffte_reshape3d.h"
11 
12 namespace heffte {
13 
48  template<typename location_tag, typename index, typename scalar_type>
49  void compute_transform(typename backend::data_manipulator<location_tag>::stream_type stream,
50  int const batch_size,
51  scalar_type const input[], scalar_type output[], scalar_type workspace[],
52  size_t executor_buffer_offset, size_t size_comm_buffers,
53  std::array<std::unique_ptr<reshape3d_base<index>>, 4> const &shaper,
54  std::array<executor_base*, 3> const &executor,
55  direction dir);
72  template<typename location_tag, typename index, typename scalar_type>
73  void compute_transform(typename backend::data_manipulator<location_tag>::stream_type stream,
74  int const batch_size,
75  scalar_type const input[], std::complex<scalar_type> output[],
76  std::complex<scalar_type> workspace[],
77  size_t executor_buffer_offset, size_t size_comm_buffers,
78  std::array<std::unique_ptr<reshape3d_base<index>>, 4> const &shaper,
79  std::array<executor_base*, 3> const &executor, direction);
96  template<typename location_tag, typename index, typename scalar_type>
97  void compute_transform(typename backend::data_manipulator<location_tag>::stream_type stream,
98  int const batch_size,
99  std::complex<scalar_type> const input[], scalar_type output[],
100  std::complex<scalar_type> workspace[],
101  size_t executor_buffer_offset, size_t size_comm_buffers,
102  std::array<std::unique_ptr<reshape3d_base<index>>, 4> const &shaper,
103  std::array<executor_base*, 3> const &executor, direction);
104 
105 }
106 
107 #endif // HEFFTE_COMPUTE_TRANSFORM_H
Base reshape interface.
Definition: heffte_reshape3d.h:60
direction
Indicates the direction of the FFT (internal use only).
Definition: heffte_common.h:535
Namespace containing all HeFFTe methods and classes.
Definition: heffte_backend_cuda.h:38
Common data-transfer operations, must be specializes for each location (cpu/gpu).
Definition: heffte_common.h:59