/*Copyright (C) 1992, 1994 by Thomas Glen Smith. All Rights Reserved.*/ /* vectors APL2 V1.0.0 ************************************************* * Called by vector. Completes processing for vector. * ***********************************************************************/ #define INCLUDES APLCB+APLMEM #include "includes.h" #include "flist.h" Aplcb vectors(datacnt, datatyp, pfhdr) int datacnt, datatyp; Flist *pfhdr; { Getcb; Pop; Flist fcur; int i,*ip; double *fp; Aplcb out; out = getcb(NULL, datacnt, datatyp + APLTEMP, 1, NULL); if (out != NULL && datacnt) switch(datatyp) { case APLCPLX: case APLNUMB: fp = out->aplptr.apldata; while (NULL != (fcur = pop(pfhdr))) { if (fcur->swel) { *fp++ = fcur->fel[0]; if (datatyp == APLCPLX) *fp++ = fcur->fel[1]; } else *fp++ = fcur->iel; free(fcur); } break; case APLINT: /* integer vector */ ip = out->aplptr.aplint; while (NULL != (fcur = pop(pfhdr))) { *ip++ = fcur->iel; free(fcur); } break; } /* end switch */ return(out); }