/* DEC *SineDecimal(pDst,pSrc) * * ARGUMENT * DEC *pDst; * DEC *pSrc; * * DESCRIPTION * Sets pDst = the sine of pSrc radians. * * SIDE EFFECTS * * RETURNS * Returns pointer to pDst if successful, otherwise a GM_NULL. * * POSSIBLE ERROR CODES * * GM_NULLPOINTER * * AUTHOR * Jared Levy Oct 16, 1987 * Copyright (C) 1987-1990 Greenleaf Software Inc. All rights reserved. * * MODIFICATIONS * */ #include #include "gm.h" #include "gmsystem.h" DEC *SineDecimal(pDst,pSrc) DEC *pDst; DEC *pSrc; { DEC *temp, dtemp; _MacStart(GM_DSIN); _MacInVarD(pSrc); _MacOutVarD(pDst); /* sin(x) = cos(pi/2 - x) */ temp = &dtemp; (void) _SubDec80Bit(temp, &decPiOver2, pSrc); _CosDec80Bit(pDst, temp); (void) _Sq5UnsTo4Uns(pDst); _MacRet(pDst); }