Metropoli BBS
VIEWER: shape.c MODE: TEXT (ASCII)
/*Copyright (C) 1992, 1995 by Thomas Glen Smith.  All Rights Reserved.*/
/* shape APL2 V1.0.0 ***************************************************
* Shape yields a vector of the dimensions of its argument, e.g. if     *
* it's a matrix having three rows and four columns, shape will return a*    
* vector containing 3 4.  If the argument to shape is a scalar, i.e.   *
* rank is 0, an empty vector is returned.                              *
***********************************************************************/
#define INCLUDES APLCB
#include "includes.h"
Aplcb shape(rite)
Aplcb rite;
{
	Getcb; Errinit; Errstop; Intcopy;
	int *dimin,*dimptr,i,*ip;
	Aplcb out;

	if (errinit())
		return(errstop(0,NULL,rite,NULL));
	out = getcb(NULL,rite->aplrank,APLTEMP+APLINT,1,NULL);
	if (rite->aplrank)
		/* input isn't scalar */
		dimptr=intcopy(out->aplptr.aplint,rite->apldim,rite->aplrank,1);
		/* out data is input dimensions */
	return(errstop(0,NULL,rite,out));
}
[ RETURN TO DIRECTORY ]