Mercurial > octave
comparison libinterp/dldfcn/symrcm.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 | 1142cf6abc0d |
children | 6176560b03d9 |
comparison
equal
deleted
inserted
replaced
20938:aac911d8847b | 20939:b17fda023ca6 |
---|---|
435 Mathematics, ISBN 0-13-165274-5, 1981.\n\ | 435 Mathematics, ISBN 0-13-165274-5, 1981.\n\ |
436 \n\ | 436 \n\ |
437 @seealso{colperm, colamd, symamd}\n\ | 437 @seealso{colperm, colamd, symamd}\n\ |
438 @end deftypefn") | 438 @end deftypefn") |
439 { | 439 { |
440 octave_value retval; | |
441 | |
442 if (args.length () != 1) | 440 if (args.length () != 1) |
443 print_usage (); | 441 print_usage (); |
442 | |
443 octave_value retval; | |
444 | 444 |
445 octave_value arg = args(0); | 445 octave_value arg = args(0); |
446 | 446 |
447 // the parameter of the matrix is converted into a sparse matrix | 447 // the parameter of the matrix is converted into a sparse matrix |
448 //(if necessary) | 448 //(if necessary) |
473 gripe_square_matrix_required ("symrcm"); | 473 gripe_square_matrix_required ("symrcm"); |
474 return retval; | 474 return retval; |
475 } | 475 } |
476 | 476 |
477 if (nr == 0 && nc == 0) | 477 if (nr == 0 && nc == 0) |
478 return octave_value (NDArray (dim_vector (1, 0))); | 478 return ovl (NDArray (dim_vector (1, 0))); |
479 | 479 |
480 // sizes of the heaps | 480 // sizes of the heaps |
481 octave_idx_type s = 0; | 481 octave_idx_type s = 0; |
482 | 482 |
483 // head- and tail-indices for the queue | 483 // head- and tail-indices for the queue |
502 // the return value corresponds to the identity permutation | 502 // the return value corresponds to the identity permutation |
503 if (max_deg == 0) | 503 if (max_deg == 0) |
504 { | 504 { |
505 for (octave_idx_type i = 0; i < N; i++) | 505 for (octave_idx_type i = 0; i < N; i++) |
506 P(i) = i; | 506 P(i) = i; |
507 return octave_value (P); | 507 |
508 return ovl (P); | |
508 } | 509 } |
509 | 510 |
510 // a heap for the a node's neighbors. The number of neighbors is | 511 // a heap for the a node's neighbors. The number of neighbors is |
511 // limited by the maximum degree max_deg: | 512 // limited by the maximum degree max_deg: |
512 OCTAVE_LOCAL_BUFFER (CMK_Node, S, max_deg); | 513 OCTAVE_LOCAL_BUFFER (CMK_Node, S, max_deg); |
691 s = N / 2 - 1; | 692 s = N / 2 - 1; |
692 for (octave_idx_type i = 0, j = N - 1; i <= s; i++, j--) | 693 for (octave_idx_type i = 0, j = N - 1; i <= s; i++, j--) |
693 std::swap (P.elem (i), P.elem (j)); | 694 std::swap (P.elem (i), P.elem (j)); |
694 | 695 |
695 // increment all indices, since Octave is not C | 696 // increment all indices, since Octave is not C |
696 return octave_value (P+1); | 697 return ovl (P+1); |
697 } | 698 } |