comparison libinterp/octave-value/ov.h @ 28126:4c21f99b4ad5

handle interleaved complex data and new typed data access functions for mex * mexproto.h, mex.cc, mxarray.h (mxMakeArrayReal, mxMakeArrayComplex, mxGetDoubles, mxGetSingles, mxGetInt8s, mxGetInt16s, mxGetInt32s, mxGetInt64s, mxGetUint8s, mxGetUint16s, mxGetUint32s, mxGetUint64s, mxGetComplexDoubles, mxGetComplexSingles, mxSetDoubles, mxSetSingles, mxSetInt8s, mxSetInt16s, mxSetInt32s, mxSetInt64s, mxSetUint8s, mxSetUint16s, mxSetUint32s, mxSetUint64s, mxSetComplexDoubles, mxSetComplexSingles): New functions. Provide corresponding member functions in mxArray class hierarchy to handle the actual operations. (mxGetComplexInt8s, mxGetComplexInt16s, mxGetComplexInt32s, mxGetComplexInt64s, mxGetComplexUint8s, mxGetComplexUint16s, mxGetComplexUint32s, mxGetComplexUint64s, mxSetComplexInt8s, mxSetComplexInt16s, mxSetComplexInt32s, mxSetComplexInt64s, mxSetComplexUint8s, mxSetComplexUint16s, mxSetComplexUint32s, mxSetComplexUint64s): Add prototypes and functions, but leave commented out since we don't have complex integer data. (class mxArray_number, class mxArray_sparse): Handle interleaved complex data. In mxArray_octave_value and mxArray_matlab constructors, handle interleaved flag in constructor to determine data layout to use when creating mxArray_number or mxArray_sparse objects. (mex::make_value): Check flag in mex function to determine whether to create arrays with interleaved complex. * ov.h, ov.cc, ov-base.h, ov-base.cc, ov-base-diag.h, ov-base-diag.cc, ov-bool-mat.h, ov-bool-mat.cc, ov-bool-sparse.h, ov-bool-sparse.cc, ov-bool.h, ov-bool.cc, ov-cell.h, ov-cell.cc, ov-ch-mat.h, ov-ch-mat.cc, ov-class.h, ov-class.cc, ov-complex.h, ov-complex.cc, ov-cx-mat.h, ov-cx-mat.cc, ov-cx-sparse.h, ov-cx-sparse.cc, ov-float.h, ov-float.cc, ov-flt-complex.h, ov-flt-complex.cc, ov-flt-cx-mat.h, ov-flt-cx-mat.cc, ov-flt-re-mat.h, ov-flt-re-mat.cc, ov-intx.h, ov-lazy-idx.h, ov-perm.h, ov-perm.cc, ov-range.h, ov-range.cc, ov-re-mat.h, ov-re-mat.cc, ov-re-sparse.h, ov-re-sparse.cc, ov-scalar.h, ov-scalar.cc, ov-struct.h, ov-struct.cc: In all as_mxArray methods, handle new interleaved input to optionally create objects that will use interleaved complex data.
author John W. Eaton <jwe@octave.org>
date Tue, 18 Feb 2020 13:16:41 -0500
parents 4963f23b145c
children b743a63e2dab
comparison
equal deleted inserted replaced
28125:0a88a4743096 28126:4c21f99b4ad5
1326 1326
1327 octave_base_value * internal_rep (void) const { return rep; } 1327 octave_base_value * internal_rep (void) const { return rep; }
1328 1328
1329 // Unsafe. These functions exist to support the MEX interface. 1329 // Unsafe. These functions exist to support the MEX interface.
1330 // You should not use them anywhere else. 1330 // You should not use them anywhere else.
1331 void * mex_get_data (void) const { return rep->mex_get_data (); } 1331 void * mex_get_data (mxClassID class_id = mxUNKNOWN_CLASS,
1332 mxComplexity complexity = mxREAL) const;
1332 1333
1333 octave_idx_type * mex_get_ir (void) const { return rep->mex_get_ir (); } 1334 octave_idx_type * mex_get_ir (void) const { return rep->mex_get_ir (); }
1334 1335
1335 octave_idx_type * mex_get_jc (void) const { return rep->mex_get_jc (); } 1336 octave_idx_type * mex_get_jc (void) const { return rep->mex_get_jc (); }
1336 1337
1337 mxArray * as_mxArray (void) const { return rep->as_mxArray (); } 1338 mxArray * as_mxArray (bool interleaved = false) const
1339 { return rep->as_mxArray (interleaved); }
1338 1340
1339 octave_value diag (octave_idx_type k = 0) const 1341 octave_value diag (octave_idx_type k = 0) const
1340 { return rep->diag (k); } 1342 { return rep->diag (k); }
1341 1343
1342 octave_value diag (octave_idx_type m, octave_idx_type n) const 1344 octave_value diag (octave_idx_type m, octave_idx_type n) const