/* Copyright (C) 1996 by Thomas Glen Smith. All Rights Reserved. */ /* integer APL2 V1.0.0 ************************************************* * Returns copy of the apl variable received as input, converting to * * integer if floating or complex, and setting error if character. To * * get integer, the real number is truncated down, e.g. 1.5 becomes 1, * * and -1.5 becomes -2. * ***********************************************************************/ #define INCLUDES APLCB #include "includes.h" Aplcb integer(rite) Aplcb rite; { Errinit; Errstop; Getcb; Intcopy; Integes; extern int aplerr; int *op; Aplcb out; for (;;) { if (errinit()) break; out=getcb(NULL,rite->aplcount,APLTEMP+APLINT,rite->aplrank,NULL); if (aplerr) break; if (rite->aplrank > 1) op = intcopy(out->apldim,rite->apldim,rite->aplrank,1); if (out->aplcount == 0) break; /* All done. */ return(integes(rite,out)); break; /* final break out of for(;;) loop */ } return(errstop(0,NULL,rite,out)); }