Users can perform financial computations by using pre-defined data types. Most of the financial functions require one or more of the following:
• Date
• Number of payments per year
• A variable to indicate when payments are due
• Day count basis
IMSL C/Math/Library provides the identifiers for the input,
frequency,
to indicate the number of payments for each year. The identifiers are
IMSL_ANNUAL,
IMSL_SEMIANNUAL,
and
IMSL_QUARTERLY.
|
Identifier (frequency) |
Meaning |
|
IMSL_ANNUAL |
One payment per year
|
|
IMSL_SEMIANNUAL |
Two payments per
year |
|
IMSL_QUARTERLY |
Four payments per
year |
IMSL C/Math/Library provides the identifiers for the input, when, to indicate when payments are due. The identifiers are IMSL_AT_END_OF_PERIOD, IMSL_AT_BEGINNING_OF_PERIOD.
|
Identifier (when) |
Meaning |
|
IMSL_AT_END_OF_PERIOD |
Payments are due at the end of the period |
|
IMSL_AT_BEGINNING_OF_PERIOD |
Payments are due at the beginning of the period |
IMSL C/Math/Library provides the identifiers for the input, basis, to indicate the type of day count basis. Day count basis is the method for computing the number of days between two dates. The identifiers are IMSL_DAY_CNT_BASIS_NASD, IMSL_DAY_CNT_BASIS_ACTUALACTUAL, IMSL_DAY_CNT_BASIS_ACTUAL360, IMSL_DAY_CNT_BASIS_ACTUAL365, and IMSL_DAY_CNT_BASIS_30E360.
|
Identifier (basis) |
Day count basis |
|
IMSL_DAY_CNT_BASIS_NASD |
US (NASD) 30/360 |
|
IMSL_DAY_CNT_BASIS_ACTUALACTUAL |
Actual/Actual |
|
IMSL_DAY_CNT_BASIS_ACTUAL360 |
Actual/360 |
|
IMSL_DAY_CNT_BASIS_ACTUAL365 |
Actual/365 |
|
IMSL_DAY_CNT_BASIS_30E360 |
European 30/360 |
IMSL C/Math/Library uses the C programming language structure, tm, provided in the standard header <time.h>, to represent a date. For a detailed description of tm, see Kernighan and Richtie 1988, The C Programming Language, Second Edition, p 255.
The structure tm is declared within <time.h> as follows:
struct tm
{
int
tm_sec;
int
tm_min;
int
tm_hour;
int
tm_mday;
int
tm_mon;
int
tm_year;
int
tm_wday;
int
tm_yday;
int
tm_isdst;
};
For example, to declare a variable to represent Jan 1, 2001, use the following code segment:
struct tm date;
date.tm_year = 101;
date.tm_mon = 0;
date.tm_mday = 1;
NOTE: IMSL C/Math/Library only uses the tm_year, tm_mon, and tm_mday fields in structure tm .
In preparing the finance and bond functions we incorporated standards used by SIA Standard Securities Calculation Methods.
More detailed information on finance and bond functionality can be found in the following manuals:
• SIA Standard Securities Calculation Methods 1993, vols. 1 & 2, Third Edition.
• Accountants' Handbook, Volume 1, Sixth Edition.
• Microsoft Excel 5, Worksheet Function Reference.