annotate vcompsc.c @ 0:e0bbaa717f41 draft default tip

lol J
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Mon, 25 Nov 2013 11:56:30 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
1 /* Copyright 1990-2011, Jsoftware Inc. All rights reserved. */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
2 /* License in license.txt. */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
3 /* */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
4 /* Verbs: Comparatives */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
5 /* */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
6 /* Special code for the following cases: */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
7 /* comp i. 0: i.&0@:comp */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
8 /* comp i. 1: i.&1@:comp */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
9 /* comp i: 0: i:&0@:comp */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
10 /* comp i: 1: i:&1@:comp */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
11 /* [: + / comp + /@:comp */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
12 /* [: +./ comp +./@:comp 1: e. comp */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
13 /* 0: e. comp */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
14 /* [: I. comp I.@:comp */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
15 /* where comp is one of the following: */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
16 /* = ~: < <: >: > E. e. */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
17
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
18 #include "j.h"
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
19 #include "ve.h"
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
20 #include "vcomp.h"
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
21
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
22
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
23 #define INDF(f,T0,T1,F) \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
24 static F2(f){I an,n,wn;T0*av,x;T1*wv,y; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
25 an=AN(a); av=(T0*)AV(a); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
26 wn=AN(w); wv=(T1*)AV(w); n=AR(a)&&AR(w)?MAX(an,wn):AR(a)?an:wn; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
27 if (!AR(a)){x=*av; DO(n, y=*wv++; if(F(x,y))R sc(i););} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
28 else if(!AR(w)){y=*wv; DO(n, x=*av++; if(F(x,y))R sc(i););} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
29 else { DO(n, x=*av++; y=*wv++; if(F(x,y))R sc(i););} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
30 R sc(n); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
31 }
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
32
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
33 #define JNDF(f,T0,T1,F) \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
34 static F2(f){I an,n,wn;T0*av,x;T1*wv,y; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
35 an=AN(a); av=(T0*)AV(a); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
36 wn=AN(w); wv=(T1*)AV(w); n=AR(a)&&AR(w)?MAX(an,wn):AR(a)?an:wn; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
37 if (!AR(a)){x=*av; wv+=n; DO(n, y=*--wv; if(F(x,y))R sc(n-1-i););} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
38 else if(!AR(w)){y=*wv; av+=n; DO(n, x=*--av; if(F(x,y))R sc(n-1-i););} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
39 else {av+=n; wv+=n; DO(n, x=*--av; y=*--wv; if(F(x,y))R sc(n-1-i););} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
40 R sc(n); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
41 }
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
42
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
43 #define SUMF(f,T0,T1,F) \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
44 static F2(f){I an,m=0,n,wn;T0*av,x;T1*wv,y; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
45 an=AN(a); av=(T0*)AV(a); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
46 wn=AN(w); wv=(T1*)AV(w); n=AR(a)&&AR(w)?MAX(an,wn):AR(a)?an:wn; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
47 if (!AR(a)){x=*av; DO(n, y=*wv++; if(F(x,y))++m;);} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
48 else if(!AR(w)){y=*wv; DO(n, x=*av++; if(F(x,y))++m;);} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
49 else { DO(n, x=*av++; y=*wv++; if(F(x,y))++m;);} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
50 R sc(m); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
51 }
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
52
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
53 #define ANYF(f,T0,T1,F) \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
54 static F2(f){I an,n,wn;T0*av,x;T1*wv,y; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
55 an=AN(a); av=(T0*)AV(a); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
56 wn=AN(w); wv=(T1*)AV(w); n=AR(a)&&AR(w)?MAX(an,wn):AR(a)?an:wn; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
57 if (!AR(a)){x=*av; DO(n, y=*wv++; if(F(x,y))R one;);} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
58 else if(!AR(w)){y=*wv; DO(n, x=*av++; if(F(x,y))R one;);} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
59 else { DO(n, x=*av++; y=*wv++; if(F(x,y))R one;);} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
60 R zero; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
61 }
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
62
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
63 #define ALLF(f,T0,T1,F) \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
64 static F2(f){I an,n,wn;T0*av,x;T1*wv,y; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
65 an=AN(a); av=(T0*)AV(a); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
66 wn=AN(w); wv=(T1*)AV(w); n=AR(a)&&AR(w)?MAX(an,wn):AR(a)?an:wn; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
67 if (!AR(a)){x=*av; DO(n, y=*wv++; if(!F(x,y))R zero;);} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
68 else if(!AR(w)){y=*wv; DO(n, x=*av++; if(!F(x,y))R zero;);} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
69 else { DO(n, x=*av++; y=*wv++; if(!F(x,y))R zero;);} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
70 R one; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
71 }
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
72
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
73 #define IFB1 \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
74 {if(zu==zv){I m=zv-AV(z); RZ(z=ext(0,z)); zv=m+AV(z); zu=AN(z)+AV(z);} *zv++=i;}
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
75
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
76 #define IFBF(f,T0,T1,F) \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
77 static F2(f){A z;I an,n,wn,*zu,*zv;T0*av,x;T1*wv,y; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
78 an=AN(a); av=(T0*)AV(a); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
79 wn=AN(w); wv=(T1*)AV(w); n=AR(a)&&AR(w)?MAX(an,wn):AR(a)?an:wn; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
80 RZ(z=exta(INT,1L,1L,MAX(22,n/8))); zv=AV(z); zu=zv+AN(z); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
81 if (!AR(a)){x=*av; DO(n, y=*wv++; if(F(x,y))IFB1;);} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
82 else if(!AR(w)){y=*wv; DO(n, x=*av++; if(F(x,y))IFB1;);} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
83 else { DO(n, x=*av++; y=*wv++; if(F(x,y))IFB1;);} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
84 AN(z)=*AS(z)=zv-AV(z); R z; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
85 }
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
86
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
87
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
88 /* Now define byte-parallel (4 bytes at a time) versions of above */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
89
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
90 #define JNDBR(yy) if(r&&(y=yy))DO(r, if(yv[r-1-i])R sc(n-1-i););
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
91
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
92 #if SY_64
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
93 #define ASSIGNX(v) {x=*v; xv[1]=xv[2]=xv[3]=xv[4]=xv[5]=xv[6]=xv[7]=xv[0];}
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
94 #define INDB3 R sc( i*SZI+(yv[0]?0:yv[1]?1:yv[2]?2:yv[3]?3:yv[4]?4:yv[5]?5:yv[6]?6:7) );
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
95 #define JNDB3 R sc(n-1-(r+i*SZI+(yv[7]?0:yv[6]?1:yv[5]?2:yv[4]?3:yv[3]?4:yv[2]?5:yv[1]?6:7)));
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
96 #else
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
97 #define ASSIGNX(v) {x=*v; xv[1]=xv[2]=xv[3]=xv[0];}
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
98 #define INDB3 R sc( i*SZI+(yv[0]?0:yv[1]?1:yv[2]?2:3) );
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
99 #define JNDB3 R sc(n-1-(r+i*SZI+(yv[3]?0:yv[2]?1:yv[1]?2:3)));
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
100 #endif
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
101
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
102 #define INDB(f,T0,T1,F) \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
103 static F2(f){B*xv,*yv;I an,*av,n,q,r,wn,*wv,x,y; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
104 an=AN(a); av=AV(a); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
105 wn=AN(w); wv=AV(w); n=AR(a)&&AR(w)?MAX(an,wn):AR(a)?an:wn; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
106 q=n/SZI; r=n%SZI; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
107 xv=(B*)&x; yv=(B*)&y; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
108 if (!AR(a)){ASSIGNX(av); DO(q, if(y=F(x, *wv++))INDB3;); y=F(x, *wv);} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
109 else if(!AR(w)){ASSIGNX(wv); DO(q, if(y=F(*av++,x ))INDB3;); y=F(*av,x );} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
110 else { DO(q, if(y=F(*av++,*wv++))INDB3;); y=F(*av,*wv);} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
111 if(y)DO(r, if(yv[i])R sc(i+q*SZI);); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
112 R sc(n); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
113 }
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
114
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
115 #define JNDB(f,T0,T1,F) \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
116 static F2(f){B*xv,*yv;I an,*av,n,q,r,wn,*wv,x,y; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
117 an=AN(a); av=AV(a); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
118 wn=AN(w); wv=AV(w); n=AR(a)&&AR(w)?MAX(an,wn):AR(a)?an:wn; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
119 q=n/SZI; r=n%SZI; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
120 xv=(B*)&x; yv=(B*)&y; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
121 if (!AR(a)){ASSIGNX(av); wv+=q; JNDBR(F(x, *wv)); DO(q, if(y=F(x, *--wv))JNDB3;);} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
122 else if(!AR(w)){ASSIGNX(wv); av+=q; JNDBR(F(*av,x )); DO(q, if(y=F(*--av,x ))JNDB3;);} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
123 else {av+=q; wv+=q; JNDBR(F(*av,*wv)); DO(q, if(y=F(*--av,*--wv))JNDB3;);} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
124 R sc(n); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
125 }
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
126
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
127 #define SUMB(f,T0,T1,F) \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
128 static F2(f){B*xv;I an,*av,n,p,q,r,r1,wn,*wv,x,z=0;UC*tu;UI t; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
129 an=AN(a); av=AV(a); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
130 wn=AN(w); wv=AV(w); n=AR(a)&&AR(w)?MAX(an,wn):AR(a)?an:wn; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
131 p=n/SZI; q=p/255; r=p%255; r1=n%SZI; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
132 xv=(B*)&x; tu=(UC*)&t; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
133 if (!AR(a)){ \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
134 ASSIGNX(av); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
135 DO(q, t=0; DO(255, t+=F(x, *wv++);); DO(SZI,z+=tu[i];);); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
136 t=0; DO(r, t+=F(x, *wv++);); DO(SZI,z+=tu[i];); x=F(x, *wv); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
137 }else if(!AR(w)){ \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
138 ASSIGNX(wv); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
139 DO(q, t=0; DO(255, t+=F(*av++,x );); DO(SZI,z+=tu[i];);); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
140 t=0; DO(r, t+=F(*av++,x );); DO(SZI,z+=tu[i];); x=F(*av,x ); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
141 }else{ \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
142 DO(q, t=0; DO(255, t+=F(*av++,*wv++);); DO(SZI,z+=tu[i];);); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
143 t=0; DO(r, t+=F(*av++,*wv++);); DO(SZI,z+=tu[i];); x=F(*av,*wv); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
144 } \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
145 DO(r1, z+=xv[i];); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
146 R sc(z); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
147 }
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
148
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
149 #define ANYB(f,T0,T1,F) \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
150 static F2(f){B*xv; I an,*av,n,p,r1, wn,*wv,x; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
151 an=AN(a); av=AV(a); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
152 wn=AN(w); wv=AV(w); n=AR(a)&&AR(w)?MAX(an,wn):AR(a)?an:wn; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
153 p=n/SZI; r1=n%SZI;; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
154 xv=(B*)&x; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
155 if (!AR(a)){ASSIGNX(av); DO(p, if( F(x, *wv++))R one; ); x=F(x, *wv);} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
156 else if(!AR(w)){ASSIGNX(wv); DO(p, if( F(*av++,x ))R one; ); x=F(*av,x );} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
157 else { DO(p, if( F(*av++,*wv++))R one; ); x=F(*av,*wv);} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
158 DO(r1, if(xv[i])R one;); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
159 R zero; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
160 }
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
161
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
162 #define ALLB(f,T0,T1,F) \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
163 static F2(f){B*xv;C*tv;I an,*av,n,p,r1,t,wn,*wv,x; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
164 an=AN(a); av=AV(a); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
165 wn=AN(w); wv=AV(w); n=AR(a)&&AR(w)?MAX(an,wn):AR(a)?an:wn; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
166 p=n/SZI; r1=n%SZI;; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
167 xv=(B*)&x; tv=(C*)&t; DO(SZI, tv[i]=1;); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
168 if (!AR(a)){ASSIGNX(av); DO(p, if(t!=F(x, *wv++))R zero;); x=F(x, *wv);} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
169 else if(!AR(w)){ASSIGNX(wv); DO(p, if(t!=F(*av++,x ))R zero;); x=F(*av,x );} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
170 else { DO(p, if(t!=F(*av++,*wv++))R zero;); x=F(*av,*wv);} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
171 DO(r1, if(!xv[i])R zero;); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
172 R one; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
173 }
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
174
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
175 #if SY_64
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
176 #define IFB3 \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
177 {if(zu<zv){I c=zv-AV(z); RZ(z=ext(0,z)); zv=c+AV(z); zu=AV(z)+AN(z)-SZI;} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
178 if(yv[0])*zv++= m; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
179 if(yv[1])*zv++=1+m; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
180 if(yv[2])*zv++=2+m; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
181 if(yv[3])*zv++=3+m; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
182 if(yv[4])*zv++=4+m; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
183 if(yv[5])*zv++=5+m; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
184 if(yv[6])*zv++=6+m; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
185 if(yv[7])*zv++=7+m; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
186 }
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
187 #else
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
188 #define IFB3 \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
189 {if(zu<zv){I c=zv-AV(z); RZ(z=ext(0,z)); zv=c+AV(z); zu=AV(z)+AN(z)-SZI;} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
190 switch(y){ \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
191 case B0001: *zv++=3+m; break; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
192 case B0010: *zv++=2+m; break; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
193 case B0011: *zv++=2+m; *zv++=3+m; break; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
194 case B0100: *zv++=1+m; break; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
195 case B0101: *zv++=1+m; *zv++=3+m; break; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
196 case B0110: *zv++=1+m; *zv++=2+m; break; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
197 case B0111: *zv++=1+m; *zv++=2+m; *zv++=3+m; break; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
198 case B1000: *zv++=m; break; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
199 case B1001: *zv++=m; *zv++=3+m; break; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
200 case B1010: *zv++=m; *zv++=2+m; break; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
201 case B1011: *zv++=m; *zv++=2+m; *zv++=3+m; break; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
202 case B1100: *zv++=m; *zv++=1+m; break; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
203 case B1101: *zv++=m; *zv++=1+m; *zv++=3+m; break; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
204 case B1110: *zv++=m; *zv++=1+m; *zv++=2+m; break; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
205 case B1111: *zv++=m; *zv++=1+m; *zv++=2+m; *zv++=3+m; break; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
206 }}
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
207 #endif
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
208
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
209 #define IFBB(f,T0,T1,F) \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
210 static F2(f){A z;B*xv,*yv;I an,*av,m=0,n,q,r,wn,*wv,x,y,*zu,*zv; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
211 an=AN(a); av=AV(a); \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
212 wn=AN(w); wv=AV(w); n=AR(a)&&AR(w)?MAX(an,wn):AR(a)?an:wn; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
213 q=n/SZI; r=n%SZI; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
214 xv=(B*)&x; yv=(B*)&y; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
215 RZ(z=exta(INT,1L,1L,MAX(22,n/SZI))); zv=AV(z); zu=zv+AN(z)-SZI; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
216 if (!AR(a)){ASSIGNX(av); DO(q, if(y=F(x, *wv++))IFB3; m+=SZI;); y=F(x, *wv);} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
217 else if(!AR(w)){ASSIGNX(wv); DO(q, if(y=F(*av++,x ))IFB3; m+=SZI;); y=F(*av,x );} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
218 else { DO(q, if(y=F(*av++,*wv++))IFB3; m+=SZI;); y=F(*av,*wv);} \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
219 if(r&&y){DO(SZI-r, yv[r+i]=0;); IFB3;}; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
220 AN(z)=*AS(z)=zv-AV(z); R z; \
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
221 }
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
222
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
223 INDB( i0eqBB,B,B,NE ) INDF( i0eqBI,B,I,ANE ) INDF( i0eqBD,B,D,TNEXD) /* = */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
224 INDF( i0eqIB,I,B,ANE ) INDF( i0eqII,I,I,ANE ) INDF( i0eqID,I,D,TNEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
225 INDF( i0eqDB,D,B,TNEDX) INDF( i0eqDI,D,I,TNEDX) INDF( i0eqDD,D,D,TNE )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
226
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
227 INDB( i1eqBB,B,B,EQ ) INDF( i1eqBI,B,I,AEQ ) INDF( i1eqBD,B,D,TEQXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
228 INDF( i1eqIB,I,B,AEQ ) INDF( i1eqII,I,I,AEQ ) INDF( i1eqID,I,D,TEQXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
229 INDF( i1eqDB,D,B,TEQDX) INDF( i1eqDI,D,I,TEQDX) INDF( i1eqDD,D,D,TEQ )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
230
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
231 JNDB( j0eqBB,B,B,NE ) JNDF( j0eqBI,B,I,ANE ) JNDF( j0eqBD,B,D,TNEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
232 JNDF( j0eqIB,I,B,ANE ) JNDF( j0eqII,I,I,ANE ) JNDF( j0eqID,I,D,TNEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
233 JNDF( j0eqDB,D,B,TNEDX) JNDF( j0eqDI,D,I,TNEDX) JNDF( j0eqDD,D,D,TNE )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
234
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
235 JNDB( j1eqBB,B,B,EQ ) JNDF( j1eqBI,B,I,AEQ ) JNDF( j1eqBD,B,D,TEQXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
236 JNDF( j1eqIB,I,B,AEQ ) JNDF( j1eqII,I,I,AEQ ) JNDF( j1eqID,I,D,TEQXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
237 JNDF( j1eqDB,D,B,TEQDX) JNDF( j1eqDI,D,I,TEQDX) JNDF( j1eqDD,D,D,TEQ )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
238
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
239 SUMB(sumeqBB,B,B,EQ ) SUMF(sumeqBI,B,I,AEQ ) SUMF(sumeqBD,B,D,TEQXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
240 SUMF(sumeqIB,I,B,AEQ ) SUMF(sumeqII,I,I,AEQ ) SUMF(sumeqID,I,D,TEQXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
241 SUMF(sumeqDB,D,B,TEQDX) SUMF(sumeqDI,D,I,TEQDX) SUMF(sumeqDD,D,D,TEQ )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
242
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
243 ANYB(anyeqBB,B,B,EQ ) ANYF(anyeqBI,B,I,AEQ ) ANYF(anyeqBD,B,D,TEQXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
244 ANYF(anyeqIB,I,B,AEQ ) ANYF(anyeqII,I,I,AEQ ) ANYF(anyeqID,I,D,TEQXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
245 ANYF(anyeqDB,D,B,TEQDX) ANYF(anyeqDI,D,I,TEQDX) ANYF(anyeqDD,D,D,TEQ )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
246
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
247 ALLB(alleqBB,B,B,EQ ) ALLF(alleqBI,B,I,AEQ ) ALLF(alleqBD,B,D,TEQXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
248 ALLF(alleqIB,I,B,AEQ ) ALLF(alleqII,I,I,AEQ ) ALLF(alleqID,I,D,TEQXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
249 ALLF(alleqDB,D,B,TEQDX) ALLF(alleqDI,D,I,TEQDX) ALLF(alleqDD,D,D,TEQ )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
250
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
251 IFBB(ifbeqBB,B,B,EQ ) IFBF(ifbeqBI,B,I,AEQ ) IFBF(ifbeqBD,B,D,TEQXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
252 IFBF(ifbeqIB,I,B,AEQ ) IFBF(ifbeqII,I,I,AEQ ) IFBF(ifbeqID,I,D,TEQXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
253 IFBF(ifbeqDB,D,B,TEQDX) IFBF(ifbeqDI,D,I,TEQDX) IFBF(ifbeqDD,D,D,TEQ )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
254
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
255 INDB( i0neBB,B,B,EQ ) INDF( i0neBI,B,I,AEQ ) INDF( i0neBD,B,D,TEQXD) /* ~: */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
256 INDF( i0neIB,I,B,AEQ ) INDF( i0neII,I,I,AEQ ) INDF( i0neID,I,D,TEQXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
257 INDF( i0neDB,D,B,TEQDX) INDF( i0neDI,D,I,TEQDX) INDF( i0neDD,D,D,TEQ )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
258
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
259 INDB( i1neBB,B,B,NE ) INDF( i1neBI,B,I,ANE ) INDF( i1neBD,B,D,TNEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
260 INDF( i1neIB,I,B,ANE ) INDF( i1neII,I,I,ANE ) INDF( i1neID,I,D,TNEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
261 INDF( i1neDB,D,B,TNEDX) INDF( i1neDI,D,I,TNEDX) INDF( i1neDD,D,D,TNE )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
262
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
263 JNDB( j0neBB,B,B,EQ ) JNDF( j0neBI,B,I,AEQ ) JNDF( j0neBD,B,D,TEQXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
264 JNDF( j0neIB,I,B,AEQ ) JNDF( j0neII,I,I,AEQ ) JNDF( j0neID,I,D,TEQXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
265 JNDF( j0neDB,D,B,TEQDX) JNDF( j0neDI,D,I,TEQDX) JNDF( j0neDD,D,D,TEQ )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
266
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
267 JNDB( j1neBB,B,B,NE ) JNDF( j1neBI,B,I,ANE ) JNDF( j1neBD,B,D,TNEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
268 JNDF( j1neIB,I,B,ANE ) JNDF( j1neII,I,I,ANE ) JNDF( j1neID,I,D,TNEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
269 JNDF( j1neDB,D,B,TNEDX) JNDF( j1neDI,D,I,TNEDX) JNDF( j1neDD,D,D,TNE )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
270
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
271 SUMB(sumneBB,B,B,NE ) SUMF(sumneBI,B,I,ANE ) SUMF(sumneBD,B,D,TNEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
272 SUMF(sumneIB,I,B,ANE ) SUMF(sumneII,I,I,ANE ) SUMF(sumneID,I,D,TNEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
273 SUMF(sumneDB,D,B,TNEDX) SUMF(sumneDI,D,I,TNEDX) SUMF(sumneDD,D,D,TNE )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
274
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
275 ANYB(anyneBB,B,B,NE ) ANYF(anyneBI,B,I,ANE ) ANYF(anyneBD,B,D,TNEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
276 ANYF(anyneIB,I,B,ANE ) ANYF(anyneII,I,I,ANE ) ANYF(anyneID,I,D,TNEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
277 ANYF(anyneDB,D,B,TNEDX) ANYF(anyneDI,D,I,TNEDX) ANYF(anyneDD,D,D,TNE )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
278
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
279 ALLB(allneBB,B,B,NE ) ALLF(allneBI,B,I,ANE ) ALLF(allneBD,B,D,TNEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
280 ALLF(allneIB,I,B,ANE ) ALLF(allneII,I,I,ANE ) ALLF(allneID,I,D,TNEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
281 ALLF(allneDB,D,B,TNEDX) ALLF(allneDI,D,I,TNEDX) ALLF(allneDD,D,D,TNE )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
282
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
283 IFBB(ifbneBB,B,B,NE ) IFBF(ifbneBI,B,I,ANE ) IFBF(ifbneBD,B,D,TNEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
284 IFBF(ifbneIB,I,B,ANE ) IFBF(ifbneII,I,I,ANE ) IFBF(ifbneID,I,D,TNEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
285 IFBF(ifbneDB,D,B,TNEDX) IFBF(ifbneDI,D,I,TNEDX) IFBF(ifbneDD,D,D,TNE )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
286
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
287 INDB( i0ltBB,B,B,GE ) INDF( i0ltBI,B,I,AGE ) INDF( i0ltBD,B,D,TGEXD) /* < */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
288 INDF( i0ltIB,I,B,AGE ) INDF( i0ltII,I,I,AGE ) INDF( i0ltID,I,D,TGEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
289 INDF( i0ltDB,D,B,TGEDX) INDF( i0ltDI,D,I,TGEDX) INDF( i0ltDD,D,D,TGE )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
290
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
291 INDB( i1ltBB,B,B,LT ) INDF( i1ltBI,B,I,ALT ) INDF( i1ltBD,B,D,TLTXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
292 INDF( i1ltIB,I,B,ALT ) INDF( i1ltII,I,I,ALT ) INDF( i1ltID,I,D,TLTXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
293 INDF( i1ltDB,D,B,TLTDX) INDF( i1ltDI,D,I,TLTDX) INDF( i1ltDD,D,D,TLT )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
294
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
295 JNDB( j0ltBB,B,B,GE ) JNDF( j0ltBI,B,I,AGE ) JNDF( j0ltBD,B,D,TGEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
296 JNDF( j0ltIB,I,B,AGE ) JNDF( j0ltII,I,I,AGE ) JNDF( j0ltID,I,D,TGEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
297 JNDF( j0ltDB,D,B,TGEDX) JNDF( j0ltDI,D,I,TGEDX) JNDF( j0ltDD,D,D,TGE )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
298
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
299 JNDB( j1ltBB,B,B,LT ) JNDF( j1ltBI,B,I,ALT ) JNDF( j1ltBD,B,D,TLTXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
300 JNDF( j1ltIB,I,B,ALT ) JNDF( j1ltII,I,I,ALT ) JNDF( j1ltID,I,D,TLTXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
301 JNDF( j1ltDB,D,B,TLTDX) JNDF( j1ltDI,D,I,TLTDX) JNDF( j1ltDD,D,D,TLT )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
302
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
303 SUMB(sumltBB,B,B,LT ) SUMF(sumltBI,B,I,ALT ) SUMF(sumltBD,B,D,TLTXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
304 SUMF(sumltIB,I,B,ALT ) SUMF(sumltII,I,I,ALT ) SUMF(sumltID,I,D,TLTXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
305 SUMF(sumltDB,D,B,TLTDX) SUMF(sumltDI,D,I,TLTDX) SUMF(sumltDD,D,D,TLT )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
306
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
307 ANYB(anyltBB,B,B,LT ) ANYF(anyltBI,B,I,ALT ) ANYF(anyltBD,B,D,TLTXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
308 ANYF(anyltIB,I,B,ALT ) ANYF(anyltII,I,I,ALT ) ANYF(anyltID,I,D,TLTXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
309 ANYF(anyltDB,D,B,TLTDX) ANYF(anyltDI,D,I,TLTDX) ANYF(anyltDD,D,D,TLT )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
310
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
311 ALLB(allltBB,B,B,LT ) ALLF(allltBI,B,I,ALT ) ALLF(allltBD,B,D,TLTXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
312 ALLF(allltIB,I,B,ALT ) ALLF(allltII,I,I,ALT ) ALLF(allltID,I,D,TLTXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
313 ALLF(allltDB,D,B,TLTDX) ALLF(allltDI,D,I,TLTDX) ALLF(allltDD,D,D,TLT )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
314
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
315 IFBB(ifbltBB,B,B,LT ) IFBF(ifbltBI,B,I,ALT ) IFBF(ifbltBD,B,D,TLTXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
316 IFBF(ifbltIB,I,B,ALT ) IFBF(ifbltII,I,I,ALT ) IFBF(ifbltID,I,D,TLTXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
317 IFBF(ifbltDB,D,B,TLTDX) IFBF(ifbltDI,D,I,TLTDX) IFBF(ifbltDD,D,D,TLT )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
318
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
319 INDB( i0leBB,B,B,GT ) INDF( i0leBI,B,I,AGT ) INDF( i0leBD,B,D,TGTXD) /* <: */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
320 INDF( i0leIB,I,B,AGT ) INDF( i0leII,I,I,AGT ) INDF( i0leID,I,D,TGTXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
321 INDF( i0leDB,D,B,TGTDX) INDF( i0leDI,D,I,TGTDX) INDF( i0leDD,D,D,TGT )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
322
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
323 INDB( i1leBB,B,B,LE ) INDF( i1leBI,B,I,ALE ) INDF( i1leBD,B,D,TLEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
324 INDF( i1leIB,I,B,ALE ) INDF( i1leII,I,I,ALE ) INDF( i1leID,I,D,TLEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
325 INDF( i1leDB,D,B,TLEDX) INDF( i1leDI,D,I,TLEDX) INDF( i1leDD,D,D,TLE )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
326
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
327 JNDB( j0leBB,B,B,GT ) JNDF( j0leBI,B,I,AGT ) JNDF( j0leBD,B,D,TGTXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
328 JNDF( j0leIB,I,B,AGT ) JNDF( j0leII,I,I,AGT ) JNDF( j0leID,I,D,TGTXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
329 JNDF( j0leDB,D,B,TGTDX) JNDF( j0leDI,D,I,TGTDX) JNDF( j0leDD,D,D,TGT )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
330
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
331 JNDB( j1leBB,B,B,LE ) JNDF( j1leBI,B,I,ALE ) JNDF( j1leBD,B,D,TLEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
332 JNDF( j1leIB,I,B,ALE ) JNDF( j1leII,I,I,ALE ) JNDF( j1leID,I,D,TLEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
333 JNDF( j1leDB,D,B,TLEDX) JNDF( j1leDI,D,I,TLEDX) JNDF( j1leDD,D,D,TLE )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
334
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
335 SUMB(sumleBB,B,B,LE ) SUMF(sumleBI,B,I,ALE ) SUMF(sumleBD,B,D,TLEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
336 SUMF(sumleIB,I,B,ALE ) SUMF(sumleII,I,I,ALE ) SUMF(sumleID,I,D,TLEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
337 SUMF(sumleDB,D,B,TLEDX) SUMF(sumleDI,D,I,TLEDX) SUMF(sumleDD,D,D,TLE )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
338
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
339 ANYB(anyleBB,B,B,LE ) ANYF(anyleBI,B,I,ALE ) ANYF(anyleBD,B,D,TLEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
340 ANYF(anyleIB,I,B,ALE ) ANYF(anyleII,I,I,ALE ) ANYF(anyleID,I,D,TLEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
341 ANYF(anyleDB,D,B,TLEDX) ANYF(anyleDI,D,I,TLEDX) ANYF(anyleDD,D,D,TLE )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
342
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
343 ALLB(allleBB,B,B,LE ) ALLF(allleBI,B,I,ALE ) ALLF(allleBD,B,D,TLEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
344 ALLF(allleIB,I,B,ALE ) ALLF(allleII,I,I,ALE ) ALLF(allleID,I,D,TLEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
345 ALLF(allleDB,D,B,TLEDX) ALLF(allleDI,D,I,TLEDX) ALLF(allleDD,D,D,TLE )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
346
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
347 IFBB(ifbleBB,B,B,LE ) IFBF(ifbleBI,B,I,ALE ) IFBF(ifbleBD,B,D,TLEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
348 IFBF(ifbleIB,I,B,ALE ) IFBF(ifbleII,I,I,ALE ) IFBF(ifbleID,I,D,TLEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
349 IFBF(ifbleDB,D,B,TLEDX) IFBF(ifbleDI,D,I,TLEDX) IFBF(ifbleDD,D,D,TLE )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
350
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
351 INDB( i0geBB,B,B,LT ) INDF( i0geBI,B,I,ALT ) INDF( i0geBD,B,D,TLTXD) /* >: */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
352 INDF( i0geIB,I,B,ALT ) INDF( i0geII,I,I,ALT ) INDF( i0geID,I,D,TLTXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
353 INDF( i0geDB,D,B,TLTDX) INDF( i0geDI,D,I,TLTDX) INDF( i0geDD,D,D,TLT )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
354
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
355 INDB( i1geBB,B,B,GE ) INDF( i1geBI,B,I,AGE ) INDF( i1geBD,B,D,TGEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
356 INDF( i1geIB,I,B,AGE ) INDF( i1geII,I,I,AGE ) INDF( i1geID,I,D,TGEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
357 INDF( i1geDB,D,B,TGEDX) INDF( i1geDI,D,I,TGEDX) INDF( i1geDD,D,D,TGE )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
358
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
359 JNDB( j0geBB,B,B,LT ) JNDF( j0geBI,B,I,ALT ) JNDF( j0geBD,B,D,TLTXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
360 JNDF( j0geIB,I,B,ALT ) JNDF( j0geII,I,I,ALT ) JNDF( j0geID,I,D,TLTXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
361 JNDF( j0geDB,D,B,TLTDX) JNDF( j0geDI,D,I,TLTDX) JNDF( j0geDD,D,D,TLT )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
362
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
363 JNDB( j1geBB,B,B,GE ) JNDF( j1geBI,B,I,AGE ) JNDF( j1geBD,B,D,TGEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
364 JNDF( j1geIB,I,B,AGE ) JNDF( j1geII,I,I,AGE ) JNDF( j1geID,I,D,TGEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
365 JNDF( j1geDB,D,B,TGEDX) JNDF( j1geDI,D,I,TGEDX) JNDF( j1geDD,D,D,TGE )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
366
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
367 SUMB(sumgeBB,B,B,GE ) SUMF(sumgeBI,B,I,AGE ) SUMF(sumgeBD,B,D,TGEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
368 SUMF(sumgeIB,I,B,AGE ) SUMF(sumgeII,I,I,AGE ) SUMF(sumgeID,I,D,TGEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
369 SUMF(sumgeDB,D,B,TGEDX) SUMF(sumgeDI,D,I,TGEDX) SUMF(sumgeDD,D,D,TGE )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
370
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
371 ANYB(anygeBB,B,B,GE ) ANYF(anygeBI,B,I,AGE ) ANYF(anygeBD,B,D,TGEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
372 ANYF(anygeIB,I,B,AGE ) ANYF(anygeII,I,I,AGE ) ANYF(anygeID,I,D,TGEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
373 ANYF(anygeDB,D,B,TGEDX) ANYF(anygeDI,D,I,TGEDX) ANYF(anygeDD,D,D,TGE )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
374
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
375 ALLB(allgeBB,B,B,GE ) ALLF(allgeBI,B,I,AGE ) ALLF(allgeBD,B,D,TGEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
376 ALLF(allgeIB,I,B,AGE ) ALLF(allgeII,I,I,AGE ) ALLF(allgeID,I,D,TGEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
377 ALLF(allgeDB,D,B,TGEDX) ALLF(allgeDI,D,I,TGEDX) ALLF(allgeDD,D,D,TGE )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
378
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
379 IFBB(ifbgeBB,B,B,GE ) IFBF(ifbgeBI,B,I,AGE ) IFBF(ifbgeBD,B,D,TGEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
380 IFBF(ifbgeIB,I,B,AGE ) IFBF(ifbgeII,I,I,AGE ) IFBF(ifbgeID,I,D,TGEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
381 IFBF(ifbgeDB,D,B,TGEDX) IFBF(ifbgeDI,D,I,TGEDX) IFBF(ifbgeDD,D,D,TGE )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
382
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
383 INDB( i0gtBB,B,B,LE ) INDF( i0gtBI,B,I,ALE ) INDF( i0gtBD,B,D,TLEXD) /* > */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
384 INDF( i0gtIB,I,B,ALE ) INDF( i0gtII,I,I,ALE ) INDF( i0gtID,I,D,TLEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
385 INDF( i0gtDB,D,B,TLEDX) INDF( i0gtDI,D,I,TLEDX) INDF( i0gtDD,D,D,TLE )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
386
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
387 INDB( i1gtBB,B,B,GT ) INDF( i1gtBI,B,I,AGT ) INDF( i1gtBD,B,D,TGTXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
388 INDF( i1gtIB,I,B,AGT ) INDF( i1gtII,I,I,AGT ) INDF( i1gtID,I,D,TGTXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
389 INDF( i1gtDB,D,B,TGTDX) INDF( i1gtDI,D,I,TGTDX) INDF( i1gtDD,D,D,TGT )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
390
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
391 JNDB( j0gtBB,B,B,LE ) JNDF( j0gtBI,B,I,ALE ) JNDF( j0gtBD,B,D,TLEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
392 JNDF( j0gtIB,I,B,ALE ) JNDF( j0gtII,I,I,ALE ) JNDF( j0gtID,I,D,TLEXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
393 JNDF( j0gtDB,D,B,TLEDX) JNDF( j0gtDI,D,I,TLEDX) JNDF( j0gtDD,D,D,TLE )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
394
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
395 JNDB( j1gtBB,B,B,GT ) JNDF( j1gtBI,B,I,AGT ) JNDF( j1gtBD,B,D,TGTXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
396 JNDF( j1gtIB,I,B,AGT ) JNDF( j1gtII,I,I,AGT ) JNDF( j1gtID,I,D,TGTXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
397 JNDF( j1gtDB,D,B,TGTDX) JNDF( j1gtDI,D,I,TGTDX) JNDF( j1gtDD,D,D,TGT )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
398
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
399 SUMB(sumgtBB,B,B,GT ) SUMF(sumgtBI,B,I,AGT ) SUMF(sumgtBD,B,D,TGTXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
400 SUMF(sumgtIB,I,B,AGT ) SUMF(sumgtII,I,I,AGT ) SUMF(sumgtID,I,D,TGTXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
401 SUMF(sumgtDB,D,B,TGTDX) SUMF(sumgtDI,D,I,TGTDX) SUMF(sumgtDD,D,D,TGT )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
402
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
403 ALLB(allgtBB,B,B,GT ) ALLF(allgtBI,B,I,AGT ) ALLF(allgtBD,B,D,TGTXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
404 ALLF(allgtIB,I,B,AGT ) ALLF(allgtII,I,I,AGT ) ALLF(allgtID,I,D,TGTXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
405 ALLF(allgtDB,D,B,TGTDX) ALLF(allgtDI,D,I,TGTDX) ALLF(allgtDD,D,D,TGT )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
406
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
407 ANYB(anygtBB,B,B,GT ) ANYF(anygtBI,B,I,AGT ) ANYF(anygtBD,B,D,TGTXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
408 ANYF(anygtIB,I,B,AGT ) ANYF(anygtII,I,I,AGT ) ANYF(anygtID,I,D,TGTXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
409 ANYF(anygtDB,D,B,TGTDX) ANYF(anygtDI,D,I,TGTDX) ANYF(anygtDD,D,D,TGT )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
410
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
411 IFBB(ifbgtBB,B,B,GT ) IFBF(ifbgtBI,B,I,AGT ) IFBF(ifbgtBD,B,D,TGTXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
412 IFBF(ifbgtIB,I,B,AGT ) IFBF(ifbgtII,I,I,AGT ) IFBF(ifbgtID,I,D,TGTXD)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
413 IFBF(ifbgtDB,D,B,TGTDX) IFBF(ifbgtDI,D,I,TGTDX) IFBF(ifbgtDD,D,D,TGT )
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
414
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
415
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
416 static AF atcompxy[]={ /* table for (B01,INT,FL) vs. (B01,INT,FL) */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
417 i0eqBB, i0eqBI, i0eqBD, i0eqIB, i0eqII, i0eqID, i0eqDB, i0eqDI, i0eqDD, /* 0 */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
418 i0neBB, i0neBI, i0neBD, i0neIB, i0neII, i0neID, i0neDB, i0neDI, i0neDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
419 i0ltBB, i0ltBI, i0ltBD, i0ltIB, i0ltII, i0ltID, i0ltDB, i0ltDI, i0ltDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
420 i0leBB, i0leBI, i0leBD, i0leIB, i0leII, i0leID, i0leDB, i0leDI, i0leDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
421 i0geBB, i0geBI, i0geBD, i0geIB, i0geII, i0geID, i0geDB, i0geDI, i0geDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
422 i0gtBB, i0gtBI, i0gtBD, i0gtIB, i0gtII, i0gtID, i0gtDB, i0gtDI, i0gtDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
423 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
424 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
425
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
426 i1eqBB, i1eqBI, i1eqBD, i1eqIB, i1eqII, i1eqID, i1eqDB, i1eqDI, i1eqDD, /* 1 */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
427 i1neBB, i1neBI, i1neBD, i1neIB, i1neII, i1neID, i1neDB, i1neDI, i1neDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
428 i1ltBB, i1ltBI, i1ltBD, i1ltIB, i1ltII, i1ltID, i1ltDB, i1ltDI, i1ltDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
429 i1leBB, i1leBI, i1leBD, i1leIB, i1leII, i1leID, i1leDB, i1leDI, i1leDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
430 i1geBB, i1geBI, i1geBD, i1geIB, i1geII, i1geID, i1geDB, i1geDI, i1geDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
431 i1gtBB, i1gtBI, i1gtBD, i1gtIB, i1gtII, i1gtID, i1gtDB, i1gtDI, i1gtDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
432 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
433 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
434
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
435 j0eqBB, j0eqBI, j0eqBD, j0eqIB, j0eqII, j0eqID, j0eqDB, j0eqDI, j0eqDD, /* 2 */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
436 j0neBB, j0neBI, j0neBD, j0neIB, j0neII, j0neID, j0neDB, j0neDI, j0neDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
437 j0ltBB, j0ltBI, j0ltBD, j0ltIB, j0ltII, j0ltID, j0ltDB, j0ltDI, j0ltDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
438 j0leBB, j0leBI, j0leBD, j0leIB, j0leII, j0leID, j0leDB, j0leDI, j0leDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
439 j0geBB, j0geBI, j0geBD, j0geIB, j0geII, j0geID, j0geDB, j0geDI, j0geDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
440 j0gtBB, j0gtBI, j0gtBD, j0gtIB, j0gtII, j0gtID, j0gtDB, j0gtDI, j0gtDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
441 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
442 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
443
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
444 j1eqBB, j1eqBI, j1eqBD, j1eqIB, j1eqII, j1eqID, j1eqDB, j1eqDI, j1eqDD, /* 3 */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
445 j1neBB, j1neBI, j1neBD, j1neIB, j1neII, j1neID, j1neDB, j1neDI, j1neDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
446 j1ltBB, j1ltBI, j1ltBD, j1ltIB, j1ltII, j1ltID, j1ltDB, j1ltDI, j1ltDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
447 j1leBB, j1leBI, j1leBD, j1leIB, j1leII, j1leID, j1leDB, j1leDI, j1leDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
448 j1geBB, j1geBI, j1geBD, j1geIB, j1geII, j1geID, j1geDB, j1geDI, j1geDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
449 j1gtBB, j1gtBI, j1gtBD, j1gtIB, j1gtII, j1gtID, j1gtDB, j1gtDI, j1gtDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
450 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
451 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
452
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
453 sumeqBB,sumeqBI,sumeqBD, sumeqIB,sumeqII,sumeqID, sumeqDB,sumeqDI,sumeqDD, /* 4 */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
454 sumneBB,sumneBI,sumneBD, sumneIB,sumneII,sumneID, sumneDB,sumneDI,sumneDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
455 sumltBB,sumltBI,sumltBD, sumltIB,sumltII,sumltID, sumltDB,sumltDI,sumltDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
456 sumleBB,sumleBI,sumleBD, sumleIB,sumleII,sumleID, sumleDB,sumleDI,sumleDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
457 sumgeBB,sumgeBI,sumgeBD, sumgeIB,sumgeII,sumgeID, sumgeDB,sumgeDI,sumgeDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
458 sumgtBB,sumgtBI,sumgtBD, sumgtIB,sumgtII,sumgtID, sumgtDB,sumgtDI,sumgtDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
459 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
460 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
461
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
462 anyeqBB,anyeqBI,anyeqBD, anyeqIB,anyeqII,anyeqID, anyeqDB,anyeqDI,anyeqDD, /* 5 */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
463 anyneBB,anyneBI,anyneBD, anyneIB,anyneII,anyneID, anyneDB,anyneDI,anyneDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
464 anyltBB,anyltBI,anyltBD, anyltIB,anyltII,anyltID, anyltDB,anyltDI,anyltDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
465 anyleBB,anyleBI,anyleBD, anyleIB,anyleII,anyleID, anyleDB,anyleDI,anyleDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
466 anygeBB,anygeBI,anygeBD, anygeIB,anygeII,anygeID, anygeDB,anygeDI,anygeDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
467 anygtBB,anygtBI,anygtBD, anygtIB,anygtII,anygtID, anygtDB,anygtDI,anygtDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
468 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
469 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
470
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
471 alleqBB,alleqBI,alleqBD, alleqIB,alleqII,alleqID, alleqDB,alleqDI,alleqDD, /* 6 */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
472 allneBB,allneBI,allneBD, allneIB,allneII,allneID, allneDB,allneDI,allneDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
473 allltBB,allltBI,allltBD, allltIB,allltII,allltID, allltDB,allltDI,allltDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
474 allleBB,allleBI,allleBD, allleIB,allleII,allleID, allleDB,allleDI,allleDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
475 allgeBB,allgeBI,allgeBD, allgeIB,allgeII,allgeID, allgeDB,allgeDI,allgeDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
476 allgtBB,allgtBI,allgtBD, allgtIB,allgtII,allgtID, allgtDB,allgtDI,allgtDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
477 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
478 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
479
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
480 ifbeqBB,ifbeqBI,ifbeqBD, ifbeqIB,ifbeqII,ifbeqID, ifbeqDB,ifbeqDI,ifbeqDD, /* 7 */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
481 ifbneBB,ifbneBI,ifbneBD, ifbneIB,ifbneII,ifbneID, ifbneDB,ifbneDI,ifbneDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
482 ifbltBB,ifbltBI,ifbltBD, ifbltIB,ifbltII,ifbltID, ifbltDB,ifbltDI,ifbltDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
483 ifbleBB,ifbleBI,ifbleBD, ifbleIB,ifbleII,ifbleID, ifbleDB,ifbleDI,ifbleDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
484 ifbgeBB,ifbgeBI,ifbgeBD, ifbgeIB,ifbgeII,ifbgeID, ifbgeDB,ifbgeDI,ifbgeDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
485 ifbgtBB,ifbgtBI,ifbgtBD, ifbgtIB,ifbgtII,ifbgtID, ifbgtDB,ifbgtDI,ifbgtDD,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
486 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
487 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
488 };
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
489
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
490 INDF( i0eqC,C,C,ANE) INDF( i0neC,C,C,AEQ)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
491 INDF( i1eqC,C,C,AEQ) INDF( i1neC,C,C,ANE)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
492 JNDF( j0eqC,C,C,ANE) JNDF( j0neC,C,C,AEQ)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
493 JNDF( j1eqC,C,C,AEQ) JNDF( j1neC,C,C,ANE)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
494 SUMF(sumeqC,C,C,AEQ) SUMF(sumneC,C,C,ANE)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
495 ALLF(alleqC,C,C,AEQ) ALLF(allneC,C,C,ANE)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
496 ANYF(anyeqC,C,C,AEQ) ANYF(anyneC,C,C,ANE)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
497 IFBF(ifbeqC,C,C,AEQ) IFBF(ifbneC,C,C,ANE)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
498
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
499 static AF atcompC[]={ /* table for LIT vs. LIT */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
500 i0eqC, i0neC, 0L,0L,0L,0L,0L,0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
501 i1eqC, i1neC, 0L,0L,0L,0L,0L,0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
502 j0eqC, j0neC, 0L,0L,0L,0L,0L,0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
503 j1eqC, j1neC, 0L,0L,0L,0L,0L,0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
504 sumeqC, sumneC, 0L,0L,0L,0L,0L,0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
505 anyeqC, anyneC, 0L,0L,0L,0L,0L,0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
506 alleqC, allneC, 0L,0L,0L,0L,0L,0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
507 ifbeqC, ifbneC, 0L,0L,0L,0L,0L,0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
508 };
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
509
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
510 INDF( i0eqS,SB,SB,ANE) INDF( i0neS,SB,SB,AEQ)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
511 INDF( i1eqS,SB,SB,AEQ) INDF( i1neS,SB,SB,ANE)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
512 JNDF( j0eqS,SB,SB,ANE) JNDF( j0neS,SB,SB,AEQ)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
513 JNDF( j1eqS,SB,SB,AEQ) JNDF( j1neS,SB,SB,ANE)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
514 SUMF(sumeqS,SB,SB,AEQ) SUMF(sumneS,SB,SB,ANE)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
515 ALLF(alleqS,SB,SB,AEQ) ALLF(allneS,SB,SB,ANE)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
516 ANYF(anyeqS,SB,SB,AEQ) ANYF(anyneS,SB,SB,ANE)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
517 IFBF(ifbeqS,SB,SB,AEQ) IFBF(ifbneS,SB,SB,ANE)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
518
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
519 INDF( i0ltS,SB,SB,SBGE) INDF( i0leS,SB,SB,SBGT) INDF( i0geS,SB,SB,SBLT) INDF( i0gtS,SB,SB,SBLE)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
520 INDF( i1ltS,SB,SB,SBLT) INDF( i1leS,SB,SB,SBLE) INDF( i1geS,SB,SB,SBGE) INDF( i1gtS,SB,SB,SBGT)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
521 JNDF( j0ltS,SB,SB,SBGE) JNDF( j0leS,SB,SB,SBGT) JNDF( j0geS,SB,SB,SBLT) JNDF( j0gtS,SB,SB,SBLE)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
522 JNDF( j1ltS,SB,SB,SBLT) JNDF( j1leS,SB,SB,SBLE) JNDF( j1geS,SB,SB,SBGE) JNDF( j1gtS,SB,SB,SBGT)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
523 SUMF(sumltS,SB,SB,SBLT) SUMF(sumleS,SB,SB,SBLE) SUMF(sumgeS,SB,SB,SBGE) SUMF(sumgtS,SB,SB,SBGT)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
524 ALLF(allltS,SB,SB,SBLT) ALLF(allleS,SB,SB,SBLE) ALLF(allgeS,SB,SB,SBGE) ALLF(allgtS,SB,SB,SBGT)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
525 ANYF(anyltS,SB,SB,SBLT) ANYF(anyleS,SB,SB,SBLE) ANYF(anygeS,SB,SB,SBGE) ANYF(anygtS,SB,SB,SBGT)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
526 IFBF(ifbltS,SB,SB,SBLT) IFBF(ifbleS,SB,SB,SBLE) IFBF(ifbgeS,SB,SB,SBGE) IFBF(ifbgtS,SB,SB,SBGT)
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
527
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
528
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
529 static AF atcompSB[]={ /* table for SBT vs. SBT */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
530 i0eqS, i0neS, i0ltS, i0leS, i0geS, i0gtS, 0L,0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
531 i1eqS, i1neS, i1ltS, i1leS, i1geS, i1gtS, 0L,0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
532 j0eqS, j0neS, j0ltS, j0leS, j0geS, j0gtS, 0L,0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
533 j1eqS, j1neS, j1ltS, j1leS, j1geS, j1gtS, 0L,0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
534 sumeqS,sumneS,sumltS,sumleS,sumgeS,sumgtS, 0L,0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
535 anyeqS,anyneS,anyltS,anyleS,anygeS,anygtS, 0L,0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
536 alleqS,allneS,allltS,allleS,allgeS,allgtS, 0L,0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
537 ifbeqS,ifbneS,ifbltS,ifbleS,ifbgeS,ifbgtS, 0L,0L,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
538 };
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
539
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
540
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
541 static F2( jti0eps){R indexofsub( II0EPS,w,a);}
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
542 static F2( jti1eps){R indexofsub( II1EPS,w,a);}
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
543 static F2( jtj0eps){R indexofsub( IJ0EPS,w,a);}
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
544 static F2( jtj1eps){R indexofsub( IJ1EPS,w,a);}
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
545 static F2(jtsumeps){R indexofsub(ISUMEPS,w,a);}
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
546 static F2(jtanyeps){R indexofsub(IANYEPS,w,a);}
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
547 static F2(jtalleps){R indexofsub(IALLEPS,w,a);}
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
548 static F2(jtifbeps){R indexofsub(IIFBEPS,w,a);}
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
549
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
550 static AF atcompX[]={ /* table for any vs. any */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
551 0L,0L,0L,0L,0L,0L, 0L, jti0eps,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
552 0L,0L,0L,0L,0L,0L, jti1ebar, jti1eps,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
553 0L,0L,0L,0L,0L,0L, 0L, jtj0eps,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
554 0L,0L,0L,0L,0L,0L, 0L, jtj1eps,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
555 0L,0L,0L,0L,0L,0L, jtsumebar, jtsumeps,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
556 0L,0L,0L,0L,0L,0L, jtanyebar, jtanyeps,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
557 0L,0L,0L,0L,0L,0L, 0L, jtalleps,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
558 0L,0L,0L,0L,0L,0L, jtifbebar, jtifbeps,
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
559 };
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
560
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
561
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
562 /* f 0 1 2 3 4 5 6 7 */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
563 /* m = ~: < <: >: > E. e. */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
564 /* 0 f i. 0: 0 1 2 3 4 5 6 7 */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
565 /* 1 f i. 1: 8 9 10 11 12 13 14 15 */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
566 /* 2 f i: 0: 16 17 18 19 20 21 22 23 */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
567 /* 3 f i: 1: 24 25 26 27 28 29 30 31 */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
568 /* 4 [: + / f 32 33 34 35 36 37 38 39 */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
569 /* 5 [: +./ f 40 41 42 43 44 45 46 47 */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
570 /* 6 [: *./ f 48 49 50 51 52 53 54 55 */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
571 /* 7 [: I. f 56 57 58 59 60 61 62 63 */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
572
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
573 AF jtatcompf(J jt,A a,A w,A self){AF f;I ar,at,m,wr,wt;
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
574 RZ(a&&w);
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
575 at=AT(a); ar=AR(a);
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
576 wt=AT(w); wr=AR(w);
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
577 m=VAV(self)->flag%256;
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
578 if(1<ar||1<wr){if(32<=m&&m<=37||40<=m&&m<=45||48<=m&&m<=53)R(AF)jtfslashatg; RZ(7==m%8);}
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
579 ASSERT(AN(a)==AN(w)||!ar||!wr||5<m%8,EVLENGTH);
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
580 f=atcompX[m];
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
581 if(!f){
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
582 if(at&B01+INT+FL&&wt&B01+INT+FL)f=atcompxy[9*m+3*(at&B01?0:at&INT?1:2)+(wt&B01?0:wt&INT?1:2)];
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
583 else if(at&LIT&&wt&LIT) f=atcompC[m];
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
584 else if(at&SBT&&wt&SBT) f=atcompSB[m];
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
585 }
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
586 R f;
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
587 } /* function table look-up for comp i. 1: and i.&1@:comp etc. */
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
588