From 5e1407ec4b7b2a8d32d8a94df0a8b31e176290c0 Mon Sep 17 00:00:00 2001 From: Andika Wasisto Date: Fri, 4 Sep 2020 21:02:23 +0700 Subject: [PATCH] Update libqwqng-wrapper --- libqwqng-wrapper-x86-64.so | Bin 17560 -> 13440 bytes libqwqng-wrapper.so | Bin 7904 -> 12208 bytes quanttp/data/qng_wrapper_linux.py | 54 +++++++++++++++--------------- 3 files changed, 27 insertions(+), 27 deletions(-) diff --git a/libqwqng-wrapper-x86-64.so b/libqwqng-wrapper-x86-64.so index d1c01cf2b8465364ef2edde0ed425c2aabdcfce6..fe29393700de14605d3230506145226842fed5f7 100644 GIT binary patch literal 13440 zcmb<-^>JfjWMqH=W(GS35Kn*yBH{p{7#wt=3$^qqj}I|0=PqXj?;7#J8} zGzY{O1{MYeFg^jYn1O)-omPRWgV7-MAfbS#B`F~G6Fv}+fdQRPfe16eXpmZvP~g*& z6p%YXY+^7pm>7bf_TdVb0I2_9G}Jp_zlks~FfcPPFu41LGVDBJcg_B2orbf(jNbXV zOHYXX><7mnNM4kIfdOO;J1G1GxHK487KA}V2KXPM#KvN8M-0R{<% z1qzUS4;5zk!3Yu;XPAK|o(MJP6*QGOLN)vctCzq~p9l6Y4?`R@-%3N(gYuaW11G}| zE~o&M(u1mJfvUHMii?5mmN4XGCKZB0Sg$x=&k)2bE=ft&)&_CSK-~1? zyFCf$DBH1||k}21XnZq823k0G!t#<#m8sB{u^D zJA(?uXa+_GCWd!Vc>@Lp29eB6UIqqM1|4udXJ9Cm%H#yqz-Dmu%nTQy>OnSKUZ2g% zz`(}f1XW*oaXmN4#lBE}iRL5@P^}dO)xQB+@5Ac%2heh12b%aHXg)lECcXfwz5`m$ zz|4X1Z^%Q+B~Tp>wG!k^h6hOEoL~_M@d8O4xoG)-Bo4I_tl>fKLj{t!Fp_u! zk~pY+1e5Y;e#7C>&3aWtfx)BoKnc_T3m(l!I1V%XH~l1{!0=!7i--aPzq|v(e^n4a z1ElTcga7~k|5tq_qQH;=ih`FH!2CxbJ}8O2JOJk30`Wmn@p1#0e+k3~MZwDjVE!o( z9~AU2CxH2fKzvY;zia^WcY*kzpnh2Z=5GS=K|%a70nA?o;)9aj%K$Kc5r_{;axWdg z{8=DADCl1rfccX^d{EMRsQ~78f%u>(cqstpe-c(;NSgriAP9T(+BS+PFob&avQ~n^ z#`1?p=hG5Nk8ajo!jPcijs5>1O^;u`1*DuI_An@v5PXkbTSt(-UQ;WuF`EB8I-hzR z{KxFk`N8Ah3wsa7V;&d(l}LDWvlc=PA(N~JvtA2bl!h43(UOnTH3So$UcxHNYM4)|NlOn4?H@Lzc}^p|Nm&mnApQ0 z13a4FD0p<%zDV)tW>M8(U|{g*bp2s?z@skp7X@&%A@AdWi+k_-k(cDw$7dq}{ev-XEax9bm(?AJg4|4+a! zwF*_Lv-VGC>5t~xKa8bDjkQ1i|7Tz*)%57K{UfNr@Z#K`|NlLDMehqLFnIKuz64R- ztePOI^Z1K{2!r;4wCx9F$`?!i|NkF*m;s!>!8w|Nfl->-I)Q)DERaLKPa<<(l7{v^nz%{ zssJCb$?UW53Mep0BbyJhL+S7T|DZN8i!>txgCn0n8={feGZR2C>~DYu^$vapZ@;;59-6h!yo`+J}38|Q?LYr@7cL49A4 zs}DmNPzpT83KEC$L1Vbce9)LJhz}csgw30R=KnzAX`qoU1_lPu01}7~n>PUsAc6R> zc@fZ@A&3tfmj(CnK=ZI5K?Vi}DJTsahXwUVK|-*;?$>|+^FjO%P=~_0XBkiiXn+hP z51aP{4S0e0=!*@g)0fI1LLF@XE<3=9lVWehO;{{4rzUjwS}Ka>x1#|J3?0o1~uP(Em25MtB7 zkg$1kblcUS0cr-N-Jo78*%b@f&D18h{UxU)mp!7E=4I6idxx?Mr z*-AkpG^sSNq*TFN&s5Jq*SHkSGpsYT&@(X6gowh_6K`4ON_( z0hZ2C#aS3&=@C_&l>rv7sN!r4u=Ic`&dvZ!SE%9~@brf&jyYcml4oY%Vi16aABYdb z%%G7jScZiOg4YJ{Fu>MzAPF-tGhohdg5;SQ_!u6-3I>n>6f-mM!`DGTg}@Xug8+jE z@*qA~6f}z?$nXYv5Fais1Yh?76#`St48jbsasn&>C72mR7_g;RW(H9P*nACCDVSnr z5MzMlf3N_QU}g|!Ku>QVDP{)Dd1Qzk#)&@3RPy{e2L z{|Yd?z>-d|g|jhOy*LAGz6@IIGWdfXhM7K-!0Iv6Lj_nIbG-p*ERhjQI++MokC_f< zf#>}}A&!dIfW>(j(AO1!)|o(N7*W+91*=CD1MzNv#WB}cfX1GY=Ltb-LHIXVJ&1*h zd6}@UpHT*jW0nJ&U~yD4Ks-Mj;u$!^dzm2f#vr}OcqI>3gu;^^e#8qW|PAL8o_H84Itr8qx6BQY-p zv~b8J($CS?(;3Su7|>c9@ERJ>!XK1HNl|%;xegBC^(W93B_OrX#XAU-EJ32+wL#!@ zK(Hl7@Z~qqWkwDTh&3yEmaxT6Q5Z{YKud5?ZH-4-cLSA)H_`*Gf{Dk}4qB-LRRnc3 z-UU@K*MdC(4hHa2BCsCp3$0)}K<)%DUjlob0piHCOwf|4s#K^8pw7gy8VkA(3u8SL z%F-av5+S4|RR}{(z!pPRNI_N*f!8`A;skvO6@1|lX6izY7tjK$aJ{Xa=%weEFzA(}R+KR4 zftS(g73G81TIr=`K+A-Tlp+Q=k3kQ#Kr6K(Ikli9z689u4r~~txPX`eW2aQ+CFW)( zGl1*>*~Op-F*&KYm_aW&KQ}iuuLQX?CZ7%JCxg0#u>L8ob;&Rr(EE#e3=9n4{{PR1 z>4)`aU~~*rBdi|^YbQa489?h%L0t%#eptT;MoU07g6st~tzi0L{a(=eaF7z1epvqq zM#K8&F#AAez}O(#gMono)K`Y-hxMaiv=c}XxbFgCz|_I$PzDADP~RKIhxNB$G;CoD z$o(L9!rTurjRCxF8zcwQ59^n~Xjp$Aq!*+IrXS}2Ja9XjfdS@D*!TgAhK)CX^n=!t zqU*1Kwuxcm8?f;e7!4bj0ND+~Ah&{O7%oQB59<%YXqfw9>S4`m7+r^^A3o3n?We%p z3)2td!{~N2{jmNej6MzvSf~Lod!by0UNrr%@gx`x8)t#3NB93^sD79=u>LBHMo(|( z{Ml&wajoyiW&cVv{jmNoj0UY0f$0U&uy6yhL3lHoepo*lMx%!py8A)>GEmnGl)gab z!N%WU`v=hV!|aFA7a15BKwWm2eptWz0CWHlrVeB_2*da=`Yvb<4O0Gu_0M7ZGhpM1 zuy}*%gSo2->VKI1uzvgvd5~=k44^eu5Eg`l>4(wJ(DcLm`_Rr+2Sgj3gz1CP@6q(b z#sxZ{`eE*b835A<<9}sfU;v51+z(r~J_D*BBnMLqqS52;7u0^xnpu!M48!zm!UUi+ zOg}OWOZ!kIVCn?a{svIx!oa`)s%JoUz}y2Xzd-p5=60|~DB%GO_z!53FngiO7(i<< T(UgFtEOfvW12dWiG%f=GX2uFx literal 17560 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 diff --git a/libqwqng-wrapper.so b/libqwqng-wrapper.so index 9fe8fd84380a50978dcf3a820db2e151c7ad9557..5f31175fa86f744cfb676b349d45014131321872 100644 GIT binary patch delta 4472 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 I8VXVZ02a~2BLDyZ delta 3915 zcmdlG|G;*FL_Gs11A_?z14Dxp0~nYvC@`=yXfVhyNHZ{kMG(XdJ_ZI5W(5feFo5Mj z{2Ou%3?N*>$iPs+$iTn`m1kmLV0gmE!0<#4f;ku&7(f^#&%(gKz{0>Vak`?Q1rGxQ z4CgQ~Fyu@;X}}4x3T*6TCPpQZ&_c(#0ZVV*Sl(zB^tD#Z#oj!3{$>lt4UF{qF)%Pp;9_8Khw{0Z7#IQ+K#pNx5MU5z_`%4)-~;E2F(fiDFgS2AF!(^# z|3{G*XNYBFV0ggIz#t2i7hqsuxWEoEPl$n&L6(uhjG=)W5`Z8Fh%qoQsPMoP@G|^l zU|=xdMmW%wk%8d=$iU5Wne&*GGxBp&^%L__GP4u)3(E`h()DvPlfVpJLp>Ay;-X}$ z$y{uY>*W|2I2afh?m+1WP})TSBK}66fq{*gf#Cy)W@ljd0-`w>7=D0gE(V4_AX$QEF))aLXch(r2@uW7z#s#n*%%lUKr|-W zFfepCzxn_Ff9rt~))!2S3=GXjIHC_j!VF6O-wa9}{}+Qi&A`Ag`9AwcyRhIFmJA>h zeu^Bs%VJ+5`}s ze2znsX|>qommGFX*!rRUpjw8$Hm7U?sR<;(D^waizobr?Z5y3Bmb8^ zc@gsO|Nq_+HHP39tN#7}-*`9+Y?MOkLJnXt+`A3rl=|NNAS(Dp67=m9!f#s!;MqWe+DB1L&yLB|L=h0|NsBbz{J3C^#A|=F-!~$ zH~#}4ALOE z4n_uW39SMuT>k$54=Sx#7Bez1IP!6{GCA?GI=3^ou{5*B=n4379d z8l;R2kRS#r24NP4kN-h+2dE7JO8txsVho`CZ;51q6eA+a7#R2%bU`kIhA1P0D1$R2 z1A_x6$hV+m&BG9h)ZAiZ5UXcMWdx-~kaeK8r5HmIBLl-RTe#pT;9;mmQ$G#KLIDObhPep& za0ZYM_aOwp{A);jB?bnDPt2%o@*m8If(O(lXMnVy%Zm~V3Q~*ok_!qZpH@@mjS4RD zv51e)%+JirESY>lb;jhkYR5L8RR6#<`Jh(+WPj~m#+j4vYRj{N3PHQcj5^A!pyID# zvZjtQ8>rwDV4obMqofNe^FSC>B!gTADknhs0aUb=fpa#b`vWTRFHByjqs#^_962VR z(otds6@VWmf7DUt1QiS*tTI_vSDqErWl)*ysH+@`+zkT72?&FX2hsDP#)G05R1$(P zs9ge*17VoDl}PG9CFF_84|TTAHjtx1Izbqu8-$NDFo3f@NFAvB ze830Eupl)c3{nHaml+@)1*rq~@AxK1=_%LCGcdg2hvZO@Y7hpg24PU!36!5eI>1%6 z00RT4-40R%!XPyu{1obbkUCHS>>>c^=77|IFh~uEehsbhKLh|IZ3d8$P{j-#q6`fGm?xL%D@n9T MGJv~uFe#V?0Ln?c;s5{u diff --git a/quanttp/data/qng_wrapper_linux.py b/quanttp/data/qng_wrapper_linux.py index 84be756..868b799 100644 --- a/quanttp/data/qng_wrapper_linux.py +++ b/quanttp/data/qng_wrapper_linux.py @@ -25,59 +25,59 @@ from ctypes import cdll, c_void_p, c_int, c_double, POINTER, c_char class QngWrapperLinux: def __init__(self): - self.libqwqng_wrapper = cdll.LoadLibrary('./libqwqng-wrapper-x86-64.so' if platform.machine().endswith('64') else './libqwqng-wrapper.so') - self.libqwqng_wrapper.GetQwqngInstance.restype = c_void_p - self.libqwqng_wrapper.RandInt32.argtypes = [c_void_p] - self.libqwqng_wrapper.RandInt32.restype = c_int - self.libqwqng_wrapper.RandUniform.argtypes = [c_void_p] - self.libqwqng_wrapper.RandUniform.restype = c_double - self.libqwqng_wrapper.RandNormal.argtypes = [c_void_p] - self.libqwqng_wrapper.RandNormal.restype = c_double - self.libqwqng_wrapper.RandBytes.argtypes = [c_void_p, c_int] - self.libqwqng_wrapper.RandBytes.restype = POINTER(c_char) - self.libqwqng_wrapper.Clear.argtypes = [c_void_p] - self.libqwqng_wrapper.Reset.argtypes = [c_void_p] - self.qng = self.libqwqng_wrapper.GetQwqngInstance() + self.qwqng_wrapper = cdll.LoadLibrary('./libqwqng-wrapper-x86-64.so' if platform.machine().endswith('64') else './libqwqng-wrapper.so') + self.qwqng_wrapper.GetQwqngInstance.restype = c_void_p + self.qwqng_wrapper.RandInt32.argtypes = [c_void_p] + self.qwqng_wrapper.RandInt32.restype = c_int + self.qwqng_wrapper.RandUniform.argtypes = [c_void_p] + self.qwqng_wrapper.RandUniform.restype = c_double + self.qwqng_wrapper.RandNormal.argtypes = [c_void_p] + self.qwqng_wrapper.RandNormal.restype = c_double + self.qwqng_wrapper.RandBytes.argtypes = [c_void_p, c_int] + self.qwqng_wrapper.RandBytes.restype = POINTER(c_char) + self.qwqng_wrapper.Clear.argtypes = [c_void_p] + self.qwqng_wrapper.Reset.argtypes = [c_void_p] + self.qng_pointer = self.qwqng_wrapper.GetQwqngInstance() def randint32(self): try: - return self.libqwqng_wrapper.RandInt32(self.qng) + return self.qwqng_wrapper.RandInt32(self.qng_pointer) except: - self.libqwqng_wrapper.Reset(self.qng) - return self.libqwqng_wrapper.RandInt32(self.qng) + self.qwqng_wrapper.Reset(self.qng_pointer) + return self.qwqng_wrapper.RandInt32(self.qng_pointer) def randuniform(self): try: - return self.libqwqng_wrapper.RandUniform(self.qng) + return self.qwqng_wrapper.RandUniform(self.qng_pointer) except: - self.libqwqng_wrapper.Reset(self.qng) - return self.libqwqng_wrapper.RandUniform(self.qng) + self.qwqng_wrapper.Reset(self.qng_pointer) + return self.qwqng_wrapper.RandUniform(self.qng_pointer) def randnormal(self): try: - return self.libqwqng_wrapper.RandNormal(self.qng) + return self.qwqng_wrapper.RandNormal(self.qng_pointer) except: - self.libqwqng_wrapper.Reset(self.qng) - return self.libqwqng_wrapper.RandNormal(self.qng) + self.qwqng_wrapper.Reset(self.qng_pointer) + return self.qwqng_wrapper.RandNormal(self.qng_pointer) def randbytes(self, length): try: return self._randbytes_arbitrary_length(length) except: - self.libqwqng_wrapper.Reset(self.qng) + self.qwqng_wrapper.Reset(self.qng_pointer) return self._randbytes_arbitrary_length(length) def _randbytes_arbitrary_length(self, length): if length <= 8192: - return self.libqwqng_wrapper.RandBytes(self.qng, length)[:length] + return self.qwqng_wrapper.RandBytes(self.qng_pointer, length)[:length] else: data = bytearray() for x in range(length // 8192): - data.extend(self.libqwqng_wrapper.RandBytes(self.qng, 8192)[:8192]) + data.extend(self.qwqng_wrapper.RandBytes(self.qng_pointer, 8192)[:8192]) bytes_needed = length % 8192 if bytes_needed != 0: - data.extend(self.libqwqng_wrapper.RandBytes(self.qng, bytes_needed)[:bytes_needed]) + data.extend(self.qwqng_wrapper.RandBytes(self.qng_pointer, bytes_needed)[:bytes_needed]) return bytes(data) def clear(self): - self.libqwqng_wrapper.Clear(self.qng) + self.qwqng_wrapper.Clear(self.qng_pointer)