/* 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);
}