annotate scripts/legacy/@inline/vectorize.m @ 30564:796f54d4ddbf stable

update Octave Project Developers copyright for the new year In files that have the "Octave Project Developers" copyright notice, update for 2021. In all .txi and .texi files except gpl.txi and gpl.texi in the doc/liboctave and doc/interpreter directories, change the copyright to "Octave Project Developers", the same as used for other source files. Update copyright notices for 2022 (not done since 2019). For gpl.txi and gpl.texi, change the copyright notice to be "Free Software Foundation, Inc." and leave the date at 2007 only because this file only contains the text of the GPL, not anything created by the Octave Project Developers. Add Paul Thomas to contributors.in.
author John W. Eaton <jwe@octave.org>
date Tue, 28 Dec 2021 18:22:40 -0500
parents 7854d5752dd2
children e1788b1a315f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
28459
0d56bfb63b90 add copyright notices omitted from some @inline class methods
John W. Eaton <jwe@octave.org>
parents: 28456
diff changeset
1 ########################################################################
0d56bfb63b90 add copyright notices omitted from some @inline class methods
John W. Eaton <jwe@octave.org>
parents: 28456
diff changeset
2 ##
30564
796f54d4ddbf update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
3 ## Copyright (C) 2020-2022 The Octave Project Developers
28459
0d56bfb63b90 add copyright notices omitted from some @inline class methods
John W. Eaton <jwe@octave.org>
parents: 28456
diff changeset
4 ##
0d56bfb63b90 add copyright notices omitted from some @inline class methods
John W. Eaton <jwe@octave.org>
parents: 28456
diff changeset
5 ## See the file COPYRIGHT.md in the top-level directory of this
0d56bfb63b90 add copyright notices omitted from some @inline class methods
John W. Eaton <jwe@octave.org>
parents: 28456
diff changeset
6 ## distribution or <https://octave.org/copyright/>.
0d56bfb63b90 add copyright notices omitted from some @inline class methods
John W. Eaton <jwe@octave.org>
parents: 28456
diff changeset
7 ##
0d56bfb63b90 add copyright notices omitted from some @inline class methods
John W. Eaton <jwe@octave.org>
parents: 28456
diff changeset
8 ## This file is part of Octave.
0d56bfb63b90 add copyright notices omitted from some @inline class methods
John W. Eaton <jwe@octave.org>
parents: 28456
diff changeset
9 ##
0d56bfb63b90 add copyright notices omitted from some @inline class methods
John W. Eaton <jwe@octave.org>
parents: 28456
diff changeset
10 ## Octave is free software: you can redistribute it and/or modify it
0d56bfb63b90 add copyright notices omitted from some @inline class methods
John W. Eaton <jwe@octave.org>
parents: 28456
diff changeset
11 ## under the terms of the GNU General Public License as published by
0d56bfb63b90 add copyright notices omitted from some @inline class methods
John W. Eaton <jwe@octave.org>
parents: 28456
diff changeset
12 ## the Free Software Foundation, either version 3 of the License, or
0d56bfb63b90 add copyright notices omitted from some @inline class methods
John W. Eaton <jwe@octave.org>
parents: 28456
diff changeset
13 ## (at your option) any later version.
0d56bfb63b90 add copyright notices omitted from some @inline class methods
John W. Eaton <jwe@octave.org>
parents: 28456
diff changeset
14 ##
0d56bfb63b90 add copyright notices omitted from some @inline class methods
John W. Eaton <jwe@octave.org>
parents: 28456
diff changeset
15 ## Octave is distributed in the hope that it will be useful, but
0d56bfb63b90 add copyright notices omitted from some @inline class methods
John W. Eaton <jwe@octave.org>
parents: 28456
diff changeset
16 ## WITHOUT ANY WARRANTY; without even the implied warranty of
0d56bfb63b90 add copyright notices omitted from some @inline class methods
John W. Eaton <jwe@octave.org>
parents: 28456
diff changeset
17 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0d56bfb63b90 add copyright notices omitted from some @inline class methods
John W. Eaton <jwe@octave.org>
parents: 28456
diff changeset
18 ## GNU General Public License for more details.
0d56bfb63b90 add copyright notices omitted from some @inline class methods
John W. Eaton <jwe@octave.org>
parents: 28456
diff changeset
19 ##
0d56bfb63b90 add copyright notices omitted from some @inline class methods
John W. Eaton <jwe@octave.org>
parents: 28456
diff changeset
20 ## You should have received a copy of the GNU General Public License
0d56bfb63b90 add copyright notices omitted from some @inline class methods
John W. Eaton <jwe@octave.org>
parents: 28456
diff changeset
21 ## along with Octave; see the file COPYING. If not, see
0d56bfb63b90 add copyright notices omitted from some @inline class methods
John W. Eaton <jwe@octave.org>
parents: 28456
diff changeset
22 ## <https://www.gnu.org/licenses/>.
0d56bfb63b90 add copyright notices omitted from some @inline class methods
John W. Eaton <jwe@octave.org>
parents: 28456
diff changeset
23 ##
0d56bfb63b90 add copyright notices omitted from some @inline class methods
John W. Eaton <jwe@octave.org>
parents: 28456
diff changeset
24 ########################################################################
0d56bfb63b90 add copyright notices omitted from some @inline class methods
John W. Eaton <jwe@octave.org>
parents: 28456
diff changeset
25
28427
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
26 ## -*- texinfo -*-
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
27 ## @deftypefn {} {} vectorize (@var{fun})
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
28 ## Create a vectorized version of the inline function @var{fun} by
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
29 ## replacing all occurrences of @code{*}, @code{/}, etc., with
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
30 ## @code{.*}, @code{./}, etc.
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
31 ##
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
32 ## This may be useful, for example, when using inline functions with
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
33 ## numerical integration or optimization where a vector-valued function
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
34 ## is expected.
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
35 ##
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
36 ## @example
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
37 ## @group
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
38 ## fcn = vectorize (inline ("x^2 - 1"))
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
39 ## @result{} fcn = f(x) = x.^2 - 1
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
40 ## quadv (fcn, 0, 3)
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
41 ## @result{} 6
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
42 ## @end group
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
43 ## @end example
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
44 ## @seealso{inline, formula, argnames}
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
45 ## @end deftypefn
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
46
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
47 ## The following function was translated directly from the original C++
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
48 ## version. Yes, it will be slow, but the use of inline functions is
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
49 ## strongly discouraged anyway, and most expressions will probably be
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
50 ## short. It may also be buggy. Well, don't use this object! Use
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
51 ## function handles instead!
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
52
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
53 function fcn = vectorize (obj)
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
54
28891
de5f2f9a64ff maint: Use same coding style when checking for a minimum of 1 input.
Rik <rik@octave.org>
parents: 28459
diff changeset
55 if (nargin < 1)
28427
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
56 print_usage ();
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
57 endif
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
58
28456
53d8e7ca99c5 revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents: 28427
diff changeset
59 fcn = inline (__vectorize__ (obj.expr));
28427
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
60
7a8c69c4eb55 convert obsolete octave_fcn_inline object to @inline class
John W. Eaton <jwe@octave.org>
parents:
diff changeset
61 endfunction