31#include "octave-config.h"
69 ~OCTAVE_VALUE_INT_MATRIX_T () =
default;
118 type_name (),
"real scalar");
120 retval =
m_matrix(0).double_value ();
134 type_name (),
"real scalar");
136 retval =
m_matrix(0).float_value ();
151 error (
"invalid conversion of %s to Matrix", type_name ().c_str ());
153 retval =
Matrix (dv(0), dv(1));
154 double *vec = retval.
rwdata ();
157 vec[i] =
m_matrix(i).double_value ();
168 error (
"invalid conversion of %s to FloatMatrix", type_name ().c_str ());
171 float *vec = retval.
rwdata ();
174 vec[i] =
m_matrix(i).float_value ();
185 error (
"invalid conversion of %s to Matrix", type_name ().c_str ());
202 error (
"invalid conversion of %s to FloatMatrix", type_name ().c_str ());
216 NDArray retval (m_matrix.dims ());
217 double *vec = retval.
rwdata ();
220 vec[i] =
m_matrix(i).double_value ();
228 float *vec = retval.
rwdata ();
231 vec[i] =
m_matrix(i).float_value ();
264 if (warn && m_matrix.any_element_not_one_or_zero ())
267 bool *vec = retval.
rwdata ();
281 char *vec = retval.
rwdata ();
310 int write (octave::stream& os,
int block_size,
312 octave::mach_info::float_format flt_fmt)
const
313 {
return os.write (m_matrix, block_size, output_type, skip, flt_fmt); }
320 OCTAVE_INT_T::val_type *pd
321 =
static_cast<OCTAVE_INT_T::val_type *
> (retval->
get_data ());
323 mwSize nel =
numel ();
327 for (mwIndex i = 0; i < nel; i++)
328 pd[i] = pdata[i].value ();
338 return m_matrix.
abs ();
340 return m_matrix.
signum ();
404 ~OCTAVE_VALUE_INT_SCALAR_T () =
default;
413 bool resize_ok =
false)
429 return tmp.
index_op (idx, resize_ok);
514 double double_value (
bool =
false)
const {
return scalar.double_value (); }
516 float float_value (
bool =
false)
const {
return scalar.float_value (); }
518 double scalar_value (
bool =
false)
const {
return scalar.double_value (); }
521 {
return scalar.float_value (); }
527 retval(0, 0) = scalar.double_value ();
535 retval(0, 0) = scalar.float_value ();
543 retval(0, 0) =
Complex (scalar.double_value ());
559 retval(0) = scalar.double_value ();
567 retval(0) = scalar.float_value ();
575 retval(0) =
Complex (scalar.double_value ());
589 if (warn && scalar != 0.0 && scalar != 1.0)
592 return scalar.bool_value ();
600 if (warn && scalar != 0.0 && scalar != 1.0)
603 retval(0) = scalar.bool_value ();
612 retval(0) = scalar.char_value ();
627 {
return octave::idx_vector (scalar); }
629 int write (octave::stream& os,
int block_size,
631 octave::mach_info::float_format flt_fmt)
const
634 block_size, output_type, skip, flt_fmt);
642 OCTAVE_INT_T::val_type *pd
643 =
static_cast<OCTAVE_INT_T::val_type *
> (retval->
get_data ());
645 pd[0] = scalar.value ();
655 return scalar.
abs ();
689 return save_hdf5_internal (loc_id, s_hdf5_save_type, name, flag);
694 return load_hdf5_internal (loc_id, s_hdf5_save_type, name);
N Dimensional Array with copy-on-write semantics.
T * rwdata()
Size of the specified dimension.
Vector representing the dimensions (size) of an Array.
octave_idx_type numel(int n=0) const
Number of elements that a matrix with this dimensions would have.
octave_idx_type ndims() const
Number of dimensions.
bool save_hdf5_internal(octave_hdf5_id loc_id, octave_hdf5_id save_type, const char *name, bool)
bool load_hdf5_internal(octave_hdf5_id loc_id, octave_hdf5_id save_type, const char *name)
octave::idx_vector set_idx_cache(const octave::idx_vector &idx) const
octave::idx_vector * m_idx_cache
octave_idx_type numel() const
virtual float float_value(bool=false) const
virtual double double_value(bool=false) const
octave_value map(unary_mapper_t umap) const
octave_value map(unary_mapper_t umap) const
octave::idx_vector index_vector(bool=false) const
double double_value(bool=false) const
uint64NDArray uint64_array_value() const
float float_value(bool=false) const
uint32NDArray uint32_array_value() const
FloatMatrix float_matrix_value(bool=false) const
octave_base_value * empty_clone() const
octave_value map(unary_mapper_t umap) const
boolNDArray bool_array_value(bool warn=false) const
FloatComplexMatrix float_complex_matrix_value(bool=false) const
int16NDArray int16_array_value() const
builtin_type_t builtin_type() const
bool save_hdf5(octave_hdf5_id loc_id, const char *name, bool flag)
float float_scalar_value(bool=false) const
uint16NDArray uint16_array_value() const
FloatNDArray float_array_value(bool=false) const
Matrix matrix_value(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
FloatComplexNDArray float_complex_array_value(bool=false) const
int32NDArray int32_array_value() const
ComplexNDArray complex_array_value(bool=false) const
int8NDArray int8_array_value() const
NDArray array_value(bool=false) const
int64NDArray int64_array_value() const
octave_base_value * clone() const
bool load_hdf5(octave_hdf5_id loc_id, const char *name)
charNDArray char_array_value(bool=false) const
ComplexMatrix complex_matrix_value(bool=false) const
mxArray * as_mxArray(bool interleaved) const
uint8NDArray uint8_array_value() const
double scalar_value(bool=false) const
octave_uint8 uint8_scalar_value() const
Matrix matrix_value(bool=false) const
uint16NDArray uint16_array_value() const
octave_value do_index_op(const octave_value_list &idx, bool resize_ok=false)
uint32NDArray uint32_array_value() const
octave_base_value * empty_clone() const
FloatNDArray float_array_value(bool=false) const
bool bool_value(bool warn=false) const
FloatMatrix float_matrix_value(bool=false) const
bool save_hdf5(octave_hdf5_id loc_id, const char *name, bool flag)
octave_int32 int32_scalar_value() const
octave_uint32 uint32_scalar_value() const
builtin_type_t builtin_type() const
octave_int16 int16_scalar_value() const
int64NDArray int64_array_value() const
NDArray array_value(bool=false) const
ComplexNDArray complex_array_value(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_uint16 uint16_scalar_value() const
octave_base_value * clone() const
float float_value(bool=false) const
double double_value(bool=false) const
uint8NDArray uint8_array_value() const
ComplexMatrix complex_matrix_value(bool=false) const
octave::idx_vector index_vector(bool=false) const
int16NDArray int16_array_value() const
octave_int8 int8_scalar_value() const
FloatComplexNDArray float_complex_array_value(bool=false) const
double scalar_value(bool=false) const
FloatComplexMatrix float_complex_matrix_value(bool=false) const
octave_int64 int64_scalar_value() const
int8NDArray int8_array_value() const
float float_scalar_value(bool=false) const
octave_uint64 uint64_scalar_value() const
int32NDArray int32_array_value() const
octave_value map(unary_mapper_t umap) const
uint64NDArray uint64_array_value() const
octave_value resize(const dim_vector &dv, bool fill=false) const
mxArray * as_mxArray(bool interleaved) const
charNDArray char_array_value(bool=false) const
bool load_hdf5(octave_hdf5_id loc_id, const char *name)
boolNDArray bool_array_value(bool warn=false) const
octave_value index_op(const octave_value_list &idx, bool resize_ok=false)
octave_value signum() const
void error(const char *fmt,...)
void err_invalid_conversion(const std::string &from, const std::string &to)
void warn_logical_conversion()
void warn_implicit_conversion(const char *id, const char *from, const char *to)
intNDArray< octave_int16 > int16NDArray
intNDArray< octave_int32 > int32NDArray
intNDArray< octave_int64 > int64NDArray
intNDArray< octave_int8 > int8NDArray
std::complex< double > Complex
std::complex< float > FloatComplex
octave_int< uint32_t > octave_uint32
octave_int< int32_t > octave_int32
octave_int< int16_t > octave_int16
octave_int< int8_t > octave_int8
octave_int< int64_t > octave_int64
octave_int< uint64_t > octave_uint64
octave_int< uint16_t > octave_uint16
octave_int< uint8_t > octave_uint8
#define DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA_API(API)
#define OCTAVE_INT_MX_CLASS
#define OCTAVE_TYPE_PREDICATE_FUNCTION
#define OCTAVE_VALUE_INT_NDARRAY_EXTRACTOR_FUNCTION
#define OCTAVE_VALUE_INT_MATRIX_T
#define OCTAVE_VALUE_INT_SCALAR_T
intNDArray< octave_uint16 > uint16NDArray
intNDArray< octave_uint32 > uint32NDArray
intNDArray< octave_uint64 > uint64NDArray
intNDArray< octave_uint8 > uint8NDArray