# 2.11BSD#431 - /usr/src/new/OLD/apl/src/ak.c

##### Functions

    ex_plot           X
    ex_scan           X
    ex_scn0           X
    ex_scnk           X
    line              X
    move              X
    scan0             X
    scan1             X

       1: static char Sccsid[] = "ak.c @(#)ak.c	1.1	10/1/82 Berkeley ";
       2: #include "apl.h"
       3:
       4: ex_scn0()
       5: {
       6:     fetch1();
       7:     scan0(0);
       8: }
       9:
      10: ex_scan()
      11: {
      12:     register struct item *p;
      13:
      14:     p = fetch1();
      15:     scan0(p->rank-1);
      16: }
      17:
      18: ex_scnk()
      19: {
      20:     register i;
      21:
      22:     i = topfix() - thread.iorg;
      23:     scan0(i);
      24: }
      25:
      26: scan0(k)
      27: {
      28:     register struct item *p, *q;
      29:     data *param[2];
      30:     int scan1();
      31:
      32:     p = fetch1();
      33:     if(p->type != DA)
      34:         error("scan T");
      35:
      36:     bidx(p);
      37:     colapse(k);
      38:     if(idx.dimk == 0) {
      39: /*
      40:  *  scan identities - ets/jrl 5/76
      41:  */
      42:         q = newdat(DA,0,1);
      43:         q->dim[0] = 1;
      44:         switch(*pcp++) {
      45:     case ADD:
      46:     case SUB:
      47:     case OR:
      48:             q->datap[0] = 0;
      49:             break;
      50:     case AND:
      51:     case MUL:
      52:     case DIV:
      53:             q->datap[0] = 1;
      54:             break;
      55:     case MIN:
      56:             q->datap[0] = 1.0e38;
      57:             break;
      58:     case MAX:
      59:             q->datap[0] = -1.0e38;
      60:             break;
      61:     default:
      62:             error("reduce identity");
      63:         }
      64:         pop();
      65:         *sp++ = q;
      66:         return;
      67:     }
      68:     param[0] = p->datap;
      69:     param[1] = (data *)exop[*pcp++];
      70:     forloop(scan1, param);
      71: }
      72:
      73: scan1(param)
      74: data *param[];
      75: {
      76:     register i;
      77:     register data *dp;
      78:     data d;
      79:     data (*f)();
      80:
      81:     dp = param[0];
      82:     f = (data (*)())param[1];
      83:     dp += access();
      84:     d = *dp;
      85:     for(i = 1; i < idx.dimk; i++) {
      86:         dp += idx.delk;
      87:         *dp = d = (*f)(*dp, d);
      88:     }
      89: }
      90:
      91: data scalex = 453.;
      92: data scaley = 453.;
      93: data origx = 0.0;
      94: data origy = 0.0;
      95:
      96: ex_plot()
      97: {
      98:     register struct item *p;
      99:     register data *dp;
     100:     register i;
     101:     int ic;
     102:     int x, y;
     103:
     104:     p = fetch1();
     105:     if(p->type != DA)
     106:         error("plot T");
     107:     if(p->rank != 2)
     108:         error("plot R");
     109:     if(p->dim[1] != 2)
     110:         error("plot C");
     111:
     112:     dp = p->datap;
     113:     if ((i = p->dim[0]) == 0) return;
     114:     ic=0;
     115:     while(i--) {
     116:         x = scalex*(*dp++ - origx);
     117:         y = 454-(scaley*(*dp++ - origy));
     118:         if(x<0 || x >= 576 ||
     119:          y<0 || y>=454)
     120:             error("plot off screen");
     121:         if(ic)
     122:             line(x,y);
     123:         else {
     124:             move(x,y);
     125:             ic=1;
     126:         }
     127:     }
     128: }
     129: line(x,y)
     130: {
     131: }
     132: move(x,y)
     133: {
     134: }

#### Defined functions

ex_plot defined in line 96; used 1 times

- in /usr/src/new/OLD/apl/src/a4.c line 51

ex_scan defined in line 10; used 2 times

- in /usr/src/new/OLD/apl/src/at.c line 120, 176

ex_scn0 defined in line 4; used 2 times

- in /usr/src/new/OLD/apl/src/at.c line 121, 236

ex_scnk defined in line 18; used 2 times

- in /usr/src/new/OLD/apl/src/at.c line 122, 178

line defined in line 129; used 1 times

- in line 122

move defined in line 132; used 1 times

- in line 124

scan0 defined in line 26; used 3 times

- in line 7, 15, 23

scan1 defined in line 73; used 2 times

- in line 30, 70

#### Defined variables

Sccsid defined in line 1; never used

Last modified: 1986-10-21 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 622 |