Mercurial > octave
annotate scripts/legacy/__vectorize__.m @ 31548:c8ad083a5802 stable
maint: Clean up m-files before Octave 8.1 release.
* external.txi, oop.txi, Table.h, documentation.cc, gui-preferences-ed.h,
lo-specfun.cc, range.tst : Eliminate triple newlines.
* Map.m, MemoizedFunction.m, delaunayn.m, inputParser.m,
__publish_latex_output__.m, publish.m, unpack.m, fminbnd.m,
__add_default_menu__.m, gammainc.m, gallery.m, hadamard.m, weboptions.m:
Add newline after keyword "function" or before keyword "endfunction" for
readability.
* getaudiodata.m, pkg.m : Add semicolon to end of line for error() statement.
* movegui.m: Combine mutliple calls to set() into one for performance.
* __unimplemented__.m (missing_functions): Remove missing functions that have
been implemented.
* __vectorize__.m, check_default_input.m, betaincinv.m, gammaincinv.m:
Remove semicolon at end of line with "function" declaration.
* weboptions.m: Remove semicolon at end of line with "if" keyword.
* integrate_adaptive.m, factor.m: Use keyword "endif" rather than bare "end".
author | Rik <rik@octave.org> |
---|---|
date | Fri, 25 Nov 2022 21:23:54 -0800 |
parents | b7edac56a810 |
children | 597f3ee61a48 |
rev | line source |
---|---|
28456
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
1 ######################################################################## |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
2 ## |
30564
796f54d4ddbf
update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
29358
diff
changeset
|
3 ## Copyright (C) 2020-2022 The Octave Project Developers |
28456
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
4 ## |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
5 ## See the file COPYRIGHT.md in the top-level directory of this |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
6 ## distribution or <https://octave.org/copyright/>. |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
7 ## |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
8 ## This file is part of Octave. |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
9 ## |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
10 ## Octave is free software: you can redistribute it and/or modify it |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
11 ## under the terms of the GNU General Public License as published by |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
12 ## the Free Software Foundation, either version 3 of the License, or |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
13 ## (at your option) any later version. |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
14 ## |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
15 ## Octave is distributed in the hope that it will be useful, but |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
16 ## WITHOUT ANY WARRANTY; without even the implied warranty of |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
17 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
18 ## GNU General Public License for more details. |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
19 ## |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
20 ## You should have received a copy of the GNU General Public License |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
21 ## along with Octave; see the file COPYING. If not, see |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
22 ## <https://www.gnu.org/licenses/>. |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
23 ## |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
24 ######################################################################## |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
25 |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
26 ## -*- texinfo -*- |
30875
5d3faba0342e
doc: Ensure documentation lists output argument when it exists for all m-files.
Rik <rik@octave.org>
parents:
30564
diff
changeset
|
27 ## @deftypefn {} {@var{new_expr} =} __vectorize__ (@var{expr}) |
28456
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
28 ## Undocumented internal function. |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
29 ## @end deftypefn |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
30 |
30911
b7edac56a810
Add functions to @inline class for Matlab compatibility (Bug #62260).
Rik <rik@octave.org>
parents:
30875
diff
changeset
|
31 ## The following function was translated directly from the original C++ |
b7edac56a810
Add functions to @inline class for Matlab compatibility (Bug #62260).
Rik <rik@octave.org>
parents:
30875
diff
changeset
|
32 ## version. Yes, it will be slow, but its use is strongly discouraged |
b7edac56a810
Add functions to @inline class for Matlab compatibility (Bug #62260).
Rik <rik@octave.org>
parents:
30875
diff
changeset
|
33 ## anyway, and most expressions will probably be short. It may also be |
b7edac56a810
Add functions to @inline class for Matlab compatibility (Bug #62260).
Rik <rik@octave.org>
parents:
30875
diff
changeset
|
34 ## buggy. Well, don't use this function! |
b7edac56a810
Add functions to @inline class for Matlab compatibility (Bug #62260).
Rik <rik@octave.org>
parents:
30875
diff
changeset
|
35 |
31548
c8ad083a5802
maint: Clean up m-files before Octave 8.1 release.
Rik <rik@octave.org>
parents:
30911
diff
changeset
|
36 function new_expr = __vectorize__ (expr) |
28456
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
37 |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
38 new_expr = ""; |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
39 |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
40 len = length (expr); |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
41 i = 1; |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
42 |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
43 while (i <= len) |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
44 c = expr(i); |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
45 |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
46 if (c == "*" || c == "/" || c == "\\" || c == "^") |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
47 if (i > 1 && expr(i-1) != ".") |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
48 new_expr(end+1) = "."; |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
49 endif |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
50 |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
51 ## Special case for ** operator. |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
52 if (c == '*' && i < (len - 1) && expr(i+1) == '*') |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
53 new_expr(end+1) = "*"; |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
54 i++; |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
55 endif |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
56 endif |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
57 |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
58 new_expr(end+1) = c; |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
59 i++; |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
60 |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
61 endwhile |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
62 |
53d8e7ca99c5
revive legacy vectorize function for strings and function handles
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
63 endfunction |