/*Copyright (C) 1992, 1994 by Thomas Glen Smith. All Rights Reserved.*/
/* value - APL2 V1.0.0 *************************************************
* Called by assign and newderiv. *
* Returns the double floating point value of the first or only element *
* pointed to by the APLCB passed as argument. *
***********************************************************************/
#define INCLUDES APLCB
#include "includes.h"
double value(rite)
Aplcb rite;
{
Endoper; Errinit; Real;
extern int aplerr;
double ret;
if (errinit())
return(-0.0);
if (!(rite->aplflags & APLNUMB)) {
rite=real(rite);
if (aplerr)
return(-0.0);
}
if (!rite->aplcount) {
aplerr=23; /* empty variable */
ret=-0.0;
}
else
ret=*rite->aplptr.apldata;
endoper(rite);
return(ret);
}