47 #if ! defined (octave_mxarray_h) 48 #define octave_mxarray_h 1 50 #include "octave-config.h" 97 #if ! defined (MXARRAY_TYPEDEFS_ONLY) 105 #define DO_MUTABLE_METHOD(RET_T, METHOD_CALL) \ 106 RET_T retval = rep->METHOD_CALL; \ 108 if (rep->mutation_needed ()) \ 111 retval = rep->METHOD_CALL; \ 116 #define DO_VOID_MUTABLE_METHOD(METHOD_CALL) \ 119 if (rep->mutation_needed ()) \ 146 virtual int iscell (
void)
const = 0;
148 virtual int is_char (
void)
const = 0;
156 if (cname && name_arg)
168 virtual int is_int16 (
void)
const = 0;
170 virtual int is_int32 (
void)
const = 0;
172 virtual int is_int64 (
void)
const = 0;
174 virtual int is_int8 (
void)
const = 0;
192 virtual int is_uint8 (
void)
const = 0;
217 virtual int isempty (
void)
const = 0;
253 virtual void *
get_data (
void)
const = 0;
257 virtual void set_data (
void *pr) = 0;
273 virtual int add_field (
const char *key) = 0;
306 OCTAVE_DEPRECATED (4.2,
"use 'err_invalid_type' instead")
309 error (
"invalid type for operation");
314 error (
"invalid type for operation");
453 void set_name (
const char *name_arg);
530 static void *
malloc (
size_t n);
532 static void *
calloc (
size_t n,
size_t t);
565 #undef DO_MUTABLE_METHOD 566 #undef DO_VOID_MUTABLE_METHOD virtual int get_field_number(const char *key) const =0
void set_name(const char *name_arg)
mxArray(const octave_value &ov)
virtual mxArray_base * dup(void) const =0
int is_logical(void) const
virtual int is_numeric(void) const =0
virtual mxClassID get_class_id(void) const =0
virtual void set_property(mwIndex, const char *, const mxArray *)
#define DO_VOID_MUTABLE_METHOD(METHOD_CALL)
void set_field_by_number(mwIndex index, int key_num, mxArray *val)
mxArray * dup(void) const
mxClassID get_class_id(void) const
virtual int is_uint32(void) const =0
virtual const char * get_class_name(void) const =0
virtual int is_complex(void) const =0
bool is_scalar(void) const
identity matrix If supplied two scalar respectively For allows like xample val
void set_imag_data(void *pi)
virtual int is_logical_scalar_true(void) const =0
virtual void set_nzmax(mwSize nzmax)=0
virtual void set_m(mwSize m)=0
virtual int get_number_of_fields(void) const =0
void error(const char *fmt,...)
virtual mxArray * mutate(void) const
static void * malloc(size_t n)
virtual int is_logical_scalar(void) const
int is_class(const char *name_arg) const
char * array_to_string(void) const
void set_property(mwIndex idx, const char *pname, const mxArray *pval)
virtual void set_cell(mwIndex idx, mxArray *val)=0
virtual int is_struct(void) const =0
int is_uint16(void) const
virtual int isempty(void) const =0
OCTAVE_EXPORT octave_value_list return the number of command line arguments passed to Octave If called with the optional argument the function t
int is_single(void) const
mwIndex * get_ir(void) const
int get_number_of_fields(void) const
virtual ~mxArray_base(void)=default
int is_function_handle(void) const
void set_nzmax(mwSize nzmax)
virtual int set_dimensions(mwSize *dims_arg, mwSize ndims_arg)=0
int is_struct(void) const
virtual double get_scalar(void) const =0
mxArray & operator=(const mxArray &)=delete
int get_string(char *buf, mwSize buflen) const
virtual mxArray * get_cell(mwIndex) const
virtual void remove_field(int key_num)=0
mxArray * get_property(mwIndex idx, const char *pname) const
virtual int is_uint64(void) const =0
void set_cell(mwIndex idx, mxArray *val)
virtual void set_data(void *pr)=0
virtual mwSize get_n(void) const =0
virtual int get_string(char *buf, mwSize buflen) const =0
virtual int is_int32(void) const =0
mwSize get_number_of_elements(void) const
octave_value as_octave_value(void) const
void * get_data(void) const
virtual void * get_imag_data(void) const =0
virtual mwIndex * get_ir(void) const =0
virtual int add_field(const char *key)=0
static char * strsave(const char *str)
virtual mxArray * get_property(mwIndex, const char *) const
virtual int is_logical(void) const =0
int is_double(void) const
virtual mwIndex calc_single_subscript(mwSize nsubs, mwIndex *subs) const =0
static void * calloc(size_t n, size_t t)
bool strcmp(const T &str_a, const T &str_b)
True if strings are the same.
virtual mwSize get_nzmax(void) const =0
void set_class_name(const char *name_arg)
virtual octave_value as_octave_value(void) const =0
int set_dimensions(mwSize *dims_arg, mwSize ndims_arg)
virtual void set_ir(mwIndex *ir)=0
double get_scalar(void) const
virtual int is_sparse(void) const =0
bool is_octave_value(void) const
size_t get_element_size(void) const
bool mutation_needed(void) const
virtual void set_jc(mwIndex *jc)=0
the exceeded dimensions are set to if fewer subscripts than dimensions are the exceeding dimensions are merged into the final requested dimension For consider the following dims
T::size_type strlen(const typename T::value_type *str)
int is_uint64(void) const
virtual size_t get_element_size(void) const =0
mwIndex calc_single_subscript(mwSize nsubs, mwIndex *subs) const
mxArray * mutate(void) const
int add_field(const char *key)
void maybe_mutate(void) const
virtual mwSize get_number_of_elements(void) const =0
virtual bool mutation_needed(void) const
virtual bool is_scalar(void) const =0
virtual mwSize * get_dimensions(void) const =0
virtual mwSize get_m(void) const =0
OCTAVE_IDX_TYPE mwSignedIndex
virtual int iscell(void) const =0
int is_complex(void) const
OCTAVE_NORETURN void err_invalid_type(void) const
const char * get_field_name_by_number(int key_num) const
virtual int is_uint16(void) const =0
#define DO_MUTABLE_METHOD(RET_T, METHOD_CALL)
virtual mwIndex * get_jc(void) const =0
mwSize get_nzmax(void) const
virtual void set_class_name(const char *name_arg)=0
int is_uint32(void) const
virtual int is_class(const char *name_arg) const
virtual char * array_to_string(void) const =0
virtual int is_uint8(void) const =0
mwSize * get_dimensions(void) const
mxArray * get_field_by_number(mwIndex index, int key_num) const
const char * get_class_name(void) const
virtual int is_function_handle(void) const =0
virtual int is_int16(void) const =0
mxArray(mxArray_base *r, const char *n)
int get_field_number(const char *key) const
virtual void set_imag_data(void *pi)=0
virtual int is_single(void) const =0
int is_sparse(void) const
virtual void set_field_by_number(mwIndex index, int key_num, mxArray *val)=0
virtual int is_int64(void) const =0
mxArray_base(const mxArray_base &)
int is_logical_scalar_true(void) const
virtual void * get_data(void) const =0
int is_logical_scalar(void) const
int is_numeric(void) const
virtual const char * get_field_name_by_number(int key_num) const =0
mxArray * get_cell(mwIndex idx) const
mwIndex * get_jc(void) const
virtual void set_n(mwSize n)=0
virtual int is_int8(void) const =0
Vector representing the dimensions (size) of an Array.
mwSize get_number_of_dimensions(void) const
void remove_field(int key_num)
virtual bool is_octave_value(void) const
const char * get_name(void) const
void invalid_type_error(void) const
virtual int is_char(void) const =0
void * get_imag_data(void) const
virtual mwSize get_number_of_dimensions(void) const =0
virtual int is_double(void) const =0
virtual mxArray * as_mxArray(void) const
virtual mxArray * get_field_by_number(mwIndex index, int key_num) const =0