Mercurial > octave
changeset 32660:f53ac65ffba6
maint: New method rwdata() as clearer alternative to fortran_vec().
* etc/NEWS.10.md: Announce new method and recommend its use in future code.
* doc/interpreter/external.txi: Update Octave manual to use rwdata.
* liboctave/array/Array.h (rwdata): New function prototype.
* liboctave/array/Array.h (fortran_vec): Make inline function that calls rwdata().
* liboctave/array/DiagArray2.h (rwdata): New function prototype.
* liboctave/array/DiagArray2.h (fortran_vec): Make inline function that calls rwdata().
* examples/code/fortrandemo.cc, libgui/graphics/QtHandlesUtils.cc,
libinterp/corefcn/Cell.cc, libinterp/corefcn/__dsearchn__.cc,
libinterp/corefcn/__ichol__.cc, libinterp/corefcn/__ilu__.cc,
libinterp/corefcn/__lin_interpn__.cc, libinterp/corefcn/__magick_read__.cc,
libinterp/corefcn/__pchip_deriv__.cc, libinterp/corefcn/amd.cc,
libinterp/corefcn/data.cc, libinterp/corefcn/dot.cc,
libinterp/corefcn/ellipj.cc, libinterp/corefcn/filter.cc,
libinterp/corefcn/gcd.cc, libinterp/corefcn/gl-render.cc,
libinterp/corefcn/graphics.cc, libinterp/corefcn/graphics.in.h,
libinterp/corefcn/kron.cc, libinterp/corefcn/ls-mat4.cc,
libinterp/corefcn/ls-mat5.cc, libinterp/corefcn/mex.cc,
libinterp/corefcn/oct-map.cc, libinterp/corefcn/oct-stream.cc,
libinterp/corefcn/ordqz.cc, libinterp/corefcn/ordschur.cc,
libinterp/corefcn/perms.cc, libinterp/corefcn/psi.cc,
libinterp/corefcn/quadcc.cc, libinterp/corefcn/qz.cc,
libinterp/corefcn/rand.cc, libinterp/corefcn/sqrtm.cc,
libinterp/corefcn/strfind.cc, libinterp/corefcn/symrcm.cc,
libinterp/corefcn/tril.cc, libinterp/corefcn/typecast.cc,
libinterp/corefcn/xdiv.cc, libinterp/dldfcn/__delaunayn__.cc,
libinterp/dldfcn/__glpk__.cc, libinterp/dldfcn/__ode15__.cc,
libinterp/dldfcn/__voronoi__.cc, libinterp/dldfcn/audioread.cc,
libinterp/dldfcn/convhulln.cc, libinterp/octave-value/ov-base-int.cc,
libinterp/octave-value/ov-bool-mat.cc, libinterp/octave-value/ov-ch-mat.cc,
libinterp/octave-value/ov-cx-diag.cc, libinterp/octave-value/ov-cx-mat.cc,
libinterp/octave-value/ov-flt-cx-diag.cc,
libinterp/octave-value/ov-flt-cx-mat.cc,
libinterp/octave-value/ov-flt-re-diag.cc,
libinterp/octave-value/ov-flt-re-mat.cc, libinterp/octave-value/ov-intx.h,
libinterp/octave-value/ov-java.cc, libinterp/octave-value/ov-perm.cc,
libinterp/octave-value/ov-re-diag.cc, libinterp/octave-value/ov-re-mat.cc,
libinterp/octave-value/ov-str-mat.cc, liboctave/array/Array-base.cc,
liboctave/array/Array-util.cc, liboctave/array/CColVector.cc,
liboctave/array/CDiagMatrix.cc, liboctave/array/CMatrix.cc,
liboctave/array/CNDArray.cc, liboctave/array/CRowVector.cc,
liboctave/array/CSparse.cc, liboctave/array/DiagArray2.h,
liboctave/array/MArray.cc, liboctave/array/PermMatrix.cc,
liboctave/array/Range.h, liboctave/array/Sparse.cc,
liboctave/array/boolSparse.cc, liboctave/array/dColVector.cc,
liboctave/array/dDiagMatrix.cc, liboctave/array/dMatrix.cc,
liboctave/array/dNDArray.cc, liboctave/array/dRowVector.cc,
liboctave/array/dSparse.cc, liboctave/array/fCColVector.cc,
liboctave/array/fCDiagMatrix.cc, liboctave/array/fCMatrix.cc,
liboctave/array/fCNDArray.cc, liboctave/array/fCRowVector.cc,
liboctave/array/fColVector.cc, liboctave/array/fMatrix.cc,
liboctave/array/fNDArray.cc, liboctave/array/fRowVector.cc,
liboctave/array/idx-vector.cc, liboctave/numeric/CollocWt.cc,
liboctave/numeric/DASPK.cc, liboctave/numeric/DASRT.cc,
liboctave/numeric/DASSL.cc, liboctave/numeric/EIG.cc,
liboctave/numeric/LSODE.cc, liboctave/numeric/Quad.cc,
liboctave/numeric/aepbalance.cc, liboctave/numeric/bsxfun-defs.cc,
liboctave/numeric/chol.cc, liboctave/numeric/eigs-base.cc,
liboctave/numeric/fEIG.cc, liboctave/numeric/gepbalance.cc,
liboctave/numeric/gsvd.cc, liboctave/numeric/hess.cc, liboctave/numeric/lu.cc,
liboctave/numeric/oct-convn.cc, liboctave/numeric/oct-rand.cc,
liboctave/numeric/qr.cc, liboctave/numeric/qrp.cc, liboctave/numeric/schur.cc,
liboctave/numeric/sparse-dmsolve.cc, liboctave/numeric/sparse-lu.cc,
liboctave/numeric/sparse-qr.cc, liboctave/numeric/svd.cc,
liboctave/operators/mx-inlines.cc, liboctave/operators/mx-op-defs.h,
liboctave/util/oct-base64.cc, liboctave/util/oct-binmap.h,
liboctave/util/str-vec.cc:
Replace calls to fortran_vec() with calls to rwdata().
line wrap: on
line diff
--- a/doc/interpreter/external.txi Wed Dec 27 14:29:02 2023 -0800 +++ b/doc/interpreter/external.txi Wed Dec 27 16:55:14 2023 -0800 @@ -310,7 +310,7 @@ Note that these functions do significant error checking and so in some circumstances the user might prefer to access the data of the array or matrix -directly through the @code{fortran_vec} method discussed below. +directly through the @code{rwdata} method discussed below. @deftypefn {Method} {octave_idx_type} numel () const The total number of elements in the matrix or array. @@ -336,7 +336,7 @@ of rows and columns in the matrix. @end deftypefn -@deftypefn {Method} {T*} fortran_vec () +@deftypefn {Method} {T *} rwdata () This method returns a pointer to the underlying data of the matrix or array so that it can be manipulated directly, either within Octave or by an external library. @@ -646,7 +646,7 @@ @end example Finally, because the sparse types aren't represented by a contiguous block of -memory, the @nospell{@code{fortran_vec}} method of @code{Array<T>} is not +memory, the @nospell{@code{rwdata}} method of @code{Array<T>} is not available. It is, however, replaced by three separate methods @code{ridx}, @code{cidx}, and @code{data}, that access the raw compressed column format that Octave sparse matrices are stored in. These methods can be used in a manner @@ -1149,7 +1149,7 @@ The disadvantage of this is that if the foreign code allocates any memory internally, then this memory might be lost during an interrupt, without being deallocated. Therefore, ideally Octave itself should allocate any memory that -is needed by the foreign code, with either the @nospell{@code{fortran_vec}} +is needed by the foreign code, with either the @nospell{@code{rwdata}} method or the @w{@code{OCTAVE_LOCAL_BUFFER}} macro. The Octave @code{unwind_protect} mechanism (@ref{The unwind_protect Statement})
--- a/etc/NEWS.10.md Wed Dec 27 14:29:02 2023 -0800 +++ b/etc/NEWS.10.md Wed Dec 27 16:55:14 2023 -0800 @@ -44,6 +44,12 @@ symbol_record::mark_as_variable | symbol_record::mark_variable symbol_record::unmark_as_variable | symbol_record::unmark_variable +- A new method `rwdata ()` provides direct read/write access (a pointer) to the +data in a liboctave `Array` object (or its derived classes such as `Matrix`). +Historically, the method `fortran_vec ()` provided this access, but the name +is unclear, and it is recommended to use `rwdata ()` in any new code. There +are no plans to deprecate `fortran_vec`. + The following features were deprecated in Octave 8 and have been removed from Octave 10.
--- a/examples/code/fortrandemo.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/examples/code/fortrandemo.cc Wed Dec 27 16:55:14 2023 -0800 @@ -15,7 +15,7 @@ NDArray a = args(0).array_value (); - double *av = a.fortran_vec (); + double *av = a.rwdata (); octave_idx_type na = a.numel (); OCTAVE_LOCAL_BUFFER (char, ctmp, 128);
--- a/libgui/graphics/QtHandlesUtils.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libgui/graphics/QtHandlesUtils.cc Wed Dec 27 16:55:14 2023 -0800 @@ -160,7 +160,7 @@ toRgb (const QColor& c) { Matrix rgb (1, 3); - double *rgbData = rgb.fortran_vec (); + double *rgbData = rgb.rwdata (); #if HAVE_QCOLOR_FLOAT_TYPE float tmp[3];
--- a/libinterp/corefcn/Cell.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/Cell.cc Wed Dec 27 16:55:14 2023 -0800 @@ -72,7 +72,7 @@ { resize (dim_vector (n, 1)); - octave_value *dst = fortran_vec (); + octave_value *dst = rwdata (); auto p = sl.begin (); for (octave_idx_type i = 0; i < n; i++) @@ -85,7 +85,7 @@ { octave_idx_type n = sa.numel (); - octave_value *dst = fortran_vec (); + octave_value *dst = rwdata (); const std::string *src = sa.data (); for (octave_idx_type i = 0; i < n; i++) @@ -344,7 +344,7 @@ Cell::map (ctype_mapper fcn) const { Cell retval (dims ()); - octave_value *r = retval.fortran_vec (); + octave_value *r = retval.rwdata (); const octave_value *p = data ();
--- a/libinterp/corefcn/__dsearchn__.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/__dsearchn__.cc Wed Dec 27 16:55:14 2023 -0800 @@ -57,9 +57,9 @@ octave_idx_type nxi = xi.columns (); ColumnVector idx (nxi); - double *pidx = idx.fortran_vec (); + double *pidx = idx.rwdata (); ColumnVector dist (nxi); - double *pdist = dist.fortran_vec (); + double *pdist = dist.rwdata (); #define DIST(dd, y, yi, m) \ dd = 0.0; \
--- a/libinterp/corefcn/__ichol__.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/__ichol__.cc Wed Dec 27 16:55:14 2023 -0800 @@ -254,11 +254,11 @@ max_len = sm.nnz (); max_len += (0.1 * max_len) > n ? 0.1 * max_len : n; Array <octave_idx_type> cidx_out_l (dim_vector (n + 1, 1)); - octave_idx_type *cidx_l = cidx_out_l.fortran_vec (); + octave_idx_type *cidx_l = cidx_out_l.rwdata (); Array <octave_idx_type> ridx_out_l (dim_vector (max_len, 1)); - octave_idx_type *ridx_l = ridx_out_l.fortran_vec (); + octave_idx_type *ridx_l = ridx_out_l.rwdata (); Array <T> data_out_l (dim_vector (max_len, 1)); - T *data_l = data_out_l.fortran_vec (); + T *data_l = data_out_l.rwdata (); // Working arrays OCTAVE_LOCAL_BUFFER (T, w_data, n); @@ -332,9 +332,9 @@ { max_len += (0.1 * max_len) > n ? 0.1 * max_len : n; data_out_l.resize (dim_vector (max_len, 1)); - data_l = data_out_l.fortran_vec (); + data_l = data_out_l.rwdata (); ridx_out_l.resize (dim_vector (max_len, 1)); - ridx_l = ridx_out_l.fortran_vec (); + ridx_l = ridx_out_l.rwdata (); } // The sorting of the nonzero elements of the working column can be @@ -445,7 +445,7 @@ RowVector sm_col_norms = xcolnorms (sm_l, 1); ichol_t <SparseMatrix, double, ichol_mult_real, ichol_checkpivot_real> - (sm_l, L, sm_col_norms.fortran_vec (), droptol, michol); + (sm_l, L, sm_col_norms.rwdata (), droptol, michol); return ovl (L); } @@ -457,7 +457,7 @@ Array <Complex> cols_norm = xcolnorms (sm_l, 1); ichol_t <SparseComplexMatrix, Complex, ichol_mult_complex, ichol_checkpivot_complex> - (sm_l, L, cols_norm.fortran_vec (), + (sm_l, L, cols_norm.rwdata (), Complex (droptol), michol); return ovl (L);
--- a/libinterp/corefcn/__ilu__.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/__ilu__.cc Wed Dec 27 16:55:14 2023 -0800 @@ -220,15 +220,15 @@ // L output arrays Array <octave_idx_type> ridx_out_l (dim_vector (max_len_l, 1)); - octave_idx_type *ridx_l = ridx_out_l.fortran_vec (); + octave_idx_type *ridx_l = ridx_out_l.rwdata (); Array <T> data_out_l (dim_vector (max_len_l, 1)); - T *data_l = data_out_l.fortran_vec (); + T *data_l = data_out_l.rwdata (); // U output arrays Array <octave_idx_type> ridx_out_u (dim_vector (max_len_u, 1)); - octave_idx_type *ridx_u = ridx_out_u.fortran_vec (); + octave_idx_type *ridx_u = ridx_out_u.rwdata (); Array <T> data_out_u (dim_vector (max_len_u, 1)); - T *data_u = data_out_u.fortran_vec (); + T *data_u = data_out_u.rwdata (); // Working arrays OCTAVE_LOCAL_BUFFER (octave_idx_type, cidx_l, n + 1); @@ -293,18 +293,18 @@ { max_len_u += (0.1 * max_len_u) > n ? 0.1 * max_len_u : n; data_out_u.resize (dim_vector (max_len_u, 1)); - data_u = data_out_u.fortran_vec (); + data_u = data_out_u.rwdata (); ridx_out_u.resize (dim_vector (max_len_u, 1)); - ridx_u = ridx_out_u.fortran_vec (); + ridx_u = ridx_out_u.rwdata (); } if ((max_len_l - total_len_l) < n) { max_len_l += (0.1 * max_len_l) > n ? 0.1 * max_len_l : n; data_out_l.resize (dim_vector (max_len_l, 1)); - data_l = data_out_l.fortran_vec (); + data_l = data_out_l.rwdata (); ridx_out_l.resize (dim_vector (max_len_l, 1)); - ridx_l = ridx_out_l.fortran_vec (); + ridx_l = ridx_out_l.rwdata (); } // Expand the working row into the U output data structures @@ -487,8 +487,8 @@ RowVector sm_col_norms = xcolnorms (sm); ColumnVector sm_row_norms = xrownorms (sm); ilu_crout <SparseMatrix, double> (sm_l, sm_u, L, U, - sm_col_norms.fortran_vec (), - sm_row_norms.fortran_vec (), + sm_col_norms.rwdata (), + sm_row_norms.rwdata (), droptol, milu); SparseMatrix speye (DiagMatrix (L.cols (), L.cols (), 1.0)); @@ -505,8 +505,8 @@ Array<Complex> rows_norm = xrownorms (sm); ilu_crout <SparseComplexMatrix, Complex> (sm_l, sm_u, L, U, - cols_norm.fortran_vec (), - rows_norm.fortran_vec (), + cols_norm.rwdata (), + rows_norm.rwdata (), Complex (droptol), milu); SparseMatrix speye (DiagMatrix (L.cols (), L.cols (), 1.0)); @@ -563,19 +563,19 @@ // Extract pointers to the arrays for faster access inside loops Array <octave_idx_type> cidx_out_l (dim_vector (n + 1, 1)); - octave_idx_type *cidx_l = cidx_out_l.fortran_vec (); + octave_idx_type *cidx_l = cidx_out_l.rwdata (); Array <octave_idx_type> ridx_out_l (dim_vector (max_len_l, 1)); - octave_idx_type *ridx_l = ridx_out_l.fortran_vec (); + octave_idx_type *ridx_l = ridx_out_l.rwdata (); Array <T> data_out_l (dim_vector (max_len_l, 1)); - T *data_l = data_out_l.fortran_vec (); + T *data_l = data_out_l.rwdata (); // Data for U Array <octave_idx_type> cidx_out_u (dim_vector (n + 1, 1)); - octave_idx_type *cidx_u = cidx_out_u.fortran_vec (); + octave_idx_type *cidx_u = cidx_out_u.rwdata (); Array <octave_idx_type> ridx_out_u (dim_vector (max_len_u, 1)); - octave_idx_type *ridx_u = ridx_out_u.fortran_vec (); + octave_idx_type *ridx_u = ridx_out_u.rwdata (); Array <T> data_out_u (dim_vector (max_len_u, 1)); - T *data_u = data_out_u.fortran_vec (); + T *data_u = data_out_u.rwdata (); // Working arrays and permutation arrays octave_idx_type w_len_u, w_len_l; @@ -585,7 +585,7 @@ std::set <octave_idx_type>::iterator it, it2; OCTAVE_LOCAL_BUFFER (T, w_data, n); OCTAVE_LOCAL_BUFFER (octave_idx_type, iperm, n); - octave_idx_type *perm = perm_vec.fortran_vec (); + octave_idx_type *perm = perm_vec.rwdata (); OCTAVE_LOCAL_BUFFER (octave_idx_type, uptr, n); // Initialize working and permutation arrays @@ -770,18 +770,18 @@ { max_len_u += (0.1 * max_len_u) > n ? 0.1 * max_len_u : n; data_out_u.resize (dim_vector (max_len_u, 1)); - data_u = data_out_u.fortran_vec (); + data_u = data_out_u.rwdata (); ridx_out_u.resize (dim_vector (max_len_u, 1)); - ridx_u = ridx_out_u.fortran_vec (); + ridx_u = ridx_out_u.rwdata (); } if ((max_len_l - total_len_l) < n) { max_len_l += (0.1 * max_len_l) > n ? 0.1 * max_len_l : n; data_out_l.resize (dim_vector (max_len_l, 1)); - data_l = data_out_l.fortran_vec (); + data_l = data_out_l.rwdata (); ridx_out_l.resize (dim_vector (max_len_l, 1)); - ridx_l = ridx_out_l.fortran_vec (); + ridx_l = ridx_out_l.rwdata (); } // Expand working vector into U. @@ -935,7 +935,7 @@ Array <octave_idx_type> perm (dim_vector (sm.cols (), 1)); ilu_tp <SparseMatrix, double> (sm, L, U, nnz_u, nnz_l, - rc_norm.fortran_vec (), + rc_norm.rwdata (), perm, droptol, thresh, milu, udiag); SparseMatrix speye (DiagMatrix (L.cols (), L.cols (), 1.0)); @@ -976,7 +976,7 @@ Array <octave_idx_type> perm (dim_vector (sm.cols (), 1)); ilu_tp <SparseComplexMatrix, Complex> - (sm, L, U, nnz_u, nnz_l, rc_norm.fortran_vec (), perm, + (sm, L, U, nnz_u, nnz_l, rc_norm.rwdata (), perm, Complex (droptol), Complex (thresh), milu, udiag); SparseMatrix speye (DiagMatrix (L.cols (), L.cols (), 1.0));
--- a/libinterp/corefcn/__lin_interpn__.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/__lin_interpn__.cc Wed Dec 27 16:55:14 2023 -0800 @@ -212,7 +212,7 @@ OCTAVE_LOCAL_BUFFER (octave_idx_type, scale, n); const DT *v = V.data (); - DT *vi = Vi.fortran_vec (); + DT *vi = Vi.rwdata (); octave_idx_type Ni = Vi.numel (); // offset in memory of each dimension
--- a/libinterp/corefcn/__magick_read__.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/__magick_read__.cc Wed Dec 27 16:55:14 2023 -0800 @@ -300,7 +300,7 @@ const octave_idx_type def_elem = frameidx(0); T img = T (dim_vector (nRows, nCols, 1, nFrames)); - P *img_fvec = img.fortran_vec (); + P *img_fvec = img.rwdata (); const octave_idx_type row_start = region.row_start (); const octave_idx_type col_start = region.col_start (); @@ -358,7 +358,7 @@ const double *amap_fvec = amap.data (); NDArray alpha (dim_vector (nRows, nCols, 1, nFrames)); - double *alpha_fvec = alpha.fortran_vec (); + double *alpha_fvec = alpha.rwdata (); // GraphicsMagick stores the alpha values inverted, i.e., // 1 for transparent and 0 for opaque so we fix that here. @@ -526,7 +526,7 @@ case Magick::GrayscaleType: // Grayscale image { img = T (dim_vector (nRows, nCols, 1, nFrames)); - P *img_fvec = img.fortran_vec (); + P *img_fvec = img.rwdata (); octave_idx_type idx = 0; for (octave_idx_type frame = 0; frame < nFrames; frame++) @@ -554,8 +554,8 @@ { img = T (dim_vector (nRows, nCols, 1, nFrames)); T alpha (dim_vector (nRows, nCols, 1, nFrames)); - P *img_fvec = img.fortran_vec (); - P *a_fvec = alpha.fortran_vec (); + P *img_fvec = img.rwdata (); + P *a_fvec = alpha.rwdata (); octave_idx_type idx = 0; for (octave_idx_type frame = 0; frame < nFrames; frame++) @@ -586,7 +586,7 @@ case Magick::TrueColorType: // Truecolor image { img = T (dim_vector (nRows, nCols, 3, nFrames)); - P *img_fvec = img.fortran_vec (); + P *img_fvec = img.rwdata (); const octave_idx_type frame_stride = color_stride * 3; for (octave_idx_type frame = 0; frame < nFrames; frame++) @@ -624,8 +624,8 @@ { img = T (dim_vector (nRows, nCols, 3, nFrames)); T alpha (dim_vector (nRows, nCols, 1, nFrames)); - P *img_fvec = img.fortran_vec (); - P *a_fvec = alpha.fortran_vec (); + P *img_fvec = img.rwdata (); + P *a_fvec = alpha.rwdata (); const octave_idx_type frame_stride = color_stride * 3; @@ -667,7 +667,7 @@ case Magick::ColorSeparationType: // Cyan/Magenta/Yellow/Black (CMYK) image { img = T (dim_vector (nRows, nCols, 4, nFrames)); - P *img_fvec = img.fortran_vec (); + P *img_fvec = img.rwdata (); const octave_idx_type frame_stride = color_stride * 4; for (octave_idx_type frame = 0; frame < nFrames; frame++) @@ -707,8 +707,8 @@ { img = T (dim_vector (nRows, nCols, 4, nFrames)); T alpha (dim_vector (nRows, nCols, 1, nFrames)); - P *img_fvec = img.fortran_vec (); - P *a_fvec = alpha.fortran_vec (); + P *img_fvec = img.rwdata (); + P *a_fvec = alpha.rwdata (); const octave_idx_type frame_stride = color_stride * 4; @@ -968,7 +968,7 @@ typedef typename T::element_type P; uint32NDArray out (img.dims ()); - octave_uint32 *out_fvec = out.fortran_vec (); + octave_uint32 *out_fvec = out.rwdata (); const P *img_fvec = img.data (); const octave_uint32 max = octave_uint32::max (); @@ -2089,7 +2089,7 @@ // be all zeros. So rather than send a matrix of zeros, we will // check for that, and send an empty vector instead. RowVector chromaticities (8); - double *chroma_fvec = chromaticities.fortran_vec (); + double *chroma_fvec = chromaticities.rwdata (); img.chromaWhitePoint (&chroma_fvec[0], &chroma_fvec[1]); img.chromaRedPrimary (&chroma_fvec[2], &chroma_fvec[3]); img.chromaGreenPrimary (&chroma_fvec[4], &chroma_fvec[5]);
--- a/libinterp/corefcn/__pchip_deriv__.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/__pchip_deriv__.cc Wed Dec 27 16:55:14 2023 -0800 @@ -82,7 +82,7 @@ { F77_XFCN (pchim, PCHIM, (nx, xvec.data (), reinterpret_cast<float const *> (ymat.data ()) + k * inc, - reinterpret_cast<float *> (dmat.fortran_vec ()) + k * inc, + reinterpret_cast<float *> (dmat.rwdata ()) + k * inc, incfd, ierr)); if (ierr < 0) @@ -91,7 +91,7 @@ F77_XFCN (pchim, PCHIM, (nx, xvec.data (), reinterpret_cast<float const *> (ymat.data ()) + 1 + k * inc, - reinterpret_cast<float *> (dmat.fortran_vec ()) + 1 + k * inc, + reinterpret_cast<float *> (dmat.rwdata ()) + 1 + k * inc, incfd, ierr)); if (ierr < 0) @@ -124,7 +124,7 @@ { F77_XFCN (pchim, PCHIM, (nx, xvec.data (), ymat.data () + k * inc, - dmat.fortran_vec () + k * inc, + dmat.rwdata () + k * inc, incfd, ierr)); k++; @@ -165,7 +165,7 @@ { F77_XFCN (dpchim, DPCHIM, (nx, xvec.data (), reinterpret_cast<double const *> (ymat.data ()) + k * inc, - reinterpret_cast<double *> (dmat.fortran_vec ()) + k * inc, + reinterpret_cast<double *> (dmat.rwdata ()) + k * inc, incfd, ierr)); if (ierr < 0) @@ -174,7 +174,7 @@ F77_XFCN (dpchim, DPCHIM, (nx, xvec.data (), reinterpret_cast<double const *> (ymat.data ()) + 1 + k * inc, - reinterpret_cast<double *> (dmat.fortran_vec ()) + 1 + k * inc, + reinterpret_cast<double *> (dmat.rwdata ()) + 1 + k * inc, incfd, ierr)); if (ierr < 0) @@ -207,7 +207,7 @@ { F77_XFCN (dpchim, DPCHIM, (nx, xvec.data (), ymat.data () + k * inc, - dmat.fortran_vec () + k * inc, + dmat.rwdata () + k * inc, incfd, ierr)); k++;
--- a/libinterp/corefcn/amd.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/amd.cc Wed Dec 27 16:55:14 2023 -0800 @@ -147,7 +147,7 @@ OCTAVE_LOCAL_BUFFER (suitesparse_integer, P, n_col); Matrix xinfo (AMD_INFO, 1); - double *Info = xinfo.fortran_vec (); + double *Info = xinfo.rwdata (); // FIXME: how can we manage the memory allocation of amd // in a cleaner manner?
--- a/libinterp/corefcn/data.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/data.cc Wed Dec 27 16:55:14 2023 -0800 @@ -7970,7 +7970,7 @@ if ((! tscl && tval.dims () != dv) || (! fscl && fval.dims () != dv)) error ("merge: MASK, TVAL, and FVAL dimensions must match"); - T *rv = retval.fortran_vec (); + T *rv = retval.rwdata (); octave_idx_type n = retval.numel (); const T *tv = tval.data (); @@ -8351,7 +8351,7 @@ } retval.clear (1, l); - T *dest = retval.fortran_vec (); + T *dest = retval.rwdata (); l = 0; for (octave_idx_type i = 0; i < n; i++) {
--- a/libinterp/corefcn/dot.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/dot.cc Wed Dec 27 16:55:14 2023 -0800 @@ -144,7 +144,7 @@ F77_XFCN (cdotc3, CDOTC3, (m, n, k, F77_CONST_CMPLX_ARG (x.data ()), F77_CONST_CMPLX_ARG (y.data ()), - F77_CMPLX_ARG (z.fortran_vec ()))); + F77_CMPLX_ARG (z.rwdata ()))); retval = z; } else @@ -156,7 +156,7 @@ F77_XFCN (zdotc3, ZDOTC3, (m, n, k, F77_CONST_DBLE_CMPLX_ARG (x.data ()), F77_CONST_DBLE_CMPLX_ARG (y.data ()), - F77_DBLE_CMPLX_ARG (z.fortran_vec ()))); + F77_DBLE_CMPLX_ARG (z.rwdata ()))); retval = z; } } @@ -170,7 +170,7 @@ FloatNDArray z (dimz); F77_XFCN (sdot3, SDOT3, (m, n, k, x.data (), y.data (), - z.fortran_vec ())); + z.rwdata ())); retval = z; } else @@ -181,7 +181,7 @@ NDArray z (dimz); F77_XFCN (ddot3, DDOT3, (m, n, k, x.data (), y.data (), - z.fortran_vec ())); + z.rwdata ())); retval = z; } } @@ -263,7 +263,7 @@ F77_XFCN (cmatm3, CMATM3, (m, n, k, np, F77_CONST_CMPLX_ARG (x.data ()), F77_CONST_CMPLX_ARG (y.data ()), - F77_CMPLX_ARG (z.fortran_vec ()))); + F77_CMPLX_ARG (z.rwdata ()))); } template <> @@ -275,7 +275,7 @@ F77_XFCN (zmatm3, ZMATM3, (m, n, k, np, F77_CONST_DBLE_CMPLX_ARG (x.data ()), F77_CONST_DBLE_CMPLX_ARG (y.data ()), - F77_DBLE_CMPLX_ARG (z.fortran_vec ()))); + F77_DBLE_CMPLX_ARG (z.rwdata ()))); } template <> @@ -285,7 +285,7 @@ { F77_XFCN (smatm3, SMATM3, (m, n, k, np, x.data (), y.data (), - z.fortran_vec ())); + z.rwdata ())); } template <> @@ -295,7 +295,7 @@ { F77_XFCN (dmatm3, DMATM3, (m, n, k, np, x.data (), y.data (), - z.fortran_vec ())); + z.rwdata ())); } static void
--- a/libinterp/corefcn/ellipj.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/ellipj.cc Wed Dec 27 16:55:14 2023 -0800 @@ -123,10 +123,10 @@ NDArray err (sz_u); const Complex *pu = u.data (); - Complex *psn = sn.fortran_vec (); - Complex *pcn = cn.fortran_vec (); - Complex *pdn = dn.fortran_vec (); - double *perr = err.fortran_vec (); + Complex *psn = sn.rwdata (); + Complex *pcn = cn.rwdata (); + Complex *pdn = dn.rwdata (); + double *perr = err.rwdata (); octave_idx_type nel = u.numel (); for (octave_idx_type i = 0; i < nel; i++) @@ -153,10 +153,10 @@ NDArray err (sz_m); const double *pm = m.data (); - double *psn = sn.fortran_vec (); - double *pcn = cn.fortran_vec (); - double *pdn = dn.fortran_vec (); - double *perr = err.fortran_vec (); + double *psn = sn.rwdata (); + double *pcn = cn.rwdata (); + double *pdn = dn.rwdata (); + double *perr = err.rwdata (); octave_idx_type nel = m.numel (); for (octave_idx_type i = 0; i < nel; i++) @@ -173,10 +173,10 @@ NDArray err (sz_m); const double *pm = m.data (); - Complex *psn = sn.fortran_vec (); - Complex *pcn = cn.fortran_vec (); - Complex *pdn = dn.fortran_vec (); - double *perr = err.fortran_vec (); + Complex *psn = sn.rwdata (); + Complex *pcn = cn.rwdata (); + Complex *pdn = dn.rwdata (); + double *perr = err.rwdata (); octave_idx_type nel = m.numel (); for (octave_idx_type i = 0; i < nel; i++) @@ -222,10 +222,10 @@ const double *pu = u.data (); const double *pm = m.data (); - double *psn = sn.fortran_vec (); - double *pcn = cn.fortran_vec (); - double *pdn = dn.fortran_vec (); - double *perr = err.fortran_vec (); + double *psn = sn.rwdata (); + double *pcn = cn.rwdata (); + double *pdn = dn.rwdata (); + double *perr = err.rwdata (); octave_idx_type nel = m.numel (); for (octave_idx_type i = 0; i < nel; i++) @@ -270,10 +270,10 @@ const Complex *pu = u.data (); const double *pm = m.data (); - Complex *psn = sn.fortran_vec (); - Complex *pcn = cn.fortran_vec (); - Complex *pdn = dn.fortran_vec (); - double *perr = err.fortran_vec (); + Complex *psn = sn.rwdata (); + Complex *pcn = cn.rwdata (); + Complex *pdn = dn.rwdata (); + double *perr = err.rwdata (); octave_idx_type nel = m.numel (); for (octave_idx_type i = 0; i < nel; i++)
--- a/libinterp/corefcn/filter.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/filter.cc Wed Dec 27 16:55:14 2023 -0800 @@ -164,8 +164,8 @@ // is common to both branches can be pulled out here without affecting // correctness or speed. - T *py = y.fortran_vec (); - T *psi = si.fortran_vec (); + T *py = y.rwdata (); + T *psi = si.rwdata (); const T *pb = b.data (); const T *px = x.data (); psi += si_offset;
--- a/libinterp/corefcn/gcd.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/gcd.cc Wed Dec 27 16:55:14 2023 -0800 @@ -351,9 +351,9 @@ bool inca = aa.numel () != 1; bool incb = bb.numel () != 1; - T *gptr = gg.fortran_vec (); - T *xptr = xx.fortran_vec (); - T *yptr = yy.fortran_vec (); + T *gptr = gg.rwdata (); + T *xptr = xx.rwdata (); + T *yptr = yy.rwdata (); octave_idx_type n = gg.numel (); for (octave_idx_type i = 0; i < n; i++)
--- a/libinterp/corefcn/gl-render.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/gl-render.cc Wed Dec 27 16:55:14 2023 -0800 @@ -1222,7 +1222,7 @@ uint8NDArray pix(dim_vector (3, width, height), 0); m_glfcns.glReadPixels(0, 0, width, height, GL_RGB, GL_UNSIGNED_BYTE, - pix.fortran_vec ()); + pix.rwdata ()); // Permute and flip data Array<octave_idx_type> perm (dim_vector (3, 1)); @@ -3461,7 +3461,7 @@ vertex_data::vertex_data_rep *vv = vdata[i+j*fr].get_rep (); - tess.add_vertex (vv->m_coords.fortran_vec (), vv); + tess.add_vertex (vv->m_coords.rwdata (), vv); } if (count_f(i) > 0) @@ -3501,7 +3501,7 @@ } } - tess.add_vertex (vv->m_coords.fortran_vec (), vv); + tess.add_vertex (vv->m_coords.rwdata (), vv); } tess.end_contour (); @@ -3631,7 +3631,7 @@ { vertex_data::vertex_data_rep *vv = vdata[i+j*fr].get_rep (); - tess.add_vertex (vv->m_coords.fortran_vec (), vv); + tess.add_vertex (vv->m_coords.rwdata (), vv); } tess.end_contour ();
--- a/libinterp/corefcn/graphics.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/graphics.cc Wed Dec 27 16:55:14 2023 -0800 @@ -408,7 +408,7 @@ // It would be nice if Matrix had a ctor allowing to do the // following without a copy Matrix cmap (256, 3, 0.0); - std::copy (cmapv, cmapv + (256*3), cmap.fortran_vec ()); + std::copy (cmapv, cmapv + (256*3), cmap.rwdata ()); return cmap; } @@ -1222,7 +1222,7 @@ octave_idx_type lda = a.numel () / static_cast<octave_idx_type> (3); octave_idx_type nc = cmap.rows (); - double *av = a.fortran_vec (); + double *av = a.rwdata (); const double *cmapv = cmap.data (); double clim_0 = clim(0); @@ -5760,7 +5760,7 @@ }; Matrix m (4, 8); - memcpy (m.fortran_vec (), data, sizeof (double)*32); + memcpy (m.rwdata (), data, sizeof (double)*32); return m; } @@ -5770,7 +5770,7 @@ { ColumnVector retval (4, 1.0); - memcpy (retval.fortran_vec (), m.data (), sizeof (double)*3); + memcpy (retval.rwdata (), m.data (), sizeof (double)*3); return retval; }
--- a/libinterp/corefcn/graphics.in.h Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/graphics.in.h Wed Dec 27 16:55:14 2023 -0800 @@ -127,7 +127,7 @@ { Matrix retval (m.rows (), m.cols ()); - do_scale (m.data (), retval.fortran_vec (), m.numel ()); + do_scale (m.data (), retval.rwdata (), m.numel ()); return retval; } @@ -136,7 +136,7 @@ { NDArray retval (m.dims ()); - do_scale (m.data (), retval.fortran_vec (), m.numel ()); + do_scale (m.data (), retval.rwdata (), m.numel ()); return retval; } @@ -168,7 +168,7 @@ { Matrix retval (m.rows (), m.cols ()); - do_scale (m.data (), retval.fortran_vec (), m.numel ()); + do_scale (m.data (), retval.rwdata (), m.numel ()); return retval; } @@ -177,7 +177,7 @@ { NDArray retval (m.dims ()); - do_scale (m.data (), retval.fortran_vec (), m.numel ()); + do_scale (m.data (), retval.rwdata (), m.numel ()); return retval; }
--- a/libinterp/corefcn/kron.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/kron.cc Wed Dec 27 16:55:14 2023 -0800 @@ -64,7 +64,7 @@ octave_idx_type ncb = b.cols (); MArray<T> c (dim_vector (nra*nrb, nca*ncb)); - T *cv = c.fortran_vec (); + T *cv = c.rwdata (); for (octave_idx_type ja = 0; ja < nca; ja++) {
--- a/libinterp/corefcn/ls-mat4.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/ls-mat4.cc Wed Dec 27 16:55:14 2023 -0800 @@ -340,7 +340,7 @@ for (octave_idx_type i = 0; i < nr - 1; i++) c.xelem (i) = dtmp[i] - 1; nc_new = dtmp[nr - 1]; - read_mat_binary_data (is, data.fortran_vec (), prec, nr - 1, + read_mat_binary_data (is, data.rwdata (), prec, nr - 1, swap, flt_fmt); read_mat_binary_data (is, dtmp, prec, 1, swap, flt_fmt); @@ -353,7 +353,7 @@ { Matrix re (nr, nc); - read_mat_binary_data (is, re.fortran_vec (), prec, dlen, swap, flt_fmt); + read_mat_binary_data (is, re.rwdata (), prec, dlen, swap, flt_fmt); if (! is) error ("load: reading matrix data for '%s'", name); @@ -362,7 +362,7 @@ { Matrix im (nr, nc); - read_mat_binary_data (is, im.fortran_vec (), prec, dlen, swap, + read_mat_binary_data (is, im.rwdata (), prec, dlen, swap, flt_fmt); if (! is)
--- a/libinterp/corefcn/ls-mat5.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/ls-mat5.cc Wed Dec 27 16:55:14 2023 -0800 @@ -382,7 +382,7 @@ \ octave_idx_type n = re.numel (); \ tmp_pos = is.tellg (); \ - read_mat5_integer_data (is, re.fortran_vec (), n, swap, \ + read_mat5_integer_data (is, re.rwdata (), n, swap, \ static_cast<enum mat5_data_type> (type)); \ \ if (! is) \ @@ -401,7 +401,7 @@ retval.c_str ()); \ \ n = im.numel (); \ - read_mat5_binary_data (is, im.fortran_vec (), n, swap, \ + read_mat5_binary_data (is, im.rwdata (), n, swap, \ static_cast<enum mat5_data_type> (type), flt_fmt); \ \ if (! is) \ @@ -808,7 +808,7 @@ if (imag) { re = NDArray (dim_vector (nnz, 1)); - data = re.fortran_vec (); + data = re.rwdata (); } tmp_pos = is.tellg (); @@ -832,7 +832,7 @@ error ("load: reading sparse matrix data for '%s'", retval.c_str ()); - read_mat5_binary_data (is, im.fortran_vec (), nnz, swap, + read_mat5_binary_data (is, im.rwdata (), nnz, swap, static_cast<enum mat5_data_type> (type), flt_fmt); @@ -1325,7 +1325,7 @@ octave_idx_type n = re.numel (); tmp_pos = is.tellg (); - read_mat5_binary_data (is, re.fortran_vec (), n, swap, + read_mat5_binary_data (is, re.rwdata (), n, swap, static_cast<enum mat5_data_type> (type), flt_fmt); @@ -1345,7 +1345,7 @@ error ("load: reading matrix data for '%s'", retval.c_str ()); n = im.numel (); - read_mat5_binary_data (is, im.fortran_vec (), n, swap, + read_mat5_binary_data (is, im.rwdata (), n, swap, static_cast<enum mat5_data_type> (type), flt_fmt); @@ -1382,7 +1382,7 @@ octave_idx_type n = re.numel (); tmp_pos = is.tellg (); - read_mat5_binary_data (is, re.fortran_vec (), n, swap, + read_mat5_binary_data (is, re.rwdata (), n, swap, static_cast<enum mat5_data_type> (type), flt_fmt); @@ -1415,7 +1415,7 @@ error ("load: reading matrix data for '%s'", retval.c_str ()); n = im.numel (); - read_mat5_binary_data (is, im.fortran_vec (), n, swap, + read_mat5_binary_data (is, im.rwdata (), n, swap, static_cast<enum mat5_data_type> (type), flt_fmt);
--- a/libinterp/corefcn/mex.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/mex.cc Wed Dec 27 16:55:14 2023 -0800 @@ -1955,7 +1955,7 @@ Array<ELT_T> val (dv); - ELT_T *ptr = val.fortran_vec (); + ELT_T *ptr = val.rwdata (); mwSize nel = get_number_of_elements (); @@ -1981,7 +1981,7 @@ ARRAY_T val (dv); - ARRAY_ELT_T *ptr = val.fortran_vec (); + ARRAY_ELT_T *ptr = val.rwdata (); mwSize nel = get_number_of_elements (); @@ -2244,7 +2244,7 @@ Array<std::complex<T>> val (dv); - std::complex<T> *ptr = val.fortran_vec (); + std::complex<T> *ptr = val.rwdata (); T *ppi = static_cast<T *> (m_pi); @@ -2834,7 +2834,7 @@ { Cell c (dv); - octave_value *p = c.fortran_vec (); + octave_value *p = c.rwdata (); mwIndex k = 0; for (mwIndex j = i; j < ntot; j += m_nfields) @@ -2931,7 +2931,7 @@ mwSize nel = get_number_of_elements (); - octave_value *p = c.fortran_vec (); + octave_value *p = c.rwdata (); for (mwIndex i = 0; i < nel; i++) p[i] = mxArray::as_octave_value (m_data[i]);
--- a/libinterp/corefcn/oct-map.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/oct-map.cc Wed Dec 27 16:55:14 2023 -0800 @@ -151,7 +151,7 @@ if (perm.numel () != n) perm.clear (1, n); - return equal_up_to_order (other, perm.fortran_vec ()); + return equal_up_to_order (other, perm.rwdata ()); } string_vector
--- a/libinterp/corefcn/oct-stream.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/oct-stream.cc Wed Dec 27 16:55:14 2023 -0800 @@ -4447,7 +4447,7 @@ else mval.resize (max_size, 1, 0.0); - data = mval.fortran_vec (); + data = mval.rwdata (); } if (! discard) @@ -4687,7 +4687,7 @@ else \ mval.resize (max_size, 1, 0.0); \ \ - data = mval.fortran_vec (); \ + data = mval.rwdata (); \ } \ \ data[data_index++] = static_cast<unsigned char> \ @@ -4789,7 +4789,7 @@ max_size = 32; } - double *data = mval.fortran_vec (); + double *data = mval.rwdata (); if (isp) { @@ -4851,7 +4851,7 @@ else mval.resize (max_size, 1, 0.0); - data = mval.fortran_vec (); + data = mval.rwdata (); } std::string fmt = elt->text; @@ -6400,7 +6400,7 @@ DST_T conv (dim_vector (nr, nc)); - dst_elt_type *conv_data = conv.fortran_vec (); + dst_elt_type *conv_data = conv.rwdata (); octave_idx_type j = 0;
--- a/libinterp/corefcn/ordqz.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/ordqz.cc Wed Dec 27 16:55:14 2023 -0800 @@ -345,18 +345,18 @@ F77_XFCN (ztgsen, ZTGSEN, (ijob, wantq, wantz, - select.fortran_vec (), nn, - F77_DBLE_CMPLX_ARG (caa.fortran_vec ()), nn, - F77_DBLE_CMPLX_ARG (cbb.fortran_vec ()), nn, - F77_DBLE_CMPLX_ARG (alpha.fortran_vec ()), - F77_DBLE_CMPLX_ARG (beta.fortran_vec ()), - F77_DBLE_CMPLX_ARG (cqq.fortran_vec ()), nn, - F77_DBLE_CMPLX_ARG (czz.fortran_vec ()), nn, + select.rwdata (), nn, + F77_DBLE_CMPLX_ARG (caa.rwdata ()), nn, + F77_DBLE_CMPLX_ARG (cbb.rwdata ()), nn, + F77_DBLE_CMPLX_ARG (alpha.rwdata ()), + F77_DBLE_CMPLX_ARG (beta.rwdata ()), + F77_DBLE_CMPLX_ARG (cqq.rwdata ()), nn, + F77_DBLE_CMPLX_ARG (czz.rwdata ()), nn, mm, pl, pr, nullptr, - F77_DBLE_CMPLX_ARG (work3.fortran_vec ()), lrwork3, - iwork.fortran_vec (), liwork, + F77_DBLE_CMPLX_ARG (work3.rwdata ()), lrwork3, + iwork.rwdata (), liwork, info)); if (info != 0) error_with_id ("Octave:ordqz:ztgsen_failed", @@ -395,8 +395,8 @@ F77_INT ihi = 2; F77_INT lwork = 4; F77_INT info = 0; - double *aa_vec = aa.fortran_vec (); - double *bb_vec = bb.fortran_vec (); + double *aa_vec = aa.rwdata (); + double *bb_vec = bb.rwdata (); F77_XFCN (dhgeqz, DHGEQZ, (F77_CONST_CHAR_ARG2 (&qz_job, 1), @@ -466,19 +466,19 @@ F77_XFCN (dtgsen, DTGSEN, (ijob, wantq, wantz, - select.fortran_vec (), nn, - aa.fortran_vec (), nn, - bb.fortran_vec (), nn, - alphar.fortran_vec (), - alphai.fortran_vec (), - beta.fortran_vec (), - qq.fortran_vec (), nn, - zz.fortran_vec (), nn, + select.rwdata (), nn, + aa.rwdata (), nn, + bb.rwdata (), nn, + alphar.rwdata (), + alphai.rwdata (), + beta.rwdata (), + qq.rwdata (), nn, + zz.rwdata (), nn, mm, pl, pr, nullptr, - rwork3.fortran_vec (), lrwork3, - iwork.fortran_vec (), liwork, + rwork3.rwdata (), lrwork3, + iwork.rwdata (), liwork, info)); if (info != 0) error("ordqz: failed to reorder eigenvalues");
--- a/libinterp/corefcn/ordschur.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/ordschur.cc Wed Dec 27 16:55:14 2023 -0800 @@ -130,10 +130,10 @@ F77_XFCN (ztrsen, ztrsen, (F77_CONST_CHAR_ARG ("N"), F77_CONST_CHAR_ARG ("V"), - sel.data (), n, F77_DBLE_CMPLX_ARG (S.fortran_vec ()), n, - F77_DBLE_CMPLX_ARG (U.fortran_vec ()), n, - F77_DBLE_CMPLX_ARG (w.fortran_vec ()), m, cond1, cond2, - F77_DBLE_CMPLX_ARG (work.fortran_vec ()), n, + sel.data (), n, F77_DBLE_CMPLX_ARG (S.rwdata ()), n, + F77_DBLE_CMPLX_ARG (U.rwdata ()), n, + F77_DBLE_CMPLX_ARG (w.rwdata ()), m, cond1, cond2, + F77_DBLE_CMPLX_ARG (work.rwdata ()), n, info)); PREPARE_OUTPUT() @@ -146,9 +146,9 @@ F77_XFCN (dtrsen, dtrsen, (F77_CONST_CHAR_ARG ("N"), F77_CONST_CHAR_ARG ("V"), - sel.data (), n, S.fortran_vec (), n, U.fortran_vec (), n, - w.fortran_vec (), wi.fortran_vec (), m, cond1, cond2, - work.fortran_vec (), n, iwork.fortran_vec (), n, info)); + sel.data (), n, S.rwdata (), n, U.rwdata (), n, + w.rwdata (), wi.rwdata (), m, cond1, cond2, + work.rwdata (), n, iwork.rwdata (), n, info)); PREPARE_OUTPUT () } @@ -161,10 +161,10 @@ F77_XFCN (ctrsen, ctrsen, (F77_CONST_CHAR_ARG ("N"), F77_CONST_CHAR_ARG ("V"), - sel.data (), n, F77_CMPLX_ARG (S.fortran_vec ()), n, - F77_CMPLX_ARG (U.fortran_vec ()), n, - F77_CMPLX_ARG (w.fortran_vec ()), m, cond1, cond2, - F77_CMPLX_ARG (work.fortran_vec ()), n, + sel.data (), n, F77_CMPLX_ARG (S.rwdata ()), n, + F77_CMPLX_ARG (U.rwdata ()), n, + F77_CMPLX_ARG (w.rwdata ()), m, cond1, cond2, + F77_CMPLX_ARG (work.rwdata ()), n, info)); PREPARE_OUTPUT () @@ -177,9 +177,9 @@ F77_XFCN (strsen, strsen, (F77_CONST_CHAR_ARG ("N"), F77_CONST_CHAR_ARG ("V"), - sel.data (), n, S.fortran_vec (), n, U.fortran_vec (), n, - w.fortran_vec (), wi.fortran_vec (), m, cond1, cond2, - work.fortran_vec (), n, iwork.fortran_vec (), n, info)); + sel.data (), n, S.rwdata (), n, U.rwdata (), n, + w.rwdata (), wi.rwdata (), m, cond1, cond2, + work.rwdata (), n, iwork.rwdata (), n, info)); PREPARE_OUTPUT () }
--- a/libinterp/corefcn/perms.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/perms.cc Wed Dec 27 16:55:14 2023 -0800 @@ -101,7 +101,7 @@ // Set up result array octave_idx_type n = static_cast<octave_idx_type> (nr); Array<T> res (dim_vector (n, m)); - T *Res = res.fortran_vec (); + T *Res = res.rwdata (); // Do the actual job octave_idx_type i = 0; @@ -165,7 +165,7 @@ // Set up result array octave_idx_type n = static_cast<octave_idx_type> (nr); Array<T> res (dim_vector (n, m)); - T *Res = res.fortran_vec (); + T *Res = res.rwdata (); // Do the actual job octave_idx_type i = 0;
--- a/libinterp/corefcn/psi.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/psi.cc Wed Dec 27 16:55:14 2023 -0800 @@ -93,7 +93,7 @@ A ## NDArray psi_z (z.dims ()); \ \ const E *zv = z.data (); \ - E *psi_zv = psi_z.fortran_vec (); \ + E *psi_zv = psi_z.rwdata (); \ const octave_idx_type n = z.numel (); \ for (octave_idx_type i = 0; i < n; i++) \ *psi_zv++ = math::psi (*zv++); \ @@ -130,7 +130,7 @@ A ## NDArray psi_z (z.dims ()); \ \ const E *zv = z.data (); \ - E *psi_zv = psi_z.fortran_vec (); \ + E *psi_zv = psi_z.rwdata (); \ const octave_idx_type n = z.numel (); \ for (octave_idx_type i = 0; i < n; i++) \ { \
--- a/libinterp/corefcn/quadcc.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/quadcc.cc Wed Dec 27 16:55:14 2023 -0800 @@ -1672,7 +1672,7 @@ { // Intervals around singularities. NDArray arr = args(4).array_value (); - sing = arr.fortran_vec (); + sing = arr.rwdata (); iivals[0] = a; std::copy_n (sing, nivals-1, iivals+1); iivals[nivals] = b;
--- a/libinterp/corefcn/qz.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/qz.cc Wed Dec 27 16:55:14 2023 -0800 @@ -219,8 +219,8 @@ // Initialize Q, Z to identity matrix if either is needed if (comp_q == 'V' || comp_z == 'V') { - double *QQptr = QQ.fortran_vec (); - double *ZZptr = ZZ.fortran_vec (); + double *QQptr = QQ.rwdata (); + double *ZZptr = ZZ.rwdata (); std::fill_n (QQptr, QQ.numel (), 0.0); std::fill_n (ZZptr, ZZ.numel (), 0.0); for (F77_INT i = 0; i < nn; i++) @@ -254,10 +254,10 @@ F77_XFCN (zggbal, ZGGBAL, (F77_CONST_CHAR_ARG2 (&bal_job, 1), - nn, F77_DBLE_CMPLX_ARG (caa.fortran_vec ()), nn, - F77_DBLE_CMPLX_ARG (cbb.fortran_vec ()), - nn, ilo, ihi, lscale.fortran_vec (), - rscale.fortran_vec (), work.fortran_vec (), info + nn, F77_DBLE_CMPLX_ARG (caa.rwdata ()), nn, + F77_DBLE_CMPLX_ARG (cbb.rwdata ()), + nn, ilo, ihi, lscale.rwdata (), + rscale.rwdata (), work.rwdata (), info F77_CHAR_ARG_LEN (1))); } else @@ -269,9 +269,9 @@ F77_XFCN (dggbal, DGGBAL, (F77_CONST_CHAR_ARG2 (&bal_job, 1), - nn, aa.fortran_vec (), nn, bb.fortran_vec (), - nn, ilo, ihi, lscale.fortran_vec (), - rscale.fortran_vec (), work.fortran_vec (), info + nn, aa.rwdata (), nn, bb.rwdata (), + nn, ilo, ihi, lscale.rwdata (), + rscale.rwdata (), work.rwdata (), info F77_CHAR_ARG_LEN (1))); } @@ -294,10 +294,10 @@ F77_XFCN (zgghrd, ZGGHRD, (F77_CONST_CHAR_ARG2 (&comp_q, 1), F77_CONST_CHAR_ARG2 (&comp_z, 1), - nn, ilo, ihi, F77_DBLE_CMPLX_ARG (caa.fortran_vec ()), - nn, F77_DBLE_CMPLX_ARG (cbb.fortran_vec ()), nn, - F77_DBLE_CMPLX_ARG (CQ.fortran_vec ()), nn, - F77_DBLE_CMPLX_ARG (CZ.fortran_vec ()), nn, info + nn, ilo, ihi, F77_DBLE_CMPLX_ARG (caa.rwdata ()), + nn, F77_DBLE_CMPLX_ARG (cbb.rwdata ()), nn, + F77_DBLE_CMPLX_ARG (CQ.rwdata ()), nn, + F77_DBLE_CMPLX_ARG (CZ.rwdata ()), nn, info F77_CHAR_ARG_LEN (1) F77_CHAR_ARG_LEN (1))); @@ -308,14 +308,14 @@ F77_CONST_CHAR_ARG2 (&comp_q, 1), F77_CONST_CHAR_ARG2 (&comp_z, 1), nn, ilo, ihi, - F77_DBLE_CMPLX_ARG (caa.fortran_vec ()), nn, - F77_DBLE_CMPLX_ARG (cbb.fortran_vec ()), nn, - F77_DBLE_CMPLX_ARG (xalpha.fortran_vec ()), - F77_DBLE_CMPLX_ARG (xbeta.fortran_vec ()), - F77_DBLE_CMPLX_ARG (CQ.fortran_vec ()), nn, - F77_DBLE_CMPLX_ARG (CZ.fortran_vec ()), nn, - F77_DBLE_CMPLX_ARG (cwork.fortran_vec ()), nn, - rwork.fortran_vec (), info + F77_DBLE_CMPLX_ARG (caa.rwdata ()), nn, + F77_DBLE_CMPLX_ARG (cbb.rwdata ()), nn, + F77_DBLE_CMPLX_ARG (xalpha.rwdata ()), + F77_DBLE_CMPLX_ARG (xbeta.rwdata ()), + F77_DBLE_CMPLX_ARG (CQ.rwdata ()), nn, + F77_DBLE_CMPLX_ARG (CZ.rwdata ()), nn, + F77_DBLE_CMPLX_ARG (cwork.rwdata ()), nn, + rwork.rwdata (), info F77_CHAR_ARG_LEN (1) F77_CHAR_ARG_LEN (1) F77_CHAR_ARG_LEN (1))); @@ -327,7 +327,7 @@ (F77_CONST_CHAR_ARG2 (&bal_job, 1), F77_CONST_CHAR_ARG2 ("L", 1), nn, ilo, ihi, lscale.data (), rscale.data (), - nn, F77_DBLE_CMPLX_ARG (CQ.fortran_vec ()), nn, info + nn, F77_DBLE_CMPLX_ARG (CQ.rwdata ()), nn, info F77_CHAR_ARG_LEN (1) F77_CHAR_ARG_LEN (1))); } @@ -339,7 +339,7 @@ (F77_CONST_CHAR_ARG2 (&bal_job, 1), F77_CONST_CHAR_ARG2 ("R", 1), nn, ilo, ihi, lscale.data (), rscale.data (), - nn, F77_DBLE_CMPLX_ARG (CZ.fortran_vec ()), nn, info + nn, F77_DBLE_CMPLX_ARG (CZ.rwdata ()), nn, info F77_CHAR_ARG_LEN (1) F77_CHAR_ARG_LEN (1))); } @@ -391,9 +391,9 @@ F77_XFCN (dgghrd, DGGHRD, (F77_CONST_CHAR_ARG2 (&comp_q, 1), F77_CONST_CHAR_ARG2 (&comp_z, 1), - nn, ilo, ihi, aa.fortran_vec (), - nn, bb.fortran_vec (), nn, QQ.fortran_vec (), nn, - ZZ.fortran_vec (), nn, info + nn, ilo, ihi, aa.rwdata (), + nn, bb.rwdata (), nn, QQ.rwdata (), nn, + ZZ.rwdata (), nn, info F77_CHAR_ARG_LEN (1) F77_CHAR_ARG_LEN (1))); @@ -405,10 +405,10 @@ (F77_CONST_CHAR_ARG2 (&qz_job, 1), F77_CONST_CHAR_ARG2 (&comp_q, 1), F77_CONST_CHAR_ARG2 (&comp_z, 1), - nn, ilo, ihi, aa.fortran_vec (), nn, bb.fortran_vec (), - nn, alphar.fortran_vec (), alphai.fortran_vec (), - betar.fortran_vec (), QQ.fortran_vec (), nn, - ZZ.fortran_vec (), nn, work.fortran_vec (), nn, info + nn, ilo, ihi, aa.rwdata (), nn, bb.rwdata (), + nn, alphar.rwdata (), alphai.rwdata (), + betar.rwdata (), QQ.rwdata (), nn, + ZZ.rwdata (), nn, work.rwdata (), nn, info F77_CHAR_ARG_LEN (1) F77_CHAR_ARG_LEN (1) F77_CHAR_ARG_LEN (1))); @@ -419,7 +419,7 @@ (F77_CONST_CHAR_ARG2 (&bal_job, 1), F77_CONST_CHAR_ARG2 ("L", 1), nn, ilo, ihi, lscale.data (), rscale.data (), - nn, QQ.fortran_vec (), nn, info + nn, QQ.rwdata (), nn, info F77_CHAR_ARG_LEN (1) F77_CHAR_ARG_LEN (1))); @@ -436,7 +436,7 @@ (F77_CONST_CHAR_ARG2 (&bal_job, 1), F77_CONST_CHAR_ARG2 ("R", 1), nn, ilo, ihi, lscale.data (), rscale.data (), - nn, ZZ.fortran_vec (), nn, info + nn, ZZ.rwdata (), nn, info F77_CHAR_ARG_LEN (1) F77_CHAR_ARG_LEN (1))); @@ -469,12 +469,12 @@ F77_XFCN (ztgevc, ZTGEVC, (F77_CONST_CHAR_ARG2 (&side, 1), F77_CONST_CHAR_ARG2 (&howmany, 1), - select, nn, F77_DBLE_CMPLX_ARG (caa.fortran_vec ()), nn, - F77_DBLE_CMPLX_ARG (cbb.fortran_vec ()), - nn, F77_DBLE_CMPLX_ARG (CVL.fortran_vec ()), nn, - F77_DBLE_CMPLX_ARG (CVR.fortran_vec ()), nn, nn, - m, F77_DBLE_CMPLX_ARG (cwork2.fortran_vec ()), - rwork2.fortran_vec (), info + select, nn, F77_DBLE_CMPLX_ARG (caa.rwdata ()), nn, + F77_DBLE_CMPLX_ARG (cbb.rwdata ()), + nn, F77_DBLE_CMPLX_ARG (CVL.rwdata ()), nn, + F77_DBLE_CMPLX_ARG (CVR.rwdata ()), nn, nn, + m, F77_DBLE_CMPLX_ARG (cwork2.rwdata ()), + rwork2.rwdata (), info F77_CHAR_ARG_LEN (1) F77_CHAR_ARG_LEN (1))); } @@ -491,9 +491,9 @@ F77_XFCN (dtgevc, DTGEVC, (F77_CONST_CHAR_ARG2 (&side, 1), F77_CONST_CHAR_ARG2 (&howmany, 1), - select, nn, aa.fortran_vec (), nn, bb.fortran_vec (), - nn, VL.fortran_vec (), nn, VR.fortran_vec (), nn, nn, - m, work.fortran_vec (), info + select, nn, aa.rwdata (), nn, bb.rwdata (), + nn, VL.rwdata (), nn, VR.rwdata (), nn, nn, + m, work.rwdata (), info F77_CHAR_ARG_LEN (1) F77_CHAR_ARG_LEN (1))); }
--- a/libinterp/corefcn/rand.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/rand.cc Wed Dec 27 16:55:14 2023 -0800 @@ -318,7 +318,7 @@ octave_idx_type len = a.numel (); FloatNDArray m (dims); - float *v = m.fortran_vec (); + float *v = m.rwdata (); for (octave_idx_type i = 0; i < len; i++) v[i] = rand::float_scalar (a(i)); @@ -342,7 +342,7 @@ octave_idx_type len = a.numel (); NDArray m (dims); - double *v = m.fortran_vec (); + double *v = m.rwdata (); for (octave_idx_type i = 0; i < len; i++) v[i] = rand::scalar (a(i)); @@ -1144,7 +1144,7 @@ // Generate random numbers. NDArray r = rand::nd_array (dim_vector (1, m)); - double *rvec = r.fortran_vec (); + double *rvec = r.rwdata (); octave_idx_type idx_len = (short_shuffle ? m : n); Array<octave_idx_type> idx; @@ -1161,7 +1161,7 @@ idx = Array<octave_idx_type> (dim_vector (1, idx_len)); } - octave_idx_type *ivec = idx.fortran_vec (); + octave_idx_type *ivec = idx.rwdata (); for (octave_idx_type i = 0; i < idx_len; i++) ivec[i] = i;
--- a/libinterp/corefcn/sqrtm.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/sqrtm.cc Wed Dec 27 16:55:14 2023 -0800 @@ -68,7 +68,7 @@ // given in Higham's paper. const octave_idx_type n = T.rows (); - element_type *Tp = T.fortran_vec (); + element_type *Tp = T.rwdata (); for (octave_idx_type j = 0; j < n; j++) { element_type *colj = Tp + n*j;
--- a/libinterp/corefcn/strfind.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/strfind.cc Wed Dec 27 16:55:14 2023 -0800 @@ -365,7 +365,7 @@ ret.clear (dim_vector (1, retsiz)); const char *src = str.data (); const char *reps = rep.data (); - char *dest = ret.fortran_vec (); + char *dest = ret.rwdata (); octave_idx_type k = 0; for (octave_idx_type i = 0; i < nidx; i++)
--- a/libinterp/corefcn/symrcm.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/symrcm.cc Wed Dec 27 16:55:14 2023 -0800 @@ -206,7 +206,7 @@ OCTAVE_LOCAL_BUFFER (CMK_Node, Q, N+1); boolNDArray btmp (dim_vector (1, N), false); - bool *visit = btmp.fortran_vec (); + bool *visit = btmp.rwdata (); octave_idx_type qh = 0; octave_idx_type qt = 0; @@ -512,7 +512,7 @@ // that have degree==0 and build a CC of the graph. boolNDArray btmp (dim_vector (1, N), false); - bool *visit = btmp.fortran_vec (); + bool *visit = btmp.rwdata (); octave_quit ();
--- a/libinterp/corefcn/tril.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/tril.cc Wed Dec 27 16:55:14 2023 -0800 @@ -57,7 +57,7 @@ octave_idx_type j2 = std::min (std::max (zero, nr + k), nc); octave_idx_type n = j1 * nr + ((j2 - j1) * (nr-(j1-k) + nr-(j2-1-k))) / 2; Array<T> r (dim_vector (n, 1)); - T *rvec = r.fortran_vec (); + T *rvec = r.rwdata (); for (octave_idx_type j = 0; j < nc; j++) { octave_idx_type ii = std::min (std::max (zero, j - k), nr); @@ -70,7 +70,7 @@ else { Array<T> r (a.dims ()); - T *rvec = r.fortran_vec (); + T *rvec = r.rwdata (); for (octave_idx_type j = 0; j < nc; j++) { octave_idx_type ii = std::min (std::max (zero, j - k), nr); @@ -100,7 +100,7 @@ octave_idx_type n = ((j2 - j1) * ((j1+1-k) + (j2-k))) / 2 + (nc - j2) * nr; Array<T> r (dim_vector (n, 1)); - T *rvec = r.fortran_vec (); + T *rvec = r.rwdata (); for (octave_idx_type j = 0; j < nc; j++) { octave_idx_type ii = std::min (std::max (zero, j + 1 - k), nr); @@ -113,7 +113,7 @@ else { Array<T> r (a.dims ()); - T *rvec = r.fortran_vec (); + T *rvec = r.rwdata (); for (octave_idx_type j = 0; j < nc; j++) { octave_idx_type ii = std::min (std::max (zero, j + 1 - k), nr);
--- a/libinterp/corefcn/typecast.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/typecast.cc Wed Dec 27 16:55:14 2023 -0800 @@ -81,7 +81,7 @@ error ("typecast: incorrect number of input values to make output value"); ArrayType retval (get_vec_dims (old_dims, n)); - T *dest = retval.fortran_vec (); + T *dest = retval.rwdata (); std::memcpy (dest, data, n * sizeof (T)); return retval; @@ -100,7 +100,7 @@ error ("typecast: incorrect number of input values to make output value"); ArrayType retval (get_vec_dims (old_dims, n)); - VT *dest = reinterpret_cast<VT *> (retval.fortran_vec ()); + VT *dest = reinterpret_cast<VT *> (retval.rwdata ()); std::memcpy (dest, data, n * sizeof (VT)); return retval; @@ -323,7 +323,7 @@ ArrayType retval (get_vec_dims (bitp.dims (), n)); const bool *bits = bitp.data (); - char *packed = reinterpret_cast<char *> (retval.fortran_vec ()); + char *packed = reinterpret_cast<char *> (retval.rwdata ()); octave_idx_type m = n * sizeof (T); @@ -471,7 +471,7 @@ boolNDArray retval (get_vec_dims (array.dims (), n)); const char *packed = reinterpret_cast<const char *> (array.data ()); - bool *bits = retval.fortran_vec (); + bool *bits = retval.rwdata (); octave_idx_type m = n / std::numeric_limits<unsigned char>::digits;
--- a/libinterp/corefcn/xdiv.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/corefcn/xdiv.cc Wed Dec 27 16:55:14 2023 -0800 @@ -713,7 +713,7 @@ typedef typename MT::element_type T; const T *aa = a.data (); const S *dd = d.data (); - T *xx = x.fortran_vec (); + T *xx = x.rwdata (); for (octave_idx_type j = 0; j < l; j++) { @@ -797,7 +797,7 @@ typedef typename MT::element_type T; const T *aa = a.data (); const S *dd = d.data (); - T *xx = x.fortran_vec (); + T *xx = x.rwdata (); for (octave_idx_type j = 0; j < n; j++) { @@ -878,7 +878,7 @@ typedef typename MT::element_type T; const T *aa = a.data (); const S *dd = d.data (); - T *xx = x.fortran_vec (); + T *xx = x.rwdata (); for (octave_idx_type i = 0; i < lk; i++) xx[i] = (dd[i] != S () ? aa[i] / dd[i] : T ()); @@ -953,7 +953,7 @@ typedef typename MT::element_type T; const T *aa = a.data (); const S *dd = d.data (); - T *xx = x.fortran_vec (); + T *xx = x.rwdata (); for (octave_idx_type i = 0; i < lk; i++) xx[i] = (dd[i] != S () ? aa[i] / dd[i] : T ());
--- a/libinterp/dldfcn/__delaunayn__.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/dldfcn/__delaunayn__.cc Wed Dec 27 16:55:14 2023 -0800 @@ -155,7 +155,7 @@ if (n > dim + 1) { p = p.transpose (); - double *pt_array = p.fortran_vec (); + double *pt_array = p.rwdata (); boolT ismalloc = false; std::string cmd = "qhull d " + options;
--- a/libinterp/dldfcn/__glpk__.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/dldfcn/__glpk__.cc Wed Dec 27 16:55:14 2023 -0800 @@ -356,7 +356,7 @@ Matrix C = args(0).xmatrix_value ("__glpk__: invalid value of C"); - double *c = C.fortran_vec (); + double *c = C.rwdata (); Array<int> rn; Array<int> cn; ColumnVector a; @@ -417,7 +417,7 @@ // for each constraint in the constraint matrix. Matrix B = args(2).xmatrix_value ("__glpk__: invalid value of B"); - double *b = B.fortran_vec (); + double *b = B.rwdata (); // 4th Input. An array of length mrowsc containing the lower // bound on each of the variables. @@ -426,7 +426,7 @@ if (LB.numel () < mrowsc) error ("__glpk__: invalid dimensions for LB"); - double *lb = LB.fortran_vec (); + double *lb = LB.rwdata (); // LB argument, default: Free Array<int> freeLB (dim_vector (mrowsc, 1)); @@ -448,7 +448,7 @@ if (UB.numel () < mrowsc) error ("__glpk__: invalid dimensions for UB"); - double *ub = UB.fortran_vec (); + double *ub = UB.rwdata (); Array<int> freeUB (dim_vector (mrowsc, 1)); for (int i = 0; i < mrowsc; i++) @@ -466,7 +466,7 @@ // in the constraint matrix. charMatrix CTYPE = args(5).xchar_matrix_value ("__glpk__: invalid value of CTYPE"); - char *ctype = CTYPE.fortran_vec (); + char *ctype = CTYPE.rwdata (); // 7th Input. A column array containing the types of the variables. charMatrix VTYPE = args(6).xchar_matrix_value ("__glpk__: invalid value of VARTYPE"); @@ -611,13 +611,13 @@ double time = 0.0; int status = -1; - int errnum = glpk (sense, mrowsc, mrowsA, c, nz, rn.fortran_vec (), - cn.fortran_vec (), a.fortran_vec (), b, ctype, - freeLB.fortran_vec (), lb, freeUB.fortran_vec (), - ub, vartype.fortran_vec (), isMIP, lpsolver, - save_pb, scale, par, xmin.fortran_vec (), fmin, - status, lambda.fortran_vec (), - redcosts.fortran_vec (), time); + int errnum = glpk (sense, mrowsc, mrowsA, c, nz, rn.rwdata (), + cn.rwdata (), a.rwdata (), b, ctype, + freeLB.rwdata (), lb, freeUB.rwdata (), + ub, vartype.rwdata (), isMIP, lpsolver, + save_pb, scale, par, xmin.rwdata (), fmin, + status, lambda.rwdata (), + redcosts.rwdata (), time); octave_scalar_map extra;
--- a/libinterp/dldfcn/__ode15__.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/dldfcn/__ode15__.cc Wed Dec 27 16:55:14 2023 -0800 @@ -495,8 +495,8 @@ jac = (*m_jacdcell) (m_dfdy, m_dfdyp, cj); octave_f77_int_type num_jac = to_f77_int (jac.numel ()); - std::copy (jac.fortran_vec (), - jac.fortran_vec () + num_jac, + std::copy (jac.rwdata (), + jac.rwdata () + num_jac, SUNDenseMatrix_Data (JJ)); }
--- a/libinterp/dldfcn/__voronoi__.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/dldfcn/__voronoi__.cc Wed Dec 27 16:55:14 2023 -0800 @@ -164,7 +164,7 @@ std::string cmd = "qhull v" + options; - int exitcode = qh_new_qhull (qh, dim, num_points, points.fortran_vec (), + int exitcode = qh_new_qhull (qh, dim, num_points, points.rwdata (), ismalloc, &cmd[0], outfile, errfile); unwind_action free_memory ([qh] () { free_qhull_memory (qh); });
--- a/libinterp/dldfcn/audioread.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/dldfcn/audioread.cc Wed Dec 27 16:55:14 2023 -0800 @@ -128,7 +128,7 @@ Matrix audio (items, info.channels); - double *paudio = audio.fortran_vec (); + double *paudio = audio.rwdata (); data += start * info.channels;
--- a/libinterp/dldfcn/convhulln.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/dldfcn/convhulln.cc Wed Dec 27 16:55:14 2023 -0800 @@ -178,7 +178,7 @@ std::string cmd = "qhull" + options; - int exitcode = qh_new_qhull (qh, dim, num_points, points.fortran_vec (), + int exitcode = qh_new_qhull (qh, dim, num_points, points.rwdata (), ismalloc, &cmd[0], outfile, errfile); unwind_action free_memory ([qh] () { free_qhull_memory (qh); });
--- a/libinterp/octave-value/ov-base-int.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/octave-value/ov-base-int.cc Wed Dec 27 16:55:14 2023 -0800 @@ -394,7 +394,7 @@ T m (dv); - if (! is.read (reinterpret_cast<char *> (m.fortran_vec ()), m.byte_size ())) + if (! is.read (reinterpret_cast<char *> (m.rwdata ()), m.byte_size ())) return false; if (swap) @@ -537,7 +537,7 @@ T m (dv); if (H5Dread (data_hid, save_type_hid, octave_H5S_ALL, octave_H5S_ALL, - octave_H5P_DEFAULT, m.fortran_vec ()) >= 0) + octave_H5P_DEFAULT, m.rwdata ()) >= 0) { retval = true; this->m_matrix = m;
--- a/libinterp/octave-value/ov-bool-mat.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/octave-value/ov-bool-mat.cc Wed Dec 27 16:55:14 2023 -0800 @@ -414,7 +414,7 @@ if (! is.read (htmp, nel)) return false; boolNDArray m(dv); - bool *mtmp = m.fortran_vec (); + bool *mtmp = m.rwdata (); for (octave_idx_type i = 0; i < nel; i++) mtmp[i] = (htmp[i] ? 1 : 0); m_matrix = m;
--- a/libinterp/octave-value/ov-ch-mat.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/octave-value/ov-ch-mat.cc Wed Dec 27 16:55:14 2023 -0800 @@ -324,7 +324,7 @@ std::size_t output_length = in_m.numel (); \ charNDArray ch_array = charNDArray (in_m.dims ()); \ const uint8_t *in = reinterpret_cast<const uint8_t *> (in_m.data ()); \ - uint8_t *buf = reinterpret_cast<uint8_t *> (ch_array.fortran_vec ()); \ + uint8_t *buf = reinterpret_cast<uint8_t *> (ch_array.rwdata ()); \ U8_FCN (in, m_matrix.numel (), nullptr, buf, &output_length); \ if (output_length != static_cast<std::size_t> (m_matrix.numel ())) \ { \
--- a/libinterp/octave-value/ov-cx-diag.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/octave-value/ov-cx-diag.cc Wed Dec 27 16:55:14 2023 -0800 @@ -231,7 +231,7 @@ } ComplexDiagMatrix m (r, c); - Complex *im = m.fortran_vec (); + Complex *im = m.rwdata (); octave_idx_type len = m.length (); read_doubles (is, reinterpret_cast<double *> (im), static_cast<save_type> (tmp), 2 * len, swap, fmt);
--- a/libinterp/octave-value/ov-cx-mat.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/octave-value/ov-cx-mat.cc Wed Dec 27 16:55:14 2023 -0800 @@ -505,7 +505,7 @@ return false; ComplexNDArray m(dv); - Complex *im = m.fortran_vec (); + Complex *im = m.rwdata (); read_doubles (is, reinterpret_cast<double *> (im), static_cast<save_type> (tmp), 2 * dv.numel (), swap, fmt); @@ -525,7 +525,7 @@ if (! is.read (reinterpret_cast<char *> (&tmp), 1)) return false; ComplexMatrix m (nr, nc); - Complex *im = m.fortran_vec (); + Complex *im = m.rwdata (); octave_idx_type len = static_cast<octave_idx_type> (nr) * nc; read_doubles (is, reinterpret_cast<double *> (im), static_cast<save_type> (tmp), 2*len, swap, fmt); @@ -703,7 +703,7 @@ } ComplexNDArray m (dv); - Complex *reim = m.fortran_vec (); + Complex *reim = m.rwdata (); if (H5Dread (data_hid, complex_type, octave_H5S_ALL, octave_H5S_ALL, octave_H5P_DEFAULT, reim) >= 0)
--- a/libinterp/octave-value/ov-flt-cx-diag.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/octave-value/ov-flt-cx-diag.cc Wed Dec 27 16:55:14 2023 -0800 @@ -200,7 +200,7 @@ } FloatComplexDiagMatrix m (r, c); - FloatComplex *re = m.fortran_vec (); + FloatComplex *re = m.rwdata (); octave_idx_type len = m.length (); read_floats (is, reinterpret_cast<float *> (re), static_cast<save_type> (tmp), 2 * len, swap, fmt);
--- a/libinterp/octave-value/ov-flt-cx-mat.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/octave-value/ov-flt-cx-mat.cc Wed Dec 27 16:55:14 2023 -0800 @@ -470,7 +470,7 @@ return false; FloatComplexNDArray m(dv); - FloatComplex *im = m.fortran_vec (); + FloatComplex *im = m.rwdata (); read_floats (is, reinterpret_cast<float *> (im), static_cast<save_type> (tmp), 2 * dv.numel (), swap, fmt); @@ -490,7 +490,7 @@ if (! is.read (reinterpret_cast<char *> (&tmp), 1)) return false; FloatComplexMatrix m (nr, nc); - FloatComplex *im = m.fortran_vec (); + FloatComplex *im = m.rwdata (); octave_idx_type len = static_cast<octave_idx_type> (nr) * nc; read_floats (is, reinterpret_cast<float *> (im), static_cast<save_type> (tmp), 2*len, swap, fmt); @@ -656,7 +656,7 @@ } FloatComplexNDArray m (dv); - FloatComplex *reim = m.fortran_vec (); + FloatComplex *reim = m.rwdata (); if (H5Dread (data_hid, complex_type, octave_H5S_ALL, octave_H5S_ALL, octave_H5P_DEFAULT, reim) >= 0)
--- a/libinterp/octave-value/ov-flt-re-diag.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/octave-value/ov-flt-re-diag.cc Wed Dec 27 16:55:14 2023 -0800 @@ -218,7 +218,7 @@ } FloatDiagMatrix m (r, c); - float *re = m.fortran_vec (); + float *re = m.rwdata (); octave_idx_type len = m.length (); read_floats (is, re, static_cast<save_type> (tmp), len, swap, fmt);
--- a/libinterp/octave-value/ov-flt-re-mat.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/octave-value/ov-flt-re-mat.cc Wed Dec 27 16:55:14 2023 -0800 @@ -545,7 +545,7 @@ return false; FloatNDArray m(dv); - float *re = m.fortran_vec (); + float *re = m.rwdata (); read_floats (is, re, static_cast<save_type> (tmp), dv.numel (), swap, fmt); @@ -565,7 +565,7 @@ if (! is.read (reinterpret_cast<char *> (&tmp), 1)) return false; FloatMatrix m (nr, nc); - float *re = m.fortran_vec (); + float *re = m.rwdata (); octave_idx_type len = static_cast<octave_idx_type> (nr) * nc; read_floats (is, re, static_cast<save_type> (tmp), len, swap, fmt); @@ -698,7 +698,7 @@ } FloatNDArray m (dv); - float *re = m.fortran_vec (); + float *re = m.rwdata (); if (H5Dread (data_hid, H5T_NATIVE_FLOAT, octave_H5S_ALL, octave_H5S_ALL, octave_H5P_DEFAULT, re) >= 0) {
--- a/libinterp/octave-value/ov-intx.h Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/octave-value/ov-intx.h Wed Dec 27 16:55:14 2023 -0800 @@ -149,7 +149,7 @@ error ("invalid conversion of %s to Matrix", type_name ().c_str ()); retval = Matrix (dv(0), dv(1)); - double *vec = retval.fortran_vec (); + double *vec = retval.rwdata (); octave_idx_type nel = m_matrix.numel (); for (octave_idx_type i = 0; i < nel; i++) vec[i] = m_matrix(i).double_value (); @@ -166,7 +166,7 @@ error ("invalid conversion of %s to FloatMatrix", type_name ().c_str ()); retval = FloatMatrix (dv(0), dv(1)); - float *vec = retval.fortran_vec (); + float *vec = retval.rwdata (); octave_idx_type nel = m_matrix.numel (); for (octave_idx_type i = 0; i < nel; i++) vec[i] = m_matrix(i).float_value (); @@ -183,7 +183,7 @@ error ("invalid conversion of %s to Matrix", type_name ().c_str ()); retval = ComplexMatrix (dv(0), dv(1)); - Complex *vec = retval.fortran_vec (); + Complex *vec = retval.rwdata (); octave_idx_type nel = m_matrix.numel (); for (octave_idx_type i = 0; i < nel; i++) vec[i] = Complex (m_matrix(i).double_value ()); @@ -200,7 +200,7 @@ error ("invalid conversion of %s to FloatMatrix", type_name ().c_str ()); retval = FloatComplexMatrix (dv(0), dv(1)); - FloatComplex *vec = retval.fortran_vec (); + FloatComplex *vec = retval.rwdata (); octave_idx_type nel = m_matrix.numel (); for (octave_idx_type i = 0; i < nel; i++) vec[i] = FloatComplex (m_matrix(i).float_value ()); @@ -212,7 +212,7 @@ array_value (bool = false) const { NDArray retval (m_matrix.dims ()); - double *vec = retval.fortran_vec (); + double *vec = retval.rwdata (); octave_idx_type nel = m_matrix.numel (); for (octave_idx_type i = 0; i < nel; i++) vec[i] = m_matrix(i).double_value (); @@ -223,7 +223,7 @@ float_array_value (bool = false) const { FloatNDArray retval (m_matrix.dims ()); - float *vec = retval.fortran_vec (); + float *vec = retval.rwdata (); octave_idx_type nel = m_matrix.numel (); for (octave_idx_type i = 0; i < nel; i++) vec[i] = m_matrix(i).float_value (); @@ -234,7 +234,7 @@ complex_array_value (bool = false) const { ComplexNDArray retval (m_matrix.dims ()); - Complex *vec = retval.fortran_vec (); + Complex *vec = retval.rwdata (); octave_idx_type nel = m_matrix.numel (); for (octave_idx_type i = 0; i < nel; i++) vec[i] = Complex (m_matrix(i).double_value ()); @@ -245,7 +245,7 @@ float_complex_array_value (bool = false) const { FloatComplexNDArray retval (m_matrix.dims ()); - FloatComplex *vec = retval.fortran_vec (); + FloatComplex *vec = retval.rwdata (); octave_idx_type nel = m_matrix.numel (); for (octave_idx_type i = 0; i < nel; i++) vec[i] = FloatComplex (m_matrix(i).float_value ()); @@ -262,7 +262,7 @@ if (warn && m_matrix.any_element_not_one_or_zero ()) warn_logical_conversion (); - bool *vec = retval.fortran_vec (); + bool *vec = retval.rwdata (); for (octave_idx_type i = 0; i < nel; i++) vec[i] = m_matrix(i).bool_value (); @@ -276,7 +276,7 @@ octave_idx_type nel = numel (); - char *vec = retval.fortran_vec (); + char *vec = retval.rwdata (); for (octave_idx_type i = 0; i < nel; i++) vec[i] = m_matrix(i).char_value ();
--- a/libinterp/octave-value/ov-java.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/octave-value/ov-java.cc Wed Dec 27 16:55:14 2023 -0800 @@ -1443,7 +1443,7 @@ const JAVA_TYPE ## Array jarr = reinterpret_cast<JAVA_TYPE ## Array> (jobj); \ const jsize len = jni_env->GetArrayLength (jarr); \ OCTAVE_ID ## NDArray d (dim_vector (len, 1)); \ - JAVA_TYPE *buffer = reinterpret_cast<JAVA_TYPE *> (d.fortran_vec ()); \ + JAVA_TYPE *buffer = reinterpret_cast<JAVA_TYPE *> (d.rwdata ()); \ jni_env->Get ## JAVA_TYPE_CAP ## ArrayRegion (jarr, 0, len, buffer); \ retval = d; \ break; \ @@ -1496,7 +1496,7 @@ (jni_env->CallObjectMethod (jobj, mID))); jni_env->GetDoubleArrayRegion (dv, 0, m.numel (), - m.fortran_vec ()); + m.rwdata ()); retval = m; break; } @@ -1512,7 +1512,7 @@ mID))); jni_env->GetByteArrayRegion (dv, 0, m.numel (), reinterpret_cast<jbyte *> - (m.fortran_vec ())); + (m.rwdata ())); retval = m; break; } @@ -1526,7 +1526,7 @@ mID))); jni_env->GetByteArrayRegion (dv, 0, m.numel (), reinterpret_cast<jbyte *> - (m.fortran_vec ())); + (m.rwdata ())); retval = m; break; } @@ -1543,7 +1543,7 @@ mID))); jni_env->GetIntArrayRegion (dv, 0, m.numel (), reinterpret_cast<jint *> - (m.fortran_vec ())); + (m.rwdata ())); retval = m; break; } @@ -1557,7 +1557,7 @@ mID))); jni_env->GetIntArrayRegion (dv, 0, m.numel (), reinterpret_cast<jint *> - (m.fortran_vec ())); + (m.rwdata ())); retval = m; break; } @@ -1612,7 +1612,7 @@ { Matrix m (1, len); jni_env->GetDoubleArrayRegion (jarr, 0, len, - m.fortran_vec ()); + m.rwdata ()); retval = m; } else @@ -1647,7 +1647,7 @@ m.resize (cols, rows); } jni_env->GetDoubleArrayRegion - (row, 0, cols, m.fortran_vec () + r * cols); + (row, 0, cols, m.rwdata () + r * cols); } retval = m.transpose (); } @@ -1825,7 +1825,7 @@ { Matrix m = val.matrix_value (); jdoubleArray dv = jni_env->NewDoubleArray (m.numel ()); - jni_env->SetDoubleArrayRegion (dv, 0, m.numel (), m.fortran_vec ()); + jni_env->SetDoubleArrayRegion (dv, 0, m.numel (), m.rwdata ()); jobj = dv; jcls = jni_env->GetObjectClass (jobj); } @@ -1849,7 +1849,7 @@ NDArray m = val.array_value (); jdoubleArray_ref dv (jni_env, jni_env->NewDoubleArray (m.numel ())); jni_env->SetDoubleArrayRegion (jdoubleArray (dv), 0, m.numel (), - m.fortran_vec ()); + m.rwdata ()); jmethodID mID = jni_env->GetMethodID (mcls, "<init>", "([D[I)V"); jobj = jni_env->NewObject (jclass (mcls), mID, jdoubleArray (dv), jintArray (iv)); @@ -1861,7 +1861,7 @@ jbyteArray_ref bv (jni_env, jni_env->NewByteArray (m.numel ())); jni_env->SetByteArrayRegion (jbyteArray (bv), 0, m.numel (), reinterpret_cast<jbyte *> - (m.fortran_vec ())); + (m.rwdata ())); jmethodID mID = jni_env->GetMethodID (mcls, "<init>", "([B[I)V"); jobj = jni_env->NewObject (jclass (mcls), mID, jbyteArray (bv), jintArray (iv)); @@ -1873,7 +1873,7 @@ jbyteArray_ref bv (jni_env, jni_env->NewByteArray (m.numel ())); jni_env->SetByteArrayRegion (jbyteArray (bv), 0, m.numel (), reinterpret_cast<jbyte *> - (m.fortran_vec ())); + (m.rwdata ())); jmethodID mID = jni_env->GetMethodID (mcls, "<init>", "([B[I)V"); jobj = jni_env->NewObject (jclass (mcls), mID, jbyteArray (bv), jintArray (iv)); @@ -1885,7 +1885,7 @@ jintArray_ref v (jni_env, jni_env->NewIntArray (m.numel ())); jni_env->SetIntArrayRegion (jintArray (v), 0, m.numel (), reinterpret_cast<jint *> - (m.fortran_vec ())); + (m.rwdata ())); jmethodID mID = jni_env->GetMethodID (mcls, "<init>", "([I[I)V"); jobj = jni_env->NewObject (jclass (mcls), mID, jintArray (v), jintArray (iv));
--- a/libinterp/octave-value/ov-perm.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/octave-value/ov-perm.cc Wed Dec 27 16:55:14 2023 -0800 @@ -397,7 +397,7 @@ MArray<octave_idx_type> m (dim_vector (sz, 1)); - if (! is.read (reinterpret_cast<char *> (m.fortran_vec ()), m.byte_size ())) + if (! is.read (reinterpret_cast<char *> (m.rwdata ()), m.byte_size ())) return false; if (swap)
--- a/libinterp/octave-value/ov-re-diag.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/octave-value/ov-re-diag.cc Wed Dec 27 16:55:14 2023 -0800 @@ -296,7 +296,7 @@ } DiagMatrix m (r, c); - double *re = m.fortran_vec (); + double *re = m.rwdata (); octave_idx_type len = m.length (); read_doubles (is, re, static_cast<save_type> (tmp), len, swap, fmt);
--- a/libinterp/octave-value/ov-re-mat.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/octave-value/ov-re-mat.cc Wed Dec 27 16:55:14 2023 -0800 @@ -659,7 +659,7 @@ return false; NDArray m(dv); - double *re = m.fortran_vec (); + double *re = m.rwdata (); read_doubles (is, re, static_cast<save_type> (tmp), dv.numel (), swap, fmt); @@ -679,7 +679,7 @@ if (! is.read (reinterpret_cast<char *> (&tmp), 1)) return false; Matrix m (nr, nc); - double *re = m.fortran_vec (); + double *re = m.rwdata (); octave_idx_type len = static_cast<octave_idx_type> (nr) * nc; read_doubles (is, re, static_cast<save_type> (tmp), len, swap, fmt); @@ -825,7 +825,7 @@ } NDArray m (dv); - double *re = m.fortran_vec (); + double *re = m.rwdata (); if (H5Dread (data_hid, H5T_NATIVE_DOUBLE, octave_H5S_ALL, octave_H5S_ALL, octave_H5P_DEFAULT, re) >= 0) {
--- a/libinterp/octave-value/ov-str-mat.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/libinterp/octave-value/ov-str-mat.cc Wed Dec 27 16:55:14 2023 -0800 @@ -391,7 +391,7 @@ m_matrix = tmp; else { - char *ftmp = tmp.fortran_vec (); + char *ftmp = tmp.rwdata (); octave::skip_preceeding_newline (is); @@ -423,7 +423,7 @@ // buffer so that we can properly handle // embedded NUL characters. charMatrix tmp (1, len); - char *ptmp = tmp.fortran_vec (); + char *ptmp = tmp.rwdata (); if (len > 0 && ! is.read (ptmp, len)) error ("load: failed to load string constant"); @@ -451,7 +451,7 @@ // Use this instead of a C-style character buffer so // that we can properly handle embedded NUL characters. charMatrix tmp (1, len); - char *ptmp = tmp.fortran_vec (); + char *ptmp = tmp.rwdata (); if (len > 0 && ! is.read (ptmp, len)) error ("load: failed to load string constant"); @@ -529,7 +529,7 @@ } charNDArray m(dv); - char *tmp = m.fortran_vec (); + char *tmp = m.rwdata (); is.read (tmp, dv.numel ()); if (! is) @@ -549,7 +549,7 @@ if (swap) swap_bytes<4> (&len); charMatrix btmp (1, len); - char *pbtmp = btmp.fortran_vec (); + char *pbtmp = btmp.rwdata (); if (! is.read (pbtmp, len)) return false; if (len > max_len) @@ -680,7 +680,7 @@ } charNDArray m (dv); - char *str = m.fortran_vec (); + char *str = m.rwdata (); if (H5Dread (data_hid, H5T_NATIVE_CHAR, octave_H5S_ALL, octave_H5S_ALL, octave_H5P_DEFAULT, str) >= 0) {
--- a/liboctave/array/Array-base.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/array/Array-base.cc Wed Dec 27 16:55:14 2023 -0800 @@ -508,7 +508,7 @@ if (numel () > 0) { rec_permute_helper rh (dv, perm_vec); - rh.permute (data (), retval.fortran_vec ()); + rh.permute (data (), retval.rwdata ()); } return retval; @@ -765,7 +765,7 @@ retval = Array<T, Alloc> (result_dims); if (idx_len != 0) - i.index (data (), n, retval.fortran_vec ()); + i.index (data (), n, retval.rwdata ()); } } @@ -811,7 +811,7 @@ // Don't use resize to avoid useless initialization for POD types. retval = Array<T, Alloc> (dim_vector (il, jl)); - ii.index (data (), n, retval.fortran_vec ()); + ii.index (data (), n, retval.rwdata ()); } } else @@ -820,7 +820,7 @@ retval = Array<T, Alloc> (dim_vector (il, jl)); const T *src = data (); - T *dest = retval.fortran_vec (); + T *dest = retval.rwdata (); for (octave_idx_type k = 0; k < jl; k++) dest += i.index (src + r * j.xelem (k), r, dest); @@ -884,7 +884,7 @@ retval = Array<T, Alloc> (rdv); // Do it. - rh.index (data (), retval.fortran_vec ()); + rh.index (data (), retval.rwdata ()); } } } @@ -954,7 +954,7 @@ static const octave_idx_type MAX_STACK_CHUNK = 1024; octave_idx_type nn = n + std::min (nx, MAX_STACK_CHUNK); Array<T, Alloc> tmp (Array<T, Alloc> (dim_vector (nn, 1)), dv, 0, n); - T *dest = tmp.fortran_vec (); + T *dest = tmp.rwdata (); std::copy_n (data (), nx, dest); dest[nx] = rfv; @@ -965,7 +965,7 @@ else if (n != nx) { Array<T, Alloc> tmp = Array<T, Alloc> (dv); - T *dest = tmp.fortran_vec (); + T *dest = tmp.rwdata (); octave_idx_type n0 = std::min (n, nx); octave_idx_type n1 = n - n0; @@ -988,7 +988,7 @@ if (r != rx || c != cx) { Array<T, Alloc> tmp = Array<T, Alloc> (dim_vector (r, c)); - T *dest = tmp.fortran_vec (); + T *dest = tmp.rwdata (); octave_idx_type r0 = std::min (r, rx); octave_idx_type r1 = r - r0; @@ -1035,7 +1035,7 @@ rec_resize_helper rh (dv, m_dimensions.redim (dvl)); // Do it. - rh.resize_fill (data (), tmp.fortran_vec (), rfv); + rh.resize_fill (data (), tmp.rwdata (), rfv); *this = tmp; } } @@ -1163,9 +1163,9 @@ else { if (rhl == 1) - i.fill (rhs(0), n, fortran_vec ()); + i.fill (rhs(0), n, rwdata ()); else - i.assign (rhs.data (), n, fortran_vec ()); + i.assign (rhs.data (), n, rwdata ()); } } @@ -1243,7 +1243,7 @@ octave::idx_vector ii (i); const T *src = rhs.data (); - T *dest = fortran_vec (); + T *dest = rwdata (); // Try reduction first. if (ii.maybe_reduce (r, j, c)) @@ -1367,9 +1367,9 @@ // Do it. if (isfill) - rh.fill (rhs(0), fortran_vec ()); + rh.fill (rhs(0), rwdata ()); else - rh.assign (rhs.data (), fortran_vec ()); + rh.assign (rhs.data (), rwdata ()); } } else @@ -1429,7 +1429,7 @@ octave_idx_type m = n + l - u; Array<T, Alloc> tmp (dim_vector (col_vec ? m : 1, ! col_vec ? m : 1)); const T *src = data (); - T *dest = tmp.fortran_vec (); + T *dest = tmp.rwdata (); std::copy_n (src, l, dest); std::copy (src + u, src + n, dest + l); *this = tmp; @@ -1482,7 +1482,7 @@ // Special case deleting a contiguous range. Array<T, Alloc> tmp = Array<T, Alloc> (rdv); const T *src = data (); - T *dest = tmp.fortran_vec (); + T *dest = tmp.rwdata (); l *= dl; u *= dl; n *= dl; for (octave_idx_type k = 0; k < du; k++) { @@ -1633,7 +1633,7 @@ // Reuse the implementation used for permuting. - rec_permute_helper::blk_trans (data (), result.fortran_vec (), nr, nc); + rec_permute_helper::blk_trans (data (), result.rwdata (), nr, nc); return result; } @@ -1761,7 +1761,7 @@ template <typename T, typename Alloc> T * -Array<T, Alloc>::fortran_vec () +Array<T, Alloc>::rwdata () { make_unique (); @@ -1800,7 +1800,7 @@ for (int i = 0; i < dim; i++) stride *= dv(i); - T *v = m.fortran_vec (); + T *v = m.rwdata (); const T *ov = data (); octave_sort<T> lsort; @@ -1913,13 +1913,13 @@ for (int i = 0; i < dim; i++) stride *= dv(i); - T *v = m.fortran_vec (); + T *v = m.rwdata (); const T *ov = data (); octave_sort<T> lsort; sidx = Array<octave_idx_type> (dv); - octave_idx_type *vi = sidx.fortran_vec (); + octave_idx_type *vi = sidx.rwdata (); if (mode != UNSORTED) lsort.set_compare (mode); @@ -2087,7 +2087,7 @@ idx = Array<octave_idx_type> (dim_vector (r, 1)); - lsort.sort_rows (data (), idx.fortran_vec (), r, c); + lsort.sort_rows (data (), idx.rwdata (), r, c); return idx; } @@ -2211,9 +2211,9 @@ if (vmode != UNSORTED) lsort.lookup_sorted (data (), n, values.data (), nval, - idx.fortran_vec (), vmode != mode); + idx.rwdata (), vmode != mode); else - lsort.lookup (data (), n, values.data (), nval, idx.fortran_vec ()); + lsort.lookup (data (), n, values.data (), nval, idx.rwdata ()); return idx; } @@ -2250,7 +2250,7 @@ cnt += src[i] != zero; retval.clear (cnt, 1); - octave_idx_type *dest = retval.fortran_vec (); + octave_idx_type *dest = retval.rwdata (); for (octave_idx_type i = 0; i < nel; i++) if (src[i] != zero) *dest++ = i; } @@ -2275,7 +2275,7 @@ } if (k < n) retval.resize2 (k, 1); - octave_idx_type *rdata = retval.fortran_vec (); + octave_idx_type *rdata = retval.rwdata (); std::reverse (rdata, rdata + k); } else @@ -2400,7 +2400,7 @@ for (int i = 0; i < dim; i++) stride *= dv(i); - T *v = m.fortran_vec (); + T *v = m.rwdata (); const T *ov = data (); OCTAVE_LOCAL_BUFFER (T, buf, ns);
--- a/liboctave/array/Array-util.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/array/Array-util.cc Wed Dec 27 16:55:14 2023 -0800 @@ -574,7 +574,7 @@ // Initialized inside the loop so that each call to // idx_vector::loop operates from the beginning of IDX_VEC. - octave_idx_type *idx_vec = idx.fortran_vec (); + octave_idx_type *idx_vec = idx.rwdata (); if (i < len - 1) {
--- a/liboctave/array/Array.h Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/array/Array.h Wed Dec 27 16:55:14 2023 -0800 @@ -155,8 +155,8 @@ std::copy_n (d, len, m_data); } - // Use new instead of setting data to 0 so that fortran_vec and - // data always return valid addresses, even for zero-size arrays. + // Use new instead of setting data to 0 so that rwdata() and data() + // always return valid addresses, even for zero-size arrays. ArrayRep () : Alloc (), m_data (allocate (0)), m_len (0), m_count (1) { } @@ -658,10 +658,17 @@ OCTARRAY_API Array<T, Alloc> transpose () const; OCTARRAY_API Array<T, Alloc> hermitian (T (*fcn) (const T&) = nullptr) const; + // Use for direct read-only access to Array data. OCTARRAY_OVERRIDABLE_FUNC_API const T * data () const { return m_slice_data; } - OCTARRAY_API T * fortran_vec (); + // Use for direct read-write access to Array data. + OCTARRAY_API T * rwdata (); + + // Alias for direct read-write access to Array data. + // FIXME: It is recommended to use rwdata() in future code for clarity. + inline OCTARRAY_API T * fortran_vec () + { return rwdata (); } OCTARRAY_OVERRIDABLE_FUNC_API bool is_shared () const { return m_rep->m_count > 1; } @@ -861,7 +868,7 @@ const T *m = data (); Array<U, A> result (dims ()); - U *p = result.fortran_vec (); + U *p = result.rwdata (); octave_idx_type i; for (i = 0; i < len - 3; i += 4)
--- a/liboctave/array/CColVector.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/array/CColVector.cc Wed Dec 27 16:55:14 2023 -0800 @@ -262,7 +262,7 @@ if (len == 0) return *this; - Complex *d = fortran_vec (); // Ensures only one reference to my privates! + Complex *d = rwdata (); // Ensures only one reference to my privates! mx_inline_add2 (len, d, a.data ()); return *this; @@ -281,7 +281,7 @@ if (len == 0) return *this; - Complex *d = fortran_vec (); // Ensures only one reference to my privates! + Complex *d = rwdata (); // Ensures only one reference to my privates! mx_inline_sub2 (len, d, a.data ()); return *this; @@ -317,7 +317,7 @@ retval.fill (0.0); else { - Complex *y = retval.fortran_vec (); + Complex *y = retval.rwdata (); F77_XFCN (zgemv, ZGEMV, (F77_CONST_CHAR_ARG2 ("N", 1), nr, nc, 1.0,
--- a/liboctave/array/CDiagMatrix.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/array/CDiagMatrix.cc Wed Dec 27 16:55:14 2023 -0800 @@ -345,7 +345,7 @@ else if (z_count > 0) { info = -1; - element_type *data = retval.fortran_vec (); + element_type *data = retval.rwdata (); std::fill (data, data + len, octave::numeric_limits<double>::Inf ()); } @@ -396,7 +396,7 @@ if (r == 0 || c == 0) return *this; - Complex *d = fortran_vec (); // Ensures only one reference to my privates! + Complex *d = rwdata (); // Ensures only one reference to my privates! mx_inline_add2 (length (), d, a.data ()); return *this;
--- a/liboctave/array/CMatrix.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/array/CMatrix.cc Wed Dec 27 16:55:14 2023 -0800 @@ -789,7 +789,7 @@ char uplo = (typ == MatrixType::Lower ? 'L' : 'U'); char udiag = 'N'; retval = *this; - Complex *tmp_data = retval.fortran_vec (); + Complex *tmp_data = retval.rwdata (); F77_INT tmp_info = 0; @@ -845,10 +845,10 @@ (*current_liboctave_error_handler) ("inverse requires square matrix"); Array<F77_INT> ipvt (dim_vector (nr, 1)); - F77_INT *pipvt = ipvt.fortran_vec (); + F77_INT *pipvt = ipvt.rwdata (); retval = *this; - Complex *tmp_data = retval.fortran_vec (); + Complex *tmp_data = retval.rwdata (); Array<Complex> z (dim_vector (1, 1)); F77_INT lwork = -1; @@ -858,13 +858,13 @@ F77_INT tmp_info = 0; F77_XFCN (zgetri, ZGETRI, (nc, F77_DBLE_CMPLX_ARG (tmp_data), nr, pipvt, - F77_DBLE_CMPLX_ARG (z.fortran_vec ()), lwork, + F77_DBLE_CMPLX_ARG (z.rwdata ()), lwork, tmp_info)); lwork = static_cast<F77_INT> (std::real (z(0))); lwork = (lwork < 2 * nc ? 2 * nc : lwork); z.resize (dim_vector (lwork, 1)); - Complex *pz = z.fortran_vec (); + Complex *pz = z.rwdata (); info = 0; tmp_info = 0; @@ -899,7 +899,7 @@ // Now calculate the condition number for non-singular matrix. char job = '1'; Array<double> rz (dim_vector (2 * nc, 1)); - double *prz = rz.fortran_vec (); + double *prz = rz.rwdata (); F77_XFCN (zgecon, ZGECON, (F77_CONST_CHAR_ARG2 (&job, 1), nc, F77_DBLE_CMPLX_ARG (tmp_data), nr, anorm, rcon, F77_DBLE_CMPLX_ARG (pz), prz, @@ -1063,7 +1063,7 @@ } const Complex *in (data ()); - Complex *out (retval.fortran_vec ()); + Complex *out (retval.rwdata ()); octave::fftw::fft (in, out, npts, nsamples); @@ -1092,7 +1092,7 @@ } const Complex *in (data ()); - Complex *out (retval.fortran_vec ()); + Complex *out (retval.rwdata ()); octave::fftw::ifft (in, out, npts, nsamples); @@ -1106,7 +1106,7 @@ ComplexMatrix retval (rows (), cols ()); const Complex *in (data ()); - Complex *out (retval.fortran_vec ()); + Complex *out (retval.rwdata ()); octave::fftw::fftNd (in, out, 2, dv); @@ -1120,7 +1120,7 @@ ComplexMatrix retval (rows (), cols ()); const Complex *in (data ()); - Complex *out (retval.fortran_vec ()); + Complex *out (retval.rwdata ()); octave::fftw::ifftNd (in, out, 2, dv); @@ -1225,7 +1225,7 @@ else if (typ == MatrixType::Hermitian) { ComplexMatrix atmp = *this; - Complex *tmp_data = atmp.fortran_vec (); + Complex *tmp_data = atmp.rwdata (); double anorm; if (calc_cond) @@ -1251,9 +1251,9 @@ if (calc_cond) { Array<Complex> z (dim_vector (2 * nc, 1)); - Complex *pz = z.fortran_vec (); + Complex *pz = z.rwdata (); Array<double> rz (dim_vector (nc, 1)); - double *prz = rz.fortran_vec (); + double *prz = rz.rwdata (); F77_XFCN (zpocon, ZPOCON, (F77_CONST_CHAR_ARG2 (&job, 1), nr, F77_DBLE_CMPLX_ARG (tmp_data), nr, anorm, @@ -1278,10 +1278,10 @@ if (typ == MatrixType::Full) { Array<F77_INT> ipvt (dim_vector (nr, 1)); - F77_INT *pipvt = ipvt.fortran_vec (); + F77_INT *pipvt = ipvt.rwdata (); ComplexMatrix atmp = *this; - Complex *tmp_data = atmp.fortran_vec (); + Complex *tmp_data = atmp.rwdata (); info = 0; @@ -1315,9 +1315,9 @@ // Now calc the condition number for non-singular matrix. char job = '1'; Array<Complex> z (dim_vector (2 * nc, 1)); - Complex *pz = z.fortran_vec (); + Complex *pz = z.rwdata (); Array<double> rz (dim_vector (2 * nc, 1)); - double *prz = rz.fortran_vec (); + double *prz = rz.rwdata (); F77_XFCN (zgecon, ZGECON, (F77_CONST_CHAR_ARG2 (&job, 1), nc, F77_DBLE_CMPLX_ARG (tmp_data), nr, anorm, @@ -1382,9 +1382,9 @@ char dia = 'N'; Array<Complex> z (dim_vector (2 * nc, 1)); - Complex *pz = z.fortran_vec (); + Complex *pz = z.rwdata (); Array<double> rz (dim_vector (nc, 1)); - double *prz = rz.fortran_vec (); + double *prz = rz.rwdata (); F77_XFCN (ztrcon, ZTRCON, (F77_CONST_CHAR_ARG2 (&norm, 1), F77_CONST_CHAR_ARG2 (&uplo, 1), @@ -1410,9 +1410,9 @@ char dia = 'N'; Array<Complex> z (dim_vector (2 * nc, 1)); - Complex *pz = z.fortran_vec (); + Complex *pz = z.rwdata (); Array<double> rz (dim_vector (nc, 1)); - double *prz = rz.fortran_vec (); + double *prz = rz.rwdata (); F77_XFCN (ztrcon, ZTRCON, (F77_CONST_CHAR_ARG2 (&norm, 1), F77_CONST_CHAR_ARG2 (&uplo, 1), @@ -1439,7 +1439,7 @@ char job = 'L'; ComplexMatrix atmp = *this; - Complex *tmp_data = atmp.fortran_vec (); + Complex *tmp_data = atmp.rwdata (); anorm = norm1 (atmp); @@ -1457,9 +1457,9 @@ else { Array<Complex> z (dim_vector (2 * nc, 1)); - Complex *pz = z.fortran_vec (); + Complex *pz = z.rwdata (); Array<double> rz (dim_vector (nc, 1)); - double *prz = rz.fortran_vec (); + double *prz = rz.rwdata (); F77_XFCN (zpocon, ZPOCON, (F77_CONST_CHAR_ARG2 (&job, 1), nr, F77_DBLE_CMPLX_ARG (tmp_data), nr, anorm, @@ -1476,18 +1476,18 @@ F77_INT info = 0; ComplexMatrix atmp = *this; - Complex *tmp_data = atmp.fortran_vec (); + Complex *tmp_data = atmp.rwdata (); Array<F77_INT> ipvt (dim_vector (nr, 1)); - F77_INT *pipvt = ipvt.fortran_vec (); + F77_INT *pipvt = ipvt.rwdata (); if (anorm < 0.0) anorm = norm1 (atmp); Array<Complex> z (dim_vector (2 * nc, 1)); - Complex *pz = z.fortran_vec (); + Complex *pz = z.rwdata (); Array<double> rz (dim_vector (2 * nc, 1)); - double *prz = rz.fortran_vec (); + double *prz = rz.rwdata (); // Work around bug #45577, LAPACK crashes Octave if norm is NaN if (octave::math::isnan (anorm)) @@ -1559,7 +1559,7 @@ const Complex *tmp_data = data (); retval = b; - Complex *result = retval.fortran_vec (); + Complex *result = retval.rwdata (); char uplo = 'U'; char trans = get_blas_char (transt); @@ -1585,9 +1585,9 @@ dia = 'N'; Array<Complex> z (dim_vector (2 * nc, 1)); - Complex *pz = z.fortran_vec (); + Complex *pz = z.rwdata (); Array<double> rz (dim_vector (nc, 1)); - double *prz = rz.fortran_vec (); + double *prz = rz.rwdata (); F77_XFCN (ztrcon, ZTRCON, (F77_CONST_CHAR_ARG2 (&norm, 1), F77_CONST_CHAR_ARG2 (&uplo, 1), @@ -1657,7 +1657,7 @@ const Complex *tmp_data = data (); retval = b; - Complex *result = retval.fortran_vec (); + Complex *result = retval.rwdata (); char uplo = 'L'; char trans = get_blas_char (transt); @@ -1683,9 +1683,9 @@ dia = 'N'; Array<Complex> z (dim_vector (2 * nc, 1)); - Complex *pz = z.fortran_vec (); + Complex *pz = z.rwdata (); Array<double> rz (dim_vector (nc, 1)); - double *prz = rz.fortran_vec (); + double *prz = rz.rwdata (); F77_XFCN (ztrcon, ZTRCON, (F77_CONST_CHAR_ARG2 (&norm, 1), F77_CONST_CHAR_ARG2 (&uplo, 1), @@ -1751,7 +1751,7 @@ char job = 'L'; ComplexMatrix atmp = *this; - Complex *tmp_data = atmp.fortran_vec (); + Complex *tmp_data = atmp.rwdata (); // The norm of the matrix for later use when determining rcon. if (calc_cond) @@ -1779,9 +1779,9 @@ if (calc_cond) { Array<Complex> z (dim_vector (2 * nc, 1)); - Complex *pz = z.fortran_vec (); + Complex *pz = z.rwdata (); Array<double> rz (dim_vector (nc, 1)); - double *prz = rz.fortran_vec (); + double *prz = rz.rwdata (); F77_XFCN (zpocon, ZPOCON, (F77_CONST_CHAR_ARG2 (&job, 1), nr, F77_DBLE_CMPLX_ARG (tmp_data), nr, anorm, @@ -1809,7 +1809,7 @@ if (info == 0) { retval = b; - Complex *result = retval.fortran_vec (); + Complex *result = retval.rwdata (); F77_XFCN (zpotrs, ZPOTRS, (F77_CONST_CHAR_ARG2 (&job, 1), nr, b_nc, F77_DBLE_CMPLX_ARG (tmp_data), nr, @@ -1831,15 +1831,15 @@ info = 0; Array<F77_INT> ipvt (dim_vector (nr, 1)); - F77_INT *pipvt = ipvt.fortran_vec (); + F77_INT *pipvt = ipvt.rwdata (); ComplexMatrix atmp = *this; - Complex *tmp_data = atmp.fortran_vec (); + Complex *tmp_data = atmp.rwdata (); Array<Complex> z (dim_vector (2 * nc, 1)); - Complex *pz = z.fortran_vec (); + Complex *pz = z.rwdata (); Array<double> rz (dim_vector (2 * nc, 1)); - double *prz = rz.fortran_vec (); + double *prz = rz.rwdata (); // Calculate the norm of the matrix, for later use. if (calc_cond && anorm < 0.0) @@ -1902,7 +1902,7 @@ if (info == 0) { retval = b; - Complex *result = retval.fortran_vec (); + Complex *result = retval.rwdata (); char job = 'N'; F77_XFCN (zgetrs, ZGETRS, (F77_CONST_CHAR_ARG2 (&job, 1), @@ -2310,11 +2310,11 @@ retval = b; ComplexMatrix atmp = *this; - Complex *tmp_data = atmp.fortran_vec (); - - Complex *pretval = retval.fortran_vec (); + Complex *tmp_data = atmp.rwdata (); + + Complex *pretval = retval.rwdata (); Array<double> s (dim_vector (minmn, 1)); - double *ps = s.fortran_vec (); + double *ps = s.rwdata (); // Ask ZGELSD what the dimension of WORK should be. F77_INT lwork = -1; @@ -2353,20 +2353,20 @@ if (lrwork < 1) lrwork = 1; Array<double> rwork (dim_vector (lrwork, 1)); - double *prwork = rwork.fortran_vec (); + double *prwork = rwork.rwdata (); F77_INT liwork = 3 * minmn * nlvl + 11 * minmn; if (liwork < 1) liwork = 1; Array<F77_INT> iwork (dim_vector (liwork, 1)); - F77_INT *piwork = iwork.fortran_vec (); + F77_INT *piwork = iwork.rwdata (); F77_INT tmp_info = 0; F77_INT tmp_rank = 0; F77_XFCN (zgelsd, ZGELSD, (m, n, nrhs, F77_DBLE_CMPLX_ARG (tmp_data), m, F77_DBLE_CMPLX_ARG (pretval), maxmn, - ps, rcon, tmp_rank, F77_DBLE_CMPLX_ARG (work.fortran_vec ()), + ps, rcon, tmp_rank, F77_DBLE_CMPLX_ARG (work.rwdata ()), lwork, prwork, piwork, tmp_info)); info = tmp_info; @@ -2423,7 +2423,7 @@ F77_XFCN (zgelsd, ZGELSD, (m, n, nrhs, F77_DBLE_CMPLX_ARG (tmp_data), m, F77_DBLE_CMPLX_ARG (pretval), maxmn, ps, rcon, tmp_rank, - F77_DBLE_CMPLX_ARG (work.fortran_vec ()), + F77_DBLE_CMPLX_ARG (work.rwdata ()), lwork, prwork, piwork, tmp_info)); info = tmp_info; @@ -2536,11 +2536,11 @@ retval = b; ComplexMatrix atmp = *this; - Complex *tmp_data = atmp.fortran_vec (); - - Complex *pretval = retval.fortran_vec (); + Complex *tmp_data = atmp.rwdata (); + + Complex *pretval = retval.rwdata (); Array<double> s (dim_vector (minmn, 1)); - double *ps = s.fortran_vec (); + double *ps = s.rwdata (); // Ask ZGELSD what the dimension of WORK should be. F77_INT lwork = -1; @@ -2570,20 +2570,20 @@ if (lrwork < 1) lrwork = 1; Array<double> rwork (dim_vector (lrwork, 1)); - double *prwork = rwork.fortran_vec (); + double *prwork = rwork.rwdata (); F77_INT liwork = 3 * minmn * nlvl + 11 * minmn; if (liwork < 1) liwork = 1; Array<F77_INT> iwork (dim_vector (liwork, 1)); - F77_INT *piwork = iwork.fortran_vec (); + F77_INT *piwork = iwork.rwdata (); F77_INT tmp_info = 0; F77_INT tmp_rank = 0; F77_XFCN (zgelsd, ZGELSD, (m, n, nrhs, F77_DBLE_CMPLX_ARG (tmp_data), m, F77_DBLE_CMPLX_ARG (pretval), maxmn, - ps, rcon, tmp_rank, F77_DBLE_CMPLX_ARG (work.fortran_vec ()), + ps, rcon, tmp_rank, F77_DBLE_CMPLX_ARG (work.rwdata ()), lwork, prwork, piwork, tmp_info)); info = tmp_info; @@ -2597,7 +2597,7 @@ F77_XFCN (zgelsd, ZGELSD, (m, n, nrhs, F77_DBLE_CMPLX_ARG (tmp_data), m, F77_DBLE_CMPLX_ARG (pretval), maxmn, ps, rcon, tmp_rank, - F77_DBLE_CMPLX_ARG (work.fortran_vec ()), lwork, + F77_DBLE_CMPLX_ARG (work.rwdata ()), lwork, prwork, piwork, tmp_info)); info = tmp_info; @@ -2645,7 +2645,7 @@ F77_INT a_len = octave::to_f77_int (a.numel ()); retval = ComplexMatrix (len, a_len); - Complex *c = retval.fortran_vec (); + Complex *c = retval.rwdata (); F77_XFCN (zgemm, ZGEMM, (F77_CONST_CHAR_ARG2 ("N", 1), F77_CONST_CHAR_ARG2 ("N", 1), @@ -2749,7 +2749,7 @@ if (nr == 0 || nc == 0) return *this; - Complex *d = fortran_vec (); // Ensures only one reference to my privates! + Complex *d = rwdata (); // Ensures only one reference to my privates! mx_inline_add2 (numel (), d, a.data ()); return *this; @@ -2770,7 +2770,7 @@ if (nr == 0 || nc == 0) return *this; - Complex *d = fortran_vec (); // Ensures only one reference to my privates! + Complex *d = rwdata (); // Ensures only one reference to my privates! mx_inline_sub2 (numel (), d, a.data ()); return *this; @@ -3275,9 +3275,9 @@ double scale; F77_INT info; - Complex *pa = sch_a.fortran_vec (); - Complex *pb = sch_b.fortran_vec (); - Complex *px = cx.fortran_vec (); + Complex *pa = sch_a.rwdata (); + Complex *pb = sch_b.rwdata (); + Complex *px = cx.rwdata (); F77_XFCN (ztrsyl, ZTRSYL, (F77_CONST_CHAR_ARG2 ("N", 1), F77_CONST_CHAR_ARG2 ("N", 1), @@ -3374,7 +3374,7 @@ // use the result matrix before zeroing the elements. retval = ComplexMatrix (a_nr, b_nc, 0.0); - Complex *c = retval.fortran_vec (); + Complex *c = retval.rwdata (); const char ctra = get_blas_trans_arg (tra, cja); if (cja || cjb) @@ -3412,7 +3412,7 @@ F77_INT tdb = octave::to_f77_int (b.cols ()); retval = ComplexMatrix (a_nr, b_nc, 0.0); - Complex *c = retval.fortran_vec (); + Complex *c = retval.rwdata (); if (b_nc == 1 && a_nr == 1) {
--- a/liboctave/array/CNDArray.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/array/CNDArray.cc Wed Dec 27 16:55:14 2023 -0800 @@ -75,7 +75,7 @@ const Complex *in (data ()); ComplexNDArray retval (dv); - Complex *out (retval.fortran_vec ()); + Complex *out (retval.rwdata ()); // Need to be careful here about the distance between fft's for (octave_idx_type k = 0; k < nloop; k++) @@ -106,7 +106,7 @@ const Complex *in (data ()); ComplexNDArray retval (dv); - Complex *out (retval.fortran_vec ()); + Complex *out (retval.rwdata ()); // Need to be careful here about the distance between fft's for (octave_idx_type k = 0; k < nloop; k++) @@ -126,7 +126,7 @@ dim_vector dv2 (dv(0), dv(1)); const Complex *in = data (); ComplexNDArray retval (dv); - Complex *out = retval.fortran_vec (); + Complex *out = retval.rwdata (); octave_idx_type howmany = numel () / dv(0) / dv(1); octave_idx_type dist = dv(0) * dv(1); @@ -146,7 +146,7 @@ dim_vector dv2 (dv(0), dv(1)); const Complex *in = data (); ComplexNDArray retval (dv); - Complex *out = retval.fortran_vec (); + Complex *out = retval.rwdata (); octave_idx_type howmany = numel () / dv(0) / dv(1); octave_idx_type dist = dv(0) * dv(1); @@ -164,7 +164,7 @@ const Complex *in (data ()); ComplexNDArray retval (dv); - Complex *out (retval.fortran_vec ()); + Complex *out (retval.rwdata ()); octave::fftw::fftNd (in, out, rank, dv); @@ -179,7 +179,7 @@ const Complex *in (data ()); ComplexNDArray retval (dv); - Complex *out (retval.fortran_vec ()); + Complex *out (retval.rwdata ()); octave::fftw::ifftNd (in, out, rank, dv);
--- a/liboctave/array/CRowVector.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/array/CRowVector.cc Wed Dec 27 16:55:14 2023 -0800 @@ -253,7 +253,7 @@ if (len == 0) return *this; - Complex *d = fortran_vec (); // Ensures only one reference to my privates! + Complex *d = rwdata (); // Ensures only one reference to my privates! mx_inline_add2 (len, d, a.data ()); return *this; @@ -272,7 +272,7 @@ if (len == 0) return *this; - Complex *d = fortran_vec (); // Ensures only one reference to my privates! + Complex *d = rwdata (); // Ensures only one reference to my privates! mx_inline_sub2 (len, d, a.data ()); return *this; @@ -302,7 +302,7 @@ F77_INT ld = a_nr; retval.resize (a_nc); - Complex *y = retval.fortran_vec (); + Complex *y = retval.rwdata (); F77_XFCN (zgemv, ZGEMV, (F77_CONST_CHAR_ARG2 ("T", 1), a_nr, a_nc, 1.0, F77_CONST_DBLE_CMPLX_ARG (a.data ()),
--- a/liboctave/array/CSparse.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/array/CSparse.cc Wed Dec 27 16:55:14 2023 -0800 @@ -1103,7 +1103,7 @@ // Setup the control parameters Matrix Control (UMFPACK_CONTROL, 1); - double *control = Control.fortran_vec (); + double *control = Control.rwdata (); UMFPACK_ZNAME (defaults) (control); double tmp = octave::sparse_params::get_key ("spumoni"); @@ -1139,7 +1139,7 @@ void *Symbolic; Matrix Info (1, UMFPACK_INFO); - double *info = Info.fortran_vec (); + double *info = Info.rwdata (); int status = UMFPACK_ZNAME (qsymbolic) (nr, nc, octave::to_suitesparse_intptr (Ap), octave::to_suitesparse_intptr (Ai), @@ -3709,7 +3709,7 @@ F77_INT b_nc = octave::to_f77_int (b.cols ()); retval = ComplexMatrix (b); - Complex *result = retval.fortran_vec (); + Complex *result = retval.rwdata (); F77_INT tmp_nr = octave::to_f77_int (nr); @@ -3775,7 +3775,7 @@ F77_INT b_nc = octave::to_f77_int (b.cols ()); retval = ComplexMatrix (b); - Complex *result = retval.fortran_vec (); + Complex *result = retval.rwdata (); F77_INT tmp_nr = octave::to_f77_int (nr); @@ -3847,7 +3847,7 @@ OCTAVE_LOCAL_BUFFER (Complex, D, nr); OCTAVE_LOCAL_BUFFER (Complex, DL, nr - 1); Array<F77_INT> ipvt (dim_vector (nr, 1)); - F77_INT *pipvt = ipvt.fortran_vec (); + F77_INT *pipvt = ipvt.rwdata (); if (mattype.is_dense ()) { @@ -4042,7 +4042,7 @@ rcond = 1.; retval = ComplexMatrix (b); - Complex *result = retval.fortran_vec (); + Complex *result = retval.rwdata (); F77_INT tmp_nr = octave::to_f77_int (nr); @@ -4108,7 +4108,7 @@ rcond = 1.; retval = ComplexMatrix (b); - Complex *result = retval.fortran_vec (); + Complex *result = retval.rwdata (); F77_INT tmp_nr = octave::to_f77_int (nr); @@ -4178,7 +4178,7 @@ OCTAVE_LOCAL_BUFFER (Complex, D, nr); OCTAVE_LOCAL_BUFFER (Complex, DL, nr - 1); Array<F77_INT> ipvt (dim_vector (nr, 1)); - F77_INT *pipvt = ipvt.fortran_vec (); + F77_INT *pipvt = ipvt.rwdata (); if (mattype.is_dense ()) { @@ -4346,7 +4346,7 @@ F77_INT n_lower = octave::to_f77_int (mattype.nlower ()); F77_INT ldm = n_lower + 1; ComplexMatrix m_band (ldm, nc); - Complex *tmp_data = m_band.fortran_vec (); + Complex *tmp_data = m_band.rwdata (); if (! mattype.is_dense ()) { @@ -4395,9 +4395,9 @@ if (calc_cond) { Array<Complex> z (dim_vector (2 * nr, 1)); - Complex *pz = z.fortran_vec (); + Complex *pz = z.rwdata (); Array<double> iz (dim_vector (nr, 1)); - double *piz = iz.fortran_vec (); + double *piz = iz.rwdata (); F77_XFCN (zpbcon, ZPBCON, (F77_CONST_CHAR_ARG2 (&job, 1), @@ -4431,7 +4431,7 @@ if (err == 0) { retval = ComplexMatrix (b); - Complex *result = retval.fortran_vec (); + Complex *result = retval.rwdata (); F77_INT b_nr = octave::to_f77_int (b.rows ()); F77_INT b_nc = octave::to_f77_int (b.cols ()); @@ -4463,7 +4463,7 @@ F77_INT ldm = n_upper + 2 * n_lower + 1; ComplexMatrix m_band (ldm, nc); - Complex *tmp_data = m_band.fortran_vec (); + Complex *tmp_data = m_band.rwdata (); if (! mattype.is_dense ()) { @@ -4493,7 +4493,7 @@ } Array<F77_INT> ipvt (dim_vector (nr, 1)); - F77_INT *pipvt = ipvt.fortran_vec (); + F77_INT *pipvt = ipvt.rwdata (); F77_INT tmp_nr = octave::to_f77_int (nr); @@ -4526,9 +4526,9 @@ { char job = '1'; Array<Complex> z (dim_vector (2 * nr, 1)); - Complex *pz = z.fortran_vec (); + Complex *pz = z.rwdata (); Array<double> iz (dim_vector (nr, 1)); - double *piz = iz.fortran_vec (); + double *piz = iz.rwdata (); F77_INT tmp_nc = octave::to_f77_int (nc); @@ -4564,7 +4564,7 @@ if (err == 0) { retval = ComplexMatrix (b); - Complex *result = retval.fortran_vec (); + Complex *result = retval.rwdata (); F77_INT b_nr = octave::to_f77_int (b.rows ()); F77_INT b_nc = octave::to_f77_int (b.cols ()); @@ -4617,7 +4617,7 @@ F77_INT ldm = n_lower + 1; ComplexMatrix m_band (ldm, nc); - Complex *tmp_data = m_band.fortran_vec (); + Complex *tmp_data = m_band.rwdata (); if (! mattype.is_dense ()) { @@ -4664,9 +4664,9 @@ if (calc_cond) { Array<Complex> z (dim_vector (2 * nr, 1)); - Complex *pz = z.fortran_vec (); + Complex *pz = z.rwdata (); Array<double> iz (dim_vector (nr, 1)); - double *piz = iz.fortran_vec (); + double *piz = iz.rwdata (); F77_XFCN (zpbcon, ZPBCON, (F77_CONST_CHAR_ARG2 (&job, 1), @@ -4767,7 +4767,7 @@ F77_INT ldm = n_upper + 2 * n_lower + 1; ComplexMatrix m_band (ldm, nc); - Complex *tmp_data = m_band.fortran_vec (); + Complex *tmp_data = m_band.rwdata (); if (! mattype.is_dense ()) { @@ -4797,7 +4797,7 @@ } Array<F77_INT> ipvt (dim_vector (nr, 1)); - F77_INT *pipvt = ipvt.fortran_vec (); + F77_INT *pipvt = ipvt.rwdata (); F77_INT tmp_nr = octave::to_f77_int (nr); @@ -4828,9 +4828,9 @@ { char job = '1'; Array<Complex> z (dim_vector (2 * nr, 1)); - Complex *pz = z.fortran_vec (); + Complex *pz = z.rwdata (); Array<double> iz (dim_vector (nr, 1)); - double *piz = iz.fortran_vec (); + double *piz = iz.rwdata (); F77_INT tmp_nc = octave::to_f77_int (nc); @@ -4956,7 +4956,7 @@ F77_INT ldm = n_lower + 1; ComplexMatrix m_band (ldm, nc); - Complex *tmp_data = m_band.fortran_vec (); + Complex *tmp_data = m_band.rwdata (); if (! mattype.is_dense ()) { @@ -5005,9 +5005,9 @@ if (calc_cond) { Array<Complex> z (dim_vector (2 * nr, 1)); - Complex *pz = z.fortran_vec (); + Complex *pz = z.rwdata (); Array<double> iz (dim_vector (nr, 1)); - double *piz = iz.fortran_vec (); + double *piz = iz.rwdata (); F77_XFCN (zpbcon, ZPBCON, (F77_CONST_CHAR_ARG2 (&job, 1), @@ -5043,7 +5043,7 @@ F77_INT b_nr = octave::to_f77_int (b.rows ()); F77_INT b_nc = octave::to_f77_int (b.cols ()); retval = ComplexMatrix (b); - Complex *result = retval.fortran_vec (); + Complex *result = retval.rwdata (); F77_XFCN (zpbtrs, ZPBTRS, (F77_CONST_CHAR_ARG2 (&job, 1), @@ -5072,7 +5072,7 @@ F77_INT ldm = n_upper + 2 * n_lower + 1; ComplexMatrix m_band (ldm, nc); - Complex *tmp_data = m_band.fortran_vec (); + Complex *tmp_data = m_band.rwdata (); if (! mattype.is_dense ()) { @@ -5102,7 +5102,7 @@ } Array<F77_INT> ipvt (dim_vector (nr, 1)); - F77_INT *pipvt = ipvt.fortran_vec (); + F77_INT *pipvt = ipvt.rwdata (); F77_INT tmp_nr = octave::to_f77_int (nr); @@ -5133,9 +5133,9 @@ { char job = '1'; Array<Complex> z (dim_vector (2 * nr, 1)); - Complex *pz = z.fortran_vec (); + Complex *pz = z.rwdata (); Array<double> iz (dim_vector (nr, 1)); - double *piz = iz.fortran_vec (); + double *piz = iz.rwdata (); F77_INT tmp_nc = octave::to_f77_int (nc); @@ -5174,7 +5174,7 @@ F77_INT b_nr = octave::to_f77_int (b.rows ()); F77_INT b_nc = octave::to_f77_int (b.cols ()); retval = ComplexMatrix (b); - Complex *result = retval.fortran_vec (); + Complex *result = retval.rwdata (); F77_XFCN (zgbtrs, ZGBTRS, (F77_CONST_CHAR_ARG2 (&job, 1), @@ -5223,7 +5223,7 @@ F77_INT ldm = n_lower + 1; ComplexMatrix m_band (ldm, nc); - Complex *tmp_data = m_band.fortran_vec (); + Complex *tmp_data = m_band.rwdata (); if (! mattype.is_dense ()) { @@ -5273,9 +5273,9 @@ if (calc_cond) { Array<Complex> z (dim_vector (2 * nr, 1)); - Complex *pz = z.fortran_vec (); + Complex *pz = z.rwdata (); Array<double> iz (dim_vector (nr, 1)); - double *piz = iz.fortran_vec (); + double *piz = iz.rwdata (); F77_XFCN (zpbcon, ZPBCON, (F77_CONST_CHAR_ARG2 (&job, 1), @@ -5380,7 +5380,7 @@ F77_INT ldm = n_upper + 2 * n_lower + 1; ComplexMatrix m_band (ldm, nc); - Complex *tmp_data = m_band.fortran_vec (); + Complex *tmp_data = m_band.rwdata (); if (! mattype.is_dense ()) { @@ -5410,7 +5410,7 @@ } Array<F77_INT> ipvt (dim_vector (nr, 1)); - F77_INT *pipvt = ipvt.fortran_vec (); + F77_INT *pipvt = ipvt.rwdata (); F77_INT tmp_nr = octave::to_f77_int (nr); @@ -5441,9 +5441,9 @@ { char job = '1'; Array<Complex> z (dim_vector (2 * nr, 1)); - Complex *pz = z.fortran_vec (); + Complex *pz = z.rwdata (); Array<double> iz (dim_vector (nr, 1)); - double *piz = iz.fortran_vec (); + double *piz = iz.rwdata (); F77_INT tmp_nc = octave::to_f77_int (nc); @@ -5554,7 +5554,7 @@ // Setup the control parameters Control = Matrix (UMFPACK_CONTROL, 1); - double *control = Control.fortran_vec (); + double *control = Control.rwdata (); UMFPACK_ZNAME (defaults) (control); double tmp = octave::sparse_params::get_key ("spumoni"); @@ -5588,7 +5588,7 @@ void *Symbolic; Info = Matrix (1, UMFPACK_INFO); - double *info = Info.fortran_vec (); + double *info = Info.rwdata (); int status = UMFPACK_ZNAME (qsymbolic) (nr, nc, octave::to_suitesparse_intptr (Ap), octave::to_suitesparse_intptr (Ai), @@ -5829,8 +5829,8 @@ octave_idx_type b_nr = b.rows (); octave_idx_type b_nc = b.cols (); int status = 0; - double *control = Control.fortran_vec (); - double *info = Info.fortran_vec (); + double *control = Control.rwdata (); + double *info = Info.rwdata (); const octave_idx_type *Ap = cidx (); const octave_idx_type *Ai = ridx (); const Complex *Ax = data (); @@ -5843,7 +5843,7 @@ OCTAVE_LOCAL_BUFFER (Complex, Bz, b_nr); #endif retval.resize (b_nr, b_nc); - Complex *Xx = retval.fortran_vec (); + Complex *Xx = retval.rwdata (); for (octave_idx_type j = 0, iidx = 0; j < b_nc; j++, iidx += b_nr) { @@ -6086,8 +6086,8 @@ octave_idx_type b_nr = b.rows (); octave_idx_type b_nc = b.cols (); int status = 0; - double *control = Control.fortran_vec (); - double *info = Info.fortran_vec (); + double *control = Control.rwdata (); + double *info = Info.rwdata (); const octave_idx_type *Ap = cidx (); const octave_idx_type *Ai = ridx (); const Complex *Ax = data (); @@ -6360,15 +6360,15 @@ octave_idx_type b_nr = b.rows (); octave_idx_type b_nc = b.cols (); int status = 0; - double *control = Control.fortran_vec (); - double *info = Info.fortran_vec (); + double *control = Control.rwdata (); + double *info = Info.rwdata (); const octave_idx_type *Ap = cidx (); const octave_idx_type *Ai = ridx (); const Complex *Ax = data (); const Complex *Bx = b.data (); retval.resize (b_nr, b_nc); - Complex *Xx = retval.fortran_vec (); + Complex *Xx = retval.rwdata (); for (octave_idx_type j = 0, iidx = 0; j < b_nc; j++, iidx += b_nr) { @@ -6596,8 +6596,8 @@ octave_idx_type b_nr = b.rows (); octave_idx_type b_nc = b.cols (); int status = 0; - double *control = Control.fortran_vec (); - double *info = Info.fortran_vec (); + double *control = Control.rwdata (); + double *info = Info.rwdata (); const octave_idx_type *Ap = cidx (); const octave_idx_type *Ai = ridx (); const Complex *Ax = data ();
--- a/liboctave/array/DiagArray2.h Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/array/DiagArray2.h Wed Dec 27 16:55:14 2023 -0800 @@ -166,7 +166,8 @@ const T * data () const { return Array<T>::data (); } - T * fortran_vec () { return Array<T>::fortran_vec (); } + T * rwdata () { return Array<T>::rwdata (); } + inline T * fortran_vec () { return rwdata (); } void print_info (std::ostream& os, const std::string& prefix) const { Array<T>::print_info (os, prefix); }
--- a/liboctave/array/MArray.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/array/MArray.cc Wed Dec 27 16:55:14 2023 -0800 @@ -74,7 +74,7 @@ octave_quit (); octave_idx_type len = idx.length (n); - idx.loop (len, _idxadds_helper<T> (this->fortran_vec (), val)); + idx.loop (len, _idxadds_helper<T> (this->rwdata (), val)); } template <typename T> @@ -92,7 +92,7 @@ octave_quit (); octave_idx_type len = std::min (idx.length (n), vals.numel ()); - idx.loop (len, _idxadda_helper<T> (this->fortran_vec (), vals.data ())); + idx.loop (len, _idxadda_helper<T> (this->rwdata (), vals.data ())); } template <typename T, T op (typename ref_param<T>::type, @@ -125,7 +125,7 @@ octave_quit (); octave_idx_type len = std::min (idx.length (n), vals.numel ()); - idx.loop (len, _idxbinop_helper<T, octave::math::min> (this->fortran_vec (), + idx.loop (len, _idxbinop_helper<T, octave::math::min> (this->rwdata (), vals.data ())); } @@ -144,7 +144,7 @@ octave_quit (); octave_idx_type len = std::min (idx.length (n), vals.numel ()); - idx.loop (len, _idxbinop_helper<T, octave::math::max> (this->fortran_vec (), + idx.loop (len, _idxbinop_helper<T, octave::math::max> (this->rwdata (), vals.data ())); } @@ -180,7 +180,7 @@ if (ddv != sdv) (*current_liboctave_error_handler) ("accumdim: dimension mismatch"); - T *dst = Array<T>::fortran_vec (); + T *dst = Array<T>::rwdata (); const T *src = vals.data (); octave_idx_type len = idx.length (ns);
--- a/liboctave/array/PermMatrix.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/array/PermMatrix.cc Wed Dec 27 16:55:14 2023 -0800 @@ -169,7 +169,7 @@ const octave_idx_type *p = data (); Array<octave_idx_type> res_pvec (dim_vector (n, 1), -1); - octave_idx_type *q = res_pvec.fortran_vec (); + octave_idx_type *q = res_pvec.rwdata (); for (octave_idx_type ics = 0; ics < n; ics++) {
--- a/liboctave/array/Range.h Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/array/Range.h Wed Dec 27 16:55:14 2023 -0800 @@ -249,7 +249,7 @@ // Loop over all values in IDX, executing the lambda // expression for each index value. - T *array = retval.fortran_vec (); + T *array = retval.rwdata (); idx.loop (n, [=, &array] (octave_idx_type i) {
--- a/liboctave/array/Sparse.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/array/Sparse.cc Wed Dec 27 16:55:14 2023 -0800 @@ -1998,10 +1998,10 @@ // Disassembly our matrix... Array<octave_idx_type> new_ri (dim_vector (new_nz, 1)); Array<T> new_data (dim_vector (new_nz, 1)); - std::copy_n (tmp.ridx (), nz, new_ri.fortran_vec ()); - std::copy_n (tmp.data (), nz, new_data.fortran_vec ()); + std::copy_n (tmp.ridx (), nz, new_ri.rwdata ()); + std::copy_n (tmp.data (), nz, new_data.rwdata ()); // ... insert new data (densified) ... - idx.copy_data (new_ri.fortran_vec () + nz); + idx.copy_data (new_ri.rwdata () + nz); new_data.assign (octave::idx_vector (nz, new_nz), rhs.array_value ()); // ... reassembly. *this = Sparse<T, Alloc> (new_data, new_ri, 0, nr, nc, false);
--- a/liboctave/array/boolSparse.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/array/boolSparse.cc Wed Dec 27 16:55:14 2023 -0800 @@ -178,7 +178,7 @@ else { Array<octave_idx_type> tmp (dim_vector (nz, 1)); - std::copy_n (ridx (), nz, tmp.fortran_vec ()); + std::copy_n (ridx (), nz, tmp.rwdata ()); retval = Sparse<bool> (Array<bool> (dim_vector (1, 1), true), octave::idx_vector (tmp), octave::idx_vector (0), nr, 1, false); @@ -228,7 +228,7 @@ else { Array<octave_idx_type> tmp (dim_vector (nz, 1)); - std::copy_n (ridx (), nz, tmp.fortran_vec ()); + std::copy_n (ridx (), nz, tmp.rwdata ()); retval = Sparse<double> (Array<double> (dim_vector (1, 1), 1.0), octave::idx_vector (tmp), octave::idx_vector (0), nr, 1);
--- a/liboctave/array/dColVector.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/array/dColVector.cc Wed Dec 27 16:55:14 2023 -0800 @@ -196,7 +196,7 @@ retval.fill (0.0); else { - double *y = retval.fortran_vec (); + double *y = retval.rwdata (); F77_XFCN (dgemv, DGEMV, (F77_CONST_CHAR_ARG2 ("N", 1), nr, nc, 1.0, m.data (), nr,
--- a/liboctave/array/dDiagMatrix.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/array/dDiagMatrix.cc Wed Dec 27 16:55:14 2023 -0800 @@ -268,7 +268,7 @@ else if (z_count > 0) { info = -1; - element_type *data = retval.fortran_vec (); + element_type *data = retval.rwdata (); std::fill (data, data + len, octave::numeric_limits<double>::Inf ()); }
--- a/liboctave/array/dMatrix.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/array/dMatrix.cc Wed Dec 27 16:55:14 2023 -0800 @@ -503,7 +503,7 @@ char uplo = (typ == MatrixType::Lower ? 'L' : 'U'); char udiag = 'N'; retval = *this; - double *tmp_data = retval.fortran_vec (); + double *tmp_data = retval.rwdata (); F77_INT tmp_info = 0; @@ -559,10 +559,10 @@ (*current_liboctave_error_handler) ("inverse requires square matrix"); Array<F77_INT> ipvt (dim_vector (nr, 1)); - F77_INT *pipvt = ipvt.fortran_vec (); + F77_INT *pipvt = ipvt.rwdata (); retval = *this; - double *tmp_data = retval.fortran_vec (); + double *tmp_data = retval.rwdata (); Array<double> z (dim_vector (1, 1)); F77_INT lwork = -1; @@ -571,12 +571,12 @@ // Query the optimum work array size. F77_XFCN (dgetri, DGETRI, (nc, tmp_data, nr, pipvt, - z.fortran_vec (), lwork, tmp_info)); + z.rwdata (), lwork, tmp_info)); lwork = static_cast<F77_INT> (z(0)); lwork = (lwork < 4 * nc ? 4 * nc : lwork); z.resize (dim_vector (lwork, 1)); - double *pz = z.fortran_vec (); + double *pz = z.rwdata (); info = 0; tmp_info = 0; @@ -605,7 +605,7 @@ // Now calculate the condition number for non-singular matrix. char job = '1'; Array<F77_INT> iz (dim_vector (nc, 1)); - F77_INT *piz = iz.fortran_vec (); + F77_INT *piz = iz.rwdata (); F77_XFCN (dgecon, DGECON, (F77_CONST_CHAR_ARG2 (&job, 1), nc, tmp_data, nr, anorm, rcon, pz, piz, dgecon_info @@ -752,7 +752,7 @@ } const double *in (data ()); - Complex *out (retval.fortran_vec ()); + Complex *out (retval.rwdata ()); octave::fftw::fft (in, out, npts, nsamples); @@ -782,7 +782,7 @@ ComplexMatrix tmp (*this); const Complex *in (tmp.data ()); - Complex *out (retval.fortran_vec ()); + Complex *out (retval.rwdata ()); octave::fftw::ifft (in, out, npts, nsamples); @@ -796,7 +796,7 @@ const double *in = data (); ComplexMatrix retval (rows (), cols ()); - octave::fftw::fftNd (in, retval.fortran_vec (), 2, dv); + octave::fftw::fftNd (in, retval.rwdata (), 2, dv); return retval; } @@ -807,7 +807,7 @@ dim_vector dv (rows (), cols ()); ComplexMatrix retval (*this); - Complex *out (retval.fortran_vec ()); + Complex *out (retval.rwdata ()); octave::fftw::ifftNd (out, out, 2, dv); @@ -909,7 +909,7 @@ else if (typ == MatrixType::Hermitian) { Matrix atmp = *this; - double *tmp_data = atmp.fortran_vec (); + double *tmp_data = atmp.rwdata (); // Calculate the norm of the matrix for later use when determining rcon. double anorm; @@ -936,9 +936,9 @@ if (calc_cond) { Array<double> z (dim_vector (3 * nc, 1)); - double *pz = z.fortran_vec (); + double *pz = z.rwdata (); Array<F77_INT> iz (dim_vector (nc, 1)); - F77_INT *piz = iz.fortran_vec (); + F77_INT *piz = iz.rwdata (); F77_XFCN (dpocon, DPOCON, (F77_CONST_CHAR_ARG2 (&job, 1), nr, tmp_data, nr, anorm, @@ -963,10 +963,10 @@ if (typ == MatrixType::Full) { Array<F77_INT> ipvt (dim_vector (nr, 1)); - F77_INT *pipvt = ipvt.fortran_vec (); + F77_INT *pipvt = ipvt.rwdata (); Matrix atmp = *this; - double *tmp_data = atmp.fortran_vec (); + double *tmp_data = atmp.rwdata (); info = 0; F77_INT tmp_info = 0; @@ -994,9 +994,9 @@ // Now calc the condition number for non-singular matrix. char job = '1'; Array<double> z (dim_vector (4 * nc, 1)); - double *pz = z.fortran_vec (); + double *pz = z.rwdata (); Array<F77_INT> iz (dim_vector (nc, 1)); - F77_INT *piz = iz.fortran_vec (); + F77_INT *piz = iz.rwdata (); F77_XFCN (dgecon, DGECON, (F77_CONST_CHAR_ARG2 (&job, 1), nc, tmp_data, nr, anorm, @@ -1061,9 +1061,9 @@ char dia = 'N'; Array<double> z (dim_vector (3 * nc, 1)); - double *pz = z.fortran_vec (); + double *pz = z.rwdata (); Array<F77_INT> iz (dim_vector (nc, 1)); - F77_INT *piz = iz.fortran_vec (); + F77_INT *piz = iz.rwdata (); F77_XFCN (dtrcon, DTRCON, (F77_CONST_CHAR_ARG2 (&norm, 1), F77_CONST_CHAR_ARG2 (&uplo, 1), @@ -1089,9 +1089,9 @@ char dia = 'N'; Array<double> z (dim_vector (3 * nc, 1)); - double *pz = z.fortran_vec (); + double *pz = z.rwdata (); Array<F77_INT> iz (dim_vector (nc, 1)); - F77_INT *piz = iz.fortran_vec (); + F77_INT *piz = iz.rwdata (); F77_XFCN (dtrcon, DTRCON, (F77_CONST_CHAR_ARG2 (&norm, 1), F77_CONST_CHAR_ARG2 (&uplo, 1), @@ -1118,7 +1118,7 @@ char job = 'L'; Matrix atmp = *this; - double *tmp_data = atmp.fortran_vec (); + double *tmp_data = atmp.rwdata (); anorm = norm1 (atmp); @@ -1135,9 +1135,9 @@ else { Array<double> z (dim_vector (3 * nc, 1)); - double *pz = z.fortran_vec (); + double *pz = z.rwdata (); Array<F77_INT> iz (dim_vector (nc, 1)); - F77_INT *piz = iz.fortran_vec (); + F77_INT *piz = iz.rwdata (); F77_XFCN (dpocon, DPOCON, (F77_CONST_CHAR_ARG2 (&job, 1), nr, tmp_data, nr, anorm, @@ -1154,18 +1154,18 @@ F77_INT info = 0; Matrix atmp = *this; - double *tmp_data = atmp.fortran_vec (); + double *tmp_data = atmp.rwdata (); Array<F77_INT> ipvt (dim_vector (nr, 1)); - F77_INT *pipvt = ipvt.fortran_vec (); + F77_INT *pipvt = ipvt.rwdata (); if (anorm < 0.0) anorm = norm1 (atmp); Array<double> z (dim_vector (4 * nc, 1)); - double *pz = z.fortran_vec (); + double *pz = z.rwdata (); Array<F77_INT> iz (dim_vector (nc, 1)); - F77_INT *piz = iz.fortran_vec (); + F77_INT *piz = iz.rwdata (); F77_XFCN (dgetrf, DGETRF, (nr, nr, tmp_data, nr, pipvt, info)); @@ -1230,7 +1230,7 @@ const double *tmp_data = data (); retval = b; - double *result = retval.fortran_vec (); + double *result = retval.rwdata (); char uplo = 'U'; char trans = get_blas_char (transt); @@ -1256,9 +1256,9 @@ dia = 'N'; Array<double> z (dim_vector (3 * nc, 1)); - double *pz = z.fortran_vec (); + double *pz = z.rwdata (); Array<F77_INT> iz (dim_vector (nc, 1)); - F77_INT *piz = iz.fortran_vec (); + F77_INT *piz = iz.rwdata (); F77_XFCN (dtrcon, DTRCON, (F77_CONST_CHAR_ARG2 (&norm, 1), F77_CONST_CHAR_ARG2 (&uplo, 1), @@ -1328,7 +1328,7 @@ const double *tmp_data = data (); retval = b; - double *result = retval.fortran_vec (); + double *result = retval.rwdata (); char uplo = 'L'; char trans = get_blas_char (transt); @@ -1354,9 +1354,9 @@ dia = 'N'; Array<double> z (dim_vector (3 * nc, 1)); - double *pz = z.fortran_vec (); + double *pz = z.rwdata (); Array<F77_INT> iz (dim_vector (nc, 1)); - F77_INT *piz = iz.fortran_vec (); + F77_INT *piz = iz.rwdata (); F77_XFCN (dtrcon, DTRCON, (F77_CONST_CHAR_ARG2 (&norm, 1), F77_CONST_CHAR_ARG2 (&uplo, 1), @@ -1418,7 +1418,7 @@ char job = 'L'; Matrix atmp = *this; - double *tmp_data = atmp.fortran_vec (); + double *tmp_data = atmp.rwdata (); // The norm of the matrix for later use when determining rcon. if (calc_cond) @@ -1446,9 +1446,9 @@ if (calc_cond) { Array<double> z (dim_vector (3 * nc, 1)); - double *pz = z.fortran_vec (); + double *pz = z.rwdata (); Array<F77_INT> iz (dim_vector (nc, 1)); - F77_INT *piz = iz.fortran_vec (); + F77_INT *piz = iz.rwdata (); F77_XFCN (dpocon, DPOCON, (F77_CONST_CHAR_ARG2 (&job, 1), nr, tmp_data, nr, anorm, @@ -1476,7 +1476,7 @@ if (info == 0) { retval = b; - double *result = retval.fortran_vec (); + double *result = retval.rwdata (); F77_INT b_nr = octave::to_f77_int (b.rows ()); F77_INT b_nc = octave::to_f77_int (b.cols ()); @@ -1501,18 +1501,18 @@ info = 0; Array<F77_INT> ipvt (dim_vector (nr, 1)); - F77_INT *pipvt = ipvt.fortran_vec (); + F77_INT *pipvt = ipvt.rwdata (); Matrix atmp = *this; - double *tmp_data = atmp.fortran_vec (); + double *tmp_data = atmp.rwdata (); if (calc_cond && anorm < 0.0) anorm = norm1 (atmp); Array<double> z (dim_vector (4 * nc, 1)); - double *pz = z.fortran_vec (); + double *pz = z.rwdata (); Array<F77_INT> iz (dim_vector (nc, 1)); - F77_INT *piz = iz.fortran_vec (); + F77_INT *piz = iz.rwdata (); F77_INT tmp_info = 0; @@ -1563,7 +1563,7 @@ if (info == 0) { retval = b; - double *result = retval.fortran_vec (); + double *result = retval.rwdata (); F77_INT b_nr = octave::to_f77_int (b.rows ()); F77_INT b_nc = octave::to_f77_int (b.cols ()); @@ -1675,7 +1675,7 @@ octave_idx_type nel = m*n; Matrix retval (m, 2*n); const Complex *cmd = cm.data (); - double *rd = retval.fortran_vec (); + double *rd = retval.rwdata (); for (octave_idx_type i = 0; i < nel; i++) { rd[i] = std::real (cmd[i]); @@ -1692,7 +1692,7 @@ octave_idx_type nel = m*n; ComplexMatrix retval (m, n); const double *smd = sm.data (); - Complex *rd = retval.fortran_vec (); + Complex *rd = retval.rwdata (); for (octave_idx_type i = 0; i < nel; i++) rd[i] = Complex (smd[i], smd[nel+i]); return retval; @@ -1959,11 +1959,11 @@ retval = b; Matrix atmp = *this; - double *tmp_data = atmp.fortran_vec (); - - double *pretval = retval.fortran_vec (); + double *tmp_data = atmp.rwdata (); + + double *pretval = retval.rwdata (); Array<double> s (dim_vector (minmn, 1)); - double *ps = s.fortran_vec (); + double *ps = s.rwdata (); // Ask DGELSD what the dimension of WORK should be. F77_INT lwork = -1; @@ -1998,13 +1998,13 @@ if (liwork < 1) liwork = 1; Array<F77_INT> iwork (dim_vector (liwork, 1)); - F77_INT *piwork = iwork.fortran_vec (); + F77_INT *piwork = iwork.rwdata (); F77_INT tmp_info = 0; F77_INT tmp_rank = 0; F77_XFCN (dgelsd, DGELSD, (m, n, nrhs, tmp_data, m, pretval, maxmn, - ps, rcon, tmp_rank, work.fortran_vec (), + ps, rcon, tmp_rank, work.rwdata (), lwork, piwork, tmp_info)); info = tmp_info; @@ -2066,7 +2066,7 @@ { F77_XFCN (dgelsd, DGELSD, (m, n, nrhs, tmp_data, m, pretval, maxmn, ps, rcon, tmp_rank, - work.fortran_vec (), lwork, + work.rwdata (), lwork, piwork, tmp_info)); info = tmp_info; @@ -2181,11 +2181,11 @@ retval = b; Matrix atmp = *this; - double *tmp_data = atmp.fortran_vec (); - - double *pretval = retval.fortran_vec (); + double *tmp_data = atmp.rwdata (); + + double *pretval = retval.rwdata (); Array<double> s (dim_vector (minmn, 1)); - double *ps = s.fortran_vec (); + double *ps = s.rwdata (); // Ask DGELSD what the dimension of WORK should be. F77_INT lwork = -1; @@ -2213,13 +2213,13 @@ if (liwork < 1) liwork = 1; Array<F77_INT> iwork (dim_vector (liwork, 1)); - F77_INT *piwork = iwork.fortran_vec (); + F77_INT *piwork = iwork.rwdata (); F77_INT tmp_info = 0; F77_INT tmp_rank = 0; F77_XFCN (dgelsd, DGELSD, (m, n, nrhs, tmp_data, m, pretval, maxmn, - ps, rcon, tmp_rank, work.fortran_vec (), + ps, rcon, tmp_rank, work.rwdata (), lwork, piwork, tmp_info)); info = tmp_info; @@ -2230,7 +2230,7 @@ F77_XFCN (dgelsd, DGELSD, (m, n, nrhs, tmp_data, m, pretval, maxmn, ps, rcon, tmp_rank, - work.fortran_vec (), lwork, + work.rwdata (), lwork, piwork, tmp_info)); info = tmp_info; @@ -2338,7 +2338,7 @@ F77_INT a_len = octave::to_f77_int (a.numel ()); retval = Matrix (len, a_len); - double *c = retval.fortran_vec (); + double *c = retval.rwdata (); F77_XFCN (dgemm, DGEMM, (F77_CONST_CHAR_ARG2 ("N", 1), F77_CONST_CHAR_ARG2 ("N", 1), @@ -2730,9 +2730,9 @@ double scale; F77_INT info; - double *pa = sch_a.fortran_vec (); - double *pb = sch_b.fortran_vec (); - double *px = cx.fortran_vec (); + double *pa = sch_a.rwdata (); + double *pb = sch_b.rwdata (); + double *px = cx.rwdata (); F77_XFCN (dtrsyl, DTRSYL, (F77_CONST_CHAR_ARG2 ("N", 1), F77_CONST_CHAR_ARG2 ("N", 1), @@ -2807,7 +2807,7 @@ F77_INT lda = octave::to_f77_int (a.rows ()); retval = Matrix (a_nr, b_nc); - double *c = retval.fortran_vec (); + double *c = retval.rwdata (); const char ctra = get_blas_trans_arg (tra); F77_XFCN (dsyrk, DSYRK, (F77_CONST_CHAR_ARG2 ("U", 1), @@ -2829,7 +2829,7 @@ F77_INT tdb = octave::to_f77_int (b.cols ()); retval = Matrix (a_nr, b_nc); - double *c = retval.fortran_vec (); + double *c = retval.rwdata (); if (b_nc == 1) {
--- a/liboctave/array/dNDArray.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/array/dNDArray.cc Wed Dec 27 16:55:14 2023 -0800 @@ -49,7 +49,7 @@ { const octave_idx_type *pa = a.data (); resize (a.dims ()); - double *ptmp = fortran_vec (); + double *ptmp = rwdata (); if (negative_to_nan) { double nan_val = lo_ieee_nan_value (); @@ -117,7 +117,7 @@ const double *in (data ()); ComplexNDArray retval (dv); - Complex *out (retval.fortran_vec ()); + Complex *out (retval.rwdata ()); // Need to be careful here about the distance between fft's for (octave_idx_type k = 0; k < nloop; k++) @@ -147,7 +147,7 @@ octave_idx_type dist = (stride == 1 ? n : 1); ComplexNDArray retval (*this); - Complex *out (retval.fortran_vec ()); + Complex *out (retval.rwdata ()); // Need to be careful here about the distance between fft's for (octave_idx_type k = 0; k < nloop; k++) @@ -167,7 +167,7 @@ dim_vector dv2 (dv(0), dv(1)); const double *in = data (); ComplexNDArray retval (dv); - Complex *out = retval.fortran_vec (); + Complex *out = retval.rwdata (); octave_idx_type howmany = numel () / dv(0) / dv(1); octave_idx_type dist = dv(0) * dv(1); @@ -186,7 +186,7 @@ dim_vector dv2 (dv(0), dv(1)); ComplexNDArray retval (*this); - Complex *out = retval.fortran_vec (); + Complex *out = retval.rwdata (); octave_idx_type howmany = numel () / dv(0) / dv(1); octave_idx_type dist = dv(0) * dv(1); @@ -204,7 +204,7 @@ const double *in (data ()); ComplexNDArray retval (dv); - Complex *out (retval.fortran_vec ()); + Complex *out (retval.rwdata ()); octave::fftw::fftNd (in, out, rank, dv); @@ -218,9 +218,9 @@ int rank = dv.ndims (); ComplexNDArray tmp (*this); - Complex *in (tmp.fortran_vec ()); + Complex *in (tmp.rwdata ()); ComplexNDArray retval (dv); - Complex *out (retval.fortran_vec ()); + Complex *out (retval.rwdata ()); octave::fftw::ifftNd (in, out, rank, dv);
--- a/liboctave/array/dRowVector.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/array/dRowVector.cc Wed Dec 27 16:55:14 2023 -0800 @@ -190,7 +190,7 @@ F77_INT ld = a_nr; retval.resize (a_nc); - double *y = retval.fortran_vec (); + double *y = retval.rwdata (); F77_XFCN (dgemv, DGEMV, (F77_CONST_CHAR_ARG2 ("T", 1), a_nr, a_nc, 1.0, a.data (),
--- a/liboctave/array/dSparse.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/array/dSparse.cc Wed Dec 27 16:55:14 2023 -0800 @@ -1043,7 +1043,7 @@ // Setup the control parameters Matrix Control (UMFPACK_CONTROL, 1); - double *control = Control.fortran_vec (); + double *control = Control.rwdata (); UMFPACK_DNAME (defaults) (control); double tmp = octave::sparse_params::get_key ("spumoni"); @@ -1078,7 +1078,7 @@ void *Symbolic; Matrix Info (1, UMFPACK_INFO); - double *info = Info.fortran_vec (); + double *info = Info.rwdata (); int status = UMFPACK_DNAME (qsymbolic) (nr, nc, octave::to_suitesparse_intptr (Ap), octave::to_suitesparse_intptr (Ai), @@ -3656,7 +3656,7 @@ F77_INT b_nc = octave::to_f77_int (b.cols ()); retval = b; - double *result = retval.fortran_vec (); + double *result = retval.rwdata (); F77_INT tmp_err = 0; @@ -3721,7 +3721,7 @@ F77_INT b_nc = octave::to_f77_int (b.cols ()); retval = b; - double *result = retval.fortran_vec (); + double *result = retval.rwdata (); F77_INT tmp_err = 0; @@ -3789,7 +3789,7 @@ OCTAVE_LOCAL_BUFFER (double, D, nr); OCTAVE_LOCAL_BUFFER (double, DL, nr - 1); Array<F77_INT> ipvt (dim_vector (nr, 1)); - F77_INT *pipvt = ipvt.fortran_vec (); + F77_INT *pipvt = ipvt.rwdata (); if (mattype.is_dense ()) { @@ -3978,7 +3978,7 @@ rcond = 1.; retval = b; - Complex *result = retval.fortran_vec (); + Complex *result = retval.rwdata (); F77_INT tmp_err = 0; @@ -4044,7 +4044,7 @@ rcond = 1.; retval = b; - Complex *result = retval.fortran_vec (); + Complex *result = retval.rwdata (); F77_INT tmp_err = 0; @@ -4113,7 +4113,7 @@ OCTAVE_LOCAL_BUFFER (double, D, nr); OCTAVE_LOCAL_BUFFER (double, DL, nr - 1); Array<F77_INT> ipvt (dim_vector (nr, 1)); - F77_INT *pipvt = ipvt.fortran_vec (); + F77_INT *pipvt = ipvt.rwdata (); if (mattype.is_dense ()) { @@ -4296,7 +4296,7 @@ F77_INT n_lower = octave::to_f77_int (mattype.nlower ()); F77_INT ldm = n_lower + 1; Matrix m_band (ldm, nc); - double *tmp_data = m_band.fortran_vec (); + double *tmp_data = m_band.rwdata (); if (! mattype.is_dense ()) { @@ -4345,9 +4345,9 @@ if (calc_cond) { Array<double> z (dim_vector (3 * nr, 1)); - double *pz = z.fortran_vec (); + double *pz = z.rwdata (); Array<F77_INT> iz (dim_vector (nr, 1)); - F77_INT *piz = iz.fortran_vec (); + F77_INT *piz = iz.rwdata (); F77_XFCN (dpbcon, DPBCON, (F77_CONST_CHAR_ARG2 (&job, 1), @@ -4381,7 +4381,7 @@ if (err == 0) { retval = b; - double *result = retval.fortran_vec (); + double *result = retval.rwdata (); F77_INT b_nr = octave::to_f77_int (b.rows ()); F77_INT b_nc = octave::to_f77_int (b.cols ()); @@ -4413,7 +4413,7 @@ F77_INT ldm = n_upper + 2 * n_lower + 1; Matrix m_band (ldm, nc); - double *tmp_data = m_band.fortran_vec (); + double *tmp_data = m_band.rwdata (); if (! mattype.is_dense ()) { @@ -4445,7 +4445,7 @@ F77_INT tmp_nr = octave::to_f77_int (nr); Array<F77_INT> ipvt (dim_vector (nr, 1)); - F77_INT *pipvt = ipvt.fortran_vec (); + F77_INT *pipvt = ipvt.rwdata (); F77_INT tmp_err = 0; @@ -4475,9 +4475,9 @@ { char job = '1'; Array<double> z (dim_vector (3 * nr, 1)); - double *pz = z.fortran_vec (); + double *pz = z.rwdata (); Array<F77_INT> iz (dim_vector (nr, 1)); - F77_INT *piz = iz.fortran_vec (); + F77_INT *piz = iz.rwdata (); F77_INT tmp_nc = octave::to_f77_int (nc); @@ -4513,7 +4513,7 @@ if (err == 0) { retval = b; - double *result = retval.fortran_vec (); + double *result = retval.rwdata (); F77_INT b_nr = octave::to_f77_int (b.rows ()); F77_INT b_nc = octave::to_f77_int (b.cols ()); @@ -4566,7 +4566,7 @@ F77_INT ldm = octave::to_f77_int (n_lower + 1); Matrix m_band (ldm, nc); - double *tmp_data = m_band.fortran_vec (); + double *tmp_data = m_band.rwdata (); if (! mattype.is_dense ()) { @@ -4613,9 +4613,9 @@ if (calc_cond) { Array<double> z (dim_vector (3 * nr, 1)); - double *pz = z.fortran_vec (); + double *pz = z.rwdata (); Array<F77_INT> iz (dim_vector (nr, 1)); - F77_INT *piz = iz.fortran_vec (); + F77_INT *piz = iz.rwdata (); F77_XFCN (dpbcon, DPBCON, (F77_CONST_CHAR_ARG2 (&job, 1), @@ -4716,7 +4716,7 @@ F77_INT ldm = octave::to_f77_int (n_upper + 2 * n_lower + 1); Matrix m_band (ldm, nc); - double *tmp_data = m_band.fortran_vec (); + double *tmp_data = m_band.rwdata (); if (! mattype.is_dense ()) { @@ -4749,7 +4749,7 @@ F77_INT tmp_nr = octave::to_f77_int (nr); Array<F77_INT> ipvt (dim_vector (nr, 1)); - F77_INT *pipvt = ipvt.fortran_vec (); + F77_INT *pipvt = ipvt.rwdata (); F77_INT tmp_err = 0; @@ -4777,9 +4777,9 @@ { char job = '1'; Array<double> z (dim_vector (3 * nr, 1)); - double *pz = z.fortran_vec (); + double *pz = z.rwdata (); Array<F77_INT> iz (dim_vector (nr, 1)); - F77_INT *piz = iz.fortran_vec (); + F77_INT *piz = iz.rwdata (); F77_INT tmp_nc = octave::to_f77_int (nc); @@ -4906,7 +4906,7 @@ F77_INT ldm = n_lower + 1; Matrix m_band (ldm, nc); - double *tmp_data = m_band.fortran_vec (); + double *tmp_data = m_band.rwdata (); if (! mattype.is_dense ()) { @@ -4955,9 +4955,9 @@ if (calc_cond) { Array<double> z (dim_vector (3 * nr, 1)); - double *pz = z.fortran_vec (); + double *pz = z.rwdata (); Array<F77_INT> iz (dim_vector (nr, 1)); - F77_INT *piz = iz.fortran_vec (); + F77_INT *piz = iz.rwdata (); F77_XFCN (dpbcon, DPBCON, (F77_CONST_CHAR_ARG2 (&job, 1), @@ -5056,7 +5056,7 @@ F77_INT ldm = n_upper + 2 * n_lower + 1; Matrix m_band (ldm, nc); - double *tmp_data = m_band.fortran_vec (); + double *tmp_data = m_band.rwdata (); if (! mattype.is_dense ()) { @@ -5089,7 +5089,7 @@ F77_INT tmp_nr = octave::to_f77_int (nr); Array<F77_INT> ipvt (dim_vector (nr, 1)); - F77_INT *pipvt = ipvt.fortran_vec (); + F77_INT *pipvt = ipvt.rwdata (); F77_INT tmp_err = 0; @@ -5117,9 +5117,9 @@ { char job = '1'; Array<double> z (dim_vector (3 * nr, 1)); - double *pz = z.fortran_vec (); + double *pz = z.rwdata (); Array<F77_INT> iz (dim_vector (nr, 1)); - F77_INT *piz = iz.fortran_vec (); + F77_INT *piz = iz.rwdata (); F77_INT tmp_nc = octave::to_f77_int (nc); @@ -5230,7 +5230,7 @@ F77_INT ldm = n_lower + 1; Matrix m_band (ldm, nc); - double *tmp_data = m_band.fortran_vec (); + double *tmp_data = m_band.rwdata (); if (! mattype.is_dense ()) { @@ -5280,9 +5280,9 @@ if (calc_cond) { Array<double> z (dim_vector (3 * nr, 1)); - double *pz = z.fortran_vec (); + double *pz = z.rwdata (); Array<F77_INT> iz (dim_vector (nr, 1)); - F77_INT *piz = iz.fortran_vec (); + F77_INT *piz = iz.rwdata (); F77_XFCN (dpbcon, DPBCON, (F77_CONST_CHAR_ARG2 (&job, 1), @@ -5410,7 +5410,7 @@ F77_INT ldm = n_upper + 2 * n_lower + 1; Matrix m_band (ldm, nc); - double *tmp_data = m_band.fortran_vec (); + double *tmp_data = m_band.rwdata (); if (! mattype.is_dense ()) { @@ -5443,7 +5443,7 @@ F77_INT tmp_nr = octave::to_f77_int (nr); Array<F77_INT> ipvt (dim_vector (nr, 1)); - F77_INT *pipvt = ipvt.fortran_vec (); + F77_INT *pipvt = ipvt.rwdata (); F77_INT tmp_err = 0; @@ -5471,9 +5471,9 @@ { char job = '1'; Array<double> z (dim_vector (3 * nr, 1)); - double *pz = z.fortran_vec (); + double *pz = z.rwdata (); Array<F77_INT> iz (dim_vector (nr, 1)); - F77_INT *piz = iz.fortran_vec (); + F77_INT *piz = iz.rwdata (); F77_INT tmp_nc = octave::to_f77_int (nc); @@ -5598,7 +5598,7 @@ // Setup the control parameters Control = Matrix (UMFPACK_CONTROL, 1); - double *control = Control.fortran_vec (); + double *control = Control.rwdata (); UMFPACK_DNAME (defaults) (control); double tmp = octave::sparse_params::get_key ("spumoni"); @@ -5631,7 +5631,7 @@ void *Symbolic; Info = Matrix (1, UMFPACK_INFO); - double *info = Info.fortran_vec (); + double *info = Info.rwdata (); int status = UMFPACK_DNAME (qsymbolic) (nr, nc, octave::to_suitesparse_intptr (Ap), octave::to_suitesparse_intptr (Ai), @@ -5870,12 +5870,12 @@ Control (UMFPACK_IRSTEP) = 1; const double *Bx = b.data (); retval.resize (b.rows (), b.cols ()); - double *result = retval.fortran_vec (); + double *result = retval.rwdata (); octave_idx_type b_nr = b.rows (); octave_idx_type b_nc = b.cols (); int status = 0; - double *control = Control.fortran_vec (); - double *info = Info.fortran_vec (); + double *control = Control.rwdata (); + double *info = Info.rwdata (); const octave_idx_type *Ap = cidx (); const octave_idx_type *Ai = ridx (); const double *Ax = data (); @@ -6100,8 +6100,8 @@ octave_idx_type b_nr = b.rows (); octave_idx_type b_nc = b.cols (); int status = 0; - double *control = Control.fortran_vec (); - double *info = Info.fortran_vec (); + double *control = Control.rwdata (); + double *info = Info.rwdata (); const octave_idx_type *Ap = cidx (); const octave_idx_type *Ai = ridx (); const double *Ax = data (); @@ -6345,8 +6345,8 @@ octave_idx_type b_nr = b.rows (); octave_idx_type b_nc = b.cols (); int status = 0; - double *control = Control.fortran_vec (); - double *info = Info.fortran_vec (); + double *control = Control.rwdata (); + double *info = Info.rwdata (); const octave_idx_type *Ap = cidx (); const octave_idx_type *Ai = ridx (); const double *Ax = data (); @@ -6595,8 +6595,8 @@ octave_idx_type b_nr = b.rows (); octave_idx_type b_nc = b.cols (); int status = 0; - double *control = Control.fortran_vec (); - double *info = Info.fortran_vec (); + double *control = Control.rwdata (); + double *info = Info.rwdata (); const octave_idx_type *Ap = cidx (); const octave_idx_type *Ai = ridx (); const double *Ax = data ();
--- a/liboctave/array/fCColVector.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/array/fCColVector.cc Wed Dec 27 16:55:14 2023 -0800 @@ -265,7 +265,7 @@ if (len == 0) return *this; - FloatComplex *d = fortran_vec (); // Ensures only 1 reference to my privates! + FloatComplex *d = rwdata (); // Ensures only 1 reference to my privates! mx_inline_add2 (len, d, a.data ()); return *this; @@ -284,7 +284,7 @@ if (len == 0) return *this; - FloatComplex *d = fortran_vec (); // Ensures only 1 reference to my privates! + FloatComplex *d = rwdata (); // Ensures only 1 reference to my privates! mx_inline_sub2 (len, d, a.data ()); return *this; @@ -320,7 +320,7 @@ retval.fill (0.0); else { - FloatComplex *y = retval.fortran_vec (); + FloatComplex *y = retval.rwdata (); F77_XFCN (cgemv, CGEMV, (F77_CONST_CHAR_ARG2 ("N", 1), nr, nc, 1.0f, F77_CONST_CMPLX_ARG (m.data ()), nr,
--- a/liboctave/array/fCDiagMatrix.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/array/fCDiagMatrix.cc Wed Dec 27 16:55:14 2023 -0800 @@ -380,7 +380,7 @@ if (r == 0 || c == 0) return *this; - FloatComplex *d = fortran_vec (); // Ensures only 1 reference to my privates! + FloatComplex *d = rwdata (); // Ensures only 1 reference to my privates! mx_inline_add2 (length (), d, a.data ()); return *this;
--- a/liboctave/array/fCMatrix.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/array/fCMatrix.cc Wed Dec 27 16:55:14 2023 -0800 @@ -792,7 +792,7 @@ char uplo = (typ == MatrixType::Lower ? 'L' : 'U'); char udiag = 'N'; retval = *this; - FloatComplex *tmp_data = retval.fortran_vec (); + FloatComplex *tmp_data = retval.rwdata (); F77_INT tmp_info = 0; @@ -848,10 +848,10 @@ (*current_liboctave_error_handler) ("inverse requires square matrix"); Array<F77_INT> ipvt (dim_vector (nr, 1)); - F77_INT *pipvt = ipvt.fortran_vec (); + F77_INT *pipvt = ipvt.rwdata (); retval = *this; - FloatComplex *tmp_data = retval.fortran_vec (); + FloatComplex *tmp_data = retval.rwdata (); Array<FloatComplex> z (dim_vector (1, 1)); F77_INT lwork = -1; @@ -861,13 +861,13 @@ F77_INT tmp_info = 0; F77_XFCN (cgetri, CGETRI, (nc, F77_CMPLX_ARG (tmp_data), nr, pipvt, - F77_CMPLX_ARG (z.fortran_vec ()), lwork, + F77_CMPLX_ARG (z.rwdata ()), lwork, tmp_info)); lwork = static_cast<F77_INT> (std::real (z(0))); lwork = (lwork < 2 * nc ? 2 * nc : lwork); z.resize (dim_vector (lwork, 1)); - FloatComplex *pz = z.fortran_vec (); + FloatComplex *pz = z.rwdata (); info = 0; tmp_info = 0; @@ -902,7 +902,7 @@ // Now calculate the condition number for non-singular matrix. char job = '1'; Array<float> rz (dim_vector (2 * nc, 1)); - float *prz = rz.fortran_vec (); + float *prz = rz.rwdata (); F77_XFCN (cgecon, CGECON, (F77_CONST_CHAR_ARG2 (&job, 1), nc, F77_CMPLX_ARG (tmp_data), nr, anorm, rcon, F77_CMPLX_ARG (pz), prz, cgecon_info @@ -1066,7 +1066,7 @@ } const FloatComplex *in (data ()); - FloatComplex *out (retval.fortran_vec ()); + FloatComplex *out (retval.rwdata ()); octave::fftw::fft (in, out, npts, nsamples); @@ -1095,7 +1095,7 @@ } const FloatComplex *in (data ()); - FloatComplex *out (retval.fortran_vec ()); + FloatComplex *out (retval.rwdata ()); octave::fftw::ifft (in, out, npts, nsamples); @@ -1109,7 +1109,7 @@ FloatComplexMatrix retval (rows (), cols ()); const FloatComplex *in (data ()); - FloatComplex *out (retval.fortran_vec ()); + FloatComplex *out (retval.rwdata ()); octave::fftw::fftNd (in, out, 2, dv); @@ -1123,7 +1123,7 @@ FloatComplexMatrix retval (rows (), cols ()); const FloatComplex *in (data ()); - FloatComplex *out (retval.fortran_vec ()); + FloatComplex *out (retval.rwdata ()); octave::fftw::ifftNd (in, out, 2, dv); @@ -1228,7 +1228,7 @@ else if (typ == MatrixType::Hermitian) { FloatComplexMatrix atmp = *this; - FloatComplex *tmp_data = atmp.fortran_vec (); + FloatComplex *tmp_data = atmp.rwdata (); float anorm; if (calc_cond) @@ -1254,9 +1254,9 @@ if (calc_cond) { Array<FloatComplex> z (dim_vector (2 * nc, 1)); - FloatComplex *pz = z.fortran_vec (); + FloatComplex *pz = z.rwdata (); Array<float> rz (dim_vector (nc, 1)); - float *prz = rz.fortran_vec (); + float *prz = rz.rwdata (); F77_XFCN (cpocon, CPOCON, (F77_CONST_CHAR_ARG2 (&job, 1), nr, F77_CMPLX_ARG (tmp_data), nr, anorm, @@ -1281,10 +1281,10 @@ if (typ == MatrixType::Full) { Array<F77_INT> ipvt (dim_vector (nr, 1)); - F77_INT *pipvt = ipvt.fortran_vec (); + F77_INT *pipvt = ipvt.rwdata (); FloatComplexMatrix atmp = *this; - FloatComplex *tmp_data = atmp.fortran_vec (); + FloatComplex *tmp_data = atmp.rwdata (); info = 0; @@ -1318,9 +1318,9 @@ // Now calc the condition number for non-singular matrix. char job = '1'; Array<FloatComplex> z (dim_vector (2 * nc, 1)); - FloatComplex *pz = z.fortran_vec (); + FloatComplex *pz = z.rwdata (); Array<float> rz (dim_vector (2 * nc, 1)); - float *prz = rz.fortran_vec (); + float *prz = rz.rwdata (); F77_XFCN (cgecon, CGECON, (F77_CONST_CHAR_ARG2 (&job, 1), nc, F77_CMPLX_ARG (tmp_data), nr, anorm, @@ -1385,9 +1385,9 @@ char dia = 'N'; Array<FloatComplex> z (dim_vector (2 * nc, 1)); - FloatComplex *pz = z.fortran_vec (); + FloatComplex *pz = z.rwdata (); Array<float> rz (dim_vector (nc, 1)); - float *prz = rz.fortran_vec (); + float *prz = rz.rwdata (); F77_XFCN (ctrcon, CTRCON, (F77_CONST_CHAR_ARG2 (&norm, 1), F77_CONST_CHAR_ARG2 (&uplo, 1), @@ -1413,9 +1413,9 @@ char dia = 'N'; Array<FloatComplex> z (dim_vector (2 * nc, 1)); - FloatComplex *pz = z.fortran_vec (); + FloatComplex *pz = z.rwdata (); Array<float> rz (dim_vector (nc, 1)); - float *prz = rz.fortran_vec (); + float *prz = rz.rwdata (); F77_XFCN (ctrcon, CTRCON, (F77_CONST_CHAR_ARG2 (&norm, 1), F77_CONST_CHAR_ARG2 (&uplo, 1), @@ -1442,7 +1442,7 @@ char job = 'L'; FloatComplexMatrix atmp = *this; - FloatComplex *tmp_data = atmp.fortran_vec (); + FloatComplex *tmp_data = atmp.rwdata (); anorm = norm1 (atmp); @@ -1460,9 +1460,9 @@ else { Array<FloatComplex> z (dim_vector (2 * nc, 1)); - FloatComplex *pz = z.fortran_vec (); + FloatComplex *pz = z.rwdata (); Array<float> rz (dim_vector (nc, 1)); - float *prz = rz.fortran_vec (); + float *prz = rz.rwdata (); F77_XFCN (cpocon, CPOCON, (F77_CONST_CHAR_ARG2 (&job, 1), nr, F77_CMPLX_ARG (tmp_data), nr, anorm, @@ -1479,18 +1479,18 @@ F77_INT info = 0; FloatComplexMatrix atmp = *this; - FloatComplex *tmp_data = atmp.fortran_vec (); + FloatComplex *tmp_data = atmp.rwdata (); Array<F77_INT> ipvt (dim_vector (nr, 1)); - F77_INT *pipvt = ipvt.fortran_vec (); + F77_INT *pipvt = ipvt.rwdata (); if (anorm < 0.0) anorm = norm1 (atmp); Array<FloatComplex> z (dim_vector (2 * nc, 1)); - FloatComplex *pz = z.fortran_vec (); + FloatComplex *pz = z.rwdata (); Array<float> rz (dim_vector (2 * nc, 1)); - float *prz = rz.fortran_vec (); + float *prz = rz.rwdata (); // Work around bug #45577, LAPACK crashes Octave if norm is NaN if (octave::math::isnan (anorm)) @@ -1561,7 +1561,7 @@ const FloatComplex *tmp_data = data (); retval = b; - FloatComplex *result = retval.fortran_vec (); + FloatComplex *result = retval.rwdata (); char uplo = 'U'; char trans = get_blas_char (transt); @@ -1587,9 +1587,9 @@ dia = 'N'; Array<FloatComplex> z (dim_vector (2 * nc, 1)); - FloatComplex *pz = z.fortran_vec (); + FloatComplex *pz = z.rwdata (); Array<float> rz (dim_vector (nc, 1)); - float *prz = rz.fortran_vec (); + float *prz = rz.rwdata (); F77_XFCN (ctrcon, CTRCON, (F77_CONST_CHAR_ARG2 (&norm, 1), F77_CONST_CHAR_ARG2 (&uplo, 1), @@ -1663,7 +1663,7 @@ const FloatComplex *tmp_data = data (); retval = b; - FloatComplex *result = retval.fortran_vec (); + FloatComplex *result = retval.rwdata (); char uplo = 'L'; char trans = get_blas_char (transt); @@ -1689,9 +1689,9 @@ dia = 'N'; Array<FloatComplex> z (dim_vector (2 * nc, 1)); - FloatComplex *pz = z.fortran_vec (); + FloatComplex *pz = z.rwdata (); Array<float> rz (dim_vector (nc, 1)); - float *prz = rz.fortran_vec (); + float *prz = rz.rwdata (); F77_XFCN (ctrcon, CTRCON, (F77_CONST_CHAR_ARG2 (&norm, 1), F77_CONST_CHAR_ARG2 (&uplo, 1), @@ -1761,7 +1761,7 @@ char job = 'L'; FloatComplexMatrix atmp = *this; - FloatComplex *tmp_data = atmp.fortran_vec (); + FloatComplex *tmp_data = atmp.rwdata (); // The norm of the matrix for later use when determining rcon. if (calc_cond) @@ -1789,9 +1789,9 @@ if (calc_cond) { Array<FloatComplex> z (dim_vector (2 * nc, 1)); - FloatComplex *pz = z.fortran_vec (); + FloatComplex *pz = z.rwdata (); Array<float> rz (dim_vector (nc, 1)); - float *prz = rz.fortran_vec (); + float *prz = rz.rwdata (); F77_XFCN (cpocon, CPOCON, (F77_CONST_CHAR_ARG2 (&job, 1), nr, F77_CMPLX_ARG (tmp_data), nr, anorm, @@ -1819,7 +1819,7 @@ if (info == 0) { retval = b; - FloatComplex *result = retval.fortran_vec (); + FloatComplex *result = retval.rwdata (); F77_XFCN (cpotrs, CPOTRS, (F77_CONST_CHAR_ARG2 (&job, 1), nr, b_nc, F77_CMPLX_ARG (tmp_data), nr, @@ -1841,15 +1841,15 @@ info = 0; Array<F77_INT> ipvt (dim_vector (nr, 1)); - F77_INT *pipvt = ipvt.fortran_vec (); + F77_INT *pipvt = ipvt.rwdata (); FloatComplexMatrix atmp = *this; - FloatComplex *tmp_data = atmp.fortran_vec (); + FloatComplex *tmp_data = atmp.rwdata (); Array<FloatComplex> z (dim_vector (2 * nc, 1)); - FloatComplex *pz = z.fortran_vec (); + FloatComplex *pz = z.rwdata (); Array<float> rz (dim_vector (2 * nc, 1)); - float *prz = rz.fortran_vec (); + float *prz = rz.rwdata (); // Calculate the norm of the matrix, for later use. if (calc_cond && anorm < 0.0) @@ -1912,7 +1912,7 @@ if (info == 0) { retval = b; - FloatComplex *result = retval.fortran_vec (); + FloatComplex *result = retval.rwdata (); char job = 'N'; F77_XFCN (cgetrs, CGETRS, (F77_CONST_CHAR_ARG2 (&job, 1), @@ -2336,11 +2336,11 @@ retval = b; FloatComplexMatrix atmp = *this; - FloatComplex *tmp_data = atmp.fortran_vec (); - - FloatComplex *pretval = retval.fortran_vec (); + FloatComplex *tmp_data = atmp.rwdata (); + + FloatComplex *pretval = retval.rwdata (); Array<float> s (dim_vector (minmn, 1)); - float *ps = s.fortran_vec (); + float *ps = s.rwdata (); // Ask ZGELSD what the dimension of WORK should be. F77_INT lwork = -1; @@ -2379,20 +2379,20 @@ if (lrwork < 1) lrwork = 1; Array<float> rwork (dim_vector (lrwork, 1)); - float *prwork = rwork.fortran_vec (); + float *prwork = rwork.rwdata (); F77_INT liwork = 3 * minmn * nlvl + 11 * minmn; if (liwork < 1) liwork = 1; Array<F77_INT> iwork (dim_vector (liwork, 1)); - F77_INT *piwork = iwork.fortran_vec (); + F77_INT *piwork = iwork.rwdata (); F77_INT tmp_info = 0; F77_INT tmp_rank = 0; F77_XFCN (cgelsd, CGELSD, (m, n, nrhs, F77_CMPLX_ARG (tmp_data), m, F77_CMPLX_ARG (pretval), maxmn, - ps, rcon, tmp_rank, F77_CMPLX_ARG (work.fortran_vec ()), + ps, rcon, tmp_rank, F77_CMPLX_ARG (work.rwdata ()), lwork, prwork, piwork, tmp_info)); info = tmp_info; @@ -2449,7 +2449,7 @@ F77_XFCN (cgelsd, CGELSD, (m, n, nrhs, F77_CMPLX_ARG (tmp_data), m, F77_CMPLX_ARG (pretval), maxmn, ps, rcon, tmp_rank, - F77_CMPLX_ARG (work.fortran_vec ()), + F77_CMPLX_ARG (work.rwdata ()), lwork, prwork, piwork, tmp_info)); info = tmp_info; @@ -2565,11 +2565,11 @@ retval = b; FloatComplexMatrix atmp = *this; - FloatComplex *tmp_data = atmp.fortran_vec (); - - FloatComplex *pretval = retval.fortran_vec (); + FloatComplex *tmp_data = atmp.rwdata (); + + FloatComplex *pretval = retval.rwdata (); Array<float> s (dim_vector (minmn, 1)); - float *ps = s.fortran_vec (); + float *ps = s.rwdata (); // Ask ZGELSD what the dimension of WORK should be. F77_INT lwork = -1; @@ -2599,20 +2599,20 @@ if (lrwork < 1) lrwork = 1; Array<float> rwork (dim_vector (lrwork, 1)); - float *prwork = rwork.fortran_vec (); + float *prwork = rwork.rwdata (); F77_INT liwork = 3 * minmn * nlvl + 11 * minmn; if (liwork < 1) liwork = 1; Array<F77_INT> iwork (dim_vector (liwork, 1)); - F77_INT *piwork = iwork.fortran_vec (); + F77_INT *piwork = iwork.rwdata (); F77_INT tmp_info = 0; F77_INT tmp_rank = 0; F77_XFCN (cgelsd, CGELSD, (m, n, nrhs, F77_CMPLX_ARG (tmp_data), m, F77_CMPLX_ARG (pretval), maxmn, - ps, rcon, tmp_rank, F77_CMPLX_ARG (work.fortran_vec ()), + ps, rcon, tmp_rank, F77_CMPLX_ARG (work.rwdata ()), lwork, prwork, piwork, tmp_info)); info = tmp_info; @@ -2626,7 +2626,7 @@ F77_XFCN (cgelsd, CGELSD, (m, n, nrhs, F77_CMPLX_ARG (tmp_data), m, F77_CMPLX_ARG (pretval), maxmn, ps, rcon, tmp_rank, - F77_CMPLX_ARG (work.fortran_vec ()), lwork, + F77_CMPLX_ARG (work.rwdata ()), lwork, prwork, piwork, tmp_info)); info = tmp_info; @@ -2674,7 +2674,7 @@ F77_INT a_len = octave::to_f77_int (a.numel ()); retval = FloatComplexMatrix (len, a_len); - FloatComplex *c = retval.fortran_vec (); + FloatComplex *c = retval.rwdata (); F77_XFCN (cgemm, CGEMM, (F77_CONST_CHAR_ARG2 ("N", 1), F77_CONST_CHAR_ARG2 ("N", 1), @@ -2778,7 +2778,7 @@ if (nr == 0 || nc == 0) return *this; - FloatComplex *d = fortran_vec (); // Ensures only 1 reference to my privates! + FloatComplex *d = rwdata (); // Ensures only 1 reference to my privates! mx_inline_add2 (numel (), d, a.data ()); return *this; @@ -2799,7 +2799,7 @@ if (nr == 0 || nc == 0) return *this; - FloatComplex *d = fortran_vec (); // Ensures only 1 reference to my privates! + FloatComplex *d = rwdata (); // Ensures only 1 reference to my privates! mx_inline_sub2 (numel (), d, a.data ()); return *this; @@ -3307,9 +3307,9 @@ float scale; F77_INT info; - FloatComplex *pa = sch_a.fortran_vec (); - FloatComplex *pb = sch_b.fortran_vec (); - FloatComplex *px = cx.fortran_vec (); + FloatComplex *pa = sch_a.rwdata (); + FloatComplex *pb = sch_b.rwdata (); + FloatComplex *px = cx.rwdata (); F77_XFCN (ctrsyl, CTRSYL, (F77_CONST_CHAR_ARG2 ("N", 1), F77_CONST_CHAR_ARG2 ("N", 1), @@ -3406,7 +3406,7 @@ // use the result matrix before zeroing the elements. retval = FloatComplexMatrix (a_nr, b_nc, 0.0); - FloatComplex *c = retval.fortran_vec (); + FloatComplex *c = retval.rwdata (); const char ctra = get_blas_trans_arg (tra, cja); if (cja || cjb) @@ -3444,7 +3444,7 @@ F77_INT tdb = octave::to_f77_int (b.cols ()); retval = FloatComplexMatrix (a_nr, b_nc, 0.0); - FloatComplex *c = retval.fortran_vec (); + FloatComplex *c = retval.rwdata (); if (b_nc == 1 && a_nr == 1) {
--- a/liboctave/array/fCNDArray.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/array/fCNDArray.cc Wed Dec 27 16:55:14 2023 -0800 @@ -75,7 +75,7 @@ const FloatComplex *in (data ()); FloatComplexNDArray retval (dv); - FloatComplex *out (retval.fortran_vec ()); + FloatComplex *out (retval.rwdata ()); // Need to be careful here about the distance between fft's for (octave_idx_type k = 0; k < nloop; k++) @@ -106,7 +106,7 @@ const FloatComplex *in (data ()); FloatComplexNDArray retval (dv); - FloatComplex *out (retval.fortran_vec ()); + FloatComplex *out (retval.rwdata ()); // Need to be careful here about the distance between fft's for (octave_idx_type k = 0; k < nloop; k++) @@ -126,7 +126,7 @@ dim_vector dv2 (dv(0), dv(1)); const FloatComplex *in = data (); FloatComplexNDArray retval (dv); - FloatComplex *out = retval.fortran_vec (); + FloatComplex *out = retval.rwdata (); octave_idx_type howmany = numel () / dv(0) / dv(1); octave_idx_type dist = dv(0) * dv(1); @@ -146,7 +146,7 @@ dim_vector dv2 (dv(0), dv(1)); const FloatComplex *in = data (); FloatComplexNDArray retval (dv); - FloatComplex *out = retval.fortran_vec (); + FloatComplex *out = retval.rwdata (); octave_idx_type howmany = numel () / dv(0) / dv(1); octave_idx_type dist = dv(0) * dv(1); @@ -164,7 +164,7 @@ const FloatComplex *in (data ()); FloatComplexNDArray retval (dv); - FloatComplex *out (retval.fortran_vec ()); + FloatComplex *out (retval.rwdata ()); octave::fftw::fftNd (in, out, rank, dv); @@ -179,7 +179,7 @@ const FloatComplex *in (data ()); FloatComplexNDArray retval (dv); - FloatComplex *out (retval.fortran_vec ()); + FloatComplex *out (retval.rwdata ()); octave::fftw::ifftNd (in, out, rank, dv);
--- a/liboctave/array/fCRowVector.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/array/fCRowVector.cc Wed Dec 27 16:55:14 2023 -0800 @@ -254,7 +254,7 @@ if (len == 0) return *this; - FloatComplex *d = fortran_vec (); // Ensures only 1 reference to my privates! + FloatComplex *d = rwdata (); // Ensures only 1 reference to my privates! mx_inline_add2 (len, d, a.data ()); return *this; @@ -273,7 +273,7 @@ if (len == 0) return *this; - FloatComplex *d = fortran_vec (); // Ensures only 1 reference to my privates! + FloatComplex *d = rwdata (); // Ensures only 1 reference to my privates! mx_inline_sub2 (len, d, a.data ()); return *this; @@ -303,7 +303,7 @@ F77_INT ld = a_nr; retval.resize (a_nc); - FloatComplex *y = retval.fortran_vec (); + FloatComplex *y = retval.rwdata (); F77_XFCN (cgemv, CGEMV, (F77_CONST_CHAR_ARG2 ("T", 1), a_nr, a_nc, 1.0, F77_CONST_CMPLX_ARG (a.data ()),
--- a/liboctave/array/fColVector.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/array/fColVector.cc Wed Dec 27 16:55:14 2023 -0800 @@ -196,7 +196,7 @@ retval.fill (0.0); else { - float *y = retval.fortran_vec (); + float *y = retval.rwdata (); F77_XFCN (sgemv, SGEMV, (F77_CONST_CHAR_ARG2 ("N", 1), nr, nc, 1.0f, m.data (), nr,
--- a/liboctave/array/fMatrix.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/array/fMatrix.cc Wed Dec 27 16:55:14 2023 -0800 @@ -509,7 +509,7 @@ char uplo = (typ == MatrixType::Lower ? 'L' : 'U'); char udiag = 'N'; retval = *this; - float *tmp_data = retval.fortran_vec (); + float *tmp_data = retval.rwdata (); F77_INT tmp_info = 0; @@ -565,10 +565,10 @@ (*current_liboctave_error_handler) ("inverse requires square matrix"); Array<F77_INT> ipvt (dim_vector (nr, 1)); - F77_INT *pipvt = ipvt.fortran_vec (); + F77_INT *pipvt = ipvt.rwdata (); retval = *this; - float *tmp_data = retval.fortran_vec (); + float *tmp_data = retval.rwdata (); Array<float> z (dim_vector (1, 1)); F77_INT lwork = -1; @@ -577,12 +577,12 @@ // Query the optimum work array size. F77_XFCN (sgetri, SGETRI, (nc, tmp_data, nr, pipvt, - z.fortran_vec (), lwork, tmp_info)); + z.rwdata (), lwork, tmp_info)); lwork = static_cast<F77_INT> (z(0)); lwork = (lwork < 4 * nc ? 4 * nc : lwork); z.resize (dim_vector (lwork, 1)); - float *pz = z.fortran_vec (); + float *pz = z.rwdata (); info = 0; tmp_info = 0; @@ -611,7 +611,7 @@ // Now calculate the condition number for non-singular matrix. char job = '1'; Array<F77_INT> iz (dim_vector (nc, 1)); - F77_INT *piz = iz.fortran_vec (); + F77_INT *piz = iz.rwdata (); F77_XFCN (sgecon, SGECON, (F77_CONST_CHAR_ARG2 (&job, 1), nc, tmp_data, nr, anorm, rcon, pz, piz, sgecon_info @@ -758,7 +758,7 @@ } const float *in (data ()); - FloatComplex *out (retval.fortran_vec ()); + FloatComplex *out (retval.rwdata ()); octave::fftw::fft (in, out, npts, nsamples); @@ -787,8 +787,8 @@ } FloatComplexMatrix tmp (*this); - FloatComplex *in (tmp.fortran_vec ()); - FloatComplex *out (retval.fortran_vec ()); + FloatComplex *in (tmp.rwdata ()); + FloatComplex *out (retval.rwdata ()); octave::fftw::ifft (in, out, npts, nsamples); @@ -802,7 +802,7 @@ const float *in = data (); FloatComplexMatrix retval (rows (), cols ()); - octave::fftw::fftNd (in, retval.fortran_vec (), 2, dv); + octave::fftw::fftNd (in, retval.rwdata (), 2, dv); return retval; } @@ -813,7 +813,7 @@ dim_vector dv (rows (), cols ()); FloatComplexMatrix retval (*this); - FloatComplex *out (retval.fortran_vec ()); + FloatComplex *out (retval.rwdata ()); octave::fftw::ifftNd (out, out, 2, dv); @@ -918,7 +918,7 @@ else if (typ == MatrixType::Hermitian) { FloatMatrix atmp = *this; - float *tmp_data = atmp.fortran_vec (); + float *tmp_data = atmp.rwdata (); // Calculate the norm of the matrix for later use when determining rcon. float anorm; @@ -945,9 +945,9 @@ if (calc_cond) { Array<float> z (dim_vector (3 * nc, 1)); - float *pz = z.fortran_vec (); + float *pz = z.rwdata (); Array<F77_INT> iz (dim_vector (nc, 1)); - F77_INT *piz = iz.fortran_vec (); + F77_INT *piz = iz.rwdata (); F77_XFCN (spocon, SPOCON, (F77_CONST_CHAR_ARG2 (&job, 1), nr, tmp_data, nr, anorm, @@ -972,10 +972,10 @@ if (typ == MatrixType::Full) { Array<F77_INT> ipvt (dim_vector (nr, 1)); - F77_INT *pipvt = ipvt.fortran_vec (); + F77_INT *pipvt = ipvt.rwdata (); FloatMatrix atmp = *this; - float *tmp_data = atmp.fortran_vec (); + float *tmp_data = atmp.rwdata (); info = 0; F77_INT tmp_info = 0; @@ -1003,9 +1003,9 @@ // Now calc the condition number for non-singular matrix. char job = '1'; Array<float> z (dim_vector (4 * nc, 1)); - float *pz = z.fortran_vec (); + float *pz = z.rwdata (); Array<F77_INT> iz (dim_vector (nc, 1)); - F77_INT *piz = iz.fortran_vec (); + F77_INT *piz = iz.rwdata (); F77_XFCN (sgecon, SGECON, (F77_CONST_CHAR_ARG2 (&job, 1), nc, tmp_data, nr, anorm, @@ -1070,9 +1070,9 @@ char dia = 'N'; Array<float> z (dim_vector (3 * nc, 1)); - float *pz = z.fortran_vec (); + float *pz = z.rwdata (); Array<F77_INT> iz (dim_vector (nc, 1)); - F77_INT *piz = iz.fortran_vec (); + F77_INT *piz = iz.rwdata (); F77_XFCN (strcon, STRCON, (F77_CONST_CHAR_ARG2 (&norm, 1), F77_CONST_CHAR_ARG2 (&uplo, 1), @@ -1098,9 +1098,9 @@ char dia = 'N'; Array<float> z (dim_vector (3 * nc, 1)); - float *pz = z.fortran_vec (); + float *pz = z.rwdata (); Array<F77_INT> iz (dim_vector (nc, 1)); - F77_INT *piz = iz.fortran_vec (); + F77_INT *piz = iz.rwdata (); F77_XFCN (strcon, STRCON, (F77_CONST_CHAR_ARG2 (&norm, 1), F77_CONST_CHAR_ARG2 (&uplo, 1), @@ -1127,7 +1127,7 @@ char job = 'L'; FloatMatrix atmp = *this; - float *tmp_data = atmp.fortran_vec (); + float *tmp_data = atmp.rwdata (); anorm = norm1 (atmp); @@ -1144,9 +1144,9 @@ else { Array<float> z (dim_vector (3 * nc, 1)); - float *pz = z.fortran_vec (); + float *pz = z.rwdata (); Array<F77_INT> iz (dim_vector (nc, 1)); - F77_INT *piz = iz.fortran_vec (); + F77_INT *piz = iz.rwdata (); F77_XFCN (spocon, SPOCON, (F77_CONST_CHAR_ARG2 (&job, 1), nr, tmp_data, nr, anorm, @@ -1163,18 +1163,18 @@ F77_INT info = 0; FloatMatrix atmp = *this; - float *tmp_data = atmp.fortran_vec (); + float *tmp_data = atmp.rwdata (); Array<F77_INT> ipvt (dim_vector (nr, 1)); - F77_INT *pipvt = ipvt.fortran_vec (); + F77_INT *pipvt = ipvt.rwdata (); if (anorm < 0.0) anorm = norm1 (atmp); Array<float> z (dim_vector (4 * nc, 1)); - float *pz = z.fortran_vec (); + float *pz = z.rwdata (); Array<F77_INT> iz (dim_vector (nc, 1)); - F77_INT *piz = iz.fortran_vec (); + F77_INT *piz = iz.rwdata (); F77_XFCN (sgetrf, SGETRF, (nr, nr, tmp_data, nr, pipvt, info)); @@ -1240,7 +1240,7 @@ const float *tmp_data = data (); retval = b; - float *result = retval.fortran_vec (); + float *result = retval.rwdata (); char uplo = 'U'; char trans = get_blas_char (transt); @@ -1266,9 +1266,9 @@ dia = 'N'; Array<float> z (dim_vector (3 * nc, 1)); - float *pz = z.fortran_vec (); + float *pz = z.rwdata (); Array<F77_INT> iz (dim_vector (nc, 1)); - F77_INT *piz = iz.fortran_vec (); + F77_INT *piz = iz.rwdata (); F77_XFCN (strcon, STRCON, (F77_CONST_CHAR_ARG2 (&norm, 1), F77_CONST_CHAR_ARG2 (&uplo, 1), @@ -1343,7 +1343,7 @@ const float *tmp_data = data (); retval = b; - float *result = retval.fortran_vec (); + float *result = retval.rwdata (); char uplo = 'L'; char trans = get_blas_char (transt); @@ -1369,9 +1369,9 @@ dia = 'N'; Array<float> z (dim_vector (3 * nc, 1)); - float *pz = z.fortran_vec (); + float *pz = z.rwdata (); Array<F77_INT> iz (dim_vector (nc, 1)); - F77_INT *piz = iz.fortran_vec (); + F77_INT *piz = iz.rwdata (); F77_XFCN (strcon, STRCON, (F77_CONST_CHAR_ARG2 (&norm, 1), F77_CONST_CHAR_ARG2 (&uplo, 1), @@ -1441,7 +1441,7 @@ char job = 'L'; FloatMatrix atmp = *this; - float *tmp_data = atmp.fortran_vec (); + float *tmp_data = atmp.rwdata (); // The norm of the matrix for later use when determining rcon. if (calc_cond) @@ -1469,9 +1469,9 @@ if (calc_cond) { Array<float> z (dim_vector (3 * nc, 1)); - float *pz = z.fortran_vec (); + float *pz = z.rwdata (); Array<F77_INT> iz (dim_vector (nc, 1)); - F77_INT *piz = iz.fortran_vec (); + F77_INT *piz = iz.rwdata (); F77_XFCN (spocon, SPOCON, (F77_CONST_CHAR_ARG2 (&job, 1), nr, tmp_data, nr, anorm, @@ -1499,7 +1499,7 @@ if (info == 0) { retval = b; - float *result = retval.fortran_vec (); + float *result = retval.rwdata (); F77_XFCN (spotrs, SPOTRS, (F77_CONST_CHAR_ARG2 (&job, 1), nr, b_nc, tmp_data, nr, @@ -1521,18 +1521,18 @@ info = 0; Array<F77_INT> ipvt (dim_vector (nr, 1)); - F77_INT *pipvt = ipvt.fortran_vec (); + F77_INT *pipvt = ipvt.rwdata (); FloatMatrix atmp = *this; - float *tmp_data = atmp.fortran_vec (); + float *tmp_data = atmp.rwdata (); if (calc_cond && anorm < 0.0) anorm = norm1 (atmp); Array<float> z (dim_vector (4 * nc, 1)); - float *pz = z.fortran_vec (); + float *pz = z.rwdata (); Array<F77_INT> iz (dim_vector (nc, 1)); - F77_INT *piz = iz.fortran_vec (); + F77_INT *piz = iz.rwdata (); F77_INT tmp_info = 0; @@ -1583,7 +1583,7 @@ if (info == 0) { retval = b; - float *result = retval.fortran_vec (); + float *result = retval.rwdata (); char job = 'N'; F77_XFCN (sgetrs, SGETRS, (F77_CONST_CHAR_ARG2 (&job, 1), @@ -1694,7 +1694,7 @@ octave_idx_type nel = m*n; FloatMatrix retval (m, 2*n); const FloatComplex *cmd = cm.data (); - float *rd = retval.fortran_vec (); + float *rd = retval.rwdata (); for (octave_idx_type i = 0; i < nel; i++) { rd[i] = std::real (cmd[i]); @@ -1711,7 +1711,7 @@ octave_idx_type nel = m*n; FloatComplexMatrix retval (m, n); const float *smd = sm.data (); - FloatComplex *rd = retval.fortran_vec (); + FloatComplex *rd = retval.rwdata (); for (octave_idx_type i = 0; i < nel; i++) rd[i] = FloatComplex (smd[i], smd[nel+i]); return retval; @@ -1985,11 +1985,11 @@ retval = b; FloatMatrix atmp = *this; - float *tmp_data = atmp.fortran_vec (); - - float *pretval = retval.fortran_vec (); + float *tmp_data = atmp.rwdata (); + + float *pretval = retval.rwdata (); Array<float> s (dim_vector (minmn, 1)); - float *ps = s.fortran_vec (); + float *ps = s.rwdata (); // Ask DGELSD what the dimension of WORK should be. F77_INT lwork = -1; @@ -2024,13 +2024,13 @@ if (liwork < 1) liwork = 1; Array<F77_INT> iwork (dim_vector (liwork, 1)); - F77_INT *piwork = iwork.fortran_vec (); + F77_INT *piwork = iwork.rwdata (); F77_INT tmp_info = 0; F77_INT tmp_rank = 0; F77_XFCN (sgelsd, SGELSD, (m, n, nrhs, tmp_data, m, pretval, maxmn, - ps, rcon, tmp_rank, work.fortran_vec (), + ps, rcon, tmp_rank, work.rwdata (), lwork, piwork, tmp_info)); info = tmp_info; @@ -2093,7 +2093,7 @@ { F77_XFCN (sgelsd, SGELSD, (m, n, nrhs, tmp_data, m, pretval, maxmn, ps, rcon, tmp_rank, - work.fortran_vec (), lwork, + work.rwdata (), lwork, piwork, tmp_info)); info = tmp_info; @@ -2206,11 +2206,11 @@ retval = b; FloatMatrix atmp = *this; - float *tmp_data = atmp.fortran_vec (); - - float *pretval = retval.fortran_vec (); + float *tmp_data = atmp.rwdata (); + + float *pretval = retval.rwdata (); Array<float> s (dim_vector (minmn, 1)); - float *ps = s.fortran_vec (); + float *ps = s.rwdata (); // Ask DGELSD what the dimension of WORK should be. F77_INT lwork = -1; @@ -2238,13 +2238,13 @@ if (liwork < 1) liwork = 1; Array<F77_INT> iwork (dim_vector (liwork, 1)); - F77_INT *piwork = iwork.fortran_vec (); + F77_INT *piwork = iwork.rwdata (); F77_INT tmp_info = 0; F77_INT tmp_rank = 0; F77_XFCN (sgelsd, SGELSD, (m, n, nrhs, tmp_data, m, pretval, maxmn, - ps, rcon, tmp_rank, work.fortran_vec (), + ps, rcon, tmp_rank, work.rwdata (), lwork, piwork, tmp_info)); info = tmp_info; @@ -2255,7 +2255,7 @@ F77_XFCN (sgelsd, SGELSD, (m, n, nrhs, tmp_data, m, pretval, maxmn, ps, rcon, tmp_rank, - work.fortran_vec (), lwork, + work.rwdata (), lwork, piwork, tmp_info)); info = tmp_info; @@ -2362,7 +2362,7 @@ F77_INT a_len = octave::to_f77_int (a.numel ()); retval = FloatMatrix (len, a_len); - float *c = retval.fortran_vec (); + float *c = retval.rwdata (); F77_XFCN (sgemm, SGEMM, (F77_CONST_CHAR_ARG2 ("N", 1), F77_CONST_CHAR_ARG2 ("N", 1), @@ -2741,9 +2741,9 @@ float scale; F77_INT info; - float *pa = sch_a.fortran_vec (); - float *pb = sch_b.fortran_vec (); - float *px = cx.fortran_vec (); + float *pa = sch_a.rwdata (); + float *pb = sch_b.rwdata (); + float *px = cx.rwdata (); F77_XFCN (strsyl, STRSYL, (F77_CONST_CHAR_ARG2 ("N", 1), F77_CONST_CHAR_ARG2 ("N", 1), @@ -2813,7 +2813,7 @@ F77_INT lda = octave::to_f77_int (a.rows ()); retval = FloatMatrix (a_nr, b_nc); - float *c = retval.fortran_vec (); + float *c = retval.rwdata (); const char ctra = get_blas_trans_arg (tra); F77_XFCN (ssyrk, SSYRK, (F77_CONST_CHAR_ARG2 ("U", 1), @@ -2835,7 +2835,7 @@ F77_INT tdb = octave::to_f77_int (b.cols ()); retval = FloatMatrix (a_nr, b_nc); - float *c = retval.fortran_vec (); + float *c = retval.rwdata (); if (b_nc == 1) {
--- a/liboctave/array/fNDArray.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/array/fNDArray.cc Wed Dec 27 16:55:14 2023 -0800 @@ -75,7 +75,7 @@ const float *in (data ()); FloatComplexNDArray retval (dv); - FloatComplex *out (retval.fortran_vec ()); + FloatComplex *out (retval.rwdata ()); // Need to be careful here about the distance between fft's for (octave_idx_type k = 0; k < nloop; k++) @@ -105,7 +105,7 @@ octave_idx_type dist = (stride == 1 ? n : 1); FloatComplexNDArray retval (*this); - FloatComplex *out (retval.fortran_vec ()); + FloatComplex *out (retval.rwdata ()); // Need to be careful here about the distance between fft's for (octave_idx_type k = 0; k < nloop; k++) @@ -125,7 +125,7 @@ dim_vector dv2 (dv(0), dv(1)); const float *in = data (); FloatComplexNDArray retval (dv); - FloatComplex *out = retval.fortran_vec (); + FloatComplex *out = retval.rwdata (); octave_idx_type howmany = numel () / dv(0) / dv(1); octave_idx_type dist = dv(0) * dv(1); @@ -144,7 +144,7 @@ dim_vector dv2 (dv(0), dv(1)); FloatComplexNDArray retval (*this); - FloatComplex *out = retval.fortran_vec (); + FloatComplex *out = retval.rwdata (); octave_idx_type howmany = numel () / dv(0) / dv(1); octave_idx_type dist = dv(0) * dv(1); @@ -162,7 +162,7 @@ const float *in (data ()); FloatComplexNDArray retval (dv); - FloatComplex *out (retval.fortran_vec ()); + FloatComplex *out (retval.rwdata ()); octave::fftw::fftNd (in, out, rank, dv); @@ -176,9 +176,9 @@ int rank = dv.ndims (); FloatComplexNDArray tmp (*this); - FloatComplex *in (tmp.fortran_vec ()); + FloatComplex *in (tmp.rwdata ()); FloatComplexNDArray retval (dv); - FloatComplex *out (retval.fortran_vec ()); + FloatComplex *out (retval.rwdata ()); octave::fftw::ifftNd (in, out, rank, dv);
--- a/liboctave/array/fRowVector.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/array/fRowVector.cc Wed Dec 27 16:55:14 2023 -0800 @@ -190,7 +190,7 @@ F77_INT ld = a_nr; retval.resize (a_nc); - float *y = retval.fortran_vec (); + float *y = retval.rwdata (); F77_XFCN (sgemv, SGEMV, (F77_CONST_CHAR_ARG2 ("T", 1), a_nr, a_nc, 1.0, a.data (),
--- a/liboctave/array/idx-vector.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/array/idx-vector.cc Wed Dec 27 16:55:14 2023 -0800 @@ -536,7 +536,7 @@ { // Use standard sort via octave_sort. idx.clear (m_orig_dims); - octave_idx_type *idx_data = idx.fortran_vec (); + octave_idx_type *idx_data = idx.rwdata (); for (octave_idx_type i = 0; i < m_len; i++) idx_data[i] = i; @@ -557,7 +557,7 @@ cnt[m_data[i]]++; idx.clear (m_orig_dims); - octave_idx_type *idx_data = idx.fortran_vec (); + octave_idx_type *idx_data = idx.rwdata (); octave_idx_type *new_data = new octave_idx_type [m_len]; new_rep->m_data = new_data; @@ -617,12 +617,12 @@ if (m_data) { - std::memcpy (retval.fortran_vec (), m_data, m_len* sizeof (octave_idx_type)); + std::memcpy (retval.rwdata (), m_data, m_len* sizeof (octave_idx_type)); // Delete the old copy and share the m_data instead to save memory. delete [] m_data; } - m_data = retval.fortran_vec (); + m_data = retval.rwdata (); m_aowner = new Array<octave_idx_type> (retval); return retval; @@ -1108,7 +1108,7 @@ octave_idx_type m_ext = r->extent (0); Array<bool> mask (dim_vector (n, 1)); const bool *m_data = r->get_data (); - bool *ndata = mask.fortran_vec (); + bool *ndata = mask.rwdata (); for (octave_idx_type i = 0; i < m_ext; i++) ndata[i] = ! m_data[i]; std::fill_n (ndata + m_ext, n - m_ext, true); @@ -1117,7 +1117,7 @@ else { Array<bool> mask (dim_vector (n, 1), true); - fill (false, length (n), mask.fortran_vec ()); + fill (false, length (n), mask.rwdata ()); retval = idx_vector (mask); }
--- a/liboctave/numeric/CollocWt.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/numeric/CollocWt.cc Wed Dec 27 16:55:14 2023 -0800 @@ -426,23 +426,23 @@ return; Array<double> dif1 (dim_vector (nt, 1)); - double *pdif1 = dif1.fortran_vec (); + double *pdif1 = dif1.rwdata (); Array<double> dif2 (dim_vector (nt, 1)); - double *pdif2 = dif2.fortran_vec (); + double *pdif2 = dif2.rwdata (); Array<double> dif3 (dim_vector (nt, 1)); - double *pdif3 = dif3.fortran_vec (); + double *pdif3 = dif3.rwdata (); Array<double> vect (dim_vector (nt, 1)); - double *pvect = vect.fortran_vec (); + double *pvect = vect.rwdata (); m_r.resize (nt, 1); m_q.resize (nt, 1); m_A.resize (nt, nt); m_B.resize (nt, nt); - double *pr = m_r.fortran_vec (); + double *pr = m_r.rwdata (); // Compute roots. @@ -479,7 +479,7 @@ // Gaussian quadrature weights. id = 3; - double *pq = m_q.fortran_vec (); + double *pq = m_q.rwdata (); dfopr (m_n, m_inc_left, m_inc_right, id, id, pdif1, pdif2, pdif3, pr, pq); m_initialized = 1;
--- a/liboctave/numeric/DASPK.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/numeric/DASPK.cc Wed Dec 27 16:55:14 2023 -0800 @@ -455,16 +455,16 @@ m_restart = false; } - double *px = m_x.fortran_vec (); - double *pxdot = m_xdot.fortran_vec (); + double *px = m_x.rwdata (); + double *pxdot = m_xdot.rwdata (); - F77_INT *pinfo = m_info.fortran_vec (); + F77_INT *pinfo = m_info.rwdata (); - double *prel_tol = m_rel_tol.fortran_vec (); - double *pabs_tol = m_abs_tol.fortran_vec (); + double *prel_tol = m_rel_tol.rwdata (); + double *pabs_tol = m_abs_tol.rwdata (); - double *prwork = m_rwork.fortran_vec (); - F77_INT *piwork = m_iwork.fortran_vec (); + double *prwork = m_rwork.rwdata (); + F77_INT *piwork = m_iwork.rwdata (); double *dummy = nullptr; F77_INT *idummy = nullptr;
--- a/liboctave/numeric/DASRT.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/numeric/DASRT.cc Wed Dec 27 16:55:14 2023 -0800 @@ -297,18 +297,18 @@ DASRT_options::m_reset = false; } - double *px = m_x.fortran_vec (); - double *pxdot = m_xdot.fortran_vec (); + double *px = m_x.rwdata (); + double *pxdot = m_xdot.rwdata (); - F77_INT *pinfo = m_info.fortran_vec (); + F77_INT *pinfo = m_info.rwdata (); - double *prel_tol = m_rel_tol.fortran_vec (); - double *pabs_tol = m_abs_tol.fortran_vec (); + double *prel_tol = m_rel_tol.rwdata (); + double *pabs_tol = m_abs_tol.rwdata (); - double *prwork = m_rwork.fortran_vec (); - F77_INT *piwork = m_iwork.fortran_vec (); + double *prwork = m_rwork.rwdata (); + F77_INT *piwork = m_iwork.rwdata (); - F77_INT *pjroot = m_jroot.fortran_vec (); + F77_INT *pjroot = m_jroot.rwdata (); double *dummy = nullptr; F77_INT *idummy = nullptr;
--- a/liboctave/numeric/DASSL.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/numeric/DASSL.cc Wed Dec 27 16:55:14 2023 -0800 @@ -272,16 +272,16 @@ DASSL_options::m_reset = false; } - double *px = m_x.fortran_vec (); - double *pxdot = m_xdot.fortran_vec (); + double *px = m_x.rwdata (); + double *pxdot = m_xdot.rwdata (); - F77_INT *pinfo = m_info.fortran_vec (); + F77_INT *pinfo = m_info.rwdata (); - double *prel_tol = m_rel_tol.fortran_vec (); - double *pabs_tol = m_abs_tol.fortran_vec (); + double *prel_tol = m_rel_tol.rwdata (); + double *pabs_tol = m_abs_tol.rwdata (); - double *prwork = m_rwork.fortran_vec (); - F77_INT *piwork = m_iwork.fortran_vec (); + double *prwork = m_rwork.rwdata (); + F77_INT *piwork = m_iwork.rwdata (); double *dummy = nullptr; F77_INT *idummy = nullptr;
--- a/liboctave/numeric/EIG.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/numeric/EIG.cc Wed Dec 27 16:55:14 2023 -0800 @@ -53,21 +53,21 @@ F77_INT info = 0; Matrix atmp = a; - double *tmp_data = atmp.fortran_vec (); + double *tmp_data = atmp.rwdata (); Array<double> wr (dim_vector (n, 1)); - double *pwr = wr.fortran_vec (); + double *pwr = wr.rwdata (); Array<double> wi (dim_vector (n, 1)); - double *pwi = wi.fortran_vec (); + double *pwi = wi.rwdata (); F77_INT tnvr = (calc_rev ? n : 0); Matrix vr (tnvr, tnvr); - double *pvr = vr.fortran_vec (); + double *pvr = vr.rwdata (); F77_INT tnvl = (calc_lev ? n : 0); Matrix vl (tnvl, tnvl); - double *pvl = vl.fortran_vec (); + double *pvl = vl.rwdata (); F77_INT lwork = -1; double dummy_work; @@ -76,15 +76,15 @@ F77_INT ihi; Array<double> scale (dim_vector (n, 1)); - double *pscale = scale.fortran_vec (); + double *pscale = scale.rwdata (); double abnrm; Array<double> rconde (dim_vector (n, 1)); - double *prconde = rconde.fortran_vec (); + double *prconde = rconde.rwdata (); Array<double> rcondv (dim_vector (n, 1)); - double *prcondv = rcondv.fortran_vec (); + double *prcondv = rcondv.rwdata (); F77_INT dummy_iwork; @@ -106,7 +106,7 @@ lwork = static_cast<F77_INT> (dummy_work); Array<double> work (dim_vector (lwork, 1)); - double *pwork = work.fortran_vec (); + double *pwork = work.rwdata (); F77_XFCN (dgeevx, DGEEVX, (F77_CONST_CHAR_ARG2 (balance ? "B" : "N", 1), F77_CONST_CHAR_ARG2 (calc_lev ? "V" : "N", 1), @@ -186,10 +186,10 @@ F77_INT info = 0; Matrix atmp = a; - double *tmp_data = atmp.fortran_vec (); + double *tmp_data = atmp.rwdata (); ColumnVector wr (n); - double *pwr = wr.fortran_vec (); + double *pwr = wr.rwdata (); F77_INT lwork = -1; double dummy_work; @@ -205,7 +205,7 @@ lwork = static_cast<F77_INT> (dummy_work); Array<double> work (dim_vector (lwork, 1)); - double *pwork = work.fortran_vec (); + double *pwork = work.rwdata (); F77_XFCN (dsyev, DSYEV, (F77_CONST_CHAR_ARG2 (calc_rev ? "V" : "N", 1), F77_CONST_CHAR_ARG2 ("U", 1), @@ -245,39 +245,39 @@ F77_INT info = 0; ComplexMatrix atmp = a; - Complex *tmp_data = atmp.fortran_vec (); + Complex *tmp_data = atmp.rwdata (); ComplexColumnVector wr (n); - Complex *pw = wr.fortran_vec (); + Complex *pw = wr.rwdata (); F77_INT nvr = (calc_rev ? n : 0); ComplexMatrix vrtmp (nvr, nvr); - Complex *pvr = vrtmp.fortran_vec (); + Complex *pvr = vrtmp.rwdata (); F77_INT nvl = (calc_lev ? n : 0); ComplexMatrix vltmp (nvl, nvl); - Complex *pvl = vltmp.fortran_vec (); + Complex *pvl = vltmp.rwdata (); F77_INT lwork = -1; Complex dummy_work; F77_INT lrwork = 2*n; Array<double> rwork (dim_vector (lrwork, 1)); - double *prwork = rwork.fortran_vec (); + double *prwork = rwork.rwdata (); F77_INT ilo; F77_INT ihi; Array<double> scale (dim_vector (n, 1)); - double *pscale = scale.fortran_vec (); + double *pscale = scale.rwdata (); double abnrm; Array<double> rconde (dim_vector (n, 1)); - double *prconde = rconde.fortran_vec (); + double *prconde = rconde.rwdata (); Array<double> rcondv (dim_vector (n, 1)); - double *prcondv = rcondv.fortran_vec (); + double *prcondv = rcondv.rwdata (); F77_XFCN (zgeevx, ZGEEVX, (F77_CONST_CHAR_ARG2 (balance ? "B" : "N", 1), F77_CONST_CHAR_ARG2 (calc_lev ? "V" : "N", 1), @@ -299,7 +299,7 @@ lwork = static_cast<F77_INT> (dummy_work.real ()); Array<Complex> work (dim_vector (lwork, 1)); - Complex *pwork = work.fortran_vec (); + Complex *pwork = work.rwdata (); F77_XFCN (zgeevx, ZGEEVX, (F77_CONST_CHAR_ARG2 (balance ? "B" : "N", 1), F77_CONST_CHAR_ARG2 (calc_lev ? "V" : "N", 1), @@ -340,17 +340,17 @@ F77_INT info = 0; ComplexMatrix atmp = a; - Complex *tmp_data = atmp.fortran_vec (); + Complex *tmp_data = atmp.rwdata (); ColumnVector wr (n); - double *pwr = wr.fortran_vec (); + double *pwr = wr.rwdata (); F77_INT lwork = -1; Complex dummy_work; F77_INT lrwork = 3*n; Array<double> rwork (dim_vector (lrwork, 1)); - double *prwork = rwork.fortran_vec (); + double *prwork = rwork.rwdata (); F77_XFCN (zheev, ZHEEV, (F77_CONST_CHAR_ARG2 (calc_rev ? "V" : "N", 1), F77_CONST_CHAR_ARG2 ("U", 1), @@ -365,7 +365,7 @@ lwork = static_cast<F77_INT> (dummy_work.real ()); Array<Complex> work (dim_vector (lwork, 1)); - Complex *pwork = work.fortran_vec (); + Complex *pwork = work.rwdata (); F77_XFCN (zheev, ZHEEV, (F77_CONST_CHAR_ARG2 (calc_rev ? "V" : "N", 1), F77_CONST_CHAR_ARG2 ("U", 1), @@ -410,7 +410,7 @@ F77_INT info = 0; Matrix tmp = b; - double *tmp_data = tmp.fortran_vec (); + double *tmp_data = tmp.rwdata (); if (! force_qz) { @@ -424,27 +424,27 @@ } Matrix atmp = a; - double *atmp_data = atmp.fortran_vec (); + double *atmp_data = atmp.rwdata (); Matrix btmp = b; - double *btmp_data = btmp.fortran_vec (); + double *btmp_data = btmp.rwdata (); Array<double> ar (dim_vector (n, 1)); - double *par = ar.fortran_vec (); + double *par = ar.rwdata (); Array<double> ai (dim_vector (n, 1)); - double *pai = ai.fortran_vec (); + double *pai = ai.rwdata (); Array<double> beta (dim_vector (n, 1)); - double *pbeta = beta.fortran_vec (); + double *pbeta = beta.rwdata (); F77_INT tnvr = (calc_rev ? n : 0); Matrix vr (tnvr, tnvr); - double *pvr = vr.fortran_vec (); + double *pvr = vr.rwdata (); F77_INT tnvl = (calc_lev ? n : 0); Matrix vl (tnvl, tnvl); - double *pvl = vl.fortran_vec (); + double *pvl = vl.rwdata (); F77_INT lwork = -1; double dummy_work; @@ -463,7 +463,7 @@ lwork = static_cast<F77_INT> (dummy_work); Array<double> work (dim_vector (lwork, 1)); - double *pwork = work.fortran_vec (); + double *pwork = work.rwdata (); F77_XFCN (dggev, DGGEV, (F77_CONST_CHAR_ARG2 (calc_lev ? "V" : "N", 1), F77_CONST_CHAR_ARG2 (calc_rev ? "V" : "N", 1), @@ -547,13 +547,13 @@ F77_INT info = 0; Matrix atmp = a; - double *atmp_data = atmp.fortran_vec (); + double *atmp_data = atmp.rwdata (); Matrix btmp = b; - double *btmp_data = btmp.fortran_vec (); + double *btmp_data = btmp.rwdata (); ColumnVector wr (n); - double *pwr = wr.fortran_vec (); + double *pwr = wr.rwdata (); F77_INT lwork = -1; double dummy_work; @@ -571,7 +571,7 @@ lwork = static_cast<F77_INT> (dummy_work); Array<double> work (dim_vector (lwork, 1)); - double *pwork = work.fortran_vec (); + double *pwork = work.rwdata (); F77_XFCN (dsygv, DSYGV, (1, F77_CONST_CHAR_ARG2 (calc_rev ? "V" : "N", 1), F77_CONST_CHAR_ARG2 ("U", 1), @@ -617,7 +617,7 @@ F77_INT info = 0; ComplexMatrix tmp = b; - Complex *tmp_data = tmp.fortran_vec (); + Complex *tmp_data = tmp.rwdata (); if (! force_qz) { @@ -631,31 +631,31 @@ } ComplexMatrix atmp = a; - Complex *atmp_data = atmp.fortran_vec (); + Complex *atmp_data = atmp.rwdata (); ComplexMatrix btmp = b; - Complex *btmp_data = btmp.fortran_vec (); + Complex *btmp_data = btmp.rwdata (); ComplexColumnVector alpha (n); - Complex *palpha = alpha.fortran_vec (); + Complex *palpha = alpha.rwdata (); ComplexColumnVector beta (n); - Complex *pbeta = beta.fortran_vec (); + Complex *pbeta = beta.rwdata (); F77_INT nvr = (calc_rev ? n : 0); ComplexMatrix vrtmp (nvr, nvr); - Complex *pvr = vrtmp.fortran_vec (); + Complex *pvr = vrtmp.rwdata (); F77_INT nvl = (calc_lev ? n : 0); ComplexMatrix vltmp (nvl, nvl); - Complex *pvl = vltmp.fortran_vec (); + Complex *pvl = vltmp.rwdata (); F77_INT lwork = -1; Complex dummy_work; F77_INT lrwork = 8*n; Array<double> rwork (dim_vector (lrwork, 1)); - double *prwork = rwork.fortran_vec (); + double *prwork = rwork.rwdata (); F77_XFCN (zggev, ZGGEV, (F77_CONST_CHAR_ARG2 (calc_lev ? "V" : "N", 1), F77_CONST_CHAR_ARG2 (calc_rev ? "V" : "N", 1), @@ -675,7 +675,7 @@ lwork = static_cast<F77_INT> (dummy_work.real ()); Array<Complex> work (dim_vector (lwork, 1)); - Complex *pwork = work.fortran_vec (); + Complex *pwork = work.rwdata (); F77_XFCN (zggev, ZGGEV, (F77_CONST_CHAR_ARG2 (calc_lev ? "V" : "N", 1), F77_CONST_CHAR_ARG2 (calc_rev ? "V" : "N", 1), @@ -725,20 +725,20 @@ F77_INT info = 0; ComplexMatrix atmp = a; - Complex *atmp_data = atmp.fortran_vec (); + Complex *atmp_data = atmp.rwdata (); ComplexMatrix btmp = b; - Complex *btmp_data = btmp.fortran_vec (); + Complex *btmp_data = btmp.rwdata (); ColumnVector wr (n); - double *pwr = wr.fortran_vec (); + double *pwr = wr.rwdata (); F77_INT lwork = -1; Complex dummy_work; F77_INT lrwork = 3*n; Array<double> rwork (dim_vector (lrwork, 1)); - double *prwork = rwork.fortran_vec (); + double *prwork = rwork.rwdata (); F77_XFCN (zhegv, ZHEGV, (1, F77_CONST_CHAR_ARG2 (calc_rev ? "V" : "N", 1), F77_CONST_CHAR_ARG2 ("U", 1), @@ -754,7 +754,7 @@ lwork = static_cast<F77_INT> (dummy_work.real ()); Array<Complex> work (dim_vector (lwork, 1)); - Complex *pwork = work.fortran_vec (); + Complex *pwork = work.rwdata (); F77_XFCN (zhegv, ZHEGV, (1, F77_CONST_CHAR_ARG2 (calc_rev ? "V" : "N", 1), F77_CONST_CHAR_ARG2 ("U", 1),
--- a/liboctave/numeric/LSODE.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/numeric/LSODE.cc Wed Dec 27 16:55:14 2023 -0800 @@ -301,12 +301,12 @@ LSODE_options::m_reset = false; } - double *px = m_x.fortran_vec (); + double *px = m_x.rwdata (); - double *pabs_tol = m_abs_tol.fortran_vec (); + double *pabs_tol = m_abs_tol.rwdata (); - F77_INT *piwork = m_iwork.fortran_vec (); - double *prwork = m_rwork.fortran_vec (); + F77_INT *piwork = m_iwork.rwdata (); + double *prwork = m_rwork.rwdata (); F77_INT tmp_istate = octave::to_f77_int (m_istate);
--- a/liboctave/numeric/Quad.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/numeric/Quad.cc Wed Dec 27 16:55:14 2023 -0800 @@ -97,16 +97,16 @@ double& abserr) { F77_INT npts = octave::to_f77_int (m_singularities.numel () + 2); - double *points = m_singularities.fortran_vec (); + double *points = m_singularities.rwdata (); double result = 0.0; F77_INT leniw = 183*npts - 122; Array<F77_INT> iwork (dim_vector (leniw, 1)); - F77_INT *piwork = iwork.fortran_vec (); + F77_INT *piwork = iwork.rwdata (); F77_INT lenw = 2*leniw - npts; Array<double> work (dim_vector (lenw, 1)); - double *pwork = work.fortran_vec (); + double *pwork = work.rwdata (); user_fcn = m_f; F77_INT last; @@ -147,11 +147,11 @@ F77_INT leniw = 128; Array<F77_INT> iwork (dim_vector (leniw, 1)); - F77_INT *piwork = iwork.fortran_vec (); + F77_INT *piwork = iwork.rwdata (); F77_INT lenw = 8*leniw; Array<double> work (dim_vector (lenw, 1)); - double *pwork = work.fortran_vec (); + double *pwork = work.rwdata (); user_fcn = m_f; F77_INT last; @@ -214,16 +214,16 @@ float& abserr) { F77_INT npts = octave::to_f77_int (m_singularities.numel () + 2); - float *points = m_singularities.fortran_vec (); + float *points = m_singularities.rwdata (); float result = 0.0; F77_INT leniw = 183*npts - 122; Array<F77_INT> iwork (dim_vector (leniw, 1)); - F77_INT *piwork = iwork.fortran_vec (); + F77_INT *piwork = iwork.rwdata (); F77_INT lenw = 2*leniw - npts; Array<float> work (dim_vector (lenw, 1)); - float *pwork = work.fortran_vec (); + float *pwork = work.rwdata (); float_user_fcn = m_ff; F77_INT last; @@ -264,11 +264,11 @@ F77_INT leniw = 128; Array<F77_INT> iwork (dim_vector (leniw, 1)); - F77_INT *piwork = iwork.fortran_vec (); + F77_INT *piwork = iwork.rwdata (); F77_INT lenw = 8*leniw; Array<float> work (dim_vector (lenw, 1)); - float *pwork = work.fortran_vec (); + float *pwork = work.rwdata (); float_user_fcn = m_ff; F77_INT last;
--- a/liboctave/numeric/aepbalance.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/numeric/aepbalance.cc Wed Dec 27 16:55:14 2023 -0800 @@ -64,8 +64,8 @@ F77_INT info, t_ilo, t_ihi; F77_XFCN (dgebal, DGEBAL, (F77_CONST_CHAR_ARG2 (&m_job, 1), n, - m_balanced_mat.fortran_vec (), n, - t_ilo, t_ihi, m_scale.fortran_vec (), info + m_balanced_mat.rwdata (), n, + t_ilo, t_ihi, m_scale.rwdata (), info F77_CHAR_ARG_LEN (1))); m_ilo = t_ilo; @@ -91,7 +91,7 @@ F77_XFCN (dgebak, DGEBAK, (F77_CONST_CHAR_ARG2 (&m_job, 1), F77_CONST_CHAR_ARG2 (&side, 1), n, t_ilo, t_ihi, m_scale.data (), n, - balancing_mat.fortran_vec (), n, info + balancing_mat.rwdata (), n, info F77_CHAR_ARG_LEN (1) F77_CHAR_ARG_LEN (1))); @@ -116,8 +116,8 @@ F77_INT info, t_ilo, t_ihi; F77_XFCN (sgebal, SGEBAL, (F77_CONST_CHAR_ARG2 (&m_job, 1), n, - m_balanced_mat.fortran_vec (), n, t_ilo, - t_ihi, m_scale.fortran_vec (), info + m_balanced_mat.rwdata (), n, t_ilo, + t_ihi, m_scale.rwdata (), info F77_CHAR_ARG_LEN (1))); m_ilo = t_ilo; @@ -143,7 +143,7 @@ F77_XFCN (sgebak, SGEBAK, (F77_CONST_CHAR_ARG2 (&m_job, 1), F77_CONST_CHAR_ARG2 (&side, 1), n, t_ilo, t_ihi, m_scale.data (), n, - balancing_mat.fortran_vec (), n, info + balancing_mat.rwdata (), n, info F77_CHAR_ARG_LEN (1) F77_CHAR_ARG_LEN (1))); @@ -169,8 +169,8 @@ F77_XFCN (zgebal, ZGEBAL, (F77_CONST_CHAR_ARG2 (&m_job, 1), n, - F77_DBLE_CMPLX_ARG (m_balanced_mat.fortran_vec ()), - n, t_ilo, t_ihi, m_scale.fortran_vec (), info + F77_DBLE_CMPLX_ARG (m_balanced_mat.rwdata ()), + n, t_ilo, t_ihi, m_scale.rwdata (), info F77_CHAR_ARG_LEN (1))); m_ilo = t_ilo; @@ -197,7 +197,7 @@ (F77_CONST_CHAR_ARG2 (&m_job, 1), F77_CONST_CHAR_ARG2 (&side, 1), n, t_ilo, t_ihi, m_scale.data (), n, - F77_DBLE_CMPLX_ARG (balancing_mat.fortran_vec ()), + F77_DBLE_CMPLX_ARG (balancing_mat.rwdata ()), n, info F77_CHAR_ARG_LEN (1) F77_CHAR_ARG_LEN (1))); @@ -223,8 +223,8 @@ F77_INT info, t_ilo, t_ihi; F77_XFCN (cgebal, CGEBAL, (F77_CONST_CHAR_ARG2 (&m_job, 1), n, - F77_CMPLX_ARG (m_balanced_mat.fortran_vec ()), - n, t_ilo, t_ihi, m_scale.fortran_vec (), info + F77_CMPLX_ARG (m_balanced_mat.rwdata ()), + n, t_ilo, t_ihi, m_scale.rwdata (), info F77_CHAR_ARG_LEN (1))); m_ilo = t_ilo; @@ -250,7 +250,7 @@ F77_XFCN (cgebak, CGEBAK, (F77_CONST_CHAR_ARG2 (&m_job, 1), F77_CONST_CHAR_ARG2 (&side, 1), n, t_ilo, t_ihi, m_scale.data (), n, - F77_CMPLX_ARG (balancing_mat.fortran_vec ()), + F77_CMPLX_ARG (balancing_mat.rwdata ()), n, info F77_CHAR_ARG_LEN (1) F77_CHAR_ARG_LEN (1)));
--- a/liboctave/numeric/bsxfun-defs.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/numeric/bsxfun-defs.cc Wed Dec 27 16:55:14 2023 -0800 @@ -68,7 +68,7 @@ const X *xvec = x.data (); const Y *yvec = y.data (); - R *rvec = retval.fortran_vec (); + R *rvec = retval.rwdata (); // Fold the common leading dimensions. octave_idx_type start, ldr = 1; @@ -149,7 +149,7 @@ dvx = dvx.redim (nd); const X *xvec = x.data (); - R *rvec = r.fortran_vec (); + R *rvec = r.rwdata (); // Fold the common leading dimensions. octave_idx_type start, ldr = 1;
--- a/liboctave/numeric/chol.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/numeric/chol.cc Wed Dec 27 16:55:14 2023 -0800 @@ -64,7 +64,7 @@ F77_INT info; Matrix tmp = r; - double *v = tmp.fortran_vec (); + double *v = tmp.rwdata (); if (is_upper) F77_XFCN (dpotri, DPOTRI, (F77_CONST_CHAR_ARG2 ("U", 1), n, @@ -112,7 +112,7 @@ F77_INT info; FloatMatrix tmp = r; - float *v = tmp.fortran_vec (); + float *v = tmp.rwdata (); if (is_upper) F77_XFCN (spotri, SPOTRI, (F77_CONST_CHAR_ARG2 ("U", 1), n, @@ -163,11 +163,11 @@ if (is_upper) F77_XFCN (zpotri, ZPOTRI, (F77_CONST_CHAR_ARG2 ("U", 1), n, - F77_DBLE_CMPLX_ARG (tmp.fortran_vec ()), n, info + F77_DBLE_CMPLX_ARG (tmp.rwdata ()), n, info F77_CHAR_ARG_LEN (1))); else F77_XFCN (zpotri, ZPOTRI, (F77_CONST_CHAR_ARG2 ("L", 1), n, - F77_DBLE_CMPLX_ARG (tmp.fortran_vec ()), n, info + F77_DBLE_CMPLX_ARG (tmp.rwdata ()), n, info F77_CHAR_ARG_LEN (1))); // If someone thinks of a more graceful way of doing this (or @@ -208,11 +208,11 @@ if (is_upper) F77_XFCN (cpotri, CPOTRI, (F77_CONST_CHAR_ARG2 ("U", 1), n, - F77_CMPLX_ARG (tmp.fortran_vec ()), n, info + F77_CMPLX_ARG (tmp.rwdata ()), n, info F77_CHAR_ARG_LEN (1))); else F77_XFCN (cpotri, CPOTRI, (F77_CONST_CHAR_ARG2 ("L", 1), n, - F77_CMPLX_ARG (tmp.fortran_vec ()), n, info + F77_CMPLX_ARG (tmp.rwdata ()), n, info F77_CHAR_ARG_LEN (1))); // If someone thinks of a more graceful way of doing this (or @@ -437,7 +437,7 @@ for (octave_idx_type i = j; i < n; i++) m_chol_mat.xelem (i, j) = a(i, j); } - double *h = m_chol_mat.fortran_vec (); + double *h = m_chol_mat.rwdata (); // Calculate the norm of the matrix, for later use. double anorm = 0; @@ -460,7 +460,7 @@ // Now calculate the condition number for non-singular matrix. Array<double> z (dim_vector (3*n, 1)); - double *pz = z.fortran_vec (); + double *pz = z.rwdata (); OCTAVE_LOCAL_BUFFER (F77_INT, iz, n); if (m_is_upper) F77_XFCN (dpocon, DPOCON, (F77_CONST_CHAR_ARG2 ("U", 1), n, h, @@ -493,8 +493,8 @@ OCTAVE_LOCAL_BUFFER (double, w, n); - F77_XFCN (dch1up, DCH1UP, (n, m_chol_mat.fortran_vec (), n, - utmp.fortran_vec (), w)); + F77_XFCN (dch1up, DCH1UP, (n, m_chol_mat.rwdata (), n, + utmp.rwdata (), w)); } template <> @@ -512,8 +512,8 @@ OCTAVE_LOCAL_BUFFER (double, w, n); - F77_XFCN (dch1dn, DCH1DN, (n, m_chol_mat.fortran_vec (), n, - utmp.fortran_vec (), w, info)); + F77_XFCN (dch1dn, DCH1DN, (n, m_chol_mat.rwdata (), n, + utmp.rwdata (), w, info)); return info; } @@ -539,8 +539,8 @@ m_chol_mat.resize (n+1, n+1); F77_INT ldcm = to_f77_int (m_chol_mat.rows ()); - F77_XFCN (dchinx, DCHINX, (n, m_chol_mat.fortran_vec (), ldcm, - j + 1, utmp.fortran_vec (), w, info)); + F77_XFCN (dchinx, DCHINX, (n, m_chol_mat.rwdata (), ldcm, + j + 1, utmp.rwdata (), w, info)); return info; } @@ -557,7 +557,7 @@ OCTAVE_LOCAL_BUFFER (double, w, n); - F77_XFCN (dchdex, DCHDEX, (n, m_chol_mat.fortran_vec (), n, j + 1, w)); + F77_XFCN (dchdex, DCHDEX, (n, m_chol_mat.rwdata (), n, j + 1, w)); m_chol_mat.resize (n-1, n-1); } @@ -575,7 +575,7 @@ OCTAVE_LOCAL_BUFFER (double, w, 2*n); - F77_XFCN (dchshx, DCHSHX, (n, m_chol_mat.fortran_vec (), n, + F77_XFCN (dchshx, DCHSHX, (n, m_chol_mat.rwdata (), n, i + 1, j + 1, w)); } @@ -613,7 +613,7 @@ for (octave_idx_type i = j; i < n; i++) m_chol_mat.xelem (i, j) = a(i, j); } - float *h = m_chol_mat.fortran_vec (); + float *h = m_chol_mat.rwdata (); // Calculate the norm of the matrix, for later use. float anorm = 0; @@ -636,7 +636,7 @@ // Now calculate the condition number for non-singular matrix. Array<float> z (dim_vector (3*n, 1)); - float *pz = z.fortran_vec (); + float *pz = z.rwdata (); OCTAVE_LOCAL_BUFFER (F77_INT, iz, n); if (m_is_upper) F77_XFCN (spocon, SPOCON, (F77_CONST_CHAR_ARG2 ("U", 1), n, h, @@ -669,8 +669,8 @@ OCTAVE_LOCAL_BUFFER (float, w, n); - F77_XFCN (sch1up, SCH1UP, (n, m_chol_mat.fortran_vec (), n, - utmp.fortran_vec (), w)); + F77_XFCN (sch1up, SCH1UP, (n, m_chol_mat.rwdata (), n, + utmp.rwdata (), w)); } template <> @@ -688,8 +688,8 @@ OCTAVE_LOCAL_BUFFER (float, w, n); - F77_XFCN (sch1dn, SCH1DN, (n, m_chol_mat.fortran_vec (), n, - utmp.fortran_vec (), w, info)); + F77_XFCN (sch1dn, SCH1DN, (n, m_chol_mat.rwdata (), n, + utmp.rwdata (), w, info)); return info; } @@ -716,8 +716,8 @@ m_chol_mat.resize (n+1, n+1); F77_INT ldcm = to_f77_int (m_chol_mat.rows ()); - F77_XFCN (schinx, SCHINX, (n, m_chol_mat.fortran_vec (), ldcm, - j + 1, utmp.fortran_vec (), w, info)); + F77_XFCN (schinx, SCHINX, (n, m_chol_mat.rwdata (), ldcm, + j + 1, utmp.rwdata (), w, info)); return info; } @@ -734,7 +734,7 @@ OCTAVE_LOCAL_BUFFER (float, w, n); - F77_XFCN (schdex, SCHDEX, (n, m_chol_mat.fortran_vec (), n, + F77_XFCN (schdex, SCHDEX, (n, m_chol_mat.rwdata (), n, j + 1, w)); m_chol_mat.resize (n-1, n-1); @@ -753,7 +753,7 @@ OCTAVE_LOCAL_BUFFER (float, w, 2*n); - F77_XFCN (schshx, SCHSHX, (n, m_chol_mat.fortran_vec (), n, + F77_XFCN (schshx, SCHSHX, (n, m_chol_mat.rwdata (), n, i + 1, j + 1, w)); } @@ -791,7 +791,7 @@ for (octave_idx_type i = j; i < n; i++) m_chol_mat.xelem (i, j) = a(i, j); } - Complex *h = m_chol_mat.fortran_vec (); + Complex *h = m_chol_mat.rwdata (); // Calculate the norm of the matrix, for later use. double anorm = 0; @@ -816,9 +816,9 @@ // Now calculate the condition number for non-singular matrix. Array<Complex> z (dim_vector (2*n, 1)); - Complex *pz = z.fortran_vec (); + Complex *pz = z.rwdata (); Array<double> rz (dim_vector (n, 1)); - double *prz = rz.fortran_vec (); + double *prz = rz.rwdata (); F77_XFCN (zpocon, ZPOCON, (F77_CONST_CHAR_ARG2 ("U", 1), n, F77_DBLE_CMPLX_ARG (h), n, anorm, m_rcond, F77_DBLE_CMPLX_ARG (pz), prz, zpocon_info @@ -847,9 +847,9 @@ OCTAVE_LOCAL_BUFFER (double, rw, n); F77_XFCN (zch1up, ZCH1UP, (n, - F77_DBLE_CMPLX_ARG (m_chol_mat.fortran_vec ()), + F77_DBLE_CMPLX_ARG (m_chol_mat.rwdata ()), n, - F77_DBLE_CMPLX_ARG (utmp.fortran_vec ()), + F77_DBLE_CMPLX_ARG (utmp.rwdata ()), rw)); } @@ -869,9 +869,9 @@ OCTAVE_LOCAL_BUFFER (double, rw, n); F77_XFCN (zch1dn, ZCH1DN, (n, - F77_DBLE_CMPLX_ARG (m_chol_mat.fortran_vec ()), + F77_DBLE_CMPLX_ARG (m_chol_mat.rwdata ()), n, - F77_DBLE_CMPLX_ARG (utmp.fortran_vec ()), + F77_DBLE_CMPLX_ARG (utmp.rwdata ()), rw, info)); return info; @@ -900,9 +900,9 @@ F77_INT ldcm = to_f77_int (m_chol_mat.rows ()); F77_XFCN (zchinx, ZCHINX, (n, - F77_DBLE_CMPLX_ARG (m_chol_mat.fortran_vec ()), + F77_DBLE_CMPLX_ARG (m_chol_mat.rwdata ()), ldcm, j + 1, - F77_DBLE_CMPLX_ARG (utmp.fortran_vec ()), + F77_DBLE_CMPLX_ARG (utmp.rwdata ()), rw, info)); return info; @@ -921,7 +921,7 @@ OCTAVE_LOCAL_BUFFER (double, rw, n); F77_XFCN (zchdex, ZCHDEX, (n, - F77_DBLE_CMPLX_ARG (m_chol_mat.fortran_vec ()), + F77_DBLE_CMPLX_ARG (m_chol_mat.rwdata ()), n, j + 1, rw)); m_chol_mat.resize (n-1, n-1); @@ -943,7 +943,7 @@ OCTAVE_LOCAL_BUFFER (double, rw, n); F77_XFCN (zchshx, ZCHSHX, (n, - F77_DBLE_CMPLX_ARG (m_chol_mat.fortran_vec ()), + F77_DBLE_CMPLX_ARG (m_chol_mat.rwdata ()), n, i + 1, j + 1, F77_DBLE_CMPLX_ARG (w), rw)); } @@ -983,7 +983,7 @@ for (octave_idx_type i = j; i < n; i++) m_chol_mat.xelem (i, j) = a(i, j); } - FloatComplex *h = m_chol_mat.fortran_vec (); + FloatComplex *h = m_chol_mat.rwdata (); // Calculate the norm of the matrix, for later use. float anorm = 0; @@ -1008,9 +1008,9 @@ // Now calculate the condition number for non-singular matrix. Array<FloatComplex> z (dim_vector (2*n, 1)); - FloatComplex *pz = z.fortran_vec (); + FloatComplex *pz = z.rwdata (); Array<float> rz (dim_vector (n, 1)); - float *prz = rz.fortran_vec (); + float *prz = rz.rwdata (); F77_XFCN (cpocon, CPOCON, (F77_CONST_CHAR_ARG2 ("U", 1), n, F77_CMPLX_ARG (h), n, anorm, m_rcond, F77_CMPLX_ARG (pz), prz, cpocon_info @@ -1038,8 +1038,8 @@ OCTAVE_LOCAL_BUFFER (float, rw, n); - F77_XFCN (cch1up, CCH1UP, (n, F77_CMPLX_ARG (m_chol_mat.fortran_vec ()), - n, F77_CMPLX_ARG (utmp.fortran_vec ()), rw)); + F77_XFCN (cch1up, CCH1UP, (n, F77_CMPLX_ARG (m_chol_mat.rwdata ()), + n, F77_CMPLX_ARG (utmp.rwdata ()), rw)); } template <> @@ -1057,8 +1057,8 @@ OCTAVE_LOCAL_BUFFER (float, rw, n); - F77_XFCN (cch1dn, CCH1DN, (n, F77_CMPLX_ARG (m_chol_mat.fortran_vec ()), - n, F77_CMPLX_ARG (utmp.fortran_vec ()), + F77_XFCN (cch1dn, CCH1DN, (n, F77_CMPLX_ARG (m_chol_mat.rwdata ()), + n, F77_CMPLX_ARG (utmp.rwdata ()), rw, info)); return info; @@ -1086,9 +1086,9 @@ m_chol_mat.resize (n+1, n+1); F77_INT ldcm = to_f77_int (m_chol_mat.rows ()); - F77_XFCN (cchinx, CCHINX, (n, F77_CMPLX_ARG (m_chol_mat.fortran_vec ()), + F77_XFCN (cchinx, CCHINX, (n, F77_CMPLX_ARG (m_chol_mat.rwdata ()), ldcm, j + 1, - F77_CMPLX_ARG (utmp.fortran_vec ()), + F77_CMPLX_ARG (utmp.rwdata ()), rw, info)); return info; @@ -1106,7 +1106,7 @@ OCTAVE_LOCAL_BUFFER (float, rw, n); - F77_XFCN (cchdex, CCHDEX, (n, F77_CMPLX_ARG (m_chol_mat.fortran_vec ()), + F77_XFCN (cchdex, CCHDEX, (n, F77_CMPLX_ARG (m_chol_mat.rwdata ()), n, j + 1, rw)); m_chol_mat.resize (n-1, n-1); @@ -1127,7 +1127,7 @@ OCTAVE_LOCAL_BUFFER (FloatComplex, w, n); OCTAVE_LOCAL_BUFFER (float, rw, n); - F77_XFCN (cchshx, CCHSHX, (n, F77_CMPLX_ARG (m_chol_mat.fortran_vec ()), + F77_XFCN (cchshx, CCHSHX, (n, F77_CMPLX_ARG (m_chol_mat.rwdata ()), n, i + 1, j + 1, F77_CMPLX_ARG (w), rw)); }
--- a/liboctave/numeric/eigs-base.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/numeric/eigs-base.cc Wed Dec 27 16:55:14 2023 -0800 @@ -538,7 +538,7 @@ { Matrix tmp = sigma * b.transpose () * b; const double *pB = permB.data (); - double *p = AminusSigmaB.fortran_vec (); + double *p = AminusSigmaB.rwdata (); if (permB.numel ()) { @@ -557,7 +557,7 @@ } else { - double *p = AminusSigmaB.fortran_vec (); + double *p = AminusSigmaB.rwdata (); for (octave_idx_type i = 0; i < n; i++) p[i*(n+1)] -= sigma; @@ -720,7 +720,7 @@ { ComplexMatrix tmp = sigma * b.hermitian () * b; const double *pB = permB.data (); - Complex *p = AminusSigmaB.fortran_vec (); + Complex *p = AminusSigmaB.rwdata (); if (permB.numel ()) { @@ -739,7 +739,7 @@ } else { - Complex *p = AminusSigmaB.fortran_vec (); + Complex *p = AminusSigmaB.rwdata (); for (octave_idx_type i = 0; i < n; i++) p[i*(n+1)] -= sigma; @@ -892,7 +892,7 @@ } Array<F77_INT> ip (dim_vector (11, 1)); - F77_INT *iparam = ip.fortran_vec (); + F77_INT *iparam = ip.rwdata (); ip(0) = 1; //ishift ip(1) = 0; // ip(1) not referenced @@ -908,7 +908,7 @@ // ip(7) to ip(10) return values Array<F77_INT> iptr (dim_vector (14, 1)); - F77_INT *ipntr = iptr.fortran_vec (); + F77_INT *ipntr = iptr.rwdata (); F77_INT ido = 0; int iter = 0; @@ -917,7 +917,7 @@ OCTAVE_LOCAL_BUFFER (double, v, n * p); OCTAVE_LOCAL_BUFFER (double, workl, lwork); OCTAVE_LOCAL_BUFFER (double, workd, 3 * n); - double *presid = resid.fortran_vec (); + double *presid = resid.rwdata (); do { @@ -1000,13 +1000,13 @@ // is just workspace for ARPACK, so use int type to // avoid problems. Array<F77_INT> s (dim_vector (p, 1)); - F77_INT *sel = s.fortran_vec (); + F77_INT *sel = s.rwdata (); eig_vec.resize (n, k); - double *z = eig_vec.fortran_vec (); + double *z = eig_vec.rwdata (); eig_val.resize (k); - double *d = eig_val.fortran_vec (); + double *d = eig_val.rwdata (); F77_FUNC (dseupd, DSEUPD) (rvec, F77_CONST_CHAR_ARG2 ("A", 1), sel, d, z, n, sigma, @@ -1159,7 +1159,7 @@ bmat = 'G'; Array<F77_INT> ip (dim_vector (11, 1)); - F77_INT *iparam = ip.fortran_vec (); + F77_INT *iparam = ip.rwdata (); ip(0) = 1; //ishift ip(1) = 0; // ip(1) not referenced @@ -1175,7 +1175,7 @@ // ip(7) to ip(10) return values Array<F77_INT> iptr (dim_vector (14, 1)); - F77_INT *ipntr = iptr.fortran_vec (); + F77_INT *ipntr = iptr.rwdata (); F77_INT ido = 0; int iter = 0; @@ -1193,7 +1193,7 @@ OCTAVE_LOCAL_BUFFER (double, v, n * p); OCTAVE_LOCAL_BUFFER (double, workl, lwork); OCTAVE_LOCAL_BUFFER (double, workd, 3 * n); - double *presid = resid.fortran_vec (); + double *presid = resid.rwdata (); do { @@ -1312,13 +1312,13 @@ // is just workspace for ARPACK, so use int type to // avoid problems. Array<F77_INT> s (dim_vector (p, 1)); - F77_INT *sel = s.fortran_vec (); + F77_INT *sel = s.rwdata (); eig_vec.resize (n, k); - double *z = eig_vec.fortran_vec (); + double *z = eig_vec.rwdata (); eig_val.resize (k); - double *d = eig_val.fortran_vec (); + double *d = eig_val.rwdata (); F77_FUNC (dseupd, DSEUPD) (rvec, F77_CONST_CHAR_ARG2 ("A", 1), sel, d, z, n, sigma, @@ -1512,7 +1512,7 @@ } Array<F77_INT> ip (dim_vector (11, 1)); - F77_INT *iparam = ip.fortran_vec (); + F77_INT *iparam = ip.rwdata (); ip(0) = 1; //ishift ip(1) = 0; // ip(1) not referenced @@ -1528,7 +1528,7 @@ // ip(7) to ip(10) return values Array<F77_INT> iptr (dim_vector (14, 1)); - F77_INT *ipntr = iptr.fortran_vec (); + F77_INT *ipntr = iptr.rwdata (); F77_INT ido = 0; int iter = 0; @@ -1537,7 +1537,7 @@ OCTAVE_LOCAL_BUFFER (double, v, n * p); OCTAVE_LOCAL_BUFFER (double, workl, lwork); OCTAVE_LOCAL_BUFFER (double, workd, 3 * n); - double *presid = resid.fortran_vec (); + double *presid = resid.rwdata (); do { @@ -1685,13 +1685,13 @@ // is just workspace for ARPACK, so use int type to // avoid problems. Array<F77_INT> s (dim_vector (p, 1)); - F77_INT *sel = s.fortran_vec (); + F77_INT *sel = s.rwdata (); eig_vec.resize (n, k); - double *z = eig_vec.fortran_vec (); + double *z = eig_vec.rwdata (); eig_val.resize (k); - double *d = eig_val.fortran_vec (); + double *d = eig_val.rwdata (); F77_FUNC (dseupd, DSEUPD) (rvec, F77_CONST_CHAR_ARG2 ("A", 1), sel, d, z, n, sigma, @@ -1869,7 +1869,7 @@ } Array<F77_INT> ip (dim_vector (11, 1)); - F77_INT *iparam = ip.fortran_vec (); + F77_INT *iparam = ip.rwdata (); ip(0) = 1; //ishift ip(1) = 0; // ip(1) not referenced @@ -1885,7 +1885,7 @@ // ip(7) to ip(10) return values Array<F77_INT> iptr (dim_vector (14, 1)); - F77_INT *ipntr = iptr.fortran_vec (); + F77_INT *ipntr = iptr.rwdata (); F77_INT ido = 0; int iter = 0; @@ -1894,7 +1894,7 @@ OCTAVE_LOCAL_BUFFER (double, v, n * (p + 1)); OCTAVE_LOCAL_BUFFER (double, workl, lwork + 1); OCTAVE_LOCAL_BUFFER (double, workd, 3 * n + 1); - double *presid = resid.fortran_vec (); + double *presid = resid.rwdata (); do { @@ -1981,7 +1981,7 @@ // is just workspace for ARPACK, so use int type to // avoid problems. Array<F77_INT> s (dim_vector (p, 1)); - F77_INT *sel = s.fortran_vec (); + F77_INT *sel = s.rwdata (); // FIXME: initialize eig_vec2 to zero; apparently dneupd can skip // the assignment to elements of Z that represent imaginary parts. @@ -1991,7 +1991,7 @@ // [vecs, vals, f] = eigs (A, 1) Matrix eig_vec2 (n, k + 1, 0.0); - double *z = eig_vec2.fortran_vec (); + double *z = eig_vec2.rwdata (); OCTAVE_LOCAL_BUFFER (double, dr, k + 1); OCTAVE_LOCAL_BUFFER (double, di, k + 1); @@ -2013,7 +2013,7 @@ k = ip(4); eig_val.resize (k); - Complex *d = eig_val.fortran_vec (); + Complex *d = eig_val.rwdata (); if (info2 == 0) { @@ -2196,7 +2196,7 @@ bmat = 'G'; Array<F77_INT> ip (dim_vector (11, 1)); - F77_INT *iparam = ip.fortran_vec (); + F77_INT *iparam = ip.rwdata (); ip(0) = 1; //ishift ip(1) = 0; // ip(1) not referenced @@ -2212,7 +2212,7 @@ // ip(7) to ip(10) return values Array<F77_INT> iptr (dim_vector (14, 1)); - F77_INT *ipntr = iptr.fortran_vec (); + F77_INT *ipntr = iptr.rwdata (); F77_INT ido = 0; int iter = 0; @@ -2230,7 +2230,7 @@ OCTAVE_LOCAL_BUFFER (double, v, n * (p + 1)); OCTAVE_LOCAL_BUFFER (double, workl, lwork + 1); OCTAVE_LOCAL_BUFFER (double, workd, 3 * n + 1); - double *presid = resid.fortran_vec (); + double *presid = resid.rwdata (); do { @@ -2354,7 +2354,7 @@ // is just workspace for ARPACK, so use int type to // avoid problems. Array<F77_INT> s (dim_vector (p, 1)); - F77_INT *sel = s.fortran_vec (); + F77_INT *sel = s.rwdata (); // FIXME: initialize eig_vec2 to zero; apparently dneupd can skip // the assignment to elements of Z that represent imaginary parts. @@ -2364,7 +2364,7 @@ // [vecs, vals, f] = eigs (A, 1) Matrix eig_vec2 (n, k + 1, 0.0); - double *z = eig_vec2.fortran_vec (); + double *z = eig_vec2.rwdata (); OCTAVE_LOCAL_BUFFER (double, dr, k + 1); OCTAVE_LOCAL_BUFFER (double, di, k + 1); @@ -2386,7 +2386,7 @@ k = ip(4); eig_val.resize (k); - Complex *d = eig_val.fortran_vec (); + Complex *d = eig_val.rwdata (); if (info2 == 0) { @@ -2617,7 +2617,7 @@ } Array<F77_INT> ip (dim_vector (11, 1)); - F77_INT *iparam = ip.fortran_vec (); + F77_INT *iparam = ip.rwdata (); ip(0) = 1; //ishift ip(1) = 0; // ip(1) not referenced @@ -2633,7 +2633,7 @@ // ip(7) to ip(10) return values Array<F77_INT> iptr (dim_vector (14, 1)); - F77_INT *ipntr = iptr.fortran_vec (); + F77_INT *ipntr = iptr.rwdata (); F77_INT ido = 0; int iter = 0; @@ -2642,7 +2642,7 @@ OCTAVE_LOCAL_BUFFER (double, v, n * (p + 1)); OCTAVE_LOCAL_BUFFER (double, workl, lwork + 1); OCTAVE_LOCAL_BUFFER (double, workd, 3 * n + 1); - double *presid = resid.fortran_vec (); + double *presid = resid.rwdata (); do { @@ -2794,7 +2794,7 @@ // is just workspace for ARPACK, so use int type to // avoid problems. Array<F77_INT> s (dim_vector (p, 1)); - F77_INT *sel = s.fortran_vec (); + F77_INT *sel = s.rwdata (); // FIXME: initialize eig_vec2 to zero; apparently dneupd can skip // the assignment to elements of Z that represent imaginary parts. @@ -2804,7 +2804,7 @@ // [vecs, vals, f] = eigs (A, 1) Matrix eig_vec2 (n, k + 1, 0.0); - double *z = eig_vec2.fortran_vec (); + double *z = eig_vec2.rwdata (); OCTAVE_LOCAL_BUFFER (double, dr, k + 1); OCTAVE_LOCAL_BUFFER (double, di, k + 1); @@ -2826,7 +2826,7 @@ k = ip(4); eig_val.resize (k); - Complex *d = eig_val.fortran_vec (); + Complex *d = eig_val.rwdata (); if (info2 == 0) { @@ -3038,7 +3038,7 @@ } Array<F77_INT> ip (dim_vector (11, 1)); - F77_INT *iparam = ip.fortran_vec (); + F77_INT *iparam = ip.rwdata (); ip(0) = 1; //ishift ip(1) = 0; // ip(1) not referenced @@ -3054,7 +3054,7 @@ // ip(7) to ip(10) return values Array<F77_INT> iptr (dim_vector (14, 1)); - F77_INT *ipntr = iptr.fortran_vec (); + F77_INT *ipntr = iptr.rwdata (); F77_INT ido = 0; int iter = 0; @@ -3064,7 +3064,7 @@ OCTAVE_LOCAL_BUFFER (Complex, workl, lwork); OCTAVE_LOCAL_BUFFER (Complex, workd, 3 * n); OCTAVE_LOCAL_BUFFER (double, rwork, p); - Complex *presid = cresid.fortran_vec (); + Complex *presid = cresid.rwdata (); do { @@ -3147,13 +3147,13 @@ // is just workspace for ARPACK, so use int type to // avoid problems. Array<F77_INT> s (dim_vector (p, 1)); - F77_INT *sel = s.fortran_vec (); + F77_INT *sel = s.rwdata (); eig_vec.resize (n, k); - Complex *z = eig_vec.fortran_vec (); + Complex *z = eig_vec.rwdata (); eig_val.resize (k+1); - Complex *d = eig_val.fortran_vec (); + Complex *d = eig_val.rwdata (); OCTAVE_LOCAL_BUFFER (Complex, workev, 2 * p); @@ -3317,7 +3317,7 @@ bmat = 'G'; Array<F77_INT> ip (dim_vector (11, 1)); - F77_INT *iparam = ip.fortran_vec (); + F77_INT *iparam = ip.rwdata (); ip(0) = 1; //ishift ip(1) = 0; // ip(1) not referenced @@ -3333,7 +3333,7 @@ // ip(7) to ip(10) return values Array<F77_INT> iptr (dim_vector (14, 1)); - F77_INT *ipntr = iptr.fortran_vec (); + F77_INT *ipntr = iptr.rwdata (); F77_INT ido = 0; int iter = 0; @@ -3352,7 +3352,7 @@ OCTAVE_LOCAL_BUFFER (Complex, workl, lwork); OCTAVE_LOCAL_BUFFER (Complex, workd, 3 * n); OCTAVE_LOCAL_BUFFER (double, rwork, p); - Complex *presid = cresid.fortran_vec (); + Complex *presid = cresid.rwdata (); do { @@ -3473,13 +3473,13 @@ // is just workspace for ARPACK, so use int type to // avoid problems. Array<F77_INT> s (dim_vector (p, 1)); - F77_INT *sel = s.fortran_vec (); + F77_INT *sel = s.rwdata (); eig_vec.resize (n, k); - Complex *z = eig_vec.fortran_vec (); + Complex *z = eig_vec.rwdata (); eig_val.resize (k+1); - Complex *d = eig_val.fortran_vec (); + Complex *d = eig_val.rwdata (); OCTAVE_LOCAL_BUFFER (Complex, workev, 2 * p); @@ -3688,7 +3688,7 @@ } Array<F77_INT> ip (dim_vector (11, 1)); - F77_INT *iparam = ip.fortran_vec (); + F77_INT *iparam = ip.rwdata (); ip(0) = 1; //ishift ip(1) = 0; // ip(1) not referenced @@ -3704,7 +3704,7 @@ // ip(7) to ip(10) return values Array<F77_INT> iptr (dim_vector (14, 1)); - F77_INT *ipntr = iptr.fortran_vec (); + F77_INT *ipntr = iptr.rwdata (); F77_INT ido = 0; int iter = 0; @@ -3714,7 +3714,7 @@ OCTAVE_LOCAL_BUFFER (Complex, workl, lwork); OCTAVE_LOCAL_BUFFER (Complex, workd, 3 * n); OCTAVE_LOCAL_BUFFER (double, rwork, p); - Complex *presid = cresid.fortran_vec (); + Complex *presid = cresid.rwdata (); do { @@ -3863,13 +3863,13 @@ // is just workspace for ARPACK, so use int type to // avoid problems. Array<F77_INT> s (dim_vector (p, 1)); - F77_INT *sel = s.fortran_vec (); + F77_INT *sel = s.rwdata (); eig_vec.resize (n, k); - Complex *z = eig_vec.fortran_vec (); + Complex *z = eig_vec.rwdata (); eig_val.resize (k+1); - Complex *d = eig_val.fortran_vec (); + Complex *d = eig_val.rwdata (); OCTAVE_LOCAL_BUFFER (Complex, workev, 2 * p);
--- a/liboctave/numeric/fEIG.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/numeric/fEIG.cc Wed Dec 27 16:55:14 2023 -0800 @@ -54,21 +54,21 @@ F77_INT info = 0; FloatMatrix atmp = a; - float *tmp_data = atmp.fortran_vec (); + float *tmp_data = atmp.rwdata (); Array<float> wr (dim_vector (n, 1)); - float *pwr = wr.fortran_vec (); + float *pwr = wr.rwdata (); Array<float> wi (dim_vector (n, 1)); - float *pwi = wi.fortran_vec (); + float *pwi = wi.rwdata (); volatile F77_INT nvr = (calc_rev ? n : 0); FloatMatrix vr (nvr, nvr); - float *pvr = vr.fortran_vec (); + float *pvr = vr.rwdata (); volatile F77_INT nvl = (calc_lev ? n : 0); FloatMatrix vl (nvl, nvl); - float *pvl = vl.fortran_vec (); + float *pvl = vl.rwdata (); F77_INT lwork = -1; float dummy_work; @@ -77,15 +77,15 @@ F77_INT ihi; Array<float> scale (dim_vector (n, 1)); - float *pscale = scale.fortran_vec (); + float *pscale = scale.rwdata (); float abnrm; Array<float> rconde (dim_vector (n, 1)); - float *prconde = rconde.fortran_vec (); + float *prconde = rconde.rwdata (); Array<float> rcondv (dim_vector (n, 1)); - float *prcondv = rcondv.fortran_vec (); + float *prcondv = rcondv.rwdata (); F77_INT dummy_iwork; @@ -107,7 +107,7 @@ lwork = static_cast<F77_INT> (dummy_work); Array<float> work (dim_vector (lwork, 1)); - float *pwork = work.fortran_vec (); + float *pwork = work.rwdata (); F77_XFCN (sgeevx, SGEEVX, (F77_CONST_CHAR_ARG2 (balance ? "B" : "N", 1), F77_CONST_CHAR_ARG2 ("N", 1), @@ -184,10 +184,10 @@ F77_INT info = 0; FloatMatrix atmp = a; - float *tmp_data = atmp.fortran_vec (); + float *tmp_data = atmp.rwdata (); FloatColumnVector wr (n); - float *pwr = wr.fortran_vec (); + float *pwr = wr.rwdata (); F77_INT lwork = -1; float dummy_work; @@ -203,7 +203,7 @@ lwork = static_cast<F77_INT> (dummy_work); Array<float> work (dim_vector (lwork, 1)); - float *pwork = work.fortran_vec (); + float *pwork = work.rwdata (); F77_XFCN (ssyev, SSYEV, (F77_CONST_CHAR_ARG2 (calc_rev ? "V" : "N", 1), F77_CONST_CHAR_ARG2 ("U", 1), @@ -244,39 +244,39 @@ F77_INT info = 0; FloatComplexMatrix atmp = a; - FloatComplex *tmp_data = atmp.fortran_vec (); + FloatComplex *tmp_data = atmp.rwdata (); FloatComplexColumnVector wr (n); - FloatComplex *pw = wr.fortran_vec (); + FloatComplex *pw = wr.rwdata (); F77_INT nvr = (calc_rev ? n : 0); FloatComplexMatrix vrtmp (nvr, nvr); - FloatComplex *pvr = vrtmp.fortran_vec (); + FloatComplex *pvr = vrtmp.rwdata (); F77_INT nvl = (calc_lev ? n : 0); FloatComplexMatrix vltmp (nvl, nvl); - FloatComplex *pvl = vltmp.fortran_vec (); + FloatComplex *pvl = vltmp.rwdata (); F77_INT lwork = -1; FloatComplex dummy_work; F77_INT lrwork = 2*n; Array<float> rwork (dim_vector (lrwork, 1)); - float *prwork = rwork.fortran_vec (); + float *prwork = rwork.rwdata (); F77_INT ilo; F77_INT ihi; Array<float> scale (dim_vector (n, 1)); - float *pscale = scale.fortran_vec (); + float *pscale = scale.rwdata (); float abnrm; Array<float> rconde (dim_vector (n, 1)); - float *prconde = rconde.fortran_vec (); + float *prconde = rconde.rwdata (); Array<float> rcondv (dim_vector (n, 1)); - float *prcondv = rcondv.fortran_vec (); + float *prcondv = rcondv.rwdata (); F77_XFCN (cgeevx, CGEEVX, (F77_CONST_CHAR_ARG2 (balance ? "B" : "N", 1), F77_CONST_CHAR_ARG2 (calc_lev ? "V" : "N", 1), @@ -296,7 +296,7 @@ lwork = static_cast<F77_INT> (dummy_work.real ()); Array<FloatComplex> work (dim_vector (lwork, 1)); - FloatComplex *pwork = work.fortran_vec (); + FloatComplex *pwork = work.rwdata (); F77_XFCN (cgeevx, CGEEVX, (F77_CONST_CHAR_ARG2 (balance ? "B" : "N", 1), F77_CONST_CHAR_ARG2 (calc_lev ? "V" : "N", 1), @@ -337,17 +337,17 @@ F77_INT info = 0; FloatComplexMatrix atmp = a; - FloatComplex *tmp_data = atmp.fortran_vec (); + FloatComplex *tmp_data = atmp.rwdata (); FloatColumnVector wr (n); - float *pwr = wr.fortran_vec (); + float *pwr = wr.rwdata (); F77_INT lwork = -1; FloatComplex dummy_work; F77_INT lrwork = 3*n; Array<float> rwork (dim_vector (lrwork, 1)); - float *prwork = rwork.fortran_vec (); + float *prwork = rwork.rwdata (); F77_XFCN (cheev, CHEEV, (F77_CONST_CHAR_ARG2 (calc_rev ? "V" : "N", 1), F77_CONST_CHAR_ARG2 ("U", 1), @@ -362,7 +362,7 @@ lwork = static_cast<F77_INT> (dummy_work.real ()); Array<FloatComplex> work (dim_vector (lwork, 1)); - FloatComplex *pwork = work.fortran_vec (); + FloatComplex *pwork = work.rwdata (); F77_XFCN (cheev, CHEEV, (F77_CONST_CHAR_ARG2 (calc_rev ? "V" : "N", 1), F77_CONST_CHAR_ARG2 ("U", 1), @@ -407,7 +407,7 @@ F77_INT info = 0; FloatMatrix tmp = b; - float *tmp_data = tmp.fortran_vec (); + float *tmp_data = tmp.rwdata (); if (! force_qz) { F77_XFCN (spotrf, SPOTRF, (F77_CONST_CHAR_ARG2 ("L", 1), @@ -420,27 +420,27 @@ } FloatMatrix atmp = a; - float *atmp_data = atmp.fortran_vec (); + float *atmp_data = atmp.rwdata (); FloatMatrix btmp = b; - float *btmp_data = btmp.fortran_vec (); + float *btmp_data = btmp.rwdata (); Array<float> ar (dim_vector (n, 1)); - float *par = ar.fortran_vec (); + float *par = ar.rwdata (); Array<float> ai (dim_vector (n, 1)); - float *pai = ai.fortran_vec (); + float *pai = ai.rwdata (); Array<float> beta (dim_vector (n, 1)); - float *pbeta = beta.fortran_vec (); + float *pbeta = beta.rwdata (); volatile F77_INT nvr = (calc_rev ? n : 0); FloatMatrix vr (nvr, nvr); - float *pvr = vr.fortran_vec (); + float *pvr = vr.rwdata (); volatile F77_INT nvl = (calc_lev ? n : 0); FloatMatrix vl (nvl, nvl); - float *pvl = vl.fortran_vec (); + float *pvl = vl.rwdata (); F77_INT lwork = -1; float dummy_work; @@ -459,7 +459,7 @@ lwork = static_cast<F77_INT> (dummy_work); Array<float> work (dim_vector (lwork, 1)); - float *pwork = work.fortran_vec (); + float *pwork = work.rwdata (); F77_XFCN (sggev, SGGEV, (F77_CONST_CHAR_ARG2 (calc_lev ? "V" : "N", 1), F77_CONST_CHAR_ARG2 (calc_rev ? "V" : "N", 1), @@ -542,13 +542,13 @@ F77_INT info = 0; FloatMatrix atmp = a; - float *atmp_data = atmp.fortran_vec (); + float *atmp_data = atmp.rwdata (); FloatMatrix btmp = b; - float *btmp_data = btmp.fortran_vec (); + float *btmp_data = btmp.rwdata (); FloatColumnVector wr (n); - float *pwr = wr.fortran_vec (); + float *pwr = wr.rwdata (); F77_INT lwork = -1; float dummy_work; @@ -566,7 +566,7 @@ lwork = static_cast<F77_INT> (dummy_work); Array<float> work (dim_vector (lwork, 1)); - float *pwork = work.fortran_vec (); + float *pwork = work.rwdata (); F77_XFCN (ssygv, SSYGV, (1, F77_CONST_CHAR_ARG2 (calc_rev ? "V" : "N", 1), F77_CONST_CHAR_ARG2 ("U", 1), @@ -612,7 +612,7 @@ F77_INT info = 0; FloatComplexMatrix tmp = b; - FloatComplex *tmp_data = tmp.fortran_vec (); + FloatComplex *tmp_data = tmp.rwdata (); if (! force_qz) { @@ -626,31 +626,31 @@ } FloatComplexMatrix atmp = a; - FloatComplex *atmp_data = atmp.fortran_vec (); + FloatComplex *atmp_data = atmp.rwdata (); FloatComplexMatrix btmp = b; - FloatComplex *btmp_data = btmp.fortran_vec (); + FloatComplex *btmp_data = btmp.rwdata (); FloatComplexColumnVector alpha (n); - FloatComplex *palpha = alpha.fortran_vec (); + FloatComplex *palpha = alpha.rwdata (); FloatComplexColumnVector beta (n); - FloatComplex *pbeta = beta.fortran_vec (); + FloatComplex *pbeta = beta.rwdata (); F77_INT nvr = (calc_rev ? n : 0); FloatComplexMatrix vrtmp (nvr, nvr); - FloatComplex *pvr = vrtmp.fortran_vec (); + FloatComplex *pvr = vrtmp.rwdata (); F77_INT nvl = (calc_lev ? n : 0); FloatComplexMatrix vltmp (nvl, nvl); - FloatComplex *pvl = vltmp.fortran_vec (); + FloatComplex *pvl = vltmp.rwdata (); F77_INT lwork = -1; FloatComplex dummy_work; F77_INT lrwork = 8*n; Array<float> rwork (dim_vector (lrwork, 1)); - float *prwork = rwork.fortran_vec (); + float *prwork = rwork.rwdata (); F77_XFCN (cggev, CGGEV, (F77_CONST_CHAR_ARG2 (calc_lev ? "V" : "N", 1), F77_CONST_CHAR_ARG2 (calc_rev ? "V" : "N", 1), @@ -667,7 +667,7 @@ lwork = static_cast<F77_INT> (dummy_work.real ()); Array<FloatComplex> work (dim_vector (lwork, 1)); - FloatComplex *pwork = work.fortran_vec (); + FloatComplex *pwork = work.rwdata (); F77_XFCN (cggev, CGGEV, (F77_CONST_CHAR_ARG2 (calc_lev ? "V" : "N", 1), F77_CONST_CHAR_ARG2 (calc_rev ? "V" : "N", 1), @@ -716,20 +716,20 @@ F77_INT info = 0; FloatComplexMatrix atmp = a; - FloatComplex *atmp_data = atmp.fortran_vec (); + FloatComplex *atmp_data = atmp.rwdata (); FloatComplexMatrix btmp = b; - FloatComplex *btmp_data = btmp.fortran_vec (); + FloatComplex *btmp_data = btmp.rwdata (); FloatColumnVector wr (n); - float *pwr = wr.fortran_vec (); + float *pwr = wr.rwdata (); F77_INT lwork = -1; FloatComplex dummy_work; F77_INT lrwork = 3*n; Array<float> rwork (dim_vector (lrwork, 1)); - float *prwork = rwork.fortran_vec (); + float *prwork = rwork.rwdata (); F77_XFCN (chegv, CHEGV, (1, F77_CONST_CHAR_ARG2 (calc_rev ? "V" : "N", 1), F77_CONST_CHAR_ARG2 ("U", 1), @@ -745,7 +745,7 @@ lwork = static_cast<F77_INT> (dummy_work.real ()); Array<FloatComplex> work (dim_vector (lwork, 1)); - FloatComplex *pwork = work.fortran_vec (); + FloatComplex *pwork = work.rwdata (); F77_XFCN (chegv, CHEGV, (1, F77_CONST_CHAR_ARG2 (calc_rev ? "V" : "N", 1), F77_CONST_CHAR_ARG2 ("U", 1),
--- a/liboctave/numeric/gepbalance.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/numeric/gepbalance.cc Wed Dec 27 16:55:14 2023 -0800 @@ -65,9 +65,9 @@ OCTAVE_LOCAL_BUFFER (double, pwork, 6 * n); m_balanced_mat = a; - double *p_balanced_mat = m_balanced_mat.fortran_vec (); + double *p_balanced_mat = m_balanced_mat.rwdata (); m_balanced_mat2 = b; - double *p_balanced_mat2 = m_balanced_mat2.fortran_vec (); + double *p_balanced_mat2 = m_balanced_mat2.rwdata (); char job = balance_job[0]; @@ -85,8 +85,8 @@ m_balancing_mat2.elem (i, i) = 1.0; } - double *p_balancing_mat = m_balancing_mat.fortran_vec (); - double *p_balancing_mat2 = m_balancing_mat2.fortran_vec (); + double *p_balancing_mat = m_balancing_mat.rwdata (); + double *p_balancing_mat2 = m_balancing_mat2.rwdata (); // first left F77_XFCN (dggbak, DGGBAK, (F77_CONST_CHAR_ARG2 (&job, 1), @@ -131,9 +131,9 @@ OCTAVE_LOCAL_BUFFER (float, pwork, 6 * n); m_balanced_mat = a; - float *p_balanced_mat = m_balanced_mat.fortran_vec (); + float *p_balanced_mat = m_balanced_mat.rwdata (); m_balanced_mat2 = b; - float *p_balanced_mat2 = m_balanced_mat2.fortran_vec (); + float *p_balanced_mat2 = m_balanced_mat2.rwdata (); char job = balance_job[0]; @@ -151,8 +151,8 @@ m_balancing_mat2.elem (i, i) = 1.0; } - float *p_balancing_mat = m_balancing_mat.fortran_vec (); - float *p_balancing_mat2 = m_balancing_mat2.fortran_vec (); + float *p_balancing_mat = m_balancing_mat.rwdata (); + float *p_balancing_mat2 = m_balancing_mat2.rwdata (); // first left F77_XFCN (sggbak, SGGBAK, (F77_CONST_CHAR_ARG2 (&job, 1), @@ -198,9 +198,9 @@ OCTAVE_LOCAL_BUFFER (double, pwork, 6 * n); m_balanced_mat = a; - Complex *p_balanced_mat = m_balanced_mat.fortran_vec (); + Complex *p_balanced_mat = m_balanced_mat.rwdata (); m_balanced_mat2 = b; - Complex *p_balanced_mat2 = m_balanced_mat2.fortran_vec (); + Complex *p_balanced_mat2 = m_balanced_mat2.rwdata (); char job = balance_job[0]; @@ -219,8 +219,8 @@ m_balancing_mat2.elem (i, i) = 1.0; } - double *p_balancing_mat = m_balancing_mat.fortran_vec (); - double *p_balancing_mat2 = m_balancing_mat2.fortran_vec (); + double *p_balancing_mat = m_balancing_mat.rwdata (); + double *p_balancing_mat2 = m_balancing_mat2.rwdata (); // first left F77_XFCN (dggbak, DGGBAK, (F77_CONST_CHAR_ARG2 (&job, 1), @@ -269,9 +269,9 @@ OCTAVE_LOCAL_BUFFER (float, pwork, 6 * n); m_balanced_mat = a; - FloatComplex *p_balanced_mat = m_balanced_mat.fortran_vec (); + FloatComplex *p_balanced_mat = m_balanced_mat.rwdata (); m_balanced_mat2 = b; - FloatComplex *p_balanced_mat2 = m_balanced_mat2.fortran_vec (); + FloatComplex *p_balanced_mat2 = m_balanced_mat2.rwdata (); char job = balance_job[0]; @@ -290,8 +290,8 @@ m_balancing_mat2.elem (i, i) = 1.0; } - float *p_balancing_mat = m_balancing_mat.fortran_vec (); - float *p_balancing_mat2 = m_balancing_mat2.fortran_vec (); + float *p_balancing_mat = m_balancing_mat.rwdata (); + float *p_balancing_mat2 = m_balancing_mat2.rwdata (); // first left F77_XFCN (sggbak, SGGBAK, (F77_CONST_CHAR_ARG2 (&job, 1),
--- a/liboctave/numeric/gsvd.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/numeric/gsvd.cc Wed Dec 27 16:55:14 2023 -0800 @@ -253,7 +253,7 @@ F77_CONST_CHAR_ARG2 (&jobv, 1), F77_CONST_CHAR_ARG2 (&jobq, 1), m, n, p, k, l, tmp_dataA, m1, tmp_dataB, p1, - alpha.fortran_vec (), beta.fortran_vec (), + alpha.rwdata (), beta.rwdata (), u, nrow_u, v, nrow_v, q, nrow_q, work, lwork, iwork, info F77_CHAR_ARG_LEN (1) @@ -267,7 +267,7 @@ F77_CONST_CHAR_ARG2 (&jobv, 1), F77_CONST_CHAR_ARG2 (&jobq, 1), m, n, p, k, l, tmp_dataA, m1, tmp_dataB, p1, - alpha.fortran_vec (), beta.fortran_vec (), + alpha.rwdata (), beta.rwdata (), u, nrow_u, v, nrow_v, q, nrow_q, work, iwork, info F77_CHAR_ARG_LEN (1) @@ -297,7 +297,7 @@ F77_CONST_CHAR_ARG2 (&jobv, 1), F77_CONST_CHAR_ARG2 (&jobq, 1), m, n, p, k, l, tmp_dataA, m1, tmp_dataB, p1, - alpha.fortran_vec (), beta.fortran_vec (), + alpha.rwdata (), beta.rwdata (), u, nrow_u, v, nrow_v, q, nrow_q, work, lwork, iwork, info F77_CHAR_ARG_LEN (1) @@ -311,7 +311,7 @@ F77_CONST_CHAR_ARG2 (&jobv, 1), F77_CONST_CHAR_ARG2 (&jobq, 1), m, n, p, k, l, tmp_dataA, m1, tmp_dataB, p1, - alpha.fortran_vec (), beta.fortran_vec (), + alpha.rwdata (), beta.rwdata (), u, nrow_u, v, nrow_v, q, nrow_q, work, iwork, info F77_CHAR_ARG_LEN (1) @@ -345,7 +345,7 @@ m, n, p, k, l, F77_DBLE_CMPLX_ARG (tmp_dataA), m1, F77_DBLE_CMPLX_ARG (tmp_dataB), p1, - alpha.fortran_vec (), beta.fortran_vec (), + alpha.rwdata (), beta.rwdata (), F77_DBLE_CMPLX_ARG (u), nrow_u, F77_DBLE_CMPLX_ARG (v), nrow_v, F77_DBLE_CMPLX_ARG (q), nrow_q, @@ -364,7 +364,7 @@ m, n, p, k, l, F77_DBLE_CMPLX_ARG (tmp_dataA), m1, F77_DBLE_CMPLX_ARG (tmp_dataB), p1, - alpha.fortran_vec (), beta.fortran_vec (), + alpha.rwdata (), beta.rwdata (), F77_DBLE_CMPLX_ARG (u), nrow_u, F77_DBLE_CMPLX_ARG (v), nrow_v, F77_DBLE_CMPLX_ARG (q), nrow_q, @@ -404,7 +404,7 @@ m, n, p, k, l, F77_CMPLX_ARG (tmp_dataA), m1, F77_CMPLX_ARG (tmp_dataB), p1, - alpha.fortran_vec (), beta.fortran_vec (), + alpha.rwdata (), beta.rwdata (), F77_CMPLX_ARG (u), nrow_u, F77_CMPLX_ARG (v), nrow_v, F77_CMPLX_ARG (q), nrow_q, @@ -423,7 +423,7 @@ m, n, p, k, l, F77_CMPLX_ARG (tmp_dataA), m1, F77_CMPLX_ARG (tmp_dataB), p1, - alpha.fortran_vec (), beta.fortran_vec (), + alpha.rwdata (), beta.rwdata (), F77_CMPLX_ARG (u), nrow_u, F77_CMPLX_ARG (v), nrow_v, F77_CMPLX_ARG (q), nrow_q, @@ -482,10 +482,10 @@ F77_INT p = to_f77_int (b.rows ()); T atmp = a; - P *tmp_dataA = atmp.fortran_vec (); + P *tmp_dataA = atmp.rwdata (); T btmp = b; - P *tmp_dataB = btmp.fortran_vec (); + P *tmp_dataB = btmp.rwdata (); char jobu = 'U'; char jobv = 'V'; @@ -523,17 +523,17 @@ if (jobu != 'N') m_left_smA.resize (nrow_u, m); - P *u = m_left_smA.fortran_vec (); + P *u = m_left_smA.rwdata (); if (jobv != 'N') m_left_smB.resize (nrow_v, p); - P *v = m_left_smB.fortran_vec (); + P *v = m_left_smB.rwdata (); if (jobq != 'N') m_right_sm.resize (nrow_q, n); - P *q = m_right_sm.fortran_vec (); + P *q = m_right_sm.rwdata (); real_matrix alpha (n, 1); real_matrix beta (n, 1);
--- a/liboctave/numeric/hess.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/numeric/hess.cc Wed Dec 27 16:55:14 2023 -0800 @@ -60,26 +60,26 @@ F77_INT ihi; m_hess_mat = a; - double *h = m_hess_mat.fortran_vec (); + double *h = m_hess_mat.rwdata (); Array<double> scale (dim_vector (n, 1)); - double *pscale = scale.fortran_vec (); + double *pscale = scale.rwdata (); F77_XFCN (dgebal, DGEBAL, (F77_CONST_CHAR_ARG2 (&job, 1), n, h, n, ilo, ihi, pscale, info F77_CHAR_ARG_LEN (1))); Array<double> tau (dim_vector (n-1, 1)); - double *ptau = tau.fortran_vec (); + double *ptau = tau.rwdata (); Array<double> work (dim_vector (lwork, 1)); - double *pwork = work.fortran_vec (); + double *pwork = work.rwdata (); F77_XFCN (dgehrd, DGEHRD, (n, ilo, ihi, h, n, ptau, pwork, lwork, info)); m_unitary_hess_mat = m_hess_mat; - double *z = m_unitary_hess_mat.fortran_vec (); + double *z = m_unitary_hess_mat.rwdata (); F77_XFCN (dorghr, DORGHR, (n, ilo, ihi, z, n, ptau, pwork, lwork, info)); @@ -123,26 +123,26 @@ F77_INT ihi; m_hess_mat = a; - float *h = m_hess_mat.fortran_vec (); + float *h = m_hess_mat.rwdata (); Array<float> scale (dim_vector (n, 1)); - float *pscale = scale.fortran_vec (); + float *pscale = scale.rwdata (); F77_XFCN (sgebal, SGEBAL, (F77_CONST_CHAR_ARG2 (&job, 1), n, h, n, ilo, ihi, pscale, info F77_CHAR_ARG_LEN (1))); Array<float> tau (dim_vector (n-1, 1)); - float *ptau = tau.fortran_vec (); + float *ptau = tau.rwdata (); Array<float> work (dim_vector (lwork, 1)); - float *pwork = work.fortran_vec (); + float *pwork = work.rwdata (); F77_XFCN (sgehrd, SGEHRD, (n, ilo, ihi, h, n, ptau, pwork, lwork, info)); m_unitary_hess_mat = m_hess_mat; - float *z = m_unitary_hess_mat.fortran_vec (); + float *z = m_unitary_hess_mat.rwdata (); F77_XFCN (sorghr, SORGHR, (n, ilo, ihi, z, n, ptau, pwork, lwork, info)); @@ -186,26 +186,26 @@ F77_INT ihi; m_hess_mat = a; - Complex *h = m_hess_mat.fortran_vec (); + Complex *h = m_hess_mat.rwdata (); Array<double> scale (dim_vector (n, 1)); - double *pscale = scale.fortran_vec (); + double *pscale = scale.rwdata (); F77_XFCN (zgebal, ZGEBAL, (F77_CONST_CHAR_ARG2 (&job, 1), n, F77_DBLE_CMPLX_ARG (h), n, ilo, ihi, pscale, info F77_CHAR_ARG_LEN (1))); Array<Complex> tau (dim_vector (n-1, 1)); - Complex *ptau = tau.fortran_vec (); + Complex *ptau = tau.rwdata (); Array<Complex> work (dim_vector (lwork, 1)); - Complex *pwork = work.fortran_vec (); + Complex *pwork = work.rwdata (); F77_XFCN (zgehrd, ZGEHRD, (n, ilo, ihi, F77_DBLE_CMPLX_ARG (h), n, F77_DBLE_CMPLX_ARG (ptau), F77_DBLE_CMPLX_ARG (pwork), lwork, info)); m_unitary_hess_mat = m_hess_mat; - Complex *z = m_unitary_hess_mat.fortran_vec (); + Complex *z = m_unitary_hess_mat.rwdata (); F77_XFCN (zunghr, ZUNGHR, (n, ilo, ihi, F77_DBLE_CMPLX_ARG (z), n, F77_DBLE_CMPLX_ARG (ptau), F77_DBLE_CMPLX_ARG (pwork), @@ -252,26 +252,26 @@ F77_INT ihi; m_hess_mat = a; - FloatComplex *h = m_hess_mat.fortran_vec (); + FloatComplex *h = m_hess_mat.rwdata (); Array<float> scale (dim_vector (n, 1)); - float *pscale = scale.fortran_vec (); + float *pscale = scale.rwdata (); F77_XFCN (cgebal, CGEBAL, (F77_CONST_CHAR_ARG2 (&job, 1), n, F77_CMPLX_ARG (h), n, ilo, ihi, pscale, info F77_CHAR_ARG_LEN (1))); Array<FloatComplex> tau (dim_vector (n-1, 1)); - FloatComplex *ptau = tau.fortran_vec (); + FloatComplex *ptau = tau.rwdata (); Array<FloatComplex> work (dim_vector (lwork, 1)); - FloatComplex *pwork = work.fortran_vec (); + FloatComplex *pwork = work.rwdata (); F77_XFCN (cgehrd, CGEHRD, (n, ilo, ihi, F77_CMPLX_ARG (h), n, F77_CMPLX_ARG (ptau), F77_CMPLX_ARG (pwork), lwork, info)); m_unitary_hess_mat = m_hess_mat; - FloatComplex *z = m_unitary_hess_mat.fortran_vec (); + FloatComplex *z = m_unitary_hess_mat.rwdata (); F77_XFCN (cunghr, CUNGHR, (n, ilo, ihi, F77_CMPLX_ARG (z), n, F77_CMPLX_ARG (ptau), F77_CMPLX_ARG (pwork),
--- a/liboctave/numeric/lu.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/numeric/lu.cc Wed Dec 27 16:55:14 2023 -0800 @@ -278,10 +278,10 @@ F77_INT mn = (a_nr < a_nc ? a_nr : a_nc); m_ipvt.resize (dim_vector (mn, 1)); - F77_INT *pipvt = m_ipvt.fortran_vec (); + F77_INT *pipvt = m_ipvt.rwdata (); m_a_fact = a; - double *tmp_data = m_a_fact.fortran_vec (); + double *tmp_data = m_a_fact.rwdata (); F77_INT info = 0; @@ -315,8 +315,8 @@ ColumnVector utmp = u; ColumnVector vtmp = v; - F77_XFCN (dlu1up, DLU1UP, (m, n, l.fortran_vec (), m, r.fortran_vec (), - k, utmp.fortran_vec (), vtmp.fortran_vec ())); + F77_XFCN (dlu1up, DLU1UP, (m, n, l.rwdata (), m, r.rwdata (), + k, utmp.rwdata (), vtmp.rwdata ())); } template <> @@ -346,9 +346,9 @@ { ColumnVector utmp = u.column (i); ColumnVector vtmp = v.column (i); - F77_XFCN (dlu1up, DLU1UP, (m, n, l.fortran_vec (), - m, r.fortran_vec (), k, - utmp.fortran_vec (), vtmp.fortran_vec ())); + F77_XFCN (dlu1up, DLU1UP, (m, n, l.rwdata (), + m, r.rwdata (), k, + utmp.rwdata (), vtmp.rwdata ())); } } @@ -376,9 +376,9 @@ ColumnVector vtmp = v; OCTAVE_LOCAL_BUFFER (double, w, m); for (F77_INT i = 0; i < m; i++) m_ipvt(i) += 1; // increment - F77_XFCN (dlup1up, DLUP1UP, (m, n, l.fortran_vec (), - m, r.fortran_vec (), k, - m_ipvt.fortran_vec (), + F77_XFCN (dlup1up, DLUP1UP, (m, n, l.rwdata (), + m, r.rwdata (), k, + m_ipvt.rwdata (), utmp.data (), vtmp.data (), w)); for (F77_INT i = 0; i < m; i++) m_ipvt(i) -= 1; // decrement } @@ -412,9 +412,9 @@ { ColumnVector utmp = u.column (i); ColumnVector vtmp = v.column (i); - F77_XFCN (dlup1up, DLUP1UP, (m, n, l.fortran_vec (), - m, r.fortran_vec (), k, - m_ipvt.fortran_vec (), + F77_XFCN (dlup1up, DLUP1UP, (m, n, l.rwdata (), + m, r.rwdata (), k, + m_ipvt.rwdata (), utmp.data (), vtmp.data (), w)); } for (F77_INT i = 0; i < m; i++) m_ipvt(i) -= 1; // decrement @@ -431,10 +431,10 @@ F77_INT mn = (a_nr < a_nc ? a_nr : a_nc); m_ipvt.resize (dim_vector (mn, 1)); - F77_INT *pipvt = m_ipvt.fortran_vec (); + F77_INT *pipvt = m_ipvt.rwdata (); m_a_fact = a; - float *tmp_data = m_a_fact.fortran_vec (); + float *tmp_data = m_a_fact.rwdata (); F77_INT info = 0; @@ -469,9 +469,9 @@ FloatColumnVector utmp = u; FloatColumnVector vtmp = v; - F77_XFCN (slu1up, SLU1UP, (m, n, l.fortran_vec (), - m, r.fortran_vec (), k, - utmp.fortran_vec (), vtmp.fortran_vec ())); + F77_XFCN (slu1up, SLU1UP, (m, n, l.rwdata (), + m, r.rwdata (), k, + utmp.rwdata (), vtmp.rwdata ())); } template <> @@ -501,9 +501,9 @@ { FloatColumnVector utmp = u.column (i); FloatColumnVector vtmp = v.column (i); - F77_XFCN (slu1up, SLU1UP, (m, n, l.fortran_vec (), - m, r.fortran_vec (), k, - utmp.fortran_vec (), vtmp.fortran_vec ())); + F77_XFCN (slu1up, SLU1UP, (m, n, l.rwdata (), + m, r.rwdata (), k, + utmp.rwdata (), vtmp.rwdata ())); } } @@ -532,9 +532,9 @@ FloatColumnVector vtmp = v; OCTAVE_LOCAL_BUFFER (float, w, m); for (F77_INT i = 0; i < m; i++) m_ipvt(i) += 1; // increment - F77_XFCN (slup1up, SLUP1UP, (m, n, l.fortran_vec (), - m, r.fortran_vec (), k, - m_ipvt.fortran_vec (), + F77_XFCN (slup1up, SLUP1UP, (m, n, l.rwdata (), + m, r.rwdata (), k, + m_ipvt.rwdata (), utmp.data (), vtmp.data (), w)); for (F77_INT i = 0; i < m; i++) m_ipvt(i) -= 1; // decrement } @@ -568,9 +568,9 @@ { FloatColumnVector utmp = u.column (i); FloatColumnVector vtmp = v.column (i); - F77_XFCN (slup1up, SLUP1UP, (m, n, l.fortran_vec (), - m, r.fortran_vec (), k, - m_ipvt.fortran_vec (), + F77_XFCN (slup1up, SLUP1UP, (m, n, l.rwdata (), + m, r.rwdata (), k, + m_ipvt.rwdata (), utmp.data (), vtmp.data (), w)); } for (F77_INT i = 0; i < m; i++) m_ipvt(i) -= 1; // decrement @@ -587,10 +587,10 @@ F77_INT mn = (a_nr < a_nc ? a_nr : a_nc); m_ipvt.resize (dim_vector (mn, 1)); - F77_INT *pipvt = m_ipvt.fortran_vec (); + F77_INT *pipvt = m_ipvt.rwdata (); m_a_fact = a; - Complex *tmp_data = m_a_fact.fortran_vec (); + Complex *tmp_data = m_a_fact.rwdata (); F77_INT info = 0; @@ -626,10 +626,10 @@ ComplexColumnVector utmp = u; ComplexColumnVector vtmp = v; - F77_XFCN (zlu1up, ZLU1UP, (m, n, F77_DBLE_CMPLX_ARG (l.fortran_vec ()), m, - F77_DBLE_CMPLX_ARG (r.fortran_vec ()), k, - F77_DBLE_CMPLX_ARG (utmp.fortran_vec ()), - F77_DBLE_CMPLX_ARG (vtmp.fortran_vec ()))); + F77_XFCN (zlu1up, ZLU1UP, (m, n, F77_DBLE_CMPLX_ARG (l.rwdata ()), m, + F77_DBLE_CMPLX_ARG (r.rwdata ()), k, + F77_DBLE_CMPLX_ARG (utmp.rwdata ()), + F77_DBLE_CMPLX_ARG (vtmp.rwdata ()))); } template <> @@ -660,11 +660,11 @@ ComplexColumnVector utmp = u.column (i); ComplexColumnVector vtmp = v.column (i); F77_XFCN (zlu1up, ZLU1UP, (m, n, - F77_DBLE_CMPLX_ARG (l.fortran_vec ()), - m, F77_DBLE_CMPLX_ARG (r.fortran_vec ()), + F77_DBLE_CMPLX_ARG (l.rwdata ()), + m, F77_DBLE_CMPLX_ARG (r.rwdata ()), k, - F77_DBLE_CMPLX_ARG (utmp.fortran_vec ()), - F77_DBLE_CMPLX_ARG (vtmp.fortran_vec ()))); + F77_DBLE_CMPLX_ARG (utmp.rwdata ()), + F77_DBLE_CMPLX_ARG (vtmp.rwdata ()))); } } @@ -693,9 +693,9 @@ ComplexColumnVector vtmp = v; OCTAVE_LOCAL_BUFFER (Complex, w, m); for (F77_INT i = 0; i < m; i++) m_ipvt(i) += 1; // increment - F77_XFCN (zlup1up, ZLUP1UP, (m, n, F77_DBLE_CMPLX_ARG (l.fortran_vec ()), - m, F77_DBLE_CMPLX_ARG (r.fortran_vec ()), k, - m_ipvt.fortran_vec (), + F77_XFCN (zlup1up, ZLUP1UP, (m, n, F77_DBLE_CMPLX_ARG (l.rwdata ()), + m, F77_DBLE_CMPLX_ARG (r.rwdata ()), k, + m_ipvt.rwdata (), F77_CONST_DBLE_CMPLX_ARG (utmp.data ()), F77_CONST_DBLE_CMPLX_ARG (vtmp.data ()), F77_DBLE_CMPLX_ARG (w))); @@ -733,10 +733,10 @@ ComplexColumnVector utmp = u.column (i); ComplexColumnVector vtmp = v.column (i); F77_XFCN (zlup1up, ZLUP1UP, (m, n, - F77_DBLE_CMPLX_ARG (l.fortran_vec ()), + F77_DBLE_CMPLX_ARG (l.rwdata ()), m, - F77_DBLE_CMPLX_ARG (r.fortran_vec ()), - k, m_ipvt.fortran_vec (), + F77_DBLE_CMPLX_ARG (r.rwdata ()), + k, m_ipvt.rwdata (), F77_CONST_DBLE_CMPLX_ARG (utmp.data ()), F77_CONST_DBLE_CMPLX_ARG (vtmp.data ()), F77_DBLE_CMPLX_ARG (w))); @@ -755,10 +755,10 @@ F77_INT mn = (a_nr < a_nc ? a_nr : a_nc); m_ipvt.resize (dim_vector (mn, 1)); - F77_INT *pipvt = m_ipvt.fortran_vec (); + F77_INT *pipvt = m_ipvt.rwdata (); m_a_fact = a; - FloatComplex *tmp_data = m_a_fact.fortran_vec (); + FloatComplex *tmp_data = m_a_fact.rwdata (); F77_INT info = 0; @@ -794,10 +794,10 @@ FloatComplexColumnVector utmp = u; FloatComplexColumnVector vtmp = v; - F77_XFCN (clu1up, CLU1UP, (m, n, F77_CMPLX_ARG (l.fortran_vec ()), m, - F77_CMPLX_ARG (r.fortran_vec ()), k, - F77_CMPLX_ARG (utmp.fortran_vec ()), - F77_CMPLX_ARG (vtmp.fortran_vec ()))); + F77_XFCN (clu1up, CLU1UP, (m, n, F77_CMPLX_ARG (l.rwdata ()), m, + F77_CMPLX_ARG (r.rwdata ()), k, + F77_CMPLX_ARG (utmp.rwdata ()), + F77_CMPLX_ARG (vtmp.rwdata ()))); } template <> @@ -828,10 +828,10 @@ { FloatComplexColumnVector utmp = u.column (i); FloatComplexColumnVector vtmp = v.column (i); - F77_XFCN (clu1up, CLU1UP, (m, n, F77_CMPLX_ARG (l.fortran_vec ()), - m, F77_CMPLX_ARG (r.fortran_vec ()), k, - F77_CMPLX_ARG (utmp.fortran_vec ()), - F77_CMPLX_ARG (vtmp.fortran_vec ()))); + F77_XFCN (clu1up, CLU1UP, (m, n, F77_CMPLX_ARG (l.rwdata ()), + m, F77_CMPLX_ARG (r.rwdata ()), k, + F77_CMPLX_ARG (utmp.rwdata ()), + F77_CMPLX_ARG (vtmp.rwdata ()))); } } @@ -860,9 +860,9 @@ FloatComplexColumnVector vtmp = v; OCTAVE_LOCAL_BUFFER (FloatComplex, w, m); for (F77_INT i = 0; i < m; i++) m_ipvt(i) += 1; // increment - F77_XFCN (clup1up, CLUP1UP, (m, n, F77_CMPLX_ARG (l.fortran_vec ()), - m, F77_CMPLX_ARG (r.fortran_vec ()), k, - m_ipvt.fortran_vec (), + F77_XFCN (clup1up, CLUP1UP, (m, n, F77_CMPLX_ARG (l.rwdata ()), + m, F77_CMPLX_ARG (r.rwdata ()), k, + m_ipvt.rwdata (), F77_CONST_CMPLX_ARG (utmp.data ()), F77_CONST_CMPLX_ARG (vtmp.data ()), F77_CMPLX_ARG (w))); @@ -899,9 +899,9 @@ { FloatComplexColumnVector utmp = u.column (i); FloatComplexColumnVector vtmp = v.column (i); - F77_XFCN (clup1up, CLUP1UP, (m, n, F77_CMPLX_ARG (l.fortran_vec ()), - m, F77_CMPLX_ARG (r.fortran_vec ()), k, - m_ipvt.fortran_vec (), + F77_XFCN (clup1up, CLUP1UP, (m, n, F77_CMPLX_ARG (l.rwdata ()), + m, F77_CMPLX_ARG (r.rwdata ()), k, + m_ipvt.rwdata (), F77_CONST_CMPLX_ARG (utmp.data ()), F77_CONST_CMPLX_ARG (vtmp.data ()), F77_CMPLX_ARG (w)));
--- a/liboctave/numeric/oct-convn.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/numeric/oct-convn.cc Wed Dec 27 16:55:14 2023 -0800 @@ -180,7 +180,7 @@ convolve_nd<T, R> (a.data (), adims, adims.cumulative (), b.data (), bdims, bdims.cumulative (), - c.fortran_vec (), cdims.cumulative (), + c.rwdata (), cdims.cumulative (), nd, ct == convn_valid); if (ct == convn_same)
--- a/liboctave/numeric/oct-rand.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/numeric/oct-rand.cc Wed Dec 27 16:55:14 2023 -0800 @@ -523,7 +523,7 @@ { retval.clear (n, 1); - fill (retval.numel (), retval.fortran_vec (), a); + fill (retval.numel (), retval.rwdata (), a); } else if (n < 0) (*current_liboctave_error_handler) ("rand: invalid negative argument"); @@ -545,7 +545,7 @@ { retval.clear (dims); - fill (retval.numel (), retval.fortran_vec (), a); + fill (retval.numel (), retval.rwdata (), a); } return retval; @@ -560,7 +560,7 @@ { retval.clear (dims); - fill (retval.numel (), retval.fortran_vec (), a); + fill (retval.numel (), retval.rwdata (), a); } return retval; @@ -627,7 +627,7 @@ { uint32NDArray s (dim_vector (MT_N + 1, 1)); - get_mersenne_twister_state (reinterpret_cast<uint32_t *> (s.fortran_vec ())); + get_mersenne_twister_state (reinterpret_cast<uint32_t *> (s.rwdata ())); return s; }
--- a/liboctave/numeric/qr.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/numeric/qr.cc Wed Dec 27 16:55:14 2023 -0800 @@ -435,14 +435,14 @@ F77_INT k = to_f77_int (m_q.cols ()); // workspace query. double rlwork; - F77_XFCN (dorgqr, DORGQR, (m, k, min_mn, m_q.fortran_vec (), m, + F77_XFCN (dorgqr, DORGQR, (m, k, min_mn, m_q.rwdata (), m, tau, &rlwork, -1, info)); // allocate buffer and do the job. F77_INT lwork = static_cast<F77_INT> (rlwork); lwork = std::max (lwork, static_cast<F77_INT> (1)); OCTAVE_LOCAL_BUFFER (double, work, lwork); - F77_XFCN (dorgqr, DORGQR, (m, k, min_mn, m_q.fortran_vec (), m, + F77_XFCN (dorgqr, DORGQR, (m, k, min_mn, m_q.rwdata (), m, tau, work, lwork, info)); } } @@ -468,14 +468,14 @@ { // workspace query. double rlwork; - F77_XFCN (dgeqrf, DGEQRF, (m, n, afact.fortran_vec (), m, tau, + F77_XFCN (dgeqrf, DGEQRF, (m, n, afact.rwdata (), m, tau, &rlwork, -1, info)); // allocate buffer and do the job. F77_INT lwork = static_cast<F77_INT> (rlwork); lwork = std::max (lwork, static_cast<F77_INT> (1)); OCTAVE_LOCAL_BUFFER (double, work, lwork); - F77_XFCN (dgeqrf, DGEQRF, (m, n, afact.fortran_vec (), m, tau, + F77_XFCN (dgeqrf, DGEQRF, (m, n, afact.rwdata (), m, tau, work, lwork, info)); } @@ -501,9 +501,9 @@ ColumnVector utmp = u; ColumnVector vtmp = v; OCTAVE_LOCAL_BUFFER (double, w, 2*k); - F77_XFCN (dqr1up, DQR1UP, (m, n, k, m_q.fortran_vec (), m, - m_r.fortran_vec (), k, utmp.fortran_vec (), - vtmp.fortran_vec (), w)); + F77_XFCN (dqr1up, DQR1UP, (m, n, k, m_q.rwdata (), m, + m_r.rwdata (), k, utmp.rwdata (), + vtmp.rwdata (), w)); } template <> @@ -528,9 +528,9 @@ { ColumnVector utmp = u.column (i); ColumnVector vtmp = v.column (i); - F77_XFCN (dqr1up, DQR1UP, (m, n, k, m_q.fortran_vec (), m, - m_r.fortran_vec (), k, utmp.fortran_vec (), - vtmp.fortran_vec (), w)); + F77_XFCN (dqr1up, DQR1UP, (m, n, k, m_q.rwdata (), m, + m_r.rwdata (), k, utmp.rwdata (), + vtmp.rwdata (), w)); } } @@ -565,8 +565,8 @@ ColumnVector utmp = u; OCTAVE_LOCAL_BUFFER (double, w, k); - F77_XFCN (dqrinc, DQRINC, (m, n, k, m_q.fortran_vec (), ldq, - m_r.fortran_vec (), ldr, j + 1, + F77_XFCN (dqrinc, DQRINC, (m, n, k, m_q.rwdata (), ldq, + m_r.rwdata (), ldr, j + 1, utmp.data (), w)); } @@ -621,8 +621,8 @@ ColumnVector utmp = u.column (jsi(i)); F77_INT js_elt = to_f77_int (js(ii)); F77_XFCN (dqrinc, DQRINC, (m, n + ii, std::min (kmax, k + ii), - m_q.fortran_vec (), ldq, - m_r.fortran_vec (), ldr, js_elt + 1, + m_q.rwdata (), ldq, + m_r.rwdata (), ldr, js_elt + 1, utmp.data (), w)); } } @@ -645,8 +645,8 @@ F77_INT ldr = to_f77_int (m_r.rows ()); OCTAVE_LOCAL_BUFFER (double, w, k); - F77_XFCN (dqrdec, DQRDEC, (m, n, k, m_q.fortran_vec (), ldq, - m_r.fortran_vec (), ldr, j + 1, w)); + F77_XFCN (dqrdec, DQRDEC, (m, n, k, m_q.rwdata (), ldq, + m_r.rwdata (), ldr, j + 1, w)); if (k < m) { @@ -692,8 +692,8 @@ F77_INT ii = i; F77_INT js_elt = to_f77_int (js(ii)); F77_XFCN (dqrdec, DQRDEC, (m, n - ii, (k == m ? k : k - ii), - m_q.fortran_vec (), ldq, - m_r.fortran_vec (), ldr, + m_q.rwdata (), ldq, + m_r.rwdata (), ldr, js_elt + 1, w)); } @@ -733,9 +733,9 @@ RowVector utmp = u; OCTAVE_LOCAL_BUFFER (double, w, k); - F77_XFCN (dqrinr, DQRINR, (m, n, m_q.fortran_vec (), ldq, - m_r.fortran_vec (), ldr, - j + 1, utmp.fortran_vec (), w)); + F77_XFCN (dqrinr, DQRINR, (m, n, m_q.rwdata (), ldq, + m_r.rwdata (), ldr, + j + 1, utmp.rwdata (), w)); } @@ -758,8 +758,8 @@ F77_INT ldr = to_f77_int (m_r.rows ()); OCTAVE_LOCAL_BUFFER (double, w, 2*m); - F77_XFCN (dqrder, DQRDER, (m, n, m_q.fortran_vec (), ldq, - m_r.fortran_vec (), ldr, j + 1, w)); + F77_XFCN (dqrder, DQRDER, (m, n, m_q.rwdata (), ldq, + m_r.rwdata (), ldr, j + 1, w)); m_q.resize (m - 1, m - 1); m_r.resize (m - 1, n); @@ -784,8 +784,8 @@ OCTAVE_LOCAL_BUFFER (double, w, 2*k); F77_XFCN (dqrshc, DQRSHC, (m, n, k, - m_q.fortran_vec (), ldq, - m_r.fortran_vec (), ldr, + m_q.rwdata (), ldq, + m_r.rwdata (), ldr, i + 1, j + 1, w)); } @@ -849,14 +849,14 @@ F77_INT k = to_f77_int (m_q.cols ()); // workspace query. float rlwork; - F77_XFCN (sorgqr, SORGQR, (m, k, min_mn, m_q.fortran_vec (), m, + F77_XFCN (sorgqr, SORGQR, (m, k, min_mn, m_q.rwdata (), m, tau, &rlwork, -1, info)); // allocate buffer and do the job. F77_INT lwork = static_cast<F77_INT> (rlwork); lwork = std::max (lwork, static_cast<F77_INT> (1)); OCTAVE_LOCAL_BUFFER (float, work, lwork); - F77_XFCN (sorgqr, SORGQR, (m, k, min_mn, m_q.fortran_vec (), m, + F77_XFCN (sorgqr, SORGQR, (m, k, min_mn, m_q.rwdata (), m, tau, work, lwork, info)); } } @@ -882,14 +882,14 @@ { // workspace query. float rlwork; - F77_XFCN (sgeqrf, SGEQRF, (m, n, afact.fortran_vec (), m, tau, + F77_XFCN (sgeqrf, SGEQRF, (m, n, afact.rwdata (), m, tau, &rlwork, -1, info)); // allocate buffer and do the job. F77_INT lwork = static_cast<F77_INT> (rlwork); lwork = std::max (lwork, static_cast<F77_INT> (1)); OCTAVE_LOCAL_BUFFER (float, work, lwork); - F77_XFCN (sgeqrf, SGEQRF, (m, n, afact.fortran_vec (), m, tau, + F77_XFCN (sgeqrf, SGEQRF, (m, n, afact.rwdata (), m, tau, work, lwork, info)); } @@ -915,9 +915,9 @@ FloatColumnVector utmp = u; FloatColumnVector vtmp = v; OCTAVE_LOCAL_BUFFER (float, w, 2*k); - F77_XFCN (sqr1up, SQR1UP, (m, n, k, m_q.fortran_vec (), m, - m_r.fortran_vec (), k, utmp.fortran_vec (), - vtmp.fortran_vec (), w)); + F77_XFCN (sqr1up, SQR1UP, (m, n, k, m_q.rwdata (), m, + m_r.rwdata (), k, utmp.rwdata (), + vtmp.rwdata (), w)); } template <> @@ -942,9 +942,9 @@ { FloatColumnVector utmp = u.column (i); FloatColumnVector vtmp = v.column (i); - F77_XFCN (sqr1up, SQR1UP, (m, n, k, m_q.fortran_vec (), m, - m_r.fortran_vec (), k, utmp.fortran_vec (), - vtmp.fortran_vec (), w)); + F77_XFCN (sqr1up, SQR1UP, (m, n, k, m_q.rwdata (), m, + m_r.rwdata (), k, utmp.rwdata (), + vtmp.rwdata (), w)); } } @@ -980,8 +980,8 @@ FloatColumnVector utmp = u; OCTAVE_LOCAL_BUFFER (float, w, k); - F77_XFCN (sqrinc, SQRINC, (m, n, k, m_q.fortran_vec (), ldq, - m_r.fortran_vec (), ldr, j + 1, + F77_XFCN (sqrinc, SQRINC, (m, n, k, m_q.rwdata (), ldq, + m_r.rwdata (), ldr, j + 1, utmp.data (), w)); } @@ -1037,8 +1037,8 @@ FloatColumnVector utmp = u.column (jsi(i)); F77_INT js_elt = to_f77_int (js(ii)); F77_XFCN (sqrinc, SQRINC, (m, n + ii, std::min (kmax, k + ii), - m_q.fortran_vec (), ldq, - m_r.fortran_vec (), ldr, js_elt + 1, + m_q.rwdata (), ldq, + m_r.rwdata (), ldr, js_elt + 1, utmp.data (), w)); } } @@ -1061,8 +1061,8 @@ F77_INT ldr = to_f77_int (m_r.rows ()); OCTAVE_LOCAL_BUFFER (float, w, k); - F77_XFCN (sqrdec, SQRDEC, (m, n, k, m_q.fortran_vec (), ldq, - m_r.fortran_vec (), ldr, j + 1, w)); + F77_XFCN (sqrdec, SQRDEC, (m, n, k, m_q.rwdata (), ldq, + m_r.rwdata (), ldr, j + 1, w)); if (k < m) { @@ -1108,8 +1108,8 @@ F77_INT ii = i; F77_INT js_elt = to_f77_int (js(ii)); F77_XFCN (sqrdec, SQRDEC, (m, n - ii, (k == m ? k : k - ii), - m_q.fortran_vec (), ldq, - m_r.fortran_vec (), ldr, + m_q.rwdata (), ldq, + m_r.rwdata (), ldr, js_elt + 1, w)); } @@ -1150,9 +1150,9 @@ FloatRowVector utmp = u; OCTAVE_LOCAL_BUFFER (float, w, k); - F77_XFCN (sqrinr, SQRINR, (m, n, m_q.fortran_vec (), ldq, - m_r.fortran_vec (), ldr, - j + 1, utmp.fortran_vec (), w)); + F77_XFCN (sqrinr, SQRINR, (m, n, m_q.rwdata (), ldq, + m_r.rwdata (), ldr, + j + 1, utmp.rwdata (), w)); } @@ -1175,8 +1175,8 @@ F77_INT ldr = to_f77_int (m_r.rows ()); OCTAVE_LOCAL_BUFFER (float, w, 2*m); - F77_XFCN (sqrder, SQRDER, (m, n, m_q.fortran_vec (), ldq, - m_r.fortran_vec (), ldr, j + 1, + F77_XFCN (sqrder, SQRDER, (m, n, m_q.rwdata (), ldq, + m_r.rwdata (), ldr, j + 1, w)); m_q.resize (m - 1, m - 1); @@ -1202,8 +1202,8 @@ OCTAVE_LOCAL_BUFFER (float, w, 2*k); F77_XFCN (sqrshc, SQRSHC, (m, n, k, - m_q.fortran_vec (), ldq, - m_r.fortran_vec (), ldr, + m_q.rwdata (), ldq, + m_r.rwdata (), ldr, i + 1, j + 1, w)); } @@ -1268,7 +1268,7 @@ // workspace query. Complex clwork; F77_XFCN (zungqr, ZUNGQR, (m, k, min_mn, - F77_DBLE_CMPLX_ARG (m_q.fortran_vec ()), + F77_DBLE_CMPLX_ARG (m_q.rwdata ()), m, F77_DBLE_CMPLX_ARG (tau), F77_DBLE_CMPLX_ARG (&clwork), -1, info)); @@ -1278,7 +1278,7 @@ lwork = std::max (lwork, static_cast<F77_INT> (1)); OCTAVE_LOCAL_BUFFER (Complex, work, lwork); F77_XFCN (zungqr, ZUNGQR, (m, k, min_mn, - F77_DBLE_CMPLX_ARG (m_q.fortran_vec ()), + F77_DBLE_CMPLX_ARG (m_q.rwdata ()), m, F77_DBLE_CMPLX_ARG (tau), F77_DBLE_CMPLX_ARG (work), lwork, info)); @@ -1307,7 +1307,7 @@ // workspace query. Complex clwork; F77_XFCN (zgeqrf, ZGEQRF, (m, n, - F77_DBLE_CMPLX_ARG (afact.fortran_vec ()), + F77_DBLE_CMPLX_ARG (afact.rwdata ()), m, F77_DBLE_CMPLX_ARG (tau), F77_DBLE_CMPLX_ARG (&clwork), -1, info)); @@ -1316,7 +1316,7 @@ lwork = std::max (lwork, static_cast<F77_INT> (1)); OCTAVE_LOCAL_BUFFER (Complex, work, lwork); F77_XFCN (zgeqrf, ZGEQRF, (m, n, - F77_DBLE_CMPLX_ARG (afact.fortran_vec ()), + F77_DBLE_CMPLX_ARG (afact.rwdata ()), m, F77_DBLE_CMPLX_ARG (tau), F77_DBLE_CMPLX_ARG (work), lwork, info)); } @@ -1345,10 +1345,10 @@ ComplexColumnVector vtmp = v; OCTAVE_LOCAL_BUFFER (Complex, w, k); OCTAVE_LOCAL_BUFFER (double, rw, k); - F77_XFCN (zqr1up, ZQR1UP, (m, n, k, F77_DBLE_CMPLX_ARG (m_q.fortran_vec ()), - m, F77_DBLE_CMPLX_ARG (m_r.fortran_vec ()), k, - F77_DBLE_CMPLX_ARG (utmp.fortran_vec ()), - F77_DBLE_CMPLX_ARG (vtmp.fortran_vec ()), + F77_XFCN (zqr1up, ZQR1UP, (m, n, k, F77_DBLE_CMPLX_ARG (m_q.rwdata ()), + m, F77_DBLE_CMPLX_ARG (m_r.rwdata ()), k, + F77_DBLE_CMPLX_ARG (utmp.rwdata ()), + F77_DBLE_CMPLX_ARG (vtmp.rwdata ()), F77_DBLE_CMPLX_ARG (w), rw)); } @@ -1376,10 +1376,10 @@ ComplexColumnVector utmp = u.column (i); ComplexColumnVector vtmp = v.column (i); F77_XFCN (zqr1up, ZQR1UP, (m, n, k, - F77_DBLE_CMPLX_ARG (m_q.fortran_vec ()), - m, F77_DBLE_CMPLX_ARG (m_r.fortran_vec ()), k, - F77_DBLE_CMPLX_ARG (utmp.fortran_vec ()), - F77_DBLE_CMPLX_ARG (vtmp.fortran_vec ()), + F77_DBLE_CMPLX_ARG (m_q.rwdata ()), + m, F77_DBLE_CMPLX_ARG (m_r.rwdata ()), k, + F77_DBLE_CMPLX_ARG (utmp.rwdata ()), + F77_DBLE_CMPLX_ARG (vtmp.rwdata ()), F77_DBLE_CMPLX_ARG (w), rw)); } } @@ -1416,8 +1416,8 @@ ComplexColumnVector utmp = u; OCTAVE_LOCAL_BUFFER (double, rw, k); - F77_XFCN (zqrinc, ZQRINC, (m, n, k, F77_DBLE_CMPLX_ARG (m_q.fortran_vec ()), - ldq, F77_DBLE_CMPLX_ARG (m_r.fortran_vec ()), + F77_XFCN (zqrinc, ZQRINC, (m, n, k, F77_DBLE_CMPLX_ARG (m_q.rwdata ()), + ldq, F77_DBLE_CMPLX_ARG (m_r.rwdata ()), ldr, j + 1, F77_CONST_DBLE_CMPLX_ARG (utmp.data ()), rw)); } @@ -1474,9 +1474,9 @@ ComplexColumnVector utmp = u.column (jsi(i)); F77_INT js_elt = to_f77_int (js(ii)); F77_XFCN (zqrinc, ZQRINC, (m, n + ii, std::min (kmax, k + ii), - F77_DBLE_CMPLX_ARG (m_q.fortran_vec ()), + F77_DBLE_CMPLX_ARG (m_q.rwdata ()), ldq, - F77_DBLE_CMPLX_ARG (m_r.fortran_vec ()), + F77_DBLE_CMPLX_ARG (m_r.rwdata ()), ldr, js_elt + 1, F77_CONST_DBLE_CMPLX_ARG (utmp.data ()), rw)); @@ -1501,8 +1501,8 @@ F77_INT ldr = to_f77_int (m_r.rows ()); OCTAVE_LOCAL_BUFFER (double, rw, k); - F77_XFCN (zqrdec, ZQRDEC, (m, n, k, F77_DBLE_CMPLX_ARG (m_q.fortran_vec ()), - ldq, F77_DBLE_CMPLX_ARG (m_r.fortran_vec ()), + F77_XFCN (zqrdec, ZQRDEC, (m, n, k, F77_DBLE_CMPLX_ARG (m_q.rwdata ()), + ldq, F77_DBLE_CMPLX_ARG (m_r.rwdata ()), ldr, j + 1, rw)); if (k < m) @@ -1549,9 +1549,9 @@ F77_INT ii = i; F77_INT js_elt = to_f77_int (js(ii)); F77_XFCN (zqrdec, ZQRDEC, (m, n - ii, (k == m ? k : k - ii), - F77_DBLE_CMPLX_ARG (m_q.fortran_vec ()), + F77_DBLE_CMPLX_ARG (m_q.rwdata ()), ldq, - F77_DBLE_CMPLX_ARG (m_r.fortran_vec ()), + F77_DBLE_CMPLX_ARG (m_r.rwdata ()), ldr, js_elt + 1, rw)); } @@ -1592,10 +1592,10 @@ ComplexRowVector utmp = u; OCTAVE_LOCAL_BUFFER (double, rw, k); - F77_XFCN (zqrinr, ZQRINR, (m, n, F77_DBLE_CMPLX_ARG (m_q.fortran_vec ()), - ldq, F77_DBLE_CMPLX_ARG (m_r.fortran_vec ()), + F77_XFCN (zqrinr, ZQRINR, (m, n, F77_DBLE_CMPLX_ARG (m_q.rwdata ()), + ldq, F77_DBLE_CMPLX_ARG (m_r.rwdata ()), ldr, j + 1, - F77_DBLE_CMPLX_ARG (utmp.fortran_vec ()), rw)); + F77_DBLE_CMPLX_ARG (utmp.rwdata ()), rw)); } @@ -1619,8 +1619,8 @@ OCTAVE_LOCAL_BUFFER (Complex, w, m); OCTAVE_LOCAL_BUFFER (double, rw, m); - F77_XFCN (zqrder, ZQRDER, (m, n, F77_DBLE_CMPLX_ARG (m_q.fortran_vec ()), - ldq, F77_DBLE_CMPLX_ARG (m_r.fortran_vec ()), + F77_XFCN (zqrder, ZQRDER, (m, n, F77_DBLE_CMPLX_ARG (m_q.rwdata ()), + ldq, F77_DBLE_CMPLX_ARG (m_r.rwdata ()), ldr, j + 1, F77_DBLE_CMPLX_ARG (w), rw)); m_q.resize (m - 1, m - 1); @@ -1648,8 +1648,8 @@ OCTAVE_LOCAL_BUFFER (Complex, w, k); OCTAVE_LOCAL_BUFFER (double, rw, k); F77_XFCN (zqrshc, ZQRSHC, (m, n, k, - F77_DBLE_CMPLX_ARG (m_q.fortran_vec ()), ldq, - F77_DBLE_CMPLX_ARG (m_r.fortran_vec ()), ldr, + F77_DBLE_CMPLX_ARG (m_q.rwdata ()), ldq, + F77_DBLE_CMPLX_ARG (m_r.rwdata ()), ldr, i + 1, j + 1, F77_DBLE_CMPLX_ARG (w), rw)); } @@ -1714,7 +1714,7 @@ // workspace query. FloatComplex clwork; F77_XFCN (cungqr, CUNGQR, (m, k, min_mn, - F77_CMPLX_ARG (m_q.fortran_vec ()), m, + F77_CMPLX_ARG (m_q.rwdata ()), m, F77_CMPLX_ARG (tau), F77_CMPLX_ARG (&clwork), -1, info)); @@ -1723,7 +1723,7 @@ lwork = std::max (lwork, static_cast<F77_INT> (1)); OCTAVE_LOCAL_BUFFER (FloatComplex, work, lwork); F77_XFCN (cungqr, CUNGQR, (m, k, min_mn, - F77_CMPLX_ARG (m_q.fortran_vec ()), m, + F77_CMPLX_ARG (m_q.rwdata ()), m, F77_CMPLX_ARG (tau), F77_CMPLX_ARG (work), lwork, info)); } @@ -1750,7 +1750,7 @@ { // workspace query. FloatComplex clwork; - F77_XFCN (cgeqrf, CGEQRF, (m, n, F77_CMPLX_ARG (afact.fortran_vec ()), + F77_XFCN (cgeqrf, CGEQRF, (m, n, F77_CMPLX_ARG (afact.rwdata ()), m, F77_CMPLX_ARG (tau), F77_CMPLX_ARG (&clwork), -1, info)); @@ -1758,7 +1758,7 @@ F77_INT lwork = static_cast<F77_INT> (clwork.real ()); lwork = std::max (lwork, static_cast<F77_INT> (1)); OCTAVE_LOCAL_BUFFER (FloatComplex, work, lwork); - F77_XFCN (cgeqrf, CGEQRF, (m, n, F77_CMPLX_ARG (afact.fortran_vec ()), + F77_XFCN (cgeqrf, CGEQRF, (m, n, F77_CMPLX_ARG (afact.rwdata ()), m, F77_CMPLX_ARG (tau), F77_CMPLX_ARG (work), lwork, info)); } @@ -1787,10 +1787,10 @@ FloatComplexColumnVector vtmp = v; OCTAVE_LOCAL_BUFFER (FloatComplex, w, k); OCTAVE_LOCAL_BUFFER (float, rw, k); - F77_XFCN (cqr1up, CQR1UP, (m, n, k, F77_CMPLX_ARG (m_q.fortran_vec ()), - m, F77_CMPLX_ARG (m_r.fortran_vec ()), k, - F77_CMPLX_ARG (utmp.fortran_vec ()), - F77_CMPLX_ARG (vtmp.fortran_vec ()), + F77_XFCN (cqr1up, CQR1UP, (m, n, k, F77_CMPLX_ARG (m_q.rwdata ()), + m, F77_CMPLX_ARG (m_r.rwdata ()), k, + F77_CMPLX_ARG (utmp.rwdata ()), + F77_CMPLX_ARG (vtmp.rwdata ()), F77_CMPLX_ARG (w), rw)); } @@ -1818,10 +1818,10 @@ { FloatComplexColumnVector utmp = u.column (i); FloatComplexColumnVector vtmp = v.column (i); - F77_XFCN (cqr1up, CQR1UP, (m, n, k, F77_CMPLX_ARG (m_q.fortran_vec ()), - m, F77_CMPLX_ARG (m_r.fortran_vec ()), k, - F77_CMPLX_ARG (utmp.fortran_vec ()), - F77_CMPLX_ARG (vtmp.fortran_vec ()), + F77_XFCN (cqr1up, CQR1UP, (m, n, k, F77_CMPLX_ARG (m_q.rwdata ()), + m, F77_CMPLX_ARG (m_r.rwdata ()), k, + F77_CMPLX_ARG (utmp.rwdata ()), + F77_CMPLX_ARG (vtmp.rwdata ()), F77_CMPLX_ARG (w), rw)); } } @@ -1858,8 +1858,8 @@ FloatComplexColumnVector utmp = u; OCTAVE_LOCAL_BUFFER (float, rw, k); - F77_XFCN (cqrinc, CQRINC, (m, n, k, F77_CMPLX_ARG (m_q.fortran_vec ()), ldq, - F77_CMPLX_ARG (m_r.fortran_vec ()), ldr, j + 1, + F77_XFCN (cqrinc, CQRINC, (m, n, k, F77_CMPLX_ARG (m_q.rwdata ()), ldq, + F77_CMPLX_ARG (m_r.rwdata ()), ldr, j + 1, F77_CONST_CMPLX_ARG (utmp.data ()), rw)); } @@ -1914,8 +1914,8 @@ F77_INT ii = i; F77_INT js_elt = to_f77_int (js(ii)); F77_XFCN (cqrinc, CQRINC, (m, n + ii, std::min (kmax, k + ii), - F77_CMPLX_ARG (m_q.fortran_vec ()), ldq, - F77_CMPLX_ARG (m_r.fortran_vec ()), ldr, + F77_CMPLX_ARG (m_q.rwdata ()), ldq, + F77_CMPLX_ARG (m_r.rwdata ()), ldr, js_elt + 1, F77_CONST_CMPLX_ARG (u.column (jsi(i)).data ()), rw)); @@ -1940,8 +1940,8 @@ F77_INT ldr = to_f77_int (m_r.rows ()); OCTAVE_LOCAL_BUFFER (float, rw, k); - F77_XFCN (cqrdec, CQRDEC, (m, n, k, F77_CMPLX_ARG (m_q.fortran_vec ()), ldq, - F77_CMPLX_ARG (m_r.fortran_vec ()), ldr, j + 1, + F77_XFCN (cqrdec, CQRDEC, (m, n, k, F77_CMPLX_ARG (m_q.rwdata ()), ldq, + F77_CMPLX_ARG (m_r.rwdata ()), ldr, j + 1, rw)); if (k < m) @@ -1988,8 +1988,8 @@ F77_INT ii = i; F77_INT js_elt = to_f77_int (js(ii)); F77_XFCN (cqrdec, CQRDEC, (m, n - ii, (k == m ? k : k - ii), - F77_CMPLX_ARG (m_q.fortran_vec ()), ldq, - F77_CMPLX_ARG (m_r.fortran_vec ()), ldr, + F77_CMPLX_ARG (m_q.rwdata ()), ldq, + F77_CMPLX_ARG (m_r.rwdata ()), ldr, js_elt + 1, rw)); } @@ -2030,9 +2030,9 @@ FloatComplexRowVector utmp = u; OCTAVE_LOCAL_BUFFER (float, rw, k); - F77_XFCN (cqrinr, CQRINR, (m, n, F77_CMPLX_ARG (m_q.fortran_vec ()), ldq, - F77_CMPLX_ARG (m_r.fortran_vec ()), ldr, - j + 1, F77_CMPLX_ARG (utmp.fortran_vec ()), + F77_XFCN (cqrinr, CQRINR, (m, n, F77_CMPLX_ARG (m_q.rwdata ()), ldq, + F77_CMPLX_ARG (m_r.rwdata ()), ldr, + j + 1, F77_CMPLX_ARG (utmp.rwdata ()), rw)); } @@ -2057,8 +2057,8 @@ OCTAVE_LOCAL_BUFFER (FloatComplex, w, m); OCTAVE_LOCAL_BUFFER (float, rw, m); - F77_XFCN (cqrder, CQRDER, (m, n, F77_CMPLX_ARG (m_q.fortran_vec ()), ldq, - F77_CMPLX_ARG (m_r.fortran_vec ()), ldr, j + 1, + F77_XFCN (cqrder, CQRDER, (m, n, F77_CMPLX_ARG (m_q.rwdata ()), ldq, + F77_CMPLX_ARG (m_r.rwdata ()), ldr, j + 1, F77_CMPLX_ARG (w), rw)); m_q.resize (m - 1, m - 1); @@ -2086,8 +2086,8 @@ OCTAVE_LOCAL_BUFFER (FloatComplex, w, k); OCTAVE_LOCAL_BUFFER (float, rw, k); F77_XFCN (cqrshc, CQRSHC, (m, n, k, - F77_CMPLX_ARG (m_q.fortran_vec ()), ldq, - F77_CMPLX_ARG (m_r.fortran_vec ()), ldr, + F77_CMPLX_ARG (m_q.rwdata ()), ldq, + F77_CMPLX_ARG (m_r.rwdata ()), ldr, i + 1, j + 1, F77_CMPLX_ARG (w), rw)); }
--- a/liboctave/numeric/qrp.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/numeric/qrp.cc Wed Dec 27 16:55:14 2023 -0800 @@ -74,8 +74,8 @@ { // workspace query. double rlwork; - F77_XFCN (dgeqp3, DGEQP3, (m, n, afact.fortran_vec (), - m, jpvt.fortran_vec (), tau, + F77_XFCN (dgeqp3, DGEQP3, (m, n, afact.rwdata (), + m, jpvt.rwdata (), tau, &rlwork, -1, info)); // allocate buffer and do the job. @@ -83,8 +83,8 @@ lwork = std::max (lwork, static_cast<F77_INT> (1)); OCTAVE_LOCAL_BUFFER (double, work, lwork); - F77_XFCN (dgeqp3, DGEQP3, (m, n, afact.fortran_vec (), - m, jpvt.fortran_vec (), tau, + F77_XFCN (dgeqp3, DGEQP3, (m, n, afact.rwdata (), + m, jpvt.rwdata (), tau, work, lwork, info)); } else @@ -145,8 +145,8 @@ { // workspace query. float rlwork; - F77_XFCN (sgeqp3, SGEQP3, (m, n, afact.fortran_vec (), - m, jpvt.fortran_vec (), tau, + F77_XFCN (sgeqp3, SGEQP3, (m, n, afact.rwdata (), + m, jpvt.rwdata (), tau, &rlwork, -1, info)); // allocate buffer and do the job. @@ -154,8 +154,8 @@ lwork = std::max (lwork, static_cast<F77_INT> (1)); OCTAVE_LOCAL_BUFFER (float, work, lwork); - F77_XFCN (sgeqp3, SGEQP3, (m, n, afact.fortran_vec (), - m, jpvt.fortran_vec (), tau, + F77_XFCN (sgeqp3, SGEQP3, (m, n, afact.rwdata (), + m, jpvt.rwdata (), tau, work, lwork, info)); } else @@ -219,8 +219,8 @@ // workspace query. Complex clwork; F77_XFCN (zgeqp3, ZGEQP3, (m, n, - F77_DBLE_CMPLX_ARG (afact.fortran_vec ()), - m, jpvt.fortran_vec (), + F77_DBLE_CMPLX_ARG (afact.rwdata ()), + m, jpvt.rwdata (), F77_DBLE_CMPLX_ARG (tau), F77_DBLE_CMPLX_ARG (&clwork), -1, rwork, info)); @@ -231,8 +231,8 @@ OCTAVE_LOCAL_BUFFER (Complex, work, lwork); F77_XFCN (zgeqp3, ZGEQP3, (m, n, - F77_DBLE_CMPLX_ARG (afact.fortran_vec ()), - m, jpvt.fortran_vec (), + F77_DBLE_CMPLX_ARG (afact.rwdata ()), + m, jpvt.rwdata (), F77_DBLE_CMPLX_ARG (tau), F77_DBLE_CMPLX_ARG (work), lwork, rwork, info)); @@ -298,8 +298,8 @@ // workspace query. FloatComplex clwork; F77_XFCN (cgeqp3, CGEQP3, (m, n, - F77_CMPLX_ARG (afact.fortran_vec ()), - m, jpvt.fortran_vec (), + F77_CMPLX_ARG (afact.rwdata ()), + m, jpvt.rwdata (), F77_CMPLX_ARG (tau), F77_CMPLX_ARG (&clwork), -1, rwork, info)); @@ -310,8 +310,8 @@ OCTAVE_LOCAL_BUFFER (FloatComplex, work, lwork); F77_XFCN (cgeqp3, CGEQP3, (m, n, - F77_CMPLX_ARG (afact.fortran_vec ()), - m, jpvt.fortran_vec (), + F77_CMPLX_ARG (afact.rwdata ()), + m, jpvt.rwdata (), F77_CMPLX_ARG (tau), F77_CMPLX_ARG (work), lwork, rwork, info));
--- a/liboctave/numeric/schur.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/numeric/schur.cc Wed Dec 27 16:55:14 2023 -0800 @@ -152,25 +152,25 @@ if (calc_unitary) m_unitary_schur_mat.clear (n, n); - double *s = m_schur_mat.fortran_vec (); - double *q = m_unitary_schur_mat.fortran_vec (); + double *s = m_schur_mat.rwdata (); + double *q = m_unitary_schur_mat.rwdata (); Array<double> wr (dim_vector (n, 1)); - double *pwr = wr.fortran_vec (); + double *pwr = wr.rwdata (); Array<double> wi (dim_vector (n, 1)); - double *pwi = wi.fortran_vec (); + double *pwi = wi.rwdata (); Array<double> work (dim_vector (lwork, 1)); - double *pwork = work.fortran_vec (); + double *pwork = work.rwdata (); // BWORK is not referenced for the non-ordered Schur routine. F77_INT ntmp = (ord_char == 'N' || ord_char == 'n') ? 0 : n; Array<F77_INT> bwork (dim_vector (ntmp, 1)); - F77_INT *pbwork = bwork.fortran_vec (); + F77_INT *pbwork = bwork.rwdata (); Array<F77_INT> iwork (dim_vector (liwork, 1)); - F77_INT *piwork = iwork.fortran_vec (); + F77_INT *piwork = iwork.rwdata (); F77_XFCN (dgeesx, DGEESX, (F77_CONST_CHAR_ARG2 (&jobvs, 1), F77_CONST_CHAR_ARG2 (&sort, 1), @@ -240,25 +240,25 @@ if (calc_unitary) m_unitary_schur_mat.clear (n, n); - float *s = m_schur_mat.fortran_vec (); - float *q = m_unitary_schur_mat.fortran_vec (); + float *s = m_schur_mat.rwdata (); + float *q = m_unitary_schur_mat.rwdata (); Array<float> wr (dim_vector (n, 1)); - float *pwr = wr.fortran_vec (); + float *pwr = wr.rwdata (); Array<float> wi (dim_vector (n, 1)); - float *pwi = wi.fortran_vec (); + float *pwi = wi.rwdata (); Array<float> work (dim_vector (lwork, 1)); - float *pwork = work.fortran_vec (); + float *pwork = work.rwdata (); // BWORK is not referenced for the non-ordered Schur routine. F77_INT ntmp = (ord_char == 'N' || ord_char == 'n') ? 0 : n; Array<F77_INT> bwork (dim_vector (ntmp, 1)); - F77_INT *pbwork = bwork.fortran_vec (); + F77_INT *pbwork = bwork.rwdata (); Array<F77_INT> iwork (dim_vector (liwork, 1)); - F77_INT *piwork = iwork.fortran_vec (); + F77_INT *piwork = iwork.rwdata (); F77_XFCN (sgeesx, SGEESX, (F77_CONST_CHAR_ARG2 (&jobvs, 1), F77_CONST_CHAR_ARG2 (&sort, 1), @@ -326,22 +326,22 @@ if (calc_unitary) m_unitary_schur_mat.clear (n, n); - Complex *s = m_schur_mat.fortran_vec (); - Complex *q = m_unitary_schur_mat.fortran_vec (); + Complex *s = m_schur_mat.rwdata (); + Complex *q = m_unitary_schur_mat.rwdata (); Array<double> rwork (dim_vector (n, 1)); - double *prwork = rwork.fortran_vec (); + double *prwork = rwork.rwdata (); Array<Complex> w (dim_vector (n, 1)); - Complex *pw = w.fortran_vec (); + Complex *pw = w.rwdata (); Array<Complex> work (dim_vector (lwork, 1)); - Complex *pwork = work.fortran_vec (); + Complex *pwork = work.rwdata (); // BWORK is not referenced for non-ordered Schur. F77_INT ntmp = (ord_char == 'N' || ord_char == 'n') ? 0 : n; Array<F77_INT> bwork (dim_vector (ntmp, 1)); - F77_INT *pbwork = bwork.fortran_vec (); + F77_INT *pbwork = bwork.rwdata (); F77_XFCN (zgeesx, ZGEESX, (F77_CONST_CHAR_ARG2 (&jobvs, 1), @@ -377,8 +377,8 @@ OCTAVE_LOCAL_BUFFER (double, sx, n-1); F77_XFCN (zrsf2csf, ZRSF2CSF, - (n, F77_DBLE_CMPLX_ARG (s.fortran_vec ()), - F77_DBLE_CMPLX_ARG (u.fortran_vec ()), c, sx)); + (n, F77_DBLE_CMPLX_ARG (s.rwdata ()), + F77_DBLE_CMPLX_ARG (u.rwdata ()), c, sx)); } return schur<ComplexMatrix> (s, u); @@ -437,22 +437,22 @@ if (calc_unitary) m_unitary_schur_mat.clear (n, n); - FloatComplex *s = m_schur_mat.fortran_vec (); - FloatComplex *q = m_unitary_schur_mat.fortran_vec (); + FloatComplex *s = m_schur_mat.rwdata (); + FloatComplex *q = m_unitary_schur_mat.rwdata (); Array<float> rwork (dim_vector (n, 1)); - float *prwork = rwork.fortran_vec (); + float *prwork = rwork.rwdata (); Array<FloatComplex> w (dim_vector (n, 1)); - FloatComplex *pw = w.fortran_vec (); + FloatComplex *pw = w.rwdata (); Array<FloatComplex> work (dim_vector (lwork, 1)); - FloatComplex *pwork = work.fortran_vec (); + FloatComplex *pwork = work.rwdata (); // BWORK is not referenced for non-ordered Schur. F77_INT ntmp = (ord_char == 'N' || ord_char == 'n') ? 0 : n; Array<F77_INT> bwork (dim_vector (ntmp, 1)); - F77_INT *pbwork = bwork.fortran_vec (); + F77_INT *pbwork = bwork.rwdata (); F77_XFCN (cgeesx, CGEESX, (F77_CONST_CHAR_ARG2 (&jobvs, 1), @@ -490,8 +490,8 @@ OCTAVE_LOCAL_BUFFER (float, sx, n-1); F77_XFCN (crsf2csf, CRSF2CSF, - (n, F77_CMPLX_ARG (s.fortran_vec ()), - F77_CMPLX_ARG (u.fortran_vec ()), c, sx)); + (n, F77_CMPLX_ARG (s.rwdata ()), + F77_CMPLX_ARG (u.rwdata ()), c, sx)); } return schur<FloatComplexMatrix> (s, u);
--- a/liboctave/numeric/sparse-dmsolve.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/numeric/sparse-dmsolve.cc Wed Dec 27 16:55:14 2023 -0800 @@ -173,7 +173,7 @@ dmsolve_insert (MArray<T>& a, const MArray<T>& b, const octave_idx_type *Q, octave_idx_type r, octave_idx_type c) { - T *ax = a.fortran_vec (); + T *ax = a.rwdata (); const T *bx = b.data (); @@ -299,7 +299,7 @@ a.resize (dim_vector (b_nr, b_nc)); - RT *Btx = a.fortran_vec (); + RT *Btx = a.rwdata (); for (octave_idx_type j = 0; j < b_nc; j++) {
--- a/liboctave/numeric/sparse-lu.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/numeric/sparse-lu.cc Wed Dec 27 16:55:14 2023 -0800 @@ -415,7 +415,7 @@ // Setup the control parameters Matrix Control (UMFPACK_CONTROL, 1); - double *control = Control.fortran_vec (); + double *control = Control.rwdata (); umfpack_defaults<lu_elt_type> (control); double tmp = sparse_params::get_key ("spumoni"); @@ -466,7 +466,7 @@ void *Symbolic; Matrix Info (1, UMFPACK_INFO); - double *info = Info.fortran_vec (); + double *info = Info.rwdata (); int status = umfpack_qsymbolic<lu_elt_type> (nr, nc, Ap, Ai, Ax, nullptr, &Symbolic, control, info); @@ -552,10 +552,10 @@ double *Rx = m_R.data (); m_P.resize (dim_vector (nr, 1)); - octave_idx_type *p = m_P.fortran_vec (); + octave_idx_type *p = m_P.rwdata (); m_Q.resize (dim_vector (nc, 1)); - octave_idx_type *q = m_Q.fortran_vec (); + octave_idx_type *q = m_Q.rwdata (); octave_idx_type do_recip; status = umfpack_get_numeric<lu_elt_type> (Ltp, Ltj, Ltx, @@ -633,7 +633,7 @@ // Setup the control parameters Matrix Control (UMFPACK_CONTROL, 1); - double *control = Control.fortran_vec (); + double *control = Control.rwdata (); umfpack_defaults<lu_elt_type> (control); double tmp = sparse_params::get_key ("spumoni"); @@ -691,7 +691,7 @@ void *Symbolic; Matrix Info (1, UMFPACK_INFO); - double *info = Info.fortran_vec (); + double *info = Info.rwdata (); int status; // Null loop so that qinit is immediately deallocated when not needed @@ -790,10 +790,10 @@ double *Rx = m_R.data (); m_P.resize (dim_vector (nr, 1)); - octave_idx_type *p = m_P.fortran_vec (); + octave_idx_type *p = m_P.rwdata (); m_Q.resize (dim_vector (nc, 1)); - octave_idx_type *q = m_Q.fortran_vec (); + octave_idx_type *q = m_Q.rwdata (); octave_idx_type do_recip; status = umfpack_get_numeric<lu_elt_type> (Ltp, Ltj, Ltx,
--- a/liboctave/numeric/sparse-qr.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/numeric/sparse-qr.cc Wed Dec 27 16:55:14 2023 -0800 @@ -717,7 +717,7 @@ // copy QTB into ret double *QTB_x = reinterpret_cast<double *> (QTB->x); - double *ret_vec = reinterpret_cast<double *> (ret.fortran_vec ()); + double *ret_vec = reinterpret_cast<double *> (ret.rwdata ()); for (octave_idx_type j = 0; j < b_nc; j++) for (octave_idx_type i = 0; i < nr; i++) ret_vec[j * nr + i] = QTB_x[j * b_nr + i]; @@ -741,7 +741,7 @@ const double *bvec = b.data (); Matrix ret (b_nr, b_nc); - double *vec = ret.fortran_vec (); + double *vec = ret.rwdata (); if (nr < 0 || nc < 0 || nr != b_nr) (*current_liboctave_error_handler) ("matrix dimension mismatch"); @@ -816,7 +816,7 @@ spqr_error_handler (&m_cc); double *q_x = reinterpret_cast<double *> (q->x); - double *ret_vec = const_cast<double *> (ret.fortran_vec ()); + double *ret_vec = const_cast<double *> (ret.rwdata ()); for (octave_idx_type j = 0; j < nc; j++) for (octave_idx_type i = 0; i < nrows; i++) ret_vec[j * nrows + i] = q_x[j * nrows + i]; @@ -835,7 +835,7 @@ octave_idx_type nc = N->L->n; octave_idx_type nr = nrows; Matrix ret (nr, nr); - double *ret_vec = ret.fortran_vec (); + double *ret_vec = ret.rwdata (); if (nr < 0 || nc < 0) (*current_liboctave_error_handler) ("matrix dimension mismatch"); @@ -947,7 +947,7 @@ R2.i = R2_i; } R2.nz = -1; - double *x_vec = const_cast<double *> (x.fortran_vec ()); + double *x_vec = const_cast<double *> (x.rwdata ()); suitesparse_integer *E; if (sizeof (suitesparse_integer) != sizeof (SuiteSparse_long)) { @@ -992,7 +992,7 @@ const double *bvec = b.data (); Matrix x (nc, b_nc); - double *vec = x.fortran_vec (); + double *vec = x.rwdata (); OCTAVE_LOCAL_BUFFER (double, buf, S->m2); @@ -1051,7 +1051,7 @@ const double *bvec = b.data (); Matrix x (nc, b_nc); - double *vec = x.fortran_vec (); + double *vec = x.rwdata (); volatile octave_idx_type nbuf = (nc > S->m2 ? nc : S->m2); @@ -1279,7 +1279,7 @@ octave_idx_type b_nr = b.rows (); ComplexMatrix x (nc, b_nc); - Complex *vec = x.fortran_vec (); + Complex *vec = x.rwdata (); OCTAVE_LOCAL_BUFFER (double, Xx, (b_nr > nc ? b_nr : nc)); OCTAVE_LOCAL_BUFFER (double, Xz, (b_nr > nc ? b_nr : nc)); @@ -1363,7 +1363,7 @@ octave_idx_type b_nr = b.rows (); ComplexMatrix x (nc, b_nc); - Complex *vec = x.fortran_vec (); + Complex *vec = x.rwdata (); volatile octave_idx_type nbuf = (nc > S->m2 ? nc : S->m2); @@ -1656,7 +1656,7 @@ // copy QTB into ret Complex *QTB_x = reinterpret_cast<Complex *> (QTB->x); - Complex *ret_vec = reinterpret_cast<Complex *> (ret.fortran_vec ()); + Complex *ret_vec = reinterpret_cast<Complex *> (ret.rwdata ()); for (octave_idx_type j = 0; j < b_nc; j++) for (octave_idx_type i = 0; i < nr; i++) ret_vec[j * nr + i] = QTB_x[j * b_nr + i]; @@ -1678,7 +1678,7 @@ const cs_complex_t *bvec = reinterpret_cast<const cs_complex_t *> (b.data ()); ComplexMatrix ret (b_nr, b_nc); - Complex *vec = ret.fortran_vec (); + Complex *vec = ret.rwdata (); if (nr < 0 || nc < 0 || nr != b_nr) (*current_liboctave_error_handler) ("matrix dimension mismatch"); @@ -1754,7 +1754,7 @@ spqr_error_handler (&m_cc); Complex *q_x = reinterpret_cast<Complex *> (q->x); - Complex *ret_vec = const_cast<Complex *> (ret.fortran_vec ()); + Complex *ret_vec = const_cast<Complex *> (ret.rwdata ()); for (octave_idx_type j = 0; j < nc; j++) for (octave_idx_type i = 0; i < nrows; i++) @@ -1774,7 +1774,7 @@ octave_idx_type nc = N->L->n; octave_idx_type nr = nrows; ComplexMatrix ret (nr, nr); - Complex *vec = ret.fortran_vec (); + Complex *vec = ret.rwdata (); if (nr < 0 || nc < 0) (*current_liboctave_error_handler) ("matrix dimension mismatch"); @@ -2060,7 +2060,7 @@ octave_idx_type b_nr = b.rows (); ComplexMatrix x (nc, b_nc); - cs_complex_t *vec = reinterpret_cast<cs_complex_t *> (x.fortran_vec ()); + cs_complex_t *vec = reinterpret_cast<cs_complex_t *> (x.rwdata ()); OCTAVE_LOCAL_BUFFER (cs_complex_t, buf, S->m2); OCTAVE_LOCAL_BUFFER (Complex, Xx, b_nr); @@ -2124,7 +2124,7 @@ octave_idx_type b_nr = b.rows (); ComplexMatrix x (nc, b_nc); - cs_complex_t *vec = reinterpret_cast<cs_complex_t *> (x.fortran_vec ()); + cs_complex_t *vec = reinterpret_cast<cs_complex_t *> (x.rwdata ()); volatile octave_idx_type nbuf = (nc > S->m2 ? nc : S->m2); @@ -2382,7 +2382,7 @@ ComplexMatrix x (nc, b_nc); cs_complex_t *vec = reinterpret_cast<cs_complex_t *> - (x.fortran_vec ()); + (x.rwdata ()); OCTAVE_LOCAL_BUFFER (cs_complex_t, buf, S->m2); @@ -2444,7 +2444,7 @@ (b.data ()); ComplexMatrix x (nc, b_nc); - cs_complex_t *vec = reinterpret_cast<cs_complex_t *> (x.fortran_vec ()); + cs_complex_t *vec = reinterpret_cast<cs_complex_t *> (x.rwdata ()); volatile octave_idx_type nbuf = (nc > S->m2 ? nc : S->m2); @@ -2778,7 +2778,7 @@ X = SuiteSparseQR_min2norm<double> (order, SPQR_DEFAULT_TOL, &A, &B, &cc); spqr_error_handler (&cc); - double *vec = x.fortran_vec (); + double *vec = x.rwdata (); for (volatile octave_idx_type i = 0; i < nc * b_nc; i++) vec[i] = reinterpret_cast<double *> (X->x)[i]; @@ -2854,7 +2854,7 @@ X = SuiteSparseQR_min2norm<Complex> (order, SPQR_DEFAULT_TOL, A, &B, &cc); spqr_error_handler (&cc); - Complex *vec = x.fortran_vec (); + Complex *vec = x.rwdata (); for (volatile octave_idx_type i = 0; i < nc * b_nc; i++) vec[i] = reinterpret_cast<Complex *> (X->x)[i]; @@ -2928,7 +2928,7 @@ X = SuiteSparseQR_min2norm<Complex> (order, SPQR_DEFAULT_TOL, &A, &B, &cc); spqr_error_handler (&cc); - Complex *vec = x.fortran_vec (); + Complex *vec = x.rwdata (); for (volatile octave_idx_type i = 0; i < nc * b_nc; i++) vec[i] = reinterpret_cast<Complex *> (X->x)[i]; @@ -2970,7 +2970,7 @@ X = SuiteSparseQR_min2norm<Complex> (order, SPQR_DEFAULT_TOL, &A, B, &cc); spqr_error_handler (&cc); - Complex *vec = x.fortran_vec (); + Complex *vec = x.rwdata (); for (volatile octave_idx_type i = 0; i < nc * b_nc; i++) vec[i] = reinterpret_cast<Complex *> (X->x)[i];
--- a/liboctave/numeric/svd.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/numeric/svd.cc Wed Dec 27 16:55:14 2023 -0800 @@ -705,7 +705,7 @@ } T atmp = a; - P *tmp_data = atmp.fortran_vec (); + P *tmp_data = atmp.rwdata (); F77_INT min_mn = (m < n ? m : n); @@ -744,10 +744,10 @@ if (! (jobu == 'N' || jobu == 'O')) m_left_sm.resize (m, ncol_u); - P *u = m_left_sm.fortran_vec (); + P *u = m_left_sm.rwdata (); m_sigma.resize (nrow_s, ncol_s); - DM_P *s_vec = m_sigma.fortran_vec (); + DM_P *s_vec = m_sigma.rwdata (); if (! (jobv == 'N' || jobv == 'O')) { @@ -757,7 +757,7 @@ m_right_sm.resize (nrow_vt, n); } - P *vt = m_right_sm.fortran_vec (); + P *vt = m_right_sm.rwdata (); // Query _GESVD for the correct dimension of WORK. @@ -798,11 +798,11 @@ std::swap (jobu, jobv); atmp = atmp.hermitian (); - tmp_data = atmp.fortran_vec (); + tmp_data = atmp.rwdata (); // Swap pointers of U and V. - u = m_right_sm.fortran_vec (); - vt = m_left_sm.fortran_vec (); + u = m_right_sm.rwdata (); + vt = m_left_sm.rwdata (); } // translate jobu and jobv from gesvd to gejsv.
--- a/liboctave/operators/mx-inlines.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/operators/mx-inlines.cc Wed Dec 27 16:55:14 2023 -0800 @@ -471,7 +471,7 @@ void (*op) (std::size_t, R *, const X *)) { Array<R> r (x.dims ()); - op (r.numel (), r.fortran_vec (), x.data ()); + op (r.numel (), r.rwdata (), x.data ()); return r; } @@ -496,7 +496,7 @@ do_mx_inplace_op (Array<R>& r, void (*op) (std::size_t, R *)) { - op (r.numel (), r.fortran_vec ()); + op (r.numel (), r.rwdata ()); return r; } @@ -513,7 +513,7 @@ if (dx == dy) { Array<R> r (dx); - op (r.numel (), r.fortran_vec (), x.data (), y.data ()); + op (r.numel (), r.rwdata (), x.data (), y.data ()); return r; } else if (is_valid_bsxfun (opname, dx, dy)) @@ -530,7 +530,7 @@ void (*op) (std::size_t, R *, const X *, Y)) { Array<R> r (x.dims ()); - op (r.numel (), r.fortran_vec (), x.data (), y); + op (r.numel (), r.rwdata (), x.data (), y); return r; } @@ -540,7 +540,7 @@ void (*op) (std::size_t, R *, X, const Y *)) { Array<R> r (y.dims ()); - op (r.numel (), r.fortran_vec (), x, y.data ()); + op (r.numel (), r.rwdata (), x, y.data ()); return r; } @@ -554,7 +554,7 @@ const dim_vector &dr = r.dims (); const dim_vector &dx = x.dims (); if (dr == dx) - op (r.numel (), r.fortran_vec (), x.data ()); + op (r.numel (), r.rwdata (), x.data ()); else if (is_valid_inplace_bsxfun (opname, dr, dx)) do_inplace_bsxfun_op (r, x, op, op1); else @@ -568,7 +568,7 @@ do_ms_inplace_op (Array<R>& r, const X& x, void (*op) (std::size_t, R *, X)) { - op (r.numel (), r.fortran_vec (), x); + op (r.numel (), r.rwdata (), x); return r; } @@ -1561,7 +1561,7 @@ dims.chop_trailing_singletons (); Array<R> ret (dims); - mx_red_op (src.data (), ret.fortran_vec (), l, n, u); + mx_red_op (src.data (), ret.rwdata (), l, n, u); return ret; } @@ -1578,7 +1578,7 @@ // Cumulative operation doesn't reduce the array size. Array<R> ret (dims); - mx_cum_op (src.data (), ret.fortran_vec (), l, n, u); + mx_cum_op (src.data (), ret.rwdata (), l, n, u); return ret; } @@ -1598,7 +1598,7 @@ dims.chop_trailing_singletons (); Array<R> ret (dims); - mx_minmax_op (src.data (), ret.fortran_vec (), l, n, u); + mx_minmax_op (src.data (), ret.rwdata (), l, n, u); return ret; } @@ -1620,7 +1620,7 @@ Array<R> ret (dims); if (idx.dims () != dims) idx = Array<octave_idx_type> (dims); - mx_minmax_op (src.data (), ret.fortran_vec (), idx.fortran_vec (), + mx_minmax_op (src.data (), ret.rwdata (), idx.rwdata (), l, n, u); return ret; @@ -1637,7 +1637,7 @@ get_extent_triplet (dims, dim, l, n, u); Array<R> ret (dims); - mx_cumminmax_op (src.data (), ret.fortran_vec (), l, n, u); + mx_cumminmax_op (src.data (), ret.rwdata (), l, n, u); return ret; } @@ -1655,7 +1655,7 @@ Array<R> ret (dims); if (idx.dims () != dims) idx = Array<octave_idx_type> (dims); - mx_cumminmax_op (src.data (), ret.fortran_vec (), idx.fortran_vec (), + mx_cumminmax_op (src.data (), ret.rwdata (), idx.rwdata (), l, n, u); return ret; @@ -1689,7 +1689,7 @@ } Array<R> ret (dims); - mx_diff_op (src.data (), ret.fortran_vec (), l, n, u, order); + mx_diff_op (src.data (), ret.rwdata (), l, n, u, order); return ret; }
--- a/liboctave/operators/mx-op-defs.h Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/operators/mx-op-defs.h Wed Dec 27 16:55:14 2023 -0800 @@ -440,7 +440,7 @@ octave::err_nonconformant ("operator *", m_nr, m_nc, dm_nr, dm_nc); \ \ r = R (m_nr, dm_nc); \ - R::element_type *rd = r.fortran_vec (); \ + R::element_type *rd = r.rwdata (); \ const M::element_type *md = m.data (); \ const DM::element_type *dd = dm.data (); \ \ @@ -512,7 +512,7 @@ octave::err_nonconformant ("operator *", dm_nr, dm_nc, m_nr, m_nc); \ \ r = R (dm_nr, m_nc); \ - R::element_type *rd = r.fortran_vec (); \ + R::element_type *rd = r.rwdata (); \ const M::element_type *md = m.data (); \ const DM::element_type *dd = dm.data (); \ \ @@ -553,7 +553,7 @@ r.resize (dm1_nr, dm1_nc); \ \ if (dm1_nr > 0 && dm1_nc > 0) \ - F (dm1.length (), r.fortran_vec (), dm1.data (), dm2.data ()); \ + F (dm1.length (), r.rwdata (), dm1.data (), dm2.data ()); \ \ return r; \ }
--- a/liboctave/util/oct-base64.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/util/oct-base64.cc Wed Dec 27 16:55:14 2023 -0800 @@ -88,7 +88,7 @@ { octave_idx_type len = (outlen * sizeof (char)) / sizeof (double); retval.resize (dim_vector (1, len)); - std::copy (out, out + len, retval.fortran_vec ()); + std::copy (out, out + len, retval.rwdata ()); ::free (out); } @@ -116,7 +116,7 @@ ("base64_decode: memory allocation error"); retval.resize (dim_vector (1, outlen)); - std::copy (out, out + outlen, retval.fortran_vec ()); + std::copy (out, out + outlen, retval.rwdata ()); ::free (out); return retval;
--- a/liboctave/util/oct-binmap.h Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/util/oct-binmap.h Wed Dec 27 16:55:14 2023 -0800 @@ -116,7 +116,7 @@ const R *y = ya.data (); Array<U> result (ya.dims ()); - U *p = result.fortran_vec (); + U *p = result.rwdata (); octave_idx_type i; for (i = 0; i < len - 3; i += 4) @@ -147,7 +147,7 @@ const R *x = xa.data (); Array<U> result (xa.dims ()); - U *p = result.fortran_vec (); + U *p = result.rwdata (); octave_idx_type i; for (i = 0; i < len - 3; i += 4) @@ -197,7 +197,7 @@ const T *y = ya.data (); Array<U> result (xa.dims ()); - U *p = result.fortran_vec (); + U *p = result.rwdata (); octave_idx_type i; for (i = 0; i < len - 3; i += 4)
--- a/liboctave/util/str-vec.cc Wed Dec 27 14:29:02 2023 -0800 +++ b/liboctave/util/str-vec.cc Wed Dec 27 16:55:14 2023 -0800 @@ -78,7 +78,7 @@ { // Don't use Array<std::string>::sort () to allow sorting in place. octave_sort<std::string> lsort; - lsort.sort (m_data.fortran_vec (), numel ()); + lsort.sort (m_data.rwdata (), numel ()); if (make_uniq) uniq ();