Mercurial > octave
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 |