26#if defined (HAVE_CONFIG_H)
59 if (
numel () == 1 && *p ==
':')
60 return octave::idx_vector (
':');
72 "character matrix",
"real scalar");
74 return static_cast<unsigned char> (
m_matrix(0, 0));
84 "character matrix",
"real scalar");
86 return static_cast<unsigned char> (
m_matrix(0, 0));
98 "character matrix",
"int64 scalar");
114 "character matrix",
"uint64 scalar");
128 "character matrix",
"complex scalar");
144 "character matrix",
"complex scalar");
146 retval =
static_cast<unsigned char> (
m_matrix(0, 0));
213 bool pr_as_read_syntax)
const
224 mxChar *pd =
static_cast<mxChar *
> (retval->
get_data ());
226 mwSize nel =
numel ();
230 for (mwIndex i = 0; i < nel; i++)
244#if defined (HAVE_ISASCII)
247 return (c >= 0x00 && c <= 0x7f);
258#define STRING_MAPPER(UMAP,FCN,TYPE) \
259 case umap_ ## UMAP: \
260 return octave_value (m_matrix.map<TYPE, int (&) (int)> (FCN))
264#define STRING_U8_MAPPER(UMAP,FCN) \
265 case umap_ ## UMAP: \
267 charNDArray in_m = m_matrix; \
268 Array<octave_idx_type> p (dim_vector (m_matrix.ndims (), 1)); \
269 if (m_matrix.ndims () > 1) \
271 for (octave_idx_type i=0; i < m_matrix.ndims (); i++) \
275 in_m = m_matrix.permute (p); \
277 boolNDArray b_array = boolNDArray (in_m.dims ()); \
278 const uint8_t *in = reinterpret_cast<const uint8_t *> (in_m.data ()); \
280 for (octave_idx_type i = 0; i < in_m.numel (); ) \
282 int mblen = octave_u8_strmbtouc_wrapper (&uc, in + i); \
285 bool is_upper = FCN (uc); \
286 for (int j = 0; j < mblen; j++) \
287 b_array(i+j) = is_upper; \
290 return octave_value ((m_matrix.ndims () > 1) ? b_array.permute (p, true) \
306#define STRING_U8_FCN(UMAP,U8_FCN,STD_FCN) \
307 case umap_ ## UMAP: \
309 charNDArray in_m = m_matrix; \
310 Array<octave_idx_type> p (dim_vector (m_matrix.ndims (), 1)); \
311 if (m_matrix.ndims () > 1) \
313 for (octave_idx_type i=0; i < m_matrix.ndims (); i++) \
317 in_m = m_matrix.permute (p); \
319 std::size_t output_length = in_m.numel (); \
320 charNDArray ch_array = charNDArray (in_m.dims ()); \
321 const uint8_t *in = reinterpret_cast<const uint8_t *> (in_m.data ()); \
322 uint8_t *buf = reinterpret_cast<uint8_t *> (ch_array.rwdata ()); \
323 U8_FCN (in, m_matrix.numel (), nullptr, buf, &output_length); \
324 if (output_length != static_cast<std::size_t> (m_matrix.numel ())) \
326 warning_with_id ("Octave:multi_byte_char_length", \
327 "UMAP: Possible multi-byte error."); \
328 return octave_value (m_matrix.map<char, int (&) (int)> (STD_FCN)); \
330 return octave_value ((m_matrix.ndims () > 1) ? ch_array.permute (p, true)\
const T * data() const
Size of the specified dimension.
octave_idx_type numel() const
octave_idx_type rows() const
octave_idx_type columns() const
int current_print_indent_level() const
static const char * get_umap_name(unary_mapper_t)
octave_value as_single() const
octave_value as_uint64() const
octave::idx_vector index_vector(bool require_integers=false) const
octave_value as_int8() const
octave_uint64 uint64_scalar_value() const
octave_value as_int16() const
float float_value(bool=false) const
Complex complex_value(bool=false) const
mxArray * as_mxArray(bool interleaved) const
void print_raw(std::ostream &os, bool pr_as_read_syntax=false) const
octave_value map(unary_mapper_t umap) const
octave_value as_int32() const
octave_int64 int64_scalar_value() const
FloatComplex float_complex_value(bool=false) const
octave_value as_double() const
octave_value as_uint16() const
octave_value as_int64() const
octave_value as_uint8() const
octave_value as_uint32() const
NDArray array_value(bool=false) const
double double_value(bool=false) const
octave_value map(unary_mapper_t umap) const
void error(const char *fmt,...)
void err_invalid_conversion(const std::string &from, const std::string &to)
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
float lo_ieee_float_nan_value()
std::complex< double > Complex
std::complex< float > FloatComplex
octave_int< int64_t > octave_int64
octave_int< uint64_t > octave_uint64
#define STRING_U8_FCN(UMAP, U8_FCN, STD_FCN)
#define STRING_U8_MAPPER(UMAP, FCN)
#define STRING_MAPPER(UMAP, FCN, TYPE)
void octave_print_internal(std::ostream &os, const float_display_format &fmt, bool d, bool pr_as_read_syntax)
intNDArray< octave_uint16 > uint16NDArray
intNDArray< octave_uint32 > uint32NDArray
intNDArray< octave_uint64 > uint64NDArray
intNDArray< octave_uint8 > uint8NDArray
uint8_t * octave_u8_toupper_wrapper(const uint8_t *s, size_t n, const char *iso639_language, uint8_t *resultbuf, size_t *lengthp)
uint8_t * octave_u8_tolower_wrapper(const uint8_t *s, size_t n, const char *iso639_language, uint8_t *resultbuf, size_t *lengthp)
bool octave_uc_is_upper_wrapper(ucs4_t uc)
bool octave_uc_is_digit_wrapper(ucs4_t uc)
bool octave_uc_is_lower_wrapper(ucs4_t uc)
bool octave_uc_is_print_wrapper(ucs4_t uc)
bool octave_uc_is_alnum_wrapper(ucs4_t uc)
bool octave_uc_is_space_wrapper(ucs4_t uc)
bool octave_uc_is_cntrl_wrapper(ucs4_t uc)
bool octave_uc_is_xdigit_wrapper(ucs4_t uc)
bool octave_uc_is_alpha_wrapper(ucs4_t uc)
bool octave_uc_is_graph_wrapper(ucs4_t uc)
bool octave_uc_is_punct_wrapper(ucs4_t uc)