case umap_ ## UMAP: \
{ \
charNDArray in_m = m_matrix; \
Array<octave_idx_type> p (
dim_vector (m_matrix.ndims (), 1)); \
if (m_matrix.ndims () > 1) \
{ \
p(i) = i; \
p(0) = 1; \
p(1) = 0; \
in_m = m_matrix.permute (p); \
} \
std::size_t output_length = in_m.numel (); \
const uint8_t *in = reinterpret_cast<const uint8_t *> (in_m.data ()); \
uint8_t *buf = reinterpret_cast<uint8_t *> (ch_array.fortran_vec ()); \
U8_FCN (in, m_matrix.numel (), nullptr, buf, &output_length); \
if (output_length != static_cast<std::size_t> (m_matrix.numel ())) \
{ \
warning_with_id ("Octave:multi_byte_char_length", \
"UMAP: Possible multi-byte error."); \
return
octave_value (m_matrix.map<
char, int (&) (
int)> (STD_FCN)); \
} \
return
octave_value ((m_matrix.ndims () > 1) ? ch_array.permute (p,
true)\
: ch_array); \
}
Vector representing the dimensions (size) of an Array.
class OCTAVE_API charNDArray