/* DEC *AdvancePayment(nper, intr, pv, pmt, fv, ad, opt) * * ARGUMENT * int nper, ad, opt; * DEC *intr, *pv, *pmt, *fv; * * DESCRIPTION * Given five variables involved in compound interest, solves for the * sixth one. The variables are the number of periods nper, the percentage * interest rate per period intr, the present value pv, the periodic payment * pmt, the future value fv, and the number of advanced payments ad, * while opt tells which variable to solve for. * * SIDE EFFECTS * Changes value of unknown variable. * * RETURNS * In case of success when not solving for nper, the result is returned. * If solving for nper or if an error occurs, GM_NULL is returned. * * POSSIBLE ERRORS * GM_NULLPOINTER * GM_ARGVAL * * * AUTHOR * Jared Levy * Copyright (C) 1988-1990 Greenleaf Software Inc. All rights reserved. * * MODIFICATIONS * * */ #include #include "gm.h" #include "gmsystem.h" DEC *AdvancePayment(nper, intr, pv, pmt, fv, ad, opt) int nper, ad, opt; DEC *intr, *pv, *pmt, *fv; { DEC *p; _MacStart(GM_ADVPMT); if (opt==GM_N || ad>=nper || ad<0) { _MacErr(GM_ARGVAL); _MacRet(GM_NULL); } p=_CompoundAux(0, &nper, intr, intr, pv, pmt, fv, ad, opt); _MacRet(p); }