/* DEC *WeightedMean(pDst,pSrc,weight,n) * * ARGUMENT * DEC *pDst; * DEC **pSrc, **weight; * int n; * * DESCRIPTION * Sets pDst to the weighted mean of the n DEC elements * of the array pSrc[i], each with weight weight[i]. * n <= 0 is not allowed. pDst is unchanged if an error occurs. * * SIDE EFFECTS * None. * * RETURNS * Returns pointer to the average if successful, otherwise * returns GM_NULL. * * POSSIBLE ERROR CODES * * GM_NULLPOINTER * GM_ARGVAL * GM_OVERFLOW * GM_UNDERFLOW * * AUTHOR * Jared Levy * Copyright (C) 1987-1990 Greenleaf Software Inc. All rights reserved. * * MODIFICATIONS * */ #include #include "gm.h" #include "gmsystem.h" DEC *WeightedMean(pDst,pSrc,weight,n) DEC *pDst; DEC **pSrc, **weight; int n; { int i; DEC dsum, *sum=&dsum, dsumw, *sumw=&dsumw; DEC dprod, *prod=&dprod; /* source must be supplied !! */ _MacStart(GM_WMEAN); if (!pSrc||!weight) { _MacErr(GM_NULLPOINTER); _MacRet(GM_NULL); } if (n<=0) { _MacErr(GM_ARGVAL); _MacRet(GM_NULL); } for (i=0; i