Mercurial > hg > octave-lyh
diff src/data.cc @ 712:36ba0576bd1b
[project @ 1994-09-19 14:18:15 by jwe]
author | jwe |
---|---|
date | Mon, 19 Sep 1994 14:18:48 +0000 |
parents | 1a674dba2e9e |
children | 02814aea28c8 |
line wrap: on
line diff
--- a/src/data.cc +++ b/src/data.cc @@ -44,32 +44,32 @@ #define MIN(a,b) ((a) < (b) ? (a) : (b)) #endif -DEFUN ("all", Fall, Sall, 2, 1, +DEFUN ("all", Fall, Sall, 1, 1, "all (X): are all elements of X nonzero?") { Octave_object retval; int nargin = args.length (); - if (nargin != 2) + if (nargin == 1 && args(0).is_defined ()) + retval = args(0).all (); + else print_usage ("all"); - else if (nargin > 0 && args(1).is_defined ()) - retval = args(1).all (); return retval; } -DEFUN ("any", Fany, Sany, 2, 1, +DEFUN ("any", Fany, Sany, 1, 1, "any (X): are any elements of X nonzero?") { Octave_object retval; int nargin = args.length (); - if (nargin != 2) + if (nargin == 1 && args(0).is_defined ()) + retval = args(0).any (); + else print_usage ("any"); - else if (nargin > 0 && args(1).is_defined ()) - retval = args(1).any (); return retval; } @@ -128,17 +128,17 @@ return retval; } -DEFUN ("atan2", Fatan2, Satan2, 3, 1, +DEFUN ("atan2", Fatan2, Satan2, 2, 1, "atan2 (Y, X): atan (Y / X) in range -pi to pi") { Octave_object retval; - if (args.length () != 3) - print_usage ("atan2"); - else + int nargin = args.length (); + + if (nargin == 2 && args(0).is_defined () && args(1).is_defined ()) { - tree_constant arg_y = args(1); - tree_constant arg_x = args(2); + tree_constant arg_y = args(0); + tree_constant arg_x = args(1); int y_nr = arg_y.rows (); int y_nc = arg_y.columns (); @@ -212,169 +212,162 @@ else error ("atan2: nonconformant matrices"); } + else + print_usage ("atan2"); return retval; } -DEFUN ("cumprod", Fcumprod, Scumprod, 2, 1, +DEFUN ("cumprod", Fcumprod, Scumprod, 1, 1, "cumprod (X): cumulative products") { Octave_object retval; int nargin = args.length (); - if (nargin != 2) + if (nargin == 1 && args(0).is_defined ()) + retval = args(0).cumprod (); + else print_usage ("cumprod"); - else if (nargin > 0 && args(1).is_defined ()) - retval = args(1).cumprod (); return retval; } -DEFUN ("cumsum", Fcumsum, Scumsum, 2, 1, +DEFUN ("cumsum", Fcumsum, Scumsum, 1, 1, "cumsum (X): cumulative sums") { Octave_object retval; int nargin = args.length (); - if (nargin != 2) + if (nargin == 1 && args(0).is_defined ()) + retval = args(0).cumsum (); + else print_usage ("cumsum"); - else if (nargin > 0 && args(1).is_defined ()) - retval = args(1).cumsum (); return retval; } -DEFUN ("diag", Fdiag, Sdiag, 3, 1, +DEFUN ("diag", Fdiag, Sdiag, 2, 1, "diag (X [,k]): form/extract diagonals") { Octave_object retval; int nargin = args.length (); - if (nargin == 2) - retval = args(1).diag (); - else if (nargin == 3) - retval = args(1).diag (args(2)); + if (nargin == 1 && args(0).is_defined ()) + retval = args(0).diag (); + else if (nargin == 2 && args(0).is_defined () && args(1).is_defined ()) + retval = args(0).diag (args(1)); else print_usage ("diag"); return retval; } -DEFUN ("isstr", Fisstr, Sisstr, 2, 1, +DEFUN ("isstr", Fisstr, Sisstr, 1, 1, "isstr (X): return 1 if X is a string, 0 otherwise") { Octave_object retval; int nargin = args.length (); - if (nargin != 2) - print_usage ("isstr"); + if (nargin == 1 && args(0).is_defined ()) + retval = (double) args(0).is_string (); else - { - if (nargin > 0 && args(1).is_defined ()) - retval = (double) args(1).is_string (); - } + print_usage ("isstr"); return retval; } -DEFUN ("prod", Fprod, Sprod, 2, 1, +DEFUN ("prod", Fprod, Sprod, 1, 1, "prod (X): products") { Octave_object retval; int nargin = args.length (); - if (nargin != 2) + if (nargin == 1 && args(0).is_defined ()) + retval = args(0).prod (); + else print_usage ("prod"); - else if (nargin > 0 && args(1).is_defined ()) - retval = args(1).prod (); return retval; } -DEFUN ("setstr", Fsetstr, Ssetstr, 2, 1, +DEFUN ("setstr", Fsetstr, Ssetstr, 1, 1, "setstr (V): convert a vector to a string") { Octave_object retval; int nargin = args.length (); - if (nargin == 2) - retval = args(1).convert_to_str (); + if (nargin == 1 && args(0).is_defined ()) + retval = args(0).convert_to_str (); else print_usage ("setstr"); return retval; } -DEFUN ("size", Fsize, Ssize, 2, 1, +DEFUN ("size", Fsize, Ssize, 1, 1, "[m, n] = size (x): return rows and columns of X") { Octave_object retval; int nargin = args.length (); - if (nargin != 2) - print_usage ("size"); - else + if (nargin == 1 && args(0).is_defined ()) { - if (nargin > 0 && args(1).is_defined ()) + int nr = args(0).rows (); + int nc = args(0).columns (); + if (nargout == 0 || nargout == 1) { - int nr = args(1).rows (); - int nc = args(1).columns (); - if (nargout == 0 || nargout == 1) - { - Matrix m (1, 2); - m.elem (0, 0) = nr; - m.elem (0, 1) = nc; - retval = m; - } - else if (nargout == 2) - { - retval(1) = (double) nc; - retval(0) = (double) nr; - } - else - print_usage ("size"); + Matrix m (1, 2); + m.elem (0, 0) = nr; + m.elem (0, 1) = nc; + retval = m; } + else if (nargout == 2) + { + retval(1) = (double) nc; + retval(0) = (double) nr; + } + else + print_usage ("size"); } + else + print_usage ("size"); return retval; } -DEFUN ("sum", Fsum, Ssum, 2, 1, +DEFUN ("sum", Fsum, Ssum, 1, 1, "sum (X): sum of elements") { Octave_object retval; int nargin = args.length (); - if (nargin != 2) - print_usage ("sum"); + if (nargin == 1 && args(0).is_defined ()) + retval = args(0).sum (); else - { - if (nargin > 0 && args(1).is_defined ()) - retval = args(1).sum (); - } + print_usage ("sum"); return retval; } -DEFUN ("sumsq", Fsumsq, Ssumsq, 2, 1, +DEFUN ("sumsq", Fsumsq, Ssumsq, 1, 1, "sumsq (X): sum of squares of elements") { Octave_object retval; int nargin = args.length (); - if (nargin != 2) + if (nargin == 1 && args(0).is_defined ()) + retval = args(0).sumsq (); + else print_usage ("sumsq"); - else if (nargin > 0 && args(1).is_defined ()) - retval = args(1).sumsq (); return retval; } @@ -468,7 +461,7 @@ return m; } -DEFUN ("ones", Fones, Sones, 3, 1, +DEFUN ("ones", Fones, Sones, 2, 1, "ones (N), ones (N, M), ones (X): create a matrix of all ones") { Octave_object retval; @@ -477,14 +470,14 @@ switch (nargin) { + case 0: + retval = 1.0; + break; case 1: - retval = 1.0; + retval = fill_matrix (args(0), 1.0, "ones"); break; case 2: - retval = fill_matrix (args(1), 1.0, "ones"); - break; - case 3: - retval = fill_matrix (args(1), args(2), 1.0, "ones"); + retval = fill_matrix (args(0), args(1), 1.0, "ones"); break; default: print_usage ("ones"); @@ -494,7 +487,7 @@ return retval; } -DEFUN ("zeros", Fzeros, Szeros, 3, 1, +DEFUN ("zeros", Fzeros, Szeros, 2, 1, "zeros (N), zeros (N, M), zeros (X): create a matrix of all zeros") { Octave_object retval; @@ -503,14 +496,14 @@ switch (nargin) { + case 0: + retval = 0.0; + break; case 1: - retval = 0.0; + retval = fill_matrix (args(0), 0.0, "zeros"); break; case 2: - retval = fill_matrix (args(1), 0.0, "zeros"); - break; - case 3: - retval = fill_matrix (args(1), args(2), 0.0, "zeros"); + retval = fill_matrix (args(0), args(1), 0.0, "zeros"); break; default: print_usage ("zeros"); @@ -562,7 +555,7 @@ return m; } -DEFUN ("eye", Feye, Seye, 3, 1, +DEFUN ("eye", Feye, Seye, 2, 1, "eye (N), eye (N, M), eye (X): create an identity matrix") { Octave_object retval; @@ -571,14 +564,14 @@ switch (nargin) { + case 0: + retval = 1.0; + break; case 1: - retval = 1.0; + retval = identity_matrix (args(0)); break; case 2: - retval = identity_matrix (args(1)); - break; - case 3: - retval = identity_matrix (args(1), args(2)); + retval = identity_matrix (args(0), args(1)); break; default: print_usage ("eye");