Mercurial > octave
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 |