File: sleefdft.h

package info (click to toggle)
sleef 3.9.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 8,564 kB
  • sloc: ansic: 49,154; cpp: 6,095; makefile: 38
file content (76 lines) | stat: -rw-r--r-- 2,643 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#ifndef __SLEEFDFT_H__
#define __SLEEFDFT_H__

#ifdef __cplusplus
extern "C"
{
#endif

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>

#define SLEEF_MODE_FORWARD     (0 <<  0)
#define SLEEF_MODE_BACKWARD    (1 <<  0)

#define SLEEF_MODE_COMPLEX     (0 <<  1)
#define SLEEF_MODE_REAL        (1 <<  1)

#define SLEEF_MODE_ALT         (1 <<  2)
#define SLEEF_MODE_FFTWCOMPAT  (1 <<  3)

#define SLEEF_MODE_DEBUG       (1 << 10)
#define SLEEF_MODE_VERBOSE     (1 << 11)
#define SLEEF_MODE_NO_MT       (1 << 12)

#define SLEEF_MODE_ESTIMATE    (1 << 20)
#define SLEEF_MODE_MEASURE     (2 << 20)

#if (defined(__MINGW32__) || defined(__MINGW64__) || defined(__CYGWIN__) || defined(_MSC_VER)) && !defined(SLEEF_STATIC_LIBS)
#ifdef IMPORT_IS_EXPORT
#define IMPORT __declspec(dllexport)
#else // #ifdef IMPORT_IS_EXPORT
#define IMPORT __declspec(dllimport)
#if (defined(_MSC_VER))
#pragma comment(lib,"sleefdft.lib")
#endif // #if (defined(_MSC_VER))
#endif // #ifdef IMPORT_IS_EXPORT
#else // #if (defined(__MINGW32__) || defined(__MINGW64__) || defined(__CYGWIN__) || defined(_MSC_VER)) && !defined(SLEEF_STATIC_LIBS)
#define IMPORT
#endif // #if (defined(__MINGW32__) || defined(__MINGW64__) || defined(__CYGWIN__) || defined(_MSC_VER)) && !defined(SLEEF_STATIC_LIBS)

IMPORT struct SleefDFT *SleefDFT_double_init1d(uint32_t n, const double *in, double *out, uint64_t mode);
IMPORT struct SleefDFT *SleefDFT_double_init2d(uint32_t n, uint32_t m, const double *in, double *out, uint64_t mode);
IMPORT void SleefDFT_double_execute(struct SleefDFT *ptr, const double *in, double *out);

IMPORT struct SleefDFT *SleefDFT_float_init1d(uint32_t n, const float *in, float *out, uint64_t mode);
IMPORT struct SleefDFT *SleefDFT_float_init2d(uint32_t n, uint32_t m, const float *in, float *out, uint64_t mode);
IMPORT void SleefDFT_float_execute(struct SleefDFT *ptr, const float *in, float *out);

IMPORT void SleefDFT_execute(struct SleefDFT *ptr, const void *in, void *out);

IMPORT void SleefDFT_dispose(struct SleefDFT *ptr);

IMPORT void SleefDFT_setPath(struct SleefDFT *ptr, char *pathStr);
IMPORT int SleefDFT_getPath(struct SleefDFT *ptr, char *pathStr, int pathStrSize);

IMPORT void SleefDFT_setDefaultVerboseFP(FILE *fp);

//

IMPORT void SleefDFT_setPlanFilePath(const char *path, const char *arch, uint64_t mode);
IMPORT int SleefDFT_savePlan(const char *pathStr);

#define SLEEF_PLAN_READONLY (1 << 0)
#define SLEEF_PLAN_RESET (1 << 1)
#define SLEEF_PLAN_AUTOMATIC (1 << 2)
#define SLEEF_PLAN_NOLOCK (1 << 3)
#define SLEEF_PLAN_REFERTOENVVAR (1 << 30)

#undef IMPORT

#ifdef __cplusplus
}
#endif

#endif // #ifndef __SLEEFDFT_H__