ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_distChol.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
40
41!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
42
44
47 use pm_kind, only: SK, IK, LK
48
49 implicit none
50
51 character(*, SK), parameter :: MODULE_NAME = "@pm_distChol"
52
53!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
54
115 interface getCholRand
116
117 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
118 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
119 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
120
121 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
122
123#if CK5_ENABLED
124 impure module function getCholRandRNGD_CK5(mold, ndim, subset) result(rand)
125#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
126 !DEC$ ATTRIBUTES DLLEXPORT :: getCholRandRNGD_CK5
127#endif
128 use pm_kind, only: TKG => CK5
129 integer(IK) , intent(in) :: ndim
130 complex(TKG) , intent(in) :: mold
131 class(*) , intent(in) :: subset
132 complex(TKG) :: rand(ndim, ndim)
133 end function
134#endif
135
136#if CK4_ENABLED
137 impure module function getCholRandRNGD_CK4(mold, ndim, subset) result(rand)
138#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
139 !DEC$ ATTRIBUTES DLLEXPORT :: getCholRandRNGD_CK4
140#endif
141 use pm_kind, only: TKG => CK4
142 integer(IK) , intent(in) :: ndim
143 complex(TKG) , intent(in) :: mold
144 class(*) , intent(in) :: subset
145 complex(TKG) :: rand(ndim, ndim)
146 end function
147#endif
148
149#if CK3_ENABLED
150 impure module function getCholRandRNGD_CK3(mold, ndim, subset) result(rand)
151#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
152 !DEC$ ATTRIBUTES DLLEXPORT :: getCholRandRNGD_CK3
153#endif
154 use pm_kind, only: TKG => CK3
155 integer(IK) , intent(in) :: ndim
156 complex(TKG) , intent(in) :: mold
157 class(*) , intent(in) :: subset
158 complex(TKG) :: rand(ndim, ndim)
159 end function
160#endif
161
162#if CK2_ENABLED
163 impure module function getCholRandRNGD_CK2(mold, ndim, subset) result(rand)
164#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
165 !DEC$ ATTRIBUTES DLLEXPORT :: getCholRandRNGD_CK2
166#endif
167 use pm_kind, only: TKG => CK2
168 integer(IK) , intent(in) :: ndim
169 complex(TKG) , intent(in) :: mold
170 class(*) , intent(in) :: subset
171 complex(TKG) :: rand(ndim, ndim)
172 end function
173#endif
174
175#if CK1_ENABLED
176 impure module function getCholRandRNGD_CK1(mold, ndim, subset) result(rand)
177#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
178 !DEC$ ATTRIBUTES DLLEXPORT :: getCholRandRNGD_CK1
179#endif
180 use pm_kind, only: TKG => CK1
181 integer(IK) , intent(in) :: ndim
182 complex(TKG) , intent(in) :: mold
183 class(*) , intent(in) :: subset
184 complex(TKG) :: rand(ndim, ndim)
185 end function
186#endif
187
188 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
189
190#if RK5_ENABLED
191 impure module function getCholRandRNGD_RK5(mold, ndim, subset) result(rand)
192#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
193 !DEC$ ATTRIBUTES DLLEXPORT :: getCholRandRNGD_RK5
194#endif
195 use pm_kind, only: TKG => RK5
196 integer(IK) , intent(in) :: ndim
197 real(TKG) , intent(in) :: mold
198 class(*) , intent(in) :: subset
199 real(TKG) :: rand(ndim, ndim)
200 end function
201#endif
202
203#if RK4_ENABLED
204 impure module function getCholRandRNGD_RK4(mold, ndim, subset) result(rand)
205#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
206 !DEC$ ATTRIBUTES DLLEXPORT :: getCholRandRNGD_RK4
207#endif
208 use pm_kind, only: TKG => RK4
209 integer(IK) , intent(in) :: ndim
210 real(TKG) , intent(in) :: mold
211 class(*) , intent(in) :: subset
212 real(TKG) :: rand(ndim, ndim)
213 end function
214#endif
215
216#if RK3_ENABLED
217 impure module function getCholRandRNGD_RK3(mold, ndim, subset) result(rand)
218#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
219 !DEC$ ATTRIBUTES DLLEXPORT :: getCholRandRNGD_RK3
220#endif
221 use pm_kind, only: TKG => RK3
222 integer(IK) , intent(in) :: ndim
223 real(TKG) , intent(in) :: mold
224 class(*) , intent(in) :: subset
225 real(TKG) :: rand(ndim, ndim)
226 end function
227#endif
228
229#if RK2_ENABLED
230 impure module function getCholRandRNGD_RK2(mold, ndim, subset) result(rand)
231#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
232 !DEC$ ATTRIBUTES DLLEXPORT :: getCholRandRNGD_RK2
233#endif
234 use pm_kind, only: TKG => RK2
235 integer(IK) , intent(in) :: ndim
236 real(TKG) , intent(in) :: mold
237 class(*) , intent(in) :: subset
238 real(TKG) :: rand(ndim, ndim)
239 end function
240#endif
241
242#if RK1_ENABLED
243 impure module function getCholRandRNGD_RK1(mold, ndim, subset) result(rand)
244#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
245 !DEC$ ATTRIBUTES DLLEXPORT :: getCholRandRNGD_RK1
246#endif
247 use pm_kind, only: TKG => RK1
248 integer(IK) , intent(in) :: ndim
249 real(TKG) , intent(in) :: mold
250 class(*) , intent(in) :: subset
251 real(TKG) :: rand(ndim, ndim)
252 end function
253#endif
254
255 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
256
257 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
258 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
259 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
260
261 end interface
262
263!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
264
330
331 ! setCholRandG RK
332
333 interface setCholRand
334
335 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
336 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
337 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
338
339 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
340
341#if RK5_ENABLED
342 module subroutine setCholRandRNGF_RK5(rng, rand, subset)
343#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
344 !DEC$ ATTRIBUTES DLLEXPORT :: setCholRandRNGF_RK5
345#endif
346 use pm_kind, only: TKG => RK5
347 type(rngf_type) , intent(in) :: rng
348 real(TKG) , intent(out) , contiguous :: rand(:,:)
349 class(*) , intent(in) :: subset
350 end subroutine
351#endif
352
353#if RK4_ENABLED
354 module subroutine setCholRandRNGF_RK4(rng, rand, subset)
355#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
356 !DEC$ ATTRIBUTES DLLEXPORT :: setCholRandRNGF_RK4
357#endif
358 use pm_kind, only: TKG => RK4
359 type(rngf_type) , intent(in) :: rng
360 real(TKG) , intent(out) , contiguous :: rand(:,:)
361 class(*) , intent(in) :: subset
362 end subroutine
363#endif
364
365#if RK3_ENABLED
366 module subroutine setCholRandRNGF_RK3(rng, rand, subset)
367#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
368 !DEC$ ATTRIBUTES DLLEXPORT :: setCholRandRNGF_RK3
369#endif
370 use pm_kind, only: TKG => RK3
371 type(rngf_type) , intent(in) :: rng
372 real(TKG) , intent(out) , contiguous :: rand(:,:)
373 class(*) , intent(in) :: subset
374 end subroutine
375#endif
376
377#if RK2_ENABLED
378 module subroutine setCholRandRNGF_RK2(rng, rand, subset)
379#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
380 !DEC$ ATTRIBUTES DLLEXPORT :: setCholRandRNGF_RK2
381#endif
382 use pm_kind, only: TKG => RK2
383 type(rngf_type) , intent(in) :: rng
384 real(TKG) , intent(out) , contiguous :: rand(:,:)
385 class(*) , intent(in) :: subset
386 end subroutine
387#endif
388
389#if RK1_ENABLED
390 module subroutine setCholRandRNGF_RK1(rng, rand, subset)
391#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
392 !DEC$ ATTRIBUTES DLLEXPORT :: setCholRandRNGF_RK1
393#endif
394 use pm_kind, only: TKG => RK1
395 type(rngf_type) , intent(in) :: rng
396 real(TKG) , intent(out) , contiguous :: rand(:,:)
397 class(*) , intent(in) :: subset
398 end subroutine
399#endif
400
401 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
402
403 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
404 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
405 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
406
407 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
408
409#if RK5_ENABLED
410 PURE module subroutine setCholRandRNGX_RK5(rng, rand, subset)
411#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
412 !DEC$ ATTRIBUTES DLLEXPORT :: setCholRandRNGX_RK5
413#endif
414 use pm_kind, only: TKG => RK5
415 type(xoshiro256ssw_type), intent(inout) :: rng
416 real(TKG) , intent(out) , contiguous :: rand(:,:)
417 class(*) , intent(in) :: subset
418 end subroutine
419#endif
420
421#if RK4_ENABLED
422 PURE module subroutine setCholRandRNGX_RK4(rng, rand, subset)
423#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
424 !DEC$ ATTRIBUTES DLLEXPORT :: setCholRandRNGX_RK4
425#endif
426 use pm_kind, only: TKG => RK4
427 type(xoshiro256ssw_type), intent(inout) :: rng
428 real(TKG) , intent(out) , contiguous :: rand(:,:)
429 class(*) , intent(in) :: subset
430 end subroutine
431#endif
432
433#if RK3_ENABLED
434 PURE module subroutine setCholRandRNGX_RK3(rng, rand, subset)
435#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
436 !DEC$ ATTRIBUTES DLLEXPORT :: setCholRandRNGX_RK3
437#endif
438 use pm_kind, only: TKG => RK3
439 type(xoshiro256ssw_type), intent(inout) :: rng
440 real(TKG) , intent(out) , contiguous :: rand(:,:)
441 class(*) , intent(in) :: subset
442 end subroutine
443#endif
444
445#if RK2_ENABLED
446 PURE module subroutine setCholRandRNGX_RK2(rng, rand, subset)
447#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
448 !DEC$ ATTRIBUTES DLLEXPORT :: setCholRandRNGX_RK2
449#endif
450 use pm_kind, only: TKG => RK2
451 type(xoshiro256ssw_type), intent(inout) :: rng
452 real(TKG) , intent(out) , contiguous :: rand(:,:)
453 class(*) , intent(in) :: subset
454 end subroutine
455#endif
456
457#if RK1_ENABLED
458 PURE module subroutine setCholRandRNGX_RK1(rng, rand, subset)
459#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
460 !DEC$ ATTRIBUTES DLLEXPORT :: setCholRandRNGX_RK1
461#endif
462 use pm_kind, only: TKG => RK1
463 type(xoshiro256ssw_type), intent(inout) :: rng
464 real(TKG) , intent(out) , contiguous :: rand(:,:)
465 class(*) , intent(in) :: subset
466 end subroutine
467#endif
468
469 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
470
471 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
472 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
473 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
474
475 end interface
476
477 ! setCholRandG CK
478
479 interface setCholRand
480
481 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
482 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
483 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
484
485 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
486
487#if CK5_ENABLED
488 module subroutine setCholRandRNGF_CK5(rng, rand, subset)
489#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
490 !DEC$ ATTRIBUTES DLLEXPORT :: setCholRandRNGF_CK5
491#endif
492 use pm_kind, only: TKG => CK5
493 type(rngf_type) , intent(in) :: rng
494 complex(TKG) , intent(out) , contiguous :: rand(:,:)
495 class(*) , intent(in) :: subset
496 end subroutine
497#endif
498
499#if CK4_ENABLED
500 module subroutine setCholRandRNGF_CK4(rng, rand, subset)
501#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
502 !DEC$ ATTRIBUTES DLLEXPORT :: setCholRandRNGF_CK4
503#endif
504 use pm_kind, only: TKG => CK4
505 type(rngf_type) , intent(in) :: rng
506 complex(TKG) , intent(out) , contiguous :: rand(:,:)
507 class(*) , intent(in) :: subset
508 end subroutine
509#endif
510
511#if CK3_ENABLED
512 module subroutine setCholRandRNGF_CK3(rng, rand, subset)
513#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
514 !DEC$ ATTRIBUTES DLLEXPORT :: setCholRandRNGF_CK3
515#endif
516 use pm_kind, only: TKG => CK3
517 type(rngf_type) , intent(in) :: rng
518 complex(TKG) , intent(out) , contiguous :: rand(:,:)
519 class(*) , intent(in) :: subset
520 end subroutine
521#endif
522
523#if CK2_ENABLED
524 module subroutine setCholRandRNGF_CK2(rng, rand, subset)
525#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
526 !DEC$ ATTRIBUTES DLLEXPORT :: setCholRandRNGF_CK2
527#endif
528 use pm_kind, only: TKG => CK2
529 type(rngf_type) , intent(in) :: rng
530 complex(TKG) , intent(out) , contiguous :: rand(:,:)
531 class(*) , intent(in) :: subset
532 end subroutine
533#endif
534
535#if CK1_ENABLED
536 module subroutine setCholRandRNGF_CK1(rng, rand, subset)
537#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
538 !DEC$ ATTRIBUTES DLLEXPORT :: setCholRandRNGF_CK1
539#endif
540 use pm_kind, only: TKG => CK1
541 type(rngf_type) , intent(in) :: rng
542 complex(TKG) , intent(out) , contiguous :: rand(:,:)
543 class(*) , intent(in) :: subset
544 end subroutine
545#endif
546
547 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
548
549#if CK5_ENABLED
550 PURE module subroutine setCholRandRNGX_CK5(rng, rand, subset)
551#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
552 !DEC$ ATTRIBUTES DLLEXPORT :: setCholRandRNGX_CK5
553#endif
554 use pm_kind, only: TKG => CK5
555 type(xoshiro256ssw_type), intent(inout) :: rng
556 complex(TKG) , intent(out) , contiguous :: rand(:,:)
557 class(*) , intent(in) :: subset
558 end subroutine
559#endif
560
561#if CK4_ENABLED
562 PURE module subroutine setCholRandRNGX_CK4(rng, rand, subset)
563#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
564 !DEC$ ATTRIBUTES DLLEXPORT :: setCholRandRNGX_CK4
565#endif
566 use pm_kind, only: TKG => CK4
567 type(xoshiro256ssw_type), intent(inout) :: rng
568 complex(TKG) , intent(out) , contiguous :: rand(:,:)
569 class(*) , intent(in) :: subset
570 end subroutine
571#endif
572
573#if CK3_ENABLED
574 PURE module subroutine setCholRandRNGX_CK3(rng, rand, subset)
575#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
576 !DEC$ ATTRIBUTES DLLEXPORT :: setCholRandRNGX_CK3
577#endif
578 use pm_kind, only: TKG => CK3
579 type(xoshiro256ssw_type), intent(inout) :: rng
580 complex(TKG) , intent(out) , contiguous :: rand(:,:)
581 class(*) , intent(in) :: subset
582 end subroutine
583#endif
584
585#if CK2_ENABLED
586 PURE module subroutine setCholRandRNGX_CK2(rng, rand, subset)
587#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
588 !DEC$ ATTRIBUTES DLLEXPORT :: setCholRandRNGX_CK2
589#endif
590 use pm_kind, only: TKG => CK2
591 type(xoshiro256ssw_type), intent(inout) :: rng
592 complex(TKG) , intent(out) , contiguous :: rand(:,:)
593 class(*) , intent(in) :: subset
594 end subroutine
595#endif
596
597#if CK1_ENABLED
598 PURE module subroutine setCholRandRNGX_CK1(rng, rand, subset)
599#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
600 !DEC$ ATTRIBUTES DLLEXPORT :: setCholRandRNGX_CK1
601#endif
602 use pm_kind, only: TKG => CK1
603 type(xoshiro256ssw_type), intent(inout) :: rng
604 complex(TKG) , intent(out) , contiguous :: rand(:,:)
605 class(*) , intent(in) :: subset
606 end subroutine
607#endif
608
609 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
610
611 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
612 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
613 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
614
615 end interface
616
617!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
618
619end module pm_distChol
Generate and return a random upper and lower Cholesky factorization.
Return a random upper or lower Cholesky factorization.
This module contains classes and procedures for generating random upper or lower Cholesky factor tria...
Definition: pm_distChol.F90:43
character(*, SK), parameter MODULE_NAME
Definition: pm_distChol.F90:51
This module contains classes and procedures for computing various statistical quantities related to t...
This module defines the relevant Fortran kind type-parameters frequently used in the ParaMonte librar...
Definition: pm_kind.F90:268
integer, parameter RK5
Definition: pm_kind.F90:478
integer, parameter RK4
Definition: pm_kind.F90:489
integer, parameter RK2
Definition: pm_kind.F90:511
integer, parameter CK1
Definition: pm_kind.F90:464
integer, parameter RK3
Definition: pm_kind.F90:500
integer, parameter LK
The default logical kind in the ParaMonte library: kind(.true.) in Fortran, kind(....
Definition: pm_kind.F90:541
integer, parameter CK5
Definition: pm_kind.F90:420
integer, parameter CK4
Definition: pm_kind.F90:431
integer, parameter CK2
Definition: pm_kind.F90:453
integer, parameter CK3
Definition: pm_kind.F90:442
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
integer, parameter RK1
Definition: pm_kind.F90:522
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 can be used to define/request the default uniform ran...
This is the derived type for declaring and generating objects of type xoshiro256ssw_type containing a...
This is a concrete derived type whose instances are exclusively used to request lower-diagonal triang...
This is an abstract derived type for constructing concrete derived types to distinguish various proce...
This is a concrete derived type whose instances are exclusively used to request upper-diagonal triang...