home *** CD-ROM | disk | FTP | other *** search
- /*
- Listing 21.7 Interest functions
- Author: Joe Booth
- Excerpted from "Clipper 5: A Developer's Guide"
- Copyright (c) 1991 M&T Books
- 501 Galveston Drive
- Redwood City, CA 94063-4728
- (415) 366-3600
- */
-
-
- function simple(nPrin,nRate,nPeriods)
- return nPrin * (nRate*nPeriods)
-
-
- function compound(nPrin,nRate,nPeriods,cFreq)
- LOCAL jj,arr_:={},multiplier:=1
- cFreq:=if(cFreq=NIL,"Q",cFreq)
- if cFreq = "C"
- multiplier := Exp(nRate)
- elseif cFreq = "A"
- multiplier := (1+nRate)
- elseif cFreq = "Q"
- multiplier := (1+nRate/4)**4
- elseif cFreq = "M"
- multiplier := (1+nRate/12)**12
- endif
- Aadd(arr_,nPrin*multiplier)
- for jj=2 to nPeriods
- Aadd(arr_,arr_[jj-1]*multiplier)
- next
- return arr_
-
-
- function pv(payment,rate,periods)
- LOCAL multi:= (1-((1+Rate)**(-1*periods))) / rate
- return multi * payment
-
-
- function fv(payment,rate,periods)
- LOCAL multi:= (((1+Rate)**periods)-1) / rate
- return multi * payment
-
- // end of file CHP2107.PRG
-