26#if ! defined (octave_ov_h)
29#include "octave-config.h"
53class scope_stack_frame;
54class base_value_stack_frame;
56OCTAVE_END_NAMESPACE(octave)
67class octave_fcn_cache;
130 unknown_compound_binary_op
152 static OCTINTERP_API
binary_op assign_op_to_binary_op (assign_op);
154 static OCTINTERP_API assign_op binary_op_to_assign_op (binary_op);
156 static OCTINTERP_API std::string unary_op_as_string (unary_op);
157 static OCTINTERP_API std::string unary_op_fcn_name (unary_op);
159 static OCTINTERP_API std::string binary_op_as_string (binary_op);
160 static OCTINTERP_API std::string binary_op_fcn_name (binary_op);
162 static OCTINTERP_API std::string binary_op_fcn_name (compound_binary_op);
164 static OCTINTERP_API std::string assign_op_as_string (assign_op);
190#if defined (OCTAVE_HAVE_LONG_LONG_INT)
193#if defined (OCTAVE_HAVE_UNSIGNED_LONG_LONG_INT)
201 bool is_cs_list =
false);
245 OCTINTERP_API
octave_value (
const std::string& s,
char type =
'\'');
288 bool zero_based =
false,
289 bool cache_index =
false);
291 OCTINTERP_API
octave_value (
const octave::idx_vector& idx,
bool lazy =
true);
294 bool force_range =
false);
300 OCTINTERP_API
octave_value (
const std::map<std::string, octave_value>&);
302 const std::list<std::string>& plist);
304 const std::list<std::string>& plist);
348 if (m_rep && --m_rep->m_count == 0 && m_rep != nil_rep ())
354 if (m_rep->m_count > 1)
358 if (--m_rep->m_count == 0 && m_rep != nil_rep ())
370 if (m_rep->m_count > obsolete_copies + 1)
374 if (--m_rep->m_count == 0 && m_rep != nil_rep ())
391 if (m_rep != a.
m_rep)
393 if (--m_rep->m_count == 0 && m_rep != nil_rep ())
411 if (m_rep && --m_rep->m_count == 0 && m_rep != nil_rep ())
424 {
return m_rep->numeric_conversion_function (); }
427 {
return m_rep->numeric_demotion_function (); }
463 {
return m_rep->
size (); }
468 {
return m_rep->xnumel (idx); }
477 const std::list<octave_value_list>& idx)
478 {
return m_rep->
subsref (type, idx); }
481 const std::list<octave_value_list>& idx,
483 {
return m_rep->
subsref (type, idx, auto_add); }
486 subsref (
const std::string& type,
const std::list<octave_value_list>& idx,
494 const std::list<octave_value_list>& idx, std::size_t skip = 1);
498 const std::list<octave_value_list>& idx, std::size_t skip = 1);
502 const std::list<octave_value_list>& idx, std::size_t skip = 1);
506 return m_rep->do_index_op (idx, resize_ok);
514 subsasgn (
const std::string& type,
const std::list<octave_value_list>& idx,
525 const std::list<octave_value_list>& idx,
530 const std::list<octave_value_list>& idx,
const octave_value& rhs);
536 return m_rep->index_vector (require_integers);
551 int ndims ()
const {
return m_rep->ndims (); }
557 {
return (ndims () == 2 && rows () == 0 && columns () == 0); }
560 {
return m_rep->numel (); }
563 {
return m_rep->byte_size (); }
572 {
return m_rep->
reshape (dv); }
575 {
return m_rep->
permute (vec, inv); }
578 {
return m_rep->
permute (vec,
true); }
581 {
return m_rep->
resize (dv, fill);}
593 {
return m_rep->is_defined (); }
596 {
return ! is_defined (); }
599 {
return m_rep->is_legacy_object (); }
602 {
return m_rep->isempty (); }
605 {
return m_rep->iscell (); }
608 {
return m_rep->iscellstr (); }
611 {
return m_rep->is_real_scalar (); }
614 {
return m_rep->is_real_matrix (); }
617 {
return m_rep->is_complex_scalar (); }
620 {
return m_rep->is_complex_matrix (); }
623 {
return m_rep->is_bool_scalar (); }
626 {
return m_rep->is_bool_matrix (); }
629 {
return m_rep->is_char_matrix (); }
632 {
return m_rep->is_diag_matrix (); }
635 {
return m_rep->is_perm_matrix (); }
638 {
return m_rep->is_string (); }
641 {
return m_rep->is_sq_string (); }
644 {
return m_rep->is_string () && ! m_rep->is_sq_string (); }
647 {
return m_rep->is_range (); }
650 {
return m_rep->isstruct (); }
653 {
return m_rep->is_classdef_meta (); }
656 {
return m_rep->is_classdef_object (); }
659 {
return m_rep->is_classdef_superclass_ref (); }
662 {
return m_rep->is_package (); }
665 {
return m_rep->isobject (); }
668 {
return m_rep->isjava (); }
671 {
return m_rep->is_cs_list (); }
674 {
return m_rep->is_magic_colon (); }
677 {
return m_rep->is_magic_int (); }
680 {
return m_rep->isnull (); }
685 {
return m_rep->
all (dim); }
688 {
return m_rep->
any (dim); }
691 {
return m_rep->builtin_type (); }
696 {
return m_rep->is_double_type (); }
699 {
return m_rep->is_single_type (); }
702 {
return m_rep->isfloat (); }
707 {
return m_rep->is_int8_type (); }
710 {
return m_rep->is_int16_type (); }
713 {
return m_rep->is_int32_type (); }
716 {
return m_rep->is_int64_type (); }
719 {
return m_rep->is_uint8_type (); }
722 {
return m_rep->is_uint16_type (); }
725 {
return m_rep->is_uint32_type (); }
728 {
return m_rep->is_uint64_type (); }
731 {
return m_rep->isinteger (); }
736 {
return m_rep->islogical (); }
739 {
return m_rep->isreal (); }
742 {
return m_rep->iscomplex (); }
745 {
return m_rep->is_scalar_type (); }
748 {
return m_rep->is_matrix_type (); }
751 {
return m_rep->isnumeric (); }
754 {
return m_rep->issparse (); }
759 {
return m_rep->is_true (); }
766 {
return m_rep->is_constant (); }
769 {
return m_rep->is_function_handle (); }
772 {
return m_rep->is_anonymous_function (); }
775 {
return m_rep->is_inline_function (); }
778 {
return m_rep->is_function (); }
781 {
return m_rep->is_user_script (); }
784 {
return m_rep->is_user_function (); }
787 {
return m_rep->is_user_code (); }
790 {
return m_rep->is_builtin_function (); }
793 {
return m_rep->is_dld_function (); }
796 {
return m_rep->is_mex_function (); }
805 short_value (
bool req_int =
false,
bool frc_str_conv =
false)
const
806 {
return m_rep->short_value (req_int, frc_str_conv); }
810 {
return m_rep->ushort_value (req_int, frc_str_conv); }
812 int int_value (
bool req_int =
false,
bool frc_str_conv =
false)
const
813 {
return m_rep->int_value (req_int, frc_str_conv); }
816 {
return m_rep->int_value (
true, frc_str_conv); }
819 uint_value (
bool req_int =
false,
bool frc_str_conv =
false)
const
820 {
return m_rep->uint_value (req_int, frc_str_conv); }
823 {
return m_rep->nint_value (frc_str_conv); }
826 long_value (
bool req_int =
false,
bool frc_str_conv =
false)
const
827 {
return m_rep->long_value (req_int, frc_str_conv); }
830 ulong_value (
bool req_int =
false,
bool frc_str_conv =
false)
const
831 {
return m_rep->ulong_value (req_int, frc_str_conv); }
834 int64_value (
bool req_int =
false,
bool frc_str_conv =
false)
const
835 {
return m_rep->int64_value (req_int, frc_str_conv); }
839 {
return m_rep->uint64_value (req_int, frc_str_conv); }
848 {
return m_rep->double_value (frc_str_conv); }
851 {
return m_rep->float_value (frc_str_conv); }
854 {
return m_rep->scalar_value (frc_str_conv); }
857 {
return m_rep->float_scalar_value (frc_str_conv); }
860 {
return m_rep->matrix_value (frc_str_conv); }
863 {
return m_rep->float_matrix_value (frc_str_conv); }
866 {
return m_rep->array_value (frc_str_conv); }
869 {
return m_rep->float_array_value (frc_str_conv); }
872 {
return m_rep->complex_value (frc_str_conv); }
875 {
return m_rep->float_complex_value (frc_str_conv); }
878 {
return m_rep->complex_matrix_value (frc_str_conv); }
882 {
return m_rep->float_complex_matrix_value (frc_str_conv); }
885 {
return m_rep->complex_array_value (frc_str_conv); }
889 {
return m_rep->float_complex_array_value (frc_str_conv); }
892 {
return m_rep->bool_value (warn); }
895 {
return m_rep->bool_value (
true); }
898 {
return m_rep->bool_matrix_value (warn); }
901 {
return m_rep->bool_array_value (warn); }
904 {
return m_rep->char_matrix_value (frc_str_conv); }
907 {
return m_rep->char_array_value (frc_str_conv); }
910 {
return m_rep->sparse_matrix_value (frc_str_conv); }
914 {
return m_rep->sparse_complex_matrix_value (frc_str_conv); }
917 {
return m_rep->sparse_bool_matrix_value (warn); }
920 {
return m_rep->diag_matrix_value (force); }
923 {
return m_rep->float_diag_matrix_value (force); }
926 {
return m_rep->complex_diag_matrix_value (force); }
930 {
return m_rep->float_complex_diag_matrix_value (force); }
933 {
return m_rep->perm_matrix_value (); }
936 {
return m_rep->int8_scalar_value (); }
939 {
return m_rep->int16_scalar_value (); }
942 {
return m_rep->int32_scalar_value (); }
945 {
return m_rep->int64_scalar_value (); }
948 {
return m_rep->uint8_scalar_value (); }
951 {
return m_rep->uint16_scalar_value (); }
954 {
return m_rep->uint32_scalar_value (); }
957 {
return m_rep->uint64_scalar_value (); }
960 {
return m_rep->int8_array_value (); }
963 {
return m_rep->int16_array_value (); }
966 {
return m_rep->int32_array_value (); }
969 {
return m_rep->int64_array_value (); }
972 {
return m_rep->uint8_array_value (); }
975 {
return m_rep->uint16_array_value (); }
978 {
return m_rep->uint32_array_value (); }
981 {
return m_rep->uint64_array_value (); }
984 {
return m_rep->string_value (force); }
987 {
return m_rep->string_vector_value (pad); }
992 {
return m_rep->cellstr_value (); }
995 {
return m_rep->range_value (); }
1004 {
return m_rep->map_keys (); }
1006 bool isfield (
const std::string& field_name)
const
1007 {
return m_rep->isfield (field_name); }
1010 {
return m_rep->nparents (); }
1013 {
return m_rep->parent_class_name_list (); }
1016 {
return m_rep->parent_class_names (); }
1023 {
return m_rep->is_instance_of (cls_name); }
1046 bool frc_vec_conv =
false)
const;
1050 bool frc_vec_conv =
false)
const;
1054 bool frc_vec_conv =
false)
const;
1058 bool frc_vec_conv =
false)
const;
1062 bool frc_vec_conv =
false)
const;
1066 bool frc_vec_conv =
false)
const;
1070 bool frc_vec_conv =
false)
const;
1074 bool frc_vec_conv =
false)
const;
1078 bool frc_str_conv =
false,
1079 bool frc_vec_conv =
false)
const;
1083 bool frc_str_conv =
false,
1084 bool frc_vec_conv =
false)
const;
1088 bool frc_vec_conv =
false)
const;
1092 bool frc_vec_conv =
false)
const;
1096 bool frc_vec_conv =
false)
const;
1100 bool frc_vec_conv =
false)
const;
1239 OCTINTERP_API octave::range<double>
1305 { m_rep->maybe_economize (); }
1323 char type =
'\'')
const
1331 { m_rep->convert_to_row_or_column_vector (); }
1334 {
return m_rep->print_as_scalar (); }
1336 void print (std::ostream& os,
bool pr_as_read_syntax =
false)
1337 { m_rep->print (os, pr_as_read_syntax); }
1339 void print_raw (std::ostream& os,
bool pr_as_read_syntax =
false)
const
1340 { m_rep->print_raw (os, pr_as_read_syntax); }
1343 {
return m_rep->print_name_tag (os, name); }
1346 { m_rep->print_with_name (os, name,
true); }
1348 void short_disp (std::ostream& os)
const { m_rep->short_disp (os); }
1355 return m_rep->edit_display (fmt, i, j);
1358 int type_id ()
const {
return m_rep->type_id (); }
1360 std::string
type_name ()
const {
return m_rep->type_name (); }
1372 const std::list<octave_value_list>& idx);
1379 print_info (std::ostream& os,
const std::string& prefix =
"")
const;
1381 bool save_ascii (std::ostream& os) {
return m_rep->save_ascii (os); }
1386 {
return m_rep->save_binary (os, save_as_floats); }
1389 octave::mach_info::float_format fmt);
1392 bool save_as_floats)
1393 {
return m_rep->save_hdf5 (loc_id, name, save_as_floats); }
1398 write (octave::stream& os,
int block_size,
1400 octave::mach_info::float_format flt_fmt)
const;
1407 OCTINTERP_API
const void *
1409 mxComplexity complexity = mxREAL)
const;
1413 return m_rep->mex_get_ir ();
1419 return m_rep->mex_get_jc ();
1423 {
return m_rep->as_mxArray (interleaved); }
1426 {
return m_rep->
diag (k); }
1429 {
return m_rep->
diag (m, n); }
1432 {
return m_rep->
sort (dim, mode); }
1435 {
return m_rep->
sort (sidx, dim, mode); }
1438 {
return m_rep->issorted (mode); }
1444 {
return m_rep->is_sorted_rows (mode); }
1456#define MAPPER_FORWARD(F) \
1457 octave_value F () const \
1459 return m_rep->map (octave_base_value::umap_ ## F); \
1526#undef MAPPER_FORWARD
1529 {
return m_rep->
map (umap); }
1554 return m_rep->fast_elem_insert (n,
x);
1613 const octave_value& limit,
bool is_for_cmd_expr =
false);
1617 bool is_for_cmd_expr =
false)
1628OCTAVE_END_NAMESPACE(octave)
1630#define OV_UNOP_FN(name) \
1631 inline octave_value \
1632 name (const octave_value& a) \
1634 return octave::unary_op (octave_value::name, a); \
1637#define OV_UNOP_OP(name, op) \
1638 inline octave_value \
1639 operator op (const octave_value& a) \
1644#define OV_UNOP_FN_OP(name, op) \
1646 OV_UNOP_OP (name, op)
1660#define OV_BINOP_FN(name) \
1661 inline octave_value \
1662 name (const octave_value& a1, const octave_value& a2) \
1664 return octave::binary_op (octave_value::name, a1, a2); \
1667#define OV_BINOP_OP(name, op) \
1668 inline octave_value \
1669 operator op (const octave_value& a1, const octave_value& a2) \
1671 return name (a1, a2); \
1674#define OV_BINOP_FN_OP(name, op) \
1675 OV_BINOP_FN (name) \
1676 OV_BINOP_OP (name, op)
1702#define OV_COMP_BINOP_FN(name) \
1703 inline octave_value \
1704 name (const octave_value& a1, const octave_value& a2) \
1706 return octave::binary_op (octave_value::name, a1, a2); \
1718template <typename Value>
1727#define DEF_VALUE_EXTRACTOR(VALUE,MPREFIX) \
1729 inline VALUE octave_value_extract<VALUE> (const octave_value& v) \
1731 return v.MPREFIX ## _value (); \
1790#undef DEF_VALUE_EXTRACTOR
1795#define DEF_DUMMY_VALUE_EXTRACTOR(VALUE,DEFVAL) \
1797 inline VALUE octave_value_extract<VALUE> (const octave_value&) \
1799 panic_impossible (); \
1805#undef DEF_DUMMY_VALUE_EXTRACTOR
ComplexColumnVector conj(const ComplexColumnVector &a)
N Dimensional Array with copy-on-write semantics.
size_type size(const size_type d) const
Size of the specified dimension.
Array< octave_idx_type > sort_rows_idx(sortmode mode=ASCENDING) const
Sort by rows returns only indices.
Vector representing the dimensions (size) of an Array.
virtual octave_base_value * try_narrowing_conversion()
virtual octave_base_value * find_parent_class(const std::string &)
octave::refcount< octave_idx_type > m_count
virtual octave_base_value * unique_clone()
virtual octave_base_value * empty_clone() const
octave_value(octave_value &&a)
bool is_function_handle() const
bool is_classdef_object() const
string_vector xstring_vector_value(const char *fmt,...) const
bool isfield(const std::string &field_name) const
octave_value(const octave_uint64 &i)
octave_value(const Sparse< Complex > &m, const MatrixType &t=MatrixType())
octave_value as_uint64() const
SparseMatrix xsparse_matrix_value(const char *fmt,...) const
ColumnVector xcolumn_vector_value(const char *fmt,...) const
octave_value sort(Array< octave_idx_type > &sidx, octave_idx_type dim=0, sortmode mode=ASCENDING) const
octave_value_list list_value() const
octave_int8 xint8_scalar_value(const char *fmt,...) const
bool all_zero_dims() const
const octave_idx_type * mex_get_jc() const
void make_unique(int obsolete_copies)
bool is_magic_int() const
bool strict_bool_value(const char *fmt,...) const
RowVector xrow_vector_value(const char *fmt,...) const
uint64_t uint64_value(bool req_int=false, bool frc_str_conv=false) const
octave_int8 int8_scalar_value() const
const octave_base_value & get_rep() const
bool is_diag_matrix() const
bool is_undefined() const
bool is_uint32_type() const
octave_value(octave_base_value *new_rep, bool borrow=false)
void print_raw(std::ostream &os, bool pr_as_read_syntax=false) const
int64NDArray xint64_array_value(const char *fmt,...) const
boolNDArray bool_array_value(bool warn=false) const
SparseMatrix sparse_matrix_value(bool frc_str_conv=false) const
octave_value simple_subsasgn(char type, octave_value_list &idx, const octave_value &rhs)
ComplexRowVector complex_row_vector_value(bool frc_str_conv=false, bool frc_vec_conv=false) const
octave_uint64 uint64_scalar_value() const
void call_object_destructor()
int8NDArray xint8_array_value(const char *fmt,...) const
Cell xcell_value(const char *fmt,...) const
std::string class_name() const
bool bool_value(bool warn=false) const
int xnint_value(const char *fmt,...) const
octave_value convert_to_str_internal(bool pad, bool force, char type) const
bool is_inline_function() const
octave_value subsref(const std::string &type, const std::list< octave_value_list > &idx)
octave_uint16 uint16_scalar_value() const
octave_function * function_value(bool silent=false) const
bool is_real_scalar() const
octave_idx_type strict_idx_type_value(const char *fmt,...) const
charMatrix char_matrix_value(bool frc_str_conv=false) const
octave_value(const Sparse< bool > &m, const MatrixType &t=MatrixType())
FloatComplexNDArray xfloat_complex_array_value(const char *fmt,...) const
octave_value as_int32() const
int32NDArray int32_array_value() const
uint16NDArray uint16_array_value() const
DiagMatrix diag_matrix_value(bool force=false) const
uint32NDArray xuint32_array_value(const char *fmt,...) const
octave_map xmap_value(const char *fmt,...) const
octave_value index_op(const octave_value_list &idx, bool resize_ok=false)
bool fast_elem_insert(octave_idx_type n, const octave_value &x)
Assign the n-th element, aka 'val(n) = x'.
octave_value(const octave_int16 &i)
FloatComplexDiagMatrix xfloat_complex_diag_matrix_value(const char *fmt,...) const
unsigned long int xulong_value(const char *fmt,...) const
octave_classdef * classdef_object_value(bool silent=false) const
int16NDArray xint16_array_value(const char *fmt,...) const
octave_value as_int8() const
octave_value & assign(assign_op, const octave_value &rhs)
octave_value(const Array< octave_uint8 > &inda)
Array< std::string > xcellstr_value(const char *fmt,...) const
bool is_instance_of(const std::string &cls_name) const
octave_value(const uint8NDArray &inda)
int16NDArray int16_array_value() const
octave_value_list xlist_value(const char *fmt,...) const
int int_value(bool req_int=false, bool frc_str_conv=false) const
void print_with_name(std::ostream &os, const std::string &name) const
bool is_dq_string() const
octave_value(const octave_map &m, const std::string &id, const std::list< std::string > &plist)
octave_value(const octave::range< double > &r, bool force_range=false)
int8NDArray int8_array_value() const
std::string get_dims_str() const
octave_int64 int64_scalar_value() const
octave_value(const char *s, char type='\'')
octave_idx_type rows() const
octave::idx_vector index_vector(bool require_integers=false) const
int64_t int64_value(bool req_int=false, bool frc_str_conv=false) const
bool is_scalar_type() const
octave_value diag(octave_idx_type m, octave_idx_type n) const
octave_value subsref(const std::string &type, const std::list< octave_value_list > &idx, bool auto_add)
Array< float > float_vector_value(bool frc_str_conv=false, bool frc_vec_conv=false) const
bool is_sq_string() const
short int short_value(bool req_int=false, bool frc_str_conv=false) const
octave_scalar_map scalar_map_value() const
octave_value & non_const_unary_op(unary_op op, const std::string &type, const std::list< octave_value_list > &idx)
octave_idx_type nzmax() const
octave_idx_type strict_idx_type_value(bool frc_str_conv=false) const
bool is_classdef_meta() const
Array< std::string > cellstr_value() const
octave_value permute(const Array< int > &vec, bool inv=false) const
int strict_int_value(bool frc_str_conv=false) const
FloatDiagMatrix float_diag_matrix_value(bool force=false) const
ComplexMatrix complex_matrix_value(bool frc_str_conv=false) const
bool is_int8_type() const
bool is_user_script() const
void short_disp(std::ostream &os) const
octave_value_list simple_subsref(char type, octave_value_list &idx, int nargout)
void erase_subfunctions()
octave_value_list next_subsref(int nargout, const std::string &type, const std::list< octave_value_list > &idx, std::size_t skip=1)
bool load_binary(std::istream &is, bool swap, octave::mach_info::float_format fmt)
octave_value(octave_value::magic_colon)
SparseBoolMatrix xsparse_bool_matrix_value(const char *fmt,...) const
octave_value dump() const
double xscalar_value(const char *fmt,...) const
Complex complex_value(bool frc_str_conv=false) const
octave_value(const octave_uint16 &i)
Array< octave_idx_type > sort_rows_idx(sortmode mode=ASCENDING) const
octave_int32 xint32_scalar_value(const char *fmt,...) const
float xfloat_scalar_value(const char *fmt,...) const
octave_user_script * user_script_value(bool silent=false) const
octave_value(const uint32NDArray &inda)
FloatComplexDiagMatrix float_complex_diag_matrix_value(bool force=false) const
bool is_perm_matrix() const
octave_value undef_subsasgn(const std::string &type, const std::list< octave_value_list > &idx, const octave_value &rhs)
octave_value as_uint8() const
FloatMatrix xfloat_matrix_value(const char *fmt,...) const
octave_idx_type idx_type_value(bool req_int=false, bool frc_str_conv=false) const
unsigned short int ushort_value(bool req_int=false, bool frc_str_conv=false) const
Complex xcomplex_value(const char *fmt,...) const
bool save_hdf5(octave_hdf5_id loc_id, const char *name, bool save_as_floats)
octave::range< double > xrange_value(const char *fmt,...) const
octave_idx_type end_index(octave_idx_type index_position, octave_idx_type num_indices) const
octave_value(const octave_map &m)
MatrixType matrix_type() const
octave_value(const int32NDArray &inda)
octave_value(const Array< octave_int64 > &inda)
octave_value sort(octave_idx_type dim=0, sortmode mode=ASCENDING) const
octave_value(const int8NDArray &inda)
octave_value ipermute(const Array< int > &vec) const
static octave_value empty_conv(const std::string &type, const octave_value &rhs=octave_value())
octave_value(const octave_int8 &i)
octave_value as_int16() const
Array< Complex > xcomplex_vector_value(const char *fmt,...) const
PermMatrix xperm_matrix_value(const char *fmt,...) const
octave_value(const octave_int64 &i)
octave_base_value * find_parent_class(const std::string &parent_class_name)
ComplexMatrix xcomplex_matrix_value(const char *fmt,...) const
@ num_compound_binary_ops
bool xbool_value(const char *fmt,...) const
FloatComplexRowVector float_complex_row_vector_value(bool frc_str_conv=false, bool frc_vec_conv=false) const
bool is_complex_scalar() const
ComplexNDArray complex_array_value(bool frc_str_conv=false) const
bool is_copy_of(const octave_value &val) const
octave_value next_subsref(const std::string &type, const std::list< octave_value_list > &idx, std::size_t skip=1)
Array< FloatComplex > float_complex_vector_value(bool frc_str_conv=false, bool frc_vec_conv=false) const
bool is_mex_function() const
string_vector parent_class_names() const
octave_int16 xint16_scalar_value(const char *fmt,...) const
octave_value as_single() const
FloatRowVector float_row_vector_value(bool frc_str_conv=false, bool frc_vec_conv=false) const
bool is_single_type() const
std::string edit_display(const float_display_format &fmt, octave_idx_type i, octave_idx_type j) const
FloatComplexMatrix xfloat_complex_matrix_value(const char *fmt,...) const
FloatComplexRowVector xfloat_complex_row_vector_value(const char *fmt,...) const
octave_value(const SparseMatrix &m, const MatrixType &t=MatrixType())
bool is_dld_function() const
uint64NDArray xuint64_array_value(const char *fmt,...) const
double xdouble_value(const char *fmt,...) const
bool save_binary(std::ostream &os, bool save_as_floats)
charNDArray char_array_value(bool frc_str_conv=false) const
void make_storable_value()
octave_uint32 uint32_scalar_value() const
octave_base_value * try_narrowing_conversion()
FloatColumnVector float_column_vector_value(bool frc_str_conv=false, bool frc_vec_conv=false) const
bool is_legacy_object() const
bool save_ascii(std::ostream &os)
Array< int > xint_vector_value(const char *fmt,...) const
string_vector map_keys() const
float float_scalar_value(bool frc_str_conv=false) const
FloatComplex float_complex_value(bool frc_str_conv=false) const
void break_closure_cycles(const std::shared_ptr< octave::stack_frame > &)
bool is_equal(const octave_value &) const
std::size_t nparents() const
octave_idx_type xnumel(const octave_value_list &idx)
octave_value storable_value() const
bool is_uint8_type() const
bool is_uint64_type() const
float_display_format get_edit_display_format() const
octave_base_value::type_conv_info numeric_demotion_function() const
octave_value as_uint32() const
int64_t xint64_value(const char *fmt,...) const
bool is_zero_by_zero() const
octave_user_function * xuser_function_value(const char *fmt,...) const
bool is_uint16_type() const
uint64NDArray uint64_array_value() const
charMatrix xchar_matrix_value(const char *fmt,...) const
octave_value & non_const_unary_op(unary_op op)
short int xshort_value(const char *fmt,...) const
float float_value(bool frc_str_conv=false) const
bool load_hdf5(octave_hdf5_id loc_id, const char *name)
SparseComplexMatrix xsparse_complex_matrix_value(const char *fmt,...) const
octave_user_script * xuser_script_value(const char *fmt,...) const
ComplexDiagMatrix xcomplex_diag_matrix_value(const char *fmt,...) const
bool is_magic_colon() const
const void * mex_get_data(mxClassID class_id=mxUNKNOWN_CLASS, mxComplexity complexity=mxREAL) const
FloatNDArray xfloat_array_value(const char *fmt,...) const
unsigned long int ulong_value(bool req_int=false, bool frc_str_conv=false) const
octave_value any(int dim=0) const
bool is_int16_type() const
octave_idx_type nfields() const
bool is_char_matrix() const
octave_value(const SparseBoolMatrix &bm, const MatrixType &t=MatrixType())
octave_value reshape(const dim_vector &dv) const
bool print_as_scalar() const
octave_int64 xint64_scalar_value(const char *fmt,...) const
double scalar_value(bool frc_str_conv=false) const
FloatComplexColumnVector float_complex_column_vector_value(bool frc_str_conv=false, bool frc_vec_conv=false) const
octave_value_list subsref(const std::string &type, const std::list< octave_value_list > &idx, int nargout)
const octave_idx_type * mex_get_ir() const
octave_value(const octave::idx_vector &idx, bool lazy=true)
bool is_bool_matrix() const
ComplexRowVector xcomplex_row_vector_value(const char *fmt,...) const
octave_base_value::type_conv_info numeric_conversion_function() const
octave_idx_type numel() const
octave_value next_subsref(bool auto_add, const std::string &type, const std::list< octave_value_list > &idx, std::size_t skip=1)
bool load_ascii(std::istream &is)
octave_map map_value() const
void convert_to_row_or_column_vector()
Array< int > int_vector_value(bool req_int=false, bool frc_str_conv=false, bool frc_vec_conv=false) const
bool is_real_matrix() const
boolMatrix bool_matrix_value(bool warn=false) const
octave_idx_type nnz() const
Array< float > xfloat_vector_value(const char *fmt,...) const
octave_value fast_elem_extract(octave_idx_type n) const
Extract the n-th element, aka 'val(n)'.
octave_value(const Array< octave_uint16 > &inda)
octave_value(const SparseComplexMatrix &m, const MatrixType &t=MatrixType())
Array< Complex > complex_vector_value(bool frc_str_conv=false, bool frc_vec_conv=false) const
std::string string_value(bool force=false) const
octave_value & assign(assign_op op, const std::string &type, const std::list< octave_value_list > &idx, const octave_value &rhs)
octave_value(const octave_scalar_map &m, const std::string &id, const std::list< std::string > &plist)
ComplexDiagMatrix complex_diag_matrix_value(bool force=false) const
octave_uint8 uint8_scalar_value() const
int nint_value(bool frc_str_conv=false) const
octave_value(const Array< char > &chnda, char type='\'')
bool is_int64_type() const
octave_uint8 xuint8_scalar_value(const char *fmt,...) const
FloatMatrix float_matrix_value(bool frc_str_conv=false) const
octave_scalar_map xscalar_map_value(const char *fmt,...) const
void print_info(std::ostream &os, const std::string &prefix="") const
octave_idx_type xidx_type_value(const char *fmt,...) const
bool is_matrix_type() const
octave_value map(octave_base_value::unary_mapper_t umap) const
octave_int16 int16_scalar_value() const
Array< double > xvector_value(const char *fmt,...) const
octave_base_value * clone() const
charNDArray xchar_array_value(const char *fmt,...) const
octave_value(const octave_uint8 &i)
Array< octave_idx_type > xoctave_idx_type_vector_value(const char *fmt,...) const
octave_value(const Array< octave_int32 > &inda)
long int long_value(bool req_int=false, bool frc_str_conv=false) const
ComplexNDArray xcomplex_array_value(const char *fmt,...) const
string_vector string_vector_value(bool pad=false) const
octave_value(const Array< octave_int16 > &inda)
ComplexColumnVector xcomplex_column_vector_value(const char *fmt,...) const
sortmode is_sorted_rows(sortmode mode=UNSORTED) const
mxArray * as_mxArray(bool interleaved=false) const
bool is_user_function() const
octave_uint64 xuint64_scalar_value(const char *fmt,...) const
octave_value single_subsref(const std::string &type, const octave_value_list &idx)
bool is_anonymous_function() const
octave_fcn_handle * fcn_handle_value(bool silent=false) const
ComplexColumnVector complex_column_vector_value(bool frc_str_conv=false, bool frc_vec_conv=false) const
octave_value(const Array< octave_idx_type > &inda, bool zero_based=false, bool cache_index=false)
octave_uint32 xuint32_scalar_value(const char *fmt,...) const
int64NDArray int64_array_value() const
octave_idx_type get_count() const
SparseBoolMatrix sparse_bool_matrix_value(bool warn=false) const
NDArray array_value(bool frc_str_conv=false) const
FloatComplex xfloat_complex_value(const char *fmt,...) const
Array< double > vector_value(bool frc_str_conv=false, bool frc_vec_conv=false) const
octave_value(const uint64NDArray &inda)
int write(octave::stream &os, int block_size, oct_data_conv::data_type output_type, int skip, octave::mach_info::float_format flt_fmt) const
uint16NDArray xuint16_array_value(const char *fmt,...) const
bool strict_bool_value() const
octave_idx_type length() const
octave_value(const std::map< std::string, octave_value > &)
octave_value as_uint16() const
bool is_double_type() const
octave_value as_int64() const
bool is_builtin_function() const
bool is_int32_type() const
bool is_bool_scalar() const
octave_value(const octave_value_list &m)
octave_value(const Sparse< double > &m, const MatrixType &t=MatrixType())
FloatRowVector xfloat_row_vector_value(const char *fmt,...) const
octave_value(const octave_uint32 &i)
bool is_classdef_superclass_ref() const
octave_value as_double() const
Array< octave_idx_type > octave_idx_type_vector_value(bool req_int=false, bool frc_str_conv=false, bool frc_vec_conv=false) const
octave_value convert_to_str(bool pad=false, bool force=false, char type='\'') const
uint8NDArray uint8_array_value() const
bool print_name_tag(std::ostream &os, const std::string &name) const
octave_value full_value() const
octave_uint16 xuint16_scalar_value(const char *fmt,...) const
sortmode issorted(sortmode mode=UNSORTED) const
octave_user_function * user_function_value(bool silent=false) const
Array< FloatComplex > xfloat_complex_vector_value(const char *fmt,...) const
std::string type_name() const
long int xlong_value(const char *fmt,...) const
octave_value all(int dim=0) const
bool is_user_code() const
std::list< std::string > parent_class_name_list() const
octave_base_value * m_rep
The real representation.
int xint_value(const char *fmt,...) const
std::string xstring_value(const char *fmt,...) const
uint64_t xuint64_value(const char *fmt,...) const
FloatComplexColumnVector xfloat_complex_column_vector_value(const char *fmt,...) const
FloatDiagMatrix xfloat_diag_matrix_value(const char *fmt,...) const
int strict_int_value(const char *fmt,...) const
boolNDArray xbool_array_value(const char *fmt,...) const
octave_int32 int32_scalar_value() const
std::size_t byte_size() const
octave_fcn_handle * xfcn_handle_value(const char *fmt,...) const
FloatComplexNDArray float_complex_array_value(bool frc_str_conv=false) const
octave_value(const octave_int32 &i)
octave_function * xfunction_value(const char *fmt,...) const
ColumnVector column_vector_value(bool frc_str_conv=false, bool frc_vec_conv=false) const
int32NDArray xint32_array_value(const char *fmt,...) const
octave_user_code * xuser_code_value(const char *fmt,...) const
octave_value resize(const dim_vector &dv, bool fill=false) const
float xfloat_value(const char *fmt,...) const
DiagMatrix xdiag_matrix_value(const char *fmt,...) const
FloatNDArray float_array_value(bool frc_str_conv=false) const
octave_value(const octave_value &a)
Matrix xmatrix_value(const char *fmt,...) const
octave_user_code * user_code_value(bool silent=false) const
NDArray xarray_value(const char *fmt,...) const
uint32NDArray uint32_array_value() const
RowVector row_vector_value(bool frc_str_conv=false, bool frc_vec_conv=false) const
MatrixType matrix_type(const MatrixType &typ) const
FloatColumnVector xfloat_column_vector_value(const char *fmt,...) const
octave_value(const int64NDArray &inda)
bool is_complex_matrix() const
octave_value(const Array< std::string > &cellstr)
octave_value(const octave_scalar_map &m)
octave_idx_type columns() const
octave_value(const uint16NDArray &inda)
Matrix matrix_value(bool frc_str_conv=false) const
octave_value(const Array< octave_int8 > &inda)
octave_value(const charNDArray &chnda, char type='\'')
builtin_type_t builtin_type() const
FloatComplexMatrix float_complex_matrix_value(bool frc_str_conv=false) const
void print(std::ostream &os, bool pr_as_read_syntax=false)
octave_base_value * empty_clone() const
octave_value diag(octave_idx_type k=0) const
octave_value(const Array< octave_uint32 > &inda)
octave::range< double > range_value() const
double double_value(bool frc_str_conv=false) const
unsigned int uint_value(bool req_int=false, bool frc_str_conv=false) const
boolMatrix xbool_matrix_value(const char *fmt,...) const
PermMatrix perm_matrix_value() const
octave_base_value * internal_rep() const
unsigned int xuint_value(const char *fmt,...) const
octave_value(const int16NDArray &inda)
octave_value as_double_or_copy() const
SparseComplexMatrix sparse_complex_matrix_value(bool frc_str_conv=false) const
octave_value subsasgn(const std::string &type, const std::list< octave_value_list > &idx, const octave_value &rhs)
unsigned short int xushort_value(const char *fmt,...) const
octave_value(const string_vector &s, char type='\'')
uint8NDArray xuint8_array_value(const char *fmt,...) const
octave_value(const Array< octave_uint64 > &inda)
octave_value squeeze() const
ColumnVector real(const ComplexColumnVector &a)
ColumnVector imag(const ComplexColumnVector &a)
OCTAVE_BEGIN_NAMESPACE(octave) static octave_value daspk_fcn
Complex log2(const Complex &x)
Complex asin(const Complex &x)
Complex acos(const Complex &x)
std::complex< T > ceil(const std::complex< T > &x)
Complex atan(const Complex &x)
std::complex< T > floor(const std::complex< T > &x)
F77_RET_T const F77_DBLE const F77_DBLE F77_DBLE * d
F77_RET_T const F77_DBLE * x
Complex erf(const Complex &x)
Complex expm1(const Complex &x)
Complex log1p(const Complex &x)
Complex erfc(const Complex &x)
std::complex< double > Complex
std::complex< float > FloatComplex
const octave_base_value const Array< octave_idx_type > & ra_idx
octave_value op_ne(const octave_value &a1, const octave_value &a2)
octave_value op_el_ldiv(const octave_value &a1, const octave_value &a2)
octave_value op_uplus(const octave_value &a)
octave_value op_add(const octave_value &a1, const octave_value &a2)
octave_value op_gt(const octave_value &a1, const octave_value &a2)
octave_value op_uminus(const octave_value &a)
octave_value op_el_div(const octave_value &a1, const octave_value &a2)
#define DEF_DUMMY_VALUE_EXTRACTOR(VALUE, DEFVAL)
octave_value op_mul_herm(const octave_value &a1, const octave_value &a2)
octave_value op_transpose(const octave_value &a)
octave_value op_el_or(const octave_value &a1, const octave_value &a2)
octave_value op_sub(const octave_value &a1, const octave_value &a2)
octave_value op_mul(const octave_value &a1, const octave_value &a2)
octave_value colon_op(const octave_value &base, const octave_value &increment, const octave_value &limit, bool is_for_cmd_expr=false)
void install_types(octave::type_info &)
octave_value op_hermitian(const octave_value &a)
#define OV_COMP_BINOP_FN(name)
octave_value op_le(const octave_value &a1, const octave_value &a2)
octave_value op_el_and(const octave_value &a1, const octave_value &a2)
octave_value cat_op(type_info &ti, const octave_value &a, const octave_value &b, const Array< octave_idx_type > &ra_idx)
octave_value binary_op(type_info &ti, octave_value::binary_op op, const octave_value &a, const octave_value &b)
octave_value op_herm_mul(const octave_value &a1, const octave_value &a2)
#define MAPPER_FORWARD(F)
octave_value op_eq(const octave_value &a1, const octave_value &a2)
octave_value op_el_pow(const octave_value &a1, const octave_value &a2)
#define OV_UNOP_FN_OP(name, op)
#define DEF_VALUE_EXTRACTOR(VALUE, MPREFIX)
octave_value op_struct_ref(const octave_value &a1, const octave_value &a2)
octave_value op_not(const octave_value &a)
#define OV_BINOP_FN(name)
octave_value op_ldiv(const octave_value &a1, const octave_value &a2)
Value octave_value_extract(const octave_value &)
octave_value unary_op(type_info &ti, octave_value::unary_op op, const octave_value &a)
octave_value op_pow(const octave_value &a1, const octave_value &a2)
octave_value op_ge(const octave_value &a1, const octave_value &a2)
octave_value op_el_mul(const octave_value &a1, const octave_value &a2)
octave_value op_div(const octave_value &a1, const octave_value &a2)
octave_value op_trans_mul(const octave_value &a1, const octave_value &a2)
octave_value op_mul_trans(const octave_value &a1, const octave_value &a2)
#define OV_BINOP_FN_OP(name, op)
octave_value op_lt(const octave_value &a1, const octave_value &a2)
#define panic_impossible()