summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorn <@>2023-03-10 23:36:03 +0200
committern <@>2023-03-10 23:36:03 +0200
commit8969cf21f36fa5010dc8dd330d859a7a72bb2019 (patch)
tree84f39cd41a2b51b964c9cad423ee1aa3003f123a
parent240702d3769cfe9004979c9dce2f6806d02d7658 (diff)
r.c
-rw-r--r--a.c4
-rw-r--r--a.h2
-rw-r--r--r.c10
3 files changed, 4 insertions, 12 deletions
diff --git a/a.c b/a.c
index 046eb2c8..28c114b9 100644
--- a/a.c
+++ b/a.c
@@ -25,8 +25,8 @@ S AX(i8,Ay=*a;P(n==1,i1(x,y))P(n==2,y(_2(x,y,a[1])))a++;n--;Cb=ytT||y==PLH||y==a
L iw(Ax/*0*/,I w,Li)_(S4(w,_(xb),_(xh),_(xi),_(xl))0)
S A1(qa,Ay=oA;Q*p=argv;W(*p,yq(aCz(*p++)))y(y1(x)))S A1(qe,Ay=oS,z=oA;Q*e=env;W(*e,Qp=*e++,q=p+si(p,'=');yq(cS(aCm(p,q)));zq(aCz(q+!!*q)))y=am(y,z);x-au?x(x1(y)):y)
S A1(qx,exit(xtz?gl(x):1);0)S A1(qj,XC(Cb[4096];In=js_eval(xC,xn,b,SZ b);x(0);aCn(b,n))XA(e1f(qj,x))et1(x))S A1(qp,XC(x=str0(x);x(pk(xV)))et1(x))S A1(qr,x(ai(xr)))S A1(qt,x(al(now())))
-A2(_1,/*01*/P(!xtt,i1(x,y))S O C s[][4]={"","k","j","p","t","x","hex","err","argv","env","exit","js","prng","sin","cos","exp","ln","r","pri","de0","de1","de2"};
- Xs(Li=fI(s,L(s),xv);A(&ser,kst,js1,qp,qt,frk,hex,err,qa,qe,qx,qj,prng,ksin,kcos,kexp,klog,qr,qpri,qde0,qde1,qde2,ed1)[i<0?L(s):i](y))
+A2(_1,/*01*/P(!xtt,i1(x,y))S O C s[][4]={"","k","j","p","t","x","hex","err","argv","env","exit","js","prng","sin","cos","exp","ln","r","pri"};
+ Xs(Li=fI(s,L(s),xv);A(&ser,kst,js1,qp,qt,frk,hex,err,qa,qe,qx,qj,prng,ksin,kcos,kexp,klog,qr,qpri,ed1)[i<0?L(s):i](y))
Ik=xK;P(1<k,k==2&&!xtp?prj(x,A(y,PLH),2):prj(x,&y,1))Xo(run(x,&y,1))Xr(w1(x,y))Xx(((A1*)(x<<16>>16))(y))
Xp(P(xn+k>9,er1(y))Im=xn-1,j=0;Ab8;i(m,b[i]=xA[i+1]==PLH&&!j?j++,y:_R(xA[i+1]))I l=MAX(0,1-j);MC(b+m,&y,8*l);_8(xx,b,m+l))
Xq(_1(xx,N(_1(xy,y))))P(1>k,er1(y))Xu(v1[xv](y))Xw(AK(0<xv&&xv<4&&yK==2?1:ytU?yK:1,AW(xv,aV(tr,1,&y))))et1(y))
diff --git a/a.h b/a.h
index 08cdf912..fd2322a3 100644
--- a/a.h
+++ b/a.h
@@ -145,5 +145,3 @@ enum {au=Lt(tu),FLP,NEG,FIR,SQR,TIL,WHR,REV,ASC,DSC,GRP,NOT,ENL,NUL,LEN,
#define oo os("["__FILE__":"M2(__LINE__)"]");
#define nop {asm volatile("fnop");}
I os(Q);L ov_(Q,L);
-
-A1 qde0,qde1,qde2;
diff --git a/r.c b/r.c
index 730574f2..fd52650b 100644
--- a/r.c
+++ b/r.c
@@ -22,7 +22,7 @@ S F rf()_(Lv=1023ll<<52|(r()&-1ull>>12);-1+*(F*)&v)//random float 0..1
S A sh(Nn)_(Ax=an(n,tZ(n));S4(xw,i(n,Ij=ri(i+1);xb=xB[j];xB[j]=i),i(n,Ij=ri(i+1);xh=xH[j];xH[j]=i),i(n,Ij=ri(i+1);xi=xI[j];xI[j]=i),ez1(x))x)//shuffle
S A ro0(Nn)_(Ax=aL(n);i(n+3>>2,r4();MC(xV+(i<<5),b,32))x)
S A ro(Nn,UL m)_(P(!m,ro0(n))Ct=tZ(m-1);Ax=an(n,t);S4(t-tB,i(n,xb=ri(m)),i(n,xh=ri(m)),i(n,xi=ri(m)),i(n,xl=r())I(m,i(n,xl%=m)))x)//roll
-S A de0(Nn,UL m)_(Ax=aL(n);i(n,xl=r()%(m-n+i+1);j(i,B(xl==xL[j],xl=m-n+i)))i(n,Ij=ri(i+1);SWP(xl,xL[j]))cT[tZ(m)](x))
+//S A de0(Nn,UL m)_(Ax=aL(n);i(n,xl=r()%(m-n+i+1);j(i,B(xl==xL[j],xl=m-n+i)))i(n,Ij=ri(i+1);SWP(xl,xL[j]))cT[tZ(m)](x))
S A de1(Nn,UL m)_(Ax=aL(n),y=aL(m+63>>6);MS(yV,0,8*yn);i(n,UL v=r()%(m-n+i+1);I(yL[v/64]>>v%64&1,xl=m-n+i)E(xl=v;yL[v/64]|=1ll<<v%64))y(0);i(n,Ij=ri(i+1);SWP(xl,xL[j]))cT[tZ(m)](x))
S A de2(Nn,UL m)_(Ax=aL(n);L*a=xL,j=-1,q=m-n+1;Fv=exp(log(rf())/n);
W(n>1&&13*n<m,L s;
@@ -34,13 +34,7 @@ S A de2(Nn,UL m)_(Ax=aL(n);L*a=xL,j=-1,q=m-n+1;Fv=exp(log(rf())/n);
v=exp(log(rf())/n))
*a++=j+=s+1;m-=s+1;n--;q-=s)
F t=m-n;W(n>1,L s=0;Fv=rf(),q=t/m;W(q>v,s++;q*=--t/--m)*a++=j+=s+1;m--;n--)*a=j+m*rf()+1;i(xn,Ij=ri(i+1);SWP(xl,xL[j]))x)
-
-//tmp
-A1(qde0,P(!xtZ,et1(x))P(xN-2,el1(x))x=cL(x);Ln=-*xL,m=xL[1];x(0);P(n-(N)n||m-(L)m,ed0())de0(n,m))
-A1(qde1,P(!xtZ,et1(x))P(xN-2,el1(x))x=cL(x);Ln=-*xL,m=xL[1];x(0);P(n-(N)n||m-(L)m,ed0())de1(n,m))
-A1(qde2,P(!xtZ,et1(x))P(xN-2,el1(x))x=cL(x);Ln=-*xL,m=xL[1];x(0);P(n-(N)n||m-(L)m,ed0())de2(n,m))
-
-S A de(Nn,UL m)_(n>m?el0():n<m?de2(n,m):sh(n))//deal
+S A de(Nn,UL m)_(n>m?el0():n==m?sh(n):m<10000000?de1(n,m):de2(n,m))//deal
S A rd(Ln,Lm)_(m<0?ed0():n==NL?sh(m):n-(I)n?ez0():n<0?de(-n,m):ro(n,m))//roll or deal
AL(rndF,Ax=aF(n);i(n,xf=rf())x)//random floats 0..1
ALA(rnd,Xz(rd(n,gl(x)))Xc(P((32|xv)=='a',cC(add(x,Nx(rd(n,26)))))AT(tC,ro0(n+7>>3)))Xf(x(mul(x,Nx(rndF(n)))))XMT(x(x1(Nx(rd(n,xN)))))et1(x))