zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
1
2
3
4
5
6
7
8
9
10
11
12
U
P±dùã@sDddlZddlZddlmZddlmZeƒZejj    Z
ejj Z dd„Z eje ddZdZd    d
„Zej eƒ¡Zd d „ZeƒZeƒZejefks’t‚ejejks¢t‚eed dZeed›de›dƒeed dZeed›de›dƒejjZejj Z!ejdddd„ƒZ"ee"dde!j#ƒƒejdddd„ƒZ$e$ddde!j#ƒdS)éN)ÚPCG64)ÚtimeitcCsât |¡}t|ddƒD]Â}dt|ƒd}dt|ƒd}||||}|dks^|dkrdt|ƒd}dt|ƒd}||||}qNt dt |¡|¡}|||d|<d|d|kr|||d|d<q|S)Néég@gð?ggÀ)ÚnpÚemptyÚrangeÚnext_dÚsqrtÚlog)ÚnÚstateÚoutÚiÚx1Zx2Úr2Úf©rú]d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\numpy/random/_examples/numba/extending.pyÚnormals s
rT)Znopythoni'cCs
tttƒS)N)Únormalsjr Ú
state_addrrrrrÚ    numbacall srcCs tjtdS)N)Úsize)ÚrgÚnormalr rrrrÚ    numpycall%sriè)Únumberz.2fz
 secs for z% PCG64 (Numba/PCG64) gaussian randomsz% PCG64 (NumPy/PCG64) gaussian randomscCsr||}}||d?O}||d?O}||d?O}||d?O}||d?O}t|ƒ|@}||krjt|ƒ|@}qT||S)Nrrééé)Únext_u32)ÚlbÚubr ÚmaskÚdeltaÚvalrrrÚ bounded_uint8s       r'iCiCŠ$cCs2tj|tjd}t|ƒD]}t|||ƒ||<qdS)N)Zdtype)rrZuint32rr')r"r#r r rrrrrÚ bounded_uintsKs r(i€–˜)%ÚnumpyrZnumbaÚnbZ numpy.randomrrZbit_genZcffiZ next_doubler    Z state_addressrrZjitrr rÚrandomÚ    GeneratorrrZr1rÚshapeÚAssertionErrorÚt1ÚprintÚt2ÚctypesZ next_uint32r!r Z ctypes_stater'Úvaluer(rrrrÚ<module>s8