-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
37 changed files
with
124,945 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
/******************************************************************************* | ||
* Copyright 1999-2022 Intel Corporation. | ||
* | ||
* This software and the related documents are Intel copyrighted materials, and | ||
* your use of them is governed by the express license under which they were | ||
* provided to you (License). Unless the License provides otherwise, you may not | ||
* use, modify, copy, publish, distribute, disclose or transmit this software or | ||
* the related documents without Intel's prior written permission. | ||
* | ||
* This software and the related documents are provided as is, with no express | ||
* or implied warranties, other than those that are expressly stated in the | ||
* License. | ||
*******************************************************************************/ | ||
|
||
/* | ||
! Content: | ||
! Intel(R) oneAPI Math Kernel Library (oneMKL) interface | ||
!******************************************************************************/ | ||
|
||
#ifndef _MKL_H_ | ||
#define _MKL_H_ | ||
|
||
#define _Mkl_Api(rtype,name,arg) extern rtype name arg | ||
#define _mkl_api(rtype,name,arg) extern rtype name##_ arg | ||
#define _MKL_API(rtype,name,arg) extern rtype name##_ arg | ||
|
||
#include "mkl_version.h" | ||
#include "mkl_types.h" | ||
#include "mkl_blas.h" | ||
#include "mkl_trans.h" | ||
#include "mkl_cblas.h" | ||
#include "mkl_spblas.h" | ||
#include "mkl_lapack.h" | ||
#include "mkl_lapacke.h" | ||
#include "mkl_pardiso.h" | ||
#include "mkl_sparse_handle.h" | ||
#include "mkl_dss.h" | ||
#include "mkl_rci.h" | ||
#include "mkl_vml.h" | ||
#include "mkl_vsl.h" | ||
#include "mkl_df.h" | ||
#include "mkl_service.h" | ||
#include "mkl_dfti.h" | ||
#include "mkl_trig_transforms.h" | ||
#include "mkl_poisson.h" | ||
#include "mkl_solvers_ee.h" | ||
#include "mkl_direct_call.h" | ||
#include "mkl_compact.h" | ||
#include "mkl_graph.h" | ||
#include "mkl_sparse_qr.h" | ||
|
||
#endif /* _MKL_H_ */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
/* file: mkl_df.h */ | ||
/******************************************************************************* | ||
* Copyright 2006-2022 Intel Corporation. | ||
* | ||
* This software and the related documents are Intel copyrighted materials, and | ||
* your use of them is governed by the express license under which they were | ||
* provided to you (License). Unless the License provides otherwise, you may not | ||
* use, modify, copy, publish, distribute, disclose or transmit this software or | ||
* the related documents without Intel's prior written permission. | ||
* | ||
* This software and the related documents are provided as is, with no express | ||
* or implied warranties, other than those that are expressly stated in the | ||
* License. | ||
*******************************************************************************/ | ||
|
||
/* | ||
//++ | ||
// The main DF header file. | ||
//-- | ||
*/ | ||
|
||
#ifndef __MKL_DF_H__ | ||
#define __MKL_DF_H__ | ||
|
||
#ifdef __cplusplus | ||
extern "C" { | ||
#endif /* __cplusplus */ | ||
|
||
#include "mkl_df_defines.h" | ||
#include "mkl_df_functions.h" | ||
#include "mkl_df_types.h" | ||
|
||
#ifdef __cplusplus | ||
} | ||
#endif /* __cplusplus */ | ||
|
||
#endif /* __MKL_DF_H__ */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,290 @@ | ||
/******************************************************************************* | ||
* Copyright 2002-2022 Intel Corporation. | ||
* | ||
* This software and the related documents are Intel copyrighted materials, and | ||
* your use of them is governed by the express license under which they were | ||
* provided to you (License). Unless the License provides otherwise, you may not | ||
* use, modify, copy, publish, distribute, disclose or transmit this software or | ||
* the related documents without Intel's prior written permission. | ||
* | ||
* This software and the related documents are provided as is, with no express | ||
* or implied warranties, other than those that are expressly stated in the | ||
* License. | ||
*******************************************************************************/ | ||
|
||
/* | ||
! Content: | ||
! Intel(R) oneAPI Math Kernel Library (oneMKL) | ||
! Discrete Fourier Transform Interface (DFTI) | ||
!****************************************************************************/ | ||
|
||
#ifndef _MKL_DFTI_H_ | ||
#define _MKL_DFTI_H_ | ||
|
||
#ifdef __cplusplus | ||
extern "C" { | ||
#endif /* __cplusplus */ | ||
|
||
#include "mkl_types.h" | ||
|
||
#if defined(__cplusplus_cli) | ||
struct DFTI_DESCRIPTOR{}; | ||
#endif | ||
|
||
#if !defined(_WIN32) | ||
#define DFTI_EXTERN | ||
#else | ||
#if defined(DFTI_BUILD_DLL) | ||
#define DFTI_EXTERN __declspec(dllexport) | ||
#elif defined(DFTI_USE_DLL) | ||
#define DFTI_EXTERN __declspec(dllimport) | ||
#else | ||
#define DFTI_EXTERN | ||
#endif /* defined(DFTI_BUILD_DLL) */ | ||
#endif /* _WIN32 */ | ||
|
||
|
||
/* Error classes */ | ||
#define DFTI_NO_ERROR 0 | ||
#define DFTI_MEMORY_ERROR 1 | ||
#define DFTI_INVALID_CONFIGURATION 2 | ||
#define DFTI_INCONSISTENT_CONFIGURATION 3 | ||
#define DFTI_MULTITHREADED_ERROR 4 | ||
#define DFTI_BAD_DESCRIPTOR 5 | ||
#define DFTI_UNIMPLEMENTED 6 | ||
#define DFTI_MKL_INTERNAL_ERROR 7 | ||
#define DFTI_NUMBER_OF_THREADS_ERROR 8 | ||
#define DFTI_1D_LENGTH_EXCEEDS_INT32 9 | ||
#define DFTI_1D_MEMORY_EXCEEDS_INT32 9 | ||
#define DFTI_NO_WORKSPACE 11 | ||
|
||
|
||
#define DFTI_MAX_MESSAGE_LENGTH 80 /* Maximum length of error string */ | ||
#define DFTI_MAX_NAME_LENGTH 10 /* DEPRECATED */ | ||
#define DFTI_VERSION_LENGTH 198 /* Maximum length of oneMKL version string */ | ||
|
||
/* Descriptor configuration parameters [default values in brackets] */ | ||
enum DFTI_CONFIG_PARAM | ||
{ | ||
/* Domain for forward transform. No default value */ | ||
DFTI_FORWARD_DOMAIN = 0, | ||
|
||
/* Dimensionality, or rank. No default value */ | ||
DFTI_DIMENSION = 1, | ||
|
||
/* Length(s) of transform. No default value */ | ||
DFTI_LENGTHS = 2, | ||
|
||
/* Floating point precision. No default value */ | ||
DFTI_PRECISION = 3, | ||
|
||
/* Scale factor for forward transform [1.0] */ | ||
DFTI_FORWARD_SCALE = 4, | ||
|
||
/* Scale factor for backward transform [1.0] */ | ||
DFTI_BACKWARD_SCALE = 5, | ||
|
||
/* Exponent sign for forward transform [DFTI_NEGATIVE] */ | ||
/* DFTI_FORWARD_SIGN = 6, ## NOT IMPLEMENTED */ | ||
|
||
/* Number of data sets to be transformed [1] */ | ||
DFTI_NUMBER_OF_TRANSFORMS = 7, | ||
|
||
/* Storage of finite complex-valued sequences in complex domain | ||
[DFTI_COMPLEX_COMPLEX] */ | ||
DFTI_COMPLEX_STORAGE = 8, | ||
|
||
/* Storage of finite real-valued sequences in real domain | ||
[DFTI_REAL_REAL] */ | ||
DFTI_REAL_STORAGE = 9, | ||
|
||
/* Storage of finite complex-valued sequences in conjugate-even | ||
domain [DFTI_COMPLEX_REAL] */ | ||
DFTI_CONJUGATE_EVEN_STORAGE = 10, | ||
|
||
/* Placement of result [DFTI_INPLACE] */ | ||
DFTI_PLACEMENT = 11, | ||
|
||
/* Generalized strides for input data layout [tight, row-major for | ||
C] */ | ||
DFTI_INPUT_STRIDES = 12, | ||
|
||
/* Generalized strides for output data layout [tight, row-major | ||
for C] */ | ||
DFTI_OUTPUT_STRIDES = 13, | ||
|
||
/* Distance between first input elements for multiple transforms | ||
[0] */ | ||
DFTI_INPUT_DISTANCE = 14, | ||
|
||
/* Distance between first output elements for multiple transforms | ||
[0] */ | ||
DFTI_OUTPUT_DISTANCE = 15, | ||
|
||
/* Effort spent in initialization [DFTI_MEDIUM] */ | ||
/* DFTI_INITIALIZATION_EFFORT = 16, ## NOT IMPLEMENTED */ | ||
|
||
/* Use of workspace during computation [DFTI_ALLOW] */ | ||
DFTI_WORKSPACE = 17, | ||
|
||
/* Ordering of the result [DFTI_ORDERED] */ | ||
DFTI_ORDERING = 18, | ||
|
||
/* Possible transposition of result [DFTI_NONE] */ | ||
DFTI_TRANSPOSE = 19, | ||
|
||
/* User-settable descriptor name [""] */ | ||
DFTI_DESCRIPTOR_NAME = 20, /* DEPRECATED */ | ||
|
||
/* Packing format for DFTI_COMPLEX_REAL storage of finite | ||
conjugate-even sequences [DFTI_CCS_FORMAT] */ | ||
DFTI_PACKED_FORMAT = 21, | ||
|
||
/* Commit status of the descriptor - R/O parameter */ | ||
DFTI_COMMIT_STATUS = 22, | ||
|
||
/* Version string for this DFTI implementation - R/O parameter */ | ||
DFTI_VERSION = 23, | ||
|
||
/* Ordering of the forward transform - R/O parameter */ | ||
/* DFTI_FORWARD_ORDERING = 24, ## NOT IMPLEMENTED */ | ||
|
||
/* Ordering of the backward transform - R/O parameter */ | ||
/* DFTI_BACKWARD_ORDERING = 25, ## NOT IMPLEMENTED */ | ||
|
||
/* Number of user threads that share the descriptor [1] */ | ||
DFTI_NUMBER_OF_USER_THREADS = 26, | ||
|
||
/* Limit the number of threads used by this descriptor [0 = don't care] */ | ||
DFTI_THREAD_LIMIT = 27, | ||
|
||
/* Possible input data destruction [DFTI_AVOID = prevent input data]*/ | ||
DFTI_DESTROY_INPUT = 28, | ||
|
||
/* Distance between first input elements for multiple transforms | ||
[0] */ | ||
DFTI_FWD_DISTANCE = 58, | ||
|
||
/* Distance between first input elements for multiple transforms | ||
[0] */ | ||
DFTI_BWD_DISTANCE = 59 | ||
}; | ||
|
||
/* Values of the descriptor configuration parameters */ | ||
enum DFTI_CONFIG_VALUE | ||
{ | ||
/* DFTI_COMMIT_STATUS */ | ||
DFTI_COMMITTED = 30, | ||
DFTI_UNCOMMITTED = 31, | ||
|
||
/* DFTI_FORWARD_DOMAIN */ | ||
DFTI_COMPLEX = 32, | ||
DFTI_REAL = 33, | ||
/* DFTI_CONJUGATE_EVEN = 34, ## NOT IMPLEMENTED */ | ||
|
||
/* DFTI_PRECISION */ | ||
DFTI_SINGLE = 35, | ||
DFTI_DOUBLE = 36, | ||
|
||
/* DFTI_FORWARD_SIGN */ | ||
/* DFTI_NEGATIVE = 37, ## NOT IMPLEMENTED */ | ||
/* DFTI_POSITIVE = 38, ## NOT IMPLEMENTED */ | ||
|
||
/* DFTI_COMPLEX_STORAGE and DFTI_CONJUGATE_EVEN_STORAGE */ | ||
DFTI_COMPLEX_COMPLEX = 39, | ||
DFTI_COMPLEX_REAL = 40, | ||
|
||
/* DFTI_REAL_STORAGE */ | ||
DFTI_REAL_COMPLEX = 41, | ||
DFTI_REAL_REAL = 42, | ||
|
||
/* DFTI_PLACEMENT */ | ||
DFTI_INPLACE = 43, /* Result overwrites input */ | ||
DFTI_NOT_INPLACE = 44, /* Have another place for result */ | ||
|
||
/* DFTI_INITIALIZATION_EFFORT */ | ||
/* DFTI_LOW = 45, ## NOT IMPLEMENTED */ | ||
/* DFTI_MEDIUM = 46, ## NOT IMPLEMENTED */ | ||
/* DFTI_HIGH = 47, ## NOT IMPLEMENTED */ | ||
|
||
/* DFTI_ORDERING */ | ||
DFTI_ORDERED = 48, | ||
DFTI_BACKWARD_SCRAMBLED = 49, | ||
/* DFTI_FORWARD_SCRAMBLED = 50, ## NOT IMPLEMENTED */ | ||
|
||
/* Allow/avoid certain usages */ | ||
DFTI_ALLOW = 51, /* Allow transposition or workspace */ | ||
DFTI_AVOID = 52, | ||
DFTI_NONE = 53, | ||
|
||
/* DFTI_PACKED_FORMAT (for storing congugate-even finite sequence | ||
in real array) */ | ||
DFTI_CCS_FORMAT = 54, /* Complex conjugate-symmetric */ | ||
DFTI_PACK_FORMAT = 55, /* Pack format for real DFT */ | ||
DFTI_PERM_FORMAT = 56, /* Perm format for real DFT */ | ||
DFTI_CCE_FORMAT = 57 /* Complex conjugate-even */ | ||
}; | ||
|
||
typedef struct DFTI_DESCRIPTOR *DFTI_DESCRIPTOR_HANDLE; | ||
typedef struct DFTI_DESCRIPTOR DFTI_DESCRIPTOR; /* deprecated */ | ||
#define DFTI_DFT_Desc_struct DFTI_DESCRIPTOR /* deprecated */ | ||
#define DFTI_Descriptor_struct DFTI_DESCRIPTOR /* deprecated */ | ||
#define DFTI_Descriptor DFTI_DESCRIPTOR /* deprecated */ | ||
|
||
DFTI_EXTERN MKL_LONG DftiCreateDescriptor(DFTI_DESCRIPTOR_HANDLE*, | ||
enum DFTI_CONFIG_VALUE, /* precision */ | ||
enum DFTI_CONFIG_VALUE, /* domain */ | ||
MKL_LONG, ...); | ||
DFTI_EXTERN MKL_LONG DftiCopyDescriptor(DFTI_DESCRIPTOR_HANDLE, /* from descriptor */ | ||
DFTI_DESCRIPTOR_HANDLE*); /* to descriptor */ | ||
DFTI_EXTERN MKL_LONG DftiCommitDescriptor(DFTI_DESCRIPTOR_HANDLE); | ||
DFTI_EXTERN MKL_LONG DftiComputeForward(DFTI_DESCRIPTOR_HANDLE, void*, ...); | ||
DFTI_EXTERN MKL_LONG DftiComputeBackward(DFTI_DESCRIPTOR_HANDLE, void*, ...); | ||
DFTI_EXTERN MKL_LONG DftiSetValue(DFTI_DESCRIPTOR_HANDLE, enum DFTI_CONFIG_PARAM, ...); | ||
DFTI_EXTERN MKL_LONG DftiGetValue(DFTI_DESCRIPTOR_HANDLE, enum DFTI_CONFIG_PARAM, ...); | ||
DFTI_EXTERN MKL_LONG DftiFreeDescriptor(DFTI_DESCRIPTOR_HANDLE*); | ||
DFTI_EXTERN char* DftiErrorMessage(MKL_LONG); | ||
DFTI_EXTERN MKL_LONG DftiErrorClass(MKL_LONG, MKL_LONG); | ||
/********************************************************************** | ||
* INTERNAL INTERFACES. These internal interfaces are not intended to | ||
* be called directly by oneMKL users and may change in future releases. | ||
*/ | ||
DFTI_EXTERN MKL_LONG DftiCreateDescriptor_s_1d(DFTI_DESCRIPTOR_HANDLE *, | ||
enum DFTI_CONFIG_VALUE domain, | ||
... /* MKL_LONG onedim */); | ||
DFTI_EXTERN MKL_LONG DftiCreateDescriptor_s_md(DFTI_DESCRIPTOR_HANDLE *, | ||
enum DFTI_CONFIG_VALUE domain, | ||
MKL_LONG many, | ||
... /* MKL_LONG *dims */); | ||
DFTI_EXTERN MKL_LONG DftiCreateDescriptor_d_1d(DFTI_DESCRIPTOR_HANDLE *, | ||
enum DFTI_CONFIG_VALUE domain, | ||
... /* MKL_LONG onedim */); | ||
DFTI_EXTERN MKL_LONG DftiCreateDescriptor_d_md(DFTI_DESCRIPTOR_HANDLE *, | ||
enum DFTI_CONFIG_VALUE domain, | ||
MKL_LONG many, | ||
... /* MKL_LONG *dims */); | ||
|
||
/********************************************************************** | ||
* Compile-time separation of specific cases | ||
*/ | ||
#ifndef DftiCreateDescriptor | ||
#define DftiCreateDescriptor(desc,prec,domain,dim,sizes) \ | ||
(/* single precision specific cases */ \ | ||
((prec)==DFTI_SINGLE && (dim)==1) ? \ | ||
DftiCreateDescriptor_s_1d((desc),(domain),(sizes)) : \ | ||
((prec)==DFTI_SINGLE) ? \ | ||
DftiCreateDescriptor_s_md((desc),(domain),(dim),(sizes)) : \ | ||
/* double precision specific cases */ \ | ||
((prec)==DFTI_DOUBLE && (dim)==1) ? \ | ||
DftiCreateDescriptor_d_1d((desc),(domain),(sizes)) : \ | ||
((prec)==DFTI_DOUBLE) ? \ | ||
DftiCreateDescriptor_d_md((desc),(domain),(dim),(sizes)) : \ | ||
/* no specific case matches, fall back to original call */ \ | ||
DftiCreateDescriptor((desc),(prec),(domain),(dim),(sizes))) | ||
#endif | ||
|
||
#ifdef __cplusplus | ||
} | ||
#endif /* __cplusplus */ | ||
|
||
#endif /* _MKL_DFTI_H_ */ |
Oops, something went wrong.