Mercurial > octave-nkf
diff scripts/finance/irr.m @ 3456:434790acb067
[project @ 2000-01-19 06:58:51 by jwe]
author | jwe |
---|---|
date | Wed, 19 Jan 2000 06:59:23 +0000 |
parents | 3234a698073a |
children | d25bc039237b |
line wrap: on
line diff
--- a/scripts/finance/irr.m Tue Jan 18 19:57:13 2000 +0000 +++ b/scripts/finance/irr.m Wed Jan 19 06:59:23 2000 +0000 @@ -30,28 +30,20 @@ if (nargin == 1) i = 0; - elseif !(nargin == 2) - usage ("irr (p [, i])"); + elseif (! (nargin == 2)) + usage ("irr (p, i)"); endif - tmp = output_precision; - output_precision = 15; - if !(is_vector (p)) + if (! (is_vector (p))) error ("irr: p must be a vector"); else - p_string = type p; + p_string = strcat ("[", sprintf ("%.15f, ", p), "]"); endif - if !is_scalar (i) + if (! is_scalar (i)) error ("irr: i must be a scalar"); endif - string = ["function delta = f (r) ", ... - "delta = npv (r, %s) - %g; end"]; - eval (sprintf (string, p_string, i)); - - r = fsolve ("f", 0.01); - - output_precision = tmp; + r = fsolve (sprintf ("npv (x, %s) - %g", p_string, i), 0.01); endfunction