/* Copyright (C) 1993 by Thomas Glen Smith. All Rights Reserved. */ /* execdotc APL2 V1.0.0 ************************************************ * Called from execdota and execdot when each operand must be converted * * to floating point to do inner product. * ***********************************************************************/ #define INCLUDES APLCHDEF+FUNSTRUC+APLCB #include "includes.h" Aplcb execdotc(left,rite,ltype,rtype,lscp,rscp) Aplcb left,rite; /* left and right arguments */ int ltype,rtype; /* data types of left and right args */ Scalar_dyadics *lscp,*rscp; /* function definitions - see aplstruc.h */ { Innrprdp; Real; Aplcb out=NULL; if ((NULL != rscp->procs.ppdbl) && (NULL != lscp->procs.ppdbl)) { if (ltype != APLNUMB) left = real(left); /* convert */ if (rtype != APLNUMB) rite = real(rite); /* convert */ out = innrprdp(lscp->procs.ppdbl,rscp->procs.ppdbl, &(lscp->identities.did),left,rite); } return(out); }