/* Copyright (C) 1993 by Thomas Glen Smith. All Rights Reserved. */ /* eachdyag APL2 V1.0.0 ************************************************ * Called from eachdyae, eachdyaf and execjot2 to process the next pair * * of args. * ***********************************************************************/ #define INCLUDES APLDERIV+APLCB #include "includes.h" Aplcb eachdyag(dp,deriv_sub_ptr,left,rite) Aplderiv dp; /* function describing derived function */ Deriv_sub *deriv_sub_ptr; /* identifies function to be processed */ Aplcb left,rite; /* arguments */ { Aplcb out; switch (deriv_sub_ptr->type) { case DOX: out = deriv_sub_ptr->func.dox (left,rite,dp->deriv_axis_cb); break; case DIX: /* mixed dyadic w/o axis */ out = deriv_sub_ptr->func.dix (left,rite); break; case DNL: /* mixed dyadic w/o axis */ out = deriv_sub_ptr->func.dnl (left,rite,NULL,NULL); break; case WAX: /* mixed dyadic with axis */ out = deriv_sub_ptr->func.wax (left,rite,dp->deriv_axis_int); break; case DBX: /* mixed dyadics with real axis (laminate) */ out = deriv_sub_ptr->func.dbx (left,rite,dp->deriv_axis_dbl); break; case DRV: /* derived function */ out = deriv_sub_ptr->func.drv (deriv_sub_ptr->fun,left,rite); break; } /* end switch */ return(out); }