Skip to content

DSCF-1224/pcg-fortran

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PCG Random Number Generation, Fortran Edition

This is a PCG implemented in Fortran 2008.
(C is used for testing only.)
This library is based on PCG implemented in C.

Implementation

The iso_fortran_env intrinsic MODULE does not have support for int128, so this library does not implement PCGs requiring int128.

Output function : RXS M

state result mcg oneseq setseq unique
int16 int8
int32 int16
int64 int32
int128 int64

Output function : RXS M XS

state result mcg oneseq setseq unique
int8 int8
int16 int16
int32 int32
int64 int64
int128 int128

Output function : XSH RR

state result mcg oneseq setseq unique
int16 int8
int32 int16
int64 int32
int128 int64

Output function : XSH RS

state result mcg oneseq setseq unique
int16 int8
int32 int16
int64 int32
int128 int64

Output function : XSL RR

state result mcg oneseq setseq unique
int64 int32
int128 int64

Output function : XSL RR RR

state result mcg oneseq setseq unique
int64 int64
int128 int128

Testing

In order to validate the implementation of this module, we do a comparison with the original C implementation.