/* Copyright (C) 1993 by Thomas Glen Smith. All Rights Reserved. */ /* execjot APL2 V1.0.0 ************************************************* * Called by dottran. Derived function routine to handle outer product. * ***********************************************************************/ #define INCLUDES APLCHDEF+FUNSTRUC+APLDERIV+APLCB #include "includes.h" Aplcb execjot(dp,left,rite) Aplderiv dp; /* function describing derived function */ Aplcb left,rite; /* arguments */ { Errstop; Execfree; Execjota; Execjotc; Execjotd; Pop; extern int aplerr; void *rfun; Aplcb out=NULL; int ltype,rtype; ltype = left->aplflags & APLMASK; rtype = rite->aplflags & APLMASK; if ((ltype | rtype) & APLCHAR) out = execjotd(left,rite,ltype,rtype,dp->deriv_rite.fun); else if (ltype == rtype) out = execjota(left,rite,ltype, dp->deriv_rite.sdp); else out = execjotc(left,rite,ltype,rtype,dp->deriv_rite.sdp); if (aplerr == 0 && out == NULL) return(errstop(78,left,rite,out)); return(out); }