149 retval =
"<unknown>";
175 retval =
"transpose";
179 retval =
"ctranspose";
281 retval =
"<unknown>";
381 retval =
"transtimes";
385 retval =
"timestrans";
389 retval =
"hermtimes";
393 retval =
"timesherm";
397 retval =
"transldiv";
495 retval =
"<unknown>";
608 #if defined (HAVE_LONG_LONG_INT)
615 #if defined (HAVE_UNSIGNED_LONG_LONG_INT)
995 : rep (new octave_int8_scalar (i))
1001 : rep (new octave_uint8_scalar (i))
1007 : rep (new octave_int16_scalar (i))
1013 : rep (new octave_uint16_scalar (i))
1019 : rep (new octave_int32_scalar (i))
1025 : rep (new octave_uint32_scalar (i))
1031 : rep (new octave_int64_scalar (i))
1037 : rep (new octave_uint64_scalar (i))
1043 : rep (new octave_int8_matrix (inda))
1049 : rep (new octave_int8_matrix (inda))
1055 : rep (new octave_uint8_matrix (inda))
1061 : rep (new octave_uint8_matrix (inda))
1067 : rep (new octave_int16_matrix (inda))
1073 : rep (new octave_int16_matrix (inda))
1079 : rep (new octave_uint16_matrix (inda))
1085 : rep (new octave_uint16_matrix (inda))
1091 : rep (new octave_int32_matrix (inda))
1097 : rep (new octave_int32_matrix (inda))
1103 : rep (new octave_uint32_matrix (inda))
1109 : rep (new octave_uint32_matrix (inda))
1115 : rep (new octave_int64_matrix (inda))
1121 : rep (new octave_int64_matrix (inda))
1127 : rep (new octave_uint64_matrix (inda))
1133 : rep (new octave_uint64_matrix (inda))
1169 idx.
unconvert (idx_class, scalar, range, array, mask);
1229 const std::list<std::string>& plist)
1236 const std::list<std::string>& plist)
1275 if (tmp && tmp !=
rep)
1288 std::list<octave_value_list> i;
1297 const std::list<octave_value_list>& idx,
int nargout)
1307 const std::list<octave_value_list>& idx,
int nargout,
1308 const std::list<octave_lvalue> *lvalue_list)
1311 return rep->
subsref (type, idx, nargout, lvalue_list);
1313 return subsref (type, idx, nargout);
1318 const std::list<octave_value_list>& idx,
1323 std::list<octave_value_list> new_idx (idx);
1324 for (
size_t i = 0; i < skip; i++)
1325 new_idx.erase (new_idx.begin ());
1326 return subsref (type.substr (skip), new_idx);
1334 const std::list<octave_value_list>& idx,
1339 std::list<octave_value_list> new_idx (idx);
1340 for (
size_t i = 0; i < skip; i++)
1341 new_idx.erase (new_idx.begin ());
1342 return subsref (type.substr (skip), new_idx, nargout);
1350 const std::list<octave_value_list>& idx,
1351 const std::list<octave_lvalue> *lvalue_list,
1356 std::list<octave_value_list> new_idx (idx);
1357 for (
size_t i = 0; i < skip; i++)
1358 new_idx.erase (new_idx.begin ());
1359 return subsref (type.substr (skip), new_idx, nargout, lvalue_list);
1367 const std::list<octave_value_list>& idx,
1372 std::list<octave_value_list> new_idx (idx);
1373 for (
size_t i = 0; i < skip; i++)
1374 new_idx.erase (new_idx.begin ());
1375 return subsref (type.substr (skip), new_idx, auto_add);
1389 const std::list<octave_lvalue> *lvalue_list)
1396 gripe_assign_failed (
const std::string& on,
const std::string& tn1,
1397 const std::string& tn2)
1399 error (
"assignment failed for '%s %s %s'",
1400 tn1.c_str (), on.c_str (), tn2.c_str ());
1406 const std::string& tn1,
1407 const std::string& tn2)
1409 error (
"assignment failed, or no method for '%s %s %s'",
1410 tn1.c_str (), on.c_str (), tn2.c_str ());
1415 const std::list<octave_value_list>& idx,
1423 const std::list<octave_value_list>& idx,
1431 const std::list<octave_value_list>& idx,
1455 error (
"in computed assignment A(index) OP= X, A must be defined first");
1499 catch (octave_execution_exception)
1519 error (
"in computed assignment A OP= X, A must be defined first");
1531 for (
int i = 0; i < dv.
length (); i++)
1549 bool retval =
false;
1577 #if defined (USE_64_BIT_IDX_T)
1580 return int_value (req_int, frc_str_conv);
1640 const std::string& my_type,
const std::string& wanted_type)
1646 if (retval.
length () > 2 || (retval(0) != 1 && retval(1) != 1))
1648 if (!force_vector_conversion)
1650 my_type.c_str (), wanted_type.c_str ());
1659 bool frc_vec_conv)
const
1667 bool frc_vec_conv)
const
1675 bool frc_vec_conv)
const
1683 bool frc_vec_conv)
const
1691 bool force_vector_conversion)
const
1699 force_vector_conversion,
1718 bool force_vector_conversion)
const
1753 double ai = a.
elem (i);
1754 int v =
static_cast<int> (ai);
1756 retval.
xelem (i) = v;
1774 force_vector_conversion,
1793 bool force_string_conv,
1794 bool force_vector_conversion)
const
1829 double ai = a.
elem (i);
1832 retval.
xelem (i) = v;
1850 force_vector_conversion,
1856 bool force_vector_conversion)
const
1864 force_vector_conversion,
1870 bool frc_vec_conv)
const
1878 bool frc_vec_conv)
const
1887 bool frc_vec_conv)
const
1895 bool frc_vec_conv)
const
1903 bool force_vector_conversion)
const
1911 force_vector_conversion,
1917 bool force_vector_conversion)
const
1925 force_vector_conversion,
1960 return rep->
write (os, block_size, output_type, skip, flt_fmt);
1965 const std::string& tn2)
1967 error (
"binary operator '%s' not implemented for '%s' by '%s' operations",
1968 on.c_str (), tn1.c_str (), tn2.c_str ());
1974 error (
"type conversion failed for binary operator '%s'", on.c_str ());
1998 retval =
f (v1, v2);
2000 catch (octave_execution_exception)
2021 retval =
f (*v1.
rep, *v2.
rep);
2023 catch (octave_execution_exception)
2149 retval =
f (*tv1.
rep, *tv2.
rep);
2151 catch (octave_execution_exception)
2229 error (
"invalid compound operator");
2257 retval =
f (v1, v2);
2259 catch (octave_execution_exception)
2276 retval =
f (*v1.
rep, *v2.
rep);
2278 catch (octave_execution_exception)
2293 error (
"concatenation operator not implemented for '%s' by '%s' operations",
2294 tn1.c_str (), tn2.c_str ());
2300 error (
"type conversion failed for concatenation operator");
2322 retval =
f (*v1.
rep, *v2.
rep, ra_idx);
2324 catch (octave_execution_exception)
2400 std::string dispatch_type;
2418 args(1) = increment;
2431 error (
"colon method not defined for %s class", dispatch_type.c_str ());
2442 error (
"invalid base value in colon expression");
2450 error (
"invalid limit value in colon expression");
2460 error (
"invalid increment value in colon expression");
2464 bool base_empty = m_base.
is_empty ();
2465 bool limit_empty = m_limit.
is_empty ();
2466 bool increment_empty = m_increment.
is_empty ();
2468 if (base_empty || limit_empty || increment_empty)
2472 Range r (m_base(0), m_limit(0), m_increment(0));
2480 retval = retval.
convert_to_str (
false,
true, dq_str ?
'"' :
'\'');
2490 os << prefix <<
"type_name: " <<
type_name () <<
"\n"
2491 << prefix <<
"count: " <<
get_count () <<
"\n"
2492 << prefix <<
"rep info: ";
2500 error (
"unary operator '%s' not implemented for '%s' operands",
2501 on.c_str (), tn.c_str ());
2507 error (
"type conversion failed for unary operator '%s'", on.c_str ());
2529 catch (octave_execution_exception)
2550 retval =
f (*v.
rep);
2552 catch (octave_execution_exception)
2586 const std::string& tn)
2588 error (
"operator %s: type conversion for '%s' failed",
2589 op.c_str (), tn.c_str ());
2603 error (
"in x%s or %sx, x must be defined first",
2604 op_str.c_str (), op_str.c_str ());
2622 catch (octave_execution_exception)
2650 catch (octave_execution_exception)
2655 if (old_rep && --old_rep->
count == 0)
2698 catch (octave_execution_exception)
2712 const std::list<octave_value_list>& idx)
2724 assign (assop, type, idx, 1.0);
2748 error (
"operator %s: no assign operator found", on.c_str ());
2821 error (
"operator %s: no binary operator found", on.c_str ());
2833 if (type.length () > 0)
2839 if (type.length () > 1 && type[1] ==
'.')
2880 octave_int8_scalar::register_type ();
2881 octave_int16_scalar::register_type ();
2882 octave_int32_scalar::register_type ();
2883 octave_int64_scalar::register_type ();
2884 octave_uint8_scalar::register_type ();
2885 octave_uint16_scalar::register_type ();
2886 octave_uint32_scalar::register_type ();
2887 octave_uint64_scalar::register_type ();
2888 octave_int8_matrix::register_type ();
2889 octave_int16_matrix::register_type ();
2890 octave_int32_matrix::register_type ();
2891 octave_int64_matrix::register_type ();
2892 octave_uint8_matrix::register_type ();
2893 octave_uint16_matrix::register_type ();
2894 octave_uint32_matrix::register_type ();
2895 octave_uint64_matrix::register_type ();
2926 DEFUN (
sizeof, args, ,
2928 @deftypefn {Built-in Function} {} sizeof (@var{val})\n\
2929 Return the size of @var{val} in bytes.\n\
2935 if (args.length () == 1)
2951 std::string& type_string,
2952 std::list<octave_value_list>& idx)
2961 type_string = std::string (nel,
'\0');
2962 idx = std::list<octave_value_list> ();
2970 for (
int k = 0; k < nel; k++)
2972 if (
type(k).is_string ())
2974 std::string item =
type(k).string_value ();
2976 type_string[k] =
'{';
2977 else if (item ==
"()")
2978 type_string[k] =
'(';
2979 else if (item ==
".")
2980 type_string[k] =
'.';
2983 error (
"%s: invalid indexing type '%s'", name, item.c_str ());
2989 error (
"%s: type(%d) must be a string", name, k+1);
2995 if (subs(k).is_string ())
2996 idx_item(0) = subs(k);
2997 else if (subs(k).is_cell ())
2999 Cell subs_cell = subs(k).cell_value ();
3001 for (
int n = 0; n < subs_cell.
length (); n++)
3003 if (subs_cell(n).is_string ()
3004 && subs_cell(n).string_value () ==
":")
3007 idx_item(n) = subs_cell(n);
3012 error (
"%s: subs(%d) must be a string or cell array", name, k+1);
3016 idx.push_back (idx_item);
3020 error (
"%s: second argument must be a structure with fields 'type' and 'subs'",
3024 DEFUN (subsref, args, nargout,
3026 @deftypefn {Built-in Function} {} subsref (@var{val}, @var{idx})\n\
3027 Perform the subscripted element selection operation according to the\n\
3028 subscript specified by @var{idx}.\n\
3030 The subscript @var{idx} is expected to be a structure array with fields\n\
3031 @samp{type} and @samp{subs}. Valid values for @samp{type} are\n\
3032 @samp{\"()\"}, @samp{\"@{@}\"}, and @samp{\".\"}. The @samp{subs} field may\n\
3033 be either @samp{\":\"} or a cell array of index values.\n\
3035 The following example shows how to extract the first two columns of a matrix\n\
3040 @result{} val = [ 8 1 6\n\
3043 idx.type = \"()\";\n\
3044 idx.subs = @{\":\", 1:2@};\n\
3045 subsref (val, idx)\n\
3053 Note that this is the same as writing @code{val(:,1:2)}.\n\
3055 If @var{idx} is an empty structure array with fields @samp{type} and\n\
3056 @samp{subs}, return @var{val}.\n\
3057 @seealso{subsasgn, substruct}\n\
3062 if (args.length () == 2)
3065 std::list<octave_value_list> idx;
3076 retval = arg0.
subsref (type, idx, nargout);
3085 DEFUN (subsasgn, args, ,
3087 @deftypefn {Built-in Function} {} subsasgn (@var{val}, @var{idx}, @var{rhs})\n\
3088 Perform the subscripted assignment operation according to the subscript\n\
3089 specified by @var{idx}.\n\
3091 The subscript @var{idx} is expected to be a structure array with fields\n\
3092 @samp{type} and @samp{subs}. Valid values for @samp{type} are\n\
3093 @samp{\"()\"}, @samp{\"@{@}\"}, and @samp{\".\"}. The @samp{subs} field may\n\
3094 be either @samp{\":\"} or a cell array of index values.\n\
3096 The following example shows how to set the two first columns of a 3-by-3\n\
3102 idx.type = \"()\";\n\
3103 idx.subs = @{\":\", 1:2@};\n\
3104 subsasgn (val, idx, 0)\n\
3105 @result{} [ 0 0 6\n\
3111 Note that this is the same as writing @code{val(:,1:2) = 0}.\n\
3113 If @var{idx} is an empty structure array with fields @samp{type} and\n\
3114 @samp{subs}, return @var{rhs}.\n\
3115 @seealso{subsref, substruct}\n\
3120 if (args.length () == 3)
3123 std::list<octave_value_list> idx;
3142 retval= arg0.
subsasgn (type, idx, args(2));
3219 DEFUN (is_sq_string, args, ,
3221 @deftypefn {Built-in Function} {} is_sq_string (@var{x})\n\
3222 Return true if @var{x} is a single-quoted character string.\n\
3223 @seealso{is_dq_string, ischar}\n\
3228 if (args.length () == 1)
3246 DEFUN (is_dq_string, args, ,
3248 @deftypefn {Built-in Function} {} is_dq_string (@var{x})\n\
3249 Return true if @var{x} is a double-quoted character string.\n\
3250 @seealso{is_sq_string, ischar}\n\
3255 if (args.length () == 1)
3273 DEFUN (disable_permutation_matrix, args, nargout,
3275 @deftypefn {Built-in Function} {@var{val} =} disable_permutation_matrix ()\n\
3276 @deftypefnx {Built-in Function} {@var{old_val} =} disable_permutation_matrix (@var{new_val})\n\
3277 @deftypefnx {Built-in Function} {} disable_permutation_matrix (@var{new_val}, \"local\")\n\
3278 Query or set the internal variable that controls whether permutation\n\
3279 matrices are stored in a special space-efficient format.\n\
3281 The default value is true. If this option is disabled Octave will store\n\
3282 permutation matrices as full matrices.\n\
3284 When called from inside a function with the @qcode{\"local\"} option, the\n\
3285 variable is changed locally for the function and any subroutines it calls.\n\
3286 The original variable value is restored when exiting the function.\n\
3287 @seealso{disable_range, disable_diagonal_matrix}\n\
3303 DEFUN (disable_diagonal_matrix, args, nargout,
3305 @deftypefn {Built-in Function} {@var{val} =} disable_diagonal_matrix ()\n\
3306 @deftypefnx {Built-in Function} {@var{old_val} =} disable_diagonal_matrix (@var{new_val})\n\
3307 @deftypefnx {Built-in Function} {} disable_diagonal_matrix (@var{new_val}, \"local\")\n\
3308 Query or set the internal variable that controls whether diagonal\n\
3309 matrices are stored in a special space-efficient format.\n\
3311 The default value is true. If this option is disabled Octave will store\n\
3312 diagonal matrices as full matrices.\n\
3314 When called from inside a function with the @qcode{\"local\"} option, the\n\
3315 variable is changed locally for the function and any subroutines it calls.\n\
3316 The original variable value is restored when exiting the function.\n\
3317 @seealso{disable_range, disable_permutation_matrix}\n\
3347 DEFUN (disable_range, args, nargout,
3349 @deftypefn {Built-in Function} {@var{val} =} disable_range ()\n\
3350 @deftypefnx {Built-in Function} {@var{old_val} =} disable_range (@var{new_val})\n\
3351 @deftypefnx {Built-in Function} {} disable_range (@var{new_val}, \"local\")\n\
3352 Query or set the internal variable that controls whether ranges are stored\n\
3353 in a special space-efficient format.\n\
3355 The default value is true. If this option is disabled Octave will store\n\
3356 ranges as full matrices.\n\
3358 When called from inside a function with the @qcode{\"local\"} option, the\n\
3359 variable is changed locally for the function and any subroutines it calls.\n\
3360 The original variable value is restored when exiting the function.\n\
3361 @seealso{disable_diagonal_matrix, disable_permutation_matrix}\n\
uint8NDArray uint8_array_value(void) const
void gripe_implicit_conversion(const char *id, const char *from, const char *to)
static void register_type(void)
bool is_object(void) const
ColumnVector column_vector_value(bool frc_str_conv=false, bool frc_vec_conv=false) const
ComplexNDArray complex_array_value(bool frc_str_conv=false) const
const Cell & contents(const_iterator p) const
bool is_empty(void) const
static void register_type(void)
virtual int write(octave_stream &os, int block_size, oct_data_conv::data_type output_type, int skip, oct_mach_info::float_format flt_fmt) const
void(* non_const_unary_op_fcn)(octave_base_value &)
virtual octave_fcn_handle * fcn_handle_value(bool silent=false)
octave_refcount< octave_idx_type > count
octave_value(* binary_op_fcn)(const octave_base_value &, const octave_base_value &)
octave_value subsref(const std::string &type, const std::list< octave_value_list > &idx)
virtual octave_value_list do_multi_index_op(int nargout, const octave_value_list &idx)
octave_value & operator=(const octave_value &a)
const octave_base_value const Array< octave_idx_type > & ra_idx
octave_idx_type rows(void) const
octave_value do_cat_op(const octave_value &v1, const octave_value &v2, const Array< octave_idx_type > &ra_idx)
int8NDArray int8_array_value(void) const
void print_info(std::ostream &os, const std::string &prefix=std::string()) const
virtual octave_map map_value(void) const
octave_base_value * empty_clone(void) const
static octave_value find_method(const std::string &name, const std::string &dispatch_type)
FloatColumnVector float_column_vector_value(bool frc_str_conv=false, bool frc_vec_conv=false) const
bool is_uint16_type(void) const
static void register_type(void)
static void register_type(void)
OCTINTERP_API void print_usage(void)
static std::string binary_op_as_string(binary_op)
octave_idx_type numel(void) const
Number of elements in the array.
static bool Vdisable_range
int16NDArray int16_array_value(void) const
octave_idx_type length(void) const
octave_map map_value(void) const
octave_value do_unary_op(octave_value::unary_op op, const octave_value &v)
octave_user_code * user_code_value(bool silent=false) const
F77_RET_T const octave_idx_type Complex * A
static void register_type(void)
static assign_op binary_op_to_assign_op(binary_op)
bool contains(const std::string &name) const
bool is_defined(void) const
static non_const_unary_op_fcn lookup_non_const_unary_op(octave_value::unary_op op, int t)
static void register_type(void)
static void register_type(void)
int int_value(bool req_int=false, bool frc_str_conv=false) const
uint64NDArray uint64_array_value(void) const
int64_t int64_value(bool req_int=false, bool frc_str_conv=false) const
#define DEFUN(name, args_name, nargout_name, doc)
void error(const char *fmt,...)
int32NDArray int32_array_value(void) const
#define SET_INTERNAL_VARIABLE(NM)
static std::string unary_op_fcn_name(unary_op)
bool is_int8_type(void) const
octave_value_list feval(const std::string &name, const octave_value_list &args, int nargout)
static void register_type(void)
static void register_type(void)
static void register_type(void)
static binary_op assign_op_to_binary_op(assign_op)
octave_value(* binary_class_op_fcn)(const octave_value &, const octave_value &)
static void register_type(void)
static std::string assign_op_as_string(assign_op)
void gripe_library_execution_error(void)
static void register_type(void)
T & elem(octave_idx_type n)
static binary_op_fcn lookup_binary_op(octave_value::binary_op op, int t1, int t2)
octave_idx_type numel(void) const
static void gripe_cat_op_conv(void)
static void register_type(void)
const octave_base_value const Array< octave_idx_type > &ra_idx octave_int16_scalar & v1
static void register_type(void)
bool is_int32_type(void) const
octave_fcn_handle * fcn_handle_value(bool silent=false) const
virtual octave_value subsref(const std::string &type, const std::list< octave_value_list > &idx)
octave_idx_type idx_type_value(bool req_int=false, bool frc_str_conv=false) const
static void register_type(void)
binary_op op_eq_to_binary_op(assign_op op)
Array< Complex > complex_vector_value(bool frc_str_conv=false, bool frc_vec_conv=false) const
octave_value & do_non_const_unary_op(unary_op op)
octave_base_value * clone(void) const
octave_idx_type numel(int n=0) const
Number of elements that a matrix with this dimensions would have.
F77_RET_T const double const double double * d
virtual octave_value subsasgn(const std::string &type, const std::list< octave_value_list > &idx, const octave_value &rhs)
virtual void print_info(std::ostream &os, const std::string &prefix) const
octave_value subsasgn(const std::string &type, const std::list< octave_value_list > &idx, const octave_value &rhs)
int64NDArray int64_array_value(void) const
Cell cell_value(void) const
static unary_class_op_fcn lookup_unary_class_op(octave_value::unary_op op)
octave_base_value::type_conv_info numeric_demotion_function(void) const
static bool Vdisable_permutation_matrix
virtual octave_value undef_subsasgn(const std::string &type, const std::list< octave_value_list > &idx, const octave_value &rhs)
virtual octave_value_list list_value(void) const
const dim_vector & dims(void) const
Return a const-reference so that dims ()(i) works efficiently.
static void register_type(void)
octave_value single_subsref(const std::string &type, const octave_value_list &idx)
static void register_type(void)
octave_value_list do_multi_index_op(int nargout, const octave_value_list &idx)
virtual octave_fcn_inline * fcn_inline_value(bool silent=false)
static void register_type(void)
virtual octave_base_value * clone(void) const
octave_value(* cat_op_fcn)(octave_base_value &, const octave_base_value &, const Array< octave_idx_type > &ra_idx)
octave_idx_type columns(void) const
virtual octave_base_value * try_narrowing_conversion(void)
static void register_type(void)
FloatNDArray float_array_value(bool frc_str_conv=false) const
static void register_type(void)
virtual octave_user_function * user_function_value(bool silent=false)
bool is_null_value(void) const
F77_RET_T const double const double * f
static void register_type(void)
octave_value convert_to_str(bool pad=false, bool force=false, char type= '\'') const
virtual octave_scalar_map scalar_map_value(void) const
octave_idx_type nfields(void) const
static void register_type(void)
octave_value(* unary_op_fcn)(const octave_base_value &)
static void register_type(void)
void error_with_cfn(const char *fmt,...)
static void register_type(void)
static void register_type(void)
octave_base_value::type_conv_info numeric_conversion_function(void) const
FloatComplexNDArray float_complex_array_value(bool frc_str_conv=false) const
bool is_string(void) const
octave_user_function * user_function_value(bool silent=false) const
void maybe_economize(void)
static std::string binary_op_fcn_name(binary_op)
static void register_type(void)
static void register_type(void)
static void register_type(void)
Array< octave_idx_type > octave_idx_type_vector_value(bool req_int=false, bool frc_str_conv=false, bool frc_vec_conv=false) const
friend OCTINTERP_API octave_value do_binary_op(binary_op op, const octave_value &a, const octave_value &b)
void resize(const dim_vector &dv, const T &rfv)
octave_value & assign(assign_op op, const std::string &type, const std::list< octave_value_list > &idx, const octave_value &rhs)
bool is_int64_type(void) const
virtual octave_base_value * empty_clone(void) const
#define panic_impossible()
FloatComplexRowVector float_complex_row_vector_value(bool frc_str_conv=false, bool frc_vec_conv=false) const
static void register_type(void)
static int static_type_id(void)
assign_op unary_op_to_assign_op(unary_op op)
octave_idx_type length(void) const
static void register_type(void)
static binary_class_op_fcn lookup_binary_class_op(octave_value::binary_op op)
dim_vector dims(void) const
virtual octave_user_code * user_code_value(bool silent=false)
Matrix matrix_value(bool frc_str_conv=false) const
int write(octave_stream &os, int block_size, oct_data_conv::data_type output_type, int skip, oct_mach_info::float_format flt_fmt) const
static void register_type(void)
void make_storable_value(void)
static void register_type(void)
octave_function * function_value(bool silent=false) const
static void gripe_unary_op_conv(const std::string &on)
T & xelem(octave_idx_type n)
bool is_int16_type(void) const
static void gripe_binary_op_conv(const std::string &on)
static void gripe_unary_op(const std::string &on, const std::string &tn)
std::string type_name(void) const
idx_class_type idx_class(void) const
static Array< octave_idx_type > convert_to_octave_idx_type_array(const Array< octave_int< T > > &A)
octave_idx_type length(void) const
Number of elements in the array.
octave_value(* assign_op_fcn)(octave_base_value &, const octave_value_list &, const octave_base_value &)
bool is_empty(void) const
octave_value undef_subsasgn(const std::string &type, const std::list< octave_value_list > &idx, const octave_value &rhs)
const octave_char_matrix & v2
bool is_sq_string(void) const
NDArray array_value(bool frc_str_conv=false) const
static cat_op_fcn lookup_cat_op(int t1, int t2)
octave_base_value *(* type_conv_fcn)(const octave_base_value &)
FloatRowVector float_row_vector_value(bool frc_str_conv=false, bool frc_vec_conv=false) const
octave_scalar_map scalar_map_value(void) const
ComplexRowVector complex_row_vector_value(bool frc_str_conv=false, bool frc_vec_conv=false) const
bool is_dq_string(void) const
static void gripe_cat_op(const std::string &tn1, const std::string &tn2)
bool is_uint8_type(void) const
RowVector row_vector_value(bool frc_str_conv=false, bool frc_vec_conv=false) const
static bool Vdisable_diagonal_matrix
FloatComplexColumnVector float_complex_column_vector_value(bool frc_str_conv=false, bool frc_vec_conv=false) const
octave_value(* unary_class_op_fcn)(const octave_value &)
Array< double > vector_value(bool frc_str_conv=false, bool frc_vec_conv=false) const
static void gripe_assign_failed_or_no_method(const std::string &on, const std::string &tn1, const std::string &tn2)
std::string class_name(void) const
octave_idx_type get_count(void) const
static void register_type(void)
bool is_undefined(void) const
bool is_uint64_type(void) const
Array< T > reshape(octave_idx_type nr, octave_idx_type nc) const
void unconvert(idx_class_type &iclass, double &scalar, Range &range, Array< double > &array, Array< bool > &mask) const
static void decode_subscripts(const char *name, const octave_value &arg, std::string &type_string, std::list< octave_value_list > &idx)
octave_value_list list_value(void) const
std::complex< float > FloatComplex
ComplexColumnVector complex_column_vector_value(bool frc_str_conv=false, bool frc_vec_conv=false) const
Array< int > int_vector_value(bool req_int=false, bool frc_str_conv=false, bool frc_vec_conv=false) const
friend OCTINTERP_API octave_value do_unary_op(unary_op op, const octave_value &a)
Array< FloatComplex > float_complex_vector_value(bool frc_str_conv=false, bool frc_vec_conv=false) const
static assign_op_fcn lookup_assign_op(octave_value::assign_op op, int t_lhs, int t_rhs)
std::complex< double > Complex
virtual octave_function * function_value(bool silent=false)
octave_fcn_inline * fcn_inline_value(bool silent=false) const
static void gripe_unary_op_conversion_failed(const std::string &op, const std::string &tn)
static std::string unary_op_as_string(unary_op)
static Array< int > convert_to_int_array(const Array< octave_int< T > > &A)
bool is_uint32_type(void) const
static void register_type(void)
octave_user_script * user_script_value(bool silent=false) const
virtual Cell cell_value(void) const
octave_value storable_value(void) const
bool is_equal(const octave_value &) const
static void register_type(void)
void chop_trailing_singletons(void)
octave_value do_colon_op(const octave_value &base, const octave_value &increment, const octave_value &limit, bool is_for_cmd_expr)
uint32NDArray uint32_array_value(void) const
static dim_vector make_vector_dims(const dim_vector &dv, bool force_vector_conversion, const std::string &my_type, const std::string &wanted_type)
virtual octave_user_script * user_script_value(bool silent=false)
static int static_type_id(void)
uint16NDArray uint16_array_value(void) const
static void register_type(void)
octave_value next_subsref(const std::string &type, const std::list< octave_value_list > &idx, size_t skip=1)
return octave_value(v1.char_array_value().concat(v2.char_array_value(), ra_idx),((a1.is_sq_string()||a2.is_sq_string())? '\'': '"'))
static octave_value empty_conv(const std::string &type, const octave_value &rhs=octave_value())
static bool scalar(const dim_vector &dims)
Array< float > float_vector_value(bool frc_str_conv=false, bool frc_vec_conv=false) const
octave_value do_binary_op(octave_value::binary_op op, const octave_value &v1, const octave_value &v2)
static void gripe_binary_op(const std::string &on, const std::string &tn1, const std::string &tn2)
static void register_type(void)
size_t byte_size(void) const
static void register_type(void)
static octave_value decompose_binary_op(octave_value::compound_binary_op op, const octave_value &v1, const octave_value &v2)
static unary_op_fcn lookup_unary_op(octave_value::unary_op op, int t)
bool is_integer_type(void) const
static void register_type(void)