function [Oldpaymt, NewBal, RefBal, Newpaymt, Value] = RefExmp(Loan, OldTerm, ...
       RefTim, NewTerm, Costs, Points, PayoffTim, OldInt, NewInt, ValInt);
% function calculates present value of future payment stream under
% refinanced loan.  
% Loan = original loan amount; 
% OldTerm = term of initial loan in years (on monthly payment basis); 
% RefTim = time in years after which to refinance; 
% New Term = term of refinanced loan;
% Costs = fixed closing costs for refinancing; 
% Points = percentage of new balance as additional costs; 
% PayoffTim <= New Term is time (from Refinancing-time at which new loan 
%         balance is to be paid off in cash (eg at house sale); 
% the three interest rates are nominal 12-times-per-year 
        vold = (1 + OldInt/12)^(-12) ;
        Oldpaymt = ((Loan * OldInt)/12)/(1 - vold^OldTerm) ;
        NewBal = (Loan * (1 - vold^(OldTerm - RefTim)))/(1 - vold^OldTerm);
        RefBal = (NewBal + Costs) * (1 + Points);
        vnew = (1 + NewInt/12)^(-12);
        Newpaymt = ((RefBal * NewInt)/12)/(1 - vnew^NewTerm);
        vval = (1 + ValInt/12)^(-12);
        Value = (Newpaymt * 12 * (1 - vval^PayoffTim))/ValInt +  (RefBal * ...
           vval^PayoffTim * (1 - vnew^(NewTerm - PayoffTim)))/(1 - vnew^NewTerm);
