Highly Efficient FFT for Exascale: HeFFTe v2.4
Loading...
Searching...
No Matches
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
 NheffteNamespace containing all HeFFTe methods and classes
  NbackendContains type tags and templates metadata for the various backends
   Cbuffer_traitsDefines the container for the temporary buffers
   Cbuffer_traits< cufft >Defines the location type-tag and the cuda container
   Cbuffer_traits< cufft_cos >Defines the location type-tag and the cuda container
   Cbuffer_traits< cufft_cos1 >
   Cbuffer_traits< cufft_sin >Defines the location type-tag and the cuda container
   Cbuffer_traits< onemkl >Defines the location type-tag and the oneAPI container
   Cbuffer_traits< onemkl_cos >Defines the location type-tag and the oneAPI container
   Cbuffer_traits< onemkl_sin >Defines the location type-tag and the oneAPI container
   Cbuffer_traits< rocfft >Defines the location type-tag and the cuda container
   Cbuffer_traits< rocfft_cos >Defines the location type-tag and the cuda container
   Cbuffer_traits< rocfft_cos1 >Defines the location type-tag and the cuda container
   Cbuffer_traits< rocfft_sin >Defines the location type-tag and the cuda container
   Ccheck_typesSet to true/false type depending whether the types are compatible with the backend transform
   Ccheck_types< backend_tag, input, output, typename std::enable_if< not uses_fft_types< backend_tag >::value and((std::is_same< input, float >::value and std::is_same< output, float >::value) or(std::is_same< input, double >::value and std::is_same< output, double >::value))>::type >Defines the types compatible for a cos() transform
   Ccheck_types< backend_tag, input, output, typename std::enable_if< uses_fft_types< backend_tag >::value and((std::is_same< input, float >::value and is_ccomplex< output >::value) or(std::is_same< input, double >::value and is_zcomplex< output >::value) or(is_ccomplex< input >::value and is_ccomplex< output >::value) or(is_zcomplex< input >::value and is_zcomplex< output >::value))>::type >Defines the types compatible for a standard FFT transform
   CcufftType-tag for the cuFFT backend
   Ccufft_cosType-tag for the Cosine Transform using the cuFFT backend
   Ccufft_cos1Type-tag for the Cosine Transform type 1 using the cuFFT backend
   Ccufft_sinType-tag for the Sine Transform using the cuFFT backend
   Cdata_manipulatorCommon data-transfer operations, must be specializes for each location (cpu/gpu)
   Cdata_manipulator< tag::cpu >Common data-transfer operations on the cpu
   Cdata_manipulator< tag::gpu >Specialization for the data operations in CUDA mode
   Cdefault_backendDefines inverse mapping from the location tag to a default backend tag
   Cdefault_backend< tag::cpu >Make MKL the default CPU backend
   Cdefault_backend< tag::gpu >In CUDA mode, the default GPU backend is cufft
   Cdevice_instanceHolds the auxiliary variables needed by each backend
   Cdevice_instance< tag::gpu >The CUDA backend uses a CUDA stream
   CfftwType-tag for the FFTW backend
   Cfftw_cosType-tag for the Cosine Transform using the FFTW backend
   Cfftw_cos1Type-tag for the Cosine Transform type 1 using the FFTW backend
   Cfftw_sinType-tag for the Sine Transform using the FFTW backend
   Cfftw_sin1Type-tag for the Sine Transform type 1 using the FFTW backend
   Cis_enabledAllows to define whether a specific backend interface has been enabled
   Cis_enabled< cufft >Indicate that the cuFFT backend has been enabled
   Cis_enabled< cufft_cos >Indicate that the cuFFT backend has been enabled for Cosine Transform
   Cis_enabled< cufft_cos1 >
   Cis_enabled< cufft_sin >Indicate that the cuFFT backend has been enabled for Sine Transform
   Cis_enabled< fftw >Indicate that the FFTW backend has been enabled
   Cis_enabled< fftw_cos >Indicate that the cos() transform using the FFTW backend has been enabled
   Cis_enabled< fftw_cos1 >Indicate that the cos() transform type II using the FFTW backend has been enabled
   Cis_enabled< fftw_sin >Indicate that the cos() transform using the FFTW backend has been enabled
   Cis_enabled< fftw_sin1 >Indicate that the cos() transform type II using the FFTW backend has been enabled
   Cis_enabled< mkl >Indicate that the MKL backend has been enabled
   Cis_enabled< mkl_cos >Indicate that the MKL Cosine Transform backend has been enabled
   Cis_enabled< mkl_sin >Indicate that the MKL Sine Transform backend has been enabled
   Cis_enabled< onemkl >Indicate that the oneMKL backend has been enabled
   Cis_enabled< onemkl_cos >Indicate that the oneMKL backend has been enabled
   Cis_enabled< onemkl_sin >Indicate that the oneMKL backend has been enabled
   Cis_enabled< rocfft >Indicate that the rocFFT backend has been enabled
   Cis_enabled< rocfft_cos >Indicate that the rocFFT backend has been enabled
   Cis_enabled< rocfft_cos1 >Indicate that the rocFFT backend has been enabled
   Cis_enabled< rocfft_sin >Indicate that the rocFFT backend has been enabled
   Cis_enabled< stock >Indicate that the stock backend has been enabled
   Cis_enabled< stock_cos >Indicate that the stock backend has been enabled
   Cis_enabled< stock_cos1 >Indicate that the stock backend has been enabled
   Cis_enabled< stock_sin >Indicate that the stock backend has been enabled
   CmklType-tag for the MKL backend
   Cmkl_cosType-tag for the Cosine Transform using the MKL FFT backend
   Cmkl_sinType-tag for the Sine Transform using the MKL FFT backend
   ConemklType-tag for the oneMKL backend
   Conemkl_cosType-tag for the Cosine Transform using the oneMKL backend
   Conemkl_sinType-tag for the Sine Transform using the oneMKL backend
   CrocfftType-tag for the rocFFT backend
   Crocfft_cosType-tag for the Cosine Transform using the rocFFT backend
   Crocfft_cos1Type-tag for the Cosine Transform of type 1 using the rocFFT backend
   Crocfft_sinType-tag for the Sine Transform using the rocFFT backend
   CstockType-tag for the stock FFT backend
   Cstock_cosType-tag for the Cosine Transform using the stock FFT backend
   Cstock_cos1Type-tag for the Cosine Transform type 1 using the stock FFT backend
   Cstock_sinType-tag for the Sine Transform using the stock FFT backend
   Cuses_fft_typesDefines whether the backend accepts the standard FFT real-complex or complex-complex transform
   Cuses_fft_types< cufft_cos >Sets the cos() transform types
   Cuses_fft_types< cufft_cos1 >Sets the cos1() transform types
   Cuses_fft_types< cufft_sin >Sets the sin() transform types
   Cuses_fft_types< fftw_cos >Sets the cos() transform C++ types
   Cuses_fft_types< fftw_cos1 >Sets the cos() transform C++ types
   Cuses_fft_types< fftw_sin >Sets the sin() transform C++ types
   Cuses_fft_types< fftw_sin1 >Sets the sin() transform C++ types
   Cuses_fft_types< mkl_cos >Sets the cos() transform types
   Cuses_fft_types< mkl_sin >Sets the sin() transform types
   Cuses_fft_types< onemkl_cos >Sets the cos() transform types
   Cuses_fft_types< onemkl_sin >Sets the sin() transform types
   Cuses_fft_types< rocfft_cos >Sets the cos() transform types
   Cuses_fft_types< rocfft_cos1 >Sets the cos1() transform types
   Cuses_fft_types< rocfft_sin >Sets the sin() transform types
   Cuses_fft_types< stock_cos >Sets the cos() transform types
   Cuses_fft_types< stock_cos1 >Sets the cos() transform types
   Cuses_fft_types< stock_sin >Sets the sin() transform types
   Cuses_gpuStruct that specializes to true type if the location of the backend is on the gpu (false type otherwise)
   Cuses_gpu< backend_tag, typename std::enable_if< std::is_same< typename buffer_traits< backend_tag >::location, tag::gpu >::value, void >::type >Specialization for the on-gpu case
  NcudaCuda specific methods
   Ccos_pre_pos_processorImplementation of Cosine Transform pre-post processing methods using CUDA
   Csin_pre_pos_processorImplementation of Sine Transform pre-post processing methods using CUDA
   Ccos1_pre_pos_processor
  Ngpu
   Cmagma_handleWrapper around a MAGMA handle
   Cmagma_handle< tag::gpu >Wrapper around a MAGMA handle in a GPU context
  NoapiSYCL/DPC++ specific methods, vector-like container, error checking, etc
   Ccos_pre_pos_processorImplementation of Cosine Transform pre-post processing methods using CUDA
   Csin_pre_pos_processorImplementation of Cosine Transform pre-post processing methods using CUDA
  NrocmROCM specific methods, vector-like container, error checking, etc
   Ccos_pre_pos_processorImplementation of Cosine Transform pre-post processing methods using CUDA
   Csin_pre_pos_processorImplementation of Sine Transform pre-post processing methods using CUDA
   Ccos1_pre_pos_processorImplementation of Cosine Transform of type 1 pre-post processing methods using CUDA
   CinitializeIndicates whether the rocfft_setup() method has been called
  Nstock
   CbiFuncNodeClass to represent the call-graph nodes
   CComplexCustom complex type taking advantage of vectorization A Complex Type intrinsic to HeFFTe that takes advantage of vectorization. It is currently compatible with AVX2 to create 1 double-precision complex, 2 double-precision complex, 2 single-precision complex, or 4 single-precision complex numbers
   Ccomplex_allocator_tAllocator to use with heffte::stock::Complex types Class to properly allocate heffte::stock::Complex<F,L> types to ensure proper alignment of the type when using containers like std::vector
    CrebindDefining rebind for the allocator
   CFourier_TransformFunctor class to represent any Fourier Transform A class to use lambdas to switch between what FFT should be called
   Cis_complexStruct determining whether a type is a complex number
   Cis_realStruct determining whether a type is a real number
   ComegaCreate a stock Complex representation of a twiddle factor
   CpackStruct to retrieve the vector type associated with the number of elements stored "per unit"
   Cpack< double, 1 >Alias for default double type
   Cpack< float, 1 >Alias for default float type
  NtagContains internal type-tags
   CcpuIndicates the use of cpu backend and that all input/output data and arrays will be bound to the cpu
   CgpuIndicates the use of gpu backend and that all input/output data and arrays will be bound to the gpu device
  Cadd_traceHefftetrace
  CalignCuFFT requires that the input and output in R2C transforms are aligned to the complex type
  Cbox3dA generic container that describes a 3d box of indexes
  Ccpu_cos1_pre_pos_processorPre/Post processing for the Cosine transform type I using the CPU
  Ccpu_cos_pre_pos_processorPre/Post processing for the Cosine transform using the CPU
  Ccpu_sin1_pre_pos_processor
  Ccpu_sin_pre_pos_processorPre/Post processing for the Sine transform using the CPU
  Ccufft_executorWrapper around the cuFFT API
  Ccufft_executor_r2cWrapper to cuFFT API for real-to-complex transform with shortening of the data
  Cdefault_plan_optionsDefines a set of default plan options for a given backend
  Cdefault_plan_options< backend::cufft >Sets the default options for the cufft backend
  Cdefault_plan_options< backend::cufft_cos >Sets the default options for the cufft backend
  Cdefault_plan_options< backend::cufft_cos1 >
  Cdefault_plan_options< backend::cufft_sin >Sets the default options for the cufft backend
  Cdefault_plan_options< backend::fftw >Sets the default options for the fftw backend
  Cdefault_plan_options< backend::fftw_cos >Sets the default options for the fftw backend
  Cdefault_plan_options< backend::fftw_cos1 >Sets the default options for the fftw backend
  Cdefault_plan_options< backend::fftw_sin >Sets the default options for the fftw backend
  Cdefault_plan_options< backend::fftw_sin1 >Sets the default options for the fftw backend
  Cdefault_plan_options< backend::mkl >Sets the default options for the mkl backend
  Cdefault_plan_options< backend::mkl_cos >Sets the default options for the mkl backend
  Cdefault_plan_options< backend::mkl_sin >Sets the default options for the mkl backend
  Cdefault_plan_options< backend::onemkl >Sets the default options for the oneMKL backend
  Cdefault_plan_options< backend::onemkl_cos >Sets the default options for the oneMKL backend
  Cdefault_plan_options< backend::onemkl_sin >Sets the default options for the oneMKL backend
  Cdefault_plan_options< backend::rocfft >Sets the default options for the cufft backend
  Cdefault_plan_options< backend::rocfft_cos >Sets the default options for the cufft backend
  Cdefault_plan_options< backend::rocfft_cos1 >Sets the default options for the cufft backend
  Cdefault_plan_options< backend::rocfft_sin >Sets the default options for the cufft backend
  Cdefault_plan_options< backend::stock >Sets the default options for the stock fft backend
  Cdefault_plan_options< backend::stock_cos >Sets the default options for the stock fft backend
  Cdefault_plan_options< backend::stock_cos1 >Sets the default options for the stock fft backend
  Cdefault_plan_options< backend::stock_sin >Sets the default options for the stock fft backend
  Cdefine_standard_typeStruct to specialize that returns the C++ equivalent of each type
  Cdefine_standard_type< double, void >Type double is equivalent to double
  Cdefine_standard_type< float, void >Type float is equivalent to float
  Cdefine_standard_type< scalar_type, typename std::enable_if< is_ccomplex< scalar_type >::value >::type >Every type with specialization of heffte::is_ccomplex to std::true_type is equivalent to std::complex<float>
  Cdefine_standard_type< scalar_type, typename std::enable_if< is_zcomplex< scalar_type >::value >::type >Every type with specialization of heffte::is_zcomplex to std::true_type is equivalent to std::complex<double>
  Cdirect_packerDefines the direct packer without implementation, use the specializations to get the CPU or GPU implementation
  Cdirect_packer< tag::cpu >Simple packer that copies sub-boxes without transposing the order of the indexes
  Cdirect_packer< tag::gpu >Simple packer that copies sub-boxes without transposing the order of the indexes
  CeventA tracing event
  Cevent_chainerHelper class to chain a series of compute calls with sycl::event
  Cexecutor_baseBase class for all backend executors
  Cfft3dDefines the plan for a 3-dimensional discrete Fourier transform performed on a MPI distributed data
  Cfft3d_r2cSimilar to heffte::fft3d, but computed fewer redundant coefficients when the input is real
  Cfft_outputDefines the relationship between pairs of input-output types in the FFT algorithms
  Cfft_output< double >Specialization mapping double to std::complex<double>
  Cfft_output< float >Specialization mapping float to std::complex<float>
  Cfftw_executorWrapper around the FFTW3 API
  Cfftw_executor_r2cWrapper to fftw3 API for real-to-complex transform with shortening of the data
  Cfftw_r2r_types
  Cfftw_r2r_types< float >
  CioboxesPair of lists of input-output boxes as used by the heffte::fft3d
  Cis_ccomplexStruct to specialize to allow HeFFTe to recognize custom single precision complex types
  Cis_ccomplex< cufftComplex >Recognize the cuFFT single precision complex type
  Cis_ccomplex< fftwf_complex >Recognize the FFTW single precision complex type
  Cis_ccomplex< float _Complex >Recognize the MKL single precision complex type
  Cis_ccomplex< std::complex< float > >By default, HeFFTe recognizes std::complex<float>
  Cis_ccomplex< stock::Complex< float, 1 > >Recognize stock FFT single complex (which are std::complex) types
  Cis_zcomplexStruct to specialize to allow HeFFTe to recognize custom double precision complex types
  Cis_zcomplex< cufftDoubleComplex >Recognize the cuFFT double precision complex type
  Cis_zcomplex< double _Complex >Recognize the MKL double precision complex type
  Cis_zcomplex< fftw_complex >Recognize the FFTW double precision complex type
  Cis_zcomplex< std::complex< double > >By default, HeFFTe recognizes std::complex<double>
  Cis_zcomplex< stock::Complex< double, 1 > >
  Clogic_plan3dThe logic plan incorporates the order and types of operations in a transform
  Cmkl_executorWrapper around the MKL API
  Cmkl_executor_r2cWrapper to mkl API for real-to-complex transform with shortening of the data
  Cone_dim_backendIndicates the structure that will be used by the fft backend
  Cone_dim_backend< backend::cufft >Helper struct that defines the types and creates instances of one-dimensional executors
  Cone_dim_backend< backend::cufft_cos >Helper struct that defines the types and creates instances of one-dimensional executors
  Cone_dim_backend< backend::cufft_cos1 >
  Cone_dim_backend< backend::cufft_sin >Helper struct that defines the types and creates instances of one-dimensional executors
  Cone_dim_backend< backend::fftw >Helper struct that defines the types and creates instances of one-dimensional executors
  Cone_dim_backend< backend::fftw_cos >Helper struct that defines the types and creates instances of one-dimensional executors
  Cone_dim_backend< backend::fftw_cos1 >Helper struct that defines the types and creates instances of one-dimensional executors
  Cone_dim_backend< backend::fftw_sin >Helper struct that defines the types and creates instances of one-dimensional executors
  Cone_dim_backend< backend::fftw_sin1 >Helper struct that defines the types and creates instances of one-dimensional executors
  Cone_dim_backend< backend::mkl >Helper struct that defines the types and creates instances of one-dimensional executors
  Cone_dim_backend< backend::mkl_cos >Helper struct that defines the types and creates instances of one-dimensional executors
  Cone_dim_backend< backend::mkl_sin >Helper struct that defines the types and creates instances of one-dimensional executors
  Cone_dim_backend< backend::onemkl >Helper struct that defines the types and creates instances of one-dimensional executors
  Cone_dim_backend< backend::onemkl_cos >Helper struct that defines the types and creates instances of one-dimensional executors
  Cone_dim_backend< backend::onemkl_sin >Helper struct that defines the types and creates instances of one-dimensional executors
  Cone_dim_backend< backend::rocfft >Helper struct that defines the types and creates instances of one-dimensional executors
  Cone_dim_backend< backend::rocfft_cos >Helper struct that defines the types and creates instances of one-dimensional executors
  Cone_dim_backend< backend::rocfft_cos1 >Helper struct that defines the types and creates instances of one-dimensional executors
  Cone_dim_backend< backend::rocfft_sin >Helper struct that defines the types and creates instances of one-dimensional executors
  Cone_dim_backend< backend::stock >Helper struct that defines the types and creates instances of one-dimensional executors
  Cone_dim_backend< backend::stock_cos >Helper struct that defines the types and creates instances of one-dimensional executors
  Cone_dim_backend< backend::stock_cos1 >Helper struct that defines the types and creates instances of one-dimensional executors
  Cone_dim_backend< backend::stock_sin >Helper struct that defines the types and creates instances of one-dimensional executors
  Conemkl_executorWrapper around the oneMKL API
  Conemkl_executor_r2cWrapper to oneMKL API for real-to-complex transform with shortening of the data
  Cpack_plan_3dHolds the plan for a pack/unpack operation
  Cpacker_backendThe packer needs to know whether the data will be on the CPU or GPU devices
  Cplan_cufftWrapper around cufftHandle plans, set for float or double complex
  Cplan_cufft_r2cPlan for the r2c single and double precision transform
  Cplan_fftwBase plan for fftw, using only the specialization for float and double complex
  Cplan_fftw< double, dir >Specialization for r2c double precision
  Cplan_fftw< float, dir >Specialization for r2c single precision
  Cplan_fftw< std::complex< double >, dir >Specialization for double complex
  Cplan_fftw< std::complex< float >, dir >Plan for the single precision complex transform
  Cplan_fftw_r2rWrapper for the r2r plan to allow for RAII style of management
  Cplan_mklBase plan for backend::mkl, works only for float and double complex
  Cplan_mkl_r2cUnlike the C2C plan R2C is non-symmetric and it requires that the direction is built into the plan
  Cplan_optionsDefines a set of tweaks and options to use in the plan generation
  Cplan_rocfftPlan for the r2c single precision transform
  Cplan_rocfft< std::complex< precision_type >, dir >Plan for the single precision complex transform
  Cplan_stock_fftSpecialization for r2c single precision
  Cplan_stock_fft< std::complex< F >, dir >Plan for the single precision complex transform
  Crank_remapKeeps the local rank and the map from the global rank to the sub-ranks used in the work
  Creal2real_executorTemplate algorithm for the Sine and Cosine transforms
  Creal2real_executor< backend::fftw, prepost_processor >
  Creshape3d_alltoallReshape algorithm based on the MPI_Alltoall() method
  Creshape3d_alltoallvReshape algorithm based on the MPI_Alltoallv() method
  Creshape3d_baseBase reshape interface
  Creshape3d_pointtopointReshape algorithm based on the MPI_Send() and MPI_Irecv() methods
  Creshape3d_transposeSpecial case of the reshape that does not involve MPI communication but applies a transpose instead
  Crocfft_executorWrapper around the rocFFT API
  Crocfft_executor_r2cWrapper to rocFFT API for real-to-complex transform with shortening of the data
  Cstock_fft_executorWrapper around the Stock FFT API
  Cstock_fft_executor_r2cWrapper to stock API for real-to-complex transform with shortening of the data
  Ctransform_outputDefines the relationship between pairs of input-output types in a general transform algorithm
  Ctransform_output< scalar_type, backend_tag, typename std::enable_if< backend::uses_fft_types< backend_tag >::value >::type >Specialization for standard FFT
  Ctransform_output< scalar_type, backend_tag, typename std::enable_if< not backend::uses_fft_types< backend_tag >::value >::type >Specialization for Cosine Transform
  Ctransform_real_typeDefines the relationship between pairs of input-output types in a general transform algorithm
  Ctransform_real_type< scalar_type, backend_tag, typename std::enable_if< backend::uses_fft_types< backend_tag >::value >::type >Specialization for standard FFT
  Ctransform_real_type< scalar_type, backend_tag, typename std::enable_if< not backend::uses_fft_types< backend_tag >::value >::type >Specialization for Cosine Transform
  Ctranspose_packerDefines the transpose packer without implementation, use the specializations to get the CPU implementation
  Ctranspose_packer< tag::cpu >Transpose packer that packs sub-boxes without transposing, but unpacks applying a transpose operation
  Ctranspose_packer< tag::gpu >GPU version of the transpose packer
 Cheffte_fft_planGeneric wrapper around some fft3d/fft3d_r2c instance, use heffte_plan instead of this
 Cheffte_plan_optionsEquivalent to heffte::plan_options but defined for the C API