IMSL C Math Library
principal_payment
Evaluates the payment on the principal for a specified period.
Synopsis
#include <imsl.h>
float imsl_f_principal_payment (float rate, int period, int n_periods, float present_value, float future_value, int when)
The type double function is imsl_d_principal_payment.
Required Arguments
float rate (Input)
Interest rate.
int period (Input)
Payment period.
int n_periods (Input)
Total number of periods.
float present_value (Input)
The current value of a stream of future payments, after discounting the payments using some interest rate.
float future_value (Input)
The value, at some time in the future, of a current amount and a stream of payments.
int when (Input)
Time in each period when the payment is made, either IMSL_AT_END_OF_PERIOD or IMSL_AT_BEGINNING_OF_PERIOD. For a more detailed discussion on when see the Usage Notes section of this chapter.
Return Value
The payment on the principal for a given period. If no result can be computed, NaN is returned.
Description
Function imsl_f_principal_payment computes the payment on the principal for a given period.
It is computed using the following:
where paymenti is computed from imsl_f_payment for the i-th period, interesti is calculated from imsl_f_interest_payment for the i-th period.
Example
In this example, imsl_f_principal_payment computes the principal paid for the first year on a 30-year $100,000 loan with an annual interest rate of 8%. The payment is made at the end of each year.
 
#include <stdio.h>
#include <imsl.h>
 
int main()
{
float rate = .08;
int period = 1;
int n_periods = 30;
float present_value = 100000.00;
float future_value = 0.0;
int when = IMSL_AT_END_OF_PERIOD;
float principal;
 
principal = imsl_f_principal_payment (rate, period, n_periods,
present_value, future_value, when);
printf ("The payment on the principal for the first year of \n");
printf ("the $100,000 loan is $%.2f.\n", principal);
}
Output
 
The payment on the principal for the first year of
the $100,000 loan is $-882.74.