annotate libinterp/corefcn/Cell.h @ 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 aef11bb4e6d1
children aac27ad79be6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
1 ////////////////////////////////////////////////////////////////////////
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
2 //
30564
796f54d4ddbf update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents: 29572
diff changeset
3 // Copyright (C) 1999-2022 The Octave Project Developers
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
4 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
5 // See the file COPYRIGHT.md in the top-level directory of this
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
6 // distribution or <https://octave.org/copyright/>.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
7 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
8 // This file is part of Octave.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
9 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
10 // Octave is free software: you can redistribute it and/or modify it
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
11 // under the terms of the GNU General Public License as published by
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
12 // the Free Software Foundation, either version 3 of the License, or
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
13 // (at your option) any later version.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
14 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
15 // Octave is distributed in the hope that it will be useful, but
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
16 // WITHOUT ANY WARRANTY; without even the implied warranty of
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
18 // GNU General Public License for more details.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
19 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
20 // You should have received a copy of the GNU General Public License
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
21 // along with Octave; see the file COPYING. If not, see
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
22 // <https://www.gnu.org/licenses/>.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
23 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
24 ////////////////////////////////////////////////////////////////////////
3353
6b36317855ff [project @ 1999-11-16 16:13:49 by jwe]
jwe
parents:
diff changeset
25
20791
f7084eae3318 maint: Use Octave coding conventions for #if statements.
Rik <rik@octave.org>
parents: 19697
diff changeset
26 #if ! defined (octave_Cell_h)
17822
ebb3ef964372 maint: Use common #define syntax "octave_filename_h" in h_files.
Rik <rik@octave.org>
parents: 17787
diff changeset
27 #define octave_Cell_h 1
3353
6b36317855ff [project @ 1999-11-16 16:13:49 by jwe]
jwe
parents:
diff changeset
28
21244
1473547f50f5 include octave-config.h in public header files
John W. Eaton <jwe@octave.org>
parents: 21139
diff changeset
29 #include "octave-config.h"
1473547f50f5 include octave-config.h in public header files
John W. Eaton <jwe@octave.org>
parents: 21139
diff changeset
30
28431
0ffae065ca03 new cellstring constructor
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
31 #include <list>
3353
6b36317855ff [project @ 1999-11-16 16:13:49 by jwe]
jwe
parents:
diff changeset
32 #include <string>
6b36317855ff [project @ 1999-11-16 16:13:49 by jwe]
jwe
parents:
diff changeset
33
9732
b4fdfee405b5 remove ArrayN<T> + fix nonhom. diag-scalar ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8920
diff changeset
34 #include "Array.h"
3353
6b36317855ff [project @ 1999-11-16 16:13:49 by jwe]
jwe
parents:
diff changeset
35 #include "str-vec.h"
8579
7e0f36dfefbe implement octave_value_list using Array
Jaroslav Hajek <highegg@gmail.com>
parents: 8333
diff changeset
36 #include "ov.h"
3353
6b36317855ff [project @ 1999-11-16 16:13:49 by jwe]
jwe
parents:
diff changeset
37
8579
7e0f36dfefbe implement octave_value_list using Array
Jaroslav Hajek <highegg@gmail.com>
parents: 8333
diff changeset
38 class octave_value_list;
3353
6b36317855ff [project @ 1999-11-16 16:13:49 by jwe]
jwe
parents:
diff changeset
39
6b36317855ff [project @ 1999-11-16 16:13:49 by jwe]
jwe
parents:
diff changeset
40 class
6169
7ee64ed645a0 [project @ 2006-11-15 16:12:57 by jwe]
jwe
parents: 6116
diff changeset
41 OCTINTERP_API
9732
b4fdfee405b5 remove ArrayN<T> + fix nonhom. diag-scalar ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8920
diff changeset
42 Cell : public Array<octave_value>
3353
6b36317855ff [project @ 1999-11-16 16:13:49 by jwe]
jwe
parents:
diff changeset
43 {
6b36317855ff [project @ 1999-11-16 16:13:49 by jwe]
jwe
parents:
diff changeset
44 public:
6b36317855ff [project @ 1999-11-16 16:13:49 by jwe]
jwe
parents:
diff changeset
45
27023
fc256e9d882e use default ctors, dtors, and assignment ops in Matrix, intNDArray, and Cell
John W. Eaton <jwe@octave.org>
parents: 26376
diff changeset
46 Cell (void) = default;
fc256e9d882e use default ctors, dtors, and assignment ops in Matrix, intNDArray, and Cell
John W. Eaton <jwe@octave.org>
parents: 26376
diff changeset
47
fc256e9d882e use default ctors, dtors, and assignment ops in Matrix, intNDArray, and Cell
John W. Eaton <jwe@octave.org>
parents: 26376
diff changeset
48 Cell (const Cell& c) = default;
fc256e9d882e use default ctors, dtors, and assignment ops in Matrix, intNDArray, and Cell
John W. Eaton <jwe@octave.org>
parents: 26376
diff changeset
49
fc256e9d882e use default ctors, dtors, and assignment ops in Matrix, intNDArray, and Cell
John W. Eaton <jwe@octave.org>
parents: 26376
diff changeset
50 Cell& operator = (const Cell& c) = default;
fc256e9d882e use default ctors, dtors, and assignment ops in Matrix, intNDArray, and Cell
John W. Eaton <jwe@octave.org>
parents: 26376
diff changeset
51
fc256e9d882e use default ctors, dtors, and assignment ops in Matrix, intNDArray, and Cell
John W. Eaton <jwe@octave.org>
parents: 26376
diff changeset
52 ~Cell (void) = default;
3928
e8627dc4bdf2 [project @ 2002-05-03 19:56:01 by jwe]
jwe
parents: 3354
diff changeset
53
e8627dc4bdf2 [project @ 2002-05-03 19:56:01 by jwe]
jwe
parents: 3354
diff changeset
54 Cell (const octave_value& val)
9732
b4fdfee405b5 remove ArrayN<T> + fix nonhom. diag-scalar ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8920
diff changeset
55 : Array<octave_value> (dim_vector (1, 1), val) { }
4513
508238e65af7 [project @ 2003-09-19 21:40:57 by jwe]
jwe
parents: 4219
diff changeset
56
8579
7e0f36dfefbe implement octave_value_list using Array
Jaroslav Hajek <highegg@gmail.com>
parents: 8333
diff changeset
57 Cell (const octave_value_list& ovl);
3353
6b36317855ff [project @ 1999-11-16 16:13:49 by jwe]
jwe
parents:
diff changeset
58
7209
f06b8150fe56 [project @ 2007-11-28 05:46:58 by jwe]
jwe
parents: 7017
diff changeset
59 Cell (octave_idx_type n, octave_idx_type m,
14616
13cc11418393 improve handling of default resize fill value for arrays
John W. Eaton <jwe@octave.org>
parents: 14557
diff changeset
60 const octave_value& val = Matrix ())
9732
b4fdfee405b5 remove ArrayN<T> + fix nonhom. diag-scalar ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8920
diff changeset
61 : Array<octave_value> (dim_vector (n, m), val) { }
3353
6b36317855ff [project @ 1999-11-16 16:13:49 by jwe]
jwe
parents:
diff changeset
62
14616
13cc11418393 improve handling of default resize fill value for arrays
John W. Eaton <jwe@octave.org>
parents: 14557
diff changeset
63 Cell (const dim_vector& dv, const octave_value& val = Matrix ())
9732
b4fdfee405b5 remove ArrayN<T> + fix nonhom. diag-scalar ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8920
diff changeset
64 : Array<octave_value> (dv, val) { }
3354
87721841efd7 [project @ 1999-11-17 19:06:11 by jwe]
jwe
parents: 3353
diff changeset
65
4567
fc30061d01da [project @ 2003-10-29 20:11:15 by jwe]
jwe
parents: 4563
diff changeset
66 Cell (const Array<octave_value>& c)
9732
b4fdfee405b5 remove ArrayN<T> + fix nonhom. diag-scalar ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8920
diff changeset
67 : Array<octave_value> (c) { }
4567
fc30061d01da [project @ 2003-10-29 20:11:15 by jwe]
jwe
parents: 4563
diff changeset
68
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5105
diff changeset
69 Cell (const Array<octave_value>& c, octave_idx_type nr, octave_idx_type nc)
9732
b4fdfee405b5 remove ArrayN<T> + fix nonhom. diag-scalar ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8920
diff changeset
70 : Array<octave_value> (c, dim_vector (nr, nc)) { }
3933
f9ea3dcf58ee [project @ 2002-05-15 03:21:00 by jwe]
jwe
parents: 3928
diff changeset
71
5805
5bfb24f90bdd [project @ 2006-05-10 21:15:37 by jwe]
jwe
parents: 5775
diff changeset
72 Cell (const string_vector& sv, bool trim = false);
4216
e613ffa9f0e6 [project @ 2002-12-04 17:37:09 by jwe]
jwe
parents: 4192
diff changeset
73
23677
66c4d224f7cb use generic template for construction from standard containers
John W. Eaton <jwe@octave.org>
parents: 23575
diff changeset
74 // Constructor for standard containers. V must be convertible to an
66c4d224f7cb use generic template for construction from standard containers
John W. Eaton <jwe@octave.org>
parents: 23575
diff changeset
75 // octave_value object.
66c4d224f7cb use generic template for construction from standard containers
John W. Eaton <jwe@octave.org>
parents: 23575
diff changeset
76 template <typename V, template <typename...> class C>
66c4d224f7cb use generic template for construction from standard containers
John W. Eaton <jwe@octave.org>
parents: 23575
diff changeset
77 explicit
66c4d224f7cb use generic template for construction from standard containers
John W. Eaton <jwe@octave.org>
parents: 23575
diff changeset
78 Cell (const C<V>& container)
66c4d224f7cb use generic template for construction from standard containers
John W. Eaton <jwe@octave.org>
parents: 23575
diff changeset
79 : Array<octave_value> ()
66c4d224f7cb use generic template for construction from standard containers
John W. Eaton <jwe@octave.org>
parents: 23575
diff changeset
80 {
29572
aef11bb4e6d1 use std::size_t and std::ptrdiff_t in C++ code (bug #60471)
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
81 std::size_t n = container.size ();
23677
66c4d224f7cb use generic template for construction from standard containers
John W. Eaton <jwe@octave.org>
parents: 23575
diff changeset
82
66c4d224f7cb use generic template for construction from standard containers
John W. Eaton <jwe@octave.org>
parents: 23575
diff changeset
83 if (n > 0)
66c4d224f7cb use generic template for construction from standard containers
John W. Eaton <jwe@octave.org>
parents: 23575
diff changeset
84 {
66c4d224f7cb use generic template for construction from standard containers
John W. Eaton <jwe@octave.org>
parents: 23575
diff changeset
85 resize (dim_vector (n, 1));
66c4d224f7cb use generic template for construction from standard containers
John W. Eaton <jwe@octave.org>
parents: 23575
diff changeset
86
66c4d224f7cb use generic template for construction from standard containers
John W. Eaton <jwe@octave.org>
parents: 23575
diff changeset
87 octave_idx_type i = 0;
66c4d224f7cb use generic template for construction from standard containers
John W. Eaton <jwe@octave.org>
parents: 23575
diff changeset
88
66c4d224f7cb use generic template for construction from standard containers
John W. Eaton <jwe@octave.org>
parents: 23575
diff changeset
89 for (const auto& val : container)
66c4d224f7cb use generic template for construction from standard containers
John W. Eaton <jwe@octave.org>
parents: 23575
diff changeset
90 elem(i++,0) = val;
66c4d224f7cb use generic template for construction from standard containers
John W. Eaton <jwe@octave.org>
parents: 23575
diff changeset
91 }
66c4d224f7cb use generic template for construction from standard containers
John W. Eaton <jwe@octave.org>
parents: 23575
diff changeset
92 }
11037
e7864673c31f new Cell (std::list<std::string>&) constructor
John W. Eaton <jwe@octave.org>
parents: 10757
diff changeset
93
28431
0ffae065ca03 new cellstring constructor
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
94 Cell (const std::list<std::string>& sl);
0ffae065ca03 new cellstring constructor
John W. Eaton <jwe@octave.org>
parents: 27923
diff changeset
95
8732
a669df7beb73 [mq]: x
John W. Eaton <jwe@octave.org>
parents: 8679
diff changeset
96 Cell (const Array<std::string>& sa);
a669df7beb73 [mq]: x
John W. Eaton <jwe@octave.org>
parents: 8679
diff changeset
97
6116
b64fb24bf4a0 [project @ 2006-10-27 18:04:49 by jwe]
jwe
parents: 5805
diff changeset
98 Cell (const dim_vector& dv, const string_vector& sv, bool trim = false);
b64fb24bf4a0 [project @ 2006-10-27 18:04:49 by jwe]
jwe
parents: 5805
diff changeset
99
23575
e95738a119da maint: Deprecate is_cellstr and replace with iscellstr.
Rik <rik@octave.org>
parents: 23355
diff changeset
100 bool iscellstr (void) const;
6116
b64fb24bf4a0 [project @ 2006-10-27 18:04:49 by jwe]
jwe
parents: 5805
diff changeset
101
10065
64a06079cae4 improve cellstr cache implementation
Jaroslav Hajek <highegg@gmail.com>
parents: 9813
diff changeset
102 Array<std::string> cellstr_value (void) const;
64a06079cae4 improve cellstr cache implementation
Jaroslav Hajek <highegg@gmail.com>
parents: 9813
diff changeset
103
23355
08db4e9dd149 * Cell.h, Cell.cc (Cell::string_vector_value): New function.
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
104 string_vector string_vector_value (void) const;
08db4e9dd149 * Cell.h, Cell.cc (Cell::string_vector_value): New function.
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
105
10649
64472dd48517 cosmetic changes in Cell interface
Jaroslav Hajek <highegg@gmail.com>
parents: 10521
diff changeset
106 using Array<octave_value>::index;
64472dd48517 cosmetic changes in Cell interface
Jaroslav Hajek <highegg@gmail.com>
parents: 10521
diff changeset
107
4513
508238e65af7 [project @ 2003-09-19 21:40:57 by jwe]
jwe
parents: 4219
diff changeset
108 Cell index (const octave_value_list& idx, bool resize_ok = false) const;
508238e65af7 [project @ 2003-09-19 21:40:57 by jwe]
jwe
parents: 4219
diff changeset
109
10649
64472dd48517 cosmetic changes in Cell interface
Jaroslav Hajek <highegg@gmail.com>
parents: 10521
diff changeset
110 using Array<octave_value>::delete_elements;
64472dd48517 cosmetic changes in Cell interface
Jaroslav Hajek <highegg@gmail.com>
parents: 10521
diff changeset
111
64472dd48517 cosmetic changes in Cell interface
Jaroslav Hajek <highegg@gmail.com>
parents: 10521
diff changeset
112 void delete_elements (const octave_value_list& idx);
8175
977d5204cf67 fix null assignment for structs
Jaroslav Hajek <highegg@gmail.com>
parents: 7620
diff changeset
113
10649
64472dd48517 cosmetic changes in Cell interface
Jaroslav Hajek <highegg@gmail.com>
parents: 10521
diff changeset
114 using Array<octave_value>::assign;
64472dd48517 cosmetic changes in Cell interface
Jaroslav Hajek <highegg@gmail.com>
parents: 10521
diff changeset
115
64472dd48517 cosmetic changes in Cell interface
Jaroslav Hajek <highegg@gmail.com>
parents: 10521
diff changeset
116 void assign (const octave_value_list& idx, const Cell& rhs,
14616
13cc11418393 improve handling of default resize fill value for arrays
John W. Eaton <jwe@octave.org>
parents: 14557
diff changeset
117 const octave_value& fill_val = Matrix ());
8290
7cbe01c21986 improve dense array indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 8175
diff changeset
118
4901
35bfb4e0b96b [project @ 2004-06-14 18:33:02 by jwe]
jwe
parents: 4806
diff changeset
119 Cell reshape (const dim_vector& new_dims) const
17787
175b392e91fe Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents: 17744
diff changeset
120 { return Array<octave_value>::reshape (new_dims); }
4901
35bfb4e0b96b [project @ 2004-06-14 18:33:02 by jwe]
jwe
parents: 4806
diff changeset
121
5602
dfa2da0563e5 [project @ 2006-01-31 03:43:40 by jwe]
jwe
parents: 5570
diff changeset
122 octave_idx_type nnz (void) const;
dfa2da0563e5 [project @ 2006-01-31 03:43:40 by jwe]
jwe
parents: 5570
diff changeset
123
5570
3074a549d644 [project @ 2005-12-08 21:01:50 by jwe]
jwe
parents: 5307
diff changeset
124 Cell column (octave_idx_type i) const;
3074a549d644 [project @ 2005-12-08 21:01:50 by jwe]
jwe
parents: 5307
diff changeset
125
5775
ace8d8d26933 [project @ 2006-04-24 19:13:06 by jwe]
jwe
parents: 5602
diff changeset
126 // FIXME
4932
43f4ebd2704c [project @ 2004-08-05 13:26:10 by jwe]
jwe
parents: 4915
diff changeset
127 boolMatrix all (int /* dim */ = 0) const { return boolMatrix (); }
3933
f9ea3dcf58ee [project @ 2002-05-15 03:21:00 by jwe]
jwe
parents: 3928
diff changeset
128
5775
ace8d8d26933 [project @ 2006-04-24 19:13:06 by jwe]
jwe
parents: 5602
diff changeset
129 // FIXME
4932
43f4ebd2704c [project @ 2004-08-05 13:26:10 by jwe]
jwe
parents: 4915
diff changeset
130 boolMatrix any (int /* dim */ = 0) const { return boolMatrix (); }
3933
f9ea3dcf58ee [project @ 2002-05-15 03:21:00 by jwe]
jwe
parents: 3928
diff changeset
131
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5105
diff changeset
132 Cell concat (const Cell& rb, const Array<octave_idx_type>& ra_idx);
4915
c638c144d4da [project @ 2004-07-23 19:01:22 by jwe]
jwe
parents: 4901
diff changeset
133
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5105
diff changeset
134 Cell& insert (const Cell& a, octave_idx_type r, octave_idx_type c);
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5105
diff changeset
135 Cell& insert (const Cell& a, const Array<octave_idx_type>& ra_idx);
4806
d3bd9c04147f [project @ 2004-03-02 05:12:32 by jwe]
jwe
parents: 4701
diff changeset
136
5775
ace8d8d26933 [project @ 2006-04-24 19:13:06 by jwe]
jwe
parents: 5602
diff changeset
137 // FIXME
8626
1dce30ab0e72 don't convert NaN to logical in bool expressions
John W. Eaton <jwe@octave.org>
parents: 8579
diff changeset
138 bool any_element_is_nan (void) const { return false; }
3933
f9ea3dcf58ee [project @ 2002-05-15 03:21:00 by jwe]
jwe
parents: 3928
diff changeset
139 bool is_true (void) const { return false; }
f9ea3dcf58ee [project @ 2002-05-15 03:21:00 by jwe]
jwe
parents: 3928
diff changeset
140
21573
f3f8e1d3e399 avoid mulitple definitions of static function-scope vars (bug #47372)
John W. Eaton <jwe@octave.org>
parents: 19697
diff changeset
141 octave_value resize_fill_value (void) const;
7530
bb0f2353cff5 new cell array ctype mappers
John W. Eaton <jwe@octave.org>
parents: 7209
diff changeset
142
7620
36594d5bbe13 Move diag function into the octave_value class
David Bateman <dbateman@free.fr>
parents: 7618
diff changeset
143 Cell diag (octave_idx_type k = 0) const;
7618
3209a584e1ac Further type preservation tests and fix of diag for cell arrays
David Bateman <dbateman@free.fr>
parents: 7530
diff changeset
144
14557
e8e86ae3abbc make diag (x, m, n) return a proper diagonal matrix object (bug #36099)
John W. Eaton <jwe@octave.org>
parents: 14138
diff changeset
145 Cell diag (octave_idx_type m, octave_idx_type n) const;
e8e86ae3abbc make diag (x, m, n) return a proper diagonal matrix object (bug #36099)
John W. Eaton <jwe@octave.org>
parents: 14138
diff changeset
146
9813
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
147 Cell xisalnum (void) const { return map (&octave_value::xisalnum); }
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
148 Cell xisalpha (void) const { return map (&octave_value::xisalpha); }
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
149 Cell xisascii (void) const { return map (&octave_value::xisascii); }
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
150 Cell xiscntrl (void) const { return map (&octave_value::xiscntrl); }
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
151 Cell xisdigit (void) const { return map (&octave_value::xisdigit); }
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
152 Cell xisgraph (void) const { return map (&octave_value::xisgraph); }
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
153 Cell xislower (void) const { return map (&octave_value::xislower); }
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
154 Cell xisprint (void) const { return map (&octave_value::xisprint); }
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
155 Cell xispunct (void) const { return map (&octave_value::xispunct); }
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
156 Cell xisspace (void) const { return map (&octave_value::xisspace); }
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
157 Cell xisupper (void) const { return map (&octave_value::xisupper); }
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
158 Cell xisxdigit (void) const { return map (&octave_value::xisxdigit); }
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
159 Cell xtolower (void) const { return map (&octave_value::xtolower); }
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
160 Cell xtoupper (void) const { return map (&octave_value::xtoupper); }
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
161
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
162 private:
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
163
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
164 typedef octave_value (octave_value::*ctype_mapper) (void) const;
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
165
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
166 Cell map (ctype_mapper) const;
3353
6b36317855ff [project @ 1999-11-16 16:13:49 by jwe]
jwe
parents:
diff changeset
167 };
6b36317855ff [project @ 1999-11-16 16:13:49 by jwe]
jwe
parents:
diff changeset
168
21139
538b57866b90 consistently use "typename" intead of "class" in template declarations
John W. Eaton <jwe@octave.org>
parents: 20791
diff changeset
169 template <>
10757
1cc44f3ec814 templated extractors for maps and cells
Jaroslav Hajek <highegg@gmail.com>
parents: 10649
diff changeset
170 inline Cell octave_value_extract<Cell> (const octave_value& v)
17787
175b392e91fe Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents: 17744
diff changeset
171 { return v.cell_value (); }
10757
1cc44f3ec814 templated extractors for maps and cells
Jaroslav Hajek <highegg@gmail.com>
parents: 10649
diff changeset
172
3353
6b36317855ff [project @ 1999-11-16 16:13:49 by jwe]
jwe
parents:
diff changeset
173 #endif