Usage Notes

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
(Annual payment)

IMSL_SEMIANNUAL

Two payments per year
(Semi-annual payment)

IMSL_QUARTERLY

Four payments per year
(Quarterly payment)

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 .

Additional Information

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.