Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
  • Loading branch information
lyndskg authored Jul 21, 2023
1 parent c083649 commit 05f2116
Show file tree
Hide file tree
Showing 37 changed files with 124,945 additions and 0 deletions.
52 changes: 52 additions & 0 deletions oneMKL2/mkl.h
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_ */
37 changes: 37 additions & 0 deletions oneMKL2/mkl_df.h
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__ */
290 changes: 290 additions & 0 deletions oneMKL2/mkl_dfti.h
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_ */
Loading

0 comments on commit 05f2116

Please sign in to comment.