/* Copyright (C) 1993, 1997 by Thomas Glen Smith. All Rights Reserved. */
/* execdyaq APL2 V1.0.1 ************************************************
* Called from execdyas to check for a dyadic routine of type *
* (*oper)(Aplcb, Aplcb). *
***********************************************************************/
#define INCLUDES APLCB+APLDERIV+FUNSTRUC+FUNCODES
#include "includes.h"
sub_dyad execdyaq(fun)
void *fun;
{
Mixed_dyadics *mdp;
switch (((Codes *)fun)->funky_flags) {
case MSMD: /* dyadic mixed deal, without */
mdp = &(((Msmd *)fun)->dyad);
break;
case MIXD: /* reshape, index of,... */
mdp = &(((Mixa *)fun)->dyad);
break;
case DYDB: /* decode, encode */
case SAME: /* transpose, gradedn, gradeup */
case DYAE: /* drop */
mdp = &(((Dmxo *)fun)->dyad);
break;
default:
return(NULL); /* no match */
}
return(mdp->epdix); /* mixed w/o axis */
}