/* Copyright (C) 1993 by Thomas Glen Smith. All Rights Reserved. */
/* execdyak APL2 V1.0.0 ************************************************
* Called from execdyaj after the axis value has been processed. *
***********************************************************************/
#define INCLUDES APLTOKEN+APLCB+FUNSTRUC+APLDERIV
#include "includes.h"
Aplcb execdyak(fun,left,rite,axis)
void *fun;
Aplcb left, rite;
int axis;
{
Axisdft; Errstop; Execdyas;
void *sdp;
sub_dyad ep;
switch (execdyas(fun,&sdp,&ep)) {
/* FLR, DIS, etc., are described in aplderiv.h */
case FLR: return(ep.flr(sdp,left,rite));
case DIX: return(ep.dix(left,rite));
case DNL: return(ep.dnl(left,rite,NULL,NULL)); /* pick */
case DOX: return(ep.dox(left,rite,NULL));
case WAX:
if (axis < 0)
axis = axisdft((Codes *)fun,
((left->aplrank > rite->aplrank) ? left : rite));
return(ep.wax(left,rite,axis));
default : return(errstop(65,left,rite,NULL)); /* unknown */
} /* end switch */
}