comparison libinterp/corefcn/svd.cc @ 20939:b17fda023ca6

maint: Use new C++ archetype in more files. Place input validation first in files. Move declaration of retval down in function to be closer to point of usage. Eliminate else clause after if () error. Use "return ovl()" where it makes sense. * find.cc, gammainc.cc, gcd.cc, getgrent.cc, getpwent.cc, givens.cc, graphics.cc, help.cc, hess.cc, hex2num.cc, input.cc, kron.cc, load-path.cc, load-save.cc, lookup.cc, mappers.cc, matrix_type.cc, mgorth.cc, nproc.cc, ordschur.cc, pager.cc, pinv.cc, pr-output.cc, profiler.cc, psi.cc, quad.cc, rcond.cc, regexp.cc, schur.cc, sighandlers.cc, sparse.cc, str2double.cc, strfind.cc, strfns.cc, sub2ind.cc, svd.cc, sylvester.cc, symtab.cc, syscalls.cc, sysdep.cc, time.cc, toplev.cc, tril.cc, tsearch.cc, typecast.cc, urlwrite.cc, utils.cc, variables.cc, __delaunayn__.cc, __eigs__.cc, __glpk__.cc, __magick_read__.cc, __osmesa_print__.cc, __voronoi__.cc, amd.cc, audiodevinfo.cc, audioread.cc, chol.cc, colamd.cc, dmperm.cc, fftw.cc, qr.cc, symbfact.cc, symrcm.cc, ov-bool-mat.cc, ov-cell.cc, ov-class.cc, ov-classdef.cc, ov-fcn-handle.cc, ov-fcn-inline.cc, ov-flt-re-mat.cc, ov-java.cc, ov-null-mat.cc, ov-oncleanup.cc, ov-re-mat.cc, ov-struct.cc, ov-typeinfo.cc, ov-usr-fcn.cc, ov.cc, octave.cc: Use new C++ archetype in more files.
author Rik <rik@octave.org>
date Fri, 18 Dec 2015 15:37:22 -0800
parents 9fbacc123a91
children 48b2ad5ee801
comparison
equal deleted inserted replaced
20938:aac911d8847b 20939:b17fda023ca6
122 decomposition, eliminating the unnecessary rows or columns of @var{U} or\n\ 122 decomposition, eliminating the unnecessary rows or columns of @var{U} or\n\
123 @var{V}.\n\ 123 @var{V}.\n\
124 @seealso{svd_driver, svds, eig, lu, chol, hess, qr, qz}\n\ 124 @seealso{svd_driver, svds, eig, lu, chol, hess, qr, qz}\n\
125 @end deftypefn") 125 @end deftypefn")
126 { 126 {
127 octave_value_list retval;
128
129 int nargin = args.length (); 127 int nargin = args.length ();
130 128
131 if (nargin < 1 || nargin > 2 || nargout == 2 || nargout > 3) 129 if (nargin < 1 || nargin > 2 || nargout == 2 || nargout > 3)
132 print_usage (); 130 print_usage ();
133 131
134 octave_value arg = args(0); 132 octave_value arg = args(0);
135 133
136 octave_idx_type nr = arg.rows ();
137 octave_idx_type nc = arg.columns ();
138
139 if (arg.ndims () != 2) 134 if (arg.ndims () != 2)
140 error ("svd: A must be a 2-D matrix"); 135 error ("svd: A must be a 2-D matrix");
136
137 octave_value_list retval;
141 138
142 bool isfloat = arg.is_single_type (); 139 bool isfloat = arg.is_single_type ();
143 140
144 SVD::type type = ((nargout == 0 || nargout == 1) 141 SVD::type type = ((nargout == 0 || nargout == 1)
145 ? SVD::sigma_only 142 ? SVD::sigma_only
146 : (nargin == 2) ? SVD::economy : SVD::std); 143 : (nargin == 2) ? SVD::economy : SVD::std);
144
145 octave_idx_type nr = arg.rows ();
146 octave_idx_type nc = arg.columns ();
147 147
148 SVD::driver driver = static_cast<SVD::driver> (Vsvd_driver); 148 SVD::driver driver = static_cast<SVD::driver> (Vsvd_driver);
149 149
150 if (nr == 0 || nc == 0) 150 if (nr == 0 || nc == 0)
151 { 151 {