From d980e4775c82f433418f39dfb737542c76a490e3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 2 Nov 2025 23:15:05 +0000 Subject: [PATCH] Initial exploration of CPU and SIMD miner implementations Co-authored-by: RubenCGomes <116815718+RubenCGomes@users.noreply.github.com> --- coin_miner_cpu | Bin 0 -> 25264 bytes coin_miner_simd | Bin 0 -> 33424 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100755 coin_miner_cpu create mode 100755 coin_miner_simd diff --git a/coin_miner_cpu b/coin_miner_cpu new file mode 100755 index 0000000000000000000000000000000000000000..e94c28cd469e792a8180179224272ca2b5fdf83c GIT binary patch literal 25264 zcmeHv4RlmhmhQa?K@uSq6l^4|slw0#Eg=^H0Y!7ky-yHZICQe#LmsS1Mh zvV#ddT#M>v-ow}SEN8~SUJxhCl6c~!Cnd_gbDxRH;sqT)<_Ul- zX|^;9-)Yi=(s1O5F`QYRWdf9%Pg`7nID+Hj0f}!MB?f@sH_?)SLPLVYH`ud2(JT>A zN-^`qmq1CLkA?aKlTJWU9;q+OERQsd=ig>RB}u?&KC;d8OH97!U+ND7+%ER`$ISw+ z7omx-kn<(ca=uuonQW4PR0loFzw#FRN9tR~ z`QFbq<;22OCR!3u)b}IskzM{zAK~U_d3}TV;Sbyo0&??8(~8`Avt~>yDwta2E-qg` zb^YvFQ)kV{@RVdsXDX0hR(#0)3!hmbK}>*f+>BCOg_#%fsB8=`Cwk9|IkVsVhr+NmWr@9BiR}O-wwhu)A#vu5|2ElI|1ph7YR(xWgEFcD|cj6%U zg@fRy4}$;IAb9G&1J!#s3~EJL?BfMuLM#&bwfKyd#!J>*vrzO~skGedk@Aa5@?UnW zae2M&wJyow@OYib=NG>0SnYHd0a04!F7~b_jO1GH_DUXanYX08s7PA9x~SY!D6K9j zbrpkdbrhk)f!NO{S!G_wTBo}hTm`POGLYr3cRE(Pi=9R8S6$L-)b0U*Ci#-by#{D$ z^($p=uS+5U)K_Ln3l}e%pY52Q@o2`3NV+ejJQhJt&zKoWKRQElEXrBpK&`GdZjaYh zma`>uTa^Yn05N_|X5`9A`R zal?DR8#Bpp=?@$?#_b+Oy?qDI|LX7l8@j+S=~JFBA5Zl0(r%vL!OG*L&ylA`jQ_%a z72h-QxqN&V_$-bek!zLYL&@9fgk`FM?6{BtZ<=5rrQeh3}5SN5`*- zKN|07oDokcr@spbvZHv`N8xE)6Hi4Ho==^uXiF5Hjcc4?TNIw^5YJmtcwr+ddnXFd zmjaCC4^jBLg%H5^qwpi6@H?aMaD3zmMB$SoSV?M%!ds&7txd5(BX+s;Mp+~JS_-9zwOJ@LLl^C`tq~@2)*8yr-?sQ z)|aOVKa|&(r-?rFY+s%hI-&V}d7AJ;)BEx?(T65P^5Kb>pOK{1mNZRb?F&zQE++p> zOnyO3{>hm9teAX8O#TNk`3Gb2_r>IsWAeje@^`S^h}OTWUw(z%_)1-=KBulwbJS;- zFEXyfzZFKW-9Phz`z7f!a#w-fH*Df0BRoz$ zMG`96X6ox#uN(WqHIQI;2bNx}f2Oi4-k#rOuL(Z%a$x-A+R9pWOU}$~l|8e{58M6o z9>{>O?pJ~=x%;H#m1k9sN+5InVvm2XpS@SoS z0xbGujmqXu*S?60a(N|^!#k%lgI?y zzhwkdZ6?8ZBA^})f~mKk2Ek4u_;Tg3`Y+E;Nr*==B}Sb`5hcd9BVjrO#mCKz>5wqI zy<~HjWy?AkqQ2(rl*Wc@tC)Kts>MM&M0QF%;{x+w{6o)~L4b*N#*PgCaFsy+2*uKqfqn8L4j z)dv(I^ZUXj z@dXh7!w+Mc(-1t58Z_e;3M+*qbhg95D&gQKV<|%PrULs9&F*X2Tm!in(JPd|i|UWn zRq9LXPgKWCbvzzTs~r?pgQPd81;!~gyen7&X`z3;jo8Q#@q~C-Y+P+Pu=0}qK(O*l z*`C-`|K*`6frj4a1EFHrbdhgNI&@psCs8>ToW-m%Z{ZZU;g7e%;m|oCn5fQ%-7C9D z)ES6st^cx_i|U0av!8{YBTu~xE-~LImlhcZequMy*elO3W~Oz^lO6{Rwjk%<1-y#hBD(M;cRGV)!(-gRlqaM>G1FNdzX}u^S!sn#)hwYr5m@ za-;pg9q$+jXy5`ygio9OM)1@8S26Ddily=&uCQ0m`z<9g;Ce^eee?bqnc%N`XncaM zjR_whFOx5%X#UVEDCBynEA2+NIaIG$uK8Au(0ofr+6`}dhvr+DqWK(SG~YDMw`Q2; zdu5#OXW#b~T7AnN(Lm6u`AR1lKTSXETc2*^q}L-E@U74EWz9gUN%ep7m$!EOlcA+o z6LDMp*^M2$QjJ>#!*Qy=YS^f~@2}o;W&$3l1mesBxzpH3`P~q=ee}k2R#C?UT{Rc-s_ll5l` zJ6YWa8YTHFbyG6wT`5Ls1RE*{rN9B`fQ%sADn`n&fC>ryika;py^Lf*& zW1B;o*ZH*cdT8&j8YievrOIssH>T;|YfOD!X=hkI1nWoYruG=kW=m{!Fk*fF#*SO5 zn%rBTSJ>I@-@z!2Lqu^f&eqH+?hu9l?X(|leEr9oag+3KQ?BUB=ep9OEA5(cMKx}a zsBoHU`<&d=LlVeMS2SNydO%k?iK$iIr6Kx`!)H&42KJ`P-Sua3J8$XA#ro`x9T(G7 zM>Uwn2z^@(X>l-3OWdO&WSZno zIQkx;?V(iph*7I6AzkTEZt=F&Xz*LL!s6{%9I@|CV;yDmZ!WYKQ{_ieh^Oo@YWs(ie@Zez!>)CKWqt|~_n zkgx?}vV|FndV#JShaiN-b>i-V%PvycCFt<3jYI%p+}?D!9^@VZaqVouTmHKx8G;F^^9sjhi^^CDJ`nejvHo%&0v z^;D`Ze}S;kF?Nt|H02JWfwZ~?S#_AnHKP$i5*sN9j@#~#^JrE+smc3D!##+l9gmSX zW^(ExC{c~wW{>Pqja|wCH8E_C*t@aR2L^MWW;;Oa?P>H)>jyM`RXRpkbQw*qA>A4w zdh6XJ8es^W4g-^$FnDVUqM?=4Y(=bh>xr!@1}>u(X=-~wx3${%Agv|VM#gD>)mRco zAx4r8QTnk`^D6iaRt?!lZ49cUW!SH+p;%fWQj zWSZ>&P0PD!TFc+qaUjj;(QP$aVvPp#o`c~afK0YqH$v2oHu)-{I>=s0Bul=E!7+$< zhdXs+mxh5c@hF=QN!}5R(}c###@0xTw0L42twp|riF!I~6!2G5Ww`$&1#G=e!#u`i zxEAhY{<#A=lr@J3TaAq`7`4QGRM$C8ZlvmV^^Xu>X~MD6St07bz?ie7Y0tTN~Ot0W<}7IXV;O%6aG3?o=3A@)?` zj+)p-6?CHl%8~(~{VFWXZC$F3&FBYFO9u^N)oSABs@#SEv{W}tboL#Aj&D#mB%vqGb`92L0})BUfXpPc#F+PDlz9;}H^>2Ok~|C( zkgc#%=++e)PpH%eL$SWulV;i)wxYIFn+7+#c>cx?W^l|4%+WfQX-XRlVEC(sEDsHL zo0f0TFsGuM2;*Z_$_5%lc_NGQ<8TCg5DDL1sno@|7oc4`$yV4>wgw{WzS|wxV9A{N z73&i*y@3x5=z_J>*)Ss_ek1Z~RHF&=F7=3j3h%&{SnMl@Oi##1YV!7w37IE|onlKj zz|{?E1P~v3+o2lU(9z7;gcjD%_iv3SZnUN);sn(|KR^!ym#PFz6GMoGF`dRPSQ+aS zASiU1$oc+iCWR!>;`)GU9Hdx>CQ!E)6&)sXA+FdMa)5?Wtig7Z2LjB8*tD8M;!T?3 zN03TDu+FGpw!2|8D*JThymE(F&SO=Qlg`%F;W+sSM)jG@0#FA7AZ7qI0HUAXq5%*! zW6w>|fn5MdIuX{`Dr20bby5z-5QWW)yW=qWoh2h;ew*u#Q)TGFhJN_*5>GPI?oNaCMl=1J<1oFaSSUT7zg__Z2zF>!8lqA znwyiW*kz0-CR)Lg&#)LY8Z`x*o6E{c+T*ajL>G9QS*MG`dO$2}vAtld@-f~`PwK{5 zQV{b7gBaU@!sx|#yRf6;%UbNZNTpr`+&5U+GBLo>w4h)uutzzsDPey85l%yE5R0dX zgO;I37x=e7MHQ1m5CQ*~V=~rr-L$5M(P&4)7y{57TMmpHY@tp3`-u;00^^GX{_5Ez zNSE1Ag(yd4VVu9J8YiJTRfthWIbvE(#lEI)V@C)p(u3IAC}!K);`uPO8c}-#s~X*a z>8VNz0cfNvdrixcxUf0wrK$1>IF>Lc;J5dtkt`LvdLS;vDSHru)tY=kmyctDw6eD5 z(*_hPTxf^Ild&7?YY@Y!@ox8!KqIur!=K;Q{B3p z=_y$2f~?Eb1H}8M#yzC3@$Y!@=(*o3{^}&Etf8m4)s7CtMyqhDe|wT+ZRW@IXWbL( zWcdzCVH)RzJ+e`l(r~pXfY%e!i!X@-)9CZLT?t>$z@Z+Vx^48X45#4Ui#e+-c2CA*k6>Mve>}E>g8bl1)K*5F5K_`(e=t(lPy1= zh<9lAaKK*KJ=;?C3KYN@Z7F_RWYkzb95cM?p!bN;SlJb?&K>iZw;4uCvHM4L^0(r*w&VFnd0GYkJ^z`{pSxELeBh|p2+!8la_5bT?`0rYCcw@H?&E3|X>W6i8u zK5Tj7Czih@@tB#Q>BFdiYZ~l6M;gvk!KYb1ya4O@$8JTrW`r0?@F)nh*=JSDoAnjF zkoyh9fFT786}=-+4=S#_V6Esy6_29~j1bY>XN=&Rkf2wcvuwV|be#D)ejoT5y&$uP z8-m?uQGexa7@qXQQS?o!-11@iBvkSzP#Qrda5)6xZ4J{&H7=u3-@gk7@^gf23CF^) z^agOSmv6$D4}mWjZ#Hrj3L}mDJqjX??1UDqb?s0Ktwr6_Kx}!lmK1+8V8epzFg17c zXsXBP`IuhAiaI*)MIHYH5ky=y9u#K0LZ1*`@O@0LXa#K=(Rx4|>cr9g>b}ExoO8#@ z-A=R%iS`qs-3Gh93Y2i&JSxdTiSYkN%&7jcbEAmH5fK@O9@MJ{GiU<>isV zQ)j|qwerqn%iq2Lk)bTpo|9wgzq$uH{ROn42dSO?_4keH!E3>O!TcKN7h@qZLOEvl zPfbE?i~SSFlaOKvfkwNC1L%l_{z!#CG7JA0TlgC)oM9IFV+-G+!tbGw=Cxt=&Bw}T z(5fZ{-gJUi-E@au1TOZEqAHeH^cK5uUfIpf`M(f;QZV!-yy(;ZfkJ#Lc#L+CZv;6= zIiWpV7pw)Dy|Oo<{O{3%1kwZ16luX@q{lBo5+2o#m#&sAAFw`y!71w1)1L@eSwA~! z7$se4Oqs{tS8mP#1!j~nHRsbTo1Z`?T)XL31?sU>r6Fgu)&vv60pH@P6r=TKtL1k! zo|8NCQT)-~mX?+|wU&jgMyuWO=NfuH>@Usq537&^lWYC+GmUota@qd!?#GR>?rAhM zkIjRccKN^-HLg*9E^Eu*$V#A5ji1}ky;+h`TiF?po;T)uTXN)K=7{-Nc_?IK;guzA zK4z&JOL60$`BVyZ=6Q1gg09olW$N%w$x=lFm2d2|4Ag4Wd`ds(2h}-x1L3==N(%PPf=}VA@@l+V z@q{JGvUxAwQ-!YLE6POd_Z{wp`=H#M!_%a2z(`0&x{m!$g8gnJ@=FoaH1rHvV8{YP z78tU?kOhV;Fl2!t3k+Fc$O1za7_z|sw-%83Ul-?>xQnd?B`%M(xWsE+>-6RqTD^rX ztJk%*w8)7+>Ew^cxz6Pv;z^U|TJcArC1uuE3f)C6Yk6sb)9Wr?V_i+T2?Z{%o6&h3 z>!v%_Im?T@8Q%5Y33Qx8Pd_<%&H}5Z=Pa@^E!Iu9t}ZEq3f4&zJ(D@Zv*pFbB;8$H z;KE;^;*U&=HdxDxz3w7wwzsV4huIk!*!yDpj53f#qp_B8Zaa&6{WC!Li(nNcDK#`5r5d3oBY(p90=|H~}GJik>+FdCG((##rPg`?1d>T+nPFavV z?yoF&zcQjidTRWfDUYU4AT;rl-rJxvV_5` z^yG2Bh@YQq^$(k$JZWo!nw2RCX2U)y6y?=dLa%p`1u%zVKP$8yT z^=@jP9X6}K7!LD4=a%sEcxe^c8ttqehK!z^^7FXtQNy49W&AIO`4hGdf8(yo5%D+T zlVEUr^j|20cIX+hz>o!oEHGq&Aqxyy;6H^0#QiSfJ{P{cVt33?14fEg@Ws$5o}WG4 zOyKWw*(2_aN#*$w9FFHu+#f@0GkQe%jXU8I%D*2^-~8?~z@7A>91ksV=xO8Se48ar zzm$J@^GfzlXC)&-43D=tm;-%;x;G&Z0-$*&^0KSzJMZFXRcKcbmy3C2}b0 ze~{+|9sc%@wGY)X6yATb{0J^D+*i&xJ9z#iZ#Z6aGJ4StF8==-5cjpk3e4pG&f;(x zhq)Y*mCl(jFPR~0ai{xOZ|c9CjlQPrAXU& zAhA6GaQKs0$hlt{lZyl%(x0BW_z-<2{-Bl~w$=xH8Xp<=X;tK!uiLH2(?i!V5k5Bt zUkW_Qso-+h-T=5)IeiwV7xliu@b^f$*+}4-Z35}HfTU+iu89!zA2a-TDU0JJ$<(Wf z_ z#v2nWNi%_G_KA_NGWxNRd#?ojVEX4W`Z3a5x}fZX1GTr9(SJ{h?Psq5Pd8MFdj*A* zHyHi6$ap32?*NaVwtVOL1bFLru#&V61DzFqlydtQwhtob{2=&v$Vq{maWQg|fFDSo z2M8ZGS`zbvsQsZq=${+}zl`BiBrA_+3m4=Vgx(80=^5MJO@q*H2i_`_i-NxcestXZ z(umwBB$DqFo?4t`;zhrpA64Finyq|36yep(@cm^_?j-Ojh}(B~e-RX~ayjBYQ+9TN z!n2&-nky(xc!krS9&P5?ULDEn4BwxYa--r0_E*{<_{>4@*}#*1V&h@yAoOnFt>0Bg zssw(*0Qi3-IdNEZ#LN%x0zcsWg3I&Eyh=t1F57eFxgB2T8p-J_U?;kcweDh9nIpfn zJOlUs6*?8^WtXeeQD&adN_1rASnG0naCo>DXPFXDgSoWa!7eI{U|w++6`82Wd9Z|w z{cy%?R^`cfwC}`}4wA)jbcQ0a!)J%LqzDJH#rbq7jkzi#lbtLJ?&;Ec+&hStc)aEK zRZ~8MiHiaq-n9-~U|8((pos+~jx|LkdCnq7fw!d0<8YR*m-0(+^6m1v3LtYp3c3l= z?QoWrIX5`aP8_qYE_0&o1?6kkZU9SE&Os;E{YV{-1<$HWbcgoOzcba5rSB{PDd=FnxD{SfBGm;F!<2X3tt4vxNIGeSkO*+rKkC}Xa< zjJ|F&!o(av@x-s?>{lRVcs8u{I`aT=(ei;YK%3MWGV&JLL zBCnLeG|xaXV@(ONl)%Zll;L%)N0z!2s7qMnWw;7?Cn_v}G?6o9n7zs55NTB9Tg966t zFX#k(4g9p%6nU}V6fl?96stc+OMWECrh;GWe+3l#-&p&J_Wz3W&*uWgep*1W|0aIo ziM8KvfFqj-`H}SiUl&k(M?bOte;b9-{8r8<;OS^)q{VVWz~9I4WAR}=911#){SN>8 zG5jflkHc2M$f1xY;72k1Vx1@8N^5@sf=^&Si{TgRaRJ3Sj-ZdVUjyeC{+F^iC5NIP zajaw&2@dxHlKln0*yjkiDuzC`{$nxxDVoV3;8qeI^@#WpsIQQ~ugh5l5;HI8%v@jm3jA#pQ0xkRvHuhI<%@gqssGU<_=F$-1ROO{ z@Qd@S=a&+-#O`}GQ|7ne7jQV3qxq#=PQA>8qMveXq<)bf31*Td>bK^aCF3}M1>gS* zdaFoqIGWd=8G{%6d|MYOC0*%>h9Y*%67$>6>u=@fgAV{rAJJ~nE;_dnx|^Kl_qgXw c_&;L`MZJQSx@imvE872pNijZ#Ato#RZ+Q%mD*ylh literal 0 HcmV?d00001 diff --git a/coin_miner_simd b/coin_miner_simd new file mode 100755 index 0000000000000000000000000000000000000000..09fc7d613a6aafd700cb3662f82cd9cd36304334 GIT binary patch literal 33424 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