annotate src/ov.h @ 13294:7dce7e110511

make concatenation of class objects work * data.h: New file. * src/Makefile.am (octinclude_HEADERS): Add it to the list. * data.cc (attempt_type_conversion): New static function. (do_class_concat): New function. (do_cat): Use it if any elements of the list are objects. Check whether any elements of the list are objects or cells. Check whether all elements of the list are complex. Check whether the first element of the list is a struct. Maybe convert elements of the list to cells. New tests for horzcat and vertcat. * data.h (do_class_concat): Provide decl. * ov-class.h (octave_class::octave_class): Allow optional parent list. * ov.h, ov.h (octave_value::octave_value (const Octave_map&, const std::string&)): Likewise. * pt-mat.cc (do_class_concat): New static function. (tree_matrix::rvalue1): Use it to concatenate objects.
author John W. Eaton <jwe@octave.org>
date Fri, 07 Oct 2011 22:16:07 -0400
parents 2a8dcb5b3a00
children b1186adb567e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
1 /*
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
2
11523
fd0a3ac60b0e update copyright notices
John W. Eaton <jwe@octave.org>
parents: 10832
diff changeset
3 Copyright (C) 1996-2011 John W. Eaton
fd0a3ac60b0e update copyright notices
John W. Eaton <jwe@octave.org>
parents: 10832
diff changeset
4 Copyright (C) 2009-2010 VZLU Prague
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
5
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
6 This file is part of Octave.
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
7
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
8 Octave is free software; you can redistribute it and/or modify it
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
9 under the terms of the GNU General Public License as published by the
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6974
diff changeset
10 Free Software Foundation; either version 3 of the License, or (at your
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6974
diff changeset
11 option) any later version.
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
12
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
13 Octave is distributed in the hope that it will be useful, but WITHOUT
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
16 for more details.
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
17
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
18 You should have received a copy of the GNU General Public License
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6974
diff changeset
19 along with Octave; see the file COPYING. If not, see
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6974
diff changeset
20 <http://www.gnu.org/licenses/>.
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
21
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
22 */
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
23
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
24 #if !defined (octave_value_h)
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
25 #define octave_value_h 1
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
26
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
27 #include <cstdlib>
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
28
8950
d865363208d6 include <iosfwd> instead of <iostream> in header files
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
29 #include <iosfwd>
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
30 #include <string>
4219
23d06c9e1edd [project @ 2002-12-06 21:29:17 by jwe]
jwe
parents: 4192
diff changeset
31 #include <list>
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
32
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
33 #include "Range.h"
5828
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5785
diff changeset
34 #include "data-conv.h"
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
35 #include "idx-vector.h"
5828
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5785
diff changeset
36 #include "mach-info.h"
5900
c20eb7330d13 [project @ 2006-07-22 08:31:16 by jwe]
jwe
parents: 5895
diff changeset
37 #include "mxarray.h"
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
38 #include "mx-base.h"
2477
3d905d3820a4 [project @ 1996-11-07 16:46:11 by jwe]
jwe
parents: 2475
diff changeset
39 #include "oct-alloc.h"
4254
df5f2e433a11 [project @ 2002-12-31 19:43:07 by jwe]
jwe
parents: 4252
diff changeset
40 #include "oct-time.h"
2942
026f342c2019 [project @ 1997-05-08 02:20:57 by jwe]
jwe
parents: 2916
diff changeset
41 #include "str-vec.h"
026f342c2019 [project @ 1997-05-08 02:20:57 by jwe]
jwe
parents: 2916
diff changeset
42
8676
22462fd58e66 require HDF5 v1.6 API
John W. Eaton <jwe@octave.org>
parents: 8551
diff changeset
43 #include "oct-hdf5.h"
7433
402168152bb9 [project @ 2008-01-31 18:59:09 by dbateman]
dbateman
parents: 7336
diff changeset
44 #include "oct-sort.h"
402168152bb9 [project @ 2008-01-31 18:59:09 by dbateman]
dbateman
parents: 7336
diff changeset
45
3351
8623649c967c [project @ 1999-11-15 16:17:01 by jwe]
jwe
parents: 3340
diff changeset
46 class Cell;
10742
604e13a89c7f initial code for structs rewrite
Jaroslav Hajek <highegg@gmail.com>
parents: 10670
diff changeset
47 class octave_map;
604e13a89c7f initial code for structs rewrite
Jaroslav Hajek <highegg@gmail.com>
parents: 10670
diff changeset
48 class octave_scalar_map;
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
49 class Octave_map;
2903
facd9d10e5c1 [project @ 1997-04-30 03:53:07 by jwe]
jwe
parents: 2891
diff changeset
50 class octave_stream;
2974
ebbc34ff7f66 [project @ 1997-05-15 19:36:16 by jwe]
jwe
parents: 2963
diff changeset
51 class octave_function;
4700
ca3a1d687bba [project @ 2004-01-21 03:28:31 by jwe]
jwe
parents: 4687
diff changeset
52 class octave_user_function;
4342
813effe14ee1 [project @ 2003-02-20 08:35:55 by jwe]
jwe
parents: 4271
diff changeset
53 class octave_fcn_handle;
4933
cd58733c326b [project @ 2004-08-05 16:08:28 by jwe]
jwe
parents: 4930
diff changeset
54 class octave_fcn_inline;
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
55 class octave_value_list;
2979
a3556d2adec9 [project @ 1997-05-15 22:35:37 by jwe]
jwe
parents: 2974
diff changeset
56 class octave_lvalue;
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
57
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
58 #include "ov-base.h"
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
59
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
60 // Constants.
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
61
2427
2f50b24ce84f [project @ 1996-10-25 06:15:28 by jwe]
jwe
parents: 2423
diff changeset
62 class octave_value;
2f50b24ce84f [project @ 1996-10-25 06:15:28 by jwe]
jwe
parents: 2423
diff changeset
63
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
64 class
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5958
diff changeset
65 OCTINTERP_API
2974
ebbc34ff7f66 [project @ 1997-05-15 19:36:16 by jwe]
jwe
parents: 2963
diff changeset
66 octave_value
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
67 {
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
68 public:
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
69
3203
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
70 enum unary_op
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
71 {
6518
952c8b00525e [project @ 2007-04-11 20:50:22 by jwe]
jwe
parents: 6338
diff changeset
72 op_not, // not
952c8b00525e [project @ 2007-04-11 20:50:22 by jwe]
jwe
parents: 6338
diff changeset
73 op_uplus, // uplus
952c8b00525e [project @ 2007-04-11 20:50:22 by jwe]
jwe
parents: 6338
diff changeset
74 op_uminus, // uminus
952c8b00525e [project @ 2007-04-11 20:50:22 by jwe]
jwe
parents: 6338
diff changeset
75 op_transpose, // transpose
952c8b00525e [project @ 2007-04-11 20:50:22 by jwe]
jwe
parents: 6338
diff changeset
76 op_hermitian, // ctranspose
3525
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
77 op_incr,
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
78 op_decr,
3203
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
79 num_unary_ops,
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
80 unknown_unary_op
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
81 };
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
82
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
83 enum binary_op
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
84 {
6518
952c8b00525e [project @ 2007-04-11 20:50:22 by jwe]
jwe
parents: 6338
diff changeset
85 op_add, // plus
952c8b00525e [project @ 2007-04-11 20:50:22 by jwe]
jwe
parents: 6338
diff changeset
86 op_sub, // minus
952c8b00525e [project @ 2007-04-11 20:50:22 by jwe]
jwe
parents: 6338
diff changeset
87 op_mul, // mtimes
952c8b00525e [project @ 2007-04-11 20:50:22 by jwe]
jwe
parents: 6338
diff changeset
88 op_div, // mrdivide
952c8b00525e [project @ 2007-04-11 20:50:22 by jwe]
jwe
parents: 6338
diff changeset
89 op_pow, // mpower
952c8b00525e [project @ 2007-04-11 20:50:22 by jwe]
jwe
parents: 6338
diff changeset
90 op_ldiv, // mldivide
3525
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
91 op_lshift,
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
92 op_rshift,
6518
952c8b00525e [project @ 2007-04-11 20:50:22 by jwe]
jwe
parents: 6338
diff changeset
93 op_lt, // lt
952c8b00525e [project @ 2007-04-11 20:50:22 by jwe]
jwe
parents: 6338
diff changeset
94 op_le, // le
952c8b00525e [project @ 2007-04-11 20:50:22 by jwe]
jwe
parents: 6338
diff changeset
95 op_eq, // eq
952c8b00525e [project @ 2007-04-11 20:50:22 by jwe]
jwe
parents: 6338
diff changeset
96 op_ge, // ge
952c8b00525e [project @ 2007-04-11 20:50:22 by jwe]
jwe
parents: 6338
diff changeset
97 op_gt, // gt
952c8b00525e [project @ 2007-04-11 20:50:22 by jwe]
jwe
parents: 6338
diff changeset
98 op_ne, // ne
952c8b00525e [project @ 2007-04-11 20:50:22 by jwe]
jwe
parents: 6338
diff changeset
99 op_el_mul, // times
952c8b00525e [project @ 2007-04-11 20:50:22 by jwe]
jwe
parents: 6338
diff changeset
100 op_el_div, // rdivide
952c8b00525e [project @ 2007-04-11 20:50:22 by jwe]
jwe
parents: 6338
diff changeset
101 op_el_pow, // power
952c8b00525e [project @ 2007-04-11 20:50:22 by jwe]
jwe
parents: 6338
diff changeset
102 op_el_ldiv, // ldivide
952c8b00525e [project @ 2007-04-11 20:50:22 by jwe]
jwe
parents: 6338
diff changeset
103 op_el_and, // and
952c8b00525e [project @ 2007-04-11 20:50:22 by jwe]
jwe
parents: 6338
diff changeset
104 op_el_or, // or
3525
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
105 op_struct_ref,
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
106 num_binary_ops,
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
107 unknown_binary_op
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
108 };
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
109
7800
5861b95e9879 support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
110 enum compound_binary_op
5861b95e9879 support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
111 {
5861b95e9879 support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
112 // ** compound operations **
11586
12df7854fa7c strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
113 op_trans_mul,
7800
5861b95e9879 support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
114 op_mul_trans,
11586
12df7854fa7c strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
115 op_herm_mul,
7800
5861b95e9879 support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
116 op_mul_herm,
9661
afcf852256d2 optimize / and '\ for triangular matrices
Jaroslav Hajek <highegg@gmail.com>
parents: 9657
diff changeset
117 op_trans_ldiv,
afcf852256d2 optimize / and '\ for triangular matrices
Jaroslav Hajek <highegg@gmail.com>
parents: 9657
diff changeset
118 op_herm_ldiv,
8982
dc6bda6f9994 implement compound logical ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8960
diff changeset
119 op_el_not_and,
dc6bda6f9994 implement compound logical ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8960
diff changeset
120 op_el_not_or,
dc6bda6f9994 implement compound logical ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8960
diff changeset
121 op_el_and_not,
dc6bda6f9994 implement compound logical ops
Jaroslav Hajek <highegg@gmail.com>
parents: 8960
diff changeset
122 op_el_or_not,
7800
5861b95e9879 support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
123 num_compound_binary_ops,
5861b95e9879 support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
124 unknown_compound_binary_op
5861b95e9879 support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
125 };
5861b95e9879 support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
126
2880
0a076230ca87 [project @ 1997-04-24 09:47:41 by jwe]
jwe
parents: 2847
diff changeset
127 enum assign_op
0a076230ca87 [project @ 1997-04-24 09:47:41 by jwe]
jwe
parents: 2847
diff changeset
128 {
3525
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
129 op_asn_eq,
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
130 op_add_eq,
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
131 op_sub_eq,
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
132 op_mul_eq,
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
133 op_div_eq,
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
134 op_ldiv_eq,
4018
a8621d87fbf5 [project @ 2002-08-05 03:17:25 by jwe]
jwe
parents: 4015
diff changeset
135 op_pow_eq,
3525
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
136 op_lshift_eq,
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
137 op_rshift_eq,
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
138 op_el_mul_eq,
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
139 op_el_div_eq,
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
140 op_el_ldiv_eq,
4018
a8621d87fbf5 [project @ 2002-08-05 03:17:25 by jwe]
jwe
parents: 4015
diff changeset
141 op_el_pow_eq,
3525
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
142 op_el_and_eq,
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
143 op_el_or_eq,
2880
0a076230ca87 [project @ 1997-04-24 09:47:41 by jwe]
jwe
parents: 2847
diff changeset
144 num_assign_ops,
0a076230ca87 [project @ 1997-04-24 09:47:41 by jwe]
jwe
parents: 2847
diff changeset
145 unknown_assign_op
0a076230ca87 [project @ 1997-04-24 09:47:41 by jwe]
jwe
parents: 2847
diff changeset
146 };
0a076230ca87 [project @ 1997-04-24 09:47:41 by jwe]
jwe
parents: 2847
diff changeset
147
9607
1be3c73ed7b5 reuse temporary arrays in nested expressions
Jaroslav Hajek <highegg@gmail.com>
parents: 9521
diff changeset
148 static assign_op binary_op_to_assign_op (binary_op);
1be3c73ed7b5 reuse temporary arrays in nested expressions
Jaroslav Hajek <highegg@gmail.com>
parents: 9521
diff changeset
149
3523
b80bbb43a1a9 [project @ 2000-02-02 10:25:52 by jwe]
jwe
parents: 3503
diff changeset
150 static std::string unary_op_as_string (unary_op);
7336
745a8299c2b5 [project @ 2007-12-28 20:56:55 by jwe]
jwe
parents: 7064
diff changeset
151 static std::string unary_op_fcn_name (unary_op);
3203
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
152
3523
b80bbb43a1a9 [project @ 2000-02-02 10:25:52 by jwe]
jwe
parents: 3503
diff changeset
153 static std::string binary_op_as_string (binary_op);
7336
745a8299c2b5 [project @ 2007-12-28 20:56:55 by jwe]
jwe
parents: 7064
diff changeset
154 static std::string binary_op_fcn_name (binary_op);
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
155
7800
5861b95e9879 support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
156 static std::string binary_op_fcn_name (compound_binary_op);
5861b95e9879 support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
157
3523
b80bbb43a1a9 [project @ 2000-02-02 10:25:52 by jwe]
jwe
parents: 3503
diff changeset
158 static std::string assign_op_as_string (assign_op);
2880
0a076230ca87 [project @ 1997-04-24 09:47:41 by jwe]
jwe
parents: 2847
diff changeset
159
3933
f9ea3dcf58ee [project @ 2002-05-15 03:21:00 by jwe]
jwe
parents: 3930
diff changeset
160 static octave_value empty_conv (const std::string& type,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
161 const octave_value& rhs = octave_value ());
3933
f9ea3dcf58ee [project @ 2002-05-15 03:21:00 by jwe]
jwe
parents: 3930
diff changeset
162
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
163 enum magic_colon { magic_colon_t };
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
164
8992
d12f44a5dce3 implement fast octave_value constructor
Jaroslav Hajek <highegg@gmail.com>
parents: 8982
diff changeset
165 octave_value (void)
d12f44a5dce3 implement fast octave_value constructor
Jaroslav Hajek <highegg@gmail.com>
parents: 8982
diff changeset
166 {
d12f44a5dce3 implement fast octave_value constructor
Jaroslav Hajek <highegg@gmail.com>
parents: 8982
diff changeset
167 static octave_base_value nil_rep;
d12f44a5dce3 implement fast octave_value constructor
Jaroslav Hajek <highegg@gmail.com>
parents: 8982
diff changeset
168 rep = &nil_rep;
d12f44a5dce3 implement fast octave_value constructor
Jaroslav Hajek <highegg@gmail.com>
parents: 8982
diff changeset
169 rep->count++;
d12f44a5dce3 implement fast octave_value constructor
Jaroslav Hajek <highegg@gmail.com>
parents: 8982
diff changeset
170 }
d12f44a5dce3 implement fast octave_value constructor
Jaroslav Hajek <highegg@gmail.com>
parents: 8982
diff changeset
171
4254
df5f2e433a11 [project @ 2002-12-31 19:43:07 by jwe]
jwe
parents: 4252
diff changeset
172 octave_value (short int i);
df5f2e433a11 [project @ 2002-12-31 19:43:07 by jwe]
jwe
parents: 4252
diff changeset
173 octave_value (unsigned short int i);
4233
ccfdb55c8156 [project @ 2002-12-20 22:43:54 by jwe]
jwe
parents: 4219
diff changeset
174 octave_value (int i);
4254
df5f2e433a11 [project @ 2002-12-31 19:43:07 by jwe]
jwe
parents: 4252
diff changeset
175 octave_value (unsigned int i);
df5f2e433a11 [project @ 2002-12-31 19:43:07 by jwe]
jwe
parents: 4252
diff changeset
176 octave_value (long int i);
df5f2e433a11 [project @ 2002-12-31 19:43:07 by jwe]
jwe
parents: 4252
diff changeset
177 octave_value (unsigned long int i);
4353
ea4b8c35ac9d [project @ 2003-02-21 21:04:41 by jwe]
jwe
parents: 4346
diff changeset
178
5775
ace8d8d26933 [project @ 2006-04-24 19:13:06 by jwe]
jwe
parents: 5759
diff changeset
179 // FIXME -- these are kluges. They turn into doubles
4353
ea4b8c35ac9d [project @ 2003-02-21 21:04:41 by jwe]
jwe
parents: 4346
diff changeset
180 // internally, which will break for very large values. We just use
ea4b8c35ac9d [project @ 2003-02-21 21:04:41 by jwe]
jwe
parents: 4346
diff changeset
181 // them to store things like 64-bit ino_t, etc, and hope that those
ea4b8c35ac9d [project @ 2003-02-21 21:04:41 by jwe]
jwe
parents: 4346
diff changeset
182 // values are never actually larger than can be represented exactly
ea4b8c35ac9d [project @ 2003-02-21 21:04:41 by jwe]
jwe
parents: 4346
diff changeset
183 // in a double.
ea4b8c35ac9d [project @ 2003-02-21 21:04:41 by jwe]
jwe
parents: 4346
diff changeset
184
ea4b8c35ac9d [project @ 2003-02-21 21:04:41 by jwe]
jwe
parents: 4346
diff changeset
185 #if defined (HAVE_LONG_LONG_INT)
ea4b8c35ac9d [project @ 2003-02-21 21:04:41 by jwe]
jwe
parents: 4346
diff changeset
186 octave_value (long long int i);
ea4b8c35ac9d [project @ 2003-02-21 21:04:41 by jwe]
jwe
parents: 4346
diff changeset
187 #endif
4356
b6ad3db48255 [project @ 2003-02-22 02:57:33 by jwe]
jwe
parents: 4353
diff changeset
188 #if defined (HAVE_UNSIGNED_LONG_LONG_INT)
4353
ea4b8c35ac9d [project @ 2003-02-21 21:04:41 by jwe]
jwe
parents: 4346
diff changeset
189 octave_value (unsigned long long int i);
ea4b8c35ac9d [project @ 2003-02-21 21:04:41 by jwe]
jwe
parents: 4346
diff changeset
190 #endif
ea4b8c35ac9d [project @ 2003-02-21 21:04:41 by jwe]
jwe
parents: 4346
diff changeset
191
4254
df5f2e433a11 [project @ 2002-12-31 19:43:07 by jwe]
jwe
parents: 4252
diff changeset
192 octave_value (octave_time t);
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
193 octave_value (double d);
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
194 octave_value (float d);
9732
b4fdfee405b5 remove ArrayN<T> + fix nonhom. diag-scalar ops
Jaroslav Hajek <highegg@gmail.com>
parents: 9728
diff changeset
195 octave_value (const Array<octave_value>& a, bool is_cs_list = false);
4532
01ee68d18069 [project @ 2003-10-10 00:49:54 by jwe]
jwe
parents: 4513
diff changeset
196 octave_value (const Cell& c, bool is_cs_list = false);
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5781
diff changeset
197 octave_value (const Matrix& m, const MatrixType& t = MatrixType());
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
198 octave_value (const FloatMatrix& m, const MatrixType& t = MatrixType());
4513
508238e65af7 [project @ 2003-09-19 21:40:57 by jwe]
jwe
parents: 4507
diff changeset
199 octave_value (const NDArray& nda);
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
200 octave_value (const FloatNDArray& nda);
9732
b4fdfee405b5 remove ArrayN<T> + fix nonhom. diag-scalar ops
Jaroslav Hajek <highegg@gmail.com>
parents: 9728
diff changeset
201 octave_value (const Array<double>& m);
b4fdfee405b5 remove ArrayN<T> + fix nonhom. diag-scalar ops
Jaroslav Hajek <highegg@gmail.com>
parents: 9728
diff changeset
202 octave_value (const Array<float>& m);
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
203 octave_value (const DiagMatrix& d);
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
204 octave_value (const FloatDiagMatrix& d);
3418
ca92c9d3f882 [project @ 2000-01-12 03:07:47 by jwe]
jwe
parents: 3351
diff changeset
205 octave_value (const RowVector& v);
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
206 octave_value (const FloatRowVector& v);
3418
ca92c9d3f882 [project @ 2000-01-12 03:07:47 by jwe]
jwe
parents: 3351
diff changeset
207 octave_value (const ColumnVector& v);
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
208 octave_value (const FloatColumnVector& v);
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
209 octave_value (const Complex& C);
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
210 octave_value (const FloatComplex& C);
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5781
diff changeset
211 octave_value (const ComplexMatrix& m, const MatrixType& t = MatrixType());
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
212 octave_value (const FloatComplexMatrix& m, const MatrixType& t = MatrixType());
4513
508238e65af7 [project @ 2003-09-19 21:40:57 by jwe]
jwe
parents: 4507
diff changeset
213 octave_value (const ComplexNDArray& cnda);
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
214 octave_value (const FloatComplexNDArray& cnda);
9732
b4fdfee405b5 remove ArrayN<T> + fix nonhom. diag-scalar ops
Jaroslav Hajek <highegg@gmail.com>
parents: 9728
diff changeset
215 octave_value (const Array<Complex>& m);
b4fdfee405b5 remove ArrayN<T> + fix nonhom. diag-scalar ops
Jaroslav Hajek <highegg@gmail.com>
parents: 9728
diff changeset
216 octave_value (const Array<FloatComplex>& m);
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
217 octave_value (const ComplexDiagMatrix& d);
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
218 octave_value (const FloatComplexDiagMatrix& d);
3418
ca92c9d3f882 [project @ 2000-01-12 03:07:47 by jwe]
jwe
parents: 3351
diff changeset
219 octave_value (const ComplexRowVector& v);
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
220 octave_value (const FloatComplexRowVector& v);
3418
ca92c9d3f882 [project @ 2000-01-12 03:07:47 by jwe]
jwe
parents: 3351
diff changeset
221 octave_value (const ComplexColumnVector& v);
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
222 octave_value (const FloatComplexColumnVector& v);
8960
93f18f166aba remove float perm matrices
Jaroslav Hajek <highegg@gmail.com>
parents: 8950
diff changeset
223 octave_value (const PermMatrix& p);
2825
60ae49e1284f [project @ 1997-03-25 23:17:36 by jwe]
jwe
parents: 2804
diff changeset
224 octave_value (bool b);
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5781
diff changeset
225 octave_value (const boolMatrix& bm, const MatrixType& t = MatrixType());
4513
508238e65af7 [project @ 2003-09-19 21:40:57 by jwe]
jwe
parents: 4507
diff changeset
226 octave_value (const boolNDArray& bnda);
9732
b4fdfee405b5 remove ArrayN<T> + fix nonhom. diag-scalar ops
Jaroslav Hajek <highegg@gmail.com>
parents: 9728
diff changeset
227 octave_value (const Array<bool>& bnda);
9689
34d6f005db4b eliminate is_string argument from octave_value character array constructors
John W. Eaton <jwe@octave.org>
parents: 9685
diff changeset
228 octave_value (char c, char type = '\'');
34d6f005db4b eliminate is_string argument from octave_value character array constructors
John W. Eaton <jwe@octave.org>
parents: 9685
diff changeset
229 octave_value (const char *s, char type = '\'');
34d6f005db4b eliminate is_string argument from octave_value character array constructors
John W. Eaton <jwe@octave.org>
parents: 9685
diff changeset
230 octave_value (const std::string& s, char type = '\'');
34d6f005db4b eliminate is_string argument from octave_value character array constructors
John W. Eaton <jwe@octave.org>
parents: 9685
diff changeset
231 octave_value (const string_vector& s, char type = '\'');
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
232 octave_value (const charMatrix& chm, char type = '\'');
9689
34d6f005db4b eliminate is_string argument from octave_value character array constructors
John W. Eaton <jwe@octave.org>
parents: 9685
diff changeset
233 octave_value (const charNDArray& chnda, char type = '\'');
9732
b4fdfee405b5 remove ArrayN<T> + fix nonhom. diag-scalar ops
Jaroslav Hajek <highegg@gmail.com>
parents: 9728
diff changeset
234 octave_value (const Array<char>& chnda, char type = '\'');
9689
34d6f005db4b eliminate is_string argument from octave_value character array constructors
John W. Eaton <jwe@octave.org>
parents: 9685
diff changeset
235 octave_value (const charMatrix& chm, bool is_string,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
236 char type = '\'') GCC_ATTR_DEPRECATED;
9689
34d6f005db4b eliminate is_string argument from octave_value character array constructors
John W. Eaton <jwe@octave.org>
parents: 9685
diff changeset
237 octave_value (const charNDArray& chnda, bool is_string,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
238 char type = '\'') GCC_ATTR_DEPRECATED;
9732
b4fdfee405b5 remove ArrayN<T> + fix nonhom. diag-scalar ops
Jaroslav Hajek <highegg@gmail.com>
parents: 9728
diff changeset
239 octave_value (const Array<char>& chnda, bool is_string,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
240 char type = '\'') GCC_ATTR_DEPRECATED;
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5781
diff changeset
241 octave_value (const SparseMatrix& m, const MatrixType& t = MatrixType ());
6863
3c64128e621c [project @ 2007-09-05 07:52:48 by dbateman]
dbateman
parents: 6705
diff changeset
242 octave_value (const Sparse<double>& m, const MatrixType& t = MatrixType ());
11586
12df7854fa7c strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
243 octave_value (const SparseComplexMatrix& m,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
244 const MatrixType& t = MatrixType ());
6863
3c64128e621c [project @ 2007-09-05 07:52:48 by dbateman]
dbateman
parents: 6705
diff changeset
245 octave_value (const Sparse<Complex>& m, const MatrixType& t = MatrixType ());
11586
12df7854fa7c strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
246 octave_value (const SparseBoolMatrix& bm,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
247 const MatrixType& t = MatrixType ());
7433
402168152bb9 [project @ 2008-01-31 18:59:09 by dbateman]
dbateman
parents: 7336
diff changeset
248 octave_value (const Sparse<bool>& m, const MatrixType& t = MatrixType ());
4901
35bfb4e0b96b [project @ 2004-06-14 18:33:02 by jwe]
jwe
parents: 4791
diff changeset
249 octave_value (const octave_int8& i);
4910
1242acab4246 [project @ 2004-07-12 17:14:13 by jwe]
jwe
parents: 4906
diff changeset
250 octave_value (const octave_int16& i);
1242acab4246 [project @ 2004-07-12 17:14:13 by jwe]
jwe
parents: 4906
diff changeset
251 octave_value (const octave_int32& i);
1242acab4246 [project @ 2004-07-12 17:14:13 by jwe]
jwe
parents: 4906
diff changeset
252 octave_value (const octave_int64& i);
4901
35bfb4e0b96b [project @ 2004-06-14 18:33:02 by jwe]
jwe
parents: 4791
diff changeset
253 octave_value (const octave_uint8& i);
35bfb4e0b96b [project @ 2004-06-14 18:33:02 by jwe]
jwe
parents: 4791
diff changeset
254 octave_value (const octave_uint16& i);
35bfb4e0b96b [project @ 2004-06-14 18:33:02 by jwe]
jwe
parents: 4791
diff changeset
255 octave_value (const octave_uint32& i);
35bfb4e0b96b [project @ 2004-06-14 18:33:02 by jwe]
jwe
parents: 4791
diff changeset
256 octave_value (const octave_uint64& i);
35bfb4e0b96b [project @ 2004-06-14 18:33:02 by jwe]
jwe
parents: 4791
diff changeset
257 octave_value (const int8NDArray& inda);
9732
b4fdfee405b5 remove ArrayN<T> + fix nonhom. diag-scalar ops
Jaroslav Hajek <highegg@gmail.com>
parents: 9728
diff changeset
258 octave_value (const Array<octave_int8>& inda);
4910
1242acab4246 [project @ 2004-07-12 17:14:13 by jwe]
jwe
parents: 4906
diff changeset
259 octave_value (const int16NDArray& inda);
9732
b4fdfee405b5 remove ArrayN<T> + fix nonhom. diag-scalar ops
Jaroslav Hajek <highegg@gmail.com>
parents: 9728
diff changeset
260 octave_value (const Array<octave_int16>& inda);
4910
1242acab4246 [project @ 2004-07-12 17:14:13 by jwe]
jwe
parents: 4906
diff changeset
261 octave_value (const int32NDArray& inda);
9732
b4fdfee405b5 remove ArrayN<T> + fix nonhom. diag-scalar ops
Jaroslav Hajek <highegg@gmail.com>
parents: 9728
diff changeset
262 octave_value (const Array<octave_int32>& inda);
4910
1242acab4246 [project @ 2004-07-12 17:14:13 by jwe]
jwe
parents: 4906
diff changeset
263 octave_value (const int64NDArray& inda);
9732
b4fdfee405b5 remove ArrayN<T> + fix nonhom. diag-scalar ops
Jaroslav Hajek <highegg@gmail.com>
parents: 9728
diff changeset
264 octave_value (const Array<octave_int64>& inda);
4901
35bfb4e0b96b [project @ 2004-06-14 18:33:02 by jwe]
jwe
parents: 4791
diff changeset
265 octave_value (const uint8NDArray& inda);
9732
b4fdfee405b5 remove ArrayN<T> + fix nonhom. diag-scalar ops
Jaroslav Hajek <highegg@gmail.com>
parents: 9728
diff changeset
266 octave_value (const Array<octave_uint8>& inda);
4901
35bfb4e0b96b [project @ 2004-06-14 18:33:02 by jwe]
jwe
parents: 4791
diff changeset
267 octave_value (const uint16NDArray& inda);
9732
b4fdfee405b5 remove ArrayN<T> + fix nonhom. diag-scalar ops
Jaroslav Hajek <highegg@gmail.com>
parents: 9728
diff changeset
268 octave_value (const Array<octave_uint16>& inda);
4901
35bfb4e0b96b [project @ 2004-06-14 18:33:02 by jwe]
jwe
parents: 4791
diff changeset
269 octave_value (const uint32NDArray& inda);
9732
b4fdfee405b5 remove ArrayN<T> + fix nonhom. diag-scalar ops
Jaroslav Hajek <highegg@gmail.com>
parents: 9728
diff changeset
270 octave_value (const Array<octave_uint32>& inda);
4901
35bfb4e0b96b [project @ 2004-06-14 18:33:02 by jwe]
jwe
parents: 4791
diff changeset
271 octave_value (const uint64NDArray& inda);
9732
b4fdfee405b5 remove ArrayN<T> + fix nonhom. diag-scalar ops
Jaroslav Hajek <highegg@gmail.com>
parents: 9728
diff changeset
272 octave_value (const Array<octave_uint64>& inda);
11586
12df7854fa7c strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
273 octave_value (const Array<octave_idx_type>& inda,
9351
e2344f4af0cb autocache indices returned from find et al.
Jaroslav Hajek <highegg@gmail.com>
parents: 9329
diff changeset
274 bool zero_based = false, bool cache_index = false);
9725
aea3a3a950e1 implement nth_element
Jaroslav Hajek <highegg@gmail.com>
parents: 9703
diff changeset
275 octave_value (const Array<std::string>& cellstr);
10325
8b3cfc1288e2 implement lazy index conversions
Jaroslav Hajek <highegg@gmail.com>
parents: 10313
diff changeset
276 octave_value (const idx_vector& idx, bool lazy = true);
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
277 octave_value (double base, double limit, double inc);
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
278 octave_value (const Range& r);
10742
604e13a89c7f initial code for structs rewrite
Jaroslav Hajek <highegg@gmail.com>
parents: 10670
diff changeset
279 octave_value (const octave_map& m);
604e13a89c7f initial code for structs rewrite
Jaroslav Hajek <highegg@gmail.com>
parents: 10670
diff changeset
280 octave_value (const octave_scalar_map& m);
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
281 octave_value (const Octave_map& m);
13294
7dce7e110511 make concatenation of class objects work
John W. Eaton <jwe@octave.org>
parents: 13241
diff changeset
282 octave_value (const Octave_map& m, const std::string& id,
7dce7e110511 make concatenation of class objects work
John W. Eaton <jwe@octave.org>
parents: 13241
diff changeset
283 const std::list<std::string>& plist
7dce7e110511 make concatenation of class objects work
John W. Eaton <jwe@octave.org>
parents: 13241
diff changeset
284 = std::list<std::string> ());
10293
ba373aea03d9 remove islist
Jaroslav Hajek <highegg@gmail.com>
parents: 10160
diff changeset
285 octave_value (const octave_value_list& m, bool = false);
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
286 octave_value (octave_value::magic_colon);
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
287
9728
70925b11ba46 again allow the obsolete syntax for cellfun
Jaroslav Hajek <highegg@gmail.com>
parents: 9725
diff changeset
288 octave_value (octave_base_value *new_rep, bool borrow = false);
70925b11ba46 again allow the obsolete syntax for cellfun
Jaroslav Hajek <highegg@gmail.com>
parents: 9725
diff changeset
289 octave_value (octave_base_value *new_rep, int xcount) GCC_ATTR_DEPRECATED;
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
290
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
291 // Copy constructor.
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
292
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
293 octave_value (const octave_value& a)
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
294 {
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
295 rep = a.rep;
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
296 rep->count++;
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
297 }
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
298
3933
f9ea3dcf58ee [project @ 2002-05-15 03:21:00 by jwe]
jwe
parents: 3930
diff changeset
299 // This should only be called for derived types.
f9ea3dcf58ee [project @ 2002-05-15 03:21:00 by jwe]
jwe
parents: 3930
diff changeset
300
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
301 octave_base_value *clone (void) const;
3933
f9ea3dcf58ee [project @ 2002-05-15 03:21:00 by jwe]
jwe
parents: 3930
diff changeset
302
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
303 octave_base_value *empty_clone (void) const
3933
f9ea3dcf58ee [project @ 2002-05-15 03:21:00 by jwe]
jwe
parents: 3930
diff changeset
304 { return rep->empty_clone (); }
f9ea3dcf58ee [project @ 2002-05-15 03:21:00 by jwe]
jwe
parents: 3930
diff changeset
305
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
306 // Delete the representation of this constant if the count drops to
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
307 // zero.
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
308
6338
ec88b4ab6d10 [project @ 2007-02-22 07:07:19 by jwe]
jwe
parents: 6223
diff changeset
309 ~octave_value (void)
ec88b4ab6d10 [project @ 2007-02-22 07:07:19 by jwe]
jwe
parents: 6223
diff changeset
310 {
ec88b4ab6d10 [project @ 2007-02-22 07:07:19 by jwe]
jwe
parents: 6223
diff changeset
311 if (--rep->count == 0)
ec88b4ab6d10 [project @ 2007-02-22 07:07:19 by jwe]
jwe
parents: 6223
diff changeset
312 delete rep;
ec88b4ab6d10 [project @ 2007-02-22 07:07:19 by jwe]
jwe
parents: 6223
diff changeset
313 }
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
314
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
315 void make_unique (void)
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
316 {
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
317 if (rep->count > 1)
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
318 {
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
319 --rep->count;
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
320 rep = rep->unique_clone ();
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
321 }
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
322 }
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
323
8546
3d8a914c580e improve parser indexed assigment code
Jaroslav Hajek <highegg@gmail.com>
parents: 8531
diff changeset
324 // This uniquifies the value if it is referenced by more than a certain
3d8a914c580e improve parser indexed assigment code
Jaroslav Hajek <highegg@gmail.com>
parents: 8531
diff changeset
325 // number of shallow copies. This is useful for optimizations where we
3d8a914c580e improve parser indexed assigment code
Jaroslav Hajek <highegg@gmail.com>
parents: 8531
diff changeset
326 // know a certain copy, typically within a cell array, to be obsolete.
3d8a914c580e improve parser indexed assigment code
Jaroslav Hajek <highegg@gmail.com>
parents: 8531
diff changeset
327 void make_unique (int obsolete_copies)
3d8a914c580e improve parser indexed assigment code
Jaroslav Hajek <highegg@gmail.com>
parents: 8531
diff changeset
328 {
3d8a914c580e improve parser indexed assigment code
Jaroslav Hajek <highegg@gmail.com>
parents: 8531
diff changeset
329 if (rep->count > obsolete_copies + 1)
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
330 {
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
331 --rep->count;
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
332 rep = rep->unique_clone ();
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
333 }
8546
3d8a914c580e improve parser indexed assigment code
Jaroslav Hajek <highegg@gmail.com>
parents: 8531
diff changeset
334 }
3d8a914c580e improve parser indexed assigment code
Jaroslav Hajek <highegg@gmail.com>
parents: 8531
diff changeset
335
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
336 // Simple assignment.
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
337
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
338 octave_value& operator = (const octave_value& a)
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
339 {
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
340 if (rep != a.rep)
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
341 {
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
342 if (--rep->count == 0)
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
343 delete rep;
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
344
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
345 rep = a.rep;
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
346 rep->count++;
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
347 }
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
348
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
349 return *this;
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
350 }
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
351
9703
9a5598cf899d octave_value::get_count: return octave_idx_type, not int
John W. Eaton <jwe@octave.org>
parents: 9689
diff changeset
352 octave_idx_type get_count (void) const { return rep->count; }
3239
d54ef0aa6e82 [project @ 1999-03-27 17:40:45 by jwe]
jwe
parents: 3219
diff changeset
353
8345
c777f3ce02d8 smarter conversion lookup
Jaroslav Hajek <highegg@gmail.com>
parents: 8150
diff changeset
354 octave_base_value::type_conv_info numeric_conversion_function (void) const
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
355 { return rep->numeric_conversion_function (); }
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
356
8345
c777f3ce02d8 smarter conversion lookup
Jaroslav Hajek <highegg@gmail.com>
parents: 8150
diff changeset
357 octave_base_value::type_conv_info numeric_demotion_function (void) const
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
358 { return rep->numeric_demotion_function (); }
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
359
2409
47e5f57fb4bd [project @ 1996-10-15 16:44:26 by jwe]
jwe
parents: 2376
diff changeset
360 void maybe_mutate (void);
47e5f57fb4bd [project @ 1996-10-15 16:44:26 by jwe]
jwe
parents: 2376
diff changeset
361
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
362 octave_value squeeze (void) const
4532
01ee68d18069 [project @ 2003-10-10 00:49:54 by jwe]
jwe
parents: 4513
diff changeset
363 { return rep->squeeze (); }
01ee68d18069 [project @ 2003-10-10 00:49:54 by jwe]
jwe
parents: 4513
diff changeset
364
8458
d254a21e0120 reimplement full as method of octave_base_value
Jaroslav Hajek <highegg@gmail.com>
parents: 8456
diff changeset
365 // The result of full().
d254a21e0120 reimplement full as method of octave_base_value
Jaroslav Hajek <highegg@gmail.com>
parents: 8456
diff changeset
366 octave_value full_value (void) const
d254a21e0120 reimplement full as method of octave_base_value
Jaroslav Hajek <highegg@gmail.com>
parents: 8456
diff changeset
367 { return rep->full_value (); }
d254a21e0120 reimplement full as method of octave_base_value
Jaroslav Hajek <highegg@gmail.com>
parents: 8456
diff changeset
368
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
369 octave_base_value *try_narrowing_conversion (void)
2410
367485171742 [project @ 1996-10-15 16:50:27 by jwe]
jwe
parents: 2409
diff changeset
370 { return rep->try_narrowing_conversion (); }
2409
47e5f57fb4bd [project @ 1996-10-15 16:44:26 by jwe]
jwe
parents: 2376
diff changeset
371
9329
67fc970dad7d improve indexed assignment using indexed numel
Jaroslav Hajek <highegg@gmail.com>
parents: 9151
diff changeset
372 // Close to dims (), but can be overloaded for classes.
67fc970dad7d improve indexed assignment using indexed numel
Jaroslav Hajek <highegg@gmail.com>
parents: 9151
diff changeset
373 Matrix size (void)
67fc970dad7d improve indexed assignment using indexed numel
Jaroslav Hajek <highegg@gmail.com>
parents: 9151
diff changeset
374 { return rep->size (); }
67fc970dad7d improve indexed assignment using indexed numel
Jaroslav Hajek <highegg@gmail.com>
parents: 9151
diff changeset
375
67fc970dad7d improve indexed assignment using indexed numel
Jaroslav Hajek <highegg@gmail.com>
parents: 9151
diff changeset
376 octave_idx_type numel (const octave_value_list& idx)
67fc970dad7d improve indexed assignment using indexed numel
Jaroslav Hajek <highegg@gmail.com>
parents: 9151
diff changeset
377 { return rep->numel (idx); }
67fc970dad7d improve indexed assignment using indexed numel
Jaroslav Hajek <highegg@gmail.com>
parents: 9151
diff changeset
378
4271
be631c1720ea [project @ 2003-01-03 19:36:04 by jwe]
jwe
parents: 4257
diff changeset
379 octave_value single_subsref (const std::string& type,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
380 const octave_value_list& idx);
4271
be631c1720ea [project @ 2003-01-03 19:36:04 by jwe]
jwe
parents: 4257
diff changeset
381
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
382 octave_value subsref (const std::string& type,
8551
906f976d35a8 further improve struct&cell indexing & indexed assignment
Jaroslav Hajek <highegg@gmail.com>
parents: 8546
diff changeset
383 const std::list<octave_value_list>& idx)
3933
f9ea3dcf58ee [project @ 2002-05-15 03:21:00 by jwe]
jwe
parents: 3930
diff changeset
384 { return rep->subsref (type, idx); }
f9ea3dcf58ee [project @ 2002-05-15 03:21:00 by jwe]
jwe
parents: 3930
diff changeset
385
8551
906f976d35a8 further improve struct&cell indexing & indexed assignment
Jaroslav Hajek <highegg@gmail.com>
parents: 8546
diff changeset
386 octave_value subsref (const std::string& type,
906f976d35a8 further improve struct&cell indexing & indexed assignment
Jaroslav Hajek <highegg@gmail.com>
parents: 8546
diff changeset
387 const std::list<octave_value_list>& idx,
906f976d35a8 further improve struct&cell indexing & indexed assignment
Jaroslav Hajek <highegg@gmail.com>
parents: 8546
diff changeset
388 bool auto_add)
906f976d35a8 further improve struct&cell indexing & indexed assignment
Jaroslav Hajek <highegg@gmail.com>
parents: 8546
diff changeset
389 { return rep->subsref (type, idx, auto_add); }
906f976d35a8 further improve struct&cell indexing & indexed assignment
Jaroslav Hajek <highegg@gmail.com>
parents: 8546
diff changeset
390
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
391 octave_value_list subsref (const std::string& type,
8551
906f976d35a8 further improve struct&cell indexing & indexed assignment
Jaroslav Hajek <highegg@gmail.com>
parents: 8546
diff changeset
392 const std::list<octave_value_list>& idx,
906f976d35a8 further improve struct&cell indexing & indexed assignment
Jaroslav Hajek <highegg@gmail.com>
parents: 8546
diff changeset
393 int nargout);
3933
f9ea3dcf58ee [project @ 2002-05-15 03:21:00 by jwe]
jwe
parents: 3930
diff changeset
394
10832
1b2fcd122c6a allow user detect ignored outputs in m-functions
Jaroslav Hajek <highegg@gmail.com>
parents: 10768
diff changeset
395 octave_value_list subsref (const std::string& type,
1b2fcd122c6a allow user detect ignored outputs in m-functions
Jaroslav Hajek <highegg@gmail.com>
parents: 10768
diff changeset
396 const std::list<octave_value_list>& idx,
1b2fcd122c6a allow user detect ignored outputs in m-functions
Jaroslav Hajek <highegg@gmail.com>
parents: 10768
diff changeset
397 int nargout,
1b2fcd122c6a allow user detect ignored outputs in m-functions
Jaroslav Hajek <highegg@gmail.com>
parents: 10768
diff changeset
398 const std::list<octave_lvalue> *lvalue_list);
1b2fcd122c6a allow user detect ignored outputs in m-functions
Jaroslav Hajek <highegg@gmail.com>
parents: 10768
diff changeset
399
4247
fc9a075d10fb [project @ 2002-12-30 23:05:27 by jwe]
jwe
parents: 4233
diff changeset
400 octave_value next_subsref (const std::string& type, const
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
401 std::list<octave_value_list>& idx,
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
402 size_t skip = 1);
3933
f9ea3dcf58ee [project @ 2002-05-15 03:21:00 by jwe]
jwe
parents: 3930
diff changeset
403
4994
48d0defe9445 [project @ 2004-09-15 20:31:31 by jwe]
jwe
parents: 4970
diff changeset
404 octave_value_list next_subsref (int nargout,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
405 const std::string& type, const
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
406 std::list<octave_value_list>& idx,
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
407 size_t skip = 1);
4994
48d0defe9445 [project @ 2004-09-15 20:31:31 by jwe]
jwe
parents: 4970
diff changeset
408
8551
906f976d35a8 further improve struct&cell indexing & indexed assignment
Jaroslav Hajek <highegg@gmail.com>
parents: 8546
diff changeset
409 octave_value next_subsref (bool auto_add, const std::string& type, const
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
410 std::list<octave_value_list>& idx,
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
411 size_t skip = 1);
8551
906f976d35a8 further improve struct&cell indexing & indexed assignment
Jaroslav Hajek <highegg@gmail.com>
parents: 8546
diff changeset
412
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
413 octave_value do_index_op (const octave_value_list& idx,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
414 bool resize_ok = false)
3933
f9ea3dcf58ee [project @ 2002-05-15 03:21:00 by jwe]
jwe
parents: 3930
diff changeset
415 { return rep->do_index_op (idx, resize_ok); }
f9ea3dcf58ee [project @ 2002-05-15 03:21:00 by jwe]
jwe
parents: 3930
diff changeset
416
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
417 octave_value_list
3544
71bd2d124119 [project @ 2000-02-02 21:02:31 by jwe]
jwe
parents: 3525
diff changeset
418 do_multi_index_op (int nargout, const octave_value_list& idx);
2974
ebbc34ff7f66 [project @ 1997-05-15 19:36:16 by jwe]
jwe
parents: 2963
diff changeset
419
10832
1b2fcd122c6a allow user detect ignored outputs in m-functions
Jaroslav Hajek <highegg@gmail.com>
parents: 10768
diff changeset
420 octave_value_list
1b2fcd122c6a allow user detect ignored outputs in m-functions
Jaroslav Hajek <highegg@gmail.com>
parents: 10768
diff changeset
421 do_multi_index_op (int nargout, const octave_value_list& idx,
1b2fcd122c6a allow user detect ignored outputs in m-functions
Jaroslav Hajek <highegg@gmail.com>
parents: 10768
diff changeset
422 const std::list<octave_lvalue> *lvalue_list);
1b2fcd122c6a allow user detect ignored outputs in m-functions
Jaroslav Hajek <highegg@gmail.com>
parents: 10768
diff changeset
423
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
424 octave_value subsasgn (const std::string& type,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
425 const std::list<octave_value_list>& idx,
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
426 const octave_value& rhs);
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
427
12171
d08901c05c1b fix bug in class assignment to undefined object with index
John W. Eaton <jwe@octave.org>
parents: 11586
diff changeset
428 octave_value undef_subsasgn (const std::string& type,
d08901c05c1b fix bug in class assignment to undefined object with index
John W. Eaton <jwe@octave.org>
parents: 11586
diff changeset
429 const std::list<octave_value_list>& idx,
d08901c05c1b fix bug in class assignment to undefined object with index
John W. Eaton <jwe@octave.org>
parents: 11586
diff changeset
430 const octave_value& rhs);
d08901c05c1b fix bug in class assignment to undefined object with index
John W. Eaton <jwe@octave.org>
parents: 11586
diff changeset
431
10544
9961fc022d9d fix assignment to non-existing variables and octave_value::assign
Jaroslav Hajek <highegg@gmail.com>
parents: 10521
diff changeset
432 octave_value& assign (assign_op op, const std::string& type,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
433 const std::list<octave_value_list>& idx,
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
434 const octave_value& rhs);
2948
56be458e237f [project @ 1997-05-09 13:37:35 by jwe]
jwe
parents: 2942
diff changeset
435
10544
9961fc022d9d fix assignment to non-existing variables and octave_value::assign
Jaroslav Hajek <highegg@gmail.com>
parents: 10521
diff changeset
436 octave_value& assign (assign_op, const octave_value& rhs);
2948
56be458e237f [project @ 1997-05-09 13:37:35 by jwe]
jwe
parents: 2942
diff changeset
437
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
438 idx_vector index_vector (void) const
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
439 { return rep->index_vector (); }
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
440
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
441 // Size.
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
442
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
443 dim_vector dims (void) const
4513
508238e65af7 [project @ 2003-09-19 21:40:57 by jwe]
jwe
parents: 4507
diff changeset
444 { return rep->dims (); }
508238e65af7 [project @ 2003-09-19 21:40:57 by jwe]
jwe
parents: 4507
diff changeset
445
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
446 octave_idx_type rows (void) const { return rep->rows (); }
4563
742993a501b9 [project @ 2003-10-29 06:25:12 by jwe]
jwe
parents: 4559
diff changeset
447
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
448 octave_idx_type columns (void) const { return rep->columns (); }
3195
7a5a5da64756 [project @ 1998-10-28 22:54:04 by jwe]
jwe
parents: 3189
diff changeset
449
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 5164
diff changeset
450 octave_idx_type length (void) const;
4554
78e34346f6fd [project @ 2003-10-27 22:01:49 by jwe]
jwe
parents: 4550
diff changeset
451
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
452 int ndims (void) const { return rep->ndims (); }
4563
742993a501b9 [project @ 2003-10-29 06:25:12 by jwe]
jwe
parents: 4559
diff changeset
453
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents: 5147
diff changeset
454 bool all_zero_dims (void) const { return dims().all_zero (); }
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents: 5147
diff changeset
455
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
456 octave_idx_type numel (void) const
5080
7929486ef2ed [project @ 2004-11-16 21:57:50 by jwe]
jwe
parents: 5073
diff changeset
457 { return rep->numel (); }
4559
802818bfac91 [project @ 2003-10-28 19:13:43 by jwe]
jwe
parents: 4554
diff changeset
458
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
459 octave_idx_type capacity (void) const
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents: 5147
diff changeset
460 { return rep->capacity (); }
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents: 5147
diff changeset
461
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
462 size_t byte_size (void) const
4791
62f2fb593455 [project @ 2004-02-20 18:02:59 by jwe]
jwe
parents: 4700
diff changeset
463 { return rep->byte_size (); }
62f2fb593455 [project @ 2004-02-20 18:02:59 by jwe]
jwe
parents: 4700
diff changeset
464
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
465 octave_idx_type nnz (void) const { return rep->nnz (); }
5602
dfa2da0563e5 [project @ 2006-01-31 03:43:40 by jwe]
jwe
parents: 5508
diff changeset
466
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
467 octave_idx_type nzmax (void) const { return rep->nzmax (); }
5604
2857357f9d3c [project @ 2006-01-31 18:22:59 by jwe]
jwe
parents: 5602
diff changeset
468
5900
c20eb7330d13 [project @ 2006-07-22 08:31:16 by jwe]
jwe
parents: 5895
diff changeset
469 octave_idx_type nfields (void) const { return rep->nfields (); }
c20eb7330d13 [project @ 2006-07-22 08:31:16 by jwe]
jwe
parents: 5895
diff changeset
470
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
471 octave_value reshape (const dim_vector& dv) const
4587
7b957b442818 [project @ 2003-11-10 15:50:39 by jwe]
jwe
parents: 4567
diff changeset
472 { return rep->reshape (dv); }
4567
fc30061d01da [project @ 2003-10-29 20:11:15 by jwe]
jwe
parents: 4563
diff changeset
473
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
474 octave_value permute (const Array<int>& vec, bool inv = false) const
4593
77566be8b9e9 [project @ 2003-11-11 17:25:42 by jwe]
jwe
parents: 4587
diff changeset
475 { return rep->permute (vec, inv); }
77566be8b9e9 [project @ 2003-11-11 17:25:42 by jwe]
jwe
parents: 4587
diff changeset
476
77566be8b9e9 [project @ 2003-11-11 17:25:42 by jwe]
jwe
parents: 4587
diff changeset
477 octave_value ipermute (const Array<int>& vec) const
77566be8b9e9 [project @ 2003-11-11 17:25:42 by jwe]
jwe
parents: 4587
diff changeset
478 { return rep->permute (vec, true); }
77566be8b9e9 [project @ 2003-11-11 17:25:42 by jwe]
jwe
parents: 4587
diff changeset
479
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
480 octave_value resize (const dim_vector& dv, bool fill = false) const
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
481 { return rep->resize (dv, fill);}
4915
c638c144d4da [project @ 2004-07-23 19:01:22 by jwe]
jwe
parents: 4911
diff changeset
482
5785
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5781
diff changeset
483 MatrixType matrix_type (void) const
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5781
diff changeset
484 { return rep->matrix_type (); }
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5781
diff changeset
485
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5781
diff changeset
486 MatrixType matrix_type (const MatrixType& typ) const
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5781
diff changeset
487 { return rep->matrix_type (typ); }
6b9cec830d72 [project @ 2006-05-03 19:32:46 by dbateman]
dbateman
parents: 5781
diff changeset
488
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
489 // Does this constant have a type? Both of these are provided since
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
490 // it is sometimes more natural to write is_undefined() instead of
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
491 // ! is_defined().
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
492
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
493 bool is_defined (void) const
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
494 { return rep->is_defined (); }
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
495
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
496 bool is_undefined (void) const
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
497 { return ! is_defined (); }
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
498
4559
802818bfac91 [project @ 2003-10-28 19:13:43 by jwe]
jwe
parents: 4554
diff changeset
499 bool is_empty (void) const
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
500 { return rep->is_empty (); }
4559
802818bfac91 [project @ 2003-10-28 19:13:43 by jwe]
jwe
parents: 4554
diff changeset
501
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
502 bool is_cell (void) const
3351
8623649c967c [project @ 1999-11-15 16:17:01 by jwe]
jwe
parents: 3340
diff changeset
503 { return rep->is_cell (); }
8623649c967c [project @ 1999-11-15 16:17:01 by jwe]
jwe
parents: 3340
diff changeset
504
6116
b64fb24bf4a0 [project @ 2006-10-27 18:04:49 by jwe]
jwe
parents: 6109
diff changeset
505 bool is_cellstr (void) const
b64fb24bf4a0 [project @ 2006-10-27 18:04:49 by jwe]
jwe
parents: 6109
diff changeset
506 { return rep->is_cellstr (); }
b64fb24bf4a0 [project @ 2006-10-27 18:04:49 by jwe]
jwe
parents: 6109
diff changeset
507
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
508 bool is_real_scalar (void) const
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
509 { return rep->is_real_scalar (); }
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
510
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
511 bool is_real_matrix (void) const
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
512 { return rep->is_real_matrix (); }
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
513
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
514 bool is_real_nd_array (void) const
4505
e944fbe3fff2 [project @ 2003-09-09 19:14:06 by jwe]
jwe
parents: 4478
diff changeset
515 { return rep->is_real_nd_array (); }
e944fbe3fff2 [project @ 2003-09-09 19:14:06 by jwe]
jwe
parents: 4478
diff changeset
516
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
517 bool is_complex_scalar (void) const
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
518 { return rep->is_complex_scalar (); }
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
519
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
520 bool is_complex_matrix (void) const
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
521 { return rep->is_complex_matrix (); }
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
522
5881
70b3f8f1a793 [project @ 2006-07-08 03:54:17 by jwe]
jwe
parents: 5864
diff changeset
523 bool is_bool_scalar (void) const
70b3f8f1a793 [project @ 2006-07-08 03:54:17 by jwe]
jwe
parents: 5864
diff changeset
524 { return rep->is_bool_scalar (); }
70b3f8f1a793 [project @ 2006-07-08 03:54:17 by jwe]
jwe
parents: 5864
diff changeset
525
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
526 bool is_bool_matrix (void) const
4587
7b957b442818 [project @ 2003-11-10 15:50:39 by jwe]
jwe
parents: 4567
diff changeset
527 { return rep->is_bool_matrix (); }
7b957b442818 [project @ 2003-11-10 15:50:39 by jwe]
jwe
parents: 4567
diff changeset
528
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
529 bool is_char_matrix (void) const
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
530 { return rep->is_char_matrix (); }
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
531
8366
8b1a2555c4e2 implement diagonal matrix objects
Jaroslav Hajek <highegg@gmail.com>
parents: 8346
diff changeset
532 bool is_diag_matrix (void) const
8b1a2555c4e2 implement diagonal matrix objects
Jaroslav Hajek <highegg@gmail.com>
parents: 8346
diff changeset
533 { return rep->is_diag_matrix (); }
8b1a2555c4e2 implement diagonal matrix objects
Jaroslav Hajek <highegg@gmail.com>
parents: 8346
diff changeset
534
8371
c3f7e2549abb make det & inv aware of diagonal & permutation matrices
Jaroslav Hajek <highegg@gmail.com>
parents: 8367
diff changeset
535 bool is_perm_matrix (void) const
c3f7e2549abb make det & inv aware of diagonal & permutation matrices
Jaroslav Hajek <highegg@gmail.com>
parents: 8367
diff changeset
536 { return rep->is_perm_matrix (); }
c3f7e2549abb make det & inv aware of diagonal & permutation matrices
Jaroslav Hajek <highegg@gmail.com>
parents: 8367
diff changeset
537
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
538 bool is_string (void) const
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
539 { return rep->is_string (); }
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
540
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
541 bool is_sq_string (void) const
5279
bd32f770c09a [project @ 2005-04-12 21:55:31 by jwe]
jwe
parents: 5275
diff changeset
542 { return rep->is_sq_string (); }
bd32f770c09a [project @ 2005-04-12 21:55:31 by jwe]
jwe
parents: 5275
diff changeset
543
5280
25c12c80ccc3 [project @ 2005-04-14 19:19:45 by jwe]
jwe
parents: 5279
diff changeset
544 bool is_dq_string (void) const
25c12c80ccc3 [project @ 2005-04-14 19:19:45 by jwe]
jwe
parents: 5279
diff changeset
545 { return rep->is_string () && ! rep->is_sq_string (); }
25c12c80ccc3 [project @ 2005-04-14 19:19:45 by jwe]
jwe
parents: 5279
diff changeset
546
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
547 bool is_range (void) const
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
548 { return rep->is_range (); }
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
549
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
550 bool is_map (void) const
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
551 { return rep->is_map (); }
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
552
7336
745a8299c2b5 [project @ 2007-12-28 20:56:55 by jwe]
jwe
parents: 7064
diff changeset
553 bool is_object (void) const
745a8299c2b5 [project @ 2007-12-28 20:56:55 by jwe]
jwe
parents: 7064
diff changeset
554 { return rep->is_object (); }
745a8299c2b5 [project @ 2007-12-28 20:56:55 by jwe]
jwe
parents: 7064
diff changeset
555
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
556 bool is_cs_list (void) const
3977
95663a3a2682 [project @ 2002-07-05 17:43:37 by jwe]
jwe
parents: 3933
diff changeset
557 { return rep->is_cs_list (); }
95663a3a2682 [project @ 2002-07-05 17:43:37 by jwe]
jwe
parents: 3933
diff changeset
558
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
559 bool is_magic_colon (void) const
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
560 { return rep->is_magic_colon (); }
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
561
8150
283989f2da9b make null assignment matlab compatible
Jaroslav Hajek <highegg@gmail.com>
parents: 8017
diff changeset
562 bool is_null_value (void) const
283989f2da9b make null assignment matlab compatible
Jaroslav Hajek <highegg@gmail.com>
parents: 8017
diff changeset
563 { return rep->is_null_value (); }
283989f2da9b make null assignment matlab compatible
Jaroslav Hajek <highegg@gmail.com>
parents: 8017
diff changeset
564
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
565 // Are any or all of the elements in this constant nonzero?
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
566
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
567 octave_value all (int dim = 0) const
4015
6476dd85a65f [project @ 2002-08-02 07:59:19 by jwe]
jwe
parents: 3977
diff changeset
568 { return rep->all (dim); }
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
569
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
570 octave_value any (int dim = 0) const
4015
6476dd85a65f [project @ 2002-08-02 07:59:19 by jwe]
jwe
parents: 3977
diff changeset
571 { return rep->any (dim); }
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
572
9685
e793865ede63 implement builtin_type
Jaroslav Hajek <highegg@gmail.com>
parents: 9661
diff changeset
573 builtin_type_t builtin_type (void) const
e793865ede63 implement builtin_type
Jaroslav Hajek <highegg@gmail.com>
parents: 9661
diff changeset
574 { return rep->builtin_type (); }
e793865ede63 implement builtin_type
Jaroslav Hajek <highegg@gmail.com>
parents: 9661
diff changeset
575
5895
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
576 // Floating point types.
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
577
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
578 bool is_double_type (void) const
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
579 { return rep->is_double_type (); }
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
580
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
581 bool is_single_type (void) const
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
582 { return rep->is_single_type (); }
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
583
7576
7ebdc99a0bab new isfloat function
John W. Eaton <jwe@octave.org>
parents: 7528
diff changeset
584 bool is_float_type (void) const
7ebdc99a0bab new isfloat function
John W. Eaton <jwe@octave.org>
parents: 7528
diff changeset
585 { return rep->is_float_type (); }
7ebdc99a0bab new isfloat function
John W. Eaton <jwe@octave.org>
parents: 7528
diff changeset
586
5895
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
587 // Integer types.
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
588
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
589 bool is_int8_type (void) const
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
590 { return rep->is_int8_type (); }
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
591
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
592 bool is_int16_type (void) const
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
593 { return rep->is_int16_type (); }
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
594
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
595 bool is_int32_type (void) const
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
596 { return rep->is_int32_type (); }
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
597
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
598 bool is_int64_type (void) const
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
599 { return rep->is_int64_type (); }
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
600
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
601 bool is_uint8_type (void) const
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
602 { return rep->is_uint8_type (); }
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
603
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
604 bool is_uint16_type (void) const
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
605 { return rep->is_uint16_type (); }
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
606
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
607 bool is_uint32_type (void) const
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
608 { return rep->is_uint32_type (); }
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
609
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
610 bool is_uint64_type (void) const
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
611 { return rep->is_uint64_type (); }
b9c45e0cf685 [project @ 2006-07-19 01:57:44 by jwe]
jwe
parents: 5885
diff changeset
612
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
613 // Other type stuff.
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
614
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
615 bool is_bool_type (void) const
3209
fbb332b96e4f [project @ 1998-11-03 20:48:54 by jwe]
jwe
parents: 3205
diff changeset
616 { return rep->is_bool_type (); }
fbb332b96e4f [project @ 1998-11-03 20:48:54 by jwe]
jwe
parents: 3205
diff changeset
617
6223
a6cc01dd09f9 [project @ 2007-01-03 20:59:28 by jwe]
jwe
parents: 6133
diff changeset
618 bool is_integer_type (void) const
a6cc01dd09f9 [project @ 2007-01-03 20:59:28 by jwe]
jwe
parents: 6133
diff changeset
619 { return rep->is_integer_type (); }
a6cc01dd09f9 [project @ 2007-01-03 20:59:28 by jwe]
jwe
parents: 6133
diff changeset
620
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
621 bool is_real_type (void) const
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
622 { return rep->is_real_type (); }
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
623
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
624 bool is_complex_type (void) const
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
625 { return rep->is_complex_type (); }
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
626
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
627 bool is_scalar_type (void) const
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
628 { return rep->is_scalar_type (); }
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
629
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
630 bool is_matrix_type (void) const
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
631 { return rep->is_matrix_type (); }
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
632
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
633 bool is_numeric_type (void) const
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
634 { return rep->is_numeric_type (); }
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
635
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
636 bool is_sparse_type (void) const
5631
7171d19706df [project @ 2006-02-22 20:15:06 by dbateman]
dbateman
parents: 5604
diff changeset
637 { return rep->is_sparse_type (); }
7171d19706df [project @ 2006-02-22 20:15:06 by dbateman]
dbateman
parents: 5604
diff changeset
638
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
639 // Does this constant correspond to a truth value?
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
640
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
641 bool is_true (void) const
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
642 { return rep->is_true (); }
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
643
8346
8302788f09db fix empty matrix handling in switch statement
Jaroslav Hajek <highegg@gmail.com>
parents: 8345
diff changeset
644 // Do two constants match (in a switch statement)?
11586
12df7854fa7c strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
645
8346
8302788f09db fix empty matrix handling in switch statement
Jaroslav Hajek <highegg@gmail.com>
parents: 8345
diff changeset
646 bool is_equal (const octave_value&) const;
8302788f09db fix empty matrix handling in switch statement
Jaroslav Hajek <highegg@gmail.com>
parents: 8345
diff changeset
647
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
648 // Are the dimensions of this constant zero by zero?
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
649
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
650 bool is_zero_by_zero (void) const
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
651 { return (rows () == 0 && columns () == 0); }
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
652
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
653 bool is_constant (void) const
2974
ebbc34ff7f66 [project @ 1997-05-15 19:36:16 by jwe]
jwe
parents: 2963
diff changeset
654 { return rep->is_constant (); }
ebbc34ff7f66 [project @ 1997-05-15 19:36:16 by jwe]
jwe
parents: 2963
diff changeset
655
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
656 bool is_function_handle (void) const
4654
a9b22513b7a6 [project @ 2003-11-24 18:56:35 by jwe]
jwe
parents: 4645
diff changeset
657 { return rep->is_function_handle (); }
a9b22513b7a6 [project @ 2003-11-24 18:56:35 by jwe]
jwe
parents: 4645
diff changeset
658
13241
2a8dcb5b3a00 improve default indexing for objects
John W. Eaton <jwe@octave.org>
parents: 13110
diff changeset
659 bool is_anonymous_function (void) const
2a8dcb5b3a00 improve default indexing for objects
John W. Eaton <jwe@octave.org>
parents: 13110
diff changeset
660 { return rep->is_anonymous_function (); }
2a8dcb5b3a00 improve default indexing for objects
John W. Eaton <jwe@octave.org>
parents: 13110
diff changeset
661
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
662 bool is_inline_function (void) const
4954
ed0f3cb6d3d4 [project @ 2004-09-01 21:24:53 by jwe]
jwe
parents: 4946
diff changeset
663 { return rep->is_inline_function (); }
ed0f3cb6d3d4 [project @ 2004-09-01 21:24:53 by jwe]
jwe
parents: 4946
diff changeset
664
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
665 bool is_function (void) const
2974
ebbc34ff7f66 [project @ 1997-05-15 19:36:16 by jwe]
jwe
parents: 2963
diff changeset
666 { return rep->is_function (); }
2891
1a30f46e1870 [project @ 1997-04-28 01:49:00 by jwe]
jwe
parents: 2880
diff changeset
667
7336
745a8299c2b5 [project @ 2007-12-28 20:56:55 by jwe]
jwe
parents: 7064
diff changeset
668 bool is_user_script (void) const
745a8299c2b5 [project @ 2007-12-28 20:56:55 by jwe]
jwe
parents: 7064
diff changeset
669 { return rep->is_user_script (); }
745a8299c2b5 [project @ 2007-12-28 20:56:55 by jwe]
jwe
parents: 7064
diff changeset
670
745a8299c2b5 [project @ 2007-12-28 20:56:55 by jwe]
jwe
parents: 7064
diff changeset
671 bool is_user_function (void) const
745a8299c2b5 [project @ 2007-12-28 20:56:55 by jwe]
jwe
parents: 7064
diff changeset
672 { return rep->is_user_function (); }
745a8299c2b5 [project @ 2007-12-28 20:56:55 by jwe]
jwe
parents: 7064
diff changeset
673
7719
87eda1f8faaa octave_user_code: new base class for octave_user_script and octave_user_function
John W. Eaton <jwe@octave.org>
parents: 7638
diff changeset
674 bool is_user_code (void) const
87eda1f8faaa octave_user_code: new base class for octave_user_script and octave_user_function
John W. Eaton <jwe@octave.org>
parents: 7638
diff changeset
675 { return rep->is_user_code (); }
87eda1f8faaa octave_user_code: new base class for octave_user_script and octave_user_function
John W. Eaton <jwe@octave.org>
parents: 7638
diff changeset
676
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
677 bool is_builtin_function (void) const
3325
2efa28a91e7a [project @ 1999-10-29 21:39:20 by jwe]
jwe
parents: 3301
diff changeset
678 { return rep->is_builtin_function (); }
2efa28a91e7a [project @ 1999-10-29 21:39:20 by jwe]
jwe
parents: 3301
diff changeset
679
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
680 bool is_dld_function (void) const
3325
2efa28a91e7a [project @ 1999-10-29 21:39:20 by jwe]
jwe
parents: 3301
diff changeset
681 { return rep->is_dld_function (); }
2efa28a91e7a [project @ 1999-10-29 21:39:20 by jwe]
jwe
parents: 3301
diff changeset
682
5864
e884ab4f29ee [project @ 2006-06-22 00:57:27 by jwe]
jwe
parents: 5848
diff changeset
683 bool is_mex_function (void) const
e884ab4f29ee [project @ 2006-06-22 00:57:27 by jwe]
jwe
parents: 5848
diff changeset
684 { return rep->is_mex_function (); }
e884ab4f29ee [project @ 2006-06-22 00:57:27 by jwe]
jwe
parents: 5848
diff changeset
685
7876
8447a5024650 clear subfunctions when clearing parent function
John W. Eaton <jwe@octave.org>
parents: 7800
diff changeset
686 void erase_subfunctions (void) { rep->erase_subfunctions (); }
8447a5024650 clear subfunctions when clearing parent function
John W. Eaton <jwe@octave.org>
parents: 7800
diff changeset
687
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
688 // Values.
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
689
2891
1a30f46e1870 [project @ 1997-04-28 01:49:00 by jwe]
jwe
parents: 2880
diff changeset
690 octave_value eval (void) { return *this; }
1a30f46e1870 [project @ 1997-04-28 01:49:00 by jwe]
jwe
parents: 2880
diff changeset
691
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
692 short int
4254
df5f2e433a11 [project @ 2002-12-31 19:43:07 by jwe]
jwe
parents: 4252
diff changeset
693 short_value (bool req_int = false, bool frc_str_conv = false) const
df5f2e433a11 [project @ 2002-12-31 19:43:07 by jwe]
jwe
parents: 4252
diff changeset
694 { return rep->short_value (req_int, frc_str_conv); }
df5f2e433a11 [project @ 2002-12-31 19:43:07 by jwe]
jwe
parents: 4252
diff changeset
695
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
696 unsigned short int
4254
df5f2e433a11 [project @ 2002-12-31 19:43:07 by jwe]
jwe
parents: 4252
diff changeset
697 ushort_value (bool req_int = false, bool frc_str_conv = false) const
df5f2e433a11 [project @ 2002-12-31 19:43:07 by jwe]
jwe
parents: 4252
diff changeset
698 { return rep->ushort_value (req_int, frc_str_conv); }
df5f2e433a11 [project @ 2002-12-31 19:43:07 by jwe]
jwe
parents: 4252
diff changeset
699
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
700 int int_value (bool req_int = false, bool frc_str_conv = false) const
3202
44d82b369c78 [project @ 1998-10-29 20:27:57 by jwe]
jwe
parents: 3195
diff changeset
701 { return rep->int_value (req_int, frc_str_conv); }
44d82b369c78 [project @ 1998-10-29 20:27:57 by jwe]
jwe
parents: 3195
diff changeset
702
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
703 unsigned int
4254
df5f2e433a11 [project @ 2002-12-31 19:43:07 by jwe]
jwe
parents: 4252
diff changeset
704 uint_value (bool req_int = false, bool frc_str_conv = false) const
df5f2e433a11 [project @ 2002-12-31 19:43:07 by jwe]
jwe
parents: 4252
diff changeset
705 { return rep->uint_value (req_int, frc_str_conv); }
df5f2e433a11 [project @ 2002-12-31 19:43:07 by jwe]
jwe
parents: 4252
diff changeset
706
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
707 int nint_value (bool frc_str_conv = false) const
3202
44d82b369c78 [project @ 1998-10-29 20:27:57 by jwe]
jwe
parents: 3195
diff changeset
708 { return rep->nint_value (frc_str_conv); }
44d82b369c78 [project @ 1998-10-29 20:27:57 by jwe]
jwe
parents: 3195
diff changeset
709
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
710 long int
4254
df5f2e433a11 [project @ 2002-12-31 19:43:07 by jwe]
jwe
parents: 4252
diff changeset
711 long_value (bool req_int = false, bool frc_str_conv = false) const
df5f2e433a11 [project @ 2002-12-31 19:43:07 by jwe]
jwe
parents: 4252
diff changeset
712 { return rep->long_value (req_int, frc_str_conv); }
df5f2e433a11 [project @ 2002-12-31 19:43:07 by jwe]
jwe
parents: 4252
diff changeset
713
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
714 unsigned long int
4254
df5f2e433a11 [project @ 2002-12-31 19:43:07 by jwe]
jwe
parents: 4252
diff changeset
715 ulong_value (bool req_int = false, bool frc_str_conv = false) const
df5f2e433a11 [project @ 2002-12-31 19:43:07 by jwe]
jwe
parents: 4252
diff changeset
716 { return rep->ulong_value (req_int, frc_str_conv); }
df5f2e433a11 [project @ 2002-12-31 19:43:07 by jwe]
jwe
parents: 4252
diff changeset
717
6133
e0065af38cf4 [project @ 2006-11-02 03:33:50 by jwe]
jwe
parents: 6116
diff changeset
718 octave_idx_type
8017
260294a5520f octave_value::idx_type_value: move definition to ov.cc from ov.h
John W. Eaton <jwe@octave.org>
parents: 7885
diff changeset
719 idx_type_value (bool req_int = false, bool frc_str_conv = false) const;
6133
e0065af38cf4 [project @ 2006-11-02 03:33:50 by jwe]
jwe
parents: 6116
diff changeset
720
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
721 double double_value (bool frc_str_conv = false) const
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
722 { return rep->double_value (frc_str_conv); }
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
723
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
724 float float_value (bool frc_str_conv = false) const
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
725 { return rep->float_value (frc_str_conv); }
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
726
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
727 double scalar_value (bool frc_str_conv = false) const
2916
4e7bea116f24 [project @ 1997-04-30 20:56:31 by jwe]
jwe
parents: 2909
diff changeset
728 { return rep->scalar_value (frc_str_conv); }
4e7bea116f24 [project @ 1997-04-30 20:56:31 by jwe]
jwe
parents: 2909
diff changeset
729
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
730 float float_scalar_value (bool frc_str_conv = false) const
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
731 { return rep->float_scalar_value (frc_str_conv); }
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
732
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
733 Cell cell_value (void) const;
3351
8623649c967c [project @ 1999-11-15 16:17:01 by jwe]
jwe
parents: 3340
diff changeset
734
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
735 Matrix matrix_value (bool frc_str_conv = false) const
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
736 { return rep->matrix_value (frc_str_conv); }
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
737
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
738 FloatMatrix float_matrix_value (bool frc_str_conv = false) const
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
739 { return rep->float_matrix_value (frc_str_conv); }
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
740
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
741 NDArray array_value (bool frc_str_conv = false) const
4550
69a9b22a72a2 [project @ 2003-10-27 15:41:55 by jwe]
jwe
parents: 4532
diff changeset
742 { return rep->array_value (frc_str_conv); }
4505
e944fbe3fff2 [project @ 2003-09-09 19:14:06 by jwe]
jwe
parents: 4478
diff changeset
743
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
744 FloatNDArray float_array_value (bool frc_str_conv = false) const
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
745 { return rep->float_array_value (frc_str_conv); }
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
746
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
747 Complex complex_value (bool frc_str_conv = false) const
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
748 { return rep->complex_value (frc_str_conv); }
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
749
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
750 FloatComplex float_complex_value (bool frc_str_conv = false) const
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
751 { return rep->float_complex_value (frc_str_conv); }
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
752
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
753 ComplexMatrix complex_matrix_value (bool frc_str_conv = false) const
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
754 { return rep->complex_matrix_value (frc_str_conv); }
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
755
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
756 FloatComplexMatrix float_complex_matrix_value (bool frc_str_conv = false) const
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
757 { return rep->float_complex_matrix_value (frc_str_conv); }
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
758
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
759 ComplexNDArray complex_array_value (bool frc_str_conv = false) const
4550
69a9b22a72a2 [project @ 2003-10-27 15:41:55 by jwe]
jwe
parents: 4532
diff changeset
760 { return rep->complex_array_value (frc_str_conv); }
69a9b22a72a2 [project @ 2003-10-27 15:41:55 by jwe]
jwe
parents: 4532
diff changeset
761
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
762 FloatComplexNDArray float_complex_array_value (bool frc_str_conv = false) const
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
763 { return rep->float_complex_array_value (frc_str_conv); }
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
764
5943
c038c2947ee1 [project @ 2006-08-18 21:27:03 by jwe]
jwe
parents: 5900
diff changeset
765 bool bool_value (bool warn = false) const
c038c2947ee1 [project @ 2006-08-18 21:27:03 by jwe]
jwe
parents: 5900
diff changeset
766 { return rep->bool_value (warn); }
4550
69a9b22a72a2 [project @ 2003-10-27 15:41:55 by jwe]
jwe
parents: 4532
diff changeset
767
5943
c038c2947ee1 [project @ 2006-08-18 21:27:03 by jwe]
jwe
parents: 5900
diff changeset
768 boolMatrix bool_matrix_value (bool warn = false) const
c038c2947ee1 [project @ 2006-08-18 21:27:03 by jwe]
jwe
parents: 5900
diff changeset
769 { return rep->bool_matrix_value (warn); }
4550
69a9b22a72a2 [project @ 2003-10-27 15:41:55 by jwe]
jwe
parents: 4532
diff changeset
770
5943
c038c2947ee1 [project @ 2006-08-18 21:27:03 by jwe]
jwe
parents: 5900
diff changeset
771 boolNDArray bool_array_value (bool warn = false) const
c038c2947ee1 [project @ 2006-08-18 21:27:03 by jwe]
jwe
parents: 5900
diff changeset
772 { return rep->bool_array_value (warn); }
4550
69a9b22a72a2 [project @ 2003-10-27 15:41:55 by jwe]
jwe
parents: 4532
diff changeset
773
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
774 charMatrix char_matrix_value (bool frc_str_conv = false) const
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
775 { return rep->char_matrix_value (frc_str_conv); }
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
776
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
777 charNDArray char_array_value (bool frc_str_conv = false) const
4550
69a9b22a72a2 [project @ 2003-10-27 15:41:55 by jwe]
jwe
parents: 4532
diff changeset
778 { return rep->char_array_value (frc_str_conv); }
69a9b22a72a2 [project @ 2003-10-27 15:41:55 by jwe]
jwe
parents: 4532
diff changeset
779
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
780 SparseMatrix sparse_matrix_value (bool frc_str_conv = false) const
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
781 { return rep->sparse_matrix_value (frc_str_conv); }
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents: 5147
diff changeset
782
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
783 SparseComplexMatrix sparse_complex_matrix_value (bool frc_str_conv = false) const
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
784 { return rep->sparse_complex_matrix_value (frc_str_conv); }
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents: 5147
diff changeset
785
9852
aabf7a8c2e57 implement sparse logical conversion
Jaroslav Hajek <highegg@gmail.com>
parents: 9835
diff changeset
786 SparseBoolMatrix sparse_bool_matrix_value (bool warn = false) const
aabf7a8c2e57 implement sparse logical conversion
Jaroslav Hajek <highegg@gmail.com>
parents: 9835
diff changeset
787 { return rep->sparse_bool_matrix_value (warn); }
5164
57077d0ddc8e [project @ 2005-02-25 19:55:24 by jwe]
jwe
parents: 5147
diff changeset
788
8916
a2878ba31a9e add diag & perm matrix query methods to octave_value
Jaroslav Hajek <highegg@gmail.com>
parents: 8811
diff changeset
789 DiagMatrix diag_matrix_value (bool force = false) const
a2878ba31a9e add diag & perm matrix query methods to octave_value
Jaroslav Hajek <highegg@gmail.com>
parents: 8811
diff changeset
790 { return rep->diag_matrix_value (force); }
11586
12df7854fa7c strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
791
8916
a2878ba31a9e add diag & perm matrix query methods to octave_value
Jaroslav Hajek <highegg@gmail.com>
parents: 8811
diff changeset
792 FloatDiagMatrix float_diag_matrix_value (bool force = false) const
a2878ba31a9e add diag & perm matrix query methods to octave_value
Jaroslav Hajek <highegg@gmail.com>
parents: 8811
diff changeset
793 { return rep->float_diag_matrix_value (force); }
11586
12df7854fa7c strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
794
8916
a2878ba31a9e add diag & perm matrix query methods to octave_value
Jaroslav Hajek <highegg@gmail.com>
parents: 8811
diff changeset
795 ComplexDiagMatrix complex_diag_matrix_value (bool force = false) const
a2878ba31a9e add diag & perm matrix query methods to octave_value
Jaroslav Hajek <highegg@gmail.com>
parents: 8811
diff changeset
796 { return rep->complex_diag_matrix_value (force); }
11586
12df7854fa7c strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
797
8916
a2878ba31a9e add diag & perm matrix query methods to octave_value
Jaroslav Hajek <highegg@gmail.com>
parents: 8811
diff changeset
798 FloatComplexDiagMatrix float_complex_diag_matrix_value (bool force = false) const
a2878ba31a9e add diag & perm matrix query methods to octave_value
Jaroslav Hajek <highegg@gmail.com>
parents: 8811
diff changeset
799 { return rep->float_complex_diag_matrix_value (force); }
a2878ba31a9e add diag & perm matrix query methods to octave_value
Jaroslav Hajek <highegg@gmail.com>
parents: 8811
diff changeset
800
a2878ba31a9e add diag & perm matrix query methods to octave_value
Jaroslav Hajek <highegg@gmail.com>
parents: 8811
diff changeset
801 PermMatrix perm_matrix_value (void) const
a2878ba31a9e add diag & perm matrix query methods to octave_value
Jaroslav Hajek <highegg@gmail.com>
parents: 8811
diff changeset
802 { return rep->perm_matrix_value (); }
11586
12df7854fa7c strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
803
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
804 octave_int8 int8_scalar_value (void) const
4910
1242acab4246 [project @ 2004-07-12 17:14:13 by jwe]
jwe
parents: 4906
diff changeset
805 { return rep->int8_scalar_value (); }
1242acab4246 [project @ 2004-07-12 17:14:13 by jwe]
jwe
parents: 4906
diff changeset
806
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
807 octave_int16 int16_scalar_value (void) const
4910
1242acab4246 [project @ 2004-07-12 17:14:13 by jwe]
jwe
parents: 4906
diff changeset
808 { return rep->int16_scalar_value (); }
1242acab4246 [project @ 2004-07-12 17:14:13 by jwe]
jwe
parents: 4906
diff changeset
809
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
810 octave_int32 int32_scalar_value (void) const
4910
1242acab4246 [project @ 2004-07-12 17:14:13 by jwe]
jwe
parents: 4906
diff changeset
811 { return rep->int32_scalar_value (); }
1242acab4246 [project @ 2004-07-12 17:14:13 by jwe]
jwe
parents: 4906
diff changeset
812
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
813 octave_int64 int64_scalar_value (void) const
4910
1242acab4246 [project @ 2004-07-12 17:14:13 by jwe]
jwe
parents: 4906
diff changeset
814 { return rep->int64_scalar_value (); }
1242acab4246 [project @ 2004-07-12 17:14:13 by jwe]
jwe
parents: 4906
diff changeset
815
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
816 octave_uint8 uint8_scalar_value (void) const
4910
1242acab4246 [project @ 2004-07-12 17:14:13 by jwe]
jwe
parents: 4906
diff changeset
817 { return rep->uint8_scalar_value (); }
1242acab4246 [project @ 2004-07-12 17:14:13 by jwe]
jwe
parents: 4906
diff changeset
818
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
819 octave_uint16 uint16_scalar_value (void) const
4910
1242acab4246 [project @ 2004-07-12 17:14:13 by jwe]
jwe
parents: 4906
diff changeset
820 { return rep->uint16_scalar_value (); }
1242acab4246 [project @ 2004-07-12 17:14:13 by jwe]
jwe
parents: 4906
diff changeset
821
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
822 octave_uint32 uint32_scalar_value (void) const
4910
1242acab4246 [project @ 2004-07-12 17:14:13 by jwe]
jwe
parents: 4906
diff changeset
823 { return rep->uint32_scalar_value (); }
1242acab4246 [project @ 2004-07-12 17:14:13 by jwe]
jwe
parents: 4906
diff changeset
824
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
825 octave_uint64 uint64_scalar_value (void) const
4910
1242acab4246 [project @ 2004-07-12 17:14:13 by jwe]
jwe
parents: 4906
diff changeset
826 { return rep->uint64_scalar_value (); }
1242acab4246 [project @ 2004-07-12 17:14:13 by jwe]
jwe
parents: 4906
diff changeset
827
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
828 int8NDArray int8_array_value (void) const
4906
6754342ef7ad [project @ 2004-06-23 11:11:50 by jwe]
jwe
parents: 4901
diff changeset
829 { return rep->int8_array_value (); }
6754342ef7ad [project @ 2004-06-23 11:11:50 by jwe]
jwe
parents: 4901
diff changeset
830
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
831 int16NDArray int16_array_value (void) const
4906
6754342ef7ad [project @ 2004-06-23 11:11:50 by jwe]
jwe
parents: 4901
diff changeset
832 { return rep->int16_array_value (); }
6754342ef7ad [project @ 2004-06-23 11:11:50 by jwe]
jwe
parents: 4901
diff changeset
833
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
834 int32NDArray int32_array_value (void) const
4906
6754342ef7ad [project @ 2004-06-23 11:11:50 by jwe]
jwe
parents: 4901
diff changeset
835 { return rep->int32_array_value (); }
6754342ef7ad [project @ 2004-06-23 11:11:50 by jwe]
jwe
parents: 4901
diff changeset
836
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
837 int64NDArray int64_array_value (void) const
4906
6754342ef7ad [project @ 2004-06-23 11:11:50 by jwe]
jwe
parents: 4901
diff changeset
838 { return rep->int64_array_value (); }
6754342ef7ad [project @ 2004-06-23 11:11:50 by jwe]
jwe
parents: 4901
diff changeset
839
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
840 uint8NDArray uint8_array_value (void) const
4906
6754342ef7ad [project @ 2004-06-23 11:11:50 by jwe]
jwe
parents: 4901
diff changeset
841 { return rep->uint8_array_value (); }
6754342ef7ad [project @ 2004-06-23 11:11:50 by jwe]
jwe
parents: 4901
diff changeset
842
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
843 uint16NDArray uint16_array_value (void) const
4906
6754342ef7ad [project @ 2004-06-23 11:11:50 by jwe]
jwe
parents: 4901
diff changeset
844 { return rep->uint16_array_value (); }
6754342ef7ad [project @ 2004-06-23 11:11:50 by jwe]
jwe
parents: 4901
diff changeset
845
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
846 uint32NDArray uint32_array_value (void) const
4906
6754342ef7ad [project @ 2004-06-23 11:11:50 by jwe]
jwe
parents: 4901
diff changeset
847 { return rep->uint32_array_value (); }
6754342ef7ad [project @ 2004-06-23 11:11:50 by jwe]
jwe
parents: 4901
diff changeset
848
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
849 uint64NDArray uint64_array_value (void) const
4906
6754342ef7ad [project @ 2004-06-23 11:11:50 by jwe]
jwe
parents: 4901
diff changeset
850 { return rep->uint64_array_value (); }
6754342ef7ad [project @ 2004-06-23 11:11:50 by jwe]
jwe
parents: 4901
diff changeset
851
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
852 string_vector all_strings (bool pad = false) const
5715
edf82d02be75 [project @ 2006-03-24 16:42:43 by jwe]
jwe
parents: 5707
diff changeset
853 { return rep->all_strings (pad); }
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
854
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
855 std::string string_value (bool force = false) const
4665
dece11da64ed [project @ 2003-11-25 15:37:32 by jwe]
jwe
parents: 4661
diff changeset
856 { return rep->string_value (force); }
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
857
8732
a669df7beb73 [mq]: x
John W. Eaton <jwe@octave.org>
parents: 8721
diff changeset
858 Array<std::string> cellstr_value (void) const
a669df7beb73 [mq]: x
John W. Eaton <jwe@octave.org>
parents: 8721
diff changeset
859 { return rep->cellstr_value (); }
a669df7beb73 [mq]: x
John W. Eaton <jwe@octave.org>
parents: 8721
diff changeset
860
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
861 Range range_value (void) const
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
862 { return rep->range_value (); }
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
863
10742
604e13a89c7f initial code for structs rewrite
Jaroslav Hajek <highegg@gmail.com>
parents: 10670
diff changeset
864 octave_map map_value (void) const;
604e13a89c7f initial code for structs rewrite
Jaroslav Hajek <highegg@gmail.com>
parents: 10670
diff changeset
865
604e13a89c7f initial code for structs rewrite
Jaroslav Hajek <highegg@gmail.com>
parents: 10670
diff changeset
866 octave_scalar_map scalar_map_value (void) const;
604e13a89c7f initial code for structs rewrite
Jaroslav Hajek <highegg@gmail.com>
parents: 10670
diff changeset
867
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
868 string_vector map_keys (void) const
3933
f9ea3dcf58ee [project @ 2002-05-15 03:21:00 by jwe]
jwe
parents: 3930
diff changeset
869 { return rep->map_keys (); }
f9ea3dcf58ee [project @ 2002-05-15 03:21:00 by jwe]
jwe
parents: 3930
diff changeset
870
9151
d8f9588c6ba1 object exemplars
John W. Eaton <jwe@octave.org>
parents: 9010
diff changeset
871 size_t nparents (void) const
d8f9588c6ba1 object exemplars
John W. Eaton <jwe@octave.org>
parents: 9010
diff changeset
872 { return rep->nparents (); }
d8f9588c6ba1 object exemplars
John W. Eaton <jwe@octave.org>
parents: 9010
diff changeset
873
d8f9588c6ba1 object exemplars
John W. Eaton <jwe@octave.org>
parents: 9010
diff changeset
874 std::list<std::string> parent_class_name_list (void) const
d8f9588c6ba1 object exemplars
John W. Eaton <jwe@octave.org>
parents: 9010
diff changeset
875 { return rep->parent_class_name_list (); }
d8f9588c6ba1 object exemplars
John W. Eaton <jwe@octave.org>
parents: 9010
diff changeset
876
9010
f914834836e7 Partial implementation of derived classes using the old form with "@" files.
rtshort@smoketree.phaselocked.com
parents: 8992
diff changeset
877 string_vector parent_class_names (void) const
f914834836e7 Partial implementation of derived classes using the old form with "@" files.
rtshort@smoketree.phaselocked.com
parents: 8992
diff changeset
878 { return rep->parent_class_names (); }
f914834836e7 Partial implementation of derived classes using the old form with "@" files.
rtshort@smoketree.phaselocked.com
parents: 8992
diff changeset
879
f914834836e7 Partial implementation of derived classes using the old form with "@" files.
rtshort@smoketree.phaselocked.com
parents: 8992
diff changeset
880 octave_base_value *
f914834836e7 Partial implementation of derived classes using the old form with "@" files.
rtshort@smoketree.phaselocked.com
parents: 8992
diff changeset
881 find_parent_class (const std::string& parent_class_name)
f914834836e7 Partial implementation of derived classes using the old form with "@" files.
rtshort@smoketree.phaselocked.com
parents: 8992
diff changeset
882 { return rep->find_parent_class (parent_class_name); }
f914834836e7 Partial implementation of derived classes using the old form with "@" files.
rtshort@smoketree.phaselocked.com
parents: 8992
diff changeset
883
10075
84b0725f4b09 return class types by reference in const Array element access functions
Jaroslav Hajek <highegg@gmail.com>
parents: 9881
diff changeset
884 octave_function *function_value (bool silent = false) const;
2974
ebbc34ff7f66 [project @ 1997-05-15 19:36:16 by jwe]
jwe
parents: 2963
diff changeset
885
10075
84b0725f4b09 return class types by reference in const Array element access functions
Jaroslav Hajek <highegg@gmail.com>
parents: 9881
diff changeset
886 octave_user_function *user_function_value (bool silent = false) const;
7761
5adeea5de26c symbol table reporting functions
John W. Eaton <jwe@octave.org>
parents: 7740
diff changeset
887
10075
84b0725f4b09 return class types by reference in const Array element access functions
Jaroslav Hajek <highegg@gmail.com>
parents: 9881
diff changeset
888 octave_user_script *user_script_value (bool silent = false) const;
4700
ca3a1d687bba [project @ 2004-01-21 03:28:31 by jwe]
jwe
parents: 4687
diff changeset
889
10075
84b0725f4b09 return class types by reference in const Array element access functions
Jaroslav Hajek <highegg@gmail.com>
parents: 9881
diff changeset
890 octave_user_code *user_code_value (bool silent = false) const;
7719
87eda1f8faaa octave_user_code: new base class for octave_user_script and octave_user_function
John W. Eaton <jwe@octave.org>
parents: 7638
diff changeset
891
10075
84b0725f4b09 return class types by reference in const Array element access functions
Jaroslav Hajek <highegg@gmail.com>
parents: 9881
diff changeset
892 octave_fcn_handle *fcn_handle_value (bool silent = false) const;
4343
db5e0814277a [project @ 2003-02-20 16:44:16 by jwe]
jwe
parents: 4342
diff changeset
893
10075
84b0725f4b09 return class types by reference in const Array element access functions
Jaroslav Hajek <highegg@gmail.com>
parents: 9881
diff changeset
894 octave_fcn_inline *fcn_inline_value (bool silent = false) const;
4933
cd58733c326b [project @ 2004-08-05 16:08:28 by jwe]
jwe
parents: 4930
diff changeset
895
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
896 octave_value_list list_value (void) const;
2880
0a076230ca87 [project @ 1997-04-24 09:47:41 by jwe]
jwe
parents: 2847
diff changeset
897
3419
e71b3d1dd327 [project @ 2000-01-12 05:23:34 by jwe]
jwe
parents: 3418
diff changeset
898 ColumnVector column_vector_value (bool frc_str_conv = false,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
899 bool frc_vec_conv = false) const;
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
900
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
901 ComplexColumnVector
3419
e71b3d1dd327 [project @ 2000-01-12 05:23:34 by jwe]
jwe
parents: 3418
diff changeset
902 complex_column_vector_value (bool frc_str_conv = false,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
903 bool frc_vec_conv = false) const;
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
904
3419
e71b3d1dd327 [project @ 2000-01-12 05:23:34 by jwe]
jwe
parents: 3418
diff changeset
905 RowVector row_vector_value (bool frc_str_conv = false,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
906 bool frc_vec_conv = false) const;
3419
e71b3d1dd327 [project @ 2000-01-12 05:23:34 by jwe]
jwe
parents: 3418
diff changeset
907
e71b3d1dd327 [project @ 2000-01-12 05:23:34 by jwe]
jwe
parents: 3418
diff changeset
908 ComplexRowVector
e71b3d1dd327 [project @ 2000-01-12 05:23:34 by jwe]
jwe
parents: 3418
diff changeset
909 complex_row_vector_value (bool frc_str_conv = false,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
910 bool frc_vec_conv = false) const;
3419
e71b3d1dd327 [project @ 2000-01-12 05:23:34 by jwe]
jwe
parents: 3418
diff changeset
911
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
912
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
913 FloatColumnVector float_column_vector_value (bool frc_str_conv = false,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
914 bool frc_vec_conv = false) const;
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
915
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
916 FloatComplexColumnVector
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
917 float_complex_column_vector_value (bool frc_str_conv = false,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
918 bool frc_vec_conv = false) const;
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
919
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
920 FloatRowVector float_row_vector_value (bool frc_str_conv = false,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
921 bool frc_vec_conv = false) const;
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
922
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
923 FloatComplexRowVector
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
924 float_complex_row_vector_value (bool frc_str_conv = false,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
925 bool frc_vec_conv = false) const;
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
926
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
927
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
928
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
929
4044
9678c5526190 [project @ 2002-08-15 16:54:55 by jwe]
jwe
parents: 4018
diff changeset
930 Array<int> int_vector_value (bool req_int = false,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
931 bool frc_str_conv = false,
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
932 bool frc_vec_conv = false) const;
4044
9678c5526190 [project @ 2002-08-15 16:54:55 by jwe]
jwe
parents: 4018
diff changeset
933
8811
20dfb885f877 int -> octave_idx fixes
John W. Eaton <jwe@octave.org>
parents: 8734
diff changeset
934 Array<octave_idx_type>
20dfb885f877 int -> octave_idx fixes
John W. Eaton <jwe@octave.org>
parents: 8734
diff changeset
935 octave_idx_type_vector_value (bool req_int = false,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
936 bool frc_str_conv = false,
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
937 bool frc_vec_conv = false) const;
8811
20dfb885f877 int -> octave_idx fixes
John W. Eaton <jwe@octave.org>
parents: 8734
diff changeset
938
3419
e71b3d1dd327 [project @ 2000-01-12 05:23:34 by jwe]
jwe
parents: 3418
diff changeset
939 Array<double> vector_value (bool frc_str_conv = false,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
940 bool frc_vec_conv = false) const;
3419
e71b3d1dd327 [project @ 2000-01-12 05:23:34 by jwe]
jwe
parents: 3418
diff changeset
941
e71b3d1dd327 [project @ 2000-01-12 05:23:34 by jwe]
jwe
parents: 3418
diff changeset
942 Array<Complex> complex_vector_value (bool frc_str_conv = false,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
943 bool frc_vec_conv = false) const;
3419
e71b3d1dd327 [project @ 2000-01-12 05:23:34 by jwe]
jwe
parents: 3418
diff changeset
944
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
945 Array<float> float_vector_value (bool frc_str_conv = false,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
946 bool frc_vec_conv = false) const;
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
947
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
948 Array<FloatComplex> float_complex_vector_value (bool frc_str_conv = false,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
949 bool frc_vec_conv = false) const;
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7761
diff changeset
950
8523
ad3afaaa19c1 implement non-copying contiguous range indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 8458
diff changeset
951 // Possibly economize a lazy-indexed value.
8150
283989f2da9b make null assignment matlab compatible
Jaroslav Hajek <highegg@gmail.com>
parents: 8017
diff changeset
952
8523
ad3afaaa19c1 implement non-copying contiguous range indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 8458
diff changeset
953 void maybe_economize (void)
ad3afaaa19c1 implement non-copying contiguous range indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 8458
diff changeset
954 { rep->maybe_economize (); }
ad3afaaa19c1 implement non-copying contiguous range indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 8458
diff changeset
955
8531
b01fef323c24 add some explaining comments
Jaroslav Hajek <highegg@gmail.com>
parents: 8523
diff changeset
956 // The following two hook conversions are called on any octave_value prior to
b01fef323c24 add some explaining comments
Jaroslav Hajek <highegg@gmail.com>
parents: 8523
diff changeset
957 // storing it to a "permanent" location, like a named variable, a cell or a
11586
12df7854fa7c strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
958 // struct component, or a return value of a function.
8523
ad3afaaa19c1 implement non-copying contiguous range indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 8458
diff changeset
959
ad3afaaa19c1 implement non-copying contiguous range indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 8458
diff changeset
960 octave_value storable_value (void) const;
8150
283989f2da9b make null assignment matlab compatible
Jaroslav Hajek <highegg@gmail.com>
parents: 8017
diff changeset
961
8531
b01fef323c24 add some explaining comments
Jaroslav Hajek <highegg@gmail.com>
parents: 8523
diff changeset
962 // Ditto, but in place, i.e. equivalent to *this = this->storable_value (),
b01fef323c24 add some explaining comments
Jaroslav Hajek <highegg@gmail.com>
parents: 8523
diff changeset
963 // but possibly more efficient.
8150
283989f2da9b make null assignment matlab compatible
Jaroslav Hajek <highegg@gmail.com>
parents: 8017
diff changeset
964
8523
ad3afaaa19c1 implement non-copying contiguous range indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 8458
diff changeset
965 void make_storable_value (void);
8150
283989f2da9b make null assignment matlab compatible
Jaroslav Hajek <highegg@gmail.com>
parents: 8017
diff changeset
966
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
967 // Conversions. These should probably be private. If a user of this
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
968 // class wants a certain kind of constant, he should simply ask for
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
969 // it, and we should convert it if possible.
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
970
5279
bd32f770c09a [project @ 2005-04-12 21:55:31 by jwe]
jwe
parents: 5275
diff changeset
971 octave_value convert_to_str (bool pad = false, bool force = false,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
972 char type = '\'') const
9689
34d6f005db4b eliminate is_string argument from octave_value character array constructors
John W. Eaton <jwe@octave.org>
parents: 9685
diff changeset
973 { return rep->convert_to_str (pad, force, type); }
4452
f3c21a1d1c62 [project @ 2003-07-09 23:20:18 by jwe]
jwe
parents: 4451
diff changeset
974
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
975 octave_value
5279
bd32f770c09a [project @ 2005-04-12 21:55:31 by jwe]
jwe
parents: 5275
diff changeset
976 convert_to_str_internal (bool pad, bool force, char type) const
bd32f770c09a [project @ 2005-04-12 21:55:31 by jwe]
jwe
parents: 5275
diff changeset
977 { return rep->convert_to_str_internal (pad, force, type); }
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
978
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
979 void convert_to_row_or_column_vector (void)
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
980 { rep->convert_to_row_or_column_vector (); }
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
981
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
982 bool print_as_scalar (void) const
4604
cba347c642e2 [project @ 2003-11-13 04:38:05 by jwe]
jwe
parents: 4593
diff changeset
983 { return rep->print_as_scalar (); }
cba347c642e2 [project @ 2003-11-13 04:38:05 by jwe]
jwe
parents: 4593
diff changeset
984
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
985 void print (std::ostream& os, bool pr_as_read_syntax = false) const
2466
1573640a9994 [project @ 1996-11-04 03:56:11 by jwe]
jwe
parents: 2427
diff changeset
986 { rep->print (os, pr_as_read_syntax); }
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
987
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
988 void print_raw (std::ostream& os,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
989 bool pr_as_read_syntax = false) const
2903
facd9d10e5c1 [project @ 1997-04-30 03:53:07 by jwe]
jwe
parents: 2891
diff changeset
990 { rep->print_raw (os, pr_as_read_syntax); }
facd9d10e5c1 [project @ 1997-04-30 03:53:07 by jwe]
jwe
parents: 2891
diff changeset
991
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
992 bool print_name_tag (std::ostream& os, const std::string& name) const
2903
facd9d10e5c1 [project @ 1997-04-30 03:53:07 by jwe]
jwe
parents: 2891
diff changeset
993 { return rep->print_name_tag (os, name); }
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
994
13110
2d5035847529 Add Júlio Hoffimann Mendes to contributors.in
John W. Eaton <jwe@octave.org>
parents: 12171
diff changeset
995 void print_with_name (std::ostream& os, const std::string& name) const
2d5035847529 Add Júlio Hoffimann Mendes to contributors.in
John W. Eaton <jwe@octave.org>
parents: 12171
diff changeset
996 { rep->print_with_name (os, name, true); }
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
997
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
998 int type_id (void) const { return rep->type_id (); }
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
999
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
1000 std::string type_name (void) const { return rep->type_name (); }
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
1001
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
1002 std::string class_name (void) const { return rep->class_name (); }
4612
d44675070f1a [project @ 2003-11-14 19:49:56 by jwe]
jwe
parents: 4604
diff changeset
1003
3203
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1004 // Unary and binary operations.
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1005
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5958
diff changeset
1006 friend OCTINTERP_API octave_value do_unary_op (unary_op op,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
1007 const octave_value& a);
3203
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1008
10614
d1194069e58c optimize code handling ++,--
Jaroslav Hajek <highegg@gmail.com>
parents: 10544
diff changeset
1009 octave_value& do_non_const_unary_op (unary_op op);
3933
f9ea3dcf58ee [project @ 2002-05-15 03:21:00 by jwe]
jwe
parents: 3930
diff changeset
1010
10614
d1194069e58c optimize code handling ++,--
Jaroslav Hajek <highegg@gmail.com>
parents: 10544
diff changeset
1011 octave_value& do_non_const_unary_op (unary_op op, const std::string& type,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
1012 const std::list<octave_value_list>& idx);
3205
549691faa638 [project @ 1998-10-31 04:20:15 by jwe]
jwe
parents: 3204
diff changeset
1013
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5958
diff changeset
1014 friend OCTINTERP_API octave_value do_binary_op (binary_op op,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
1015 const octave_value& a,
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
1016 const octave_value& b);
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
1017
7800
5861b95e9879 support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
1018 friend OCTINTERP_API octave_value do_binary_op (compound_binary_op op,
5861b95e9879 support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
1019 const octave_value& a,
5861b95e9879 support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
1020 const octave_value& b);
5861b95e9879 support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
1021
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5958
diff changeset
1022 friend OCTINTERP_API octave_value do_cat_op (const octave_value& a,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
1023 const octave_value& b,
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
1024 const Array<octave_idx_type>& ra_idx);
4915
c638c144d4da [project @ 2004-07-23 19:01:22 by jwe]
jwe
parents: 4911
diff changeset
1025
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
1026 const octave_base_value& get_rep (void) const { return *rep; }
3301
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3240
diff changeset
1027
8456
c1709a45b45b optimize structure components access
Jaroslav Hajek <highegg@gmail.com>
parents: 8437
diff changeset
1028 bool is_copy_of (const octave_value &val) const { return rep == val.rep; }
c1709a45b45b optimize structure components access
Jaroslav Hajek <highegg@gmail.com>
parents: 8437
diff changeset
1029
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
1030 void print_info (std::ostream& os,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
1031 const std::string& prefix = std::string ()) const;
3933
f9ea3dcf58ee [project @ 2002-05-15 03:21:00 by jwe]
jwe
parents: 3930
diff changeset
1032
6974
9e32bb109980 [project @ 2007-10-08 11:06:47 by jwe]
jwe
parents: 6867
diff changeset
1033 bool save_ascii (std::ostream& os) { return rep->save_ascii (os); }
4687
e95c86d48732 [project @ 2004-01-06 21:53:34 by jwe]
jwe
parents: 4665
diff changeset
1034
6974
9e32bb109980 [project @ 2007-10-08 11:06:47 by jwe]
jwe
parents: 6867
diff changeset
1035 bool load_ascii (std::istream& is) { return rep->load_ascii (is); }
4687
e95c86d48732 [project @ 2004-01-06 21:53:34 by jwe]
jwe
parents: 4665
diff changeset
1036
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
1037 bool save_binary (std::ostream& os, bool& save_as_floats)
4687
e95c86d48732 [project @ 2004-01-06 21:53:34 by jwe]
jwe
parents: 4665
diff changeset
1038 { return rep->save_binary (os, save_as_floats); }
e95c86d48732 [project @ 2004-01-06 21:53:34 by jwe]
jwe
parents: 4665
diff changeset
1039
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
1040 bool load_binary (std::istream& is, bool swap,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
1041 oct_mach_info::float_format fmt)
4687
e95c86d48732 [project @ 2004-01-06 21:53:34 by jwe]
jwe
parents: 4665
diff changeset
1042 { return rep->load_binary (is, swap, fmt); }
e95c86d48732 [project @ 2004-01-06 21:53:34 by jwe]
jwe
parents: 4665
diff changeset
1043
e95c86d48732 [project @ 2004-01-06 21:53:34 by jwe]
jwe
parents: 4665
diff changeset
1044 #if defined (HAVE_HDF5)
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
1045 bool save_hdf5 (hid_t loc_id, const char *name, bool save_as_floats)
4687
e95c86d48732 [project @ 2004-01-06 21:53:34 by jwe]
jwe
parents: 4665
diff changeset
1046 { return rep->save_hdf5 (loc_id, name, save_as_floats); }
e95c86d48732 [project @ 2004-01-06 21:53:34 by jwe]
jwe
parents: 4665
diff changeset
1047
9881
b3089dba88bf Remove HDF5 cruft for older versions of HDF5
Kacper Kowalik
parents: 9852
diff changeset
1048 bool load_hdf5 (hid_t loc_id, const char *name)
b3089dba88bf Remove HDF5 cruft for older versions of HDF5
Kacper Kowalik
parents: 9852
diff changeset
1049 { return rep->load_hdf5 (loc_id, name); }
4687
e95c86d48732 [project @ 2004-01-06 21:53:34 by jwe]
jwe
parents: 4665
diff changeset
1050 #endif
e95c86d48732 [project @ 2004-01-06 21:53:34 by jwe]
jwe
parents: 4665
diff changeset
1051
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
1052 int write (octave_stream& os, int block_size,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
1053 oct_data_conv::data_type output_type, int skip,
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
1054 oct_mach_info::float_format flt_fmt) const;
4944
44046bbaa52c [project @ 2004-08-31 05:30:46 by jwe]
jwe
parents: 4933
diff changeset
1055
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
1056 octave_base_value *internal_rep (void) const { return rep; }
4901
35bfb4e0b96b [project @ 2004-06-14 18:33:02 by jwe]
jwe
parents: 4791
diff changeset
1057
5900
c20eb7330d13 [project @ 2006-07-22 08:31:16 by jwe]
jwe
parents: 5895
diff changeset
1058 // Unsafe. These functions exist to support the MEX interface.
c20eb7330d13 [project @ 2006-07-22 08:31:16 by jwe]
jwe
parents: 5895
diff changeset
1059 // You should not use them anywhere else.
c20eb7330d13 [project @ 2006-07-22 08:31:16 by jwe]
jwe
parents: 5895
diff changeset
1060 void *mex_get_data (void) const { return rep->mex_get_data (); }
c20eb7330d13 [project @ 2006-07-22 08:31:16 by jwe]
jwe
parents: 5895
diff changeset
1061
c20eb7330d13 [project @ 2006-07-22 08:31:16 by jwe]
jwe
parents: 5895
diff changeset
1062 octave_idx_type *mex_get_ir (void) const { return rep->mex_get_ir (); }
c20eb7330d13 [project @ 2006-07-22 08:31:16 by jwe]
jwe
parents: 5895
diff changeset
1063
c20eb7330d13 [project @ 2006-07-22 08:31:16 by jwe]
jwe
parents: 5895
diff changeset
1064 octave_idx_type *mex_get_jc (void) const { return rep->mex_get_jc (); }
c20eb7330d13 [project @ 2006-07-22 08:31:16 by jwe]
jwe
parents: 5895
diff changeset
1065
c20eb7330d13 [project @ 2006-07-22 08:31:16 by jwe]
jwe
parents: 5895
diff changeset
1066 mxArray *as_mxArray (void) const { return rep->as_mxArray (); }
c20eb7330d13 [project @ 2006-07-22 08:31:16 by jwe]
jwe
parents: 5895
diff changeset
1067
7620
36594d5bbe13 Move diag function into the octave_value class
David Bateman <dbateman@free.fr>
parents: 7576
diff changeset
1068 octave_value diag (octave_idx_type k = 0) const
36594d5bbe13 Move diag function into the octave_value class
David Bateman <dbateman@free.fr>
parents: 7576
diff changeset
1069 { return rep->diag (k); }
36594d5bbe13 Move diag function into the octave_value class
David Bateman <dbateman@free.fr>
parents: 7576
diff changeset
1070
7463
2467639bd8c0 eliminate UNDEFINED sort mode
John W. Eaton <jwe@octave.org>
parents: 7433
diff changeset
1071 octave_value sort (octave_idx_type dim = 0, sortmode mode = ASCENDING) const
11586
12df7854fa7c strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
1072 { return rep->sort (dim, mode); }
7433
402168152bb9 [project @ 2008-01-31 18:59:09 by dbateman]
dbateman
parents: 7336
diff changeset
1073 octave_value sort (Array<octave_idx_type> &sidx, octave_idx_type dim = 0,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
1074 sortmode mode = ASCENDING) const
11586
12df7854fa7c strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
1075 { return rep->sort (sidx, dim, mode); }
7433
402168152bb9 [project @ 2008-01-31 18:59:09 by dbateman]
dbateman
parents: 7336
diff changeset
1076
8734
767ed8cc6634 rename internal issorted and issorted_rows functions to is_sorted and is_sorted_rows
John W. Eaton <jwe@octave.org>
parents: 8733
diff changeset
1077 sortmode is_sorted (sortmode mode = UNSORTED) const
767ed8cc6634 rename internal issorted and issorted_rows functions to is_sorted and is_sorted_rows
John W. Eaton <jwe@octave.org>
parents: 8733
diff changeset
1078 { return rep->is_sorted (mode); }
8721
e9cb742df9eb imported patch sort3.diff
Jaroslav Hajek <highegg@gmail.com>
parents: 8676
diff changeset
1079
8733
3ef774603887 rename all uses of sortrows_idx to sort_rows_idx
John W. Eaton <jwe@octave.org>
parents: 8732
diff changeset
1080 Array<octave_idx_type> sort_rows_idx (sortmode mode = ASCENDING) const
3ef774603887 rename all uses of sortrows_idx to sort_rows_idx
John W. Eaton <jwe@octave.org>
parents: 8732
diff changeset
1081 { return rep->sort_rows_idx (mode); }
8721
e9cb742df9eb imported patch sort3.diff
Jaroslav Hajek <highegg@gmail.com>
parents: 8676
diff changeset
1082
8734
767ed8cc6634 rename internal issorted and issorted_rows functions to is_sorted and is_sorted_rows
John W. Eaton <jwe@octave.org>
parents: 8733
diff changeset
1083 sortmode is_sorted_rows (sortmode mode = UNSORTED) const
767ed8cc6634 rename internal issorted and issorted_rows functions to is_sorted and is_sorted_rows
John W. Eaton <jwe@octave.org>
parents: 8733
diff changeset
1084 { return rep->is_sorted_rows (mode); }
8721
e9cb742df9eb imported patch sort3.diff
Jaroslav Hajek <highegg@gmail.com>
parents: 8676
diff changeset
1085
7489
8e4592e49fa7 don't clear locked functions
John W. Eaton <jwe@octave.org>
parents: 7463
diff changeset
1086 void lock (void) { rep->lock (); }
8e4592e49fa7 don't clear locked functions
John W. Eaton <jwe@octave.org>
parents: 7463
diff changeset
1087
8e4592e49fa7 don't clear locked functions
John W. Eaton <jwe@octave.org>
parents: 7463
diff changeset
1088 void unlock (void) { rep->unlock (); }
8e4592e49fa7 don't clear locked functions
John W. Eaton <jwe@octave.org>
parents: 7463
diff changeset
1089
8e4592e49fa7 don't clear locked functions
John W. Eaton <jwe@octave.org>
parents: 7463
diff changeset
1090 bool islocked (void) const { return rep->islocked (); }
8e4592e49fa7 don't clear locked functions
John W. Eaton <jwe@octave.org>
parents: 7463
diff changeset
1091
7761
5adeea5de26c symbol table reporting functions
John W. Eaton <jwe@octave.org>
parents: 7740
diff changeset
1092 void dump (std::ostream& os) const { rep->dump (os); }
5adeea5de26c symbol table reporting functions
John W. Eaton <jwe@octave.org>
parents: 7740
diff changeset
1093
9813
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1094 #define MAPPER_FORWARD(F) \
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1095 octave_value F (void) const { return rep->map (octave_base_value::umap_ ## F); }
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1096
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1097 MAPPER_FORWARD (abs)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1098 MAPPER_FORWARD (acos)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1099 MAPPER_FORWARD (acosh)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1100 MAPPER_FORWARD (angle)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1101 MAPPER_FORWARD (arg)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1102 MAPPER_FORWARD (asin)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1103 MAPPER_FORWARD (asinh)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1104 MAPPER_FORWARD (atan)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1105 MAPPER_FORWARD (atanh)
10414
2a8b1db1e2ca implement built-in cbrt
Jaroslav Hajek <highegg@gmail.com>
parents: 10391
diff changeset
1106 MAPPER_FORWARD (cbrt)
9813
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1107 MAPPER_FORWARD (ceil)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1108 MAPPER_FORWARD (conj)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1109 MAPPER_FORWARD (cos)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1110 MAPPER_FORWARD (cosh)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1111 MAPPER_FORWARD (erf)
9835
1bb1ed717d2f implement built-in erfinv
Jaroslav Hajek <highegg@gmail.com>
parents: 9813
diff changeset
1112 MAPPER_FORWARD (erfinv)
9813
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1113 MAPPER_FORWARD (erfc)
10391
59e34bcdff13 implement built-in erfcx
Jaroslav Hajek <highegg@gmail.com>
parents: 10325
diff changeset
1114 MAPPER_FORWARD (erfcx)
9813
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1115 MAPPER_FORWARD (exp)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1116 MAPPER_FORWARD (expm1)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1117 MAPPER_FORWARD (finite)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1118 MAPPER_FORWARD (fix)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1119 MAPPER_FORWARD (floor)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1120 MAPPER_FORWARD (gamma)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1121 MAPPER_FORWARD (imag)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1122 MAPPER_FORWARD (isinf)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1123 MAPPER_FORWARD (isna)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1124 MAPPER_FORWARD (isnan)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1125 MAPPER_FORWARD (lgamma)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1126 MAPPER_FORWARD (log)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1127 MAPPER_FORWARD (log2)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1128 MAPPER_FORWARD (log10)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1129 MAPPER_FORWARD (log1p)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1130 MAPPER_FORWARD (real)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1131 MAPPER_FORWARD (round)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1132 MAPPER_FORWARD (roundb)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1133 MAPPER_FORWARD (signum)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1134 MAPPER_FORWARD (sin)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1135 MAPPER_FORWARD (sinh)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1136 MAPPER_FORWARD (sqrt)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1137 MAPPER_FORWARD (tan)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1138 MAPPER_FORWARD (tanh)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1139
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1140 // These functions are prefixed with X to avoid potential macro
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1141 // conflicts.
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1142
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1143 MAPPER_FORWARD (xisalnum)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1144 MAPPER_FORWARD (xisalpha)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1145 MAPPER_FORWARD (xisascii)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1146 MAPPER_FORWARD (xiscntrl)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1147 MAPPER_FORWARD (xisdigit)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1148 MAPPER_FORWARD (xisgraph)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1149 MAPPER_FORWARD (xislower)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1150 MAPPER_FORWARD (xisprint)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1151 MAPPER_FORWARD (xispunct)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1152 MAPPER_FORWARD (xisspace)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1153 MAPPER_FORWARD (xisupper)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1154 MAPPER_FORWARD (xisxdigit)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1155 MAPPER_FORWARD (xtoascii)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1156 MAPPER_FORWARD (xtolower)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1157 MAPPER_FORWARD (xtoupper)
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1158
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1159 #undef MAPPER_FORWARD
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1160
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1161 octave_value map (octave_base_value::unary_mapper_t umap) const
8fa32b527d9a improve & partially revert previous change
Jaroslav Hajek <highegg@gmail.com>
parents: 9812
diff changeset
1162 { return rep->map (umap); }
7503
8c32f95c2639 convert mapper functions to new format
David Bateman <dbateman@free.fr>
parents: 7489
diff changeset
1163
10670
654fbde5dceb make cellfun's fast scalar collection mechanism public
Jaroslav Hajek <highegg@gmail.com>
parents: 10614
diff changeset
1164 // Extract the n-th element, aka val(n). Result is undefined if val is not an
654fbde5dceb make cellfun's fast scalar collection mechanism public
Jaroslav Hajek <highegg@gmail.com>
parents: 10614
diff changeset
1165 // array type or n is out of range. Never error.
654fbde5dceb make cellfun's fast scalar collection mechanism public
Jaroslav Hajek <highegg@gmail.com>
parents: 10614
diff changeset
1166 octave_value
654fbde5dceb make cellfun's fast scalar collection mechanism public
Jaroslav Hajek <highegg@gmail.com>
parents: 10614
diff changeset
1167 fast_elem_extract (octave_idx_type n) const
654fbde5dceb make cellfun's fast scalar collection mechanism public
Jaroslav Hajek <highegg@gmail.com>
parents: 10614
diff changeset
1168 { return rep->fast_elem_extract (n); }
654fbde5dceb make cellfun's fast scalar collection mechanism public
Jaroslav Hajek <highegg@gmail.com>
parents: 10614
diff changeset
1169
654fbde5dceb make cellfun's fast scalar collection mechanism public
Jaroslav Hajek <highegg@gmail.com>
parents: 10614
diff changeset
1170 // Assign the n-th element, aka val(n) = x. Returns false if val is not an
654fbde5dceb make cellfun's fast scalar collection mechanism public
Jaroslav Hajek <highegg@gmail.com>
parents: 10614
diff changeset
1171 // array type, x is not a matching scalar type, or n is out of range.
654fbde5dceb make cellfun's fast scalar collection mechanism public
Jaroslav Hajek <highegg@gmail.com>
parents: 10614
diff changeset
1172 // Never error.
654fbde5dceb make cellfun's fast scalar collection mechanism public
Jaroslav Hajek <highegg@gmail.com>
parents: 10614
diff changeset
1173 virtual bool
654fbde5dceb make cellfun's fast scalar collection mechanism public
Jaroslav Hajek <highegg@gmail.com>
parents: 10614
diff changeset
1174 fast_elem_insert (octave_idx_type n, const octave_value& x)
654fbde5dceb make cellfun's fast scalar collection mechanism public
Jaroslav Hajek <highegg@gmail.com>
parents: 10614
diff changeset
1175 {
654fbde5dceb make cellfun's fast scalar collection mechanism public
Jaroslav Hajek <highegg@gmail.com>
parents: 10614
diff changeset
1176 make_unique ();
654fbde5dceb make cellfun's fast scalar collection mechanism public
Jaroslav Hajek <highegg@gmail.com>
parents: 10614
diff changeset
1177 return rep->fast_elem_insert (n, x);
654fbde5dceb make cellfun's fast scalar collection mechanism public
Jaroslav Hajek <highegg@gmail.com>
parents: 10614
diff changeset
1178 }
654fbde5dceb make cellfun's fast scalar collection mechanism public
Jaroslav Hajek <highegg@gmail.com>
parents: 10614
diff changeset
1179
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
1180 protected:
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
1181
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
1182 // The real representation.
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
1183 octave_base_value *rep;
2413
44753e0cadf2 [project @ 1996-10-15 17:02:26 by jwe]
jwe
parents: 2410
diff changeset
1184
3933
f9ea3dcf58ee [project @ 2002-05-15 03:21:00 by jwe]
jwe
parents: 3930
diff changeset
1185 private:
2903
facd9d10e5c1 [project @ 1997-04-30 03:53:07 by jwe]
jwe
parents: 2891
diff changeset
1186
3205
549691faa638 [project @ 1998-10-31 04:20:15 by jwe]
jwe
parents: 3204
diff changeset
1187 assign_op unary_op_to_assign_op (unary_op op);
549691faa638 [project @ 1998-10-31 04:20:15 by jwe]
jwe
parents: 3204
diff changeset
1188
3204
81738e630f57 [project @ 1998-10-30 23:28:29 by jwe]
jwe
parents: 3203
diff changeset
1189 binary_op op_eq_to_binary_op (assign_op op);
81738e630f57 [project @ 1998-10-30 23:28:29 by jwe]
jwe
parents: 3203
diff changeset
1190
9521
e08d72bb988e simplify cloning
Jaroslav Hajek <highegg@gmail.com>
parents: 9479
diff changeset
1191 // This declaration protects against constructing octave_value from
e08d72bb988e simplify cloning
Jaroslav Hajek <highegg@gmail.com>
parents: 9479
diff changeset
1192 // const octave_base_value* which actually silently calls octave_value (bool).
e08d72bb988e simplify cloning
Jaroslav Hajek <highegg@gmail.com>
parents: 9479
diff changeset
1193 octave_value (const octave_base_value *);
e08d72bb988e simplify cloning
Jaroslav Hajek <highegg@gmail.com>
parents: 9479
diff changeset
1194
3219
30770ba4457a [project @ 1998-11-13 03:44:31 by jwe]
jwe
parents: 3209
diff changeset
1195 DECLARE_OCTAVE_ALLOCATOR
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
1196 };
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
1197
5508
7865515fc6c2 [project @ 2005-10-26 15:24:07 by jwe]
jwe
parents: 5353
diff changeset
1198 // Publish externally used friend functions.
7865515fc6c2 [project @ 2005-10-26 15:24:07 by jwe]
jwe
parents: 5353
diff changeset
1199
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5958
diff changeset
1200 extern OCTINTERP_API octave_value
5508
7865515fc6c2 [project @ 2005-10-26 15:24:07 by jwe]
jwe
parents: 5353
diff changeset
1201 do_unary_op (octave_value::unary_op op, const octave_value& a);
7865515fc6c2 [project @ 2005-10-26 15:24:07 by jwe]
jwe
parents: 5353
diff changeset
1202
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5958
diff changeset
1203 extern OCTINTERP_API octave_value
5508
7865515fc6c2 [project @ 2005-10-26 15:24:07 by jwe]
jwe
parents: 5353
diff changeset
1204 do_binary_op (octave_value::binary_op op,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10293
diff changeset
1205 const octave_value& a, const octave_value& b);
5508
7865515fc6c2 [project @ 2005-10-26 15:24:07 by jwe]
jwe
parents: 5353
diff changeset
1206
7800
5861b95e9879 support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
1207 extern OCTINTERP_API octave_value
5861b95e9879 support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
1208 do_binary_op (octave_value::compound_binary_op op,
5861b95e9879 support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
1209 const octave_value& a, const octave_value& b);
5861b95e9879 support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
1210
3203
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1211 #define OV_UNOP_FN(name) \
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1212 inline octave_value \
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1213 name (const octave_value& a) \
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1214 { \
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1215 return do_unary_op (octave_value::name, a); \
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1216 }
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1217
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1218 #define OV_UNOP_OP(name, op) \
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1219 inline octave_value \
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1220 operator op (const octave_value& a) \
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1221 { \
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1222 return name (a); \
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1223 }
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1224
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1225 #define OV_UNOP_FN_OP(name, op) \
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1226 OV_UNOP_FN (name) \
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1227 OV_UNOP_OP (name, op)
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1228
3525
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
1229 OV_UNOP_FN_OP (op_not, !)
6518
952c8b00525e [project @ 2007-04-11 20:50:22 by jwe]
jwe
parents: 6338
diff changeset
1230 OV_UNOP_FN_OP (op_uplus, +)
3525
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
1231 OV_UNOP_FN_OP (op_uminus, -)
3203
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1232
3525
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
1233 OV_UNOP_FN (op_transpose)
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
1234 OV_UNOP_FN (op_hermitian)
3203
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1235
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1236 // No simple way to define these for prefix and suffix ops?
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1237 //
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1238 // incr
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1239 // decr
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1240
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1241 #define OV_BINOP_FN(name) \
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1242 inline octave_value \
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1243 name (const octave_value& a1, const octave_value& a2) \
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1244 { \
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1245 return do_binary_op (octave_value::name, a1, a2); \
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1246 }
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1247
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1248 #define OV_BINOP_OP(name, op) \
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1249 inline octave_value \
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1250 operator op (const octave_value& a1, const octave_value& a2) \
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1251 { \
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1252 return name (a1, a2); \
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1253 }
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1254
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1255 #define OV_BINOP_FN_OP(name, op) \
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1256 OV_BINOP_FN (name) \
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1257 OV_BINOP_OP (name, op)
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1258
3525
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
1259 OV_BINOP_FN_OP (op_add, +)
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
1260 OV_BINOP_FN_OP (op_sub, -)
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
1261 OV_BINOP_FN_OP (op_mul, *)
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
1262 OV_BINOP_FN_OP (op_div, /)
3203
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1263
3525
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
1264 OV_BINOP_FN (op_pow)
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
1265 OV_BINOP_FN (op_ldiv)
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
1266 OV_BINOP_FN (op_lshift)
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
1267 OV_BINOP_FN (op_rshift)
3203
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1268
3525
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
1269 OV_BINOP_FN_OP (op_lt, <)
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
1270 OV_BINOP_FN_OP (op_le, <=)
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
1271 OV_BINOP_FN_OP (op_eq, ==)
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
1272 OV_BINOP_FN_OP (op_ge, >=)
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
1273 OV_BINOP_FN_OP (op_gt, >)
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
1274 OV_BINOP_FN_OP (op_ne, !=)
3203
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1275
3525
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
1276 OV_BINOP_FN (op_el_mul)
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
1277 OV_BINOP_FN (op_el_div)
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
1278 OV_BINOP_FN (op_el_pow)
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
1279 OV_BINOP_FN (op_el_ldiv)
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
1280 OV_BINOP_FN (op_el_and)
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
1281 OV_BINOP_FN (op_el_or)
3203
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1282
3525
6cfa474c5b99 [project @ 2000-02-02 10:48:41 by jwe]
jwe
parents: 3523
diff changeset
1283 OV_BINOP_FN (op_struct_ref)
3203
bc61b0e8d60e [project @ 1998-10-30 20:26:27 by jwe]
jwe
parents: 3202
diff changeset
1284
7800
5861b95e9879 support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
1285 #define OV_COMP_BINOP_FN(name) \
5861b95e9879 support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
1286 inline octave_value \
5861b95e9879 support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
1287 name (const octave_value& a1, const octave_value& a2) \
5861b95e9879 support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
1288 { \
5861b95e9879 support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
1289 return do_binary_op (octave_value::name, a1, a2); \
5861b95e9879 support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
1290 }
5861b95e9879 support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
1291
5861b95e9879 support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
1292 OV_COMP_BINOP_FN (op_trans_mul)
5861b95e9879 support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
1293 OV_COMP_BINOP_FN (op_mul_trans)
5861b95e9879 support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
1294 OV_COMP_BINOP_FN (op_herm_mul)
5861b95e9879 support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
1295 OV_COMP_BINOP_FN (op_mul_herm)
5861b95e9879 support for compound operators, implement trans_mul, mul_trans, herm_mul and mul_herm
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
1296
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5958
diff changeset
1297 extern OCTINTERP_API void install_types (void);
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
1298
5759
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
1299 // This will eventually go away, but for now it can be used to
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
1300 // simplify the transition to the new octave_value class hierarchy,
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
1301 // which uses octave_base_value instead of octave_value for the type
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
1302 // of octave_value::rep.
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
1303 #define OV_REP_TYPE octave_base_value
ce79d238f142 [project @ 2006-04-13 13:04:32 by jwe]
jwe
parents: 5758
diff changeset
1304
9657
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1305 // Templated value extractors.
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1306 template<class Value>
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1307 inline Value octave_value_extract (const octave_value&)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1308 { assert (false); }
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1309
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1310 #define DEF_VALUE_EXTRACTOR(VALUE,MPREFIX) \
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1311 template<> \
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1312 inline VALUE octave_value_extract<VALUE> (const octave_value& v) \
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1313 { return v.MPREFIX ## _value (); }
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1314
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1315 DEF_VALUE_EXTRACTOR (double, scalar)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1316 DEF_VALUE_EXTRACTOR (float, float_scalar)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1317 DEF_VALUE_EXTRACTOR (Complex, complex)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1318 DEF_VALUE_EXTRACTOR (FloatComplex, float_complex)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1319 DEF_VALUE_EXTRACTOR (bool, bool)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1320
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1321 DEF_VALUE_EXTRACTOR (octave_int8, int8_scalar)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1322 DEF_VALUE_EXTRACTOR (octave_int16, int16_scalar)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1323 DEF_VALUE_EXTRACTOR (octave_int32, int32_scalar)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1324 DEF_VALUE_EXTRACTOR (octave_int64, int64_scalar)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1325 DEF_VALUE_EXTRACTOR (octave_uint8, uint8_scalar)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1326 DEF_VALUE_EXTRACTOR (octave_uint16, uint16_scalar)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1327 DEF_VALUE_EXTRACTOR (octave_uint32, uint32_scalar)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1328 DEF_VALUE_EXTRACTOR (octave_uint64, uint64_scalar)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1329
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1330
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1331 DEF_VALUE_EXTRACTOR (NDArray, array)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1332 DEF_VALUE_EXTRACTOR (FloatNDArray, float_array)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1333 DEF_VALUE_EXTRACTOR (ComplexNDArray, complex_array)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1334 DEF_VALUE_EXTRACTOR (FloatComplexNDArray, float_complex_array)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1335 DEF_VALUE_EXTRACTOR (boolNDArray, bool_array)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1336
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1337 DEF_VALUE_EXTRACTOR (charNDArray, char_array)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1338 DEF_VALUE_EXTRACTOR (int8NDArray, int8_array)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1339 DEF_VALUE_EXTRACTOR (int16NDArray, int16_array)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1340 DEF_VALUE_EXTRACTOR (int32NDArray, int32_array)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1341 DEF_VALUE_EXTRACTOR (int64NDArray, int64_array)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1342 DEF_VALUE_EXTRACTOR (uint8NDArray, uint8_array)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1343 DEF_VALUE_EXTRACTOR (uint16NDArray, uint16_array)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1344 DEF_VALUE_EXTRACTOR (uint32NDArray, uint32_array)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1345 DEF_VALUE_EXTRACTOR (uint64NDArray, uint64_array)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1346
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1347 DEF_VALUE_EXTRACTOR (Matrix, matrix)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1348 DEF_VALUE_EXTRACTOR (FloatMatrix, float_matrix)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1349 DEF_VALUE_EXTRACTOR (ComplexMatrix, complex_matrix)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1350 DEF_VALUE_EXTRACTOR (FloatComplexMatrix, float_complex_matrix)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1351 DEF_VALUE_EXTRACTOR (boolMatrix, bool_matrix)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1352
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1353 DEF_VALUE_EXTRACTOR (ColumnVector, column_vector)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1354 DEF_VALUE_EXTRACTOR (FloatColumnVector, float_column_vector)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1355 DEF_VALUE_EXTRACTOR (ComplexColumnVector, complex_column_vector)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1356 DEF_VALUE_EXTRACTOR (FloatComplexColumnVector, float_complex_column_vector)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1357
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1358 DEF_VALUE_EXTRACTOR (RowVector, row_vector)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1359 DEF_VALUE_EXTRACTOR (FloatRowVector, float_row_vector)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1360 DEF_VALUE_EXTRACTOR (ComplexRowVector, complex_row_vector)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1361 DEF_VALUE_EXTRACTOR (FloatComplexRowVector, float_complex_row_vector)
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1362
9685
e793865ede63 implement builtin_type
Jaroslav Hajek <highegg@gmail.com>
parents: 9661
diff changeset
1363 DEF_VALUE_EXTRACTOR (DiagMatrix, diag_matrix)
e793865ede63 implement builtin_type
Jaroslav Hajek <highegg@gmail.com>
parents: 9661
diff changeset
1364 DEF_VALUE_EXTRACTOR (FloatDiagMatrix, float_diag_matrix)
e793865ede63 implement builtin_type
Jaroslav Hajek <highegg@gmail.com>
parents: 9661
diff changeset
1365 DEF_VALUE_EXTRACTOR (ComplexDiagMatrix, complex_diag_matrix)
e793865ede63 implement builtin_type
Jaroslav Hajek <highegg@gmail.com>
parents: 9661
diff changeset
1366 DEF_VALUE_EXTRACTOR (FloatComplexDiagMatrix, float_complex_diag_matrix)
e793865ede63 implement builtin_type
Jaroslav Hajek <highegg@gmail.com>
parents: 9661
diff changeset
1367 DEF_VALUE_EXTRACTOR (PermMatrix, perm_matrix)
e793865ede63 implement builtin_type
Jaroslav Hajek <highegg@gmail.com>
parents: 9661
diff changeset
1368
9789
97f5de91427b support sparse templated extractors
Jaroslav Hajek <highegg@gmail.com>
parents: 9732
diff changeset
1369 DEF_VALUE_EXTRACTOR (SparseMatrix, sparse_matrix)
97f5de91427b support sparse templated extractors
Jaroslav Hajek <highegg@gmail.com>
parents: 9732
diff changeset
1370 DEF_VALUE_EXTRACTOR (SparseComplexMatrix, sparse_complex_matrix)
97f5de91427b support sparse templated extractors
Jaroslav Hajek <highegg@gmail.com>
parents: 9732
diff changeset
1371 DEF_VALUE_EXTRACTOR (SparseBoolMatrix, sparse_bool_matrix)
9657
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1372 #undef DEF_VALUE_EXTRACTOR
3c1c3a38ec7b implement templated octave_value extractor
Jaroslav Hajek <highegg@gmail.com>
parents: 9607
diff changeset
1373
2376
2142216bf85a [project @ 1996-10-12 01:39:07 by jwe]
jwe
parents:
diff changeset
1374 #endif