26#if ! defined (octave_ov_lazy_idx_h)
27#define octave_ov_lazy_idx_h 1
29#include "octave-config.h"
75 bool isreal ()
const {
return true; }
87 const std::list<octave_value_list>& idx)
88 {
return make_value ().
subsref (type, idx); }
91 const std::list<octave_value_list>& idx,
int)
95 bool resize_ok =
false)
96 {
return make_value ().
index_op (idx, resize_ok); }
109 {
return make_value ().
resize (dv, fill); }
138 {
return make_value ().is_true (); }
141 {
return make_value ().print_as_scalar (); }
143 void print (std::ostream& os,
bool pr_as_read_syntax =
false)
144 { make_value ().print (os, pr_as_read_syntax); }
148 {
return make_value ().edit_display (fmt, i, j); }
150 void print_info (std::ostream& os,
const std::string& prefix)
const
151 { make_value ().print_info (os, prefix); }
153#define FORWARD_VALUE_QUERY(TYPE, NAME) \
156 return make_value ().NAME (); \
168#define FORWARD_VALUE_QUERY1(TYPE, NAME) \
169 TYPE NAME (bool flag = false) const \
171 return make_value ().NAME (flag); \
199 return make_value ().
diag (k);
220 void print_raw (std::ostream& os,
bool pr_as_read_syntax =
false)
const
222 return make_value ().print_raw (os, pr_as_read_syntax);
229 bool save_binary (std::ostream& os,
bool save_as_floats);
232 octave::mach_info::float_format fmt);
234 int write (octave::stream& os,
int block_size,
236 octave::mach_info::float_format flt_fmt)
const
238 return make_value ().write (os, block_size, output_type, skip, flt_fmt);
245 return make_value ().mex_get_data ();
250 return make_value ().as_mxArray (interleaved);
255 return make_value ().
map (umap);
262 if (m_value.is_undefined ())
270 if (m_value.is_undefined ())
276 octave::idx_vector m_index;
N Dimensional Array with copy-on-write semantics.
Vector representing the dimensions (size) of an Array.
virtual octave_value subsref(const std::string &type, const std::list< octave_value_list > &idx)
virtual bool save_ascii(std::ostream &os)
virtual octave_value as_double() const
virtual octave_idx_type numel() const
virtual octave_value fast_elem_extract(octave_idx_type n) const
virtual octave_value as_uint8() const
virtual octave_value permute(const Array< int > &vec, bool=false) const
virtual sortmode is_sorted_rows(sortmode mode=UNSORTED) const
virtual octave_value as_uint16() const
virtual octave_base_value * try_narrowing_conversion()
virtual octave_value as_int32() const
virtual bool save_binary(std::ostream &os, bool save_as_floats)
virtual type_conv_info numeric_conversion_function() const
virtual octave_value reshape(const dim_vector &) const
virtual bool load_ascii(std::istream &is)
virtual bool load_binary(std::istream &is, bool swap, octave::mach_info::float_format fmt)
virtual Array< octave_idx_type > sort_rows_idx(sortmode mode=ASCENDING) const
virtual octave_value as_int64() const
virtual octave_value squeeze() const
virtual octave_value as_uint32() const
virtual octave_value as_int16() const
virtual octave_value as_int8() const
virtual octave_value sort(octave_idx_type dim=0, sortmode mode=ASCENDING) const
virtual sortmode issorted(sortmode mode=UNSORTED) const
virtual octave_value as_single() const
friend class octave_value
virtual octave_value as_uint64() const
mxArray * as_mxArray(bool interleaved) const
octave_value resize(const dim_vector &dv, bool fill=false) const
octave_base_value * clone() const
octave_value do_index_op(const octave_value_list &idx, bool resize_ok=false)
octave_lazy_index(const octave::idx_vector &idx)
std::size_t byte_size() const
std::string edit_display(const float_display_format &fmt, octave_idx_type i, octave_idx_type j) const
builtin_type_t builtin_type() const
octave_base_value * empty_clone() const
bool print_as_scalar() const
void print(std::ostream &os, bool pr_as_read_syntax=false)
octave_value convert_to_str_internal(bool pad, bool force, char type) const
octave_value all(int dim=0) const
octave_idx_type numel() const
octave_value_list subsref(const std::string &type, const std::list< octave_value_list > &idx, int)
bool is_matrix_type() const
octave_lazy_index(const octave_lazy_index &i)
~octave_lazy_index()=default
bool is_double_type() const
octave_value subsref(const std::string &type, const std::list< octave_value_list > &idx)
const void * mex_get_data() const
void print_raw(std::ostream &os, bool pr_as_read_syntax=false) const
octave_value map(unary_mapper_t umap) const
bool is_real_matrix() const
MatrixType matrix_type(const MatrixType &_typ) const
MatrixType matrix_type() const
octave_value full_value() const
octave_idx_type nnz() const
octave_value any(int dim=0) const
void print_info(std::ostream &os, const std::string &prefix) const
octave::idx_vector index_vector(bool=false) const
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
octave_value convert_to_str_internal(bool pad, bool force, char type) const
octave_value subsref(const std::string &type, const std::list< octave_value_list > &idx)
octave_value index_op(const octave_value_list &idx, bool resize_ok=false)
octave_value any(int dim=0) const
octave_value map(octave_base_value::unary_mapper_t umap) const
octave_value all(int dim=0) const
octave_value resize(const dim_vector &dv, bool fill=false) const
octave_value diag(octave_idx_type k=0) const
std::complex< double > Complex
std::complex< float > FloatComplex
#define DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA_API(API)
#define FORWARD_VALUE_QUERY(TYPE, NAME)
#define FORWARD_VALUE_QUERY1(TYPE, NAME)