/*Copyright (C) 1992, 1995 by Thomas Glen Smith. All Rights Reserved.*/ /* take APL2 V1.0.0 **************************************************** * Called by first and take2. * * If a is an APLCB for a positive scalar integer and b is an APLCB for * * a vector, then take(a,b) is a vector consisting of the first a * * elements of b, padded to the right with zeros if needed, e.g. * * take(iscalar(3),indxsub(2)) produces 1 2 0. If a is negative, * * elements are taken from the right end of b, e.g take(iscalar(-2), * * indxsub(4)) produces 3 4. If b is any array, take(a,b) is valid * * only if a has one element for each axis of b, with the Ith element * * determining how many to take along the Ith axis of b. * ***********************************************************************/ #define INCLUDES APLCB #include "includes.h" Aplcb take(left,rite) Aplcb left,rite; { Errstop; Takeck; Takeit; Vectin; if (OK != takeck(&left,&rite)) return(errstop(0,left,rite,NULL)); return(takeit(left,rite)); }