;;; -*- Mode: Lisp; Package: Macsyma;base:10 -*- ;;; Translated code for LAM6: GJC; AMORT.MC#2 ;;; Written on 1/28/86 09:24:16, from MACSYMA 9 ;;; Translated for GJC ;;; TRANSL-AUTOLOAD version NIL ;;; TRANSS version NIL TRANSL version NIL TRUTIL version NIL ;;; TRANS1 version NIL TRANS2 version NIL TRANS3 version NIL ;;; TRANS4 version NIL TRANS5 version NIL TRANSF version NIL ;;; TROPER version NIL TRPRED version NIL MTAGS version NIL ;;; MDEFUN version NIL TRANSQ version NIL FCALL version NIL ;;; ACALL version NIL TRDATA version NIL MCOMPI version NIL ;;; TRMODE version NIL TRHOOK version NIL (eval-when (compile eval) (setq *infile-name-key* "GJC; AMORT.MC#2")) (eval-when (compile) (setq $tr_semicompile 'NIL) (setq forms-to-compile-queue ())) (comment "GJC; AMORT.MC#2") ;;; General declarations required for translated MACSYMA code. (DECLARE (SPECIAL $RATEPSILON $TEMP)) (DEFMTRFUN-EXTERNAL ($MONTHLY_PAYMENT $ANY MDEFINE NIL NIL)) (DEF-MTRVAR $TEMP '$TEMP 1) (DEF-MTRVAR $RATEPSILON '$RATEPSILON 1) (DEFMTRFUN-EXTERNAL ($APR $ANY MDEFINE NIL NIL)) (DEFMTRFUN-EXTERNAL ($RUN_LOOP $ANY MDEFINE NIL NIL)) (MEVAL* '((MDEFINE SIMP) ((MTIMES SIMP) $RATE ((MEXPT SIMP) ((MPLUS SIMP) 1 $RATE) $TIME) ((MEXPT SIMP) ((MPLUS SIMP) -1 ((MEXPT SIMP) ((MPLUS SIMP) 1 $RATE) $TIME)) -1) $STARTING_VALUE) ((MTIMES SIMP) $RATE ((MEXPT SIMP) ((MPLUS SIMP) 1 $RATE) $TIME) ((MEXPT SIMP) ((MPLUS SIMP) -1 ((MEXPT SIMP) ((MPLUS SIMP) 1 $RATE) $TIME)) -1) $STARTING_VALUE))) (DEFMTRFUN ($MONTHLY_PAYMENT $ANY MDEFINE NIL NIL) ($STARTING_VALUE $YEARLY_PERCENTAGE_RATE $YEARS) NIL (SIMPLIFY (MFUNCTION-CALL $PAYMENT $STARTING_VALUE (DIV (DIV $YEARLY_PERCENTAGE_RATE 100) 12) (MUL* 12 $YEARS)))) (MEVAL* (QUOTE ((MDEFINE SIMP) ((MPLUS SIMP) $RATE_APPROX ((MTIMES SIMP) -1 ((MPLUS SIMP) ((MTIMES SIMP) -1 $PAYMENT ((MEXPT SIMP) $RATE_APPROX -1) ((MPLUS SIMP) -1 ((MEXPT SIMP) ((MPLUS SIMP) 1 $RATE_APPROX) $TIME))) ((MTIMES SIMP) ((MEXPT SIMP) ((MPLUS SIMP) 1 $RATE_APPROX) $TIME) $STARTING_VALUE)) ((MEXPT SIMP) ((MPLUS SIMP) ((MTIMES SIMP) $PAYMENT ((MEXPT SIMP) $RATE_APPROX -2) ((MPLUS SIMP) -1 ((MEXPT SIMP) ((MPLUS SIMP) 1 $RATE_APPROX) $TIME))) ((MTIMES SIMP) -1 $PAYMENT ((MEXPT SIMP) $RATE_APPROX -1) ((MEXPT SIMP) ((MPLUS SIMP) 1 $RATE_APPROX) ((MPLUS SIMP) -1 $TIME)) $TIME) ((MTIMES SIMP) ((MEXPT SIMP) ((MPLUS SIMP) 1 $RATE_APPROX) ((MPLUS SIMP) -1 $TIME)) $STARTING_VALUE $TIME)) -1))) ((MPLUS SIMP) $RATE_APPROX ((MTIMES SIMP) -1 ((MPLUS SIMP) ((MTIMES SIMP) -1 $PAYMENT ((MEXPT SIMP) $RATE_APPROX -1) ((MPLUS SIMP) -1 ((MEXPT SIMP) ((MPLUS SIMP) 1 $RATE_APPROX) $TIME))) ((MTIMES SIMP) ((MEXPT SIMP) ((MPLUS SIMP) 1 $RATE_APPROX) $TIME) $STARTING_VALUE)) ((MEXPT SIMP) ((MPLUS SIMP) ((MTIMES SIMP) $PAYMENT ((MEXPT SIMP) $RATE_APPROX -2) ((MPLUS SIMP) -1 ((MEXPT SIMP) ((MPLUS SIMP) 1 $RATE_APPROX) $TIME))) ((MTIMES SIMP) -1 $PAYMENT ((MEXPT SIMP) $RATE_APPROX -1) ((MEXPT SIMP) ((MPLUS SIMP) 1 $RATE_APPROX) ((MPLUS SIMP) -1 $TIME)) $TIME) ((MTIMES SIMP) ((MEXPT SIMP) ((MPLUS SIMP) 1 $RATE_APPROX) ((MPLUS SIMP) -1 $TIME)) $STARTING_VALUE $TIME)) -1)))))) (DEFMTRFUN ($APR $ANY MDEFINE NIL NIL) ($MORT_AMOUNT $POINTS $PAYMENT $STATED_RATE $YEARS) NIL ((LAMBDA ($STARTING_VALUE $MPR $TEMP) NIL (DO ((MDO 1 (+ 1 MDO))) ((NOT (PROGN (SETQ $TEMP (SIMPLIFY (MFUNCTION-CALL $RATE_APPROX $STARTING_VALUE $PAYMENT $MPR (MUL* $YEARS 12)))) (IS-BOOLE-CHECK (MGRP (SIMPLIFY (LIST '(MABS) (ADD* (TRD-MSYMEVAL $TEMP '$TEMP) (*MMINUS $MPR)))) (TRD-MSYMEVAL $RATEPSILON '$RATEPSILON))))) '$DONE) ($PRINT '|&MONTHLY PRECENTAGE APPROXIMATELY =| (MUL* (TRD-MSYMEVAL $TEMP '$TEMP) 100)) (SETQ $MPR (TRD-MSYMEVAL $TEMP '$TEMP))) (MUL* (ADD* (POWER (ADD* $MPR 1) 12) -1) 100)) (ADD* $MORT_AMOUNT (*MMINUS (DIV (MUL* $MORT_AMOUNT $POINTS) 100))) (DIV (DIV $STATED_RATE 100) 12) '$TEMP)) (DEFMTRFUN ($RUN_LOOP $ANY MDEFINE NIL NIL) NIL NIL ((LAMBDA ($MA $PAY $YPR $YRS $PNTS $APR $INS) NIL (PROG NIL $LOOP (SETQ $YPR ($FLOAT (SIMPLIFY ($READ '|&Percentage|)))) (SETQ $YRS (SIMPLIFY ($READ '|&Years|))) (SETQ $PNTS (SIMPLIFY ($READ '|&Points|))) (SETQ $INS ($FLOAT (SIMPLIFY ($READ '|&Insurance factor (or zero)|)))) ($PRINT '|&Calculations for| $MA '|&at| $YPR '|&for| $YRS '|&years. with| $PNTS '|&points|) (SETQ $PAY (ADD* (SIMPLIFY (MFUNCTION-CALL $MONTHLY_PAYMENT $MA $YPR $YRS)) (DIV (MUL* $MA $INS) 12))) ($PRINT '|&Monthly Payment =| $PAY) (SETQ $APR (SIMPLIFY (MFUNCALL $APR $MA $PNTS $PAY $YPR $YRS))) ($PRINT '|&Actual Rate (APR) =| $APR) (RETURN (GO $LOOP)))) (SIMPLIFY ($READ '|&Mortgage amount|)) '$PAY '$YPR '$YRS '$PNTS '$APR '$INS)) (compile-forms-to-compile-queue)