;ELC ;;; Compiled ;;; in Emacs version 27.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\207" [require calc-ext calc-macs] 2) (defalias 'calc-fin-pv #[nil "\300\301`\"\207" [calc-do #[nil "\301 \203\302\303\304\305\306\303!B#\207\307 \203\310\202\303\311 \203+\302\312\313\306!B#\2024\302\314\315\306!B#)\207" [n calc-is-hyperbolic calc-enter-result 3 "pvl" calcFunc-pvl calc-top-list-n calc-is-option 4 calc-is-inverse "pvb" calcFunc-pvb "pv" calcFunc-pv] 6]] 3 nil nil]) (defalias 'calc-fin-npv #[(arg) "\300\301`\"\207" [calc-do #[nil "\301 \203\f\302\303\304T#\207\302\305\306T#\207" [arg calc-is-inverse calc-vector-op "npvb" calcFunc-npvb "npv" calcFunc-npv] 4]] 3 nil "p"]) (defalias 'calc-fin-fv #[nil "\300\301`\"\207" [calc-do #[nil "\301 \203\302\303\304\305\306\303!B#\207\307 \203\310\202\303\311 \203+\302\312\313\306!B#\2024\302\314\315\306!B#)\207" [n calc-is-hyperbolic calc-enter-result 3 "fvl" calcFunc-fvl calc-top-list-n calc-is-option 4 calc-is-inverse "fvb" calcFunc-fvb "fv" calcFunc-fv] 6]] 3 nil nil]) (defalias 'calc-fin-pmt #[nil "\300\301`\"\207" [calc-do #[nil "\301 \203\302\303\304\305\306\303!B#\207\307 \203\310\202\303\311 \203+\302\312\313\306!B#\2024\302\314\315\306!B#)\207" [n calc-is-hyperbolic calc-enter-result 3 "fvl" calcFunc-fvl calc-top-list-n calc-is-option 4 calc-is-inverse "pmtb" calcFunc-pmtb "pmt" calcFunc-pmt] 6]] 3 nil nil]) (defalias 'calc-fin-nper #[nil "\300\301`\"\207" [calc-do #[nil "\301 \203\302\303\304\305\306\303!B#\207\307 \203\310\202\303\311 \203+\302\312\313\306!B#\2024\302\314\315\306!B#)\207" [n calc-is-hyperbolic calc-enter-result 3 "nprl" calcFunc-nperl calc-top-list-n calc-is-option 4 calc-is-inverse "nprb" calcFunc-nperb "nper" calcFunc-nper] 6]] 3 nil nil]) (defalias 'calc-fin-rate #[nil "\300\301`\"\207" [calc-do #[nil "\301 \204\302 \203\303\202\304\305\301 \203\306\202%\307 \203$\310\202%\311\312\313\301 \2030\314\202:\301 \2039\315\202:\316\317!B!!#)\207" [n calc-is-hyperbolic calc-is-option 4 3 calc-pop-push-record "ratl" calc-is-inverse "ratb" "rate" calc-to-percentage calc-normalize calcFunc-ratel calcFunc-rateb calcFunc-rate calc-top-list-n] 8]] 3 nil nil]) (defalias 'calc-fin-irr #[(arg) "\300\301`\"\207" [calc-do #[nil "\301 \203 \302\303\304#\207\302\305\306#\207" [arg calc-is-inverse calc-vector-op "irrb" calcFunc-irrb "irr" calcFunc-irr] 4]] 3 nil "P"]) (defalias 'calc-fin-sln #[nil "\300\301`\"\207" [calc-do #[nil "\300\301\302\303\304\301!B#\207" [calc-enter-result 3 "sln" calcFunc-sln calc-top-list-n] 6]] 3 nil nil]) (defalias 'calc-fin-syd #[nil "\300\301`\"\207" [calc-do #[nil "\300\301\302\303\304\301!B#\207" [calc-enter-result 4 "syd" calcFunc-syd calc-top-list-n] 6]] 3 nil nil]) (defalias 'calc-fin-ddb #[nil "\300\301`\"\207" [calc-do #[nil "\300\301\302\303\304\301!B#\207" [calc-enter-result 4 "ddb" calcFunc-ddb calc-top-list-n] 6]] 3 nil nil]) (defalias 'calc-to-percentage #[(x) "\211:?\206 \211@\301>\262\2039\302\303\"\211\211\250\206,\211:\205,\211@\304=\205,\3058\306Y\262\2035\307!\310D\207\211\242\311=\262\203K\311\312\313A\"B\207\207" [x (frac float cplx polar hms date sdev intv mod) math-mul 100 float 2 0 math-trunc calcFunc-percent vec mapcar calc-to-percentage] 5]) (defalias 'calc-convert-percent #[nil "\300\301`\"\207" [calc-do #[nil "\300\301\302\303\304\301!!#\207" [calc-pop-push-record 1 "c%" calc-to-percentage calc-top-n] 6]] 3 nil nil]) (defalias 'calc-percent-change #[nil "\300\301`\"\207" [calc-do #[nil "\301\302\303\304!B!\305\304\306\307!#)\207" [res calc-normalize calcFunc-relch calc-top-list 2 calc-pop-push-record "%ch" calc-to-percentage] 5]] 3 nil nil]) (defalias 'calcFunc-pv #[(rate num amount &optional lump) "\306 \"\210\307\n\310\\\311\312\313\" \"\312\314\f\315\316\313\315\313 \"\"\"\"\315 \206&\317 \"\"*!\207" [rate num calc-internal-prec p amount lump math-check-financial math-normalize 2 math-pow math-add 1 math-mul math-div math-sub 0] 10]) (put 'calcFunc-pv 'math-expandable t) (defalias 'calcFunc-pvl #[(rate num amount) "\303 \304\n$\207" [rate num amount calcFunc-pv 0] 5]) (put 'calcFunc-pvl 'math-expandable t) (defalias 'calcFunc-pvb #[(rate num amount &optional lump) "\306 \"\210\307\n\310\\\311\312\313\" \"\312\314\f\315\314\316\313\315\313 \"\"\312\313\"\"\"\"\315 \206,\317 \"\"*!\207" [rate num calc-internal-prec p amount lump math-check-financial math-normalize 2 math-pow math-add 1 math-mul math-div math-sub 0] 11]) (put 'calcFunc-pvb 'math-expandable t) (defalias 'calcFunc-npv #[(rate &rest flows) "\306\307\"\210\310 \311\\\312\n!\313\307\"\211\314 A\211\2032\313\315 @ \"\"\316 \f\"\202-!\207" [rate calc-internal-prec flows flat pp p math-check-financial 1 math-normalize 2 math-flatten-many-vecs math-add 0 math-div math-mul accum] 7]) (put 'calcFunc-npv 'math-expandable t) (defalias 'calcFunc-npvb #[(rate &rest flows) "\306\307\"\210\310 \311\\\312\n!\313\307\"\307\314 A\211\2032\313\315 @ \"\"\316 \f\"\202-!\207" [rate calc-internal-prec flows flat pp p math-check-financial 1 math-normalize 2 math-flatten-many-vecs math-add 0 math-div math-mul accum] 6]) (put 'calcFunc-npvb 'math-expandable t) (defalias 'calcFunc-fv #[(rate num amount &optional initial) "\306 \"\210\307\n\310\\\311\312\313\" \"\312\314\f\315\316 \313\"\"\"\314 \206#\317 \"\"*!\207" [rate num calc-internal-prec p amount initial math-check-financial math-normalize 2 math-pow math-add 1 math-mul math-div math-sub 0] 8]) (put 'calcFunc-fv 'math-expandable t) (defalias 'calcFunc-fvl #[(rate num amount) "\303 \304\n$\207" [rate num amount calcFunc-fv 0] 5]) (put 'calcFunc-fvl 'math-expandable t) (defalias 'calcFunc-fvb #[(rate num amount &optional initial) "\306 \"\210\307\n\310\\\311\312\313\" \"\312\314\f\315\314\316 \313\"\312\313\"\"\"\"\314 \206)\317 \"\"*!\207" [rate num calc-internal-prec p amount initial math-check-financial math-normalize 2 math-pow math-add 1 math-mul math-div math-sub 0] 10]) (put 'calcFunc-fvb 'math-expandable t) (defalias 'calcFunc-pmt #[(rate num amount &optional lump) "\306 \"\210\307\n\310\\\311\312\313\" \"\314\315\316\f\314 \206\317 \"\"\"\316\313\314\313 \"\"\"*!\207" [rate num calc-internal-prec p amount lump math-check-financial math-normalize 2 math-pow math-add 1 math-div math-mul math-sub 0] 8]) (put 'calcFunc-pmt 'math-expandable t) (defalias 'calcFunc-pmtb #[(rate num amount &optional lump) "\306 \"\210\307\n\310\\\311\312\313\" \"\314\315\316\f\314 \206\317 \"\"\"\315\316\313\314\313 \"\"\312\313\"\"\"*!\207" [rate num calc-internal-prec p amount lump math-check-financial math-normalize 2 math-pow math-add 1 math-div math-mul math-sub 0] 9]) (put 'calcFunc-pmtb 'math-expandable t) (defalias 'calcFunc-nper #[(rate pmt amount &optional lump) "\304 \n \305%\207" [rate pmt amount lump math-compute-nper nil] 6]) (put 'calcFunc-nper 'math-expandable t) (defalias 'calcFunc-nperb #[(rate pmt amount &optional lump) "\304 \n \305%\207" [rate pmt amount lump math-compute-nper b] 6]) (put 'calcFunc-nperb 'math-expandable t) (defalias 'calcFunc-nperl #[(rate pmt amount) "\303 \n\304\305%\207" [rate pmt amount math-compute-nper nil l] 6]) (put 'calcFunc-nperl 'math-expandable t) (defalias 'math-compute-nper #[(rate pmt amount lump bflag) "\203\f\306!\203\f\307\203\306 !\203\307\310\311\f!\204/ \203*\203/\312\f\313\"\210\306\f!\203:\312\f\314\"\210\311 !\204M \203H\203M\312 \313\"\210\311\n!\204` \203[\203`\312\n\313\"\210\203\235\311!\204o\312\313\"\210\315\316 \203y\317\202z\320\f\321 \257\nE\322\323\324$\211!\211\242\325=\262\203\231!A@\202\233!)\207\326\"\327\\\" \310=\203\261\330\n \"\202\311\331\332\330\333\n\f\" \203\306\333 \334\332\f\"\"\202\307 \"\"#\335#!\204\326 \203\343\336\337#\334\332\f\"\"!\202\347\312 \340\"*!\207" [lump pmt amount bflag rate math-expand-formulas math-zerop nil l math-objectp math-reject-arg numberp nonzerop math-find-root calcFunc-eq calcFunc-pvb calcFunc-pv (var DUMMY var-DUMMY) (var DUMMY var-DUMMY) (intv 3 0 100) t vec math-normalize 2 math-div math-sub 1 math-mul math-add math-posp math-neg calcFunc-log "*Payment too small to cover interest rate" root calc-internal-prec temp] 11]) (defalias 'calcFunc-rate #[(num pmt amount &optional lump) "\304 \n \305%\207" [num pmt amount lump math-compute-rate calcFunc-pv] 6]) (defalias 'calcFunc-rateb #[(num pmt amount &optional lump) "\304 \n \305%\207" [num pmt amount lump math-compute-rate calcFunc-pvb] 6]) (defalias 'math-compute-rate #[(num pmt amount lump func) "\306!\204 \307\310\"\210\306 !\204\307 \310\"\210\306\n!\204!\307\n\310\"\210 \2030\306 !\2040\307 \310\"\210\311\312\f\313 \206;\314\257\nE\315\316\317$\211\211\242\320=\262\203T A@\202U )\207" [num pmt amount lump func root math-objectp math-reject-arg numberp math-find-root calcFunc-eq (var DUMMY var-DUMMY) 0 (var DUMMY var-DUMMY) (intv 3 (float 1 -4) 1) t vec] 8]) (defalias 'calcFunc-ratel #[(num pmt amount) "\305!\204 \204\306\307\"\210\305\n!\204 \204\306\n\307\"\210\305 !\204- \204-\306 \307\"\210\310\f\311\\\312\313\314\n \"\314\315\"\"\315\")!\207" [num math-expand-formulas pmt amount calc-internal-prec math-objectp math-reject-arg numberp math-normalize 2 math-sub math-pow math-div 1] 7]) (defalias 'calcFunc-irr #[(&rest vecs) "\301\302\"\207" [vecs math-compute-irr calcFunc-npv] 3]) (defalias 'calcFunc-irrb #[(&rest vecs) "\301\302\"\207" [vecs math-compute-irr calcFunc-npvb] 3]) (defalias 'math-compute-irr #[(vecs func) "\304!\305\n\306 E\307\310\311$\211\211\242\312=\262\203 A@\202 *\207" [vecs flat func root math-flatten-many-vecs math-find-root (var DUMMY var-DUMMY) (var DUMMY var-DUMMY) (intv 3 (float 1 -4) 1) t vec] 6]) (defalias 'math-check-financial #[(rate num) "\303!\204 \204\304\305\"\210\306!\203\304\307\"\210\303\n!\206( \206(\304\n\305\"\207" [rate math-expand-formulas num math-objectp math-reject-arg numberp math-zerop nonzerop] 3]) (defalias 'calcFunc-sln #[(cost salvage life &optional period) "\211:?\206 \211@\305>\262\204 \204\306\307\"\210\n\211:?\206$\211@\305>\262\2042 \2042\306\n\307\"\210 \211:?\206=\211@\305>\262\204K \204K\306 \307\"\210\310 !\203V\306 \311\"\210\f\203}\312\f!\203t \f\313\"\314U\266\202\204{\315\f!?\202x\306\f\316\"\203}\317\207\320\321\n\" \"\207" [cost math-expand-formulas salvage life period (frac float) math-reject-arg realp math-zerop nonzerop math-num-integerp math-compare -1 math-posp integerp 0 math-div math-sub] 5]) (put 'calcFunc-sln 'math-expandable t) (defalias 'calcFunc-syd #[(cost salvage life period) "\211:?\206 \211@\305>\262\204 \204\306\307\"\210\n\211:?\206$\211@\305>\262\2042 \2042\306\n\307\"\210 \211:?\206=\211@\305>\262\204K \204K\306 \307\"\210\310 !\203V\306 \311\"\210\f\211:?\206a\211@\305>\262\204o \204o\306\f\307\"\210 \f\312\"\313U\266\202\204\202\314\f!\204\204\315\207\316\317\320\n\"\321\320 \f\"\322\"\"\316\317 \321 \322\"\"\323\"\"\207" [cost math-expand-formulas salvage life period (frac float) math-reject-arg realp math-zerop nonzerop math-compare -1 math-posp 0 math-div math-mul math-sub math-add 1 2] 8]) (put 'calcFunc-syd 'math-expandable t) (defalias 'calcFunc-ddb #[(cost salvage life period) "\306!\203\n\307!\250\204\310\311\"\210 \211:?\206\211@\312>\262\204)\310 \313\"\210\n\211:?\2064\211@\312>\262\204>\310\n\313\"\210 \211:?\206I\211@\312>\262\204S\310 \313\"\210\314 !\203^\310 \315\"\210 \316\"\317U\266\202\204q\320X\203s\320\207 \320S\211\320Y\203\247\321\322 \323\" \"\324 \f\"\211\n\316\"\317U\266\202\203w\325\f\324 \n\"\"\n\202w\f*\207" [period cost salvage life res book math-messy-integerp math-trunc math-reject-arg fixnump (frac float) realp math-zerop nonzerop math-compare -1 0 math-div math-mul 2 math-sub math-add] 6]) (provide 'calc-fin)