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 |