BSD 4 development
[unix-history] / usr / src / cmd / apl / ag.c
CommitLineData
957bb13d
BJ
1#include "apl.h"
2
3ex_diot()
4{
5 register struct item *p, *q, *r;
6 int i, j;
7
8 p = fetch2();
9 q = sp[-2];
10 r = newdat(DA, q->rank, q->size);
11 copy(IN, q->dim, r->dim, q->rank);
12 for(i=0; i<q->size; i++) {
13 datum = getdat(q);
14 p->index = 0;
15 for(j=0; j<p->size; j++)
16 if(fuzz(getdat(p), datum) == 0)
17 break;
18 datum = j + thread.iorg;
19 putdat(r, datum);
20 }
21 pop();
22 pop();
23 push(r);
24}
25
26ex_eps()
27{
28 register struct item *p, *q, *r;
29 int i, j;
30 data d;
31
32 p = fetch2();
33 q = sp[-2];
34 r = newdat(DA, p->rank, p->size);
35 copy(IN, p->dim, r->dim, p->rank);
36 for(i=0; i<p->size; i++) {
37 datum = getdat(p);
38 d = zero;
39 q->index = 0;
40 for(j=0; j<q->size; j++)
41 if(fuzz(getdat(q), datum) == 0) {
42 d = one;
43 break;
44 }
45 putdat(r, d);
46 }
47 pop();
48 pop();
49 push(r);
50}