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)
243 OCTINTERP_API
octave_value (
const std::string& s,
char type =
'\'');
286 bool zero_based =
false,
287 bool cache_index =
false);
289 OCTINTERP_API
octave_value (
const octave::idx_vector& idx,
bool lazy =
true);
292 bool force_range =
false);
298 OCTINTERP_API
octave_value (
const std::map<std::string, octave_value>&);
300 const std::list<std::string>& plist);
302 const std::list<std::string>& plist);
346 if (m_rep && --m_rep->m_count == 0 && m_rep != nil_rep ())
352 if (m_rep->m_count > 1)
356 if (--m_rep->m_count == 0 && m_rep != nil_rep ())
368 if (m_rep->m_count > obsolete_copies + 1)
372 if (--m_rep->m_count == 0 && m_rep != nil_rep ())
389 if (m_rep != a.
m_rep)
391 if (--m_rep->m_count == 0 && m_rep != nil_rep ())
409 if (m_rep && --m_rep->m_count == 0 && m_rep != nil_rep ())
422 {
return m_rep->numeric_conversion_function (); }
425 {
return m_rep->numeric_demotion_function (); }
461 {
return m_rep->
size (); }
466 {
return m_rep->xnumel (idx); }
475 const std::list<octave_value_list>& idx)
476 {
return m_rep->
subsref (type, idx); }
479 const std::list<octave_value_list>& idx,
481 {
return m_rep->
subsref (type, idx, auto_add); }
484 subsref (
const std::string& type,
const std::list<octave_value_list>& idx,
492 const std::list<octave_value_list>& idx, std::size_t skip = 1);
496 const std::list<octave_value_list>& idx, std::size_t skip = 1);
500 const std::list<octave_value_list>& idx, std::size_t skip = 1);
504 return m_rep->do_index_op (idx, resize_ok);
512 subsasgn (
const std::string& type,
const std::list<octave_value_list>& idx,
523 const std::list<octave_value_list>& idx,
528 const std::list<octave_value_list>& idx,
const octave_value& rhs);
534 return m_rep->index_vector (require_integers);
549 int ndims ()
const {
return m_rep->ndims (); }
555 {
return (ndims () == 2 && rows () == 0 && columns () == 0); }
558 {
return m_rep->numel (); }
561 {
return m_rep->byte_size (); }
570 {
return m_rep->
reshape (dv); }
573 {
return m_rep->
permute (vec, inv); }
576 {
return m_rep->
permute (vec,
true); }
579 {
return m_rep->
resize (dv, fill);}
591 {
return m_rep->is_defined (); }
594 {
return ! is_defined (); }
597 {
return m_rep->is_legacy_object (); }
600 {
return m_rep->isempty (); }
603 {
return m_rep->iscell (); }
606 {
return m_rep->iscellstr (); }
609 {
return m_rep->is_real_scalar (); }
612 {
return m_rep->is_real_matrix (); }
615 {
return m_rep->is_complex_scalar (); }
618 {
return m_rep->is_complex_matrix (); }
621 {
return m_rep->is_bool_scalar (); }
624 {
return m_rep->is_bool_matrix (); }
627 {
return m_rep->is_char_matrix (); }
630 {
return m_rep->is_diag_matrix (); }
633 {
return m_rep->is_perm_matrix (); }
636 {
return m_rep->is_string (); }
639 {
return m_rep->is_sq_string (); }
642 {
return m_rep->is_string () && ! m_rep->is_sq_string (); }
645 {
return m_rep->is_range (); }
648 {
return m_rep->isstruct (); }
651 {
return m_rep->is_classdef_meta (); }
654 {
return m_rep->is_classdef_object (); }
657 {
return m_rep->is_classdef_superclass_ref (); }
660 {
return m_rep->is_package (); }
663 {
return m_rep->isobject (); }
666 {
return m_rep->isjava (); }
669 {
return m_rep->is_cs_list (); }
672 {
return m_rep->is_magic_colon (); }
675 {
return m_rep->is_magic_int (); }
678 {
return m_rep->isnull (); }
683 {
return m_rep->
all (dim); }
686 {
return m_rep->
any (dim); }
689 {
return m_rep->builtin_type (); }
694 {
return m_rep->is_double_type (); }
697 {
return m_rep->is_single_type (); }
700 {
return m_rep->isfloat (); }
705 {
return m_rep->is_int8_type (); }
708 {
return m_rep->is_int16_type (); }
711 {
return m_rep->is_int32_type (); }
714 {
return m_rep->is_int64_type (); }
717 {
return m_rep->is_uint8_type (); }
720 {
return m_rep->is_uint16_type (); }
723 {
return m_rep->is_uint32_type (); }
726 {
return m_rep->is_uint64_type (); }
729 {
return m_rep->isinteger (); }
734 {
return m_rep->islogical (); }
737 {
return m_rep->isreal (); }
740 {
return m_rep->iscomplex (); }
743 {
return m_rep->is_scalar_type (); }
746 {
return m_rep->is_matrix_type (); }
749 {
return m_rep->isnumeric (); }
752 {
return m_rep->issparse (); }
757 {
return m_rep->is_true (); }
764 {
return m_rep->is_constant (); }
767 {
return m_rep->is_function_handle (); }
770 {
return m_rep->is_anonymous_function (); }
773 {
return m_rep->is_inline_function (); }
776 {
return m_rep->is_function (); }
779 {
return m_rep->is_user_script (); }
782 {
return m_rep->is_user_function (); }
785 {
return m_rep->is_user_code (); }
788 {
return m_rep->is_builtin_function (); }
791 {
return m_rep->is_dld_function (); }
794 {
return m_rep->is_mex_function (); }
803 short_value (
bool req_int =
false,
bool frc_str_conv =
false)
const
804 {
return m_rep->short_value (req_int, frc_str_conv); }
808 {
return m_rep->ushort_value (req_int, frc_str_conv); }
810 int int_value (
bool req_int =
false,
bool frc_str_conv =
false)
const
811 {
return m_rep->int_value (req_int, frc_str_conv); }
814 {
return m_rep->int_value (
true, frc_str_conv); }
817 uint_value (
bool req_int =
false,
bool frc_str_conv =
false)
const
818 {
return m_rep->uint_value (req_int, frc_str_conv); }
821 {
return m_rep->nint_value (frc_str_conv); }
824 long_value (
bool req_int =
false,
bool frc_str_conv =
false)
const
825 {
return m_rep->long_value (req_int, frc_str_conv); }
828 ulong_value (
bool req_int =
false,
bool frc_str_conv =
false)
const
829 {
return m_rep->ulong_value (req_int, frc_str_conv); }
832 int64_value (
bool req_int =
false,
bool frc_str_conv =
false)
const
833 {
return m_rep->int64_value (req_int, frc_str_conv); }
837 {
return m_rep->uint64_value (req_int, frc_str_conv); }
846 {
return m_rep->double_value (frc_str_conv); }
849 {
return m_rep->float_value (frc_str_conv); }
852 {
return m_rep->scalar_value (frc_str_conv); }
855 {
return m_rep->float_scalar_value (frc_str_conv); }
858 {
return m_rep->matrix_value (frc_str_conv); }
861 {
return m_rep->float_matrix_value (frc_str_conv); }
864 {
return m_rep->array_value (frc_str_conv); }
867 {
return m_rep->float_array_value (frc_str_conv); }
870 {
return m_rep->complex_value (frc_str_conv); }
873 {
return m_rep->float_complex_value (frc_str_conv); }
876 {
return m_rep->complex_matrix_value (frc_str_conv); }
880 {
return m_rep->float_complex_matrix_value (frc_str_conv); }
883 {
return m_rep->complex_array_value (frc_str_conv); }
887 {
return m_rep->float_complex_array_value (frc_str_conv); }
890 {
return m_rep->bool_value (warn); }
893 {
return m_rep->bool_value (
true); }
896 {
return m_rep->bool_matrix_value (warn); }
899 {
return m_rep->bool_array_value (warn); }
902 {
return m_rep->char_matrix_value (frc_str_conv); }
905 {
return m_rep->char_array_value (frc_str_conv); }
908 {
return m_rep->sparse_matrix_value (frc_str_conv); }
912 {
return m_rep->sparse_complex_matrix_value (frc_str_conv); }
915 {
return m_rep->sparse_bool_matrix_value (warn); }
918 {
return m_rep->diag_matrix_value (force); }
921 {
return m_rep->float_diag_matrix_value (force); }
924 {
return m_rep->complex_diag_matrix_value (force); }
928 {
return m_rep->float_complex_diag_matrix_value (force); }
931 {
return m_rep->perm_matrix_value (); }
934 {
return m_rep->int8_scalar_value (); }
937 {
return m_rep->int16_scalar_value (); }
940 {
return m_rep->int32_scalar_value (); }
943 {
return m_rep->int64_scalar_value (); }
946 {
return m_rep->uint8_scalar_value (); }
949 {
return m_rep->uint16_scalar_value (); }
952 {
return m_rep->uint32_scalar_value (); }
955 {
return m_rep->uint64_scalar_value (); }
958 {
return m_rep->int8_array_value (); }
961 {
return m_rep->int16_array_value (); }
964 {
return m_rep->int32_array_value (); }
967 {
return m_rep->int64_array_value (); }
970 {
return m_rep->uint8_array_value (); }
973 {
return m_rep->uint16_array_value (); }
976 {
return m_rep->uint32_array_value (); }
979 {
return m_rep->uint64_array_value (); }
982 {
return m_rep->string_value (force); }
985 {
return m_rep->string_vector_value (pad); }
990 {
return m_rep->cellstr_value (); }
993 {
return m_rep->range_value (); }
1002 {
return m_rep->map_keys (); }
1004 bool isfield (
const std::string& field_name)
const
1005 {
return m_rep->isfield (field_name); }
1008 {
return m_rep->nparents (); }
1011 {
return m_rep->parent_class_name_list (); }
1014 {
return m_rep->parent_class_names (); }
1021 {
return m_rep->is_instance_of (cls_name); }
1044 bool frc_vec_conv =
false)
const;
1048 bool frc_vec_conv =
false)
const;
1052 bool frc_vec_conv =
false)
const;
1056 bool frc_vec_conv =
false)
const;
1060 bool frc_vec_conv =
false)
const;
1064 bool frc_vec_conv =
false)
const;
1068 bool frc_vec_conv =
false)
const;
1072 bool frc_vec_conv =
false)
const;
1076 bool frc_str_conv =
false,
1077 bool frc_vec_conv =
false)
const;
1081 bool frc_str_conv =
false,
1082 bool frc_vec_conv =
false)
const;
1086 bool frc_vec_conv =
false)
const;
1090 bool frc_vec_conv =
false)
const;
1094 bool frc_vec_conv =
false)
const;
1098 bool frc_vec_conv =
false)
const;
1237 OCTINTERP_API octave::range<double>
1303 { m_rep->maybe_economize (); }
1321 char type =
'\'')
const
1329 { m_rep->convert_to_row_or_column_vector (); }
1332 {
return m_rep->print_as_scalar (); }
1334 void print (std::ostream& os,
bool pr_as_read_syntax =
false)
1335 { m_rep->print (os, pr_as_read_syntax); }
1337 void print_raw (std::ostream& os,
bool pr_as_read_syntax =
false)
const
1338 { m_rep->print_raw (os, pr_as_read_syntax); }
1341 {
return m_rep->print_name_tag (os, name); }
1344 { m_rep->print_with_name (os, name,
true); }
1346 void short_disp (std::ostream& os)
const { m_rep->short_disp (os); }
1353 return m_rep->edit_display (fmt, i, j);
1356 int type_id ()
const {
return m_rep->type_id (); }
1358 std::string
type_name ()
const {
return m_rep->type_name (); }
1370 const std::list<octave_value_list>& idx);
1377 print_info (std::ostream& os,
const std::string& prefix =
"")
const;
1379 bool save_ascii (std::ostream& os) {
return m_rep->save_ascii (os); }
1384 {
return m_rep->save_binary (os, save_as_floats); }
1387 octave::mach_info::float_format fmt);
1390 bool save_as_floats)
1391 {
return m_rep->save_hdf5 (loc_id, name, save_as_floats); }
1396 write (octave::stream& os,
int block_size,
1398 octave::mach_info::float_format flt_fmt)
const;
1405 OCTINTERP_API
const void *
1407 mxComplexity complexity = mxREAL)
const;
1411 return m_rep->mex_get_ir ();
1417 return m_rep->mex_get_jc ();
1421 {
return m_rep->as_mxArray (interleaved); }
1424 {
return m_rep->
diag (k); }
1427 {
return m_rep->
diag (m, n); }
1430 {
return m_rep->
sort (dim, mode); }
1433 {
return m_rep->
sort (sidx, dim, mode); }
1436 {
return m_rep->issorted (mode); }
1442 {
return m_rep->is_sorted_rows (mode); }
1454#define MAPPER_FORWARD(F) \
1455 octave_value F () const \
1457 return m_rep->map (octave_base_value::umap_ ## F); \
1524#undef MAPPER_FORWARD
1527 {
return m_rep->
map (umap); }
1552 return m_rep->fast_elem_insert (n,
x);
1611 const octave_value& limit,
bool is_for_cmd_expr =
false);
1615 bool is_for_cmd_expr =
false)
1626OCTAVE_END_NAMESPACE(octave)
1628#define OV_UNOP_FN(name) \
1629 inline octave_value \
1630 name (const octave_value& a) \
1632 return octave::unary_op (octave_value::name, a); \
1635#define OV_UNOP_OP(name, op) \
1636 inline octave_value \
1637 operator op (const octave_value& a) \
1642#define OV_UNOP_FN_OP(name, op) \
1644 OV_UNOP_OP (name, op)
1658#define OV_BINOP_FN(name) \
1659 inline octave_value \
1660 name (const octave_value& a1, const octave_value& a2) \
1662 return octave::binary_op (octave_value::name, a1, a2); \
1665#define OV_BINOP_OP(name, op) \
1666 inline octave_value \
1667 operator op (const octave_value& a1, const octave_value& a2) \
1669 return name (a1, a2); \
1672#define OV_BINOP_FN_OP(name, op) \
1673 OV_BINOP_FN (name) \
1674 OV_BINOP_OP (name, op)
1700#define OV_COMP_BINOP_FN(name) \
1701 inline octave_value \
1702 name (const octave_value& a1, const octave_value& a2) \
1704 return octave::binary_op (octave_value::name, a1, a2); \
1716template <typename Value>
1725#define DEF_VALUE_EXTRACTOR(VALUE,MPREFIX) \
1727 inline VALUE octave_value_extract<VALUE> (const octave_value& v) \
1729 return v.MPREFIX ## _value (); \
1788#undef DEF_VALUE_EXTRACTOR
1793#define DEF_DUMMY_VALUE_EXTRACTOR(VALUE,DEFVAL) \
1795 inline VALUE octave_value_extract<VALUE> (const octave_value&) \
1797 panic_impossible (); \
1803#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)
std::complex< double > Complex
std::complex< float > FloatComplex
Complex erf(const Complex &x)
Complex expm1(const Complex &x)
Complex log1p(const Complex &x)
Complex erfc(const Complex &x)
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()
F77_RET_T const F77_DBLE const F77_DBLE F77_DBLE * d
F77_RET_T const F77_DBLE * x