GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — core/cr_t.h at master · openj/core Expand file tree/ Copy pathcr_t.hMore file actions 70 lines (66 loc) · 2.15 KB / Copy pathcr_t.hFile metadata and controls70 lines (66 loc) · 2.15 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 /* Copyright 1990-2011, Jsoftware Inc. All rights reserved. */ /* License in license.txt. */ /* */ /* cr.c templates */ /* template 0 used by the rank operator general cases (monad and dyad) */ /* requires: */ /* VALENCE 1 or 2 */ #if TEMPLATE==0 #if VALENCE==1 #define RCALL CALL1(f1,yw,fs) #define RDIRECT (wt&DIRECT) #define RAC (1==AC(yw)) #define RFLAG (!(AFLAG(w)&AFNJA+AFSMM+AFREL)) #define RARG {if(1<AC(yw))NEWYW; MOVEYW;} #define RARGX {if(1<AC(yw)){RZ(yw=ca(yw)); vv=CAV(yw);}} #else #define RCALL CALL2(f2,ya,yw,fs) #define RDIRECT (at&DIRECT&&wt&DIRECT) #define RAC (1==AC(ya)&&1==AC(yw)) #define RFLAG (!(AFLAG(a)&AFNJA+AFSMM+AFREL)&&!(AFLAG(w)&AFNJA+AFSMM+AFREL)) #define RARG {++jj; if(!b||jj==n){if(1<AC(ya))NEWYA; MOVEYA;} \ if( b||jj==n){if(1<AC(yw))NEWYW; MOVEYW;} if(jj==n)jj=0;} #define RARGX {if(1<AC(ya)){RZ(ya=ca(ya)); uu=CAV(ya);} \ if(1<AC(yw)){RZ(yw=ca(yw)); vv=CAV(yw);}} #endif {B cc=1;C*zv;I j=0,jj=0,old; if(mn){y0=y=RCALL; RZ(y);} else{I d; d=jt->db; jt->db=0; y=RCALL; jt->db=d; if(jt->jerr){y=zero; RESETERR;} } yt=AT(y); yr=AR(y); ys=AS(y); yn=AN(y); k=yn*bp(yt); if(!mn||yt&DIRECT&&RFLAG){I zn; RARGX; RE(zn=mult(mn,yn)); GA(z,yt,zn,p+yr,0L); ICPY(AS(z),s,p); ICPY(p+AS(z),ys,yr); if(mn){zv=CAV(z); MC(zv,AV(y),k);} old=jt->tbase+jt->ttop; for(j=1;j<mn;++j){ RARG; RZ(y=RCALL); if(yt!=AT(y)||yr!=AR(y)||yr&&ICMP(AS(y),ys,yr))break; MC(zv+=k,AV(y),k); if(cc&&RAC)tpop(old); else cc=0; }} if(j<mn){A q,*x,yz; jj=j%n; GA(yz,BOX,mn,p,s); x=AAV(yz); if(j){ zv=CAV(z)-k; DO(j, GA(q,AT(y0),AN(y0),AR(y0),AS(y0)); MC(AV(q),zv+=k,k); *x++=q;); } *x++=y; DO(mn-j-1, RARG; RZ(y=RCALL); *x++=y;); z=ope(yz); } EPILOG(z); } #undef VALENCE #undef RAC #undef RARG #undef RARGX #undef RCALL #undef RDIRECT #undef RFLAG #endif /* TEMPLATE 0 */ #undef TEMPLATE |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |