comparison scripts/special-matrix/pascal.m @ 30875:5d3faba0342e

doc: Ensure documentation lists output argument when it exists for all m-files. For new users of Octave it is best to show explicit calling forms in the documentation and to show a return argument when it exists. * bp-table.cc, shift.m, accumarray.m, accumdim.m, bincoeff.m, bitcmp.m, bitget.m, bitset.m, blkdiag.m, celldisp.m, cplxpair.m, dblquad.m, flip.m, fliplr.m, flipud.m, idivide.m, int2str.m, interpft.m, logspace.m, num2str.m, polyarea.m, postpad.m, prepad.m, randi.m, repmat.m, rng.m, rot90.m, rotdim.m, structfun.m, triplequad.m, uibuttongroup.m, uicontrol.m, uipanel.m, uipushtool.m, uitoggletool.m, uitoolbar.m, waitforbuttonpress.m, help.m, __additional_help_message__.m, hsv.m, im2double.m, im2frame.m, javachk.m, usejava.m, argnames.m, char.m, formula.m, inline.m, __vectorize__.m, findstr.m, flipdim.m, strmatch.m, vectorize.m, commutation_matrix.m, cond.m, cross.m, duplication_matrix.m, expm.m, orth.m, rank.m, rref.m, trace.m, vech.m, cast.m, compare_versions.m, delete.m, dir.m, fileattrib.m, grabcode.m, gunzip.m, inputname.m, license.m, list_primes.m, ls.m, mexext.m, movefile.m, namelengthmax.m, nargoutchk.m, nthargout.m, substruct.m, swapbytes.m, ver.m, verLessThan.m, what.m, fminunc.m, fsolve.m, fzero.m, optimget.m, __fdjac__.m, matlabroot.m, savepath.m, campos.m, camroll.m, camtarget.m, camup.m, camva.m, camzoom.m, clabel.m, diffuse.m, legend.m, orient.m, rticks.m, specular.m, thetaticks.m, xlim.m, xtickangle.m, xticklabels.m, xticks.m, ylim.m, ytickangle.m, yticklabels.m, yticks.m, zlim.m, ztickangle.m, zticklabels.m, zticks.m, ellipsoid.m, isocolors.m, isonormals.m, stairs.m, surfnorm.m, __actual_axis_position__.m, __pltopt__.m, close.m, graphics_toolkit.m, pan.m, print.m, printd.m, __ghostscript__.m, __gnuplot_print__.m, __opengl_print__.m, rotate3d.m, subplot.m, zoom.m, compan.m, conv.m, poly.m, polyaffine.m, polyder.m, polyint.m, polyout.m, polyreduce.m, polyvalm.m, roots.m, prefdir.m, prefsfile.m, profexplore.m, profexport.m, profshow.m, powerset.m, unique.m, arch_rnd.m, arma_rnd.m, autoreg_matrix.m, bartlett.m, blackman.m, detrend.m, durbinlevinson.m, fftconv.m, fftfilt.m, fftshift.m, fractdiff.m, hamming.m, hanning.m, hurst.m, ifftshift.m, rectangle_lw.m, rectangle_sw.m, triangle_lw.m, sinc.m, sinetone.m, sinewave.m, spectral_adf.m, spectral_xdf.m, spencer.m, ilu.m, __sprand__.m, sprand.m, sprandn.m, sprandsym.m, treelayout.m, beta.m, betainc.m, betaincinv.m, betaln.m, cosint.m, expint.m, factorial.m, gammainc.m, gammaincinv.m, lcm.m, nthroot.m, perms.m, reallog.m, realpow.m, realsqrt.m, sinint.m, hadamard.m, hankel.m, hilb.m, invhilb.m, magic.m, pascal.m, rosser.m, toeplitz.m, vander.m, wilkinson.m, center.m, corr.m, cov.m, discrete_cdf.m, discrete_inv.m, discrete_pdf.m, discrete_rnd.m, empirical_cdf.m, empirical_inv.m, empirical_pdf.m, empirical_rnd.m, kendall.m, kurtosis.m, mad.m, mean.m, meansq.m, median.m, mode.m, moment.m, range.m, ranks.m, run_count.m, skewness.m, spearman.m, statistics.m, std.m, base2dec.m, bin2dec.m, blanks.m, cstrcat.m, deblank.m, dec2base.m, dec2bin.m, dec2hex.m, hex2dec.m, index.m, regexptranslate.m, rindex.m, strcat.m, strjust.m, strtrim.m, strtrunc.m, substr.m, untabify.m, __have_feature__.m, __prog_output_assert__.m, __run_test_suite__.m, example.m, fail.m, asctime.m, calendar.m, ctime.m, date.m, etime.m: Add return arguments to @deftypefn macros where they were missing. Rename variables in functions (particularly generic "retval") to match documentation. Rename some return variables for (hopefully) better clarity (e.g., 'ax' to 'hax' to indicate it is a graphics handle to an axes object).
author Rik <rik@octave.org>
date Wed, 30 Mar 2022 20:40:27 -0700
parents 796f54d4ddbf
children 597f3ee61a48
comparison
equal deleted inserted replaced
30874:2b07748dbae3 30875:5d3faba0342e
22 ## <https://www.gnu.org/licenses/>. 22 ## <https://www.gnu.org/licenses/>.
23 ## 23 ##
24 ######################################################################## 24 ########################################################################
25 25
26 ## -*- texinfo -*- 26 ## -*- texinfo -*-
27 ## @deftypefn {} {} pascal (@var{n}) 27 ## @deftypefn {} {@var{P} =} pascal (@var{n})
28 ## @deftypefnx {} {} pascal (@var{n}, @var{t}) 28 ## @deftypefnx {} {@var{P} =} pascal (@var{n}, @var{t})
29 ## Return the Pascal matrix of order @var{n} if @code{@var{t} = 0}. 29 ## Return the Pascal matrix of order @var{n} if @code{@var{t} = 0}.
30 ## 30 ##
31 ## The default value of @var{t} is 0. 31 ## The default value of @var{t} is 0.
32 ## 32 ##
33 ## When @code{@var{t} = 1}, return the pseudo-lower triangular 33 ## When @code{@var{t} = 1}, return the pseudo-lower triangular
43 ## That is, @code{pascal (@var{n}, 2) ^ 3 == eye (@var{n})}. 43 ## That is, @code{pascal (@var{n}, 2) ^ 3 == eye (@var{n})}.
44 ## 44 ##
45 ## @seealso{chol} 45 ## @seealso{chol}
46 ## @end deftypefn 46 ## @end deftypefn
47 47
48 function retval = pascal (n, t = 0) 48 function P = pascal (n, t = 0)
49 49
50 if (nargin < 1) 50 if (nargin < 1)
51 print_usage (); 51 print_usage ();
52 elseif (! (isscalar (n) && isscalar (t))) 52 elseif (! (isscalar (n) && isscalar (t)))
53 error ("pascal: N and T must be scalars"); 53 error ("pascal: N and T must be scalars");
54 elseif (! any (t == [-1, 0, 1, 2])) 54 elseif (! any (t == [-1, 0, 1, 2]))
55 error ("pascal: T must be -1, 0, 1, or 2, found %d", t); 55 error ("pascal: T must be -1, 0, 1, or 2, found %d", t);
56 endif 56 endif
57 57
58 retval = zeros (n); 58 P = zeros (n);
59 if (n > 0) 59 if (n > 0)
60 retval(:,1) = 1; 60 P(:,1) = 1;
61 endif 61 endif
62 62
63 if (t == -1) 63 if (t == -1)
64 for j = 2:n 64 for j = 2:n
65 retval(j:n,j) = cumsum (retval(j-1:n-1,j-1)); 65 P(j:n,j) = cumsum (P(j-1:n-1,j-1));
66 endfor 66 endfor
67 else 67 else
68 for j = 2:n 68 for j = 2:n
69 retval(j:n,j) = -cumsum (retval(j-1:n-1,j-1)); 69 P(j:n,j) = -cumsum (P(j-1:n-1,j-1));
70 endfor 70 endfor
71 endif 71 endif
72 72
73 if (t == 0) 73 if (t == 0)
74 retval = retval*retval'; 74 P = P*P';
75 elseif (t == 2) 75 elseif (t == 2)
76 retval = rot90 (retval, 3); 76 P = rot90 (P, 3);
77 if (rem (n,2) != 1) 77 if (rem (n,2) != 1)
78 retval *= -1; 78 P *= -1;
79 endif 79 endif
80 endif 80 endif
81 81
82 endfunction 82 endfunction
83 83