[1801] | 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 |
---|