ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_matrixIndex.F90
Go to the documentation of this file.
1!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3!!!! !!!!
4!!!! ParaMonte: Parallel Monte Carlo and Machine Learning Library. !!!!
5!!!! !!!!
6!!!! Copyright (C) 2012-present, The Computational Data Science Lab !!!!
7!!!! !!!!
8!!!! This file is part of the ParaMonte library. !!!!
9!!!! !!!!
10!!!! LICENSE !!!!
11!!!! !!!!
12!!!! https://github.com/cdslaborg/paramonte/blob/main/LICENSE.md !!!!
13!!!! !!!!
14!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
15!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
16
35
36!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
37
39
40 use pm_kind, only: SK, IK
46
47 implicit none
48
49 character(*,SK), parameter :: MODULE_NAME = "@pm_matrixPack"
50
51!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
52
171 interface getMatIndex
172
173 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
174 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
175 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
176
177 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
178
179 PURE module function getMatIndex_D0_LFP_RDP_UXD_AIO(dpack, spack, sindex, subset, shape, doff) result(dindex)
180#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
181 !DEC$ ATTRIBUTES DLLEXPORT :: getMatIndex_D0_LFP_RDP_UXD_AIO
182#endif
183 use pm_kind, only: IKG => IK
184 type(lfpack_type) , intent(in) :: dpack
185 type(rdpack_type) , intent(in) :: spack
186 type(uppDia_type) , intent(in) :: subset
187 integer(IKG) , intent(in) :: sindex(2)
188 integer(IKG) , intent(in) :: shape(2)
189 integer(IKG) , intent(in) , optional :: doff
190 integer(IKG) :: dindex
191 end function
192
193 PURE module function getMatIndex_D0_LFP_RDP_XLD_AIO(dpack, spack, sindex, subset, shape, doff) result(dindex)
194#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
195 !DEC$ ATTRIBUTES DLLEXPORT :: getMatIndex_D0_LFP_RDP_XLD_AIO
196#endif
197 use pm_kind, only: IKG => IK
198 type(lfpack_type) , intent(in) :: dpack
199 type(rdpack_type) , intent(in) :: spack
200 type(lowDia_type) , intent(in) :: subset
201 integer(IKG) , intent(in) :: sindex(2)
202 integer(IKG) , intent(in) :: shape(2)
203 integer(IKG) , intent(in) , optional :: doff
204 integer(IKG) :: dindex
205 end function
206
207 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
208
209 PURE module function getMatIndex_D0_RDP_LFP_UXD_AIO(dpack, spack, sindex, subset, shape, doff) result(dindex)
210#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
211 !DEC$ ATTRIBUTES DLLEXPORT :: getMatIndex_D0_RDP_LFP_UXD_AIO
212#endif
213 use pm_kind, only: IKG => IK
214 type(rdpack_type) , intent(in) :: dpack
215 type(lfpack_type) , intent(in) :: spack
216 type(uppDia_type) , intent(in) :: subset
217 integer(IKG) , intent(in) :: sindex
218 integer(IKG) , intent(in) :: shape(2)
219 integer(IKG) , intent(in) , optional :: doff
220 integer(IKG) :: dindex(2)
221 end function
222
223 PURE module function getMatIndex_D0_RDP_LFP_XLD_AIO(dpack, spack, sindex, subset, shape, doff) result(dindex)
224#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
225 !DEC$ ATTRIBUTES DLLEXPORT :: getMatIndex_D0_RDP_LFP_XLD_AIO
226#endif
227 use pm_kind, only: IKG => IK
228 type(rdpack_type) , intent(in) :: dpack
229 type(lfpack_type) , intent(in) :: spack
230 type(lowDia_type) , intent(in) :: subset
231 integer(IKG) , intent(in) :: sindex
232 integer(IKG) , intent(in) :: shape(2)
233 integer(IKG) , intent(in) , optional :: doff
234 integer(IKG) :: dindex(2)
235 end function
236
237 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
238
239 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
240 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
241 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
242
243 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
244
245 PURE module function getMatIndex_D0_RFP_RDP_UXD_AIO(dpack, spack, sindex, subset, shape) result(dindex)
246#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
247 !DEC$ ATTRIBUTES DLLEXPORT :: getMatIndex_D0_RFP_RDP_UXD_AIO
248#endif
249 use pm_kind, only: IKG => IK
250 type(rfpack_type) , intent(in) :: dpack
251 type(rdpack_type) , intent(in) :: spack
252 type(uppDia_type) , intent(in) :: subset
253 integer(IKG) , intent(in) :: sindex(2)
254 integer(IKG) , intent(in) :: shape(2)
255 integer(IKG) :: dindex(2)
256 end function
257
258 PURE module function getMatIndex_D0_RFP_RDP_XLD_AIO(dpack, spack, sindex, subset, shape) result(dindex)
259#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
260 !DEC$ ATTRIBUTES DLLEXPORT :: getMatIndex_D0_RFP_RDP_XLD_AIO
261#endif
262 use pm_kind, only: IKG => IK
263 type(rfpack_type) , intent(in) :: dpack
264 type(rdpack_type) , intent(in) :: spack
265 type(lowDia_type) , intent(in) :: subset
266 integer(IKG) , intent(in) :: sindex(2)
267 integer(IKG) , intent(in) :: shape(2)
268 integer(IKG) :: dindex(2)
269 end function
270
271 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
272
273 PURE module function getMatIndex_D0_RDP_RFP_UXD_AIO(dpack, spack, sindex, subset, shape) result(dindex)
274#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
275 !DEC$ ATTRIBUTES DLLEXPORT :: getMatIndex_D0_RDP_RFP_UXD_AIO
276#endif
277 use pm_kind, only: IKG => IK
278 type(rdpack_type) , intent(in) :: dpack
279 type(rfpack_type) , intent(in) :: spack
280 type(uppDia_type) , intent(in) :: subset
281 integer(IKG) , intent(in) :: sindex(2)
282 integer(IKG) , intent(in) :: shape(2)
283 integer(IKG) :: dindex(2)
284 end function
285
286 PURE module function getMatIndex_D0_RDP_RFP_XLD_AIO(dpack, spack, sindex, subset, shape) result(dindex)
287#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
288 !DEC$ ATTRIBUTES DLLEXPORT :: getMatIndex_D0_RDP_RFP_XLD_AIO
289#endif
290 use pm_kind, only: IKG => IK
291 type(rdpack_type) , intent(in) :: dpack
292 type(rfpack_type) , intent(in) :: spack
293 type(lowDia_type) , intent(in) :: subset
294 integer(IKG) , intent(in) :: sindex(2)
295 integer(IKG) , intent(in) :: shape(2)
296 integer(IKG) :: dindex(2)
297 end function
298
299 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
300
301 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
302 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
303 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
304
305 end interface
306
307!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
308
309end module pm_matrixIndex
Generate and return the index of a specific element of a matrix of a specific storage in specific pac...
This module defines the relevant Fortran kind type-parameters frequently used in the ParaMonte librar...
Definition: pm_kind.F90:268
integer, parameter IK
The default integer kind in the ParaMonte library: int32 in Fortran, c_int32_t in C-Fortran Interoper...
Definition: pm_kind.F90:540
integer, parameter SK
The default character kind in the ParaMonte library: kind("a") in Fortran, c_char in C-Fortran Intero...
Definition: pm_kind.F90:539
This module contains procedures and generic interfaces for converting the indices of matrix elements ...
character(*, SK), parameter MODULE_NAME
This module contains abstract and concrete derived types that are required for compile-time resolutio...
type(rdpack_type), parameter rdpack
This is an object instance of class rdpack_type that is exclusively used to signify Rectangular Spars...
type(lfpack_type), parameter lfpack
This is an object instance of class lfpack_type that is exclusively used to signify Linear Full conti...
type(rfpack_type), parameter rfpack
This is an object instance of class rfpack_type that is exclusively used to signify Rectangular Full ...
This module contains abstract and concrete derived types that are required for compile-time resolutio...
type(lowDia_type), parameter lowDia
This is a scalar parameter object of type lowDia_type that is exclusively used to request lower-diago...
type(uppDia_type), parameter uppDia
This is a scalar parameter object of type uppDia_type that is exclusively used to request upper-diago...
This is a concrete derived type whose instances are exclusively used to signify Linear Full contiguou...
This is a concrete derived type whose instances are exclusively used to signify Rectangular Sparse (o...
This is a concrete derived type whose instances are exclusively used to signify Rectangular Full cont...
This is a concrete derived type whose instances are exclusively used to request lower-diagonal triang...
This is a concrete derived type whose instances are exclusively used to request upper-diagonal triang...