Line data Source code
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 :
17 : !> \brief
18 : !> This file contains procedure implementations of [pm_distBeta](@ref pm_distBeta).
19 : !>
20 : !> \author
21 : !> \AmirShahmoradi, Oct 16, 2009, 11:14 AM, Michigan
22 :
23 : submodule (pm_distBeta) routines ! LCOV_EXCL_LINE
24 :
25 : #if CHECK_ENABLED
26 : use pm_err, only: getFine
27 : use pm_val2str, only: getStr
28 : use pm_err, only: setAsserted
29 : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) \
30 : call setAsserted(ASSERTION,getFine(__FILE__,LINE)//MODULE_NAME//MSG);
31 : #else
32 : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) continue;
33 : #endif
34 :
35 : use pm_mathBeta, only: getLogBeta
36 : use pm_mathBeta, only: getBetaInc
37 : use pm_mathBeta, only: setBetaInc
38 : use pm_distUnif, only: setUnifRand
39 : use pm_distGamma, only: setGammaRand
40 :
41 : implicit none
42 :
43 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
44 :
45 : contains
46 :
47 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
48 :
49 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
50 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
51 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
52 :
53 : #define getBetaPDF_ENABLED 1
54 :
55 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
56 :
57 : #define RK_ENABLED 1
58 :
59 : #if RK5_ENABLED
60 : module procedure getBetaPDF_RK5
61 : use pm_kind, only: RKC => RK5
62 : #include "pm_distBeta@routines.inc.F90"
63 : end procedure
64 : #endif
65 :
66 : #if RK4_ENABLED
67 36 : module procedure getBetaPDF_RK4
68 : use pm_kind, only: RKC => RK4
69 : #include "pm_distBeta@routines.inc.F90"
70 36 : end procedure
71 : #endif
72 :
73 : #if RK3_ENABLED
74 0 : module procedure getBetaPDF_RK3
75 : use pm_kind, only: RKC => RK3
76 : #include "pm_distBeta@routines.inc.F90"
77 0 : end procedure
78 : #endif
79 :
80 : #if RK2_ENABLED
81 59328 : module procedure getBetaPDF_RK2
82 : use pm_kind, only: RKC => RK2
83 : #include "pm_distBeta@routines.inc.F90"
84 59328 : end procedure
85 : #endif
86 :
87 : #if RK1_ENABLED
88 4156 : module procedure getBetaPDF_RK1
89 : use pm_kind, only: RKC => RK1
90 : #include "pm_distBeta@routines.inc.F90"
91 4156 : end procedure
92 : #endif
93 :
94 : #undef RK_ENABLED
95 :
96 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
97 :
98 : #undef getBetaPDF_ENABLED
99 :
100 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
101 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
102 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
103 :
104 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
105 :
106 : #define getBetaLogPDF_ENABLED 1
107 :
108 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
109 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
110 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
111 :
112 : #define DEFAULT_ENABLED 1
113 :
114 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
115 :
116 : #define RK_ENABLED 1
117 :
118 : #if RK5_ENABLED
119 : module procedure getBetaLogPDFD_RK5
120 : use pm_kind, only: RKC => RK5
121 : #include "pm_distBeta@routines.inc.F90"
122 : end procedure
123 : #endif
124 :
125 : #if RK4_ENABLED
126 1149 : module procedure getBetaLogPDFD_RK4
127 : use pm_kind, only: RKC => RK4
128 : #include "pm_distBeta@routines.inc.F90"
129 1149 : end procedure
130 : #endif
131 :
132 : #if RK3_ENABLED
133 0 : module procedure getBetaLogPDFD_RK3
134 : use pm_kind, only: RKC => RK3
135 : #include "pm_distBeta@routines.inc.F90"
136 0 : end procedure
137 : #endif
138 :
139 : #if RK2_ENABLED
140 0 : module procedure getBetaLogPDFD_RK2
141 : use pm_kind, only: RKC => RK2
142 : #include "pm_distBeta@routines.inc.F90"
143 0 : end procedure
144 : #endif
145 :
146 : #if RK1_ENABLED
147 4012 : module procedure getBetaLogPDFD_RK1
148 : use pm_kind, only: RKC => RK1
149 : #include "pm_distBeta@routines.inc.F90"
150 4012 : end procedure
151 : #endif
152 :
153 : #undef RK_ENABLED
154 :
155 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
156 :
157 : #undef DEFAULT_ENABLED
158 :
159 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
160 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
161 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
162 :
163 : #define LOGBETA_ENABLED 1
164 :
165 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
166 :
167 : #define RK_ENABLED 1
168 :
169 : #if RK5_ENABLED
170 : module procedure getBetaLogPDFL_RK5
171 : use pm_kind, only: RKC => RK5
172 : #include "pm_distBeta@routines.inc.F90"
173 : end procedure
174 : #endif
175 :
176 : #if RK4_ENABLED
177 0 : module procedure getBetaLogPDFL_RK4
178 : use pm_kind, only: RKC => RK4
179 : #include "pm_distBeta@routines.inc.F90"
180 0 : end procedure
181 : #endif
182 :
183 : #if RK3_ENABLED
184 0 : module procedure getBetaLogPDFL_RK3
185 : use pm_kind, only: RKC => RK3
186 : #include "pm_distBeta@routines.inc.F90"
187 0 : end procedure
188 : #endif
189 :
190 : #if RK2_ENABLED
191 0 : module procedure getBetaLogPDFL_RK2
192 : use pm_kind, only: RKC => RK2
193 : #include "pm_distBeta@routines.inc.F90"
194 0 : end procedure
195 : #endif
196 :
197 : #if RK1_ENABLED
198 1 : module procedure getBetaLogPDFL_RK1
199 : use pm_kind, only: RKC => RK1
200 : #include "pm_distBeta@routines.inc.F90"
201 1 : end procedure
202 : #endif
203 :
204 : #undef RK_ENABLED
205 :
206 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
207 :
208 : #undef LOGBETA_ENABLED
209 :
210 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
211 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
212 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
213 :
214 : #undef getBetaLogPDF_ENABLED
215 :
216 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
217 :
218 : #define setBetaLogPDF_ENABLED 1
219 :
220 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
221 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
222 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
223 :
224 : #define DEFAULT_ENABLED 1
225 :
226 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
227 :
228 : #define RK_ENABLED 1
229 :
230 : #if RK5_ENABLED
231 : module procedure setBetaLogPDFD_RK5
232 : use pm_kind, only: RKC => RK5
233 : #include "pm_distBeta@routines.inc.F90"
234 : end procedure
235 : #endif
236 :
237 : #if RK4_ENABLED
238 34 : module procedure setBetaLogPDFD_RK4
239 : use pm_kind, only: RKC => RK4
240 : #include "pm_distBeta@routines.inc.F90"
241 34 : end procedure
242 : #endif
243 :
244 : #if RK3_ENABLED
245 0 : module procedure setBetaLogPDFD_RK3
246 : use pm_kind, only: RKC => RK3
247 : #include "pm_distBeta@routines.inc.F90"
248 0 : end procedure
249 : #endif
250 :
251 : #if RK2_ENABLED
252 59326 : module procedure setBetaLogPDFD_RK2
253 : use pm_kind, only: RKC => RK2
254 : #include "pm_distBeta@routines.inc.F90"
255 59326 : end procedure
256 : #endif
257 :
258 : #if RK1_ENABLED
259 8166 : module procedure setBetaLogPDFD_RK1
260 : use pm_kind, only: RKC => RK1
261 : #include "pm_distBeta@routines.inc.F90"
262 8166 : end procedure
263 : #endif
264 :
265 : #undef RK_ENABLED
266 :
267 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
268 :
269 : #undef DEFAULT_ENABLED
270 :
271 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
272 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
273 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
274 :
275 : #define LOGBETA_ENABLED 1
276 :
277 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
278 :
279 : #define RK_ENABLED 1
280 :
281 : #if RK5_ENABLED
282 : module procedure setBetaLogPDFL_RK5
283 : use pm_kind, only: RKC => RK5
284 : #include "pm_distBeta@routines.inc.F90"
285 : end procedure
286 : #endif
287 :
288 : #if RK4_ENABLED
289 0 : module procedure setBetaLogPDFL_RK4
290 : use pm_kind, only: RKC => RK4
291 : #include "pm_distBeta@routines.inc.F90"
292 0 : end procedure
293 : #endif
294 :
295 : #if RK3_ENABLED
296 0 : module procedure setBetaLogPDFL_RK3
297 : use pm_kind, only: RKC => RK3
298 : #include "pm_distBeta@routines.inc.F90"
299 0 : end procedure
300 : #endif
301 :
302 : #if RK2_ENABLED
303 0 : module procedure setBetaLogPDFL_RK2
304 : use pm_kind, only: RKC => RK2
305 : #include "pm_distBeta@routines.inc.F90"
306 0 : end procedure
307 : #endif
308 :
309 : #if RK1_ENABLED
310 1 : module procedure setBetaLogPDFL_RK1
311 : use pm_kind, only: RKC => RK1
312 : #include "pm_distBeta@routines.inc.F90"
313 1 : end procedure
314 : #endif
315 :
316 : #undef RK_ENABLED
317 :
318 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
319 :
320 : #undef LOGBETA_ENABLED
321 :
322 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
323 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
324 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
325 :
326 : #undef setBetaLogPDF_ENABLED
327 :
328 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
329 :
330 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
331 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
332 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
333 :
334 : #define getBetaCDF_ENABLED 1
335 :
336 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
337 :
338 : #define RK_ENABLED 1
339 :
340 : #if RK5_ENABLED
341 : module procedure getBetaCDF_RK5
342 : use pm_kind, only: RKC => RK5
343 : #include "pm_distBeta@routines.inc.F90"
344 : end procedure
345 : #endif
346 :
347 : #if RK4_ENABLED
348 0 : module procedure getBetaCDF_RK4
349 : use pm_kind, only: RKC => RK4
350 : #include "pm_distBeta@routines.inc.F90"
351 0 : end procedure
352 : #endif
353 :
354 : #if RK3_ENABLED
355 0 : module procedure getBetaCDF_RK3
356 : use pm_kind, only: RKC => RK3
357 : #include "pm_distBeta@routines.inc.F90"
358 0 : end procedure
359 : #endif
360 :
361 : #if RK2_ENABLED
362 4009 : module procedure getBetaCDF_RK2
363 : use pm_kind, only: RKC => RK2
364 : #include "pm_distBeta@routines.inc.F90"
365 4009 : end procedure
366 : #endif
367 :
368 : #if RK1_ENABLED
369 0 : module procedure getBetaCDF_RK1
370 : use pm_kind, only: RKC => RK1
371 : #include "pm_distBeta@routines.inc.F90"
372 0 : end procedure
373 : #endif
374 :
375 : #undef RK_ENABLED
376 :
377 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
378 :
379 : #undef getBetaCDF_ENABLED
380 :
381 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
382 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
383 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
384 :
385 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
386 :
387 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
388 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
389 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
390 :
391 : #define setBetaCDF_ENABLED 1
392 :
393 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
394 :
395 : #define RK_ENABLED 1
396 :
397 : #if RK5_ENABLED
398 : module procedure setBetaCDF_RK5
399 : use pm_kind, only: RKC => RK5
400 : #include "pm_distBeta@routines.inc.F90"
401 : end procedure
402 : #endif
403 :
404 : #if RK4_ENABLED
405 4011 : module procedure setBetaCDF_RK4
406 : use pm_kind, only: RKC => RK4
407 : #include "pm_distBeta@routines.inc.F90"
408 4011 : end procedure
409 : #endif
410 :
411 : #if RK3_ENABLED
412 0 : module procedure setBetaCDF_RK3
413 : use pm_kind, only: RKC => RK3
414 : #include "pm_distBeta@routines.inc.F90"
415 0 : end procedure
416 : #endif
417 :
418 : #if RK2_ENABLED
419 0 : module procedure setBetaCDF_RK2
420 : use pm_kind, only: RKC => RK2
421 : #include "pm_distBeta@routines.inc.F90"
422 0 : end procedure
423 : #endif
424 :
425 : #if RK1_ENABLED
426 0 : module procedure setBetaCDF_RK1
427 : use pm_kind, only: RKC => RK1
428 : #include "pm_distBeta@routines.inc.F90"
429 0 : end procedure
430 : #endif
431 :
432 : #undef RK_ENABLED
433 :
434 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
435 :
436 : #undef setBetaCDF_ENABLED
437 :
438 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
439 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
440 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
441 :
442 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
443 :
444 : #define setBetaRand_ENABLED 1
445 :
446 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
447 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
448 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
449 :
450 : #define D0_ENABLED 1
451 :
452 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
453 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
454 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
455 :
456 : #define RNGD_ENABLED 1
457 :
458 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
459 :
460 : #define RK_ENABLED 1
461 :
462 : #if RK5_ENABLED
463 : module procedure setBetaRandRNGD_D0_RK5
464 : use pm_kind, only: RKC => RK5
465 : #include "pm_distBeta@routines.inc.F90"
466 : end procedure
467 : #endif
468 :
469 : #if RK4_ENABLED
470 0 : module procedure setBetaRandRNGD_D0_RK4
471 : use pm_kind, only: RKC => RK4
472 : #include "pm_distBeta@routines.inc.F90"
473 0 : end procedure
474 : #endif
475 :
476 : #if RK3_ENABLED
477 0 : module procedure setBetaRandRNGD_D0_RK3
478 : use pm_kind, only: RKC => RK3
479 : #include "pm_distBeta@routines.inc.F90"
480 0 : end procedure
481 : #endif
482 :
483 : #if RK2_ENABLED
484 0 : module procedure setBetaRandRNGD_D0_RK2
485 : use pm_kind, only: RKC => RK2
486 : #include "pm_distBeta@routines.inc.F90"
487 0 : end procedure
488 : #endif
489 :
490 : #if RK1_ENABLED
491 5 : module procedure setBetaRandRNGD_D0_RK1
492 : use pm_kind, only: RKC => RK1
493 : #include "pm_distBeta@routines.inc.F90"
494 5 : end procedure
495 : #endif
496 :
497 : #undef RK_ENABLED
498 :
499 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
500 :
501 : #undef RNGD_ENABLED
502 :
503 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
504 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
505 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
506 :
507 : #define RNGF_ENABLED 1
508 :
509 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
510 :
511 : #define RK_ENABLED 1
512 :
513 : #if RK5_ENABLED
514 : module procedure setBetaRandRNGF_D0_RK5
515 : use pm_kind, only: RKC => RK5
516 : #include "pm_distBeta@routines.inc.F90"
517 : end procedure
518 : #endif
519 :
520 : #if RK4_ENABLED
521 0 : module procedure setBetaRandRNGF_D0_RK4
522 : use pm_kind, only: RKC => RK4
523 : #include "pm_distBeta@routines.inc.F90"
524 0 : end procedure
525 : #endif
526 :
527 : #if RK3_ENABLED
528 0 : module procedure setBetaRandRNGF_D0_RK3
529 : use pm_kind, only: RKC => RK3
530 : #include "pm_distBeta@routines.inc.F90"
531 0 : end procedure
532 : #endif
533 :
534 : #if RK2_ENABLED
535 0 : module procedure setBetaRandRNGF_D0_RK2
536 : use pm_kind, only: RKC => RK2
537 : #include "pm_distBeta@routines.inc.F90"
538 0 : end procedure
539 : #endif
540 :
541 : #if RK1_ENABLED
542 218 : module procedure setBetaRandRNGF_D0_RK1
543 : use pm_kind, only: RKC => RK1
544 : #include "pm_distBeta@routines.inc.F90"
545 218 : end procedure
546 : #endif
547 :
548 : #undef RK_ENABLED
549 :
550 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
551 :
552 : #undef RNGF_ENABLED
553 :
554 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
555 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
556 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
557 :
558 : #define RNGX_ENABLED 1
559 :
560 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
561 :
562 : #define RK_ENABLED 1
563 :
564 : #if RK5_ENABLED
565 : module procedure setBetaRandRNGX_D0_RK5
566 : use pm_kind, only: RKC => RK5
567 : #include "pm_distBeta@routines.inc.F90"
568 : end procedure
569 : #endif
570 :
571 : #if RK4_ENABLED
572 0 : module procedure setBetaRandRNGX_D0_RK4
573 : use pm_kind, only: RKC => RK4
574 : #include "pm_distBeta@routines.inc.F90"
575 0 : end procedure
576 : #endif
577 :
578 : #if RK3_ENABLED
579 0 : module procedure setBetaRandRNGX_D0_RK3
580 : use pm_kind, only: RKC => RK3
581 : #include "pm_distBeta@routines.inc.F90"
582 0 : end procedure
583 : #endif
584 :
585 : #if RK2_ENABLED
586 0 : module procedure setBetaRandRNGX_D0_RK2
587 : use pm_kind, only: RKC => RK2
588 : #include "pm_distBeta@routines.inc.F90"
589 0 : end procedure
590 : #endif
591 :
592 : #if RK1_ENABLED
593 0 : module procedure setBetaRandRNGX_D0_RK1
594 : use pm_kind, only: RKC => RK1
595 : #include "pm_distBeta@routines.inc.F90"
596 0 : end procedure
597 : #endif
598 :
599 : #undef RK_ENABLED
600 :
601 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
602 :
603 : #undef RNGX_ENABLED
604 :
605 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
606 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
607 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
608 :
609 : #undef D0_ENABLED
610 :
611 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
612 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
613 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
614 :
615 : #define D1_ENABLED 1
616 :
617 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
618 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
619 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
620 :
621 : #define RNGD_ENABLED 1
622 :
623 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
624 :
625 : #define RK_ENABLED 1
626 :
627 : #if RK5_ENABLED
628 : module procedure setBetaRandRNGD_D1_RK5
629 : use pm_kind, only: RKC => RK5
630 : #include "pm_distBeta@routines.inc.F90"
631 : end procedure
632 : #endif
633 :
634 : #if RK4_ENABLED
635 0 : module procedure setBetaRandRNGD_D1_RK4
636 : use pm_kind, only: RKC => RK4
637 : #include "pm_distBeta@routines.inc.F90"
638 0 : end procedure
639 : #endif
640 :
641 : #if RK3_ENABLED
642 0 : module procedure setBetaRandRNGD_D1_RK3
643 : use pm_kind, only: RKC => RK3
644 : #include "pm_distBeta@routines.inc.F90"
645 0 : end procedure
646 : #endif
647 :
648 : #if RK2_ENABLED
649 0 : module procedure setBetaRandRNGD_D1_RK2
650 : use pm_kind, only: RKC => RK2
651 : #include "pm_distBeta@routines.inc.F90"
652 0 : end procedure
653 : #endif
654 :
655 : #if RK1_ENABLED
656 5 : module procedure setBetaRandRNGD_D1_RK1
657 : use pm_kind, only: RKC => RK1
658 : #include "pm_distBeta@routines.inc.F90"
659 5 : end procedure
660 : #endif
661 :
662 : #undef RK_ENABLED
663 :
664 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
665 :
666 : #undef RNGD_ENABLED
667 :
668 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
669 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
670 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
671 :
672 : #define RNGF_ENABLED 1
673 :
674 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
675 :
676 : #define RK_ENABLED 1
677 :
678 : #if RK5_ENABLED
679 : module procedure setBetaRandRNGF_D1_RK5
680 : use pm_kind, only: RKC => RK5
681 : #include "pm_distBeta@routines.inc.F90"
682 : end procedure
683 : #endif
684 :
685 : #if RK4_ENABLED
686 0 : module procedure setBetaRandRNGF_D1_RK4
687 : use pm_kind, only: RKC => RK4
688 : #include "pm_distBeta@routines.inc.F90"
689 0 : end procedure
690 : #endif
691 :
692 : #if RK3_ENABLED
693 0 : module procedure setBetaRandRNGF_D1_RK3
694 : use pm_kind, only: RKC => RK3
695 : #include "pm_distBeta@routines.inc.F90"
696 0 : end procedure
697 : #endif
698 :
699 : #if RK2_ENABLED
700 0 : module procedure setBetaRandRNGF_D1_RK2
701 : use pm_kind, only: RKC => RK2
702 : #include "pm_distBeta@routines.inc.F90"
703 0 : end procedure
704 : #endif
705 :
706 : #if RK1_ENABLED
707 0 : module procedure setBetaRandRNGF_D1_RK1
708 : use pm_kind, only: RKC => RK1
709 : #include "pm_distBeta@routines.inc.F90"
710 0 : end procedure
711 : #endif
712 :
713 : #undef RK_ENABLED
714 :
715 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
716 :
717 : #undef RNGF_ENABLED
718 :
719 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
720 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
721 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
722 :
723 : #define RNGX_ENABLED 1
724 :
725 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
726 :
727 : #define RK_ENABLED 1
728 :
729 : #if RK5_ENABLED
730 : module procedure setBetaRandRNGX_D1_RK5
731 : use pm_kind, only: RKC => RK5
732 : #include "pm_distBeta@routines.inc.F90"
733 : end procedure
734 : #endif
735 :
736 : #if RK4_ENABLED
737 0 : module procedure setBetaRandRNGX_D1_RK4
738 : use pm_kind, only: RKC => RK4
739 : #include "pm_distBeta@routines.inc.F90"
740 0 : end procedure
741 : #endif
742 :
743 : #if RK3_ENABLED
744 0 : module procedure setBetaRandRNGX_D1_RK3
745 : use pm_kind, only: RKC => RK3
746 : #include "pm_distBeta@routines.inc.F90"
747 0 : end procedure
748 : #endif
749 :
750 : #if RK2_ENABLED
751 0 : module procedure setBetaRandRNGX_D1_RK2
752 : use pm_kind, only: RKC => RK2
753 : #include "pm_distBeta@routines.inc.F90"
754 0 : end procedure
755 : #endif
756 :
757 : #if RK1_ENABLED
758 1 : module procedure setBetaRandRNGX_D1_RK1
759 : use pm_kind, only: RKC => RK1
760 : #include "pm_distBeta@routines.inc.F90"
761 1 : end procedure
762 : #endif
763 :
764 : #undef RK_ENABLED
765 :
766 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
767 :
768 : #undef RNGX_ENABLED
769 :
770 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
771 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
772 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
773 :
774 : #undef D1_ENABLED
775 :
776 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
777 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
778 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
779 :
780 : #undef setBetaRand_ENABLED
781 :
782 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
783 :
784 : #undef CHECK_ASSERTION
785 :
786 : end submodule routines
|