1 | !***************************************************************************** |
---|
2 | ! Copyright(C) 2002-2011 Intel Corporation. All Rights Reserved. |
---|
3 | ! |
---|
4 | ! The source code, information and material ("Material") contained herein is |
---|
5 | ! owned by Intel Corporation or its suppliers or licensors, and title to such |
---|
6 | ! Material remains with Intel Corporation or its suppliers or licensors. The |
---|
7 | ! Material contains proprietary information of Intel or its suppliers and |
---|
8 | ! licensors. The Material is protected by worldwide copyright laws and treaty |
---|
9 | ! provisions. No part of the Material may be used, copied, reproduced, |
---|
10 | ! modified, published, uploaded, posted, transmitted, distributed or disclosed |
---|
11 | ! in any way without Intel's prior express written permission. No license |
---|
12 | ! under any patent, copyright or other intellectual property rights in the |
---|
13 | ! Material is granted to or conferred upon you, either expressly, by |
---|
14 | ! implication, inducement, estoppel or otherwise. Any license under such |
---|
15 | ! intellectual property rights must be express and approved by Intel in |
---|
16 | ! writing. |
---|
17 | ! |
---|
18 | ! *Third Party trademarks are the property of their respective owners. |
---|
19 | ! |
---|
20 | ! Unless otherwise agreed by Intel in writing, you may not remove or alter |
---|
21 | ! this notice or any other notice embedded in Materials by Intel or Intel's |
---|
22 | ! suppliers or licensors in any way. |
---|
23 | ! |
---|
24 | !***************************************************************************** |
---|
25 | ! Content: |
---|
26 | ! Intel(R) Math Kernel Library (MKL) |
---|
27 | ! Discrete Fourier Transform Interface (DFTI) |
---|
28 | !***************************************************************************** |
---|
29 | |
---|
30 | MODULE MKL_DFT_TYPE |
---|
31 | |
---|
32 | TYPE, PUBLIC :: DFTI_DESCRIPTOR |
---|
33 | PRIVATE |
---|
34 | INTEGER :: dontuse |
---|
35 | ! Structure of this type is not used in Fortran code |
---|
36 | ! the pointer to this type is used only |
---|
37 | END TYPE DFTI_DESCRIPTOR |
---|
38 | |
---|
39 | !====================================================================== |
---|
40 | ! These real type kind parameters are not for direct use |
---|
41 | !====================================================================== |
---|
42 | |
---|
43 | INTEGER, PARAMETER :: DFTI_SPKP = SELECTED_REAL_KIND(6,37) |
---|
44 | INTEGER, PARAMETER :: DFTI_DPKP = SELECTED_REAL_KIND(15,307) |
---|
45 | |
---|
46 | !====================================================================== |
---|
47 | ! Descriptor configuration parameters [default values in brackets] |
---|
48 | !====================================================================== |
---|
49 | |
---|
50 | ! Domain for forward transform. No default value |
---|
51 | INTEGER, PARAMETER :: DFTI_FORWARD_DOMAIN = 0 |
---|
52 | |
---|
53 | ! Dimensionality, or rank. No default value |
---|
54 | INTEGER, PARAMETER :: DFTI_DIMENSION = 1 |
---|
55 | |
---|
56 | ! Length(s) of transform. No default value |
---|
57 | INTEGER, PARAMETER :: DFTI_LENGTHS = 2 |
---|
58 | |
---|
59 | ! Floating point precision. No default value |
---|
60 | INTEGER, PARAMETER :: DFTI_PRECISION = 3 |
---|
61 | |
---|
62 | ! Scale factor for forward transform [1.0] |
---|
63 | INTEGER, PARAMETER :: DFTI_FORWARD_SCALE = 4 |
---|
64 | |
---|
65 | ! Scale factor for backward transform [1.0] |
---|
66 | INTEGER, PARAMETER :: DFTI_BACKWARD_SCALE = 5 |
---|
67 | |
---|
68 | ! Exponent sign for forward transform [DFTI_NEGATIVE] |
---|
69 | ! INTEGER, PARAMETER :: DFTI_FORWARD_SIGN = 6 ! NOT IMPLEMENTED |
---|
70 | |
---|
71 | ! Number of data sets to be transformed [1] |
---|
72 | INTEGER, PARAMETER :: DFTI_NUMBER_OF_TRANSFORMS = 7 |
---|
73 | |
---|
74 | ! Storage of finite complex-valued sequences in complex domain |
---|
75 | ! [DFTI_COMPLEX_COMPLEX] |
---|
76 | INTEGER, PARAMETER :: DFTI_COMPLEX_STORAGE = 8 |
---|
77 | |
---|
78 | ! Storage of finite real-valued sequences in real domain |
---|
79 | ! [DFTI_REAL_REAL] |
---|
80 | INTEGER, PARAMETER :: DFTI_REAL_STORAGE = 9 |
---|
81 | |
---|
82 | ! Storage of finite complex-valued sequences in conjugate-even |
---|
83 | ! domain [DFTI_COMPLEX_REAL] |
---|
84 | INTEGER, PARAMETER :: DFTI_CONJUGATE_EVEN_STORAGE = 10 |
---|
85 | |
---|
86 | ! Placement of result [DFTI_INPLACE] |
---|
87 | INTEGER, PARAMETER :: DFTI_PLACEMENT = 11 |
---|
88 | |
---|
89 | ! Generalized strides for input data layout |
---|
90 | ! [tigth, col-major for Fortran] |
---|
91 | INTEGER, PARAMETER :: DFTI_INPUT_STRIDES = 12 |
---|
92 | |
---|
93 | ! Generalized strides for output data layout |
---|
94 | ! [tigth, col-major for Fortran] |
---|
95 | INTEGER, PARAMETER :: DFTI_OUTPUT_STRIDES = 13 |
---|
96 | |
---|
97 | ! Distance between first input elements for multiple transforms [0] |
---|
98 | INTEGER, PARAMETER :: DFTI_INPUT_DISTANCE = 14 |
---|
99 | |
---|
100 | ! Distance between first output elements for multiple transforms [0] |
---|
101 | INTEGER, PARAMETER :: DFTI_OUTPUT_DISTANCE = 15 |
---|
102 | |
---|
103 | ! Effort spent in initialization [DFTI_MEDIUM] |
---|
104 | ! INTEGER, PARAMETER :: DFTI_INITIALIZATION_EFFORT = 16 ! NOT IMPLEMENTED |
---|
105 | |
---|
106 | ! Use of workspace during computation [DFTI_ALLOW] |
---|
107 | INTEGER, PARAMETER :: DFTI_WORKSPACE = 17 |
---|
108 | |
---|
109 | ! Ordering of the result [DFTI_ORDERED] |
---|
110 | INTEGER, PARAMETER :: DFTI_ORDERING = 18 |
---|
111 | |
---|
112 | ! Possible transposition of result [DFTI_NONE] |
---|
113 | INTEGER, PARAMETER :: DFTI_TRANSPOSE = 19 |
---|
114 | |
---|
115 | ! User-settable descriptor name [""] |
---|
116 | INTEGER, PARAMETER :: DFTI_DESCRIPTOR_NAME = 20 |
---|
117 | |
---|
118 | ! Packing format for DFTI_COMPLEX_REAL storage of finite |
---|
119 | ! conjugate-even sequences [DFTI_CCS_FORMAT] |
---|
120 | INTEGER, PARAMETER :: DFTI_PACKED_FORMAT = 21 |
---|
121 | |
---|
122 | ! Commit status of the descriptor. Read-only parameter |
---|
123 | INTEGER, PARAMETER :: DFTI_COMMIT_STATUS = 22 |
---|
124 | |
---|
125 | ! Version string for this DFTI implementation. Read-only parameter |
---|
126 | INTEGER, PARAMETER :: DFTI_VERSION = 23 |
---|
127 | |
---|
128 | ! Ordering of the forward transform. Read-only parameter |
---|
129 | ! INTEGER, PARAMETER :: DFTI_FORWARD_ORDERING = 24 ! NOT IMPLEMENTED |
---|
130 | |
---|
131 | ! Ordering of the backward transform. Read-only parameter |
---|
132 | ! INTEGER, PARAMETER :: DFTI_BACKWARD_ORDERING = 25 ! NOT IMPLEMENTED |
---|
133 | |
---|
134 | ! Number of user threads that share the descriptor [1] |
---|
135 | INTEGER, PARAMETER :: DFTI_NUMBER_OF_USER_THREADS = 26 |
---|
136 | |
---|
137 | !====================================================================== |
---|
138 | ! Values of the descriptor configuration parameters |
---|
139 | !====================================================================== |
---|
140 | |
---|
141 | ! DFTI_COMMIT_STATUS |
---|
142 | INTEGER, PARAMETER :: DFTI_COMMITTED = 30 |
---|
143 | INTEGER, PARAMETER :: DFTI_UNCOMMITTED = 31 |
---|
144 | |
---|
145 | ! DFTI_FORWARD_DOMAIN |
---|
146 | INTEGER, PARAMETER :: DFTI_COMPLEX = 32 |
---|
147 | INTEGER, PARAMETER :: DFTI_REAL = 33 |
---|
148 | ! INTEGER, PARAMETER :: DFTI_CONJUGATE_EVEN = 34 ! NOT IMPLEMENTED |
---|
149 | |
---|
150 | ! DFTI_PRECISION |
---|
151 | INTEGER, PARAMETER :: DFTI_SINGLE = 35 |
---|
152 | INTEGER, PARAMETER :: DFTI_DOUBLE = 36 |
---|
153 | |
---|
154 | ! DFTI_PRECISION for reduced size of statically linked application. |
---|
155 | ! Recommended use: modify statement 'USE MKL_DFTI' in your program, |
---|
156 | ! so that it reads as either of: |
---|
157 | ! USE MKL_DFTI, FORGET=>DFTI_SINGLE, DFTI_SINGLE=>DFTI_SINGLE_R |
---|
158 | ! USE MKL_DFTI, FORGET=>DFTI_DOUBLE, DFTI_DOUBLE=>DFTI_DOUBLE_R |
---|
159 | ! where word 'FORGET' can be any name not used in the program. |
---|
160 | REAL(DFTI_SPKP), PARAMETER :: DFTI_SINGLE_R = 35 |
---|
161 | REAL(DFTI_DPKP), PARAMETER :: DFTI_DOUBLE_R = 36 |
---|
162 | |
---|
163 | ! DFTI_FORWARD_SIGN |
---|
164 | ! INTEGER, PARAMETER :: DFTI_NEGATIVE = 37 ! NOT IMPLEMENTED |
---|
165 | ! INTEGER, PARAMETER :: DFTI_POSITIVE = 38 ! NOT IMPLEMENTED |
---|
166 | |
---|
167 | ! DFTI_COMPLEX_STORAGE and DFTI_CONJUGATE_EVEN_STORAGE |
---|
168 | INTEGER, PARAMETER :: DFTI_COMPLEX_COMPLEX = 39 |
---|
169 | INTEGER, PARAMETER :: DFTI_COMPLEX_REAL = 40 |
---|
170 | |
---|
171 | ! DFTI_REAL_STORAGE |
---|
172 | INTEGER, PARAMETER :: DFTI_REAL_COMPLEX = 41 |
---|
173 | INTEGER, PARAMETER :: DFTI_REAL_REAL = 42 |
---|
174 | |
---|
175 | ! DFTI_PLACEMENT |
---|
176 | INTEGER, PARAMETER :: DFTI_INPLACE = 43 ! Result overwrites input |
---|
177 | INTEGER, PARAMETER :: DFTI_NOT_INPLACE = 44 ! Have another place for result |
---|
178 | |
---|
179 | ! DFTI_INITIALIZATION_EFFORT |
---|
180 | ! INTEGER, PARAMETER :: DFTI_LOW = 45 ! NOT IMPLEMENTED |
---|
181 | ! INTEGER, PARAMETER :: DFTI_MEDIUM = 46 ! NOT IMPLEMENTED |
---|
182 | ! INTEGER, PARAMETER :: DFTI_HIGH = 47 ! NOT IMPLEMENTED |
---|
183 | |
---|
184 | ! DFTI_ORDERING |
---|
185 | INTEGER, PARAMETER :: DFTI_ORDERED = 48 |
---|
186 | INTEGER, PARAMETER :: DFTI_BACKWARD_SCRAMBLED = 49 |
---|
187 | ! INTEGER, PARAMETER :: DFTI_FORWARD_SCRAMBLED = 50 ! NOT IMPLEMENTED |
---|
188 | |
---|
189 | ! Allow/avoid certain usages |
---|
190 | INTEGER, PARAMETER :: DFTI_ALLOW = 51 ! Allow transposition or workspace |
---|
191 | INTEGER, PARAMETER :: DFTI_AVOID = 52 ! Avoid auxiliary storage |
---|
192 | INTEGER, PARAMETER :: DFTI_NONE = 53 |
---|
193 | |
---|
194 | ! DFTI_PACKED_FORMAT |
---|
195 | ! (for storing congugate-even finite sequence in real array) |
---|
196 | INTEGER, PARAMETER :: DFTI_CCS_FORMAT = 54 ! Complex conjugate-symmetric |
---|
197 | INTEGER, PARAMETER :: DFTI_PACK_FORMAT = 55 ! Pack format for real DFT |
---|
198 | INTEGER, PARAMETER :: DFTI_PERM_FORMAT = 56 ! Perm format for real DFT |
---|
199 | INTEGER, PARAMETER :: DFTI_CCE_FORMAT = 57 ! Complex conjugate-even |
---|
200 | |
---|
201 | !====================================================================== |
---|
202 | ! Error classes |
---|
203 | !====================================================================== |
---|
204 | INTEGER, PARAMETER :: DFTI_NO_ERROR = 0 |
---|
205 | INTEGER, PARAMETER :: DFTI_MEMORY_ERROR = 1 |
---|
206 | INTEGER, PARAMETER :: DFTI_INVALID_CONFIGURATION = 2 |
---|
207 | INTEGER, PARAMETER :: DFTI_INCONSISTENT_CONFIGURATION = 3 |
---|
208 | INTEGER, PARAMETER :: DFTI_MULTITHREADED_ERROR = 4 |
---|
209 | INTEGER, PARAMETER :: DFTI_BAD_DESCRIPTOR = 5 |
---|
210 | INTEGER, PARAMETER :: DFTI_UNIMPLEMENTED = 6 |
---|
211 | INTEGER, PARAMETER :: DFTI_MKL_INTERNAL_ERROR = 7 |
---|
212 | INTEGER, PARAMETER :: DFTI_NUMBER_OF_THREADS_ERROR = 8 |
---|
213 | INTEGER, PARAMETER :: DFTI_1D_LENGTH_EXCEEDS_INT32 = 9 |
---|
214 | |
---|
215 | ! Maximum length of error string |
---|
216 | INTEGER, PARAMETER :: DFTI_MAX_MESSAGE_LENGTH = 80 |
---|
217 | |
---|
218 | ! Maximum length of user-settable descriptor name |
---|
219 | INTEGER, PARAMETER :: DFTI_MAX_NAME_LENGTH = 10 |
---|
220 | |
---|
221 | ! Maximum length of MKL version string |
---|
222 | INTEGER, PARAMETER :: DFTI_VERSION_LENGTH = 198 |
---|
223 | |
---|
224 | ! (deprecated parameter) |
---|
225 | INTEGER, PARAMETER :: DFTI_ERROR_CLASS = 60 |
---|
226 | |
---|
227 | END MODULE MKL_DFT_TYPE |
---|